:root{color-scheme:light;--bg:#faf7ee;--paper:#fff;--ink:#163028;--muted:#697d74;--line:#e0e4da;--green:#0d3b32;--leaf:#2e7d5a;--pale:#e8f4ec;--sun:#ffc43d;--warn:#8a6400;--warnbg:#fff7e0;--red:#b84336;--redbg:#fdeee9;--shadow:0 8px 24px rgba(13,59,50,.07)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.symbols{position:absolute;width:0;height:0;overflow:hidden}.app-shell{width:100%;max-width:520px;min-height:100vh;margin:0 auto;background:var(--bg);padding-bottom:94px;box-shadow:0 0 36px rgba(13,59,50,.08)}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:76px;padding:10px 17px;background:var(--green);color:#fff}.brand{display:flex;align-items:center;gap:9px;color:inherit;text-decoration:none;min-width:0}.brand span{display:flex;flex-direction:column}.brand b{font-size:25px;line-height:1.1;letter-spacing:-.3px}.brand small{font-size:11px;color:#c5ddd2;margin-top:4px}.bird{width:44px;height:50px;flex:none}.top-actions{display:flex;align-items:center;gap:8px}.private-chip{border:1px solid #668b7c;border-radius:999px;padding:5px 9px;font-size:10px;color:#e4f2e9;white-space:nowrap}.lang-button{border:1px solid #668b7c;background:transparent;color:#fff;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:750}.view{display:none;padding:20px 16px 34px}.view.active{display:block}.hero-copy{padding:5px 0 15px}.eyebrow{margin:0;color:var(--leaf);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:800}.hero-copy h1,.page-heading h1{font-size:31px;line-height:1.12;letter-spacing:-.6px;margin:5px 0 4px}.page-heading{margin-bottom:17px}.page-heading h1{margin-top:5px}.muted{color:var(--muted);margin:4px 0 0;font-size:13px}.search-wrap{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:0 14px;margin:3px 0 16px;min-height:48px;box-shadow:0 1px 0 rgba(13,59,50,.03)}.search-wrap>span{color:var(--leaf);font-size:24px;line-height:1}.search-wrap input{border:0;outline:0!important;box-shadow:none!important;min-width:0;flex:1;background:transparent;color:var(--ink);padding:12px 0}.search-wrap input::placeholder{color:#86958e}.search-wrap kbd{color:#94a29a;border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:11px}.stats-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 22px}.mini-stat{padding:12px 10px;border:1px solid var(--line);border-radius:16px;background:#fff}.mini-stat strong{display:block;color:var(--green);font-size:20px;line-height:1.1}.mini-stat small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.section-block{margin:12px 0 22px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.section-title h2{font-size:17px;margin:0;line-height:1.2}.text-button{border:0;background:transparent;color:var(--leaf);font-size:12px;font-weight:750;padding:6px 0;white-space:nowrap}.stack{display:grid;gap:9px}.empty-card{padding:22px 17px;text-align:center;border:1px dashed #bdcdc2;border-radius:19px;background:rgba(255,255,255,.6);color:var(--muted)}.empty-card strong{display:block;color:var(--ink);margin-bottom:4px}.price-card,.product-card,.card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:15px;box-shadow:var(--shadow)}.price-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center}.price-card h3,.product-card h3{font-size:15px;margin:0 0 3px}.price-card small,.product-card small{display:block;color:var(--muted);font-size:11px}.price-value{font-size:21px;font-weight:850;color:var(--leaf);text-align:right;white-space:nowrap}.age-pill{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;background:var(--pale);color:var(--green);font-size:10px;font-weight:750;white-space:nowrap}.age-pill.aging{background:#fff1c6;color:#6e5200}.age-pill.old{background:var(--warnbg);color:var(--warn)}.callout{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px;border-radius:22px;background:#e7f2e9;margin:20px 0 2px}.callout-kicker{font-size:10px;text-transform:uppercase;font-weight:800;letter-spacing:.07em;color:var(--leaf)}.callout h2{font-size:17px;margin:4px 0}.callout p{margin:0;color:#476458;font-size:12px;max-width:350px}.round-arrow{height:44px;width:44px;border:0;border-radius:50%;flex:none;background:var(--sun);color:var(--green);font-size:27px;line-height:1;font-weight:500}.card{margin:12px 0;box-shadow:none;padding:16px}.privacy-card{display:flex;gap:12px;align-items:flex-start;background:var(--pale);border-color:#d8e9dc}.privacy-card strong{font-size:13px}.privacy-card p{font-size:12px;color:#536b5f;margin:4px 0 0}.lock-icon{display:grid;place-items:center;width:31px;height:31px;flex:none;border-radius:50%;background:#fff;color:var(--green);font-size:19px}.label,.field>span{display:block;font-size:12px;font-weight:800;margin:0 0 6px}.upload-box{border:1px dashed #9eb4a6;border-radius:15px;background:var(--bg);padding:13px}.upload-box input[type=file]{display:block;width:100%;font-size:12px;color:var(--muted)}.upload-box small{display:block;font-size:11px;color:var(--muted);margin-top:7px}.photo-previews{display:flex;gap:8px;overflow:auto;margin-top:10px}.photo-previews img{height:84px;width:64px;object-fit:cover;border:1px solid var(--line);border-radius:8px;background:#fff}.row-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:13px}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:10px 15px;border:0;border-radius:999px;font-size:12px;font-weight:800;text-decoration:none}.button:disabled{cursor:not-allowed;opacity:.48}.button.primary{background:var(--green);color:#fff}.button.quiet{background:#fff;color:var(--leaf);border:1px solid #b8ccbf}.button.small{min-height:34px;padding:7px 11px;font-size:11px;white-space:nowrap}.subtle{color:var(--muted);font-size:11px}.ocr-details{margin-top:10px;font-size:12px;color:var(--muted)}.ocr-details summary{cursor:pointer}.ocr-text{white-space:pre-wrap;max-height:220px;overflow:auto;padding:10px;background:#f3f1e9;border-radius:10px;color:var(--ink);font:11px/1.45 ui-monospace,Consolas,monospace}.receipt-form{margin-top:13px}.receipt-form-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:12px}.field{display:block;min-width:0}.field:first-child{grid-column:1/-1}.field input,.field select,.line-row input,.line-row select{width:100%;min-width:0;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);padding:10px 11px;font-size:13px}.line-heading{align-items:flex-end;margin:20px 0 8px}.line-heading>div{min-width:0}.line-heading .muted{max-width:270px;font-size:11px}.line-editor{display:grid;gap:9px}.line-row{border:1px solid var(--line);border-radius:14px;padding:11px;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) 78px 84px 38px;gap:7px;align-items:end}.line-row label{min-width:0;display:block}.line-row label span{display:block;color:var(--muted);font-size:9px;font-weight:800;margin-bottom:4px}.line-row input,.line-row select{padding:8px 7px;font-size:12px}.line-row .name-field{grid-column:1/-1}.line-row .remove-line{border:0;background:var(--redbg);color:var(--red);border-radius:9px;height:34px;font-size:17px}.line-row .private-toggle{grid-column:1/-1;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px}.line-row .private-toggle input{width:14px;height:14px}.reconcile-box{padding:12px 13px;border-radius:14px;background:#f3f5ef;margin-top:13px}.reconcile-box>div{display:flex;justify-content:space-between;gap:8px;padding:3px 0;font-size:12px}.reconcile-box b{font-variant-numeric:tabular-nums}.reconcile-message{margin:7px 0 0;padding:8px 10px;border-radius:10px;background:var(--warnbg);color:var(--warn);font-size:11px}.reconcile-message.good{background:var(--pale);color:var(--green)}.reconcile-message.bad{background:var(--redbg);color:var(--red)}.note-field{margin-top:10px}.small-print{font-size:10px;color:var(--muted);line-height:1.45}.profile-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.profile-stat{background:#fff;border:1px solid var(--line);border-radius:17px;padding:14px}.profile-stat strong{display:block;color:var(--green);font-size:23px}.profile-stat small{color:var(--muted);font-size:11px}.promise-list{padding-left:18px;color:var(--muted);font-size:12px}.promise-list li{margin:7px 0}.file-label{position:relative;overflow:hidden;cursor:pointer}.file-label input{position:absolute;inset:0;opacity:0;cursor:pointer}.product-card{cursor:pointer}.product-card:hover{border-color:#9dbba8}.product-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.product-card .lowest{font-size:19px;font-weight:850;color:var(--leaf);white-space:nowrap}.history-panel{margin-top:12px}.history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.history-head h2{font-size:18px;margin:0}.chart-wrap{margin:12px 0 6px;height:180px;overflow:hidden}.chart-wrap svg{width:100%;height:100%;display:block}.history-entry{display:grid;grid-template-columns:1fr auto;gap:7px 12px;padding:11px 0;border-bottom:1px solid var(--line)}.history-entry:last-child{border:0}.history-entry strong{font-size:13px}.history-entry small{display:block;color:var(--muted);font-size:10px}.history-entry b{font-size:15px;white-space:nowrap}.toast{position:fixed;left:50%;bottom:92px;z-index:10;transform:translate(-50%,12px);opacity:0;pointer-events:none;max-width:calc(100% - 28px);padding:11px 15px;border-radius:12px;background:var(--green);color:#fff;font-size:12px;box-shadow:var(--shadow);transition:.18s}.toast.show{opacity:1;transform:translate(-50%,0)}.bottom-nav{position:fixed;bottom:0;left:50%;z-index:8;transform:translateX(-50%);width:100%;max-width:520px;padding:7px max(8px,env(safe-area-inset-right,0px)) calc(7px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;background:#fff;border-top:1px solid var(--line)}.nav-item{border:0;background:transparent;color:#77877f;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;padding:5px 2px}.nav-item span{font-size:21px;line-height:1.05}.nav-item small{font-size:9px;font-weight:700;white-space:nowrap}.nav-item.active{background:var(--pale);color:var(--green)}.nav-item.capture{background:var(--sun);color:var(--green);margin:-17px 5px 0;border-radius:50%;width:52px;height:52px;justify-self:center;box-shadow:0 3px 12px rgba(0,0,0,.12)}.nav-item.capture small{font-size:9px}.hidden{display:none!important}.error-note{padding:12px;border-radius:12px;background:var(--redbg);color:var(--red);font-size:12px}
@media(min-width:700px){body{padding:18px 0}.app-shell{border-radius:28px;overflow:hidden;min-height:calc(100vh - 36px)}.topbar{border-radius:28px 28px 0 0}.bottom-nav{bottom:18px;border-radius:0 0 28px 28px}.toast{bottom:112px}}
@media(max-width:370px){.private-chip{font-size:9px;padding:4px 7px}.brand b{font-size:22px}.bird{width:39px}.view{padding-left:13px;padding-right:13px}.line-row{grid-template-columns:minmax(0,1fr) 65px 74px 32px;gap:5px}.line-row input,.line-row select{font-size:11px;padding:7px 5px}.stats-strip{gap:5px}.mini-stat{padding:10px 7px}}
/* Phone-first layout: generous tap targets, safe-area spacing, and receipt fields
   that remain comfortable on narrow screens instead of squeezing into a desktop row. */
@media(max-width:600px){
  html,body{min-height:100%;overflow-x:hidden}
  .app-shell{max-width:none;min-height:100vh;min-height:100dvh;padding-bottom:calc(80px + env(safe-area-inset-bottom,0px));box-shadow:none}
  .topbar{min-height:calc(64px + env(safe-area-inset-top,0px));padding:calc(8px + env(safe-area-inset-top,0px)) 14px 8px}
  .view{padding:18px 14px 28px}
  .hero-copy h1,.page-heading h1{font-size:28px}
  .search-wrap{min-height:52px;margin-bottom:14px}
  .search-wrap input{font-size:16px}
  .receipt-form-grid{grid-template-columns:minmax(0,1fr)}
  .field:first-child{grid-column:auto}
  .field input,.field select{min-height:48px;font-size:16px}
  .line-row{position:relative;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:12px}
  .line-row .name-field{grid-column:1/-1;padding-right:40px}
  .line-row input,.line-row select{min-height:46px;padding:9px 7px;font-size:16px}
  .line-row .remove-line{position:absolute;top:10px;right:10px;width:34px;height:34px}
  .line-row .private-toggle{grid-column:1/-1;min-height:36px;font-size:12px}
  .line-row .private-toggle input{width:20px;height:20px}
  .button{min-height:46px;font-size:13px}
  .button.small{min-height:42px;font-size:12px}
  .section-title{align-items:flex-start}
  .line-heading{align-items:flex-start}
  .line-heading .muted{max-width:none}
  .bottom-nav{max-width:none;left:0;transform:none;grid-template-columns:repeat(5,minmax(0,1fr));padding:7px max(8px,env(safe-area-inset-right,0px)) calc(7px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));}
  .nav-item{min-height:48px}
  .nav-item small{font-size:10px}
  .toast{bottom:calc(82px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:350px){
  .topbar{padding-left:11px;padding-right:11px}
  .brand{gap:6px}.brand b{font-size:21px}.brand small{font-size:10px}.bird{width:36px}
  .private-chip{font-size:8px;padding:4px 6px}
  .view{padding-left:11px;padding-right:11px}
  .nav-item small{font-size:9px}
  .line-row{gap:6px;padding:10px}
}
.empty-card .row-actions{justify-content:center}
.manual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.manual-grid .full-field{grid-column:1/-1}.compact-stack{margin-top:10px}.correction-entry{align-items:center}.correction-entry button{flex:none}
@media(max-width:600px){.manual-grid{grid-template-columns:minmax(0,1fr)}.manual-grid .full-field{grid-column:auto}.manual-grid .field input,.manual-grid .field select{min-height:48px;font-size:16px}}
