@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bricolage-grotesque-vietnamese-400-normal-B7Iv8-Rg.woff2) format("woff2"),url(/assets/bricolage-grotesque-vietnamese-400-normal-Sle7MYWg.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bricolage-grotesque-latin-ext-400-normal-D42HmrHD.woff2) format("woff2"),url(/assets/bricolage-grotesque-latin-ext-400-normal-BH175q6o.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bricolage-grotesque-latin-400-normal-A6LyuA6R.woff2) format("woff2"),url(/assets/bricolage-grotesque-latin-400-normal-D89K-qEP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/bricolage-grotesque-vietnamese-800-normal-RJtJa6zl.woff2) format("woff2"),url(/assets/bricolage-grotesque-vietnamese-800-normal-DJ4hCX8l.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/bricolage-grotesque-latin-ext-800-normal-BimIDUhy.woff2) format("woff2"),url(/assets/bricolage-grotesque-latin-ext-800-normal-CkoBqIJM.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/bricolage-grotesque-latin-800-normal-J50vIsBe.woff2) format("woff2"),url(/assets/bricolage-grotesque-latin-800-normal-Br4b-5gk.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-sans-latin-ext-400-normal-Q_nF8v4l.woff2) format("woff2"),url(/assets/instrument-sans-latin-ext-400-normal-r32jotim.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-sans-latin-400-normal-DRC__1Mx.woff2) format("woff2"),url(/assets/instrument-sans-latin-400-normal-D1W7dsQl.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/instrument-sans-latin-ext-600-normal-BsaQcF38.woff2) format("woff2"),url(/assets/instrument-sans-latin-ext-600-normal-DMks36a2.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/instrument-sans-latin-600-normal-B7fBEWYG.woff2) format("woff2"),url(/assets/instrument-sans-latin-600-normal-B9e8oLYv.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spline Sans Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/spline-sans-mono-latin-ext-400-normal-BfWvPoNT.woff2) format("woff2"),url(/assets/spline-sans-mono-latin-ext-400-normal-BkT5i7fe.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spline Sans Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/spline-sans-mono-latin-400-normal-mUpA6Mve.woff2) format("woff2"),url(/assets/spline-sans-mono-latin-400-normal-739QRW1l.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spline Sans Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/spline-sans-mono-latin-ext-600-normal-CYO0557q.woff2) format("woff2"),url(/assets/spline-sans-mono-latin-ext-600-normal-es3wdE0V.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spline Sans Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/spline-sans-mono-latin-600-normal-BrWm9FVc.woff2) format("woff2"),url(/assets/spline-sans-mono-latin-600-normal-ZCqv2Jod.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ground: #f6f9f4;--surface: #ffffff;--surface-2: #edf2ea;--sunk: #e4ebe1;--ink: #151f1a;--ink-2: #33443b;--muted: #5c6e63;--line: #d9e2d6;--accent: #0e6156;--accent-ink: #ffffff;--accent-soft: #ddefeb;--amp-g: #127a4e;--amp-y: #c08a0a;--amp-r: #a32718;--amp-g-text: #127a4e;--amp-y-text: #8a6200;--amp-r-text: #a32718;--amp-g-bg: #e2f3e7;--amp-y-bg: #fbefd5;--amp-r-bg: #fae4e0;--ns-a: #038141;--ns-b: #85bb2f;--ns-c: #fecb02;--ns-d: #ee8100;--ns-e: #e63e11;--ns-a-ink: #ffffff;--ns-b-ink: #10240a;--ns-c-ink: #241d00;--ns-d-ink: #ffffff;--ns-e-ink: #ffffff;--danger: #a32718;--shadow-1: 0 1px 2px rgba(21, 31, 26, .05);--shadow-2: 0 1px 2px rgba(21, 31, 26, .05), 0 12px 28px -18px rgba(21, 31, 26, .35);--shadow-accent: 0 8px 20px -8px rgba(14, 97, 86, .7);--font-display: "Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--font-body: "Instrument Sans", ui-sans-serif, system-ui, sans-serif;--font-mono: "Spline Sans Mono", ui-monospace, SFMono-Regular, monospace;--fs-micro: .688rem;--fs-tiny: .75rem;--fs-small: .813rem;--fs-body: .938rem;--fs-lead: 1.063rem;--fs-title: 1.313rem;--fs-head: 1.75rem;--fs-display: 2.75rem;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 28px;--sp-7: 40px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--r-pill: 999px;--app-max: 480px;--tabbar-h: 62px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--ground: #0d1411;--surface: #161f1b;--surface-2: #1d2823;--sunk: #232f29;--ink: #e8efe9;--ink-2: #c3d0c7;--muted: #8fa398;--line: #2a362f;--accent: #3fc0ab;--accent-ink: #06211d;--accent-soft: #123029;--amp-g: #1ea163;--amp-y: #d0a02a;--amp-r: #c44c3e;--amp-g-text: #4bd08a;--amp-y-text: #e8bc55;--amp-r-text: #f5877a;--amp-g-bg: #12301f;--amp-y-bg: #2e2611;--amp-r-bg: #331a16;--danger: #f5877a;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 1px 2px rgba(0, 0, 0, .4), 0 14px 30px -18px rgba(0, 0, 0, .8);--shadow-accent: 0 8px 20px -8px rgba(0, 0, 0, .75);color-scheme:dark}}:root[data-theme=dark]{--ground: #0d1411;--surface: #161f1b;--surface-2: #1d2823;--sunk: #232f29;--ink: #e8efe9;--ink-2: #c3d0c7;--muted: #8fa398;--line: #2a362f;--accent: #3fc0ab;--accent-ink: #06211d;--accent-soft: #123029;--amp-g: #1ea163;--amp-y: #d0a02a;--amp-r: #c44c3e;--amp-g-text: #4bd08a;--amp-y-text: #e8bc55;--amp-r-text: #f5877a;--amp-g-bg: #12301f;--amp-y-bg: #2e2611;--amp-r-bg: #331a16;--danger: #f5877a;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 1px 2px rgba(0, 0, 0, .4), 0 14px 30px -18px rgba(0, 0, 0, .8);--shadow-accent: 0 8px 20px -8px rgba(0, 0, 0, .75);color-scheme:dark}:root[data-theme=light]{--ground: #f6f9f4;--surface: #ffffff;--surface-2: #edf2ea;--sunk: #e4ebe1;--ink: #151f1a;--ink-2: #33443b;--muted: #5c6e63;--line: #d9e2d6;--accent: #0e6156;--accent-ink: #ffffff;--accent-soft: #ddefeb;--amp-g: #127a4e;--amp-y: #c08a0a;--amp-r: #a32718;--amp-g-text: #127a4e;--amp-y-text: #8a6200;--amp-r-text: #a32718;--amp-g-bg: #e2f3e7;--amp-y-bg: #fbefd5;--amp-r-bg: #fae4e0;--danger: #a32718;--shadow-1: 0 1px 2px rgba(21, 31, 26, .05);--shadow-2: 0 1px 2px rgba(21, 31, 26, .05), 0 12px 28px -18px rgba(21, 31, 26, .35);--shadow-accent: 0 8px 20px -8px rgba(14, 97, 86, .7);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:800;letter-spacing:-.02em;text-wrap:balance}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{font-size:16px}button{cursor:pointer;touch-action:manipulation}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}ul{margin:0;padding:0;list-style:none}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app{display:flex;flex-direction:column;height:100%;max-width:var(--app-max);margin:0 auto;background:var(--ground);position:relative;touch-action:manipulation}@media(min-width:520px){body{background:var(--surface-2)}.app{border-left:1px solid var(--line);border-right:1px solid var(--line)}}.screen{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:var(--sp-4) var(--sp-4) calc(var(--sp-7) + var(--sp-5));display:flex;flex-direction:column;gap:var(--sp-5)}.screen[hidden]{display:none}.screen>*{flex:0 0 auto}.screen-head{display:flex;flex-direction:column;gap:2px;padding-top:max(var(--sp-2),env(safe-area-inset-top))}.screen-head h1{font-size:var(--fs-title);line-height:1.1}.screen-head .sub{font-size:var(--fs-tiny);color:var(--muted)}.section{display:flex;flex-direction:column;gap:var(--sp-3)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.empty{display:flex;flex-direction:column;gap:var(--sp-2);align-items:flex-start;padding:var(--sp-5);background:var(--surface-2);border-radius:var(--r-lg)}.empty h2{font-size:var(--fs-lead)}.empty p{font-size:var(--fs-small);color:var(--ink-2)}.seg{display:inline-flex;background:var(--surface-2);border-radius:var(--r-md);padding:3px;gap:2px;align-self:flex-start;max-width:100%;overflow-x:auto;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}.seg button{border:0;background:transparent;color:var(--muted);font-size:var(--fs-tiny);font-weight:600;padding:7px 14px;border-radius:var(--r-sm);white-space:nowrap}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);border:1px solid transparent;border-radius:var(--r-md);padding:11px 18px;font-size:var(--fs-small);font-weight:600;background:var(--accent);color:var(--accent-ink);min-height:44px}.btn.ghost{background:transparent;border-color:var(--line);color:var(--ink)}.btn.quiet{background:var(--surface-2);color:var(--ink)}.btn.danger{background:transparent;border-color:var(--line);color:var(--danger)}.btn:disabled{opacity:.45;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:var(--fs-tiny);color:var(--ink-2);font-weight:600}.field input,.field select{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:11px 13px;min-height:44px;width:100%}.field .hint{font-size:var(--fs-micro);color:var(--muted)}.field .err{font-size:var(--fs-micro);color:var(--danger)}.banner{display:flex;gap:var(--sp-2);align-items:flex-start;background:var(--surface-2);border-radius:var(--r-md);padding:var(--sp-3);font-size:var(--fs-tiny);color:var(--ink-2)}.banner.warn{background:var(--amp-y-bg);color:var(--ink)}.banner.bad{background:var(--amp-r-bg);color:var(--ink)}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.tabbar{position:relative;flex:none;display:grid;grid-template-columns:1fr 1fr 72px 1fr 1fr;align-items:stretch;height:var(--tabbar-h);padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);overflow:visible}.tabbar .tab{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:transparent;color:var(--muted);font-size:var(--fs-micro);font-weight:500;padding:6px 2px;border-radius:var(--r-sm)}.tabbar .tab .label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabbar .tab.on{color:var(--accent);font-weight:600}.tabbar .tab svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.tabbar .tab.on svg{stroke-width:2.1}.scan-fab{position:absolute;left:50%;top:-20px;transform:translate(-50%);width:58px;height:58px;border-radius:20px;border:3px solid var(--surface);background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-accent);transition:transform .18s cubic-bezier(.2,.8,.25,1)}.scan-fab:active{transform:translate(-50%) scale(.94)}.scan-fab.closing{background:var(--ink);color:var(--surface);box-shadow:none}.scan-fab svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 12px);z-index:60;width:min(calc(var(--app-max) - 32px),calc(100vw - 32px));display:flex;align-items:center;gap:var(--sp-3);background:var(--ink);color:var(--ground);border-radius:var(--r-md);padding:12px 14px;box-shadow:var(--shadow-2);font-size:var(--fs-small)}.toast .msg{flex:1;min-width:0}.toast button{flex:none;border:0;background:transparent;color:var(--ground);font-weight:700;font-size:var(--fs-small);text-decoration:underline;padding:4px 2px}@media(prefers-reduced-motion:no-preference){.toast{animation:toast-in .22s cubic-bezier(.2,.8,.25,1)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}}.ampel-barcode{display:inline-flex;align-items:flex-end;gap:2px;flex:none;height:22px}.ampel-barcode.lg{height:34px;gap:3px}.ampel-barcode .bar{display:block;width:3px;border-radius:1.5px;background:var(--c);height:max(4px,calc(var(--h) * 100%))}.ampel-barcode.lg .bar{width:5px;border-radius:2.5px}.ampel-barcode .bar.unknown{opacity:.7}@media(prefers-reduced-motion:no-preference){.ampel-barcode .bar{animation:ampel-grow .42s cubic-bezier(.2,.8,.25,1) backwards}.ampel-barcode .bar:nth-child(1){animation-delay:.02s}.ampel-barcode .bar:nth-child(2){animation-delay:.07s}.ampel-barcode .bar:nth-child(3){animation-delay:.12s}.ampel-barcode .bar:nth-child(4){animation-delay:.17s}}@keyframes ampel-grow{0%{height:2px;opacity:.15}}.sheet-scrim{position:fixed;inset:0;z-index:70;background:#08100c73;display:flex;align-items:flex-end;justify-content:center}.sheet{width:min(var(--app-max),100vw);max-height:88vh;overflow-y:auto;background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:var(--sp-4) var(--sp-4) calc(var(--sp-5) + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--sp-4);box-shadow:var(--shadow-2)}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.sheet-head h2{font-size:var(--fs-lead)}.sheet-close{flex:none;width:36px;height:36px;border:0;border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);display:flex;align-items:center;justify-content:center}.sheet-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.sheet-body{display:flex;flex-direction:column;gap:var(--sp-4)}@media(prefers-reduced-motion:no-preference){.sheet{animation:sheet-up .24s cubic-bezier(.2,.8,.25,1)}.sheet-scrim{animation:scrim-in .24s ease}}@keyframes sheet-up{0%{transform:translateY(14px)}}@keyframes scrim-in{0%{opacity:0}}.amount-product{display:flex;flex-direction:column;gap:1px}.amount-product .nm{font-size:var(--fs-body);font-weight:600;line-height:1.25}.amount-product .br{font-size:var(--fs-tiny);color:var(--muted)}.amount-preview{display:flex;align-items:baseline;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--surface-2);border-radius:var(--r-md)}.amount-preview .big{font-family:var(--font-display);font-weight:800;font-size:var(--fs-head);line-height:1;letter-spacing:-.03em}.amount-preview .unit{font-size:var(--fs-tiny);color:var(--muted)}.amount-actions{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-3)}.ns-badge{display:inline-flex;align-items:center;justify-content:center;flex:none;width:26px;height:26px;border-radius:7px;font-family:var(--font-display);font-weight:800;font-size:15px;line-height:1}.ns-badge.lg{width:52px;height:52px;border-radius:13px;font-size:30px}.ns-badge.a{background:var(--ns-a);color:var(--ns-a-ink)}.ns-badge.b{background:var(--ns-b);color:var(--ns-b-ink)}.ns-badge.c{background:var(--ns-c);color:var(--ns-c-ink)}.ns-badge.d{background:var(--ns-d);color:var(--ns-d-ink)}.ns-badge.e{background:var(--ns-e);color:var(--ns-e-ink)}.ns-badge.none{background:var(--surface-2);color:var(--muted);border:1px dashed var(--line)}.ns-scale{display:flex;gap:3px}.ns-scale .step{flex:1;display:flex;align-items:center;justify-content:center;height:26px;border-radius:6px;font-family:var(--font-display);font-weight:800;font-size:13px;opacity:.28;filter:saturate(.5)}.ns-scale .step.on{opacity:1;filter:none;height:34px;font-size:18px;align-self:center}.ns-scale .step.a{background:var(--ns-a);color:var(--ns-a-ink)}.ns-scale .step.b{background:var(--ns-b);color:var(--ns-b-ink)}.ns-scale .step.c{background:var(--ns-c);color:var(--ns-c-ink)}.ns-scale .step.d{background:var(--ns-d);color:var(--ns-d-ink)}.ns-scale .step.e{background:var(--ns-e);color:var(--ns-e-ink)}.top-tabs{position:relative;display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.top-tabs button{border:0;background:transparent;color:var(--muted);font-size:var(--fs-small);font-weight:600;padding:10px 0;min-height:44px}.top-tabs button[aria-selected=true]{color:var(--ink)}.top-tabs .indicator{position:absolute;bottom:-1px;height:2px;width:50%;background:var(--accent);border-radius:2px;transition:transform .24s cubic-bezier(.2,.8,.25,1)}.top-tabs .indicator.eaten{transform:translate(0)}.top-tabs .indicator.searched{transform:translate(100%)}.panels{overflow:hidden;margin:0 calc(-1 * var(--sp-4))}.panels .track{display:flex;width:200%;transition:transform .26s cubic-bezier(.2,.8,.25,1)}.panels .track.eaten{transform:translate(0)}.panels .track.searched{transform:translate(-50%)}.panels .panel{flex:0 0 50%;width:50%;min-width:0;padding:var(--sp-4) var(--sp-4) 0}.history-groups{display:flex;flex-direction:column;gap:var(--sp-5)}.row-hint{font-size:var(--fs-micro);color:var(--muted)}.entry-row{display:flex;align-items:center;gap:var(--sp-2);border-bottom:1px solid var(--line)}.entry-row:last-child{border-bottom:0}.entry-row .main{flex:1;min-width:0;display:flex;align-items:center;gap:var(--sp-3);border:0;background:transparent;color:inherit;text-align:left;padding:10px 2px;border-radius:var(--r-md)}.entry-row .time{flex:none;width:42px;font-size:var(--fs-micro);color:var(--muted)}.entry-row .info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.entry-row .name{font-size:var(--fs-small);font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-row .meta{font-size:var(--fs-micro);color:var(--muted)}.row-delete{flex:none;width:34px;height:34px;border:0;border-radius:var(--r-md);background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center}.row-delete:hover,.row-delete:focus-visible{color:var(--danger);background:var(--surface-2)}.row-delete svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.chart{margin:0;display:flex;flex-direction:column;gap:var(--sp-2)}.chart-plot{position:relative}.chart svg{display:block;width:100%;height:auto;overflow:visible;touch-action:pan-y}.chart .grid{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}.chart .area{fill:var(--accent);opacity:.12}.chart .line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.chart .crosshair{stroke:var(--muted);stroke-width:1;opacity:.5;vector-effect:non-scaling-stroke}.chart .endpoint{fill:var(--accent);stroke:var(--surface);stroke-width:2;vector-effect:non-scaling-stroke}.chart-tooltip{position:absolute;top:-4px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:0;pointer-events:none;background:var(--ink);color:var(--ground);border-radius:var(--r-sm);padding:4px 8px;white-space:nowrap;font-size:var(--fs-micro);max-width:90%}.chart-tooltip .val{font-weight:700}.chart-axis{display:flex;justify-content:space-between;font-size:var(--fs-micro);color:var(--muted)}.sugar-bars{position:relative;display:flex;align-items:flex-end;gap:2px;height:96px;padding-top:8px}.sugar-col{flex:1;min-width:0;height:100%;display:flex;align-items:flex-end}.sugar-bar{width:100%;border-radius:4px 4px 0 0;transition:height .28s cubic-bezier(.2,.8,.25,1)}.sugar-limit{position:absolute;left:0;right:0;height:0;border-top:1.5px dashed var(--ink);opacity:.45}.meter{display:flex;flex-direction:column;gap:6px}.meter-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3)}.meter-head .cap{font-size:var(--fs-tiny);color:var(--ink-2)}.meter-head .num{font-size:var(--fs-tiny);font-weight:600}.meter-track{position:relative;height:10px;border-radius:5px;background:var(--sunk)}.meter-fill{position:absolute;left:0;top:0;bottom:0;border-radius:5px;transition:width .3s cubic-bezier(.2,.8,.25,1)}.meter-limit{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ink);opacity:.5}.meter-note{font-size:var(--fs-micro)}.band-split{display:flex;gap:2px;height:12px;border-radius:6px;overflow:hidden}.band-split .seg-fill{display:block;min-width:4px}.band-legend{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.band-legend li{display:flex;align-items:center;gap:5px;font-size:var(--fs-micro);color:var(--muted)}.band-legend .dot{width:9px;height:9px;border-radius:3px;flex:none}.band-legend .count{font-weight:700}.hero-stat{display:flex;flex-direction:column;gap:2px}.hero-stat .big{font-family:var(--font-display);font-weight:800;font-size:var(--fs-display);line-height:.9;letter-spacing:-.035em}.hero-stat .cap{font-size:var(--fs-tiny);color:var(--muted)}.chart-note{font-size:var(--fs-micro);color:var(--muted)}.chart-note strong{color:var(--ink)}.detail-body{flex:1;min-height:0;overflow-y:auto;padding:var(--sp-2) var(--sp-4) 92px;display:flex;flex-direction:column;gap:var(--sp-6)}.detail-head{display:flex;gap:var(--sp-3);align-items:flex-start}.detail-head .thumb{flex:none;width:56px;height:56px;border-radius:var(--r-md);background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden}.detail-head .thumb img{width:100%;height:100%;object-fit:cover}.detail-head .thumb svg{width:26px;height:26px;fill:none;stroke:var(--muted);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.detail-head .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.detail-head h1{font-size:var(--fs-lead);line-height:1.15}.detail-head .brand{font-size:var(--fs-tiny);color:var(--ink-2)}.detail-head .code{font-size:var(--fs-micro);color:var(--muted)}.detail-screen .note{font-size:var(--fs-tiny);color:var(--muted)}.ampel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.ampel-bars{display:flex;flex-direction:column;gap:var(--sp-3)}.ampel-bar{display:grid;grid-template-columns:10ch 1fr 8ch;align-items:center;gap:var(--sp-3)}.ampel-bar .lbl{font-size:var(--fs-tiny);color:var(--ink-2)}.ampel-bar .track{position:relative;height:10px;border-radius:5px;background:var(--sunk)}.ampel-bar .fill{position:absolute;left:0;top:0;bottom:0;border-radius:5px;transition:width .3s cubic-bezier(.2,.8,.25,1)}.ampel-bar .tick{position:absolute;left:50%;top:-3px;bottom:-3px;width:1.5px;background:var(--ink);opacity:.35}.ampel-bar .val{font-size:var(--fs-tiny);font-weight:600;text-align:right}.detail-screen .legend{font-size:var(--fs-micro);color:var(--muted)}.basis-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.nutrition{display:flex;flex-direction:column}.nutrition li{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);font-size:var(--fs-tiny);padding:8px 0;border-bottom:1px solid var(--line)}.nutrition li:last-child{border-bottom:0}.nutrition li span:last-child{font-weight:600}.source-link{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-tiny);align-self:flex-start}.source-link svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.detail-screen .fab{position:absolute;right:var(--sp-4);bottom:var(--sp-4);height:48px;padding:0 20px;border:0;border-radius:var(--r-lg);background:var(--accent);color:var(--accent-ink);font-size:var(--fs-small);font-weight:700;box-shadow:var(--shadow-accent)}.detail-screen .fab:active{transform:scale(.96)}.edit-body{flex:1;min-height:0;overflow-y:auto;padding:var(--sp-2) var(--sp-4) var(--sp-7);display:flex;flex-direction:column;gap:var(--sp-4)}.edit-form{display:flex;flex-direction:column;gap:var(--sp-4)}.hint-text{font-size:var(--fs-micro);color:var(--muted)}.label-as-text{font-size:var(--fs-tiny);color:var(--ink-2);font-weight:600}.nutrient-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}.checkbox{display:flex;gap:var(--sp-3);align-items:flex-start;background:var(--surface-2);border-radius:var(--r-md);padding:var(--sp-3)}.checkbox input{margin-top:2px;width:20px;height:20px;accent-color:var(--accent);flex:none}.checkbox>span{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-tiny)}.checkbox .hint{color:var(--muted);font-size:var(--fs-micro)}.candidates{display:flex;flex-direction:column;gap:var(--sp-2)}.candidates button{width:100%;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-md);padding:var(--sp-3);display:flex;flex-direction:column;gap:3px}.candidates .ct{font-size:var(--fs-small);font-weight:600}.candidates .cu{font-size:var(--fs-micro);color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.candidates .cs{font-size:var(--fs-micro);color:var(--muted)}.edit-actions{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-3)}.scan-screen{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--ground)}.viewfinder{position:relative;flex:1;min-height:0;background:#0b0f0d;overflow:hidden;display:flex;align-items:center;justify-content:center}.viewfinder video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.viewfinder .frame{position:relative;width:min(74%,260px);aspect-ratio:3 / 2}.viewfinder .frame i{position:absolute;width:26px;height:26px;border:2.5px solid #e9f5ee}.viewfinder .frame i:nth-child(1){top:0;left:0;border-right:0;border-bottom:0;border-radius:7px 0 0}.viewfinder .frame i:nth-child(2){top:0;right:0;border-left:0;border-bottom:0;border-radius:0 7px 0 0}.viewfinder .frame i:nth-child(3){bottom:0;left:0;border-right:0;border-top:0;border-radius:0 0 0 7px}.viewfinder .frame i:nth-child(4){bottom:0;right:0;border-left:0;border-top:0;border-radius:0 0 7px}.viewfinder .laser{position:absolute;left:10px;right:10px;top:50%;height:2px;border-radius:1px;background:var(--amp-g)}@media(prefers-reduced-motion:no-preference){.viewfinder .laser{animation:scan-sweep 2.6s ease-in-out infinite}}@keyframes scan-sweep{0%,to{transform:translateY(-58px)}50%{transform:translateY(58px)}}.viewfinder .hint{position:absolute;left:0;right:0;bottom:20px;text-align:center;color:#c9dcd2;font-size:var(--fs-tiny);padding:0 var(--sp-4)}.viewfinder .overlay-msg{position:relative;display:flex;align-items:center;gap:var(--sp-2);color:#c9dcd2;font-size:var(--fs-small)}.scan-error{position:relative;max-width:300px;margin:0 var(--sp-4);background:var(--surface);border-radius:var(--r-lg);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2);align-items:flex-start}.scan-error h2{font-size:var(--fs-lead)}.scan-error p{font-size:var(--fs-small);color:var(--ink-2)}.torch{position:absolute;top:max(var(--sp-4),env(safe-area-inset-top));right:var(--sp-4);width:42px;height:42px;border:0;border-radius:var(--r-md);background:#ffffff29;color:#eef7f1;display:flex;align-items:center;justify-content:center}.torch.on{background:#eef7f1;color:#0b0f0d}.torch svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}.scan-controls{flex:none;background:var(--ground);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.scan-controls .banner{align-items:center;justify-content:space-between}.manual{display:grid;grid-template-columns:1fr auto;gap:var(--sp-3);align-items:end}.product-row{display:flex;align-items:center;gap:var(--sp-2);border-bottom:1px solid var(--line)}.product-row:last-child{border-bottom:0}.product-row .main{flex:1;min-width:0;display:flex;align-items:center;gap:var(--sp-3);border:0;background:transparent;color:inherit;text-align:left;padding:10px 2px;border-radius:var(--r-md)}.product-row .thumb{flex:none;width:40px;height:40px;border-radius:var(--r-sm);background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden}.product-row .thumb img{width:100%;height:100%;object-fit:cover}.product-row .thumb svg{width:20px;height:20px;fill:none;stroke:var(--muted);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.product-row .info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.product-row .name{font-size:var(--fs-small);font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-row .meta{font-size:var(--fs-micro);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-add{flex:none;width:34px;height:34px;border:0;border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center}.quick-add svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}.quick-add:active{transform:scale(.93)}.search-field{display:flex;align-items:center;gap:var(--sp-2);background:var(--surface-2);border-radius:var(--r-md);padding:0 var(--sp-3)}.search-field svg{flex:none;width:17px;height:17px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round}.search-field input{flex:1;min-width:0;border:0;background:transparent;padding:12px 0;min-height:44px;font-size:16px}.search-field input:focus{outline:none}.search-field:focus-within{outline:2px solid var(--accent);outline-offset:2px}.search-status{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-small);color:var(--muted)}.search-count{margin-bottom:calc(-1 * var(--sp-2))}.list{padding:0 var(--sp-3)}.setting-row{display:flex;flex-direction:column;gap:var(--sp-2)}.setting-label{font-size:var(--fs-tiny);color:var(--ink-2);font-weight:600}.setting-stack{display:flex;flex-direction:column;gap:var(--sp-2);align-items:stretch}.setting-stack .hint-text{margin-bottom:var(--sp-2)}.confirm-row{display:flex;flex-direction:column;gap:var(--sp-3);background:var(--amp-r-bg);border-radius:var(--r-md);padding:var(--sp-3)}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.confirm-row .hint-text{color:var(--ink)}.account-stub{display:flex;flex-direction:column;gap:var(--sp-2);align-items:flex-start;background:var(--surface-2);border-radius:var(--r-md);padding:var(--sp-4)}.settings-screen .hint-text{font-size:var(--fs-micro);color:var(--muted)}.update-bar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:10px var(--sp-4);padding-top:max(10px,env(safe-area-inset-top));background:var(--accent);color:var(--accent-ink);font-size:var(--fs-tiny)}.update-bar button{border:0;background:#ffffff2e;color:inherit;font-weight:600;font-size:var(--fs-tiny);padding:6px 12px;border-radius:var(--r-sm)}.overlay{position:absolute;inset:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));z-index:40;background:var(--ground);display:flex;flex-direction:column}@media(prefers-reduced-motion:no-preference){.overlay{animation:overlay-in .2s cubic-bezier(.2,.8,.25,1)}}@keyframes overlay-in{0%{opacity:0;transform:translateY(8px)}}.overlay-head{flex:none;display:flex;align-items:center;gap:var(--sp-2);padding:max(var(--sp-2),env(safe-area-inset-top)) var(--sp-2) var(--sp-2);background:var(--ground)}.overlay-head .back{width:40px;height:40px;border:0;border-radius:var(--r-md);background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:center}.overlay-head .back svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.overlay-head .title{flex:1;min-width:0;font-size:var(--fs-small);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
