@import "https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap";
:root{--ink:#173e34;--muted:#6f7e77;--green:#2c6e5b;--green-dark:#205345;--mint:#cce8dc;--cream:#fffaf0;--paper:#fffef9;--coral:#ef7d6a;--yellow:#f6c768;--line:#e7e6dc;--shadow:0 18px 50px #24473d1a}*{box-sizing:border-box}html{background:var(--cream)}body{color:var(--ink);background:radial-gradient(circle at 5% 0%,#fff4ce 0,transparent 28rem),var(--cream);-webkit-font-smoothing:antialiased;margin:0;font-family:Be Vietnam Pro,system-ui,sans-serif}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #2c6e5b3d}.app-shell{width:min(1120px,100%);min-height:100dvh;margin:auto;padding:0 28px 116px}.topbar{justify-content:space-between;align-items:center;gap:24px;height:116px;display:flex}.topbar h1,.section-heading h2,.sheet-title h2,.editor-header h2,.settings-card h2{letter-spacing:-.04em;margin:4px 0 0}.topbar h1{font-size:clamp(1.55rem,4vw,2.1rem)}.eyebrow,.hero-kicker{text-transform:uppercase;letter-spacing:.13em;color:#7b8b84;font-size:.72rem;font-weight:800}.role-badge{border-radius:999px;align-items:center;gap:8px;padding:10px 14px;font-size:.78rem;font-weight:700;display:flex}.role-badge.admin{color:#205345;background:#dcefe7}.role-badge.member{color:#7a5712;background:#fff0c8}.page-content{animation:.35s rise}.hero-card{background:var(--green);color:#fff;min-height:190px;box-shadow:var(--shadow);border-radius:32px;justify-content:space-between;align-items:center;padding:32px 34px;display:flex;position:relative;overflow:hidden}.hero-card:after{content:"";background:#ffffff0f;border-radius:50%;width:260px;height:180px;position:absolute;inset:auto auto -90px -60px}.hero-card .hero-kicker{color:#bfe0d5}.hero-card strong{letter-spacing:-.06em;margin:8px 0;font-size:clamp(2rem,7vw,3.4rem);line-height:1.15;display:block}.hero-card p{color:#d9ece5;margin:0}.hero-illustration{flex:none;width:180px;height:130px;position:relative}.hero-illustration span{color:#ffe8ac;place-items:center;width:126px;height:100px;font-size:5rem;line-height:1;display:grid;position:absolute;bottom:0;right:17px;transform:scaleX(1.25)}.hero-illustration i{background:var(--coral);border-radius:50%;width:63px;height:63px;position:absolute;top:0;right:0}.hero-illustration b{background:#9fd3c0;border-radius:30px 30px 10px 10px;width:42px;height:78px;position:absolute;bottom:2px;left:3px;transform:rotate(-12deg)}.section-heading{justify-content:space-between;align-items:center;margin:38px 4px 18px;display:flex}.section-heading h2{font-size:1.4rem}.round-add{background:var(--coral);color:#fff;cursor:pointer;border:0;border-radius:17px;place-items:center;width:48px;height:48px;display:grid;box-shadow:0 10px 22px #ef7d6a40}.search-box{border:1px solid var(--line);color:#789087;background:#ffffffbd;border-radius:18px;align-items:center;gap:12px;height:54px;padding:0 18px;display:flex}.search-box input{width:100%;color:var(--ink);background:0 0;border:0;outline:0}.item-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px;display:grid}.item-card{background:#ffffffd6;border:1px solid #e1e1d6e6;border-radius:25px;padding:18px;transition:all .2s;position:relative;box-shadow:0 9px 30px #3048400e}.item-card:hover{transform:translateY(-2px);box-shadow:0 16px 35px #30484017}.item-top{justify-content:space-between;display:flex}.item-icon{border-radius:18px;place-items:center;width:52px;height:52px;font-size:1.55rem;display:grid}.item-icon.mint{background:var(--mint)}.icon-button{cursor:pointer;background:#f5f3ea;border:0;border-radius:12px;place-items:center;width:36px;height:36px;display:grid}.icon-button.subtle{opacity:.55;background:0 0}.item-name{min-height:83px;margin-top:15px}.item-name span{text-transform:uppercase;letter-spacing:.09em;color:#8a9691;font-size:.68rem;font-weight:700}.item-name h3{letter-spacing:-.025em;margin:5px 0 2px;font-size:1.05rem}.item-name small{color:var(--muted)}.stock-row{border-top:1px dashed #deded4;justify-content:space-between;gap:12px;padding-top:14px;display:flex}.stock-row span{color:#89938e;margin-bottom:4px;font-size:.66rem;display:block}.stock-row strong{font-size:.9rem}.stock-row .price{text-align:right}.stock-row strong.low{color:#c85443}.low-note{color:#c85443;align-items:center;gap:5px;margin:10px 0 0;font-size:.7rem;font-weight:700;display:flex}.consume-button{width:100%;height:44px;color:var(--green-dark);cursor:pointer;background:#edf5f1;border:0;border-radius:14px;justify-content:center;align-items:center;gap:7px;margin-top:14px;font-size:.78rem;font-weight:800;display:flex}.consume-button svg:last-child{margin-left:auto}.empty{text-align:center;color:#83918b;border:1px dashed #d5d8cd;border-radius:25px;flex-direction:column;justify-content:center;align-items:center;min-height:260px;margin-top:18px;padding:30px;display:flex}.empty h3{color:var(--ink);margin:14px 0 4px}.empty p{max-width:430px;margin:0;line-height:1.7}.bottom-nav{z-index:30;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffef9eb;border:1px solid #e1e1d6e6;border-radius:24px;justify-content:space-around;align-items:center;width:min(620px,100% - 28px);height:72px;padding:7px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 18px 50px #24473d2e}.bottom-nav button{color:#8a9791;cursor:pointer;background:0 0;border:0;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:80px;height:58px;font-size:.66rem;font-weight:700;display:flex}.bottom-nav svg{width:21px}.bottom-nav button.active{color:var(--green-dark);background:#e5f1ec}.modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#112b246b;justify-content:center;align-items:flex-end;padding:20px;display:flex;position:fixed;inset:0}.bottom-sheet{background:var(--paper);width:min(600px,100%);max-height:90dvh;box-shadow:var(--shadow);border-radius:32px 32px 22px 22px;padding:10px 28px 30px;animation:.28s sheetUp;position:relative;overflow:auto}.sheet-close{cursor:pointer;background:#f2f1e8;border:0;border-radius:50%;place-items:center;width:38px;height:38px;display:grid;position:absolute;top:20px;right:20px}.sheet-handle{background:#d7d8d0;border-radius:5px;width:54px;height:5px;margin:0 auto 24px}.sheet-title{align-items:center;gap:14px;margin-bottom:24px;display:flex}.quantity-stepper{background:#f5f4ec;border-radius:22px;grid-template-columns:58px 1fr 58px;align-items:center;gap:12px;padding:12px;display:grid}.quantity-stepper button{cursor:pointer;background:#fff;border:0;border-radius:17px;place-items:center;height:54px;display:grid}.quantity-stepper label{justify-content:center;align-items:baseline;gap:8px;display:flex}.quantity-stepper input{text-align:right;width:100px;color:var(--ink);background:0 0;border:0;outline:0;font-size:2rem;font-weight:800}.quantity-stepper span{color:#7a8b84;font-weight:700}.stock-preview{color:#7d8b86;justify-content:center;align-items:center;gap:16px;margin:20px 0;font-size:.78rem;display:flex}.stock-preview b{color:var(--ink)}.primary,.secondary{cursor:pointer;border:0;border-radius:16px;justify-content:center;align-items:center;gap:9px;min-height:48px;padding:0 20px;font-weight:800;display:inline-flex}.primary{background:var(--green);color:#fff;box-shadow:0 10px 23px #2c6e5b30}.primary:hover{background:var(--green-dark)}.primary:disabled{opacity:.55;cursor:not-allowed}.secondary{color:var(--green-dark);background:#edf3f0}.full{width:100%}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-grid .wide{grid-column:1/-1}.form-grid label,.stack-form label,.settings-card label,.merchant-row label,.line-numbers label{color:#64756e;font-size:.72rem;font-weight:700}.form-grid input,.form-grid select,.stack-form input,.settings-card input,.merchant-row input,.line-numbers input,.line-numbers select{width:100%;height:49px;color:var(--ink);background:#fff;border:1px solid #dedfd6;border-radius:14px;outline:0;margin-top:7px;padding:0 13px;display:block}.form-error{color:#ba493a;background:#fff0ed;border-radius:12px;padding:10px 12px;font-size:.77rem}.form-error.standalone{margin-top:18px}.toast{z-index:80;color:#fff;width:min(480px,100% - 32px);min-height:55px;box-shadow:var(--shadow);background:#173e34;border-radius:17px;justify-content:space-between;align-items:center;padding:10px 12px 10px 18px;font-size:.8rem;display:flex;position:fixed;bottom:105px;left:50%;transform:translate(-50%)}.toast button{cursor:pointer;background:#f7c96f;border:0;border-radius:12px;align-items:center;gap:6px;height:37px;font-weight:800;display:flex}.splash,.onboarding,.center-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:32px;display:flex}.splash{gap:16px}.home-mark{background:var(--green);color:#ffe6a8;border-radius:26px;place-items:center;width:74px;height:74px;display:grid;box-shadow:0 18px 40px #2c6e5b33}.home-mark svg{width:34px;height:34px}.splash strong{letter-spacing:-.06em;font-size:2rem}.spin{animation:1s linear infinite spin}.onboarding{width:min(480px,100%);margin:auto}.onboarding h1,.center-card h1{letter-spacing:-.05em;margin:18px 0 8px;font-size:2rem}.onboarding p,.center-card p{color:var(--muted);line-height:1.7}.stack-form{text-align:left;gap:14px;width:100%;margin-top:20px;display:grid}.recovery-code{color:#fff3c9;word-break:break-all;background:#173e34;border-radius:16px;width:100%;margin:18px 0;padding:18px;font-size:1rem;display:block}.purchase-layout{gap:18px;display:grid}.scan-card{background:#f2d36f;border-radius:32px;grid-template-columns:1.2fr .8fr;gap:30px;min-height:310px;padding:34px;display:grid;overflow:hidden}.scan-copy h2{letter-spacing:-.06em;margin:14px 0;font-size:clamp(1.8rem,5vw,3rem);line-height:1.08}.scan-copy p{color:#5e583e;max-width:520px;line-height:1.7}.spark{text-transform:uppercase;letter-spacing:.08em;background:#ffffff80;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:.68rem;font-weight:800;display:inline-flex}.receipt-preview{color:#a69e83;background:#fffef9;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;min-height:240px;display:flex;position:relative;overflow:hidden;transform:rotate(3deg);box-shadow:0 20px 45px #6653192e}.receipt-preview:before,.receipt-preview:after{content:"";background:radial-gradient(circle at 7px 0,#0000 7px,#fffef9 7.5px) 0 0/14px 10px;height:10px;position:absolute;left:0;right:0}.receipt-preview:before{top:-1px;transform:rotate(180deg)}.receipt-preview:after{bottom:-1px}.receipt-preview i{background:#eeeade;border-radius:5px;width:62%;height:5px;margin:6px}.receipt-preview.has-image img{object-fit:cover;width:100%;height:100%}.review-card{border:1px solid var(--line);background:#fff;border-radius:24px;justify-content:space-between;align-items:center;gap:18px;padding:20px;display:flex}.review-card h3{margin:0 0 4px}.review-card p{color:var(--muted);margin:0;font-size:.78rem}.receipt-editor{border:1px solid var(--line);background:#fff;border-radius:28px;padding:26px}.editor-header{justify-content:space-between;align-items:center;display:flex}.line-count{background:#edf5f1;border-radius:999px;padding:7px 10px;font-size:.7rem;font-weight:800}.warning-box{color:#745817;background:#fff2d6;border-radius:16px;gap:10px;margin:18px 0;padding:12px 14px;display:flex}.warning-box p{margin:0;font-size:.74rem}.merchant-row{grid-template-columns:1fr 180px;gap:14px;margin:20px 0;display:grid}.receipt-lines{gap:10px;display:grid}.receipt-line{background:#f8f7f1;border-radius:18px;grid-template-columns:30px 1fr 36px;align-items:start;gap:10px;padding:14px;display:grid}.line-index{background:#dfeee8;border-radius:9px;place-items:center;width:28px;height:28px;font-size:.72rem;font-weight:800;display:grid}.line-name{width:100%;color:var(--ink);background:0 0;border:0;outline:0;font-size:.9rem;font-weight:800}.confidence{color:#48806e;margin:3px 0 10px;font-size:.62rem;display:block}.low-confidence{color:#c05a48}.line-numbers{grid-template-columns:70px 86px 1fr 1fr;gap:8px;display:grid}.line-numbers input,.line-numbers select{height:40px;margin-top:4px;font-size:.75rem}.receipt-total{border-top:1px dashed #d7d8d0;grid-template-columns:1fr 160px auto;align-items:center;gap:12px;margin:18px 0;padding:18px 0;display:grid}.receipt-total input{border:1px solid var(--line);border-radius:12px;height:44px;padding:0 12px}.receipt-total strong{font-size:1.2rem}.report-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.metric{border-radius:27px;min-height:165px;padding:25px}.metric.coral{background:#f5b1a5}.metric.mint{background:#bde0d3}.metric.yellow{background:#f3d77c}.metric span{text-transform:uppercase;letter-spacing:.08em;font-size:.73rem;font-weight:800}.metric strong{letter-spacing:-.04em;margin:18px 0 4px;font-size:1.55rem;display:block}.metric p{color:#4d615a;margin:0;font-size:.75rem}.chart-placeholder{background:#fff9;grid-column:1/-1;margin-top:0}.settings-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.settings-card{border:1px solid var(--line);background:#fff;border-radius:28px;padding:26px}.settings-card>p{color:var(--muted);font-size:.8rem;line-height:1.7}.setting-icon{background:var(--mint);border-radius:18px;place-items:center;width:54px;height:54px;margin-bottom:25px;display:grid}.setting-icon.coral-bg{background:#f5b1a5}.segmented{background:#f1f1ea;border-radius:14px;grid-template-columns:1fr 1fr;margin:18px 0;padding:4px;display:grid}.segmented button{cursor:pointer;background:0 0;border:0;border-radius:11px;height:42px;font-size:.7rem;font-weight:800}.segmented button.active{background:#fff;box-shadow:0 4px 12px #2c463e17}.settings-card .primary{margin-top:14px}.invite-result{text-align:center;border-top:1px dashed var(--line);margin-top:20px;padding-top:20px}.invite-result img{border-radius:16px;width:min(240px,100%)}.invite-result small{word-break:break-all;color:var(--muted);margin-top:12px;display:block}.center-card{width:min(460px,100%);margin:auto}.center-card>svg{color:var(--coral)}.manual-card{border:1px solid var(--line);background:#fff;border-radius:28px;margin-top:4px;padding:26px}.manual-card .editor-header{margin-bottom:20px}.manual-card .editor-header>svg{color:var(--coral)}.muted-copy{color:var(--muted);font-size:.8rem}.device-list{gap:8px;margin-top:18px;display:grid}.device-row{background:#f6f5ee;border-radius:15px;justify-content:space-between;align-items:center;gap:12px;padding:12px 13px;display:flex}.device-row strong,.device-row span{display:block}.device-row strong{font-size:.8rem}.device-row span{color:var(--muted);margin-top:3px;font-size:.66rem}.price-trend{margin-top:4px;font-weight:700;font-size:.56rem!important;display:block!important}.price-trend.up{color:#c45746!important}.price-trend.down{color:#3b806b!important}.receipt-total small{color:var(--muted);margin-top:4px;font-size:.68rem;font-weight:600;display:block}.sync-banner{color:#654b16;background:#fff0c8;border:1px solid #ecd48f;border-radius:18px;justify-content:space-between;align-items:center;gap:16px;margin:-4px 0 24px;padding:14px 16px;display:flex}.sync-banner>div{gap:3px;display:grid}.sync-banner strong{font-size:.8rem}.sync-banner span{font-size:.7rem}.sync-banner button,.pending-note button{color:#654b16;cursor:pointer;background:#fff;border:0;border-radius:11px;align-items:center;gap:6px;padding:8px 11px;font-size:.68rem;font-weight:800;display:inline-flex}.sync-banner button:disabled,.pending-note button:disabled{opacity:.55;cursor:not-allowed}.sync-banner.pending{color:var(--green-dark);background:#dfeee8;border-color:#bfdacf}.pending-note{color:#765719;background:#fff0c8;border-radius:12px;grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;padding:9px 10px;font-size:.66rem;font-weight:800;display:flex}.pending-note button{background:#fffaf0;padding:6px 8px}.report-page{gap:18px;display:grid}.report-toolbar{border:1px solid var(--line);background:#ffffffb8;border-radius:22px;grid-template-columns:190px 1fr auto;align-items:end;gap:12px;padding:16px;display:grid}.report-toolbar>label{color:#65776f;font-size:.7rem;font-weight:800}.report-toolbar input{border:1px solid var(--line);width:100%;height:46px;color:var(--ink);background:#fff;border-radius:14px;outline:0;margin-top:6px;padding:0 13px}.report-search{position:relative}.report-search svg{color:#789087;position:absolute;bottom:14px;left:14px}.report-search input{padding-left:42px}.report-toolbar .secondary:disabled{opacity:.45;cursor:not-allowed}.report-page .report-grid{grid-template-columns:repeat(4,1fr)}.metric.paper{border:1px solid var(--line);background:#fff}.report-details{grid-template-columns:1fr 1fr;gap:16px;display:grid}.report-panel{border:1px solid var(--line);background:#fff;border-radius:26px;padding:24px}.report-panel-title{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.report-panel-title h2{letter-spacing:-.035em;margin:4px 0 0;font-size:1.15rem}.report-panel-title>svg{color:var(--coral)}.breakdown-list,.price-change-list,.purchase-history-list{gap:12px;display:grid}.breakdown-row>div:first-child,.price-change-row,.purchase-history-list article{justify-content:space-between;gap:14px;display:flex}.breakdown-row strong,.breakdown-row span,.price-change-row strong,.price-change-row span,.purchase-history-list strong,.purchase-history-list span{display:block}.breakdown-row strong,.price-change-row strong,.purchase-history-list strong{font-size:.8rem}.breakdown-row span,.price-change-row span,.purchase-history-list span{color:var(--muted);margin-top:3px;font-size:.68rem}.breakdown-track{background:#f0f0e8;border-radius:9px;height:7px;margin-top:8px;overflow:hidden}.breakdown-track i{border-radius:inherit;background:var(--green);height:100%;display:block}.price-change-row,.purchase-history-list article{border-bottom:1px dashed var(--line);align-items:center;padding:12px 0}.price-change-row:last-child,.purchase-history-list article:last-child{border-bottom:0}.price-change-row b{color:#b45243;text-align:right;font-size:.72rem}.purchase-history{grid-column:1/-1}.purchase-history-list article>div{min-width:0}.purchase-history-list article>b{white-space:nowrap;font-size:.85rem}.purchase-history-list p{color:#687971;white-space:nowrap;text-overflow:ellipsis;margin:5px 0 0;font-size:.72rem;overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes sheetUp{0%{opacity:0;transform:translateY(40px)}}@media (max-width:800px){.app-shell{padding-inline:18px}.item-grid{grid-template-columns:repeat(2,1fr)}.scan-card{grid-template-columns:1fr}.receipt-preview{display:none}.report-grid{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr}.hero-illustration{transform-origin:100%;transform:scale(.8)}.line-numbers{grid-template-columns:1fr 1fr}.receipt-total{grid-template-columns:1fr auto}.receipt-total input{grid-area:2/1/auto/-1}}@media (max-width:520px){.app-shell{padding-inline:14px}.topbar{height:100px}.topbar h1{font-size:1.45rem}.role-badge span{display:none}.role-badge{justify-content:center;width:42px;height:42px;padding:0}.hero-card{border-radius:27px;min-height:175px;padding:24px}.hero-illustration{opacity:.55;position:absolute;right:-25px}.item-grid{grid-template-columns:1fr}.item-card{grid-template-columns:60px 1fr;gap:0 12px;display:grid}.item-top{grid-row:1/4;display:block}.item-top .icon-button{margin-top:10px}.item-name{min-height:auto;margin-top:1px}.stock-row{margin-top:12px}.consume-button,.low-note{grid-column:2}.bottom-nav{bottom:10px}.bottom-nav button{min-width:62px}.scan-card{border-radius:27px;padding:24px}.review-card{flex-direction:column;align-items:stretch}.receipt-editor{padding:18px}.merchant-row{grid-template-columns:1fr}.receipt-line{grid-template-columns:26px 1fr}.receipt-line>.icon-button{grid-column:2;justify-self:end}.line-numbers{grid-template-columns:1fr 1fr}.modal-backdrop{padding:0}.bottom-sheet{padding:10px 20px calc(28px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.stock-preview{gap:8px;font-size:.68rem}.report-grid{grid-template-columns:1fr}.chart-placeholder{grid-column:auto}.toast{bottom:92px}}@media (max-width:800px){.report-page .report-grid,.report-details,.report-toolbar{grid-template-columns:1fr 1fr}.report-toolbar .report-search{grid-area:2/1/auto/-1}.report-toolbar .secondary{height:46px}}@media (max-width:520px){.report-page .report-grid,.report-details,.report-toolbar{grid-template-columns:1fr}.report-toolbar .report-search{grid-area:auto}.report-toolbar .secondary{width:100%}.purchase-history{grid-column:auto}.report-panel{padding:19px}.purchase-history-list article{align-items:flex-start}.purchase-history-list p{max-width:210px}}
