:root{--bg:#f5fafe;--bg-2:#eef4fc;--surface:#fff;--surface-2:#f3f7fc;--line:#d9dfe6;--line-2:#c4cbd5;--text:#232933;--text-2:#4c535e;--muted:#747b85;--accent:#3a75af;--accent-2:#1d5b92;--accent-3:#26a7d0;--accent-soft:#dcedff;--track:#e2e8f0;--c-protein:#6177b6;--c-carb:#c19652;--c-fat:#a26a9d;--c-fiber:#549768;--c-breakfast:#c49e62;--c-lunch:#437eb9;--c-dinner:#7a659e;--c-snack:#c37c7b;--r-sm:8px;--r-md:12px;--r-lg:18px;--r-xl:26px;--r-pill:999px;--sh-1:0 1px 2px #2329330f, 0 4px 14px #2329330f;--sh-2:0 2px 6px #23293314, 0 18px 40px #2329331c;--shadow-tint:#23293321;--grad-accent:linear-gradient(135deg, #1b8abd, #3d5da4);--grad-soft:linear-gradient(150deg, #ebf5ff, #fafdff);--grad-hero:linear-gradient(140deg, #eaf6ff, #fff 64%);--grad-chip:linear-gradient(140deg, #deefff, #f6fbff);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:26px;--sp-7:34px;--sp-8:44px;--font:"Helvetica Neue", Helvetica, "Segoe UI", system-ui, sans-serif;--fs-xxs:11.5px;--fs-xs:12px;--fs-sm:12.5px;--fs-base:13.5px;--fs-md:14.5px;--fs-lg:15px;--fs-xl:17px;--fs-2xl:21px;--fs-3xl:26px;--fs-4xl:30px;--sidebar-w:236px;--content-max:1180px;--tap:44px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@supports (color:lab(0% 0 0)){:root{--bg:lab(97.9056% -.878632 -2.85902);--bg-2:lab(95.9238% -1.16783 -4.33053);--surface:lab(100% 0 0);--surface-2:lab(97.0897% -.78842 -2.89248);--line:lab(88.3779% -1.02812 -4.37371);--line-2:lab(81.4091% -1.34361 -5.81709);--text:lab(16.4045% -.891984 -7.25089);--text-2:lab(34.9735% -1.05603 -7.3164);--muted:lab(51.2245% -1.03059 -6.62159);--accent:lab(47.3632% -5.28905 -37.2292);--accent-2:lab(36.8441% -3.74225 -37.0156);--accent-3:lab(63.3093% -24.1561 -30.9846);--accent-soft:lab(92.9963% -3.54621 -12.3571);--track:lab(91.858% -1.02964 -4.37453);--c-protein:lab(50.4716% 4.60228 -36.1006);--c-carb:lab(65.2398% 10.5128 41.7889);--c-fat:lab(52.1675% 29.253 -18.2875);--c-fiber:lab(57.2166% -30.6546 18.2066);--c-breakfast:lab(67.5788% 9.06521 36.8015);--c-lunch:lab(50.8636% -5.69001 -37.2942);--c-dinner:lab(46.6129% 17.8286 -28.2957);--c-snack:lab(59.6371% 28.6948 12.4999);--sh-1:0 1px 2px lab(16.4045% -.891984 -7.25089/.06), 0 4px 14px lab(16.4045% -.891984 -7.25089/.06);--sh-2:0 2px 6px lab(16.4045% -.891984 -7.25089/.08), 0 18px 40px lab(16.4045% -.891984 -7.25089/.11);--shadow-tint:lab(16.4045% -.891984 -7.25089/.13);--grad-accent:linear-gradient(135deg, lab(53.6515% -16.5567 -35.5576), lab(39.8004% 5.87957 -42.6589));--grad-soft:linear-gradient(150deg, lab(95.9201% -2.12377 -7.10837), lab(99.0674% -.662446 -2.14633));--grad-hero:linear-gradient(140deg, lab(96.2534% -3.09518 -10.6178), lab(100% 0 0) 64%);--grad-chip:linear-gradient(140deg, lab(93.5764% -3.54826 -12.3581), lab(98.2496% -1.30394 -4.28079))}}@media (prefers-color-scheme:dark){:root{--bg:#10141a;--bg-2:#0b0f14;--surface:#191e26;--surface-2:#22272e;--line:#2d333c;--line-2:#404854;--text:#eaeff5;--text-2:#c5cbd2;--muted:#9299a1;--accent:#67aaed;--accent-2:#88c3ff;--accent-3:#65d5f3;--accent-soft:#192f46;--track:#2b3139;--c-protein:#8aa2e4;--c-carb:#e1b671;--c-fat:#cf94c9;--c-fiber:#7fc492;--c-breakfast:#deb77a;--c-lunch:#6da9e7;--c-dinner:#a792ce;--c-snack:#e59a99;--sh-1:0 1px 2px #0000004d, 0 4px 14px #0000003d;--sh-2:0 2px 6px #00000057, 0 18px 40px #0006;--shadow-tint:#00000073;--grad-accent:linear-gradient(135deg, #0398cd, #405ead);--grad-soft:linear-gradient(150deg, #202832, #191e26);--grad-hero:linear-gradient(140deg, #1f2c3a, #191e26 64%);--grad-chip:linear-gradient(140deg, #24374c, #1f2731);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@supports (color:lab(0% 0 0)){:root{--bg:lab(6.15078% -.512183 -4.78888);--bg-2:lab(4.02211% -.354067 -3.71193);--surface:lab(11.2005% -.730678 -5.80703);--surface-2:lab(15.263% -.775501 -5.82429);--line:lab(21.0568% -.88954 -6.55918);--line-2:lab(30.3232% -1.09588 -8.02029);--text:lab(94.1821% -.865072 -3.64933);--text-2:lab(81.4178% -1.02475 -4.37185);--muted:lab(62.8526% -1.1692 -5.08661);--accent:lab(67.1145% -7.16534 -40.8577);--accent-2:lab(76.4835% -7.65583 -37.6854);--accent-3:lab(79.7536% -26.9394 -25.0725);--accent-soft:lab(18.631% -2.98554 -17.024);--track:lab(19.9051% -.814021 -5.83997);--c-protein:lab(66.7792% 3.49945 -36.3415);--c-carb:lab(76.8653% 10.0725 40.8906);--c-fat:lab(68.4234% 29.2871 -18.3574);--c-fiber:lab(73.4674% -30.5268 18.0663);--c-breakfast:lab(76.8751% 8.78146 36.3136);--c-lunch:lab(67.1748% -7.08997 -37.559);--c-dinner:lab(64.0608% 17.3278 -28.478);--c-snack:lab(71.2402% 28.6738 12.4213);--sh-1:0 1px 2px lab(0% 0 0/.3), 0 4px 14px lab(0% 0 0/.24);--sh-2:0 2px 6px lab(0% 0 0/.34), 0 18px 40px lab(0% 0 0/.4);--shadow-tint:lab(0% 0 0/.45);--grad-accent:linear-gradient(135deg, lab(58.4064% -20.1195 -37.084), lab(40.766% 8.47395 -46.2791));--grad-soft:linear-gradient(150deg, lab(15.4871% -1.42625 -7.82047), lab(11.2005% -.730678 -5.80703));--grad-hero:linear-gradient(140deg, lab(17.3134% -2.13279 -11.1628), lab(11.2005% -.730678 -5.80703) 64%);--grad-chip:linear-gradient(140deg, lab(22.1274% -2.62119 -15.6007), lab(15.2494% -1.29421 -7.8555))}}}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-md);-webkit-font-smoothing:antialiased;text-wrap:pretty;overflow-x:hidden}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(120% 80% at 12% -10%, var(--accent-soft), transparent 62%);opacity:.55;position:fixed;inset:0}input,textarea,select,button{font:inherit;color:inherit}a{color:var(--accent-2);text-decoration:none}a:hover{color:var(--accent);text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.num{font-variant-numeric:tabular-nums}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes shimmer{0%{opacity:.45}50%{opacity:.85}to{opacity:.45}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.shell{min-height:100vh;align-items:stretch;min-height:100dvh;display:flex}.sidebar{display:none}.content{flex-direction:column;flex:auto;min-width:0;display:flex}.topbar{z-index:5;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-5);padding-top:max(var(--sp-3), env(safe-area-inset-top));background:color-mix(in oklab, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.topbar-text{flex:auto;min-width:0}.topbar-kicker{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.topbar-title{font-size:var(--fs-2xl);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-weight:600;overflow:hidden}.main{width:100%;max-width:var(--content-max);padding:var(--sp-5) var(--sp-5) var(--sp-7);padding-bottom:calc(96px + env(safe-area-inset-bottom));gap:var(--sp-4);flex-direction:column;flex:auto;margin:0 auto;display:flex}.stack{gap:var(--sp-4);flex-direction:column;display:flex}.stack--tight{gap:10px}.narrow{width:100%;max-width:760px}.brand{align-items:center;gap:10px;display:flex}.brand-mark{background:var(--grad-chip);width:38px;height:38px;color:var(--accent);border-radius:11px;flex:none;place-items:center;display:grid}.brand-name{font-size:var(--fs-xl);letter-spacing:-.01em;font-weight:600}.bottom-nav{z-index:6;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:color-mix(in oklab, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);align-items:stretch;gap:2px;display:flex;position:sticky;bottom:0}.bottom-nav button{min-width:0;min-height:54px;color:var(--muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:500;display:flex}.bottom-nav button[aria-current=page]{color:var(--accent);font-weight:600}.fab{right:18px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:7;background:var(--grad-accent);color:#fff;color:lab(100% 0 0);width:58px;height:58px;box-shadow:var(--sh-2);cursor:pointer;border:none;border-radius:50%;place-items:center;display:grid;position:fixed}@media (min-width:900px){.sidebar{height:100vh;height:100dvh;width:var(--sidebar-w);flex:0 0 var(--sidebar-w);align-self:flex-start;gap:var(--sp-6);padding:22px var(--sp-4);background:var(--surface);border-right:1px solid var(--line);flex-direction:column;display:flex;position:sticky;top:0}.bottom-nav,.fab{display:none}.main{padding-bottom:var(--sp-7)}}.sidebar .brand{padding:0 var(--sp-2)}.sidebar .brand-mark{border-radius:10px;width:34px;height:34px}.sidebar .brand-name{font-size:var(--fs-lg)}.nav-list{gap:var(--sp-1);flex-direction:column;display:flex}.nav-item{min-height:var(--tap);padding:0 var(--sp-3);border-radius:var(--r-md);color:var(--text-2);font-size:var(--fs-md);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:11px;font-weight:500;transition:background .14s,color .14s;display:flex}.nav-item:hover{background:var(--surface-2)}.nav-item[aria-current=page]{background:var(--accent-soft);color:var(--accent-2);font-weight:600}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--sh-1);gap:var(--sp-4);flex-direction:column;min-width:0;display:flex}.card--hero{background:var(--grad-hero);flex-flow:wrap;align-items:center;gap:22px;padding:22px}.card--soft{background:var(--grad-soft);padding:var(--sp-4) var(--sp-5)}.card-title{font-size:var(--fs-lg);font-weight:600}.card-head{align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;display:flex}.card-head .card-title{flex:auto}.card-note{font-size:var(--fs-xs);color:var(--muted);line-height:1.5}.grid{gap:var(--sp-4);display:grid}.grid--split{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}.grid--donuts{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}.grid--charts{grid-template-columns:repeat(auto-fit,minmax(min(460px,100%),1fr))}.grid--tiles{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr))}.grid--fields{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr))}.grid--fields-wide{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}.grid--item-fields{grid-template-columns:repeat(auto-fit,minmax(min(104px,100%),1fr));gap:10px}.divider{background:var(--line);height:1px}.spacer{flex:auto}.chart-frame{width:100%;max-width:820px;margin:0 auto}.chart-frame--wide{max-width:860px}.chart-frame--heatmap{max-width:420px;margin:0}.btn{justify-content:center;align-items:center;gap:var(--sp-2);min-height:var(--tap);padding:0 var(--sp-4);border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--surface-2);color:var(--text);font-size:var(--fs-base);cursor:pointer;font-weight:500;transition:border-color .14s,color .14s,filter .14s,transform .12s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--grad-accent);color:#fff;color:lab(100% 0 0);min-height:50px;font-size:var(--fs-lg);box-shadow:var(--sh-1);border:none;font-weight:600}.btn--primary:hover:not(:disabled){filter:brightness(1.06);color:#fff;color:lab(100% 0 0)}.btn--primary:active:not(:disabled){transform:translateY(1px)}.btn--ghost{background:0 0}.btn--danger:hover:not(:disabled){border-color:var(--c-fat);color:var(--c-fat)}.btn--solid-danger{background:var(--c-fat);color:#fff;color:lab(100% 0 0);border:none;min-height:46px;font-weight:600}.btn--solid-danger:hover:not(:disabled){filter:brightness(1.06);color:#fff;color:lab(100% 0 0)}.btn--dashed{border:1px dashed var(--line-2);border-radius:var(--r-lg);color:var(--text-2);background:0 0;min-height:48px}.btn--dashed:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn--small{min-height:40px;font-size:var(--fs-base);padding:0 13px}.btn--pill{border-radius:var(--r-pill);min-height:40px;padding:0 var(--sp-4);font-size:var(--fs-base);border-color:var(--line);color:var(--text-2);background:0 0}.btn--pill[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-2);font-weight:600}.btn--chip{min-height:36px;padding:0 var(--sp-3);border-radius:var(--r-pill);border-color:var(--line);color:var(--text-2);font-size:var(--fs-sm);background:0 0}.icon-button{width:var(--tap);height:var(--tap);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--text-2);cursor:pointer;flex:none;place-items:center;transition:border-color .14s,color .14s,background .14s;display:grid}.icon-button:hover{background:var(--surface-2)}.icon-button--danger:hover{border-color:var(--c-fat);color:var(--c-fat)}.icon-button--small{width:40px;height:40px}.button-row{gap:var(--sp-3);flex-wrap:wrap;display:flex}.sidebar-cta{min-height:46px;font-size:var(--fs-md);margin-top:auto}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.label{font-size:var(--fs-sm);color:var(--text-2);font-weight:500}.label--tiny{font-size:var(--fs-xxs);letter-spacing:.02em;color:var(--muted);font-weight:400}.input,.select,.textarea{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--r-md);outline:none;width:100%;min-height:46px;padding:0 13px;font-size:16px;transition:border-color .14s}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent)}.input--number{font-variant-numeric:tabular-nums;min-height:var(--tap);padding:0 10px}.textarea{padding:var(--sp-3) var(--sp-4);resize:vertical;min-height:96px;line-height:1.5}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 18px) calc(50% + 2px),calc(100% - 13px) calc(50% + 2px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding:0 34px 0 10px}.search-box{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--r-md);min-height:46px;color:var(--muted);align-items:center;gap:10px;padding:0 13px;display:flex}.search-box input{min-width:0;height:var(--tap);color:var(--text);background:0 0;border:none;outline:none;flex:auto;font-size:16px}.segmented{gap:var(--sp-2);padding:var(--sp-1);background:var(--surface-2);border-radius:var(--r-md);border:1px solid var(--line);display:flex}.segmented button{border-radius:var(--r-sm);min-height:40px;color:var(--text-2);font-size:var(--fs-base);cursor:pointer;background:0 0;border:none;flex:1 1 0;font-weight:500;transition:background .14s,color .14s}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--sh-1);font-weight:600}.dropzone{text-align:center;border:1px dashed var(--line-2);border-radius:var(--r-lg);background:var(--surface-2);min-height:190px;color:var(--muted);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:22px;transition:border-color .14s,color .14s;display:flex;position:relative}.dropzone:hover{border-color:var(--accent);color:var(--accent)}.dropzone-title{font-size:var(--fs-md);color:var(--text-2);font-weight:500}.dropzone-help{font-size:var(--fs-sm);max-width:340px;line-height:1.5}.dropzone input[type=file]{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.photo-preview{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface-2);position:relative;overflow:hidden}.photo-preview img{object-fit:contain;width:100%;height:auto;max-height:420px;display:block}.chip{border-radius:var(--r-pill);background:var(--grad-chip);border:1px solid var(--line);font-size:var(--fs-xs);color:var(--text-2);align-items:center;gap:6px;padding:6px 11px;display:inline-flex}.type-mark{border-radius:var(--r-sm);background:var(--grad-chip);flex:none;place-items:center;width:26px;height:26px;display:grid}.type-mark--lg{border-radius:11px;width:36px;height:36px}.type-mark--md{border-radius:9px;width:30px;height:30px}.notice{padding:15px var(--sp-4);border-radius:var(--r-lg);border:1px solid var(--line-2);background:var(--accent-soft);color:var(--text);font-size:var(--fs-base);align-items:flex-start;gap:10px;line-height:1.55;display:flex}.notice-icon{color:var(--accent-2);flex:none;margin-top:1px}.notice--error{background:var(--surface-2);border-radius:var(--r-md);padding:var(--sp-4)}.notice--error .notice-icon{color:var(--c-fat)}.notice-body{gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.inline-error{gap:var(--sp-2);font-size:var(--fs-base);color:var(--c-fat);align-items:flex-start;line-height:1.45;display:flex}.disclaimer{padding:var(--sp-4) var(--sp-5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-2);font-size:var(--fs-sm);color:var(--text-2);line-height:1.6}.empty-state{padding:46px var(--sp-6);text-align:center;border:1px dashed var(--line-2);border-radius:var(--r-lg);color:var(--muted);flex-direction:column;align-items:center;gap:10px;display:flex}.empty-state-title{font-size:var(--fs-lg);color:var(--text-2);font-weight:500}.empty-state-body{font-size:var(--fs-base);max-width:340px;line-height:1.5}.empty-row{min-height:50px;padding:0 var(--sp-4);border:1px dashed var(--line);border-radius:var(--r-lg);color:var(--muted);font-size:var(--fs-base);align-items:center;gap:9px;display:flex}.add-row{align-items:center;gap:var(--sp-2);min-height:52px;padding:0 var(--sp-4);border:1px dashed var(--line-2);border-radius:var(--r-lg);color:var(--muted);font-size:var(--fs-base);cursor:pointer;text-align:left;background:0 0;transition:border-color .14s,color .14s;display:flex}.add-row:hover{border-color:var(--accent);color:var(--accent)}.skeleton{border-radius:var(--r-lg);background:var(--surface-2);border:1px solid var(--line);animation:1.4s ease-in-out infinite shimmer}.group-head{align-items:center;gap:9px;padding:0 2px;display:flex}.group-title{font-size:var(--fs-base);flex:auto;font-weight:600}.group-total{font-size:var(--fs-base);color:var(--muted)}.meal-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);box-shadow:var(--sh-1);gap:var(--sp-3);flex-direction:column;animation:.2s both rise;display:flex}.meal-card-head{align-items:flex-start;gap:var(--sp-3);display:flex}.meal-name{letter-spacing:-.01em;font-size:15.5px;font-weight:600}.meal-meta{font-size:var(--fs-sm);color:var(--muted)}.meal-cals{font-size:var(--fs-xl);flex:none;font-weight:600}.meal-foot{align-items:center;gap:var(--sp-4);flex-wrap:wrap;display:flex}.history-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-5);box-shadow:var(--sh-1);align-items:center;gap:var(--sp-4);flex-wrap:wrap;display:flex}.history-row-body{flex-direction:column;flex:180px;gap:2px;min-width:0;display:flex}.tile{background:var(--grad-soft);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);box-shadow:var(--sh-1);align-items:flex-start;gap:13px;display:flex}.tile-body{flex-direction:column;gap:2px;min-width:0;display:flex}.tile-label{font-size:var(--fs-sm);color:var(--muted)}.tile-value{font-size:var(--fs-2xl);letter-spacing:-.02em;font-weight:600}.tile-sub{font-size:var(--fs-xs);color:var(--muted)}.legend{gap:var(--sp-4);flex-wrap:wrap;justify-content:center;display:flex}.legend-item{font-size:var(--fs-sm);color:var(--text-2);align-items:center;gap:7px;display:flex}.legend-swatch{border-radius:3px;flex:none;width:9px;height:9px}.legend-line{border-radius:2px;flex:none;width:14px;height:3px}.macro-pill{font-size:var(--fs-sm);color:var(--text-2);align-items:center;gap:6px;display:flex}.macro-swatch{border-radius:2px;flex:none;width:8px;height:8px}.meter-row{align-items:baseline;gap:var(--sp-2);font-size:var(--fs-base);display:flex}.meter-label{color:var(--text-2);flex:auto}.total-box{align-items:baseline;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);flex-wrap:wrap;display:flex}.total-grid{gap:var(--sp-1) var(--sp-4);font-size:var(--fs-sm);color:var(--text-2);grid-template-columns:repeat(2,auto);display:grid}.hero-stats{gap:var(--sp-3);flex-direction:column;flex:130px;min-width:130px;display:flex}.hero-label{font-size:var(--fs-base);color:var(--muted)}.hero-value{letter-spacing:-.02em;font-size:28px;font-weight:600}.hero-sub{font-size:var(--fs-base);color:var(--muted)}.weight-row{align-items:center;gap:var(--sp-3);padding:10px var(--sp-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);display:flex}.overlay{z-index:20;background:#10161f75;background:lab(7.14665% -.650659 -7.13362/.46);animation:.16s both rise;position:fixed;inset:0}.overlay--sheet{justify-content:center;align-items:flex-end;display:flex}.overlay--dialog{padding:var(--sp-5);z-index:21;place-items:center;display:grid}.sheet{gap:var(--sp-4);width:100%;max-width:460px;padding:22px var(--sp-5) calc(22px + env(safe-area-inset-bottom));background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--sh-2);flex-direction:column;max-height:92dvh;margin:auto 0 0;display:flex;overflow-y:auto}@media (min-width:640px){.overlay--sheet{align-items:center}.sheet{border-radius:var(--r-xl);margin:0}}.sheet-head{align-items:center;gap:var(--sp-3);display:flex}.sheet-title{font-size:var(--fs-xl);flex:auto;font-weight:600}.dialog{gap:var(--sp-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);width:100%;max-width:400px;box-shadow:var(--sh-2);flex-direction:column;padding:22px;display:flex}.dialog-title{font-size:var(--fs-xl);font-weight:600}.dialog-body{font-size:var(--fs-base);color:var(--text-2);line-height:1.55}.toast{left:50%;bottom:calc(92px + env(safe-area-inset-bottom));z-index:30;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-pill);background:var(--text);color:var(--bg);font-size:var(--fs-base);box-shadow:var(--sh-2);align-items:center;gap:9px;max-width:calc(100vw - 32px);font-weight:500;animation:.18s both rise;display:flex;position:fixed;transform:translate(-50%)}@media (min-width:900px){.toast{bottom:28px}}.sticky-actions{gap:var(--sp-3);bottom:calc(66px + env(safe-area-inset-bottom));z-index:4;padding:var(--sp-3) 0;background:linear-gradient(to top, var(--bg) 70%, transparent);flex-wrap:wrap;display:flex;position:sticky}@media (min-width:900px){.sticky-actions{bottom:0}}.login-screen{min-height:100vh;min-height:100dvh;padding:var(--sp-6);background:var(--bg-2);place-items:center;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);width:100%;max-width:400px;box-shadow:var(--sh-2);flex-direction:column;gap:22px;padding:32px;display:flex}.login-title{font-size:var(--fs-3xl);letter-spacing:-.02em;font-weight:600}.login-sub{font-size:var(--fs-base);color:var(--muted);line-height:1.5}.chart-svg{touch-action:pan-y;width:100%;height:auto;display:block}.chart-empty{min-height:170px;padding:var(--sp-6);text-align:center;color:var(--muted);font-size:var(--fs-md);border:1px dashed var(--line);border-radius:var(--r-md);background:var(--grad-soft);flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;line-height:1.5;display:flex}.donut{gap:var(--sp-3);flex-direction:column;align-items:center;width:100%;display:flex}.donut-svg{touch-action:pan-y;width:100%;max-width:210px;height:auto;filter:drop-shadow(0 6px 14px var(--shadow-tint));display:block}.donut-keys{gap:var(--sp-2) var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(min(112px,100%),1fr));width:100%;display:grid}.donut-key{align-items:center;gap:var(--sp-2);padding:5px var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-base);color:var(--text-2);min-width:0;transition:background .14s;display:flex}.donut-key-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.donut-key-pct{color:var(--muted);font-variant-numeric:tabular-nums}.ring-wrap{flex:none}.ring-svg{width:152px;height:152px;filter:drop-shadow(0 8px 18px var(--shadow-tint));display:block}.meter-svg{width:100%;height:9px;display:block}.strip-svg{width:100%;height:7px;display:block}.strip-wrap{border-radius:4px;width:100%;overflow:hidden}.spark-svg{width:100%;height:30px;display:block}.spark-wrap{width:100%;max-width:150px;margin-top:var(--sp-1)}.chart-scroll{width:100%;overflow:auto hidden}
