:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font:-apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", Roboto, sans-serif;--font-num:ui-rounded, "SF Pro Rounded", -apple-system, "Segoe UI Variable Display", "Segoe UI", sans-serif;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--hero-ink:#fff;--hero-soft:#c9e0ee;--hero-track:#ffffff21;--hero-protein:#6fe3ae;--hero-carbs:#f5c66b;--hero-fat:#c4b9ff;--meal-1:#e6f4fb;--meal-2:#aedcf3;--meal-3:#7cc4e8;--meal-4:#55aedd;--bg:#f4f8fb;--bg-raised:#fff;--bg-sunken:#e6f0f6;--ink:#1a2b36;--ink-soft:#4d5e6f;--line:#d3dee6;--line-strong:#7d8f9c;--brand:#006394;--brand-ink:#fff;--brand-soft:#d6e8f5;--brand-fill:#006394;--protein:#17864f;--protein-soft:#d2efdf;--carbs:#bd5a10;--carbs-soft:#f8e3d3;--fat:#7350bd;--fat-soft:#e4ddf4;--water:#006394;--warn:#8a5300;--warn-soft:#f8ecd2;--danger:#b3261e;--ok:#17864f;--hero-bg:#00507a;--shadow:0 -8px 30px #00325029;--fab-shadow:0 6px 16px #00507859;--tab-h:62px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#0e1a22;--bg-raised:#16262f;--bg-sunken:#0a141b;--ink:#eaf2f6;--ink-soft:#a7b8c3;--line:#2a3f4c;--line-strong:#6f8898;--brand:#62bff0;--brand-ink:#fff;--brand-soft:#12384d;--brand-fill:#0a78b0;--protein:#33ad6b;--protein-soft:#123f2c;--carbs:#d17e30;--carbs-soft:#42301a;--fat:#8a7ee0;--fat-soft:#2b2a52;--water:#62bff0;--warn:#f0bd5e;--warn-soft:#3f3319;--danger:#f2968e;--ok:#4fd69a;--hero-bg:#133246;--shadow:0 -8px 30px #000a1480;--fab-shadow:0 6px 16px #000a148c}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1a22;--bg-raised:#16262f;--bg-sunken:#0a141b;--ink:#eaf2f6;--ink-soft:#a7b8c3;--line:#2a3f4c;--line-strong:#6f8898;--brand:#62bff0;--brand-ink:#fff;--brand-soft:#12384d;--brand-fill:#0a78b0;--protein:#33ad6b;--protein-soft:#123f2c;--carbs:#d17e30;--carbs-soft:#42301a;--fat:#8a7ee0;--fat-soft:#2b2a52;--water:#62bff0;--warn:#f0bd5e;--warn-soft:#3f3319;--danger:#f2968e;--ok:#4fd69a;--hero-bg:#133246;--shadow:0 -8px 30px #000a1480;--fab-shadow:0 6px 16px #000a148c}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{touch-action:manipulation;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:400 1rem/1.42 var(--font);overscroll-behavior-y:none;margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline:2.5px solid var(--brand);outline-offset:2px;border-radius:6px}h1,h2,h3,p{margin:0}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{max-width:560px;min-height:100dvh;padding:env(safe-area-inset-top) max(16px, env(safe-area-inset-right)) calc(var(--tab-h) + 96px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));margin:0 auto}.tabbar{z-index:10;background:color-mix(in srgb, var(--bg-raised) 94%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);position:fixed;inset:auto 0 0}.tabbar-inner{max-width:560px;height:var(--tab-h);grid-template-columns:1fr 1fr 76px 1fr 1fr;align-items:center;margin:0 auto;display:grid}.tab{min-height:48px;color:var(--ink-soft);letter-spacing:-.01em;align-content:center;justify-items:center;gap:2px;font-size:.72rem;font-weight:500;display:grid}.tab svg{box-sizing:content-box;border-radius:999px;padding:2px 16px}.tab[aria-current=page]{color:var(--brand);font-weight:650}.tab[aria-current=page] svg{background:var(--brand-soft)}.fab{background:var(--brand-fill);width:58px;height:58px;color:var(--brand-ink);box-shadow:var(--fab-shadow);border-radius:50%;justify-self:center;place-items:center;margin-top:-20px;display:grid}.dayhead{align-items:center;gap:2px;padding:10px 0 8px;display:flex}.dayhead-heading{min-width:0;font:inherit;flex:1}.dayhead-title{text-align:left;letter-spacing:-.01em;width:100%;min-width:0;min-height:44px;font-size:1.32rem;font-weight:680}.iconbtn{width:44px;height:44px;color:var(--ink-soft);border-radius:50%;flex:none;place-items:center;display:grid}.iconbtn:active{background:var(--bg-sunken)}.todaypill{border:1px solid var(--line);border-radius:999px;min-height:44px;margin-right:4px;padding:0 12px;font-size:.85rem;font-weight:600}.daycard{background:var(--hero-bg);color:var(--hero-ink);border-radius:20px;margin-bottom:14px;padding:16px 16px 14px}.gauge{grid-template-columns:34px 34px 1fr;gap:8px;padding-bottom:16px;display:grid}.tube{background:var(--hero-track);border-radius:17px;flex-direction:column-reverse;height:196px;display:flex;position:relative;overflow:hidden}.tube-seg{border-top:2px solid var(--hero-bg);flex:none;transition:height .32s cubic-bezier(.2,.8,.2,1)}.tube-goal{background:var(--hero-ink);opacity:.9;height:2px;position:absolute;left:0;right:0}.gauge-text{flex-direction:column;justify-content:space-between;min-width:0;padding-left:10px;display:flex}.rest-number{font-family:var(--font-num);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:clamp(3rem,16vw,4.2rem);font-weight:750;line-height:.98}.rest-label{color:var(--hero-soft);margin-top:4px;font-size:.95rem}.protein-number{font-family:var(--font-num);font-variant-numeric:tabular-nums;color:var(--hero-protein);font-size:1.9rem;font-weight:720;line-height:1.05}.subline{color:var(--ink-soft);font-size:.88rem}.macrorow{grid-template-columns:1fr 1fr;gap:16px;display:grid}.daycard .subline{color:var(--hero-soft)}.macro-name{justify-content:space-between;gap:8px;font-size:.88rem;display:flex}.macro-name b{font-family:var(--font-num);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:650}.bar{border-radius:4px;height:7px;margin-top:5px;overflow:hidden}.bar>span{border-radius:4px;height:100%;transition:width .3s;display:block}.notice{text-wrap:pretty;background:var(--warn-soft);color:var(--ink);border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:.9rem;display:flex}.notice svg{color:var(--warn);flex:none;margin-top:2px}.notice-action{background:var(--brand-soft)}.notice-action svg{color:var(--brand)}.notice-error{background:color-mix(in srgb, var(--danger) 16%, var(--bg))}.notice-error svg{color:var(--danger)}.notice-plain{background:var(--bg-sunken)}.notice-plain svg{color:var(--ink-soft)}.stack{gap:10px;display:grid}.meal{background:var(--bg-raised);border:1px solid var(--line);border-radius:14px;margin-bottom:10px;padding:0 12px}.meal-head{align-items:center;min-height:56px;display:flex}.meal-toggle{text-align:left;flex:1;align-items:center;gap:8px;min-width:0;min-height:56px;display:flex}.meal-toggle svg{color:var(--ink-soft);flex:none;transition:transform .18s}.meal-toggle[aria-expanded=false] svg{transform:rotate(-90deg)}.meal-name{font-size:1.05rem;font-weight:650}.meal-sum{color:var(--ink-soft);font-size:.9rem;font-family:var(--font-num);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}.meal-add{color:var(--brand)}.entry{text-align:left;border-top:1px solid color-mix(in srgb, var(--line) 55%, transparent);align-items:center;gap:10px;width:100%;min-height:54px;padding:7px 0;display:flex}.entry-main{flex:1;min-width:0}.entry-name{text-overflow:ellipsis;white-space:nowrap;font-weight:520;overflow:hidden}.entry-sub{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.entry-kcal{font-family:var(--font-num);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.check{border:2px solid var(--line-strong);width:26px;height:26px;color:var(--brand-ink);border-radius:8px;flex:none;place-items:center;display:grid;position:relative}.check:after{content:"";position:absolute;inset:-11px}.check[data-on=true]{background:var(--brand-fill);border-color:var(--brand-fill)}.day-tools{gap:12px;padding:6px 0 4px;display:grid}.water{grid-template-columns:1fr auto;align-items:center;gap:10px;display:grid}.water-amount{align-items:center;gap:8px;font-weight:600;display:flex}.water-amount svg{color:var(--water)}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:8px;display:flex}.chip{border:1px solid var(--line);white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:6px;min-height:44px;padding:0 14px;font-size:.9rem;font-weight:550;display:inline-flex}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.bulkbar{z-index:11;left:0;right:0;bottom:calc(var(--tab-h) + env(safe-area-inset-bottom) + 8px);justify-content:center;padding:0 16px;display:flex;position:fixed}.bulkbar-inner{background:var(--ink);width:100%;max-width:528px;color:var(--bg);border-radius:14px;justify-content:space-between;align-items:center;gap:4px;padding:8px 12px;display:flex}.bulkbar button{min-height:44px;padding:0 10px;font-size:.92rem;font-weight:600}.pagehead{justify-content:space-between;align-items:center;gap:8px;padding:18px 0 12px;display:flex}.pagehead h1{letter-spacing:-.015em;font-size:1.7rem;font-weight:720}.section{background:var(--bg-raised);border:1px solid var(--line);border-radius:14px;margin-bottom:10px;padding:14px}.section h2{margin-bottom:10px;font-size:1.08rem;font-weight:680}.listrow{text-align:left;border-bottom:1px solid color-mix(in srgb, var(--line) 60%, transparent);align-items:center;gap:10px;width:100%;min-height:58px;padding:8px 0;display:flex}.listrow:last-child{border-bottom:0}.badge{background:var(--bg-sunken);color:var(--ink-soft);white-space:nowrap;border-radius:6px;align-items:center;gap:3px;padding:1px 7px;font-size:.74rem;font-weight:600;display:inline-flex}.badge[data-tone=warn]{background:var(--warn-soft);color:var(--warn)}.badge[data-tone=ok]{color:var(--ok)}.badge[data-tone=danger]{color:var(--danger)}.badge[data-tone=brand]{background:var(--brand-soft);color:var(--brand)}.empty{text-align:center;color:var(--ink-soft);justify-items:center;gap:12px;padding:28px 12px;display:grid}.btn{background:var(--bg-sunken);text-align:center;border-radius:13px;justify-content:center;align-items:center;gap:8px;min-height:50px;padding:0 18px;font-weight:620;display:inline-flex}.btn,.fab,.chip,.addaction{transition:transform .12s var(--ease-out)}.btn:active:not(:disabled),.chip:active,.addaction:active{transform:scale(.97)}.fab:active{transform:scale(.94)}@media (hover:hover){.btn-primary:hover:not(:disabled),.fab:hover{filter:brightness(1.08)}.listrow:hover,.entry:hover{background:var(--bg-sunken)}}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand-fill);color:var(--brand-ink)}.btn-ghost{border:1px solid var(--line);background:0 0}.btn-danger{color:var(--danger);background:0 0;border:1px solid}.btn-block{width:100%}.btn-small{border-radius:10px;min-height:44px;padding:0 12px;font-size:.92rem}.field{gap:4px;min-width:0;display:grid}.field>label,.field-label{color:var(--ink-soft);font-size:.86rem;font-weight:560}.inputwrap{border:1.5px solid var(--line-strong);background:var(--bg-raised);border-radius:11px;align-items:center;min-height:48px;padding:0 12px;display:flex}.inputwrap:focus-within{border-color:var(--brand)}.inputwrap[data-invalid=true]{border-color:var(--danger)}.inputwrap input{background:0 0;border:0;outline:0;flex:1;width:100%;min-width:0;height:44px;font-size:1.0625rem}.inputwrap .suffix{color:var(--ink-soft);margin-left:6px;font-size:.9rem}textarea.bigtext{border:1.5px solid var(--line-strong);background:var(--bg-raised);resize:vertical;border-radius:12px;width:100%;min-height:190px;padding:12px;font-size:1rem}textarea.bigtext:focus{border-color:var(--brand);outline:0}.field-error{color:var(--danger);font-size:.84rem}.field-hint{color:var(--ink-soft);font-size:.82rem}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grid4{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.segmented{background:var(--bg-sunken);border-radius:11px;gap:2px;padding:3px;display:flex}.segmented button{min-height:44px;color:var(--ink-soft);border-radius:9px;flex:1;padding:0 8px;font-size:.92rem;font-weight:560}.segmented button[aria-pressed=true]{background:var(--bg-raised);color:var(--ink);font-weight:650;box-shadow:0 1px 3px #00000024}select.select,input.select{appearance:none;border:1.5px solid var(--line-strong);background-color:var(--bg-raised);width:100%;min-width:0;height:48px;color:var(--ink);border-radius:11px;padding:0 12px;font-size:1rem}select.select{background-image:linear-gradient(45deg, transparent 50%, var(--ink-soft) 50%), linear-gradient(135deg, var(--ink-soft) 50%, transparent 50%);background-position:right 16px center,right 11px center;background-repeat:no-repeat;background-size:5px 5px;padding-right:30px}details.more>summary{cursor:pointer;min-height:44px;color:var(--ink-soft);align-items:center;font-size:.92rem;font-weight:580;display:flex}dialog.sheet{width:100%;max-width:560px;max-height:calc(min(94dvh, 100dvh - env(safe-area-inset-top) - 8px) - var(--kb,0px));margin:auto auto var(--kb,0px);background:var(--bg);color:var(--ink);box-shadow:var(--shadow);border:0;border-radius:20px 20px 0 0;padding:0;overflow:hidden}dialog.sheet[open]{animation:sheet-in .26s var(--ease-drawer);flex-direction:column;display:flex}dialog.sheet::backdrop{background:#140e0a73}dialog.sheet-full{height:calc(min(94dvh, 100dvh - env(safe-area-inset-top) - 8px) - var(--kb,0px))}@keyframes sheet-in{0%{opacity:0;transform:translateY(32px)}}.sheet-head{flex:none;align-items:center;gap:4px;min-height:56px;padding:4px 6px 4px 16px;display:flex}.sheet-head h2{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:1.14rem;font-weight:680;overflow:hidden}.sheet-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;align-content:start;gap:14px;min-height:0;padding:2px 16px 18px;display:grid;overflow-y:auto}.sheet-body:last-child{padding-bottom:calc(18px + env(safe-area-inset-bottom))}.sheet-foot{padding:10px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg);flex:none;gap:8px;display:grid}.addgrid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.addaction{background:var(--brand-soft);text-align:center;border-radius:12px;align-content:center;justify-items:center;gap:5px;min-height:76px;padding:10px 2px;font-size:.78rem;font-weight:580;line-height:1.15;display:grid}.addaction-hero{background:var(--brand-fill);color:var(--brand-ink)}.nutri-table{border-collapse:collapse;width:100%;font-size:.93rem}.nutri-table th,.nutri-table td{text-align:right;border-bottom:1px solid color-mix(in srgb, var(--line) 60%, transparent);font-variant-numeric:tabular-nums;padding:5px 0;font-weight:500}.nutri-table th:first-child,.nutri-table td:first-child{text-align:left}.nutri-table thead th{color:var(--ink-soft);font-size:.8rem}.total{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.total-kcal{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:720}.draft{border:1.5px solid var(--line);background:var(--bg-raised);border-radius:14px;gap:10px;padding:12px;display:grid}.draft[data-selected=false]{background:0 0;border-style:dashed}.draft-row{grid-template-columns:minmax(0,1fr) 96px;align-items:center;gap:8px;font-size:.92rem;display:grid}.draft-row .badge{margin-top:2px}.draft-row .inputwrap{min-height:44px;padding:0 8px}.draft-row .inputwrap input{text-align:right;height:40px;font-size:1rem}pre.snippet{white-space:pre-wrap;word-break:break-word;font:inherit;color:var(--ink-soft);background:var(--bg-sunken);border-radius:8px;max-height:170px;margin:0;padding:8px 10px;font-size:.82rem;overflow:auto}.cal{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-head{color:var(--ink-soft);padding:4px 0;font-size:.76rem}.cal-day{font-variant-numeric:tabular-nums;border-radius:10px;min-height:44px;position:relative}.cal-day[data-selected=true]{background:var(--brand-fill);color:var(--brand-ink)}.cal-day[data-today=true]:not([data-selected=true]){outline:1.5px solid var(--brand);outline-offset:-2px}.cal-dot{background:currentColor;border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:6px;left:50%}.scanner-video{aspect-ratio:4/3;object-fit:cover;background:#000;border-radius:14px;width:100%}.chart{width:100%;height:auto;display:block}.chart text{fill:var(--ink-soft);font-size:10px;font-family:var(--font)}.stat{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:720;line-height:1.1}.toast{z-index:40;left:16px;right:16px;bottom:calc(var(--tab-h) + env(safe-area-inset-bottom) + 12px);background:var(--ink);max-width:528px;color:var(--bg);min-height:50px;animation:toast-in .18s var(--ease-out);border-radius:13px;justify-content:space-between;align-items:center;gap:10px;margin:0 auto;padding:6px 8px 6px 14px;display:flex;position:fixed}.toast button{min-height:44px;color:inherit;text-underline-offset:3px;padding:0 10px;font-weight:700;text-decoration:underline}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.updatebar{background:var(--brand-fill);color:var(--brand-ink);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding:8px 8px 8px 14px;font-size:.92rem;display:flex}.updatebar button{min-height:44px;color:inherit;padding:0 12px;font-weight:700;text-decoration:underline}.wordmark{font-family:var(--font-num);color:var(--brand);letter-spacing:-.03em;font-size:2.6rem;font-weight:760}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
