:root{--bg:#f1f4ee;--surface:#fff;--text:#1b2420;--text-muted:#55625a;--accent:#5a2a6b;--on-accent:#fff;--border:#c9d1c6;--focus:#1b63d6;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:40px;--radius:10px;--tap:44px;--rule:4px;--tabbar:56px;--fs-s:.875rem;--fs-m:1rem;--fs-l:1.25rem;--fs-xl:1.875rem;--fs-control:max(16px, 1rem);--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:ui-rounded, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#1c1722;--surface:#282132;--text:#f0ecf3;--text-muted:#b8aec2;--accent:#d9b8ee;--on-accent:#2a1433;--border:#43394e;--focus:#9cc4ff}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html:has(dialog[open]){overflow:hidden}body{background:var(--bg);color:var(--text);font:var(--fs-m)/1.45 var(--font);margin:0}#root{max-width:34rem;margin:0 auto}h1,h2,p{margin:0}h1,h2{font-family:var(--font-display);letter-spacing:-.01em;line-height:1.15}h1{font-size:var(--fs-xl);font-weight:800}h2{font-size:var(--fs-l);font-weight:700}h1:focus{outline:none}a{color:var(--text)}button,input,select,textarea{font:inherit;font-size:var(--fs-control);color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.num{font-variant-numeric:tabular-nums}.screen,.gate,.login{gap:var(--sp-4);padding:var(--sp-6) var(--sp-4);flex-direction:column;display:flex}.screen{padding-bottom:calc(var(--tabbar) + var(--sp-8) + env(safe-area-inset-bottom))}.screen-head{padding-bottom:var(--sp-3);border-bottom:var(--rule) solid var(--text)}.screen-back{min-height:var(--tap);min-width:var(--tap);align-items:center;font-weight:600;display:inline-flex}.gate,.login{justify-content:center;min-height:100dvh}.gate-loading{text-align:center;color:var(--text-muted)}.login form{gap:var(--sp-4);flex-direction:column;display:flex}.login h1{padding-bottom:var(--sp-3);border-bottom:var(--rule) solid var(--text);font-size:2.5rem}.tabbar{z-index:1;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);justify-content:center;display:flex;position:fixed;inset:auto 0 0}.tabbar a{max-width:8.5rem;min-height:var(--tabbar);border-top:var(--rule) solid transparent;color:var(--text-muted);font-size:var(--fs-s);flex:1;justify-content:center;align-items:center;margin-top:-1px;font-weight:600;text-decoration:none;display:flex}.tabbar a[aria-current=page]{color:var(--text);border-top-color:var(--accent)}.tabbar a:focus-visible{outline-offset:-3px}.btn{min-height:var(--tap);min-width:var(--tap);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius);cursor:pointer;-webkit-tap-highlight-color:transparent;border:2px solid #0000;font-weight:700}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-quiet{color:var(--text);text-underline-offset:.2em;background:0 0;text-decoration:underline}.btn-danger,.btn-outline{color:var(--text);border-color:var(--text);background:0 0}.btn-large{min-height:56px;font-size:var(--fs-l)}.btn:disabled{opacity:.55;cursor:default}.form{gap:var(--sp-4);flex-direction:column;display:flex}.field{gap:var(--sp-1);flex-direction:column;display:flex}.field label,.field-label{font-weight:600}.field input{min-height:var(--tap);width:100%;padding:var(--sp-2) var(--sp-3);background:var(--surface);border:1.5px solid var(--text-muted);border-radius:var(--radius)}.field input[aria-invalid=true]{border:3px solid var(--text)}.field-hint{color:var(--text-muted);font-size:var(--fs-s)}.field-error{font-size:var(--fs-s);font-weight:700}.segmented{border:1.5px solid var(--text-muted);border-radius:var(--radius);background:var(--surface);display:flex;overflow:hidden}.segmented button{min-height:var(--tap);min-width:var(--tap);padding:var(--sp-2);border:0;border-inline-start:1px solid var(--border);cursor:pointer;background:0 0;flex:1}.segmented button:first-child{border-inline-start:0}.segmented button[aria-checked=true]{background:var(--accent);color:var(--on-accent);font-weight:700}.segmented button:focus-visible{outline-offset:-3px}.segmented button[aria-checked=true]:focus-visible{outline-color:var(--on-accent)}.sheet{overscroll-behavior:contain;width:100%;max-width:34rem;max-height:88dvh;padding:calc(var(--sp-4) + env(safe-area-inset-top)) var(--sp-4) var(--sp-6);background:var(--surface);color:var(--text);border:0;border-bottom:var(--rule) solid var(--text);border-radius:0 0 var(--radius) var(--radius);margin:0 auto auto;overflow-y:auto}.sheet::backdrop{background:#0000008c}.sheet-head{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);display:flex}.sheet-head h2{overflow-wrap:anywhere;min-width:0}.sheet-head .btn{flex-shrink:0}.sheet-body{gap:var(--sp-4);flex-direction:column;display:flex}.meter{gap:var(--sp-1);flex-direction:column;display:flex}.meter-text{font-variant-numeric:tabular-nums}.meter-track{background:var(--border);border-radius:5px;height:10px;overflow:hidden}.meter-fill{background:var(--accent);border-radius:5px;height:100%;transition:width .25s ease-out}.food-name{flex-direction:column;align-items:flex-start;min-width:0;display:inline-flex}.food-brand{color:var(--text-muted);font-size:var(--fs-s)}.notice{padding:var(--sp-3);background:var(--surface);border-inline-start:var(--rule) solid var(--border);border-radius:0 var(--radius) var(--radius) 0}.notice-error{border-inline-start-color:var(--text);font-weight:600}.toasts{inset:auto var(--sp-4) calc(var(--tabbar) + var(--sp-3) + env(safe-area-inset-bottom));z-index:2;gap:var(--sp-2);pointer-events:none;flex-direction:column;max-width:32rem;margin:0 auto;display:flex;position:fixed}.toast{justify-content:space-between;align-items:center;gap:var(--sp-3);pointer-events:auto;min-height:var(--tap);padding:var(--sp-1) var(--sp-2) var(--sp-1) var(--sp-4);background:var(--surface);border:2px solid var(--text);border-radius:var(--radius);display:flex}.scanner{overscroll-behavior:contain;width:100%;max-width:34rem;height:100dvh;max-height:none;padding:var(--sp-2) var(--sp-4) calc(var(--sp-6) + env(safe-area-inset-bottom));background:var(--bg);color:var(--text);border:0;margin:0 auto;overflow-y:auto}.scanner[open]{align-items:stretch;gap:var(--sp-3);flex-direction:column;display:flex}.scanner::backdrop{background:var(--bg)}.scanner>*{flex:none}.scanner>.btn{align-self:flex-start}.scanner-bar{align-items:center;gap:var(--sp-2);display:flex}.scanner-close{margin-inline-start:auto}.scanner-cameras,.check-totals,.check-list{margin:0;padding:0;list-style:none}.scanner-view{width:min(100%, calc(50dvh * var(--ratio,1.7778)));aspect-ratio:var(--ratio,1.7778);border-radius:var(--radius);background:#000;align-self:center;position:relative;overflow:hidden}.scanner-view video{width:100%;height:100%;display:block}.scanner-aim{border-radius:var(--radius);border:3px solid #fff;width:90%;height:35%;position:absolute;top:32.5%;left:5%;box-shadow:0 0 0 1px #000000b3}.scanner-aim-hit{background:#ffffff73;border-width:6px}.scanner-status{min-height:1.45em;font-weight:600}.scanner-photo{border:0;align-self:flex-start;align-items:center;display:inline-flex;position:relative}.scanner-photo input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.scanner-photo:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.scanner-typed{align-items:flex-start;gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border);flex-direction:column;display:flex}.scanner-typed .field{align-self:stretch}.check-list li,.check-line{align-items:baseline;gap:0 var(--sp-3);flex-wrap:wrap;display:flex}.check-list li{padding:var(--sp-2) 0;border-top:1px solid var(--border)}.check-code,.check-outcome{font-weight:700}.check-result{gap:var(--sp-2);padding:var(--sp-3);background:var(--surface);border-top:var(--rule) solid var(--text);border-radius:0 0 var(--radius) var(--radius);flex-direction:column;display:flex}.check-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.today-date{justify-content:space-between;gap:var(--sp-3);margin-top:calc(-1 * var(--sp-2));color:var(--text-muted);font-weight:600;display:flex}.day-nav{align-items:end;gap:var(--sp-2);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.day-nav .btn{font-size:var(--fs-xl);padding:0;line-height:1}.today-missing,.unsynced{align-items:flex-start;gap:var(--sp-2);flex-direction:column;display:flex}.unsynced ul,.meal ul{align-self:stretch;margin:0;padding:0;list-style:none}.unsynced li{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.totals{gap:var(--sp-3);padding:var(--sp-4);background:var(--surface);border-radius:var(--radius);flex-direction:column;display:flex}.total{gap:var(--sp-1);flex-direction:column;display:flex}.total-name{font-weight:700}.total .meter-text{font-size:var(--fs-l);font-weight:700}.total-left,.totals-small,.meal-empty,.entry-more{color:var(--text-muted);font-size:var(--fs-s)}.totals-small{gap:0 var(--sp-4);flex-wrap:wrap;display:flex}.today-add{gap:var(--sp-3);display:flex}.today-add .btn-large{flex:1}.meal{align-items:flex-start;gap:var(--sp-1);padding-top:var(--sp-3);border-top:2px solid var(--text);flex-direction:column;display:flex}.meal-head{justify-content:space-between;align-items:baseline;gap:var(--sp-3);align-self:stretch;display:flex}.entry{align-content:center;align-items:baseline;gap:0 var(--sp-3);width:100%;min-height:3.75rem;padding:var(--sp-2) 0;overflow-wrap:anywhere;text-align:start;border:0;border-top:1px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;grid-template-columns:minmax(0,1fr) auto;display:grid}.today-weight{justify-content:space-between;align-items:center;gap:var(--sp-3);padding-top:var(--sp-2);border-top:2px solid var(--text);font-weight:600;display:flex}.switch,.check{align-items:center;gap:var(--sp-3);min-height:var(--tap);display:flex}.switch input,.check input{width:24px;height:24px;accent-color:var(--accent);flex:none;margin:0}.more summary{box-sizing:border-box;min-height:var(--tap);cursor:pointer;padding:10px 0;font-weight:600}.more[open] summary{margin-bottom:var(--sp-2)}.amount{align-items:end;gap:var(--sp-2);grid-template-columns:minmax(0,1fr) auto;display:grid}.amount>span{min-height:var(--tap);align-items:center;font-weight:600;display:flex}.link-btn{justify-content:center;align-self:flex-start;align-items:center;text-decoration:none;display:inline-flex}.food-section{align-items:flex-start;gap:var(--sp-2);flex-direction:column;display:flex}.food-list{align-self:stretch;margin:0;padding:0;list-style:none}.food-row{align-items:flex-start;gap:var(--sp-1);box-sizing:border-box;width:100%;min-height:3.75rem;padding:var(--sp-2) 0;overflow-wrap:anywhere;text-align:start;border:0;border-top:1px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;flex-direction:column;text-decoration:none;display:flex}.food-more{color:var(--text-muted);font-size:var(--fs-s)}.unit-row{align-items:center;gap:var(--sp-2) var(--sp-3);flex-wrap:wrap;display:flex}.unit-row .segmented{flex:auto}.averages{gap:var(--sp-2);padding:var(--sp-4);background:var(--surface);border-radius:var(--radius);flex-direction:column;display:flex}.averages p{flex-direction:column;display:flex}.average-name{font-weight:700}.history-more,.settings-who{color:var(--text-muted);font-size:var(--fs-s)}.history-list{margin:0;padding:0;list-style:none}.history-row{align-items:baseline;gap:0 var(--sp-3);min-height:3.75rem;padding:var(--sp-2) 0;border-top:1px solid var(--border);-webkit-tap-highlight-color:transparent;flex-wrap:wrap;text-decoration:none;display:flex}.history-day{align-items:center;gap:var(--sp-2);flex:1 0 100%;font-weight:700;display:flex}.history-mark{color:var(--text);font-size:var(--fs-s);padding:0 var(--sp-1);border:1.5px solid var(--text);border-radius:50%}.settings-section{align-items:flex-start;gap:var(--sp-3);padding-top:var(--sp-3);border-top:2px solid var(--text);flex-direction:column;display:flex}.settings-section>.form{align-self:stretch}.settings-link{min-height:var(--tap);align-items:center;font-weight:600;display:inline-flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:10ms!important;animation:none!important}}
