.dict-open{align-items:center;gap:var(--space-2);margin:0 0 var(--space-4);display:inline-flex}.dict-icon{flex:none}.dict{margin:0 0 var(--space-5);gap:var(--space-3);display:grid}.dict h3,.dict h4{margin:0}.dict h4{font-size:16px}.dict-status:empty{display:none}.dict-status{color:var(--color-text-muted);margin:0;font-size:14px}.dict-input{gap:var(--space-2);display:grid}.dict-input .btn{justify-self:start}.dict-mic{align-items:center;gap:var(--space-2);display:inline-flex}.dict-mic.listening{background:var(--color-danger);color:var(--color-surface)}.dict-text{gap:6px;font-size:14px;font-weight:600;display:grid}.dict textarea,.dict input[type=date],.dict select{width:100%;min-width:0;min-height:var(--size-touch);border:1px solid var(--color-field-line);border-radius:var(--radius-control);color:var(--color-text);font:inherit;background:var(--color-surface);padding:11px}.dict-rows{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.dict-row>fieldset{border:1px solid var(--color-line);padding:var(--space-3);gap:var(--space-2);border-radius:12px;min-width:0;margin:0;display:grid}.dict-row>fieldset>legend{padding:0 var(--space-1);overflow-wrap:anywhere;font-weight:650}.dict-when{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.dict-when label,.dict-known label{gap:6px;font-size:14px;font-weight:600;display:grid}.dict-known p,.dict-unknown p{margin:0}.dict-known .actions,.dict-unknown .actions{margin-top:var(--space-2)}.dict-choices{gap:var(--space-1);border:0;min-width:0;margin:0;padding:0;display:grid}.dict-choices legend{margin-bottom:var(--space-1);padding:0;font-size:14px;font-weight:600}.dict-choice{align-items:center;gap:var(--space-2);min-height:var(--size-touch);padding:0 var(--space-2);border-radius:var(--radius-control);background:var(--color-surface-2);cursor:pointer;display:flex}.dict-choice input{flex:none;width:20px;height:20px;margin:0}.dict-link{color:var(--color-brand);margin-left:var(--space-1);padding:12px 0;font-size:13px;display:inline-block}.dict-plan{margin-top:var(--space-3);justify-self:start}.dict-review{gap:var(--space-2);display:grid}@media (width<=480px){.dict-when{grid-template-columns:1fr}.dict-plan,.dict-open{width:100%}}@font-face{font-family:Bricolage Grotesque;src:url(/fonts/BricolageGrotesque-Bold.woff2)format("woff2");font-weight:600 800;font-style:normal;font-display:swap}@font-face{font-family:Instrument Sans;src:url(/fonts/InstrumentSans-Regular.woff2)format("woff2");font-weight:400 500;font-style:normal;font-display:swap}@font-face{font-family:Instrument Sans;src:url(/fonts/InstrumentSans-Bold.woff2)format("woff2");font-weight:600 800;font-style:normal;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--color-bg:#fbf5ec;--color-surface:#fffdf9;--color-surface-2:#f3e9db;--color-line:#e6d8c5;--color-field-line:#b9a38d;--color-text:#2b1d16;--color-text-muted:#6b5748;--color-brand:#b5441a;--color-on-brand:#fff;--color-brand-soft:#fde9dc;--color-ok:#2f6b3a;--color-ok-soft:#e3efd8;--color-warn-text:#7a4a00;--color-warn-soft:#ffe8b5;--color-danger:#a3123c;--color-danger-soft:#fbe0e6;--color-plum:#7a2e5a;--color-plum-soft:#f5dfeb;--color-sun:#b26a00;--color-sun-soft:#fff0cc;--color-scrim:#2b1d1680;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--radius-card:24px;--radius-control:12px;--radius-button:14px;--radius-sheet:28px;--radius-pill:999px;--size-touch:44px;--size-button:52px;--size-input:48px;--size-tabbar:72px;--font-display:"Bricolage Grotesque", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:"Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--focus-ring:3px solid var(--color-brand)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-bg:#1c1411;--color-surface:#261b16;--color-surface-2:#32241d;--color-line:#43322a;--color-field-line:#7a6355;--color-text:#f6ebdd;--color-text-muted:#c2ac9b;--color-brand:#f29a6b;--color-on-brand:#2a1208;--color-brand-soft:#4a2416;--color-ok:#9ed68b;--color-ok-soft:#1f3319;--color-warn-text:#f4c26b;--color-warn-soft:#3d2d0e;--color-danger:#ff8fa8;--color-danger-soft:#46141f;--color-plum:#e7a6c8;--color-plum-soft:#40192f;--color-sun:#f4c26b;--color-sun-soft:#3d2d0e;--color-scrim:#0009}}:root{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);font-variant-numeric:tabular-nums;line-height:1.5}*{box-sizing:border-box}body{background:var(--color-bg);margin:0}h1,h2,h3,.wordmark{font-family:var(--font-display);letter-spacing:-.01em}header.app{background:var(--color-bg);color:var(--color-text);justify-content:space-between;align-items:center;gap:var(--space-3);border-bottom:1px solid var(--color-line);flex-wrap:wrap;padding:18px max(20px,50vw - 510px);display:flex}header.app h1{color:var(--color-text);align-items:center;gap:10px;margin:0;font-size:1.75rem;line-height:1.15;display:flex}header.app h1 img{border-radius:10px;flex:none;width:36px;height:36px}header.app span{color:var(--color-text-muted);font-size:.8125rem}.wrap{max-width:1020px;padding:var(--space-5) 18px 60px;margin:auto}h2{margin:0 0 var(--space-4);font-size:1.75rem;line-height:1.15}h3{margin:0 0 7px;font-size:1.125rem;line-height:1.3}:focus-visible{outline:var(--focus-ring);outline-offset:2px}.tabs{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px;padding:3px;display:grid}.tabs button{min-height:var(--size-touch);white-space:nowrap;text-overflow:ellipsis;background:var(--color-surface-2);border-radius:var(--radius-pill);min-width:0;color:var(--color-text);cursor:pointer;font:inherit;border:0;padding:11px 6px;font-weight:650;overflow:hidden}.tabs button[aria-selected=true]{background:var(--color-brand);color:var(--color-on-brand)}.grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;display:grid}.card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-card);padding:18px}.muted{color:var(--color-text-muted);font-size:.8125rem}.row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.tag{background:var(--color-brand-soft);color:var(--color-text);border-radius:var(--radius-pill);white-space:nowrap;padding:5px 10px;font-size:.75rem;font-weight:600}.tag.late,.tag.review{background:var(--color-warn-soft);color:var(--color-warn-text)}.tag.gap{background:var(--color-danger-soft);color:var(--color-danger)}.btn{min-height:var(--size-touch);border-radius:var(--radius-button);background:var(--color-brand);color:var(--color-on-brand);font:inherit;cursor:pointer;border:0;padding:10px 16px;font-weight:650}.btn.secondary{background:var(--color-surface-2);color:var(--color-text)}.actions{gap:var(--space-2);flex-wrap:wrap;margin-top:14px;display:flex}.empty{color:var(--color-text-muted);background:var(--color-surface);border:1px dashed var(--color-field-line);border-radius:var(--radius-card);padding:22px}.form{grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 20px;display:grid}.form label{gap:6px;font-size:.875rem;font-weight:600;display:grid}.form .wide{grid-column:1/-1}.form input:not([type=checkbox]):not([type=radio]),.form select,.form textarea,.dialog input:not([type=checkbox]):not([type=radio]){width:100%;min-width:0;min-height:var(--size-input);border:1px solid var(--color-field-line);border-radius:var(--radius-control);font:inherit;color:var(--color-text);background:var(--color-surface);padding:11px}.form textarea{min-height:96px}.form button{justify-self:start}.notice{margin:0 0 var(--space-4);border-radius:var(--radius-control);background:var(--color-warn-soft);color:var(--color-warn-text);padding:12px 14px;font-size:.875rem}.notice.error{background:var(--color-danger-soft);color:var(--color-danger)}.notice.ok{background:var(--color-ok-soft);color:var(--color-ok)}.notice a{color:inherit;overflow-wrap:anywhere}.line{border-bottom:1px solid var(--color-line);justify-content:space-between;gap:var(--space-3);padding:10px 0;display:flex}.overlay{background:var(--color-scrim);padding:var(--space-4);z-index:10;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-card);padding:var(--space-5);width:min(520px,100%);max-height:90vh;overflow:auto}.dialog label{gap:6px;margin:12px 0;font-weight:600;display:grid}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=560px){header.app{padding:14px 18px}.form{grid-template-columns:1fr}}.env-banner{background:var(--color-warn-soft);color:var(--color-warn-text);text-align:center;border-bottom:2px dashed var(--color-warn-text);margin:0;padding:8px 16px;font-size:.875rem}.reminder h3{margin:0 0 8px;font-size:1rem}.reminder ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.reminder li{justify-content:space-between;align-items:center;gap:8px}.shop-mode{margin:0 0 var(--space-4)}.btn[aria-pressed=true]{background:var(--color-brand);color:var(--color-on-brand)}.basket ul{margin:0 0 var(--space-4);padding:0;list-style:none}.basket-line{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--color-line);grid-template-columns:1fr 96px 76px;display:grid}.basket-check{align-items:center;gap:var(--space-3);min-height:var(--size-touch);cursor:pointer;font-weight:600;display:flex}.basket-check input{width:24px;height:24px;accent-color:var(--color-brand);margin:0}.basket-qty input,.basket-unit select{width:100%;min-width:0;min-height:var(--size-touch);border:1px solid var(--color-field-line);border-radius:var(--radius-control);font:inherit;color:var(--color-text);background:var(--color-surface);padding:10px}span.basket-unit{padding-left:var(--space-2)}.basket .btn:disabled{opacity:.6;cursor:progress}.review{margin:0 0 var(--space-5)}.review h3:focus{outline:none}.review h3:focus-visible{outline:var(--focus-ring)}.review-name{margin:var(--space-3) 0 6px;font-size:.875rem;font-weight:600;display:block}.review input,.review select{width:100%;min-width:0;min-height:var(--size-touch);border:1px solid var(--color-field-line);border-radius:var(--radius-control);font:inherit;color:var(--color-text);background:var(--color-surface);padding:10px}.review input[aria-invalid=true],.review select[aria-invalid=true]{border-color:var(--color-danger)}.review-lines{margin:var(--space-4) 0;gap:var(--space-3);padding:0;list-style:none;display:grid}.review-line fieldset{border:1px solid var(--color-line);border-radius:var(--radius-control);padding:var(--space-3);margin:0}.review-line.needs-review fieldset{border-color:var(--color-warn-text);background:var(--color-warn-soft);border-left-width:4px}.review-line legend{overflow-wrap:anywhere;padding:0 4px;font-weight:650}.review-status{margin:0 0 var(--space-2);color:var(--color-warn-text);font-size:.875rem}.review-fields{gap:var(--space-2);margin-bottom:var(--space-2);grid-template-columns:2fr 1fr 1fr;display:grid}.review-fields label{gap:4px;font-size:.8125rem;font-weight:600;display:grid}.field-error{margin:0 0 var(--space-2);color:var(--color-danger);font-size:.875rem}.review-keep{align-items:center;gap:var(--space-3);min-height:var(--size-touch);cursor:pointer;font-size:.875rem;font-weight:600;display:flex}.review-keep input{width:24px;height:24px;min-height:0;accent-color:var(--color-brand);flex:none;margin:0}.review-queue{margin:0 0 var(--space-4)}.review-queue ul{margin:0;padding:0;list-style:none}.review-queue .line{align-items:center}@media (width<=560px){.review-fields{grid-template-columns:1fr 1fr}.review-fields label:first-child{grid-column:1/-1}}.rating{border:0;flex-wrap:wrap;gap:4px 14px;margin:12px 0;padding:0;display:flex}.rating legend{margin-bottom:6px;padding:0;font-weight:600}.dialog .rating label{min-height:var(--size-touch);align-items:center;gap:6px;margin:0;font-weight:400;display:inline-flex}.horizon{align-items:center;gap:var(--space-3);margin:0 0 var(--space-2);flex-wrap:wrap;font-weight:600;display:flex}.horizon select{min-height:var(--size-touch);border:1px solid var(--color-field-line);border-radius:var(--radius-control);font:inherit;color:var(--color-text);background:var(--color-surface);padding:8px 10px}input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:0;accent-color:var(--color-brand);flex:none;margin:0}.dialog .review-keep{font-size:1rem;display:flex}
