:root{--cream: #faf8f5;--paper: #fffdfa;--charcoal: #2a2a28;--sage: #5b7c4d;--sage-light: #7a9b6c;--gold: #b8943f;--gold-muted: #c9aa5e;--warm-gray: #e8e4df;--light-green: #e8ede5;--deep-green: #2f4a2b;--line: #e3ded7;--muted: #8a8579;--muted-2: #6f6a5f;--amber: #b8943f;--danger: #a8562f;--font-serif: "Cormorant Garamond", Georgia, serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "Share Tech Mono", ui-monospace, monospace;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--radius: 14px;--radius-sm: 10px;--radius-pill: 999px;--shadow: 0 1px 2px rgba(42, 42, 40, .04), 0 6px 20px rgba(42, 42, 40, .06);--shadow-lift: 0 2px 6px rgba(42, 42, 40, .08), 0 14px 32px rgba(42, 42, 40, .1);--bar-bg: rgba(250, 248, 245, .86);--sunk: #f1efe9;--shell-max: 600px}[data-theme=dark]{--cream: #1b1d18;--paper: #24271f;--charcoal: #ece8df;--sage: #7fa368;--sage-light: #9bbd84;--gold: #cdac5d;--gold-muted: #c9aa5e;--warm-gray: #313529;--light-green: #2a3326;--deep-green: #bcd0ab;--line: #3a3e32;--muted: #9a9588;--muted-2: #c2bdb0;--amber: #cdac5d;--danger: #d98b63;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 20px rgba(0, 0, 0, .28);--shadow-lift: 0 2px 6px rgba(0, 0, 0, .35), 0 14px 32px rgba(0, 0, 0, .4);--bar-bg: rgba(22, 24, 19, .82);--sunk: #1f221b}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);color:var(--charcoal);background:var(--cream);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:500;margin:0;line-height:1.12;letter-spacing:.2px}a{color:var(--sage);text-decoration:none}button{font-family:inherit}.kicker{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage)}.kicker--muted{color:var(--muted)}.kicker--gold{color:var(--gold)}.muted{color:var(--muted)}.shell{min-height:100%;max-width:var(--shell-max);margin:0 auto;background:var(--cream);position:relative;display:flex;flex-direction:column}@media (min-width: 640px){.shell{box-shadow:0 0 0 1px var(--line);min-height:100vh}}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + var(--s4)) var(--s5) var(--s3);background:var(--bar-bg);-webkit-backdrop-filter:saturate(1.1) blur(8px);backdrop-filter:saturate(1.1) blur(8px);border-bottom:1px solid var(--line)}.topbar .wordmark{display:flex;flex-direction:column;gap:2px}.topbar .wordmark .name{font-family:var(--font-serif);font-size:1.28rem;line-height:1;color:var(--charcoal)}.iconbtn{border:1px solid var(--line);background:var(--paper);color:var(--muted-2);width:38px;height:38px;border-radius:var(--radius-pill);display:grid;place-items:center;cursor:pointer;transition:.15s}.iconbtn:hover{color:var(--sage);border-color:var(--sage-light)}.main{flex:1;padding:var(--s5) var(--s5) 120px}.tabbar{position:sticky;bottom:0;z-index:20;max-width:var(--shell-max);margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);align-items:end;padding:var(--s2) var(--s3) calc(env(safe-area-inset-bottom) + var(--s2));background:var(--bar-bg);-webkit-backdrop-filter:saturate(1.1) blur(10px);backdrop-filter:saturate(1.1) blur(10px);border-top:1px solid var(--line)}.tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;padding:var(--s2) 0;color:var(--muted);cursor:pointer;font-size:.58rem;letter-spacing:.04em;font-family:var(--font-sans);text-transform:uppercase}.tab svg{width:22px;height:22px;stroke-width:1.6}.tab.active{color:var(--sage)}.fab-capture{position:fixed;z-index:30;bottom:calc(env(safe-area-inset-bottom) + 78px);left:50%;transform:translate(-50%);margin-left:calc(var(--shell-max) / 2 - 36px);width:58px;height:58px;border-radius:var(--radius-pill);background:var(--sage);color:#fff;border:none;display:grid;place-items:center;box-shadow:var(--shadow-lift);cursor:pointer;transition:.15s}.fab-capture:hover{background:var(--deep-green)}.fab-capture:active{transform:translate(-50%) scale(.96)}@media (max-width: 640px){.fab-capture{left:auto;right:18px;transform:none;margin-left:0}.fab-capture:active{transform:scale(.96)}}.fab-capture svg{width:28px;height:28px;stroke-width:2}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.chip{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;padding:3px 9px;border-radius:var(--radius-pill);background:var(--light-green);color:var(--deep-green);border:1px solid transparent;white-space:nowrap}.chip--month{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.08em;background:transparent;border-color:var(--line);color:var(--muted-2)}.chip--gold{background:#b8943f1f;color:var(--gold)}.pill{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;padding:4px 10px;border-radius:var(--radius-pill);border:1px solid var(--line);color:var(--muted-2);background:var(--paper)}.pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.pill--sage{color:var(--sage);border-color:#5b7c4d59}.pill--gold{color:var(--gold);border-color:#b8943f66}.pill--done{color:var(--muted)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:var(--font-sans);font-size:.88rem;font-weight:500;padding:11px 18px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--paper);color:var(--charcoal);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{border-color:var(--sage-light)}.btn--primary{background:var(--sage);border-color:var(--sage);color:#fff}.btn--primary:hover{background:var(--deep-green);border-color:var(--deep-green)}.btn--ghost{background:none;border-color:var(--line);color:var(--muted-2)}.btn--danger{color:var(--danger);border-color:#a8562f59;background:none}.btn--block{width:100%}.btn--sm{font-size:.8rem;padding:8px 14px}.field{margin-bottom:var(--s5)}.label{display:block;font-family:var(--font-mono);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);margin-bottom:var(--s2)}.label .opt{color:var(--muted);margin-left:6px}.input,.textarea,.select{width:100%;font-family:var(--font-sans);font-size:1rem;color:var(--charcoal);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;transition:.15s}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--sage-light);box-shadow:0 0 0 3px #5b7c4d1f}.textarea{resize:vertical;line-height:1.5}.hint{font-size:.76rem;color:var(--muted);margin-top:6px}.segmented{display:inline-flex;background:var(--warm-gray);border-radius:var(--radius-pill);padding:3px;gap:2px}.segmented button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;padding:8px 16px;border-radius:var(--radius-pill);font-size:.82rem;color:var(--muted-2);cursor:pointer;transition:.15s}.segmented button.on{background:var(--paper);color:var(--sage);box-shadow:var(--shadow);font-weight:500}.empty{text-align:center;padding:var(--s7) var(--s4);color:var(--muted)}.empty h3{color:var(--charcoal);font-size:1.5rem;margin-bottom:var(--s2)}.empty p{font-size:.92rem;line-height:1.5;margin:0 auto var(--s5);max-width:36ch}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:var(--s6) 0 var(--s4)}.section-head:first-child{margin-top:0}.section-head h2{font-size:1.5rem}.page-title{font-size:2rem;margin-bottom:var(--s2)}.thumb{border-radius:var(--radius-sm);object-fit:cover;background:var(--light-green)}.thumb--empty{display:grid;place-items:center;color:var(--sage-light);background:var(--light-green);border:1px solid rgba(91,124,77,.12)}.card-list{display:flex;flex-direction:column;gap:var(--s4)}.rec-card{display:flex;gap:var(--s4);width:100%;text-align:left;padding:var(--s4);cursor:pointer;transition:.15s}.rec-card:hover{box-shadow:var(--shadow-lift);border-color:var(--warm-gray)}.rec-card .rec-thumb{width:86px;height:86px;flex-shrink:0}.rec-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.rec-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s2)}.rec-title{font-size:1.32rem;line-height:1.05}.rec-loc{font-size:.82rem;color:var(--muted);margin:0}.rec-chips{margin-top:2px}.rec-note{font-size:.86rem;line-height:1.45;color:var(--muted-2);margin:4px 0 0}.detail-hero{width:100%;height:240px;border-radius:var(--radius);object-fit:cover;margin-bottom:var(--s5)}.detail-meta{display:flex;align-items:center;gap:var(--s3);margin:var(--s2) 0 var(--s4);flex-wrap:wrap}.detail-section{margin:var(--s5) 0}.detail-section>.label{margin-bottom:var(--s3)}.detail-note{font-size:1.02rem;line-height:1.6;color:var(--charcoal)}.raw-note{margin-top:var(--s3)}.raw-note-text{margin-top:var(--s2);padding-left:var(--s4);border-left:2px solid var(--line);font-size:.9rem;font-style:italic;line-height:1.55;color:var(--muted)}.toprow{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s4)}.line-item{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);margin-bottom:var(--s2)}.line-item .li-main{display:flex;flex-direction:column;gap:2px;min-width:0}.line-item .li-name{font-weight:500}.line-item .li-sub{font-size:.78rem;color:var(--muted)}.month-head{display:flex;align-items:baseline;gap:var(--s3);margin:var(--s6) 0 var(--s3)}.month-head h2{font-size:1.6rem}.month-head.current h2{color:var(--sage)}.standing{font-family:var(--font-mono);font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:var(--radius-pill);border:1px solid var(--line);color:var(--muted-2)}.standing--carry,.standing--closing{color:var(--gold);border-color:#b8943f66;background:#b8943f14}.standing--open{color:var(--sage);border-color:#5b7c4d59}.row{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}.stack{display:flex;flex-direction:column}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.linklike{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;color:var(--sage);font-family:var(--font-sans);font-size:.8rem;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:0}.linklike.danger{color:var(--danger)}.divider{border:0;border-top:1px solid var(--line);margin:var(--s6) 0 var(--s4)}.searchbar{display:flex;align-items:center;gap:var(--s2);border:1px solid var(--line);background:var(--paper);border-radius:var(--radius-pill);padding:0 var(--s4);margin-bottom:var(--s4)}.searchinput{border:0;background:none;outline:none;font-family:var(--font-sans);font-size:.95rem;padding:12px 0;width:100%;color:var(--charcoal)}.chip-toggle{cursor:pointer;border:1px solid var(--line);background:var(--paper);color:var(--muted-2);transition:.12s}.chip-toggle.on{background:var(--light-green);color:var(--deep-green);border-color:var(--sage-light)}.summary-card{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--s4);cursor:pointer;transition:.15s}.summary-card:hover{box-shadow:var(--shadow-lift)}.summary-ic{width:40px;height:40px;border-radius:var(--radius-pill);display:grid;place-items:center;background:#b8943f1f;color:var(--gold)}.thumb-lg{width:80px;height:80px}.photo-add{width:80px;height:80px;border-radius:var(--radius-sm);border:1px dashed var(--sage-light);background:var(--light-green);color:var(--sage);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:.6rem;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.photo-add:hover{border-color:var(--sage)}.add-row{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px dashed var(--line);background:none;color:var(--sage);border-radius:var(--radius-sm);padding:11px;font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:.12s}.add-row:hover{border-color:var(--sage-light);background:#5b7c4d0a}.sub-form{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--sunk);padding:var(--s4);margin-bottom:var(--s2)}.sub-form .select{flex:1}.calc-out{margin:var(--s3) 0 0;font-size:.92rem}.organize-row{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s3)}.organize-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:7px;font-family:var(--font-sans);font-size:.82rem;font-weight:500;padding:8px 14px;border-radius:var(--radius-pill);border:1px solid var(--gold-muted);background:#b8943f1a;color:var(--gold);cursor:pointer;transition:.15s}.organize-btn:hover:not(:disabled){background:#b8943f2e}.organize-btn:disabled{opacity:.5;cursor:default}.month-strip{display:flex;gap:6px;overflow-x:auto;padding-bottom:var(--s3);margin-bottom:var(--s4);-webkit-overflow-scrolling:touch}.month-pill{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:0 0 auto;border:1px solid var(--line);background:var(--paper);color:var(--muted-2);font-family:var(--font-mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;padding:8px 12px;border-radius:var(--radius-pill);cursor:pointer}.month-pill.now{border-color:var(--gold-muted);color:var(--gold)}.month-pill.on{background:var(--sage);border-color:var(--sage);color:#fff}.shop-group{padding:var(--s4) var(--s4) var(--s2)}.shop-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--s3)}.shop-head h3{font-size:1.4rem}.shop-total{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;color:var(--gold)}.shop-line{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) 0;border-top:1px solid var(--line)}.shop-where{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;display:flex;align-items:baseline;gap:var(--s3);cursor:pointer;text-align:left;min-width:0}.shop-qty{font-family:var(--font-mono);color:var(--charcoal);font-size:.9rem}.shop-loc{font-size:.86rem;color:var(--muted-2)}.shop-status{font-family:var(--font-sans);font-size:.78rem;border:1px solid var(--line);border-radius:var(--radius-pill);padding:5px 10px;background:var(--paper);color:var(--muted-2);cursor:pointer}.combo-card{padding:var(--s4);display:flex;flex-direction:column;gap:6px}.combo-plants{font-family:var(--font-mono);font-size:.74rem;color:var(--deep-green);margin:0;display:flex;align-items:center;gap:6px}
