@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-ext-wght-normal-CGKlZYBf.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-wght-normal-DLqwHbi6.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-ext-wght-normal-e3e57Shi.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-wght-normal-CO1l-giJ.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-vietnamese-wght-normal-LcSrhZ7T.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-ext-wght-normal-BnEbWgdZ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-wght-normal-DLxlUchJ.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,:root[data-theme=pine]{--c-bg:#f2f5f1;--c-surface:#fff;--c-ink:#131816;--c-ink-muted:#4c5751;--c-accent:#14523c;--c-accent-ink:#f6fffa;--c-border:#dde4de;--c-scrim:#101a15;--c-success:#1c7749;--c-warning:#8f5c10;--c-danger:#ab3838;--c-info:#2b60cf;--elev-1:0 1px 2px color-mix(in oklab, var(--c-scrim) 7%, transparent);--elev-2:0 2px 4px color-mix(in oklab, var(--c-scrim) 5%, transparent), 0 8px 20px color-mix(in oklab, var(--c-scrim) 7%, transparent);--elev-3:0 4px 8px color-mix(in oklab, var(--c-scrim) 6%, transparent), 0 18px 44px color-mix(in oklab, var(--c-scrim) 12%, transparent)}:root[data-theme=night]{--c-bg:#0f1216;--c-surface:#171b21;--c-ink:#e9edf0;--c-ink-muted:#a4afb9;--c-accent:#7fd2a4;--c-accent-ink:#07130c;--c-border:#29313a;--c-scrim:#04070a;--c-success:#5ec98c;--c-warning:#dfae5c;--c-danger:#ec8484;--c-info:#7ba6ff;--elev-1:0 1px 2px color-mix(in oklab, var(--c-scrim) 45%, transparent);--elev-2:0 2px 4px color-mix(in oklab, var(--c-scrim) 35%, transparent), 0 10px 24px color-mix(in oklab, var(--c-scrim) 45%, transparent);--elev-3:0 4px 10px color-mix(in oklab, var(--c-scrim) 40%, transparent), 0 20px 50px color-mix(in oklab, var(--c-scrim) 60%, transparent)}:root[data-theme=blush]{--c-bg:#faf3f5;--c-surface:#fffbfc;--c-ink:#2f2027;--c-ink-muted:#6b5461;--c-accent:#9d445c;--c-accent-ink:#fff8fa;--c-border:#ecd9e0;--c-scrim:#2b1a21;--c-success:#1f7a52;--c-warning:#8d5a14;--c-danger:#ad3546;--c-info:#6a51ad;--elev-1:0 1px 2px color-mix(in oklab, var(--c-scrim) 7%, transparent);--elev-2:0 2px 4px color-mix(in oklab, var(--c-scrim) 5%, transparent), 0 8px 20px color-mix(in oklab, var(--c-scrim) 8%, transparent);--elev-3:0 4px 8px color-mix(in oklab, var(--c-scrim) 6%, transparent), 0 18px 44px color-mix(in oklab, var(--c-scrim) 13%, transparent)}:root[data-theme=slate]{--c-bg:#f0f3f8;--c-surface:#fff;--c-ink:#161e29;--c-ink-muted:#4a596c;--c-accent:#2c4a72;--c-accent-ink:#f5f9ff;--c-border:#d6dde7;--c-scrim:#0d1420;--c-success:#1a7350;--c-warning:#8a5a12;--c-danger:#a93a3a;--c-info:#2657cd;--elev-1:0 1px 2px color-mix(in oklab, var(--c-scrim) 8%, transparent);--elev-2:0 2px 4px color-mix(in oklab, var(--c-scrim) 6%, transparent), 0 8px 20px color-mix(in oklab, var(--c-scrim) 9%, transparent);--elev-3:0 4px 8px color-mix(in oklab, var(--c-scrim) 7%, transparent), 0 18px 44px color-mix(in oklab, var(--c-scrim) 14%, transparent)}:root[data-theme=cream]{--c-bg:#f5f0e8;--c-surface:#fdfaf4;--c-ink:#2a2218;--c-ink-muted:#6b5d48;--c-accent:#7a4f2e;--c-accent-ink:#fdf8f2;--c-border:#e4d8c6;--c-scrim:#1e170f;--c-success:#3a7250;--c-warning:#8a5a12;--c-danger:#a83232;--c-info:#3a5fa8;--elev-1:0 1px 2px color-mix(in oklab, var(--c-scrim) 8%, transparent);--elev-2:0 2px 4px color-mix(in oklab, var(--c-scrim) 6%, transparent), 0 8px 20px color-mix(in oklab, var(--c-scrim) 9%, transparent);--elev-3:0 4px 8px color-mix(in oklab, var(--c-scrim) 7%, transparent), 0 18px 44px color-mix(in oklab, var(--c-scrim) 14%, transparent)}:root{--bg:var(--c-bg);--surface:var(--c-surface);--surface-sunken:color-mix(in oklab, var(--c-ink) 5%, var(--c-bg));--surface-hover:color-mix(in oklab, var(--c-ink) 5%, var(--c-surface));--surface-active:color-mix(in oklab, var(--c-ink) 9%, var(--c-surface));--surface-quiet:color-mix(in oklab, var(--c-ink) 3%, var(--c-surface));--scrim:color-mix(in oklab, var(--c-scrim) 55%, transparent);--text:var(--c-ink);--text-muted:var(--c-ink-muted);--text-subtle:color-mix(in oklab, var(--c-ink-muted) 87%, var(--c-bg));--text-on-accent:var(--c-accent-ink);--border:var(--c-border);--border-strong:color-mix(in oklab, var(--c-ink) 20%, var(--c-border));--ring:color-mix(in oklab, var(--c-accent) 72%, transparent);--ring-width:3px;--ring-offset:2px;--accent:var(--c-accent);--accent-hover:color-mix(in oklab, var(--c-accent) 86%, var(--c-ink));--accent-active:color-mix(in oklab, var(--c-accent) 74%, var(--c-ink));--accent-soft:color-mix(in oklab, var(--c-accent) 11%, var(--c-surface));--accent-soft-hover:color-mix(in oklab, var(--c-accent) 18%, var(--c-surface));--accent-line:color-mix(in oklab, var(--c-accent) 34%, var(--c-border));--accent-text:color-mix(in oklab, var(--c-accent) 88%, var(--c-ink));--success:var(--c-success);--success-soft:color-mix(in oklab, var(--c-success) 12%, var(--c-surface));--success-text:color-mix(in oklab, var(--c-success) 82%, var(--c-ink));--warning:var(--c-warning);--warning-soft:color-mix(in oklab, var(--c-warning) 13%, var(--c-surface));--warning-text:color-mix(in oklab, var(--c-warning) 82%, var(--c-ink));--danger:var(--c-danger);--danger-hover:color-mix(in oklab, var(--c-danger) 85%, var(--c-ink));--danger-soft:color-mix(in oklab, var(--c-danger) 12%, var(--c-surface));--danger-text:color-mix(in oklab, var(--c-danger) 84%, var(--c-ink));--info:var(--c-info);--info-soft:color-mix(in oklab, var(--c-info) 12%, var(--c-surface));--info-text:color-mix(in oklab, var(--c-info) 84%, var(--c-ink));--macro-protein:#3f6fd8;--macro-fat:#c1841c;--macro-carbs:#7856c4;--macro-kcal:var(--accent);--water:#1f7fa8;--sleep:#575cc2;--macro-protein-text:color-mix(in oklab, var(--macro-protein) 72%, var(--c-ink));--macro-fat-text:color-mix(in oklab, var(--macro-fat) 72%, var(--c-ink));--macro-carbs-text:color-mix(in oklab, var(--macro-carbs) 72%, var(--c-ink));--chart-1:#3f6fd8;--chart-2:#c1841c;--chart-3:#7856c4;--chart-4:#1c8168;--chart-5:#bd5279;--chart-6:#64748b;--source-mine:var(--accent);--source-seed:#3579a1;--source-off:#ac7027;--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-full:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--gap-card:var(--sp-3);--gap-section:var(--sp-6);--pad-card:clamp(var(--sp-4), 2.2vw, var(--sp-6));--font-sans:"Inter Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:"Literata Variable", "Iowan Old Style", Georgia, serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace;--fs-display:clamp(2.25rem, 1.55rem + 2.8vw, 3.5rem);--fs-h1:clamp(1.75rem, 1.35rem + 1.6vw, 2.5rem);--fs-h2:clamp(1.25rem, 1.14rem + .45vw, 1.5rem);--fs-h3:clamp(1.0625rem, 1.02rem + .2vw, 1.1875rem);--fs-lg:1.0625rem;--fs-md:.9375rem;--fs-sm:.8125rem;--fs-xs:.75rem;--lh-tight:1.05;--lh-snug:1.25;--lh-normal:1.5;--lh-relaxed:1.65;--track-display:-.028em;--track-tight:-.014em;--track-normal:0;--track-wide:.08em;--fw-normal:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--motion:1;--dur-fast:.12s;--dur:.18s;--dur-slow:.3s;--dur-slower:.46s;--ease-out:cubic-bezier(.22, .75, .2, 1);--ease-in-out:cubic-bezier(.5, 0, .3, 1);--ease-spring:cubic-bezier(.32, 1.5, .5, 1);--sidebar-w:264px;--content-max:940px;--nav-h:60px;--tap-min:44px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}:root[data-theme=night]{--macro-protein:#7ea9f5;--macro-fat:#dfb063;--macro-carbs:#ab91ee;--water:#63c1e6;--sleep:#8f95ef;--chart-1:#7ea9f5;--chart-2:#dfb063;--chart-3:#ab91ee;--chart-4:#5cc3a0;--chart-5:#ee93b3;--chart-6:#9db0c4;--source-seed:#69b0d6;--source-off:#d9a25f}:root{--preview-pine-bg:#f2f5f1;--preview-pine-surface:#fff;--preview-pine-accent:#14523c;--preview-night-bg:#0f1216;--preview-night-surface:#171b21;--preview-night-accent:#7fd2a4;--preview-blush-bg:#faf3f5;--preview-blush-surface:#fffbfc;--preview-blush-accent:#9d445c;--preview-slate-bg:#f0f3f8;--preview-slate-surface:#fff;--preview-slate-accent:#2c4a72;--preview-cream-bg:#f5f0e8;--preview-cream-surface:#fdfaf4;--preview-cream-accent:#7a4f2e}@media (prefers-reduced-motion:reduce){:root{--motion:0}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-normal);font-feature-settings:"cv05" 1, "cv09" 1, "ss03" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;overflow-x:clip}#root{isolation:isolate;min-height:100dvh;transition:opacity calc(.16s * var(--motion)) var(--ease-out)}h1,h2,h3,h4{font-weight:var(--fw-semibold);color:var(--text);text-wrap:balance;margin:0}h1{font-family:var(--font-display);font-size:var(--fs-h1);line-height:var(--lh-tight);letter-spacing:var(--track-display);font-weight:var(--fw-medium)}h2{font-family:var(--font-display);font-size:var(--fs-h2);line-height:var(--lh-snug);letter-spacing:var(--track-tight);font-weight:var(--fw-medium)}h3{font-size:var(--fs-h3);line-height:var(--lh-snug);letter-spacing:var(--track-tight)}p{text-wrap:pretty;margin:0}strong,b{font-weight:var(--fw-semibold)}small{font-size:var(--fs-sm)}a{color:var(--accent-text);transition:color calc(var(--dur-fast) * var(--motion)) var(--ease-out);text-decoration:none}a:hover{color:var(--accent-hover)}hr{height:1px;margin:var(--sp-4) 0;background:var(--border);border:0}img,svg,video,canvas{max-width:100%;display:block}ul,ol{margin:0;padding:0}.num,time,[data-num]{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle)}.tiny{font-size:var(--fs-sm);color:var(--text-muted);line-height:var(--lh-normal);margin:0}.error{color:var(--danger-text)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button,input,textarea,select{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin:0}fieldset{border:0;margin:0;padding:0}legend{padding:0}::placeholder{color:var(--text-subtle);opacity:1}::selection{background:color-mix(in oklab, var(--accent) 32%, transparent);color:var(--text)}.msg--ai .msg__body ::selection{background:color-mix(in oklab, var(--accent) 26%, transparent);color:var(--accent-text)}.msg--ai .msg__body ::selection{background:color-mix(in oklab, var(--accent) 26%, transparent);color:var(--accent-text)}:focus{outline:none}:focus-visible{outline:var(--ring-width) solid var(--ring);outline-offset:var(--ring-offset)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--r-full);background:var(--border-strong);background-clip:content-box;border:3px solid #0000}::-webkit-scrollbar-thumb:hover{background:color-mix(in oklab, var(--text-muted) 60%, transparent);background-clip:content-box}@keyframes ka-rise{0%{opacity:0;transform:translateY(10px)}}@keyframes ka-fade{0%{opacity:0}}@keyframes ka-scale-in{0%{opacity:0;transform:scale(.97)}}@keyframes ka-slide-up{0%{transform:translateY(100%)}}@keyframes ka-grow{0%{scale:1 0}to{scale:1}}@keyframes ka-spin{to{transform:rotate(1turn)}}@keyframes ka-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes ka-pulse{50%{opacity:.45}}@keyframes ka-thinking-bar{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes ka-typing{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}@keyframes ka-locale-in{0%{opacity:.35}to{opacity:1}}#root.locale-swap-out{opacity:.28;pointer-events:none}#root.locale-swap-in{animation:ka-locale-in calc(.22s * var(--motion)) var(--ease-out) both}@supports (view-transition-name:none){::view-transition-old(root){animation-duration:calc(.28s * var(--motion));animation-timing-function:var(--ease-out)}::view-transition-new(root){animation-duration:calc(.28s * var(--motion));animation-timing-function:var(--ease-out)}::view-transition-old(root){animation-name:ka-locale-vt-out}::view-transition-new(root){animation-name:ka-locale-vt-in}}@keyframes ka-locale-vt-out{to{opacity:0}}@keyframes ka-locale-vt-in{0%{opacity:0}}.stack{gap:var(--sp-4);min-width:0;display:grid}.stack--tight{gap:var(--sp-2)}.stack--snug{gap:var(--sp-3)}.stack--loose{gap:var(--sp-6)}.row{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.row--between{justify-content:space-between}.row--end{justify-content:flex-end}.row--top{align-items:flex-start}.row--baseline{align-items:baseline}.row--wrap{flex-wrap:wrap}.row--tight{gap:2px}.cluster{gap:var(--sp-2);flex-wrap:wrap;min-width:0;display:flex}.spacer{flex:1;min-width:0}.grid-2,.grid-3,.grid-4{gap:var(--sp-3);min-width:0;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-auto{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));min-width:0;display:grid}.grid-2>*,.grid-3>*,.grid-4>*,.grid-auto>*{min-width:0}@media (width<=720px){.grid-3,.grid-4,.grid-2--keep{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2:not(.grid-2--keep){grid-template-columns:minmax(0,1fr)}}.divider{background:var(--border);border:0;height:1px;margin:0}.stagger>*{animation:ka-rise calc(var(--dur-slow) * var(--motion)) var(--ease-out) both;animation-delay:calc(var(--i,0) * 45ms * var(--motion))}.btn{--btn-h:40px;--btn-px:var(--sp-4);--btn-bg:transparent;--btn-bg-hover:var(--surface-hover);--btn-bg-active:var(--surface-active);--btn-fg:var(--text);--btn-border:transparent;--btn-shadow:none;justify-content:center;align-items:center;gap:var(--sp-2);min-height:var(--btn-h);padding:0 var(--btn-px);border:1px solid var(--btn-border);border-radius:var(--r-sm);background:var(--btn-bg);color:var(--btn-fg);box-shadow:var(--btn-shadow);font-size:var(--fs-md);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);white-space:nowrap;text-align:center;cursor:pointer;transition:background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), border-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), color calc(var(--dur-fast) * var(--motion)) var(--ease-out), box-shadow calc(var(--dur-fast) * var(--motion)) var(--ease-out), transform calc(var(--dur-fast) * var(--motion)) var(--ease-out);line-height:1.2;display:inline-flex;position:relative}.btn:hover:not(:disabled):not([aria-disabled=true]){background:var(--btn-bg-hover)}.btn:active:not(:disabled):not([aria-disabled=true]){background:var(--btn-bg-active);transform:scale(.975)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none}.btn[data-loading=true]{cursor:progress}.btn--primary{--btn-bg:var(--accent);--btn-bg-hover:var(--accent-hover);--btn-bg-active:var(--accent-active);--btn-fg:var(--text-on-accent);--btn-shadow:var(--elev-1)}.btn--secondary{--btn-bg:var(--surface);--btn-bg-hover:var(--surface-hover);--btn-bg-active:var(--surface-active);--btn-border:var(--border-strong);--btn-shadow:var(--elev-1)}.btn--soft{--btn-bg:var(--accent-soft);--btn-bg-hover:var(--accent-soft-hover);--btn-bg-active:var(--accent-soft-hover);--btn-fg:var(--accent-text);--btn-border:var(--accent-line)}.btn--ghost{--btn-bg:transparent;--btn-fg:var(--text-muted);--btn-px:var(--sp-3)}.btn--ghost:hover:not(:disabled){--btn-fg:var(--text)}.btn--quiet{--btn-bg:transparent;--btn-bg-hover:transparent;--btn-bg-active:transparent;--btn-fg:var(--text-muted);--btn-px:0;min-height:0;text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:3px}.btn--quiet:hover:not(:disabled){--btn-fg:var(--text);text-decoration-color:currentColor}.btn--danger{--btn-bg:transparent;--btn-bg-hover:var(--danger-soft);--btn-bg-active:var(--danger-soft);--btn-fg:var(--danger-text)}.btn--danger-solid{--btn-bg:var(--danger);--btn-bg-hover:var(--danger-hover);--btn-bg-active:var(--danger-hover);--btn-fg:var(--text-on-accent)}.btn--sm{--btn-h:32px;--btn-px:var(--sp-3);font-size:var(--fs-sm);border-radius:var(--r-xs)}.btn--xs{--btn-h:26px;--btn-px:var(--sp-2);font-size:var(--fs-xs,.75rem);border-radius:var(--r-xs)}.btn--lg{--btn-h:48px;--btn-px:var(--sp-6);font-size:var(--fs-lg);border-radius:var(--r-md)}.btn--icon{--btn-px:0;width:var(--btn-h);min-width:var(--btn-h);border-radius:var(--r-sm)}.btn--round{border-radius:var(--r-full)}.btn--block{width:100%}.btn__icon{flex:none;place-items:center;display:grid}@media (pointer:coarse){.btn{--btn-h:var(--tap-min)}.btn--sm{--btn-h:38px}.btn--quiet{min-height:0}}.spinner{border:2px solid color-mix(in oklab, currentColor 22%, transparent);border-top-color:currentColor;border-radius:50%;flex:none;width:18px;height:18px;animation:.72s linear infinite ka-spin}.spinner--sm{border-width:1.5px;width:14px;height:14px}.field{gap:var(--sp-2);min-width:0;display:grid}.field__label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text);letter-spacing:var(--track-tight)}.field__label .field__optional{margin-left:var(--sp-1);font-weight:var(--fw-normal);color:var(--text-subtle)}.field__hint{font-size:var(--fs-xs);color:var(--text-muted);margin-top:calc(-1 * var(--sp-1))}.grid-2>.field{gap:var(--sp-2);flex-direction:column;height:100%;display:flex}.grid-2>.field>:is(input,select,textarea,.field__row,.segmented){margin-top:auto}.field__error{font-size:var(--fs-xs);color:var(--danger-text)}.field__row{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.field__suffix{font-size:var(--fs-sm);color:var(--text-muted);flex:none}input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]),textarea,select,.input{width:100%;min-width:0;min-height:42px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-size:var(--fs-md);line-height:var(--lh-normal);transition:border-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), box-shadow calc(var(--dur-fast) * var(--motion)) var(--ease-out)}@media (pointer:coarse){input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]),textarea,select,.input{min-height:var(--tap-min);font-size:var(--fs-lg)}}input[type=number]{font-variant-numeric:tabular-nums}input:hover:not(:disabled),textarea:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--border-strong)}input:focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 var(--ring-width) var(--ring);outline:none}input:disabled,textarea:disabled,select:disabled{background:var(--surface-sunken);color:var(--text-subtle);cursor:not-allowed}input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true]{border-color:var(--danger)}textarea{resize:vertical;line-height:var(--lh-normal)}select{appearance:none;padding-right:var(--sp-8);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%234c5751' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right var(--sp-3) center;cursor:pointer;background-repeat:no-repeat;background-size:10px 6px}[data-theme=night] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23a4afb9' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.select-wrap{width:100%;min-width:0;display:block;position:relative}.select-trigger{justify-content:space-between;align-items:center;gap:var(--sp-2);width:100%;min-width:0;min-height:42px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-md);line-height:var(--lh-normal);text-align:left;cursor:pointer;transition:border-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), box-shadow calc(var(--dur-fast) * var(--motion)) var(--ease-out);display:flex}@media (pointer:coarse){.select-trigger{min-height:var(--tap-min);font-size:var(--fs-lg)}}.select-trigger:hover:not(:disabled){border-color:var(--border-strong)}.select-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 var(--ring-width) var(--ring);outline:none}.select-trigger:disabled{background:var(--surface-sunken);color:var(--text-subtle);cursor:not-allowed}.select-trigger__label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.select-list{z-index:400;padding:var(--sp-1) 0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--elev-2);overscroll-behavior:contain;animation:ka-scale-in calc(var(--dur-fast) * var(--motion)) var(--ease-out) both;transform-origin:top;margin:0;list-style:none;position:fixed;overflow-y:auto}.select-list--up{transform-origin:bottom}.select-option{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-md);line-height:var(--lh-normal);color:var(--text);cursor:pointer;outline:none}@media (pointer:coarse){.select-option{min-height:var(--tap-min);font-size:var(--fs-lg);align-items:center;display:flex}}.select-option:hover,.select-option--focused{background:var(--surface-hover)}.select-option--active{color:var(--accent-text);font-weight:var(--fw-semibold)}input[type=color]{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;width:100%;min-width:44px;height:42px;padding:3px}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border-radius:calc(var(--r-sm) - 4px);border:0}.input-icon{min-width:0;display:grid;position:relative}.input-icon>svg{top:50%;left:var(--sp-3);color:var(--text-subtle);pointer-events:none;z-index:1;position:absolute;translate:0 -50%}.input-icon>input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]){padding-left:calc(var(--sp-3) + 22px + var(--sp-3))}.chip{align-items:center;gap:var(--sp-2);min-height:34px;padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface);color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap;cursor:pointer;transition:background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), border-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), color calc(var(--dur-fast) * var(--motion)) var(--ease-out), transform calc(var(--dur-fast) * var(--motion)) var(--ease-out);display:inline-flex}.chip:hover:not(:disabled){border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-text)}.chip:active:not(:disabled){transform:scale(.97)}.chip[aria-pressed=true],.chip.is-selected{border-color:var(--accent);background:var(--accent);color:var(--text-on-accent)}.chip:disabled{opacity:.45;cursor:not-allowed}@media (pointer:coarse){.chip{min-height:40px;padding:0 var(--sp-4)}}.badge{align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-xs);background:var(--surface-sunken);color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--track-normal);white-space:nowrap;border:1px solid #0000;display:inline-flex}.badge--accent{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-text)}.badge--success{background:var(--success-soft);color:var(--success-text)}.badge--warning{background:var(--warning-soft);color:var(--warning-text)}.badge--danger{background:var(--danger-soft);color:var(--danger-text)}.badge--info{background:var(--info-soft);color:var(--info-text)}.badge--dot:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.card{gap:var(--gap-card);padding:var(--pad-card);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--elev-1);min-width:0;display:grid}.card--accent{border-color:var(--accent-line);background:var(--accent-soft);box-shadow:none}.card__head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);min-width:0;display:flex}.card__title{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);line-height:var(--lh-snug);overflow-wrap:anywhere;margin:0}.card__sub{margin:var(--sp-1) 0 0;font-size:var(--fs-sm);color:var(--text-muted);overflow-wrap:anywhere}.card__actions{align-items:center;gap:var(--sp-1);flex:none;display:flex}.card__foot{align-items:center;gap:var(--sp-2);padding-top:var(--sp-1);display:flex}.tile{gap:var(--sp-1);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);min-width:0;transition:background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), border-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), transform calc(var(--dur-fast) * var(--motion)) var(--ease-out);display:grid}.tile--row{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.tile--row>:first-child{flex:auto;min-width:0}button.tile,a.tile{text-align:left;cursor:pointer;width:100%;color:inherit}button.tile:hover,a.tile:hover{border-color:var(--accent-line);background:var(--surface-hover)}button.tile:active,a.tile:active{transform:scale(.99)}.tile--marked{border-left:3px solid var(--tone,var(--accent))}.stat{gap:var(--sp-1);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);align-content:start;min-width:0;display:grid}.stat__label{font-size:var(--fs-sm);color:var(--text-muted)}.stat__value{font-family:var(--font-display);font-size:1.5rem;font-weight:var(--fw-medium);letter-spacing:var(--track-tight);font-variant-numeric:tabular-nums;color:var(--text);line-height:1.1}.stat__value small{font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:var(--fw-normal);color:var(--text-muted);letter-spacing:var(--track-normal)}.stat__note{font-size:var(--fs-xs);color:var(--text-muted)}.mini-bars{gap:var(--sp-2);min-width:0;margin:0;display:grid}.mini-bars__plot{border-bottom:1px solid var(--border);height:108px;padding-bottom:1px;position:relative}.mini-bars__plot>ul{align-items:flex-end;gap:3px;height:100%;margin:0;padding:0;list-style:none;display:flex}.mini-bars__plot>ul>li{flex:1 1 0;justify-content:center;align-items:flex-end;min-width:0;height:100%;display:flex}.mini-bars__bar{border-radius:var(--r-xs) var(--r-xs) 2px 2px;background:var(--bar-tone,var(--accent));width:100%;max-width:22px;animation:ka-grow calc(var(--dur-slow) * var(--motion)) var(--ease-out) both;transform-origin:bottom;transition:opacity calc(var(--dur-fast) * var(--motion)) var(--ease-out)}.mini-bars__bar:hover{opacity:.75}.mini-bars__bar.is-zero{background:var(--border-strong);border-radius:var(--r-full)}.mini-bars__avg{z-index:1;border-top:1px dashed var(--border-strong);pointer-events:none;position:absolute;left:0;right:0}.mini-bars__avg em{padding:0 var(--sp-1);border-radius:var(--r-xs);background:var(--surface);font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;font-style:normal;position:absolute;bottom:2px;right:0}.mini-bars__axis{justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-subtle);font-variant-numeric:tabular-nums;display:flex}.progress{--progress-h:6px;height:var(--progress-h);border-radius:var(--r-full);background:var(--surface-sunken);position:relative;overflow:hidden}.progress--thick{--progress-h:10px}.progress__fill{border-radius:inherit;background:var(--tone,var(--accent));background-image:linear-gradient(90deg, color-mix(in oklab, var(--tone,var(--accent)) 78%, #fff), var(--tone,var(--accent)));width:0;max-width:100%;height:100%;transition:width calc(var(--dur-slower) * var(--motion)) var(--ease-out), background calc(var(--dur) * var(--motion)) var(--ease-out);display:block}.progress--over .progress__fill{background:var(--warning)}.progress--over{background:color-mix(in oklab, var(--warning) 18%, var(--surface-sunken))}.progress-row{align-items:baseline;gap:var(--sp-1) var(--sp-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.progress-row--btn{appearance:none;width:100%;text-align:inherit;font:inherit;color:inherit;cursor:pointer;border-radius:var(--r-sm);background:0 0;border:0;margin:0;padding:0}.progress-row .progress{grid-column:1/-1}.progress-row__label{font-size:var(--fs-sm);color:var(--text-muted)}.progress-row__value{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--text)}.progress-row__actions{align-items:center;gap:var(--sp-1);display:flex}.progress-row:has(.progress-row__actions){grid-template-columns:minmax(0,1fr) auto auto}.ring{place-items:center;display:grid;position:relative}.ring>svg{width:100%;height:auto;overflow:visible;transform:rotate(-90deg)}.ring__track{fill:none;stroke:var(--surface-sunken)}.ring__value{fill:none;stroke:var(--tone,var(--accent));stroke-linecap:round;stroke-dasharray:var(--v,0) 1;transition:stroke-dasharray calc(var(--dur-slower) * var(--motion)) var(--ease-out)}.ring__center{text-align:center;justify-items:center;gap:2px;display:grid;position:absolute}.typing-dots span{background:var(--accent);opacity:.4;width:7px;height:7px;animation:ka-typing calc(1.4s * var(--motion)) var(--ease-in-out) infinite;border-radius:50%}.typing-dots span:nth-child(2){animation-delay:calc(.18s * var(--motion))}.typing-dots span:nth-child(3){animation-delay:calc(.36s * var(--motion))}.thinking{justify-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-4);text-align:center;display:grid;position:relative;overflow:hidden}.thinking__label{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);margin:0}.thinking__hint{max-width:28ch;margin:0}.thinking__shine{left:12%;right:12%;bottom:var(--sp-3);border-radius:var(--r-full);background:color-mix(in oklab, var(--accent) 22%, var(--surface-sunken));height:2px;position:absolute;overflow:hidden}.thinking__shine:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in oklab, var(--accent) 70%, transparent), transparent);width:42%;animation:ka-thinking-bar calc(1.8s * var(--motion)) var(--ease-in-out) infinite;position:absolute;inset:0}.skeleton{border-radius:var(--r-xs);background:var(--surface-sunken);position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in oklab, var(--text) 7%, transparent), transparent);animation:ka-shimmer calc(1.4s * var(--motion)) ease-in-out infinite;position:absolute;inset:0}.skeleton--text{border-radius:var(--r-full);height:.85em;margin:.32em 0}.skeleton--title{border-radius:var(--r-xs);height:1.4em}.skeleton--block{border-radius:var(--r-md)}.skeleton--circle{border-radius:50%}.empty{justify-items:center;gap:var(--sp-3);padding:var(--sp-10) var(--sp-4);border:1px dashed var(--border-strong);border-radius:var(--r-md);background:var(--surface-quiet);text-align:center;display:grid}.empty--tight{padding:var(--sp-6) var(--sp-4)}.empty--bare{background:0 0;border:0}.empty__art{border-radius:var(--r-full);background:var(--accent-soft);width:52px;height:52px;color:var(--accent-text);place-items:center;display:grid}.empty__title{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);margin:0}.empty__text{max-width:34ch;font-size:var(--fs-sm);color:var(--text-muted);line-height:var(--lh-relaxed);margin:0}.segmented{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-sunken);gap:2px;min-width:0;padding:3px;display:inline-flex}.segmented--block{width:100%;display:flex}.segmented__option{justify-content:center;align-items:center;gap:var(--sp-1);min-height:34px;padding:0 var(--sp-3);border-radius:calc(var(--r-sm) - 3px);color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap;cursor:pointer;transition:background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), color calc(var(--dur-fast) * var(--motion)) var(--ease-out);flex:auto;display:inline-flex;position:relative}.segmented__option:hover{color:var(--text)}.segmented__option input{opacity:0;pointer-events:none;position:absolute}.segmented__option:has(input:checked){background:var(--surface);color:var(--text);box-shadow:var(--elev-1)}.segmented__option:has(input:focus-visible){outline:var(--ring-width) solid var(--ring);outline-offset:1px}@media (pointer:coarse){.segmented__option{min-height:40px}}.choice{gap:var(--sp-1);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;min-width:0;transition:border-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out);display:grid;position:relative}.choice:hover{border-color:var(--border-strong);background:var(--surface-hover)}.choice input{opacity:0;pointer-events:none;position:absolute}.choice.is-selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.choice:has(input:checked){border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.choice:focus-visible{outline:var(--ring-width) solid var(--ring);outline-offset:var(--ring-offset)}.choice:has(input:focus-visible){outline:var(--ring-width) solid var(--ring);outline-offset:var(--ring-offset)}.choice__title{font-size:var(--fs-md);font-weight:var(--fw-semibold);letter-spacing:var(--track-tight)}.choice__text{font-size:var(--fs-sm);color:var(--text-muted);line-height:var(--lh-snug)}.scrim{z-index:80;background:var(--scrim);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:ka-fade calc(var(--dur) * var(--motion)) var(--ease-out) both;display:grid;position:fixed;inset:0}.scrim--bottom{align-items:end}.scrim--center{padding:var(--sp-4);place-items:center}.sheet{border:1px solid var(--border);background:var(--surface);width:100%;max-width:100%;max-height:min(88dvh,760px);box-shadow:var(--elev-3);animation:ka-slide-up calc(var(--dur-slow) * var(--motion)) var(--ease-out) both;flex-direction:column;display:flex;overflow:hidden}.sheet:focus-visible{outline:none}.sheet__grip{width:40px;height:4px;margin-top:var(--sp-2);border-radius:var(--r-full);background:var(--border-strong);flex:none;align-self:center;display:none}.scrim--bottom,.scrim--auto{align-items:end}.scrim--bottom .sheet,.scrim--auto .sheet{border-radius:var(--r-lg) var(--r-lg) 0 0;padding-bottom:var(--safe-b);border-bottom:0}.scrim--bottom .sheet__grip,.scrim--auto .sheet__grip{display:block}.scrim--center{align-items:center}.scrim--center .sheet{border-radius:var(--r-lg);width:min(560px,100%);animation-name:ka-scale-in}.scrim--center .sheet__foot{border-bottom-left-radius:var(--r-lg);border-bottom-right-radius:var(--r-lg)}.sheet--wide{width:min(760px,100%)}@media (width>=861px){.scrim--auto{padding:var(--sp-6);place-items:center}.scrim--auto .sheet{border-radius:var(--r-lg);border-bottom:1px solid var(--border);width:min(560px,100%);padding-bottom:0;animation-name:ka-scale-in}.scrim--auto .sheet__foot{border-bottom-left-radius:var(--r-lg);border-bottom-right-radius:var(--r-lg)}.scrim--auto .sheet--wide{width:min(760px,100%)}.scrim--auto .sheet__grip{display:none}}@media (width<=860px){.scrim--bottom,.scrim--auto{align-items:end;padding:0}.scrim--bottom .sheet,.scrim--auto .sheet{width:100%;max-width:100%;max-height:min(92dvh,100%)}.sheet__head,.sheet__body,.sheet__foot{padding-left:var(--sp-4);padding-right:var(--sp-4)}.sheet__foot .btn{min-width:0}.tile--row{align-items:flex-start}.card__head>div:first-child{flex:auto;min-width:0}}.sheet__head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5) var(--sp-3);border-bottom:1px solid var(--border);flex:none;min-width:0;display:flex}.sheet__head>div:first-child{flex:auto;min-width:0}.sheet__title{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);overflow-wrap:anywhere;margin:0}.sheet__sub{margin:var(--sp-1) 0 0;font-size:var(--fs-sm);color:var(--text-muted);overflow-wrap:anywhere}.sheet__body{gap:var(--sp-4);min-height:0;padding:var(--sp-5);overscroll-behavior:contain;flex:auto;align-content:start;display:grid;overflow-y:auto}.sheet__foot{justify-content:flex-start;align-items:center;gap:var(--sp-2);box-sizing:border-box;width:100%;min-width:0;max-width:100%;padding:var(--sp-3) var(--sp-5) var(--sp-5);border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex:none;display:flex}.sheet__foot>.row{justify-content:flex-start;align-items:center;gap:var(--sp-2);box-sizing:border-box;flex-wrap:wrap;width:100%;min-width:0;max-width:100%;display:flex}.sheet__foot>.row.row--end{justify-content:flex-end}.sheet__foot>.row.row--between{justify-content:space-between}.sheet__foot .btn{flex:none;width:auto;min-width:0;max-width:100%}.toasts{z-index:100;left:50%;bottom:calc(var(--nav-h) + var(--safe-b) + var(--sp-4));gap:var(--sp-2);width:min(420px, calc(100vw - var(--sp-8)));pointer-events:none;display:grid;position:fixed;translate:-50%}@media (width>=861px){.toasts{left:auto;right:var(--sp-6);bottom:var(--sp-6);translate:none}}.toast{--toast-tone:var(--text);pointer-events:auto;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-left:3px solid var(--toast-tone);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--elev-3);animation:ka-rise calc(var(--dur-slow) * var(--motion)) var(--ease-out) both;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.toast[data-leaving=true]{animation:ka-fade calc(var(--dur) * var(--motion)) var(--ease-out) reverse both}.toast--success{--toast-tone:var(--success)}.toast--error{--toast-tone:var(--danger)}.toast--info{--toast-tone:var(--info)}.toast__icon{color:var(--toast-tone);place-items:center;display:grid}.toast__body{gap:2px;min-width:0;display:grid}.toast__title{font-size:var(--fs-md);font-weight:var(--fw-medium);letter-spacing:var(--track-tight)}.toast__text{font-size:var(--fs-sm);color:var(--text-muted);overflow-wrap:anywhere}.toast__action{flex:none}.popover{z-index:30;left:0;right:0;top:calc(100% + var(--sp-1));overscroll-behavior:contain;max-height:280px;padding:var(--sp-1);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--elev-3);animation:ka-fade calc(var(--dur-fast) * var(--motion)) var(--ease-out) both;position:absolute;overflow-y:auto}.popover__item{width:100%;padding:var(--sp-2) var(--sp-3);border:0;border-left:3px solid var(--tone,transparent);border-radius:var(--r-xs);color:var(--text);text-align:left;cursor:pointer;background:0 0;gap:2px;display:grid}.popover__item:hover,.popover__item[aria-selected=true]{background:var(--accent-soft)}.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);align-items:start;min-height:100dvh;display:grid}.shell>*{min-width:0}.sidebar{gap:var(--sp-4);height:100dvh;padding:var(--sp-5) var(--sp-4);border-right:1px solid var(--border);background:var(--surface);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:var(--sp-3);padding:var(--sp-1) var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border);min-width:0;display:flex}.brand-mark{border-radius:var(--r-sm);background:var(--accent);width:36px;height:36px;color:var(--text-on-accent);font-family:var(--font-display);font-size:1.05rem;font-weight:var(--fw-semibold);flex:none;place-items:center;display:grid}.brand__text{min-width:0;display:grid}.brand strong{font-family:var(--font-display);font-size:1.05rem;font-weight:var(--fw-medium);letter-spacing:var(--track-tight)}.brand p{font-size:var(--fs-sm);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.nav{gap:var(--sp-1);flex-direction:column;flex:1;min-height:0;display:flex}.nav__section{gap:2px;display:grid}.nav__group{margin:var(--sp-2) var(--sp-3) var(--sp-1);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-subtle)}.nav a,.sidebar__foot a{align-items:center;gap:var(--sp-3);min-height:40px;padding:0 var(--sp-3);border-radius:var(--r-sm);color:var(--text-muted);font-size:var(--fs-md);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);white-space:nowrap;transition:background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), color calc(var(--dur-fast) * var(--motion)) var(--ease-out);display:flex;position:relative}.nav a>svg,.sidebar__foot a>svg{color:var(--text-subtle);transition:color calc(var(--dur-fast) * var(--motion)) var(--ease-out);flex:none}.nav a:hover,.sidebar__foot a:hover{background:var(--surface-hover);color:var(--text)}.nav a:hover>svg,.sidebar__foot a:hover>svg{color:var(--text-muted)}.nav a.active,.sidebar__foot a.active{background:var(--accent-soft);color:var(--accent-text)}.nav a.active>svg,.sidebar__foot a.active>svg{color:var(--accent)}.nav a.active:before,.sidebar__foot a.active:before{content:"";border-radius:var(--r-full);background:var(--accent);width:3px;height:18px;position:absolute;top:50%;left:0;translate:-1px -50%}.sidebar__foot{gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border);display:grid}.main{width:100%;min-width:0;padding:clamp(var(--sp-6), 3.5vw, var(--sp-12)) clamp(var(--sp-4), 4vw, var(--sp-12)) var(--sp-16)}.main>*{max-width:var(--content-max);min-width:0;margin-inline:auto}.page-shell{animation:ka-rise calc(var(--dur-slow) * var(--motion)) var(--ease-out) both}.topbar{display:none}.page,.chat-page{gap:var(--gap-section);align-content:start;min-width:0;display:grid}.page>*,.chat-page>*{min-width:0}.page-head{gap:var(--sp-2);min-width:0;display:grid}.page-head h1{font-size:var(--fs-h1);overflow-wrap:anywhere}.page-head>div{min-width:0}.page-head>.muted,.page-head .muted{max-width:48ch;font-size:var(--fs-md);color:var(--text-muted);line-height:var(--lh-relaxed);overflow-wrap:anywhere}.page-head--row{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);display:flex}.page-head__actions{justify-content:flex-end;gap:var(--sp-2);flex-wrap:wrap;flex:none;max-width:100%;display:flex}.section{gap:var(--sp-3);min-width:0;display:grid}.section>*{min-width:0}.section__head{justify-content:space-between;align-items:baseline;gap:var(--sp-3);display:flex}.section__title{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);margin:0}.more-links{gap:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.more-links a{align-items:center;gap:var(--sp-3);min-height:var(--tap-min);padding:0 var(--sp-4);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-weight:var(--fw-medium);transition:background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), border-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), transform calc(var(--dur-fast) * var(--motion)) var(--ease-out);display:flex}.more-links a>svg{color:var(--text-subtle)}.more-links a:active{background:var(--surface-active);transform:scale(.98)}.more-links a.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.more-links a.active>svg{color:var(--accent)}.bottom-nav,.bottom-nav-more{display:none}@media (width<=860px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.main{padding:var(--sp-5) var(--sp-4) calc(var(--nav-h) + var(--safe-b) + var(--sp-8))}.main>.topbar{z-index:30;justify-content:space-between;align-items:center;gap:var(--sp-3);margin:calc(-1 * var(--sp-5)) calc(-1 * var(--sp-4)) var(--sp-5);max-width:none;padding:calc(var(--safe-t) + var(--sp-2)) var(--sp-3) var(--sp-2);border-bottom:1px solid var(--border);background:color-mix(in oklab, var(--surface) 86%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;position:sticky;top:0}.topbar__title{padding-left:var(--sp-1);font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--fw-medium);letter-spacing:var(--track-tight)}.page,.chat-page{gap:var(--sp-5)}.page-head--row{align-items:stretch;gap:var(--sp-3);flex-direction:column}.page-head__actions{justify-content:flex-start;width:100%}.page-head>.muted,.page-head .muted{max-width:none}.cycle-page-head{align-items:stretch;gap:var(--sp-3);flex-direction:column}.cycle-page-head .page-head__actions{justify-content:flex-start}.bottom-nav{z-index:40;padding:var(--sp-1) var(--sp-2) calc(var(--sp-1) + var(--safe-b));border-top:1px solid var(--border);background:color-mix(in oklab, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a,.bottom-nav-more{min-height:var(--tap-min);padding:var(--sp-1) 2px;border-radius:var(--r-sm);color:var(--text-muted);font-size:.6875rem;font-weight:var(--fw-medium);text-align:center;transition:background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), color calc(var(--dur-fast) * var(--motion)) var(--ease-out), transform calc(var(--dur-fast) * var(--motion)) var(--ease-out);background:0 0;align-content:center;justify-items:center;gap:3px;line-height:1.1;display:grid}.bottom-nav a>span,.bottom-nav-more>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.bottom-nav a>svg,.bottom-nav-more>svg{color:var(--text-subtle);transition:color calc(var(--dur-fast) * var(--motion)) var(--ease-out)}.bottom-nav a:active,.bottom-nav-more:active{background:var(--surface-active);transform:scale(.92)}.bottom-nav a.active,.bottom-nav-more.active{background:var(--accent-soft);color:var(--accent-text)}.bottom-nav a.active>svg,.bottom-nav-more.active>svg{color:var(--accent)}.bottom-nav-more{display:grid}}.login-page{min-height:100dvh;padding:clamp(var(--sp-5), 5vw, var(--sp-10)) clamp(var(--sp-4), 5vw, var(--sp-10));background:radial-gradient(circle at 15% 15%, color-mix(in oklab, var(--accent) 12%, transparent), transparent 45%), radial-gradient(circle at 85% 85%, color-mix(in oklab, var(--info) 10%, transparent), transparent 45%), var(--bg);place-items:center;display:grid;position:relative}.login-locale{top:clamp(var(--sp-4), 3vw, var(--sp-6));right:clamp(var(--sp-4), 3vw, var(--sp-6));z-index:2;position:absolute}.locale-switch{border-radius:var(--r-md);background:color-mix(in oklab, var(--border) 55%, transparent);border:1px solid var(--border);gap:2px;padding:3px;display:inline-flex}.locale-switch__btn{appearance:none;border-radius:calc(var(--r-md) - 2px);color:var(--text-muted);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;transition:background calc(var(--dur-fast) * var(--motion)) var(--ease-out), color calc(var(--dur-fast) * var(--motion)) var(--ease-out), box-shadow calc(var(--dur-fast) * var(--motion)) var(--ease-out);background:0 0;border:0;align-items:center;gap:.4rem;margin:0;padding:.45rem .7rem;display:inline-flex}.locale-switch__btn.is-active{background:var(--surface);color:var(--text);box-shadow:var(--elev-1)}.locale-switch__label{letter-spacing:var(--track-tight)}.locale-switch--sm .locale-switch__btn{font-size:var(--fs-xs);padding:.3rem .5rem}.onboarding-locale{gap:var(--sp-4);width:100%;display:grid}.onboarding-locale__title{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);margin:0}.onboarding-locale__hint{font-size:var(--fs-md);line-height:var(--lh-relaxed);color:var(--text-muted);max-width:36ch;margin:0}.locale-cards{gap:var(--sp-3);width:100%;display:grid}.locale-card{appearance:none;align-items:center;gap:var(--sp-4);width:100%;padding:var(--sp-4) var(--sp-5);text-align:left;cursor:pointer;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--elev-1);transition:border-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), box-shadow calc(var(--dur-fast) * var(--motion)) var(--ease-out), transform calc(var(--dur-fast) * var(--motion)) var(--ease-out);grid-template-columns:auto minmax(0,1fr);margin:0;display:grid}.locale-card:hover{border-color:color-mix(in oklab, var(--accent) 35%, var(--border))}.locale-card.is-active{border-color:var(--accent);box-shadow:var(--elev-2);background:color-mix(in oklab, var(--accent) 8%, var(--surface))}.locale-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.locale-card__flag{filter:drop-shadow(0 1px 1px color-mix(in oklab, var(--text) 12%, transparent));font-size:2rem;line-height:1}.locale-card__body{gap:.2rem;min-width:0;display:grid}.locale-card__title{font-size:var(--fs-lg);font-weight:var(--fw-medium);letter-spacing:var(--track-tight)}.locale-card__blurb{font-size:var(--fs-sm);color:var(--text-muted);line-height:var(--lh-relaxed)}.login-split{align-items:center;gap:clamp(var(--sp-6), 5vw, var(--sp-12));grid-template-columns:minmax(0,1fr) minmax(0,460px);width:min(1080px,100%);display:grid}.login-pitch{gap:var(--sp-4);min-width:0;animation:ka-rise calc(var(--dur-slow) * var(--motion)) var(--ease-out) both;display:grid}.login-brand{align-items:center;gap:var(--sp-3);font-family:var(--font-display);font-size:1.1rem;font-weight:var(--fw-medium);letter-spacing:var(--track-tight);margin:0;display:flex}.login-pitch h1{max-width:22ch;font-size:var(--fs-display)}.login-lead{max-width:42ch;font-size:var(--fs-lg);color:var(--text-muted);line-height:var(--lh-relaxed);margin:0}.login-points{gap:var(--sp-4);margin:var(--sp-2) 0 0;padding:0;list-style:none;display:grid}.login-points li{gap:2px var(--sp-3);grid-template-columns:36px minmax(0,1fr);display:grid}.login-points__icon{border-radius:var(--r-sm);background:var(--accent-soft);width:36px;height:36px;color:var(--accent-text);grid-row:1/span 2;place-items:center;display:grid}.login-points strong{font-size:var(--fs-md);letter-spacing:var(--track-tight)}.login-points .muted{font-size:var(--fs-sm);line-height:var(--lh-normal)}.login-card{gap:var(--sp-3);width:100%;padding:clamp(var(--sp-5), 4vw, var(--sp-8));border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--elev-3);animation:ka-rise calc(var(--dur-slow) * var(--motion)) var(--ease-out) both;animation-delay:calc(80ms * var(--motion));display:grid}.login-card__head{gap:var(--sp-1);margin-bottom:var(--sp-1);display:grid}.login-card__head h2{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);margin:0}.login-card__head .muted{font-size:var(--fs-sm)}.login-tabs{border-radius:var(--r-md);background:color-mix(in oklab, var(--border) 55%, transparent);grid-template-columns:1fr 1fr;gap:2px;padding:2px;display:grid}.login-tabs__btn{appearance:none;padding:var(--sp-2) var(--sp-3);border-radius:calc(var(--r-md) - 1px);color:var(--text-muted);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;background:0 0;border:0;margin:0}.login-tabs__btn.is-active{background:var(--surface);color:var(--text);box-shadow:var(--elev-1)}.onboarding-page{padding-top:clamp(var(--sp-8), 8vh, var(--sp-14));place-items:start center}.onboarding-card{width:min(560px,100%)}.onboarding-progress{gap:var(--sp-2);grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.onboarding-progress li{gap:var(--sp-1);font-size:var(--fs-xs);color:var(--text-muted);text-align:center;display:grid}.onboarding-progress li:before{content:"";background:color-mix(in oklab, var(--border) 80%, transparent);border-radius:999px;height:3px}.onboarding-progress li.is-done:before,.onboarding-progress li.is-current:before{background:var(--accent)}.onboarding-progress li.is-current{color:var(--text);font-weight:var(--fw-medium)}.onboarding-personas{gap:var(--sp-3);border:0;margin:0;padding:0;display:grid}.onboarding-actions{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-top:var(--sp-2);display:flex}.onboarding-skip{justify-self:center;margin-inline:auto}.settings-profile-hint{align-items:center;gap:var(--sp-2);margin:0;display:flex}.settings-profile-hint a{color:var(--accent)}.login-card .btn--lg{margin-top:var(--sp-2)}@media (width<=900px){.login-split{gap:var(--sp-6);grid-template-columns:minmax(0,1fr);max-width:460px}.login-pitch h1{font-size:var(--fs-h1)}.login-lead{font-size:var(--fs-md)}.login-points{display:none}}.center{min-height:100dvh;padding:var(--sp-6);color:var(--text-muted);place-items:center;display:grid}.nav-locked,.more-links__locked{align-items:center;gap:var(--sp-3);min-height:40px;padding:0 var(--sp-3);border-radius:var(--r-sm);color:var(--text-subtle);font-size:var(--fs-md);font-weight:var(--fw-medium);opacity:.72;cursor:not-allowed;-webkit-user-select:none;user-select:none;display:flex}.nav-locked__label{flex:1}.more-links__locked{min-height:48px;padding:var(--sp-3)}.sidebar__login{margin:0 0 var(--sp-2);font-size:var(--fs-xs)}.nav-tiles{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));display:grid}.nav-tile{padding:var(--sp-3) var(--sp-2);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-muted);cursor:pointer;text-align:center;min-width:0;transition:background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), border-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), color calc(var(--dur-fast) * var(--motion)) var(--ease-out);justify-items:center;gap:.35rem;display:grid;position:relative}.nav-tile:hover{background:var(--surface-hover);border-color:var(--border-strong);color:var(--text)}.nav-tile.is-on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent-text);background:var(--accent-soft)}.nav-tile__icon{border-radius:var(--r-sm);background:var(--surface-2,var(--surface-hover));width:2.4rem;height:2.4rem;color:inherit;place-items:center;display:grid}.nav-tile.is-on .nav-tile__icon{background:var(--surface)}.nav-tile strong{font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:1.2}.nav-tile__meta{font-size:var(--fs-xs)}.nav-tile__lock{color:var(--text-subtle);place-items:center;display:grid;position:absolute;top:.4rem;right:.4rem}.nav-tile.is-locked,.nav-tile:disabled{opacity:.55;cursor:not-allowed;color:var(--text-subtle);background:var(--surface);border-color:var(--border);box-shadow:none}.nav-tile.is-locked:hover,.nav-tile:disabled:hover{background:var(--surface);border-color:var(--border);color:var(--text-subtle)}.nav-tile.is-locked .nav-tile__icon{background:var(--surface-hover);color:var(--text-subtle)}.nav-tile.is-locked.is-on .nav-tile__lock{color:var(--text-subtle)}.nav-toggles{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.nav-toggle{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-2) 0;cursor:pointer;font-size:var(--fs-md);display:flex}.nav-toggle input{accent-color:var(--accent);flex-shrink:0;width:1.05rem;height:1.05rem;margin-top:.2em}.mine-scroll{overscroll-behavior:contain;max-height:456px;padding-right:var(--sp-1);overflow-y:auto}.mine-search{margin-bottom:var(--sp-2)}.day-hero{align-items:center;gap:var(--sp-6);padding:var(--pad-card);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--elev-1);grid-template-columns:auto minmax(0,1fr);display:grid}.day-hero__ring .ring{transition:transform calc(var(--dur-slow) * var(--motion)) var(--ease-out)}.day-hero__ring .ring__value{transition:stroke-dasharray calc(var(--dur-slower) * var(--motion)) var(--ease-out), stroke-width calc(var(--dur) * var(--motion)) var(--ease-out), filter calc(var(--dur) * var(--motion)) var(--ease-out)}.day-hero__macros .progress-row{padding:var(--sp-2) var(--sp-3);margin:0 calc(-1 * var(--sp-3));border-radius:var(--r-sm);transition:background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out)}.day-hero__macros .progress__fill{transition:width calc(var(--dur-slower) * var(--motion)) var(--ease-out), filter calc(var(--dur) * var(--motion)) var(--ease-out)}.day-brief{gap:var(--sp-3);transition:border-color calc(var(--dur) * var(--motion)) var(--ease-out), box-shadow calc(var(--dur) * var(--motion)) var(--ease-out);display:grid}.day-brief--recover{border-color:color-mix(in oklab, var(--warning) 35%, var(--border));background:color-mix(in oklab, var(--warning) 8%, var(--surface))}.day-brief--push{border-color:color-mix(in oklab, var(--accent) 35%, var(--border));background:color-mix(in oklab, var(--accent) 8%, var(--surface))}.day-brief__actions{gap:var(--sp-1);font-size:var(--fs-sm);margin:0;padding-left:1.1rem;display:grid}.day-brief__why{margin:0}.panel-fold>summary{cursor:pointer;list-style:none}.panel-fold>summary::-webkit-details-marker{display:none}.panel-fold__summary{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);width:100%;display:flex}.panel-fold__lead{gap:2px;min-width:0;display:grid}.panel-fold__lead .card__title,.panel-fold__hint{margin:0}.panel-fold__aside{align-items:center;gap:var(--sp-2);flex:none;display:flex}.panel-fold__chevron{color:var(--text-muted);transition:transform calc(var(--dur) * var(--motion)) var(--ease-out);flex:none;margin-top:2px}.panel-fold:not([open]) .panel-fold__chevron{transform:rotate(-90deg)}.panel-fold[open] .panel-fold__chevron{transform:rotate(0)}.panel-fold__body{gap:var(--sp-3);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border);animation:ka-rise calc(var(--dur) * var(--motion)) var(--ease-out) both;display:grid}.panel-fold:not([open]) .panel-fold__hint{opacity:.85}.panel-fold[open] .panel-fold__when-closed,.panel-fold:not([open]) .panel-fold__when-open{display:none}.today-todos__badge{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--text);font-weight:var(--fw-medium);border-radius:var(--r-sm);background:var(--surface-sunken);padding:2px 8px}.today-todos__list{gap:var(--sp-2)}.today-todos__item{padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}.today-todos__item:last-child{border-bottom:0;padding-bottom:0}.today-todos__link{align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);font-weight:var(--fw-medium);display:inline-flex}.focus-goals>li{grid-template-columns:minmax(0,1fr) auto;align-items:start}.focus-goal-field{align-items:center;gap:var(--sp-2);grid-column:1/-1;margin-top:2px;display:flex}.focus-goal-field input{width:4.5rem;padding:var(--sp-1) var(--sp-2);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;font-variant-numeric:tabular-nums}.focus-goal-field input:focus{border-color:var(--accent-line);outline:none}.day-hero__ring{justify-items:center;gap:var(--sp-2);display:grid}.day-hero__kcal{font-family:var(--font-display);font-size:1.9rem;font-weight:var(--fw-medium);letter-spacing:var(--track-display);font-variant-numeric:tabular-nums;line-height:1}.day-hero__unit{font-size:var(--fs-xs);color:var(--text-muted)}.day-hero__left{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.day-hero__left strong{color:var(--text);font-variant-numeric:tabular-nums}.day-hero__macros{gap:var(--sp-4);min-width:0;display:grid}@media (width<=620px){.day-hero{justify-items:center;gap:var(--sp-5);grid-template-columns:minmax(0,1fr)}.day-hero__macros{width:100%}}.water-card{gap:var(--sp-3);padding:var(--pad-card);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--elev-1);transition:border-color calc(var(--dur) * var(--motion)) var(--ease-out), box-shadow calc(var(--dur) * var(--motion)) var(--ease-out);padding-bottom:0;display:grid;overflow:hidden}.water-card__head{align-items:center;gap:var(--sp-3);padding-bottom:var(--sp-1);flex-wrap:wrap;display:flex}.water-card__tap{align-items:center;gap:var(--sp-3);min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:var(--r-sm);background:0 0;border:0;flex:auto;padding:0;display:flex}.water-card__tap:hover .water-card__num strong{color:var(--accent-text)}.water-card__icon{border-radius:var(--r-sm);background:color-mix(in oklab, var(--water) 14%, var(--surface));width:40px;height:40px;color:var(--water);transition:background-color calc(var(--dur) * var(--motion)) var(--ease-out), color calc(var(--dur) * var(--motion)) var(--ease-out), transform calc(var(--dur) * var(--motion)) var(--ease-out);place-items:center;display:grid}.water-card__num{align-items:baseline;gap:var(--sp-2);min-width:0;display:flex}.water-card__num strong{font-family:var(--font-display);font-size:1.5rem;font-weight:var(--fw-medium);letter-spacing:var(--track-tight);font-variant-numeric:tabular-nums}.water-card__num span{font-size:var(--fs-sm)}.water-card__actions{margin-left:auto}.water-card__bar{width:calc(100% + 2 * var(--pad-card));margin-left:calc(-1 * var(--pad-card));margin-right:calc(-1 * var(--pad-card));--progress-h:12px;transition:background-color calc(var(--dur) * var(--motion)) var(--ease-out);border-radius:0}.water-card__bar .progress__fill{transition:width calc(var(--dur-slower) * var(--motion)) var(--ease-out), filter calc(var(--dur) * var(--motion)) var(--ease-out);transform-origin:0}.water-card__bar.progress--over .progress__fill{background:var(--danger,var(--warning))}.rhythm__range{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;flex:none}.rhythm-fold__body{gap:var(--sp-4);flex-direction:column;display:flex}.rhythm-fold__bars{padding-top:var(--sp-2);border-top:1px solid var(--border)}.rhythm__track{border-radius:var(--r-full);background:color-mix(in oklab, var(--surface-sunken) 90%, var(--border));width:100%;height:12px;box-shadow:inset 0 1px 1px color-mix(in oklab, var(--text) 6%, transparent);transition:box-shadow calc(var(--dur) * var(--motion)) var(--ease-out);gap:2px;padding:3px;display:flex;overflow:hidden}.rhythm__track>i{border-radius:var(--r-full);background-color:var(--swatch,var(--chart-6));background-image:linear-gradient(90deg, color-mix(in oklab, var(--swatch,var(--chart-6)) 80%, #fff) 0%, var(--swatch,var(--chart-6)) 100%);min-width:4px;height:100%;transition:filter calc(var(--dur) * var(--motion)) var(--ease-out), opacity calc(var(--dur) * var(--motion)) var(--ease-out);display:block;box-shadow:inset 0 1px oklab(100% 0 5.96046e-8/.18)}.rhythm__legend{gap:var(--sp-2) var(--sp-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.rhythm__legend li{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-muted);border-radius:var(--r-sm);transition:background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out), color calc(var(--dur-fast) * var(--motion)) var(--ease-out);margin:-2px -6px;padding:2px 6px;display:inline-flex}.rhythm__legend i{border-radius:var(--r-full);background-color:var(--swatch,var(--chart-6));background-image:linear-gradient(135deg, color-mix(in oklab, var(--swatch,var(--chart-6)) 78%, #fff), var(--swatch,var(--chart-6)));width:8px;height:8px}.rhythm__legend em{color:var(--text);font-variant-numeric:tabular-nums;font-style:normal}.cat-bars{gap:var(--sp-4);margin:0;padding:0;list-style:none;display:grid}.cat-bars li{align-items:baseline;gap:var(--sp-1) var(--sp-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.cat-bars li>.progress{grid-column:1/-1}.cat-bars__title{align-items:center;gap:var(--sp-2);min-width:0;max-width:100%;font-size:var(--fs-md);display:inline-flex;overflow:visible}.cat-bars__title-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.cat-bars__value{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;align-items:baseline;gap:var(--sp-2);display:inline-flex}.cat-bars__share{font-size:var(--fs-xs)}.tl{gap:0;margin:0;padding:0;list-style:none;display:grid}.tl__item{align-items:start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-1);border-radius:var(--r-sm);transition:background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out);grid-template-columns:20px 64px minmax(0,1fr) auto;display:grid;position:relative}.tl__item:hover{background:var(--surface-hover)}.tl__item:not(:last-child):before{content:"";left:calc(var(--sp-1) + 9px);background:var(--border);width:1px;position:absolute;top:28px;bottom:-6px}.tl__dot{border-radius:var(--r-full);background-color:var(--swatch,var(--chart-6));background-image:linear-gradient(145deg, color-mix(in oklab, var(--swatch,var(--chart-6)) 55%, #fff) 0%, var(--swatch,var(--chart-6)) 70%);width:9px;height:9px;box-shadow:0 0 0 3px var(--bg);transition:transform calc(var(--dur) * var(--motion)) var(--ease-out), box-shadow calc(var(--dur) * var(--motion)) var(--ease-out);margin:7px 0 0 5px}.tl__time{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--text-subtle);line-height:1.35;display:grid}.tl__time-end{color:var(--text);font-weight:600}.tl__body{gap:2px;min-width:0;display:grid}.tl__body strong{overflow-wrap:anywhere}.tl__actions{opacity:0;transition:opacity calc(var(--dur-fast) * var(--motion)) var(--ease-out);gap:2px;display:flex}.tl__item:hover .tl__actions,.tl__item:focus-within .tl__actions{opacity:1}@media (hover:hover) and (pointer:fine){.day-brief:hover{border-color:color-mix(in oklab, var(--accent) 28%, var(--border));box-shadow:var(--elev-2)}.day-brief--recover:hover{border-color:color-mix(in oklab, var(--warning) 45%, var(--border))}.day-brief--push:hover{border-color:color-mix(in oklab, var(--accent) 48%, var(--border))}.day-hero__ring .ring:hover{transform:scale(1.035)}.day-hero__ring .ring:hover .ring__value{filter:brightness(1.08)}.day-hero__macros .progress-row:hover{background:var(--surface-hover)}.day-hero__macros .progress-row:hover .progress__fill{filter:brightness(1.06)}.water-card:hover{border-color:color-mix(in oklab, var(--water) 32%, var(--border));box-shadow:var(--elev-2)}.water-card:hover .water-card__icon{background:color-mix(in oklab, var(--water) 22%, var(--surface));transform:scale(1.06)}.water-card:hover .water-card__bar .progress__fill{filter:brightness(1.08)saturate(1.08)}.rhythm-fold:hover .rhythm__track{box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--accent) 16%, transparent)}.rhythm-fold:hover .rhythm__track>i{filter:brightness(1.07)saturate(1.05)}.rhythm__legend li:hover{background:var(--surface-hover);color:var(--text)}.tl__item:hover .tl__dot{box-shadow:0 0 0 3px var(--bg), 0 0 0 5px color-mix(in oklab, var(--accent) 18%, transparent);transform:scale(1.28)}.focus-page .focus-bars>li:hover{background:var(--surface-hover)}.focus-page .focus-bars>li:hover .progress__fill{filter:brightness(1.08)saturate(1.06)}.focus-page .focus-bars>li:hover .swatch{box-shadow:0 0 0 2px var(--surface-hover), 0 0 0 4px color-mix(in oklab, var(--accent) 22%, transparent);transform:scale(1.15)}}.focus-page .focus-bars{overflow:visible}.focus-page .focus-bars>li{padding:var(--sp-2) var(--sp-2);padding-left:calc(var(--sp-2) + 8px);border-radius:var(--r-sm);transition:background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out);overflow:visible}.focus-page .focus-bars .cat-bars__title{overflow:visible}.focus-page .focus-bars .swatch{z-index:1;transform-origin:50%;transition:transform calc(var(--dur) * var(--motion)) var(--ease-out), box-shadow calc(var(--dur) * var(--motion)) var(--ease-out);flex:none;position:relative}@media (pointer:coarse){.tl__actions{opacity:1}}@media (width<=560px){.tl__item{column-gap:var(--sp-2);grid-template-columns:16px minmax(0,1fr) auto;align-items:start;row-gap:2px}.tl__dot{grid-area:1/1/span 2;margin-top:6px}.tl__time{gap:var(--sp-1);font-size:var(--fs-xs);color:var(--text-subtle);flex-wrap:wrap;grid-area:1/2;min-width:0;display:flex}.tl__time-end{color:var(--text);font-weight:600}.tl__time-start:before{content:"– ";color:var(--text-subtle);font-weight:400}.tl__body{grid-area:2/2;min-width:0}.tl__body .muted{overflow-wrap:anywhere}.tl__actions{opacity:1;flex-direction:column;grid-area:1/3/span 2;align-self:center;gap:0}}.chat-page{padding-bottom:var(--sp-2)}.chat-head{z-index:6;justify-content:space-between;align-items:flex-start;gap:var(--sp-4);margin-inline:calc(-1 * var(--sp-1));padding:var(--sp-3) var(--sp-1);background:color-mix(in oklab, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);min-width:0;display:flex;position:sticky;top:0}.chat-head>div:first-child{flex:auto;min-width:0}.chat-head .muted{overflow-wrap:break-word;max-width:none}.chat-head__actions{justify-content:flex-end;gap:var(--sp-2);flex-wrap:wrap;flex:none;display:flex}.guide-toggle{flex:none}@media (width<=860px){.chat-head{top:calc(var(--safe-t) + 3.25rem);align-items:stretch;gap:var(--sp-3);flex-direction:column}.chat-head__actions{justify-content:flex-start;width:100%}}.chat-log{gap:var(--sp-5);flex-direction:column;min-height:28dvh;display:flex}.msg{animation:ka-rise calc(var(--dur-slow) * var(--motion)) var(--ease-out) both;display:grid}.msg--ai{gap:var(--sp-3);grid-template-columns:28px minmax(0,1fr)}.msg__mark{border-radius:var(--r-xs);background:var(--accent-soft);width:28px;height:28px;color:var(--accent-text);font-family:var(--font-display);font-size:var(--fs-sm);font-weight:var(--fw-semibold);place-items:center;margin-top:1px;display:grid}.msg--failed .msg__mark{background:var(--danger-soft);color:var(--danger-text)}.msg__body{gap:var(--sp-3);min-width:0;font-size:var(--fs-lg);line-height:var(--lh-relaxed);display:grid}.msg--failed .msg__body{color:var(--danger-text)}.msg__typing{align-items:center;gap:var(--sp-3);min-height:28px;display:flex}.msg--me{justify-content:flex-end;align-items:flex-start;gap:var(--sp-3);animation:ka-fade calc(var(--dur-slow) * var(--motion)) var(--ease-out) both;display:flex}.msg--me .msg__mark{flex:0 0 28px;margin-top:1px}.msg--me .msg__bubble{flex:0 auto;max-width:min(560px,100% - 40px)}.msg__stack{flex:0 auto;justify-items:end;gap:4px;min-width:0;max-width:min(560px,100% - 40px);display:grid}.msg__stack .msg__bubble{max-width:100%}.msg__time{font-size:var(--fs-xs);color:var(--text-subtle);font-variant-numeric:tabular-nums;margin:0;line-height:1.2}.msg__time--me{padding-inline:2px}.msg__mark--me{background:var(--accent);color:var(--text-on-accent)}.msg__bubble{gap:var(--sp-3);max-width:min(560px,92%);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md) var(--r-md) var(--r-xs) var(--r-md);background:var(--accent);color:var(--text-on-accent);font-size:var(--fs-lg);line-height:var(--lh-relaxed);-webkit-user-select:text;user-select:text;cursor:text;display:grid}.msg__bubble::selection{background:color-mix(in oklab, var(--text-on-accent) 36%, var(--accent));color:var(--c-scrim)}.msg__bubble ::selection{background:color-mix(in oklab, var(--text-on-accent) 36%, var(--accent));color:var(--c-scrim)}.msg__bubble::-moz-selection{background:color-mix(in oklab, var(--text-on-accent) 36%, var(--accent));color:var(--c-scrim)}.msg__bubble ::-moz-selection{background:color-mix(in oklab, var(--text-on-accent) 36%, var(--accent));color:var(--c-scrim)}.msg__bubble p{white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;margin:0}.tool-chips{gap:var(--sp-2);flex-wrap:wrap;display:flex}.tool-chip{align-items:center;gap:var(--sp-2);max-width:100%;padding:var(--sp-1) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface-sunken);font-size:var(--fs-sm);color:var(--text);display:inline-flex}.tool-chip>svg{color:var(--accent);flex:none}.tool-chip--failed{border-color:var(--danger-soft);background:var(--danger-soft);color:var(--danger-text)}.tool-chip--failed>svg{color:var(--danger)}.tool-chip__label{font-weight:var(--fw-medium);color:var(--text-muted)}.tool-chip__value{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:0;overflow:hidden}.msg__bubble .tool-chip{border-color:color-mix(in oklab, var(--text-on-accent) 22%, transparent);background:color-mix(in oklab, var(--text-on-accent) 12%, transparent);color:inherit}.msg__bubble .tool-chip>svg,.msg__bubble .tool-chip__label{color:color-mix(in oklab, var(--text-on-accent) 78%, transparent)}.typing-dots{align-items:center;gap:4px;display:inline-flex}@media (prefers-reduced-motion:reduce){.typing-dots span{opacity:.8;animation:none}.thinking__shine:after{animation:none}}.chat-compose{bottom:var(--sp-4);z-index:5;pointer-events:none;position:sticky}.chat-jump{right:var(--sp-2);bottom:calc(100% + var(--sp-3));border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface);width:40px;height:40px;color:var(--text-muted);box-shadow:var(--elev-2);pointer-events:auto;animation:ka-scale-in calc(var(--dur) * var(--motion)) var(--ease-out) both;transition:color calc(var(--dur-fast) * var(--motion)) var(--ease-out), transform calc(var(--dur-fast) * var(--motion)) var(--ease-out);place-items:center;display:grid;position:absolute}.chat-jump:hover{color:var(--text)}.chat-jump:active{transform:scale(.92)}.chat-compose-card{gap:var(--sp-2);padding:var(--sp-2);border:1px solid var(--border);border-radius:var(--r-lg);background:color-mix(in oklab, var(--surface) 94%, transparent);box-shadow:var(--elev-3);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:auto;display:grid}.chips{gap:var(--sp-2);flex-wrap:wrap;display:flex}.chat-compose .chips{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.chat-compose .chips::-webkit-scrollbar{display:none}.chat-compose .chip{min-height:32px;font-size:var(--fs-sm);flex:none}.chat-input{align-items:end;gap:var(--sp-2);grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid}.chat-textarea{resize:none;min-height:44px;max-height:170px;padding:var(--sp-3);border-radius:var(--r-sm);background:var(--surface);line-height:var(--lh-normal);white-space:pre-wrap;word-break:break-word;overflow-y:auto}.chat-send{--btn-h:44px;border-radius:var(--r-sm);flex:none}.chat-hint{padding:0 var(--sp-1);font-size:var(--fs-xs);color:var(--text-subtle);margin:0}.setup-steps{gap:var(--sp-4);padding-left:var(--sp-5);counter-reset:step;min-width:0;margin:0;display:grid}.setup-steps li{gap:var(--sp-1);justify-items:start;min-width:0;display:grid}.setup-steps li::marker{color:var(--accent);font-variant-numeric:tabular-nums}.setup-steps strong,.setup-steps p{overflow-wrap:anywhere;max-width:100%}.setup-steps p{font-size:var(--fs-sm);line-height:var(--lh-normal)}.setup-steps .chip{margin-top:var(--sp-1);white-space:normal;text-align:left;max-width:100%;height:auto;min-height:34px;padding:var(--sp-1) var(--sp-3)}.md-body{gap:var(--sp-3);display:grid}.md-body p{white-space:pre-wrap;margin:0}.md-body strong{font-weight:var(--fw-semibold);color:inherit}.md-body ul,.md-body ol{gap:var(--sp-1);padding-left:var(--sp-5);margin:0;display:grid}.md-body li::marker{color:var(--text-subtle)}.md-body a{text-underline-offset:2px;text-decoration:underline}.msg__bubble .md-body a{color:inherit}.md-body code{padding:1px var(--sp-1);border-radius:var(--r-xs);background:var(--surface-sunken);font-family:var(--font-mono);font-size:.88em}.msg__bubble .md-body code{background:color-mix(in oklab, var(--text-on-accent) 14%, transparent)}.md-table-wrap{border:1px solid var(--border);border-radius:var(--r-sm);-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.md-body table{border-collapse:collapse;width:100%;min-width:320px;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;line-height:var(--lh-snug)}.md-body th,.md-body td{padding:var(--sp-2) var(--sp-3);border-style:solid;border-width:0 0 1px;border-color:var(--border);text-align:left;vertical-align:top;word-break:break-word}.md-body th{background:var(--surface-sunken);font-weight:var(--fw-semibold)}.md-body tr:last-child td{border-bottom:0}.msg__bubble .md-body th,.msg__bubble .md-body td{border-color:color-mix(in oklab, var(--text-on-accent) 25%, transparent)}.msg__bubble .md-body th{background:color-mix(in oklab, var(--text-on-accent) 14%, transparent)}.msg__bubble .md-table-wrap{border-color:color-mix(in oklab, var(--text-on-accent) 25%, transparent)}.search-form{gap:var(--sp-2);grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid}@media (width<=480px){.search-form{grid-template-columns:minmax(0,1fr)}.search-form>.btn{width:100%}}.food-list{gap:var(--sp-2);margin:0;padding:0;list-style:none;display:grid}.food-item{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-left:3px solid var(--tone,var(--border));border-radius:var(--r-sm);background:var(--surface);min-width:0;display:flex}.food-item__main{text-align:left;gap:3px;min-width:0;display:grid}.food-item__main strong{overflow-wrap:anywhere}button.food-item__pick,button.meal-item__pick{color:inherit;cursor:pointer;border-radius:var(--r-xs);text-align:left;background:0 0;border:0;width:100%;padding:0}button.food-item__pick:hover strong,button.meal-item__pick:hover strong{color:var(--accent-text)}.food-item__meta{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.macro-line{align-items:baseline;gap:var(--sp-1) var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.macro-line b{color:var(--text);font-weight:var(--fw-semibold)}.macro-line i{font-style:normal}.macro-line i:first-of-type{color:var(--macro-protein-text)}.macro-line i:nth-of-type(2){color:var(--macro-fat-text)}.macro-line i:nth-of-type(3){color:var(--macro-carbs-text)}.meal-list{gap:var(--sp-2);margin:0;padding:0;list-style:none;display:grid}.meal-item{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);min-width:0;display:flex}.meal-item__main{gap:2px;min-width:0;display:grid}.meal-item__main strong{font-variant-numeric:tabular-nums}.meal-item__main span{overflow-wrap:anywhere}.stepper{gap:var(--sp-2);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.stepper input{text-align:center;font-variant-numeric:tabular-nums}.macro-preview{gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-sunken);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.macro-preview>div{text-align:center;gap:2px;min-width:0;display:grid}.macro-preview span{font-size:var(--fs-xs);color:var(--text-muted)}.macro-preview strong{font-family:var(--font-display);font-size:1.15rem;font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.fold{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-quiet)}.fold>summary{align-items:center;gap:var(--sp-2);min-height:var(--tap-min);padding:0 var(--sp-3);border-radius:var(--r-sm);color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;list-style:none;display:flex}.fold>summary::-webkit-details-marker{display:none}.fold>summary:after{content:"";width:6px;height:6px;transition:rotate calc(var(--dur-fast) * var(--motion)) var(--ease-out);border:1.5px solid;border-width:0 1.5px 1.5px 0;margin-left:auto;rotate:45deg}.fold[open]>summary:after{rotate:225deg}.fold>summary:hover{color:var(--text)}.fold__body{padding:var(--sp-1) var(--sp-3) var(--sp-3)}.recipe-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));display:grid}.recipe-card{align-content:start;gap:var(--sp-3);padding:var(--pad-card);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--elev-1);min-width:0;display:grid}.recipe-card__head{justify-content:space-between;align-items:flex-start;gap:var(--sp-2);display:flex}.recipe-card__title{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);overflow-wrap:anywhere;margin:0}.recipe-card__foot{align-items:center;gap:var(--sp-1);padding-top:var(--sp-1);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.ing-chips{gap:var(--sp-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.ing-chips li{align-items:baseline;gap:var(--sp-1);padding:3px var(--sp-2);border-radius:var(--r-xs);background:var(--surface-sunken);font-size:var(--fs-sm);color:var(--text-muted);display:inline-flex}.ing-chips b{color:var(--text);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.ing-chips em{color:var(--text-subtle);font-style:normal;font-size:var(--fs-xs)}.combo{z-index:5;min-width:0;position:relative}.tone-mine{--tone:var(--source-mine)}.tone-seed{--tone:var(--source-seed)}.tone-off{--tone:var(--source-off)}.swatch{width:10px;height:10px;margin-right:var(--sp-2);border-radius:var(--r-full);vertical-align:middle;background-color:var(--swatch,var(--chart-6));background-image:linear-gradient(145deg, color-mix(in oklab, var(--swatch,var(--chart-6)) 55%, #fff) 0%, var(--swatch,var(--chart-6)) 70%);display:inline-block}.warn-macros{color:var(--warning-text)}.fold-head{justify-content:space-between;align-items:center;gap:var(--sp-3);border-radius:var(--r-xs);width:100%;min-height:0;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:flex}.fold-head:hover{background:0 0}.fold-head:hover .muted{color:var(--text)}.fold-head h2{margin:0}.fold-head .muted{font-size:var(--fs-sm);transition:color calc(var(--dur-fast) * var(--motion)) var(--ease-out);flex:none}.recipe-steps{gap:var(--sp-1);margin:var(--sp-1) 0 var(--sp-2);padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-6);border-radius:var(--r-sm);background:var(--surface-sunken);font-size:var(--fs-sm);line-height:var(--lh-relaxed);display:grid}.recipe-steps li{color:var(--text)}.tag{margin-left:var(--sp-2);padding:2px var(--sp-2);border-radius:var(--r-xs);background:var(--accent-soft);color:var(--accent-text);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--track-normal);vertical-align:middle;align-items:center;display:inline-flex}.stat-row{gap:var(--sp-2)}.bullets{gap:var(--sp-2);padding-left:var(--sp-5);color:var(--text-muted);font-size:var(--fs-sm);line-height:var(--lh-normal);margin:0;display:grid}.bullets li::marker{color:var(--accent)}.plain-list{gap:var(--sp-2);min-width:0;margin:0;padding:0;list-style:none;display:grid}.dots{gap:4px;padding-top:2px;display:inline-flex}.dots i{border-radius:var(--r-full);background:var(--border-strong);width:8px;height:8px}.dots i.on{background:var(--sleep)}.duration-readout{justify-content:space-between;align-items:baseline;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--accent-line);border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-text);display:flex}.duration-readout span{font-size:var(--fs-sm)}.duration-readout strong{font-family:var(--font-display);font-size:1.35rem;font-weight:var(--fw-medium);letter-spacing:var(--track-tight);font-variant-numeric:tabular-nums}.workout-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));display:grid}.workout-card{align-content:start;gap:var(--sp-3);padding:var(--pad-card);border:1px solid var(--border);border-left:3px solid var(--sport);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--elev-1);min-width:0;display:grid}.workout-card__head{justify-content:space-between;align-items:flex-start;gap:var(--sp-2);display:flex}.workout-card__title{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);overflow-wrap:anywhere;margin:0}.workout-card__ctx{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-xs);background:var(--surface-sunken);font-size:var(--fs-sm);color:var(--text-muted);line-height:var(--lh-normal);margin:0}.exercise-card{gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-quiet);min-width:0;display:grid}.exercise-card__head{align-items:center;gap:var(--sp-2);display:flex}.exercise-card__head input{min-width:0;font-weight:var(--fw-medium);flex:1}.exercise-card__metrics{gap:var(--sp-2);grid-template-columns:repeat(auto-fit,minmax(88px,1fr));display:grid}.metric{gap:3px;min-width:0;margin:0;display:grid}.metric>span{font-size:var(--fs-xs);color:var(--text-muted)}.metric input{min-height:38px;padding:0 var(--sp-2);text-align:center;font-variant-numeric:tabular-nums}.chip--tone[aria-pressed=true]{border-color:var(--tone,var(--accent));background:color-mix(in oklab, var(--tone,var(--accent)) 16%, var(--surface));color:var(--text)}.chip .swatch,.cat-bars__title .swatch{border-radius:var(--r-full);flex:none;width:9px;height:9px;margin:0}.cycle-card{gap:var(--sp-4)}.cycle-card__head{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);flex-wrap:wrap;display:flex}.cycle-card__day{margin:var(--sp-2) 0 0;font-size:var(--fs-md);color:var(--text-muted)}.cycle-card__day strong{font-family:var(--font-display);font-size:1.5rem;font-weight:var(--fw-medium);color:var(--text);letter-spacing:var(--track-tight);font-variant-numeric:tabular-nums}.cycle-track{align-items:flex-end;gap:3px;height:24px;display:flex}.cycle-track__day{border-radius:var(--r-full);background:var(--surface-sunken);min-width:3px;height:12px;box-shadow:inset 0 0 0 1px var(--border);flex:1 1 0}.cycle-track__day.is-past{background:var(--border-strong);box-shadow:none}.cycle-track__day.is-period{background:color-mix(in oklab, var(--danger) 35%, var(--surface));box-shadow:none}.cycle-track__day.is-today{background:var(--accent);height:24px;box-shadow:none}.cycle-card__meta{gap:var(--sp-2) var(--sp-5);font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;display:flex}.cycle-card__meta strong{color:var(--text);font-variant-numeric:tabular-nums}.cycle-page-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);display:flex}.cycle-cal-card{gap:var(--sp-3);display:grid}.cycle-cal__nav{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.cycle-cal__title{font-family:var(--font-display);font-size:1.1rem;font-weight:var(--fw-medium);margin:0}.cycle-cal__weekdays,.cycle-cal__grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.cycle-cal__weekdays{font-size:var(--fs-xs);color:var(--text-muted);text-align:center}.cycle-cal__cell{aspect-ratio:1;border-radius:var(--r-sm);color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;padding:0;display:grid;position:relative}.cycle-cal__cell.is-empty{pointer-events:none}.cycle-cal__cell.is-period{background:color-mix(in oklab, var(--danger) 22%, var(--surface));border-color:color-mix(in oklab, var(--danger) 35%, var(--border))}.cycle-cal__cell.is-predicted{background:color-mix(in oklab, var(--danger) 8%, var(--surface));border-style:dashed;border-color:color-mix(in oklab, var(--danger) 28%, var(--border))}.cycle-cal__cell.is-fertile{background:color-mix(in oklab, var(--accent) 12%, var(--surface))}.cycle-cal__cell.is-today{border-color:var(--accent);font-weight:var(--fw-medium)}.cycle-cal__cell.has-checkin .cycle-cal__num{text-underline-offset:2px;text-decoration:underline}.cycle-cal__num{font-variant-numeric:tabular-nums;font-size:var(--fs-sm)}.cycle-cal__dots{gap:2px;display:flex;position:absolute;bottom:3px}.cycle-cal__dots .dot{background:var(--accent);border-radius:50%;width:4px;height:4px}.cycle-cal__dots .dot--start{background:var(--danger)}.cycle-cal__dots .dot--end{background:var(--info)}.cycle-cal__legend{gap:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.cycle-cal__legend .legend{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.legend--period{background:color-mix(in oklab, var(--danger) 40%, var(--surface))}.legend--pred{background:color-mix(in oklab, var(--danger) 12%, var(--surface));border:1px dashed color-mix(in oklab, var(--danger) 40%, var(--border))}.legend--fertile{background:color-mix(in oklab, var(--accent) 25%, var(--surface))}.cycle-hist__open{text-align:left;min-width:0;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;flex:1;gap:2px;padding:0;display:grid}.set-row{align-items:center;gap:var(--sp-2);grid-template-columns:minmax(0,1fr) 96px auto;min-width:0;display:grid}.profile-form{gap:var(--gap-section);min-width:0;display:grid}.profile-form>*,fieldset.card{min-width:0}fieldset.card>legend{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--fw-medium);letter-spacing:var(--track-tight);padding:0}.save-bar{bottom:var(--sp-3);z-index:6;justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);background:color-mix(in oklab, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--elev-2);display:flex;position:sticky}.target-row{gap:var(--sp-2) var(--sp-4);font-size:var(--fs-md);color:var(--text-muted);flex-wrap:wrap;display:flex}.target-row b{font-family:var(--font-display);font-size:1.2rem;font-weight:var(--fw-medium);color:var(--text);letter-spacing:var(--track-tight);font-variant-numeric:tabular-nums}.delta.is-up{color:var(--warning-text)}.delta.is-down{color:var(--success-text)}.cat-rows{gap:var(--sp-2);margin:0;padding:0;list-style:none;display:grid}.cat-row{align-items:center;gap:var(--sp-2);grid-template-columns:44px minmax(0,1fr) auto;min-width:0;display:grid}.finance-cats__add{grid-template-columns:44px minmax(0,1fr) minmax(6.5rem,8rem) auto}.finance-cats{gap:var(--sp-4);display:grid}.finance-cats__group{gap:var(--sp-2);display:grid}.finance-cats__label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-subtle);margin:0}.cat-row--add{padding-top:var(--sp-2);border-top:1px dashed var(--border)}.cat-row__color{cursor:pointer;width:44px;height:40px;padding:3px}.cat-row .badge{min-width:4.25rem;color:var(--text-subtle);justify-content:center;gap:3px}.theme-grid{gap:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.theme-card{padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;gap:2px;min-width:0;display:grid}.theme-card:hover{border-color:var(--border-strong);background:var(--surface-hover)}.theme-card.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.theme-card strong{font-size:var(--fs-md)}.theme-card .muted{font-size:var(--fs-sm)}.theme-swatch{height:42px;margin-bottom:var(--sp-2);border:1px solid var(--border);border-radius:var(--r-xs);background:var(--swatch-bg);display:block;position:relative;overflow:hidden}.theme-swatch:before{content:"";background:var(--swatch-surface);box-shadow:0 1px 2px color-mix(in oklab, var(--swatch-accent) 18%, transparent);border-radius:3px;position:absolute;inset:7px 32% 7px 7px}.theme-swatch:after{content:"";background:var(--swatch-accent);border-radius:999px;width:22%;height:18px;position:absolute;top:12px;right:9px}.theme-card--pine{--swatch-bg:var(--preview-pine-bg);--swatch-surface:var(--preview-pine-surface);--swatch-accent:var(--preview-pine-accent)}.theme-card--night{--swatch-bg:var(--preview-night-bg);--swatch-surface:var(--preview-night-surface);--swatch-accent:var(--preview-night-accent)}.theme-card--blush{--swatch-bg:var(--preview-blush-bg);--swatch-surface:var(--preview-blush-surface);--swatch-accent:var(--preview-blush-accent)}.theme-card--slate{--swatch-bg:var(--preview-slate-bg);--swatch-surface:var(--preview-slate-surface);--swatch-accent:var(--preview-slate-accent)}.theme-card--cream{--swatch-bg:var(--preview-cream-bg);--swatch-surface:var(--preview-cream-surface);--swatch-accent:var(--preview-cream-accent)}.weight-chart{gap:var(--sp-1);display:grid}.weight-chart svg{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-quiet);width:100%;height:auto}.weight-chart-label{fill:var(--text-muted);font-size:11px;font-family:var(--font-sans)}.weight-chart-meta{justify-content:space-between;align-items:baseline;gap:var(--sp-3);font-size:var(--fs-xs);color:var(--text-subtle);font-variant-numeric:tabular-nums;margin:0;display:flex}.weight-chart-meta__hint{color:var(--text-muted)}.chart-legend{gap:var(--sp-3);margin-bottom:var(--sp-1);font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;display:flex}.chart-legend__item{align-items:center;gap:var(--sp-2);display:inline-flex}.chart-legend__item:before{content:"";border-radius:var(--r-full);background:currentColor;width:14px;height:2.5px}.chart-legend__item--kcal{color:var(--macro-kcal)}.chart-legend__item--water{color:var(--water)}.chart-legend__item--water:before{border-top:2px dashed var(--water);background:0 0;height:0}.nutrition-stats-grid{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.nutrition-stat-bar__head{justify-content:space-between;align-items:baseline;gap:var(--sp-2);margin-bottom:var(--sp-1);display:flex}.nutrition-today-macros{align-items:baseline;gap:var(--sp-2) var(--sp-3);margin:calc(var(--sp-2) * -1) 0 var(--sp-1);flex-wrap:wrap;display:flex}.hist-list{gap:var(--sp-2)}.hist-row{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);grid-template-columns:3.2rem minmax(0,1fr) auto;min-width:0;display:grid}.hist-row--nutrition{grid-template-columns:3.2rem minmax(0,1fr) auto}.hist-row__day{font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.hist-row__body{align-items:baseline;gap:var(--sp-1) var(--sp-3);flex-wrap:wrap;min-width:0;display:flex}.hist-row__value{color:var(--text);font-weight:var(--fw-normal);font-variant-numeric:tabular-nums}.hist-row__water{color:var(--water);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.hist-row .macro-line{gap:var(--sp-2)}.weight-form{align-items:end;gap:var(--sp-2);grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr) auto;min-width:0;display:grid}.weight-form>.btn{margin-bottom:1px}@media (width<=860px){.weight-form{grid-template-columns:repeat(2,minmax(0,1fr))}.weight-form>.btn{grid-column:1/-1}.cat-row,.cat-row--add:not(.finance-cats__add){grid-template-columns:44px minmax(0,1fr) auto}.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.save-bar{bottom:calc(var(--nav-h) + var(--safe-b) + var(--sp-2))}}@media (width<=520px){.theme-grid{grid-template-columns:minmax(0,1fr)}.save-bar{text-align:center;flex-direction:column;align-items:stretch}}.boot{justify-items:center;gap:var(--sp-4);color:var(--text-muted);display:grid}.boot__mark{border-radius:var(--r-md);background:var(--accent);width:48px;height:48px;color:var(--text-on-accent);font-family:var(--font-display);font-size:1.3rem;font-weight:var(--fw-semibold);animation:ka-pulse calc(1.6s * var(--motion)) var(--ease-in-out) infinite;place-items:center;display:grid}.todo-row{align-items:start;gap:var(--sp-2);grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid}.todo-row__main{gap:2px;min-width:0;display:grid}.todo-row__main strong,.todo-row__main .muted{overflow-wrap:anywhere}.todo-row__actions{flex-shrink:0;align-items:flex-start;gap:2px;display:flex}.todo-check{align-items:flex-start;gap:var(--sp-3);cursor:pointer;min-width:0;display:flex}.todo-check input[type=checkbox]{accent-color:var(--accent);flex-shrink:0;width:1.05rem;height:1.05rem;margin-top:.2em}.todo-check__title{gap:2px;min-width:0;display:grid}.todo-check__title strong,.todo-check__title .muted{overflow-wrap:anywhere}.todo-check__title.is-done strong{color:var(--muted);font-weight:var(--fw-medium);text-decoration:line-through}.finance-hero__nav{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.finance-hero__period{text-align:center;flex:1}.finance-hero__balance{font-family:var(--font-display);font-size:var(--fs-h1);font-weight:var(--fw-semibold);letter-spacing:var(--track-tight);margin:0 0 var(--sp-4);text-align:center}.finance-hero__stats{gap:var(--sp-3);text-align:center;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.finance-hero__stats span{font-size:var(--fs-xs);margin-bottom:.25rem;display:block}.finance-hero__stats strong{font-size:var(--fs-md);font-weight:var(--fw-semibold)}.finance-bars{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.finance-days{gap:var(--sp-4);flex-direction:column;display:flex}.finance-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.finance-list>li{align-items:center;gap:var(--sp-2);display:flex}.finance-row{align-items:center;gap:var(--sp-3);min-width:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);color:inherit;text-align:left;cursor:pointer;transition:background-color calc(var(--dur-fast) * var(--motion)) var(--ease-out);background:0 0;border:0;flex:1;display:flex}.finance-row:hover{background:var(--surface-hover)}.finance-row__dot{background-color:var(--swatch,var(--text-subtle));background-image:linear-gradient(145deg, color-mix(in oklab, var(--swatch,var(--text-subtle)) 55%, #fff) 0%, var(--swatch,var(--text-subtle)) 70%);border-radius:50%;flex-shrink:0;width:8px;height:8px}.finance-row__main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.finance-row__main strong{font-weight:var(--fw-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.finance-row__amount{font-variant-numeric:tabular-nums;font-weight:var(--fw-semibold);white-space:nowrap}.finance-row__amount.is-in{color:var(--ok,var(--accent-text))}.finance-row__amount.is-out{color:var(--danger,var(--text))}.tz-field .segmented{margin-bottom:var(--sp-2)}.tz-combo{margin-top:var(--sp-3);position:relative}.tz-combo__trigger{justify-content:space-between;align-items:center;gap:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);width:100%;min-height:44px;color:inherit;text-align:left;cursor:pointer;padding:.55rem .75rem;display:flex}.tz-combo.is-open .tz-combo__trigger,.tz-combo__trigger:hover{border-color:var(--border-strong);background:var(--surface-hover)}.tz-combo__current{gap:2px;min-width:0;display:grid}.tz-combo__current strong{font-size:var(--fs-md);font-weight:var(--fw-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tz-combo__select{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);width:100%;min-height:44px;color:inherit;padding:.55rem .75rem}.tz-combo__panel{z-index:20;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--elev-2,0 8px 24px color-mix(in srgb, var(--text) 12%, transparent));grid-template-rows:auto minmax(0,16rem);display:grid;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden}.tz-combo__search{align-items:center;gap:var(--sp-2);border-bottom:1px solid var(--border);color:var(--text-subtle);padding:.55rem .75rem;display:flex}.tz-combo__search input{min-width:0;color:inherit;font:inherit;background:0 0;border:0;outline:none;flex:1}.tz-combo__list{padding:var(--sp-1);margin:0;list-style:none;overflow:auto}.tz-combo__empty{padding:var(--sp-3);text-align:center}.tz-combo__option{justify-content:space-between;align-items:center;gap:var(--sp-3);border-radius:var(--r-sm);width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:.55rem .65rem;display:flex}.tz-combo__option>span:first-child{gap:2px;min-width:0;display:grid}.tz-combo__option strong{font-weight:var(--fw-semibold)}.tz-combo__option:hover,.tz-combo__option.is-active{background:var(--accent-soft);color:var(--accent-text)}.tz-combo__offset{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--text-subtle);flex-shrink:0}.finance-fold{margin-top:var(--sp-3);gap:var(--sp-3);flex-direction:column;display:flex}@media (width<=640px){.finance-cats__add{grid-template-columns:44px minmax(0,1fr) auto}.finance-cats__add>.select-wrap{grid-column:2/-1}.finance-cats__add>.btn{grid-column:1/-1}}.stack{gap:var(--sp-3);flex-direction:column;display:flex}.page-head__actions{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}
