@font-face{font-family:Mona Sans;font-style:normal;font-weight:200 900;font-stretch:75% 125%;font-display:swap;src:url(../media/931e7cc49084aee7-s.0zn947vdg041c.woff2)format("woff2");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:Mona Sans;font-style:normal;font-weight:200 900;font-stretch:75% 125%;font-display:swap;src:url(../media/7a642828b0ad1018-s.0aui04k8ii4c3.woff2)format("woff2");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:Mona Sans;font-style:normal;font-weight:200 900;font-stretch:75% 125%;font-display:swap;src:url(../media/c89730c3ffa99552-s.p.0mnsxr00wo6ma.woff2)format("woff2");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:Mona Sans Fallback;src:local(Arial);ascent-override:104.72%;descent-override:30.74%;line-gap-override:0.0%;size-adjust:104.08%}.mona_sans_63e7d78c-module__c7QfYW__className{font-family:Mona Sans,Mona Sans Fallback;font-style:normal}.mona_sans_63e7d78c-module__c7QfYW__variable{--font-sans:"Mona Sans", "Mona Sans Fallback"}
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#05080a;--canvas-2:#0c1013;--surface:#12171a;--surface-top:#161b1f;--surface-2:#1d2227;--surface-2-top:#21272c;--surface-3:#282f34;--hairline:#2d3438;--hairline-2:#464e54;--grad-surface:linear-gradient(180deg, var(--surface-top) 0%, var(--surface) 100%);--grad-surface-2:linear-gradient(180deg, var(--surface-2-top) 0%, var(--surface-2) 100%);--ink:#eceff1;--ink-2:#a6acaf;--ink-3:#6f757a;--ink-4:#484e52;--under:#39abab;--under-dim:#055959;--at:#eeb154;--at-dim:#7b5518;--over:#dc5f52;--over-dim:#782a24;--under-text:#65d2d2;--at-text:#ffc673;--over-text:#fb8274;--energy:#5ebe8b;--energy-dim:#27593e;--protein:#2cb4e4;--protein-dim:#05556f;--carbs:#e1af4a;--carbs-dim:#6b5018;--fat:#d389d1;--fat-dim:#643c63;--good:#5ebe8b;--attention:#eeb154;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-16:64px;--r-sm:6px;--r-md:12px;--r-lg:18px;--r-xl:24px;--r-pill:999px;--t-2xs:10px;--t-xs:11px;--t-sm:13px;--t-md:15px;--t-lg:20px;--t-xl:28px;--t-2xl:40px;--t-3xl:56px;--ease-out-quint:cubic-bezier(.22, 1, .36, 1);--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--t-fast:.12s;--t-base:.22s;--t-slow:.32s;--t-sheet:.38s;--topbar-h:calc(52px + env(safe-area-inset-top,0px));--tabbar-h:calc(82px + env(safe-area-inset-bottom,0px));--fab-size:56px;font-family:var(--font-sans), -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;font-feature-settings:"tnum" 1, "cv11" 1, "ss01" 1}@supports (color:lab(0% 0 0)){:root{--canvas:lab(1.98737% -.464819 -1.12743);--canvas-2:lab(4.44418% -.999242 -2.40212);--surface:lab(7.23616% -1.40841 -3.20238);--surface-top:lab(9.53152% -1.68202 -3.57134);--surface-2:lab(13.0129% -1.84137 -3.89877);--surface-2-top:lab(15.3339% -1.99431 -4.22344);--surface-3:lab(18.8153% -2.15329 -4.55072);--hairline:lab(21.1345% -1.87497 -3.91369);--hairline-2:lab(32.7377% -2.2029 -4.57315);--ink:lab(94.2081% -.822991 -1.65213);--ink-2:lab(69.8525% -1.3054 -2.6371);--ink-3:lab(48.9747% -1.61377 -3.28661);--ink-4:lab(32.7339% -1.59834 -3.27871);--under:lab(63.9397% -32.7013 -9.86379);--under-dim:lab(33.4602% -22.9006 -6.88069);--at:lab(76.7321% 16.4406 55.1357);--at-dim:lab(39.6029% 11.8919 39.9486);--over:lab(56.7218% 49.5434 32.7548);--over-dim:lab(29.3468% 34.1648 22.9761);--under-text:lab(77.8621% -32.6855 -9.90378);--at-text:lab(83.7351% 14.5266 49.2778);--over-text:lab(68.4411% 46.159 29.7345);--energy:lab(70.2666% -38.9931 17.1835);--energy-dim:lab(33.6451% -22.7571 10.028);--protein:lab(67.8702% -23.8958 -35.1881);--protein-dim:lab(32.9273% -14.5027 -21.6137);--carbs:lab(74.6012% 11.434 57.0174);--carbs-dim:lab(36.2621% 7.24675 35.8067);--fat:lab(66.8055% 37.4313 -25.1528);--fat-dim:lab(31.5607% 23.0337 -15.4568);--good:lab(70.2666% -38.9931 17.1835);--attention:lab(76.7321% 16.4406 55.1357)}}*{box-sizing:border-box}html,body{scrollbar-width:none;-ms-overflow-style:none;margin:0}html::-webkit-scrollbar{width:0;height:0;display:none}body::-webkit-scrollbar{width:0;height:0;display:none}::-webkit-scrollbar{width:0;height:0;display:none}*{scrollbar-width:none}html{background:var(--canvas);color:var(--ink)}body{color:var(--ink)}html,body{overscroll-behavior:none;height:100dvh;overflow:hidden}body{font-size:var(--t-sm);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(120% 55% at 50% -8%, var(--canvas-2), transparent 70%) fixed, var(--canvas);line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;color:inherit;background:0 0;border:0;padding:0}input,select,textarea{background:0 0;font-size:16px}::selection{background:var(--under-dim);color:var(--ink)}:focus-visible{outline:2px solid var(--under);outline-offset:2px;border-radius:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}h1,h2,h3,h4{letter-spacing:-.005em;text-wrap:balance;margin:0;font-weight:500}.muted{color:var(--ink-2)}.subtle{color:var(--ink-3)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.topbar{z-index:30;padding:calc(env(safe-area-inset-top,0px) + var(--s-2)) clamp(var(--s-4), 4vw, var(--s-6)) var(--s-2);pointer-events:none;background:0 0;position:fixed;top:0;left:0;right:0}.topbar>*{pointer-events:auto}.topbar-inner{justify-content:center;align-items:center;gap:var(--s-3);width:min(100%,720px);margin:0 auto;display:flex;position:relative}.topbar-avatar{border-radius:var(--r-pill);background:var(--grad-surface-2);width:32px;height:32px;font-size:var(--t-xs);letter-spacing:.04em;color:var(--ink-2);place-items:center;font-weight:600;display:inline-grid}.date-stepper{align-items:center;gap:var(--s-2);background:var(--grad-surface);border-radius:var(--r-pill);padding:4px var(--s-1);justify-self:center;display:inline-flex}.date-step{width:28px;height:28px;color:var(--ink-3);border-radius:var(--r-pill);transition:color var(--t-fast) ease, background var(--t-fast) ease;place-items:center;font-size:16px;display:inline-grid}.date-step:hover{color:var(--ink)}.date-step:disabled{opacity:.3;cursor:not-allowed}.date-label{font-size:var(--t-sm);letter-spacing:.01em;padding:0 var(--s-2);font-variant-numeric:tabular-nums;color:var(--ink);font-weight:500}.date-label.is-today{color:var(--ink)}.date-back-pill{top:calc(var(--topbar-h) - 4px);height:30px;font-family:inherit;font-size:var(--t-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink);background:color-mix(in oklch, var(--good) 26%, var(--surface));border:1px solid color-mix(in oklch, var(--good) 36%, transparent);border-radius:var(--r-pill);z-index:31;cursor:pointer;pointer-events:auto;transition:background var(--t-fast) ease, transform var(--t-fast) ease;animation:date-back-in .22s var(--ease-out-quart) both;align-items:center;gap:7px;padding:0 14px 0 11px;font-weight:600;display:inline-flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 14px 32px -18px #0000008c}.date-back-pill svg{display:block}.date-back-pill:hover{background:color-mix(in oklch, var(--good) 42%, var(--surface))}.date-back-pill:active{transform:translate(-50%)scale(.96)}@keyframes date-back-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.topbar-action{width:32px;height:32px;color:var(--ink-2);border-radius:var(--r-pill);transition:color var(--t-fast) ease, background var(--t-fast) ease;place-items:center;display:inline-grid;position:relative}.topbar-action:before{content:"";position:absolute;inset:-4px}.topbar-action:hover{color:var(--ink);background:var(--surface)}.app-shell{width:100%;max-width:720px;padding:calc(var(--topbar-h) + var(--s-3)) clamp(var(--s-4), 4vw, var(--s-6)) calc(var(--tabbar-h) + var(--s-3));gap:var(--s-5);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;align-content:start;min-width:0;display:grid;position:absolute;top:0;bottom:0;left:50%;overflow:hidden auto;transform:translate(-50%)}.app-shell>*{min-width:0}body.no-topbar .app-shell{padding-top:calc(env(safe-area-inset-top,0px) + var(--s-2))}body.is-modal-open .app-shell{overflow:hidden}.tab-pane{gap:var(--s-5);min-width:0;animation:tab-slide var(--t-base) var(--ease-out-quint) both;display:grid}.tab-pane>*{min-width:0}@keyframes tab-slide{0%{opacity:0;transform:translate3d(calc(var(--tab-dir,1) * 24px), 0, 0)}to{opacity:1;transform:translate(0,0)}}.rings{gap:var(--s-3);padding:var(--s-8) 0 var(--s-5);animation:rings-fade-in var(--t-slow) var(--ease-out-quint) both;grid-template-columns:repeat(3,1fr);display:grid}@keyframes rings-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.insight-card{--insight-accent:var(--hairline-2);gap:var(--s-1);padding:var(--s-4);border-radius:var(--r-lg);background:radial-gradient(80% 180% at 100% 0%, color-mix(in oklch, var(--insight-accent) 9%, transparent), transparent 52%), linear-gradient(135deg, color-mix(in oklch, var(--surface-2) 72%, transparent), color-mix(in oklch, var(--surface) 88%, transparent)), var(--grad-surface);animation:rings-fade-in var(--t-slow) var(--ease-out-quint) both;display:grid;box-shadow:0 26px 70px -42px #000000e6,inset 0 1px #ffffff14}.insight-card.is-good{--insight-accent:var(--good)}.insight-card.is-attention{--insight-accent:var(--attention)}.insight-card.is-quiet,.insight-card.is-steady{--insight-accent:var(--hairline-2)}.insight-meta{justify-content:space-between;align-items:center;gap:var(--s-3);min-height:16px;margin-bottom:2px;display:flex}.insight-streak{font-size:var(--t-2xs);color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:6px;min-width:0;font-weight:600;display:inline-flex}.insight-streak:before{content:"🔥";filter:drop-shadow(0 0 8px color-mix(in oklch, var(--attention) 55%, transparent));transform-origin:50% 80%;animation:insight-flame 1.8s var(--ease-out-quart) infinite;font-size:11px;line-height:1}@keyframes insight-flame{0%,to{opacity:.92;transform:translateY(0)scale(1)rotate(-2deg)}45%{opacity:1;transform:translateY(-1px)scale(1.08)rotate(3deg)}}.insight-week-strip{flex-shrink:0;align-items:flex-end;gap:6px;height:28px;display:inline-flex}.insight-week-day{grid-template-rows:auto 1fr;place-items:end center;gap:3px;width:14px;display:grid}.insight-week-day-letter{color:var(--ink-4);letter-spacing:.04em;font-variation-settings:"wdth" 100;text-transform:uppercase;font-size:9px;font-weight:700;line-height:1}.insight-week-day-bar{background:var(--surface-3);border-radius:2px;width:7px;height:16px;display:block;position:relative;overflow:hidden}.insight-week-day-fill{background:var(--ink-4);border-radius:inherit;height:0;transition:height var(--t-base) var(--ease-out-quart), background var(--t-base) var(--ease-out-quart);position:absolute;bottom:0;left:0;right:0}.insight-week-day.is-cal-in-range .insight-week-day-fill{background:var(--good)}.insight-week-day.is-cal-over .insight-week-day-fill{background:var(--over)}.insight-week-day.is-cal-low .insight-week-day-fill{background:var(--attention)}.insight-week-day.is-cal-empty .insight-week-day-fill{background:0 0}.insight-week-day.is-log-partial.is-cal-empty .insight-week-day-fill{background:color-mix(in oklch, var(--attention) 50%, var(--surface-3))}.insight-week-day.is-today .insight-week-day-letter{color:var(--ink)}.insight-week-day.is-today .insight-week-day-bar{box-shadow:0 0 0 1.5px color-mix(in oklch, var(--ink) 38%, transparent)}.insight-week-day.is-viewed .insight-week-day-letter{color:var(--ink-2)}.insight-week-day.is-viewed .insight-week-day-bar{box-shadow:0 0 0 1.5px color-mix(in oklch, var(--ink) 18%, transparent)}.insight-card h1{font-size:var(--t-lg);color:var(--ink);line-height:1.15}.insight-card p{color:var(--ink-2);font-size:var(--t-sm);text-wrap:pretty;margin:0}.ring{justify-items:center;gap:var(--s-2);text-align:center;cursor:pointer;transition:transform var(--t-fast) var(--ease-out-quart);background:0 0;border:0;padding:0;display:grid}.ring:active{transform:scale(.96)}.ring-svg{aspect-ratio:1;width:100%;max-width:110px;display:block}.ring-track{fill:none;stroke:var(--surface-2);stroke-width:9px}.ring-fill{fill:none;stroke-width:9px;stroke-linecap:round;transform-origin:50%;transition:stroke-dashoffset var(--t-slow) var(--ease-out-quint), stroke var(--t-base) var(--ease-out-quart);transform:rotate(-90deg)}.ring-fill.is-under{stroke:var(--under)}.ring-fill.is-at{stroke:var(--at)}.ring-fill.is-over{stroke:var(--over)}.ring-fill.is-in-range,.ring-fill.is-complete{stroke:var(--good)}.ring-fill.is-low,.ring-fill.is-close,.ring-fill.is-building{stroke:var(--attention)}.ring-fill.is-empty{stroke:var(--hairline-2)}.ring-fill.is-low.is-kind-protein{stroke:color-mix(in oklch, var(--protein) 75%, var(--protein-dim))}.ring-fill.is-building.is-kind-protein{stroke:var(--protein)}.ring-overshoot{fill:none;stroke:var(--over);stroke-width:9px;stroke-linecap:round;transform-origin:50%;opacity:.55;transition:stroke-dashoffset var(--t-slow) var(--ease-out-quint);transform:rotate(-90deg)}.ring-num{color:var(--ink);place-items:center;line-height:1;display:grid;position:absolute;inset:0}.ring-num.is-over{color:var(--over-text)}.ring-num.is-at{color:var(--at-text)}.ring-num.is-good{color:var(--good)}.ring-num.is-attention{color:var(--attention)}.ring-num.is-attention-dim{color:var(--ink-2)}.ring-num-row{font-size:clamp(var(--t-lg), 5.4vw, var(--t-xl));font-variant-numeric:tabular-nums;font-variation-settings:"wdth" 90;letter-spacing:-.02em;color:inherit;align-items:baseline;gap:4px;font-weight:600;line-height:1;display:inline-flex}.ring-num-value{display:inline-block}.ring-num-unit{font-size:var(--t-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-variation-settings:"wdth" 100;font-weight:500;display:inline-block}.ring-num.is-over .ring-num-unit{color:color-mix(in oklch, var(--over-text) 60%, var(--ink-3))}.ring-num-unit.is-toggle{cursor:pointer;font-family:inherit;font-size:var(--t-2xs);letter-spacing:.06em;text-transform:uppercase;font-variation-settings:"wdth" 100;color:var(--ink-3);transition:color var(--t-fast) ease;background:0 0;border:0;padding:0;font-weight:500;position:relative}.ring-num-unit.is-toggle:hover{color:var(--ink)}.ring-num-unit.is-toggle:after{content:"";opacity:0;height:1px;transition:opacity var(--t-fast) ease;background:currentColor;position:absolute;bottom:-2px;left:0;right:0}.ring-num-unit.is-toggle:hover:after{opacity:.45}.ring-num.macro-dual-num{flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.macro-dual-line{font-size:var(--t-md);font-variant-numeric:tabular-nums;font-variation-settings:"wdth" 92;color:var(--ink);letter-spacing:-.01em;align-items:baseline;gap:5px;font-weight:600;line-height:1.05;display:inline-flex}.macro-dual-line i{font-style:normal;font-size:var(--t-2xs);letter-spacing:.06em;font-weight:700}.macro-dual-line i.is-carbs{color:var(--carbs)}.macro-dual-line i.is-fat{color:var(--fat)}.dual-track{fill:none;stroke:var(--surface-2);stroke-width:7px}.dual-fill{fill:none;stroke-width:7px;stroke-linecap:round;transform-origin:50%;transition:stroke-dashoffset var(--t-slow) var(--ease-out-quint), stroke var(--t-base) var(--ease-out-quart);transform:rotate(-90deg)}.dual-fill.is-carbs.is-open{stroke:var(--carbs)}.dual-fill.is-carbs.is-near{stroke:var(--attention)}.dual-fill.is-carbs.is-high{stroke:var(--over)}.dual-fill.is-carbs.is-neutral{stroke:var(--hairline-2)}.dual-fill.is-fat.is-open{stroke:var(--fat)}.dual-fill.is-fat.is-near{stroke:var(--attention)}.dual-fill.is-fat.is-high{stroke:var(--over)}.dual-fill.is-fat.is-neutral{stroke:var(--hairline-2)}.dual-over{fill:none;stroke:var(--over);stroke-width:7px;stroke-linecap:round;transform-origin:50%;opacity:.55;transition:stroke-dashoffset var(--t-slow) var(--ease-out-quint);transform:rotate(-90deg)}.ring-svg-wrap{aspect-ratio:1;width:100%;max-width:110px;position:relative}.ring-label{gap:2px;display:grid}.ring-label-name{font-size:var(--t-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);transition:color var(--t-base) var(--ease-out-quart);font-weight:500}.ring-label-name.is-over{color:var(--over-text)}.ring-label-delta{font-size:var(--t-xs);font-variant-numeric:tabular-nums;color:var(--ink-2);transition:color var(--t-base) var(--ease-out-quart)}.ring-label-delta.is-over{color:var(--over-text)}.card{background:var(--grad-surface);border-radius:var(--r-lg);padding:var(--s-4);gap:var(--s-3);display:grid;box-shadow:0 22px 58px -38px #000000d1,inset 0 1px #ffffff0e,inset 0 -1px #0000002e}.card-head{justify-content:space-between;align-items:center;gap:var(--s-3);padding-bottom:var(--s-1);display:flex}.card-head.is-flush{z-index:5;pointer-events:none;background:0 0;justify-content:center;padding-bottom:0;position:sticky;top:0}.card-head.is-flush>*{pointer-events:auto}.card-title{font-size:var(--t-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.card-action{font-size:var(--t-xs);color:var(--ink-3);padding:4px var(--s-2);border-radius:var(--r-pill);transition:color var(--t-fast) ease, background var(--t-fast) ease;align-items:center;gap:4px;display:inline-flex}.card-action:hover{color:var(--ink);background:var(--surface-2)}.row-list{display:grid}.row{align-items:center;gap:var(--s-3);padding:var(--s-3) 0;border-bottom:1px solid var(--hairline);grid-template-columns:auto auto minmax(0,1fr) auto auto;min-height:56px;display:grid}.row:first-child{padding-top:0}.row:last-child{border-bottom:0;padding-bottom:0}.row-meal-header{font-size:var(--t-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-4);padding:var(--s-3) 0 var(--s-1);border-bottom:1px solid var(--hairline-2);margin-bottom:var(--s-1);font-weight:600}.row-meal-header:first-child{padding-top:0}.row-meal-header+.row{padding-top:var(--s-3)}.row.is-fresh{animation:row-enter var(--t-base) var(--ease-out-quart) both}@keyframes row-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.row-time{font-size:var(--t-xs);font-variant-numeric:tabular-nums;color:var(--ink-3);text-align:left;letter-spacing:.02em;width:44px}.row-thumb{border-radius:var(--r-md);background:var(--surface-2);width:40px;height:40px;color:var(--ink-3);font-size:var(--t-sm);letter-spacing:.02em;flex:none;place-items:center;font-weight:500;display:inline-grid;overflow:hidden}.row-thumb img{object-fit:cover;width:100%;height:100%;display:block}.row-text{text-align:left;gap:3px;min-width:0;display:grid}.row-name{font-size:var(--t-sm);color:var(--ink);overflow-wrap:anywhere;flex-wrap:wrap;align-items:baseline;gap:6px;margin:0;font-weight:500;display:inline-flex}.row-multiplier{font-size:var(--t-2xs);letter-spacing:.04em;color:var(--ink-2);background:var(--surface-3);border-radius:var(--r-pill);font-variant-numeric:tabular-nums;padding:1px 6px;font-weight:600;line-height:1.3}.row-meta{font-size:var(--t-xs);color:var(--ink-3);font-variant-numeric:tabular-nums;letter-spacing:.02em;margin:0}.row-macro-bar{border-radius:var(--r-pill);background:var(--surface-3);width:100%;max-width:220px;height:3px;margin-top:2px;display:flex;overflow:hidden}.row-macro-bar i{height:100%;display:block}.row-macro-bar .is-protein{background:var(--protein)}.row-macro-bar .is-carbs{background:var(--carbs)}.row-macro-bar .is-fat{background:var(--fat)}.row-kcal{font-size:var(--t-md);font-variant-numeric:tabular-nums;font-variation-settings:"wdth" 92;color:var(--ink);text-align:right;letter-spacing:-.01em;justify-content:flex-end;align-items:baseline;gap:3px;min-width:4ch;font-weight:600;display:inline-flex}.row-kcal-unit{font-size:var(--t-2xs);color:var(--ink-3);letter-spacing:.04em;text-transform:lowercase;font-variation-settings:"wdth" 100;font-weight:500}.row-del{border-radius:var(--r-pill);width:32px;height:32px;color:var(--ink-3);transition:color var(--t-fast) ease, background var(--t-fast) ease;place-items:center;font-size:18px;line-height:1;display:inline-grid;position:relative}.row-del:before{content:"";position:absolute;inset:-4px}.row-del:hover{color:var(--over-text);background:color-mix(in oklch, var(--over) 12%, transparent)}.row.is-tappable{cursor:pointer;transition:background var(--t-fast) ease;padding-left:var(--s-2);padding-right:var(--s-2);margin-left:calc(-1 * var(--s-2));margin-right:calc(-1 * var(--s-2));border-radius:10px}.row.is-tappable:hover{background:var(--surface-2)}.row.is-tappable:active{background:var(--surface-3)}.rail{gap:var(--s-3);margin-left:calc(-1 * clamp(var(--s-4), 4vw, var(--s-6)));margin-right:calc(-1 * clamp(var(--s-4), 4vw, var(--s-6)));display:grid}.rail-head{justify-content:space-between;align-items:baseline;gap:var(--s-3);padding:0 clamp(var(--s-4), 4vw, var(--s-6));display:flex}.rail-track{gap:var(--s-2);padding:2px clamp(var(--s-4), 4vw, var(--s-6)) var(--s-1);scroll-snap-type:x proximity;scroll-padding-left:clamp(var(--s-4), 4vw, var(--s-6));-webkit-overflow-scrolling:touch;scrollbar-width:none;grid-auto-columns:108px;grid-auto-flow:column;display:grid;overflow-x:auto}.rail-track::-webkit-scrollbar{display:none}.preset-chip{gap:var(--s-2);padding:var(--s-2);background:var(--grad-surface);border-radius:var(--r-md);text-align:left;scroll-snap-align:start;transition:background var(--t-fast) ease, transform var(--t-fast) var(--ease-out-quart);grid-template-rows:auto 1fr auto auto;display:grid}.preset-chip:hover{background:var(--grad-surface-2)}.preset-chip:active{transform:scale(.96)}.preset-chip:disabled{opacity:.5;cursor:not-allowed}.preset-chip .row-thumb{border-radius:4px;width:100%;height:88px}.preset-macro-mark{background:radial-gradient(85% 85% at 50% 18%, color-mix(in oklch, var(--surface-3) 88%, transparent), transparent 72%), var(--surface-2);align-content:center;justify-items:center;gap:var(--s-2);width:100%;height:88px;color:var(--ink-2);font-size:var(--t-md);border-radius:4px;font-weight:650;display:grid;overflow:hidden}.preset-macro-bars{border-radius:var(--r-pill);background:var(--surface-3);width:calc(100% - 20px);height:6px;display:flex;overflow:hidden}.preset-macro-bars i{height:100%;display:block}.preset-macro-bars .is-protein{background:var(--protein)}.preset-macro-bars .is-carbs{background:var(--carbs)}.preset-macro-bars .is-fat{background:var(--fat)}.preset-chip-name{font-size:var(--t-xs);color:var(--ink);-webkit-line-clamp:2;min-height:calc(var(--t-xs) * 1.3 * 2);-webkit-box-orient:vertical;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.preset-chip-kcal{font-size:var(--t-md);font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:var(--ink);font-weight:600}.preset-chip-kcal small{color:var(--ink-3);font-size:var(--t-2xs);font-weight:600}.preset-chip-macros{color:var(--ink-3);font-size:var(--t-2xs);font-variant-numeric:tabular-nums;white-space:nowrap}.empty{padding:var(--s-6) 0;color:var(--ink-3);font-size:var(--t-sm);text-align:center}.empty-card{padding:var(--s-4) 0;color:var(--ink-3);font-size:var(--t-sm);text-align:center}.error-box{background:color-mix(in oklch, var(--over) 12%, transparent);color:var(--over-text);border:1px solid color-mix(in oklch, var(--over) 35%, transparent);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);font-size:var(--t-sm)}.dock{left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + var(--s-3));z-index:30;justify-content:center;align-items:center;gap:var(--s-2);padding:0 var(--s-3);pointer-events:none;display:flex;position:fixed}.dock>*{pointer-events:auto}.dock-nav{background:color-mix(in oklch, var(--surface-2) 38%, transparent);-webkit-backdrop-filter:blur(28px)saturate(180%);backdrop-filter:blur(28px)saturate(180%);border-radius:var(--r-pill);border:1px solid #ffffff1a;border:1px solid lab(100% 0 0/.1);border-color:oklch(100% 5.96046e-8 none/.1) oklch(100% 5.96046e-8 none/.1) oklch(100% 5.96046e-8 none/.1) oklch(100% 5.96046e-8 none/.1);align-items:stretch;gap:2px;padding:6px;display:inline-flex;position:relative;box-shadow:0 18px 48px -20px #000000bf,0 4px 16px -6px #00000080,inset 0 1px #ffffff2e,inset 0 -1px #0000003d;box-shadow:0 18px 48px -20px lab(0% 0 0/.74902),0 4px 16px -6px lab(0% 0 0/.501961),inset 0 1px lab(100% 0 0/.18),inset 0 -1px lab(0% 0 0/.24)}.dock-tab-indicator{border-radius:calc(var(--r-pill) - 4px);width:calc(33.3333% - 5.33333px);transform:translate3d(calc(var(--tab-i,0) * (100% + 2px)), 0, 0);transition:transform var(--t-base) var(--ease-out-quint);pointer-events:none;background:#ffffff14;background:lab(100% 0 0/.08);position:absolute;top:6px;bottom:6px;left:6px;box-shadow:inset 0 1px #ffffff24;box-shadow:inset 0 1px lab(100% 0 0/.14)}.dock-tab{z-index:1;border-radius:calc(var(--r-pill) - 4px);min-width:64px;color:color-mix(in oklch, var(--ink) 72%, transparent);transition:color var(--t-fast) ease, transform var(--t-fast) var(--ease-out-quart);background:0 0;flex:1 1 0;align-content:center;justify-items:center;gap:3px;padding:6px 10px 7px;display:grid;position:relative}.dock-tab:hover{color:var(--ink)}.dock-tab:active{transform:scale(.96)}.dock-tab svg{stroke-width:1.7px;width:22px;height:22px}.dock-tab-label{letter-spacing:.01em;font-size:10.5px;font-weight:600;line-height:1}.dock-tab.is-active{color:var(--ink)}.dock-add{border-radius:var(--r-pill);width:56px;height:56px;color:var(--canvas);transition:transform var(--t-base) var(--ease-out-quart), background var(--t-fast) ease;background:linear-gradient(#f6f9fb,#dee2e5);background:linear-gradient(lab(97.6866% -.659496 -1.32245),lab(89.5697% -.985473 -1.98144));border:1px solid #ffffffb8;place-items:center;display:inline-grid;box-shadow:0 20px 56px -24px #ffffff42,0 18px 48px -20px #000000c7,inset 0 1px #ffffffeb,inset 0 -1px #00000029}.dock-add:hover{background:linear-gradient(#fff,#e8ecee);background:linear-gradient(lab(100.003% -.330836 -.661826),lab(93.0481% -.822932 -1.65209));transform:scale(1.04)}.dock-add:active{transform:scale(.96)}.dock-add svg{stroke-width:2px;width:22px;height:22px}.dock-add.is-open{transform:rotate(45deg)}.sheet-backdrop{z-index:40;background:color-mix(in oklch, var(--canvas) 70%, black 30%);opacity:0;pointer-events:none;transition:opacity var(--t-sheet) var(--ease-out-quart);position:fixed;inset:0}.sheet-backdrop.is-open{opacity:.7;pointer-events:auto}.sheet{z-index:41;background:var(--grad-surface);border-radius:var(--r-xl) var(--r-xl) 0 0;width:min(100%,720px);padding:var(--s-3) clamp(var(--s-4), 4vw, var(--s-6)) calc(env(safe-area-inset-bottom,0px) + var(--s-4));transition:transform var(--t-sheet) var(--ease-out-quart);-webkit-overflow-scrolling:touch;gap:var(--s-4);max-height:88dvh;display:grid;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%,100%)}.sheet.is-open{transform:translate(-50%)}.sheet-handle{border-radius:var(--r-pill);background:var(--hairline-2);width:40px;height:4px;margin-bottom:var(--s-2);justify-self:center}.sheet-title{font-size:var(--t-md);letter-spacing:-.005em;color:var(--ink);font-weight:600}.sheet-title-row{justify-content:space-between;align-items:center;gap:var(--s-3);margin-bottom:var(--s-1);display:flex}.sheet-close{border-radius:var(--r-pill);width:36px;height:36px;color:var(--ink-3);transition:color var(--t-fast) ease, background var(--t-fast) ease, transform var(--t-fast) var(--ease-out-quart);place-items:center;font-size:20px;display:inline-grid}.sheet-close:hover{color:var(--ink);background:var(--surface-2)}.sheet-close:active{transform:scale(.96)}.field{gap:var(--s-1);display:grid}.field-label{letter-spacing:.04em;color:var(--ink-3);padding-left:2px;font-size:11px;font-weight:500}.field-label.is-toggle{font:inherit;letter-spacing:.04em;color:var(--ink-3);cursor:pointer;transition:color var(--t-fast) ease;background:0 0;border:0;justify-self:start;align-items:center;gap:3px;margin:0;padding:0;font-size:11px;font-weight:500;display:inline-flex}.field-label.is-toggle:after{content:"⇄";opacity:.55;transition:opacity var(--t-fast) ease;font-size:10px}.field-label.is-toggle:hover{color:var(--ink)}.field-label.is-toggle:hover:after{opacity:1}.field-label.is-toggle:active{transform:scale(.96)}.field input,.field select,.field textarea{background:var(--surface-3);border-radius:var(--r-md);width:100%;min-width:0;height:44px;padding:0 var(--s-3);color:var(--ink);font-variant-numeric:tabular-nums;appearance:none;transition:background var(--t-fast) ease, box-shadow var(--t-fast) ease;border:0;font-size:16px}.field select,.settings-control select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23999' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 2l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--s-3) center;cursor:pointer;background-size:12px 8px;padding-right:32px}.field input:focus,.field select:focus,.field textarea:focus{background:var(--surface-3);box-shadow:inset 0 0 0 1px var(--under-dim);outline:none}.field input::placeholder{color:var(--ink-4)}.field-name input{height:50px;padding:0 var(--s-4);font-size:16px;font-weight:500}.field-row{gap:var(--s-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.field-row.is-log{grid-template-columns:minmax(0,1.45fr) repeat(3,minmax(0,1fr))}.sheet-actions{justify-content:space-between;align-items:center;gap:var(--s-3);padding-top:var(--s-2);display:flex}.sheet-actions-left{align-items:center;gap:var(--s-3);display:inline-flex}.sheet-actions-right{align-items:center;gap:var(--s-2);display:inline-flex}label.check{align-items:center;gap:var(--s-2);font-size:var(--t-xs);color:var(--ink-2);cursor:pointer;letter-spacing:.02em;display:inline-flex}input[type=checkbox]{appearance:none;background:var(--surface-3);cursor:pointer;width:16px;height:16px;transition:background var(--t-fast) ease;border-radius:3px;place-content:center;display:inline-grid}input[type=checkbox]:checked{background:var(--ink)}input[type=checkbox]:checked:after{content:"";border-left:1.5px solid var(--canvas);border-bottom:1.5px solid var(--canvas);width:8px;height:4px;transform:rotate(-45deg)translate(.5px,-1px)}.attach-btn{background:var(--grad-surface-2);border-radius:var(--r-md);width:44px;height:44px;color:var(--ink-2);transition:color var(--t-fast) ease, background var(--t-fast) ease;border:0;place-items:center;display:inline-grid;overflow:hidden}.attach-btn:hover{color:var(--ink);background:var(--surface-3)}.attach-btn img{object-fit:cover;width:100%;height:100%}.attach-btn svg{width:18px;height:18px}.btn{height:44px;padding:0 var(--s-5);border-radius:var(--r-md);background:var(--grad-surface-2);color:var(--ink);font-size:var(--t-sm);justify-content:center;align-items:center;gap:var(--s-2);letter-spacing:.02em;transition:background var(--t-fast) ease;border:0;font-weight:500;display:inline-flex}.btn:hover{background:var(--surface-3)}.btn.is-primary{color:var(--canvas);background:linear-gradient(#eff2f5,#e2e5e8);background:linear-gradient(lab(95.3681% -.823021 -1.65218),lab(90.7281% -.822723 -1.65201))}.btn.is-primary:hover{background:linear-gradient(#e8ecee,#dbdee1);background:linear-gradient(lab(93.0481% -.822932 -1.65209),lab(88.4081% -.822634 -1.65192))}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.is-danger{color:var(--over-text);background:color-mix(in oklch, var(--over) 14%, var(--surface))}.btn.is-danger:hover{background:color-mix(in oklch, var(--over) 22%, var(--surface))}.btn-ghost{height:36px;padding:0 var(--s-3);border-radius:var(--r-md);color:var(--ink-2);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:var(--s-1);transition:color var(--t-fast) ease, background var(--t-fast) ease;border:0;font-weight:500;display:inline-flex}.btn-ghost:hover{color:var(--ink);background:var(--surface-2)}.btn-danger:hover{color:var(--over-text);background:color-mix(in oklch, var(--over) 12%, var(--surface-2))}.month-row{align-items:center;gap:var(--s-3);margin-bottom:var(--s-3);grid-template-columns:auto 1fr auto;display:grid}.month-label{text-align:center;font-size:var(--t-md);font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--ink);font-weight:500}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.calendar-legend{justify-content:center;align-items:center;gap:var(--s-3);color:var(--ink-3);font-size:var(--t-2xs);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--s-2);font-weight:600;display:flex}.calendar-legend i,.day-dot{border-radius:var(--r-pill);width:6px;height:6px;display:inline-block}.calendar-legend i{margin-right:5px}.calendar-legend .is-in-range,.day-dot.is-in-range{background:var(--good)}.calendar-legend .is-low,.day-dot.is-low{background:var(--attention)}.calendar-legend .is-over,.day-dot.is-over{background:var(--over)}.day-dot.is-empty{background:var(--hairline-2)}.weekday{color:var(--ink-3);text-align:center;font-size:var(--t-2xs);text-transform:uppercase;letter-spacing:.08em;padding:var(--s-2) 0;font-weight:500}.day-cell{aspect-ratio:1;padding:var(--s-2);text-align:left;color:var(--ink-2);background:var(--grad-surface);border-radius:var(--r-md);font-variant-numeric:tabular-nums;transition:background var(--t-fast) ease, box-shadow var(--t-fast) ease;font-size:var(--t-xs);border:0;grid-template-rows:auto 1fr;place-items:start;display:grid;position:relative}.day-cell.is-blank{pointer-events:none;background:0 0}.day-cell strong{font-size:var(--t-sm);color:var(--ink-2);font-weight:500}.day-cell span{color:var(--ink-3);font-size:var(--t-2xs);font-variant-numeric:tabular-nums;place-self:end}.day-cell.in-range strong,.day-cell.in-range span{color:var(--good)}.day-cell.low strong,.day-cell.low span{color:var(--attention)}.day-cell.over strong,.day-cell.over span{color:var(--over-text)}.day-dot{top:var(--s-2);right:var(--s-2);position:absolute}.day-cell.is-selected{background:var(--grad-surface-2);box-shadow:inset 0 0 0 1px var(--hairline-2)}.day-cell.is-selected strong{color:var(--ink)}.day-cell:hover:not(.is-blank){background:var(--grad-surface-2)}.calendar-summary{align-items:center;gap:var(--s-3);padding-top:var(--s-3);color:var(--ink-3);font-size:var(--t-xs);font-variant-numeric:tabular-nums;grid-template-columns:1fr auto 1fr;display:grid}.calendar-summary strong{color:var(--ink);font-size:var(--t-sm)}.calendar-summary span:last-child{text-align:right}.settings{gap:0;min-width:0;display:grid}.settings-note{margin:calc(-1 * var(--s-1)) 0 var(--s-1);color:var(--ink-3);font-size:var(--t-xs);text-wrap:pretty}.settings-row{align-items:center;gap:var(--s-3);padding:var(--s-3) 0;border-bottom:1px solid var(--hairline);grid-template-columns:minmax(0,110px) minmax(0,1fr);min-width:0;display:grid}.settings-row:last-of-type{border-bottom:0}.settings-label{font-size:var(--t-xs);color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;min-width:0;font-weight:500}.settings-control{align-items:center;gap:var(--s-2);min-width:0;display:flex}.settings-control input,.settings-control select{background:var(--surface-3);border-radius:var(--r-md);width:100%;min-width:0;height:40px;padding:0 var(--s-3);color:var(--ink);font-variant-numeric:tabular-nums;appearance:none;transition:box-shadow var(--t-fast) ease;border:0;flex:1 1 0;font-size:16px}.settings-control input:focus,.settings-control select:focus{box-shadow:inset 0 0 0 1px var(--under-dim);outline:none}.settings-suffix{font-size:var(--t-xs);color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.settings-save{margin-top:var(--s-2);justify-self:end}.settings-form{gap:var(--s-4);min-width:0;display:grid}.settings-form>*{min-width:0}.segmented{background:color-mix(in oklch, var(--surface-2) 38%, transparent);-webkit-backdrop-filter:blur(28px)saturate(180%);backdrop-filter:blur(28px)saturate(180%);border-radius:var(--r-pill);border:1px solid #ffffff1a;border:1px solid lab(100% 0 0/.1);border-color:oklch(100% 5.96046e-8 none/.1) oklch(100% 5.96046e-8 none/.1) oklch(100% 5.96046e-8 none/.1) oklch(100% 5.96046e-8 none/.1);align-items:stretch;gap:2px;padding:5px;display:inline-flex;position:relative;box-shadow:0 8px 24px -16px #0009,inset 0 1px #ffffff24,inset 0 -1px #0000002e;box-shadow:0 8px 24px -16px lab(0% 0 0/.6),inset 0 1px lab(100% 0 0/.14),inset 0 -1px lab(0% 0 0/.18)}.segmented-indicator{width:calc((100% - 10px - ((var(--seg-count,3) - 1) * 2px)) / var(--seg-count,3));border-radius:var(--r-pill);transform:translate3d(calc(var(--seg-i,0) * (100% + 2px)), 0, 0);transition:transform var(--t-base) var(--ease-out-quint);pointer-events:none;background:#ffffff14;background:lab(100% 0 0/.08);position:absolute;top:5px;bottom:5px;left:5px;box-shadow:inset 0 1px #ffffff24;box-shadow:inset 0 1px lab(100% 0 0/.14)}.segmented-btn{z-index:1;padding:7px var(--s-3);font-size:var(--t-xs);letter-spacing:.01em;color:color-mix(in oklch, var(--ink) 64%, transparent);border-radius:var(--r-pill);transition:color var(--t-fast) ease, transform var(--t-fast) var(--ease-out-quart);background:0 0;flex:1 1 0;font-weight:500;position:relative}.segmented-btn:hover{color:var(--ink)}.segmented-btn:active{transform:scale(.96)}.segmented-btn.is-active{color:var(--ink)}.sub-tab-pane{gap:var(--s-5);min-width:0;animation:tab-slide var(--t-base) var(--ease-out-quint) both;display:grid}.sub-tab-pane>*{min-width:0}.performance-stack{gap:var(--s-4);min-width:0;display:grid}.performance-hero,.performance-card{background:var(--grad-surface);border-radius:var(--r-lg);box-shadow:0 22px 58px -38px #000000d1,inset 0 1px #ffffff0e,inset 0 -1px #0000002e}.performance-hero{gap:var(--s-4);padding:var(--s-4);grid-template-columns:minmax(0,1fr) auto;align-items:end;display:grid}.performance-hero h2{margin:var(--s-2) 0 var(--s-1);font-size:var(--t-lg);font-weight:600;line-height:1.15}.performance-hero p{color:var(--ink-2);font-size:var(--t-sm);text-wrap:pretty;margin:0}.performance-score{text-align:right;justify-items:end;gap:2px;min-width:126px;display:grid}.performance-score span{color:var(--ink-3);font-size:var(--t-xs)}.performance-score strong{font-size:var(--t-2xl);color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}.performance-grid{gap:var(--s-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.performance-card{padding:var(--s-4);gap:var(--s-3);min-width:0;display:grid}.performance-card-head{justify-content:space-between;align-items:baseline;gap:var(--s-3);display:flex}.performance-card-head>span:last-child,.performance-card-head strong{color:var(--ink-2);font-size:var(--t-xs);font-variant-numeric:tabular-nums;font-weight:600}.performance-bars{height:138px;padding-top:var(--s-2);grid-template-columns:repeat(28,minmax(3px,1fr));align-items:end;gap:3px;display:grid}.performance-bar{border-radius:var(--r-pill);background:color-mix(in oklch, var(--surface-3) 58%, transparent);align-items:end;height:100%;display:flex;overflow:hidden}.performance-bar i{border-radius:inherit;background:var(--hairline-2);width:100%;min-height:4px;display:block}.performance-bar.is-in-range i,.performance-bar.is-complete i{background:var(--good)}.performance-bar.is-low i,.performance-bar.is-close i,.performance-bar.is-building i{background:var(--attention)}.performance-bar.is-over i{background:var(--over)}.performance-bar.is-empty i{background:var(--surface-3)}.performance-caption{justify-content:space-between;gap:var(--s-3);color:var(--ink-3);font-size:var(--t-xs);font-variant-numeric:tabular-nums;display:flex}.consistency-grid{grid-template-columns:repeat(14,minmax(0,1fr));gap:5px;display:grid}.consistency-day{aspect-ratio:1;background:var(--surface-3);border-radius:5px}.consistency-day.is-in-range{background:var(--good)}.consistency-day.is-low{background:var(--attention)}.consistency-day.is-over{background:var(--over)}.consistency-day.is-empty{background:color-mix(in oklch, var(--surface-3) 52%, transparent)}.chat-shell{min-height:calc(100dvh - var(--topbar-h) - var(--tabbar-h) - 80px);grid-template-rows:1fr auto;display:grid;position:relative}html.chat-mode{height:var(--vv-h,100dvh);overflow:hidden}body.chat-mode{width:100%;height:var(--vv-h,100dvh);min-height:var(--vv-h,100dvh);overscroll-behavior:none;flex-direction:column;padding:0;display:flex;position:fixed;top:0;left:0;right:0;overflow:hidden}body.chat-mode .topbar{padding-top:calc(env(safe-area-inset-top,0px) + var(--s-2));flex:none;position:relative}body.chat-mode .app-shell{width:100%;max-width:720px;min-height:0;padding-top:var(--s-2);flex-direction:column;flex:auto;margin:0 auto;padding-bottom:0;display:flex;position:relative;inset:auto;overflow:visible;transform:none}body.chat-mode .app-shell>*{flex:auto;min-height:0}body.chat-mode .tab-pane{flex-direction:column;flex:auto;gap:0;min-height:0;display:flex}body.chat-mode .chat-shell{grid-template-rows:minmax(0,1fr) auto;width:100%;height:100%;min-height:0;margin:0;display:grid;overflow:hidden}body.chat-mode .chat-shell.is-empty{flex-direction:column;justify-content:center;height:100%;display:flex}body.chat-mode .chat-stream{overscroll-behavior:contain;min-height:0;overflow-y:auto}body.chat-mode .chat-composer{padding-bottom:max(var(--s-3), calc(var(--tabbar-h) - var(--keyboard-inset,0px)));background:0 0;position:relative;bottom:auto}html.chat-mode .dock{transition:opacity var(--t-fast) ease}body.keyboard-open .dock{opacity:0;pointer-events:none}.chat-shell.is-empty{justify-content:center;gap:var(--s-4);animation:chat-empty-fade-in var(--t-base) var(--ease-out-quart) both;flex-direction:column;display:flex}.chat-shell.is-empty .chat-composer{background:0 0;padding:0;position:static}.chat-shell.is-empty .chat-welcome{padding:0 var(--s-2)}@keyframes chat-empty-fade-in{0%{opacity:0}to{opacity:1}}.chat-stream{gap:var(--s-4);padding:var(--s-2) 0 var(--s-6);align-content:start;display:grid;overflow-y:auto}.chat-welcome{align-content:start;justify-items:center;gap:var(--s-2);text-align:center;padding:var(--s-16) var(--s-2) var(--s-8);display:grid}.chat-welcome p{color:var(--ink-3);max-width:320px;font-size:var(--t-sm);margin:0}.chat-prompts{justify-content:center;gap:var(--s-2);max-width:420px;margin-top:var(--s-2);flex-wrap:wrap;display:flex}.chat-prompts button{min-height:34px;padding:0 var(--s-3);border-radius:var(--r-pill);background:var(--grad-surface);color:var(--ink-2);font-size:var(--t-xs);transition:color var(--t-fast) ease, background var(--t-fast) ease, transform var(--t-fast) var(--ease-out-quart);font-weight:600;box-shadow:inset 0 1px #ffffff0d}.chat-prompts button:hover{color:var(--ink);background:var(--grad-surface-2)}.chat-prompts button:active{transform:scale(.96)}.bubble{gap:var(--s-1);font-size:var(--t-md);overflow-wrap:anywhere;text-wrap:pretty;line-height:1.55;display:grid}.bubble.user{background:var(--surface-2);max-width:86%;color:var(--ink);border-radius:var(--r-lg);padding:var(--s-2) var(--s-3);justify-self:end}.bubble.assistant{max-width:100%;color:var(--ink);justify-self:stretch;padding:0 2px}.chat-image-grid{gap:var(--s-1);margin-bottom:var(--s-1);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.bubble.user .chat-image-grid{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}.chat-image-grid img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-md);border:1px solid #ffffff1a;width:100%}.bubble.assistant .bubble-body strong{color:var(--ink);font-weight:600}.bubble.assistant .bubble-body em{font-style:italic}.bubble.assistant .bubble-body a{color:var(--ink);text-underline-offset:2px;text-decoration:underline}.bubble.assistant .bubble-body h1,.bubble.assistant .bubble-body h2,.bubble.assistant .bubble-body h3{font-size:var(--t-md);margin:var(--s-2) 0 2px;font-weight:500}.bubble.assistant .bubble-body ul,.bubble.assistant .bubble-body ol{margin:var(--s-1) 0;padding-left:22px}.bubble.assistant .bubble-body li{margin:2px 0}.bubble.assistant .bubble-body code{background:var(--surface-2);border-radius:3px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.bubble.assistant .bubble-body pre{margin:var(--s-2) 0;padding:var(--s-3);background:var(--surface-2);border-radius:var(--r-md);overflow-x:auto}.bubble.assistant .bubble-body pre code{background:0 0;padding:0}.chat-thinking{align-items:center;gap:var(--s-2);color:var(--ink-3);font-size:var(--t-sm);display:inline-flex}.search-pill{font-size:var(--t-xs);color:var(--ink-3);align-items:center;gap:6px;width:fit-content;padding:0;display:inline-flex}.search-pill:before{content:"";background:var(--ink-2);border-radius:var(--r-pill);width:4px;height:4px;animation:1.6s ease-in-out infinite chat-pulse}@keyframes chat-pulse{0%,to{opacity:.25}50%{opacity:1}}.estimate-card{margin-top:var(--s-2);background:var(--grad-surface);border-radius:var(--r-md);padding:var(--s-3);gap:var(--s-1);animation:estimate-fade-in var(--t-base) var(--ease-out-quart) both;display:grid}@keyframes estimate-fade-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.estimate-card.is-added{opacity:.5}.estimate-head{justify-content:space-between;align-items:baseline;gap:var(--s-3);display:flex}.estimate-name{font-size:var(--t-md);overflow-wrap:anywhere;font-weight:500}.estimate-conf{font-size:var(--t-2xs);color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em}.estimate-macros{font-size:var(--t-sm);color:var(--ink-2);font-variant-numeric:tabular-nums}.estimate-notes{font-size:var(--t-xs);color:var(--ink-3);line-height:1.5}.estimate-actions{gap:var(--s-2);margin-top:var(--s-1);flex-wrap:wrap;display:flex}.chat-composer{padding:var(--s-3) 0 calc(env(safe-area-inset-bottom,0px) + var(--s-3));background:var(--canvas);position:sticky;bottom:0}.chat-draft-images{gap:var(--s-2);padding:0 0 var(--s-2);display:flex;overflow-x:auto}.chat-draft-image{flex:0 0 72px;width:72px;height:72px;position:relative}.chat-draft-image img{object-fit:cover;border-radius:var(--r-md);border:1px solid #ffffff1a;width:100%;height:100%}.chat-draft-image button{border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--hairline-2);width:20px;height:20px;color:var(--ink);justify-content:center;align-items:center;font-size:13px;display:inline-flex;position:absolute;top:4px;right:4px}.chat-pill{align-items:stretch;gap:var(--s-1);border-radius:var(--r-lg);background:var(--grad-surface);transition:box-shadow var(--t-fast) ease;grid-template-columns:auto 1fr auto;padding:4px;display:grid}.chat-pill:focus-within{box-shadow:inset 0 0 0 1px var(--hairline-2)}.chat-pill textarea{min-height:36px;max-height:160px;color:var(--ink);resize:none;padding:var(--s-2);background:0 0;border:0;font-size:16px;line-height:1.45}.chat-pill textarea:focus{outline:none}.chat-pill textarea:disabled{opacity:.6}.chat-actions{align-items:end;gap:4px;display:inline-flex}.chat-camera,.chat-bin,.chat-send{border-radius:var(--r-md);width:36px;height:36px;transition:background var(--t-fast) ease, color var(--t-fast) ease;justify-content:center;align-self:end;align-items:center;display:inline-flex}.chat-camera{color:var(--ink-2)}.chat-camera:hover{color:var(--ink)}.chat-bin{color:var(--ink-3)}.chat-bin:hover{color:var(--over-text)}.chat-bin[hidden]{display:none}.chat-send{background:var(--ink);color:var(--canvas)}.chat-send:hover{opacity:.85}.chat-send:disabled{background:var(--surface-2);color:var(--ink-3);cursor:not-allowed}.chat-send.is-stopping{background:var(--surface-2);color:var(--ink);border:1px solid var(--hairline-2)}.login{height:100dvh;padding:var(--s-6);place-items:center;display:grid;overflow-y:auto}.loginPanel{width:min(380px,100%);padding:var(--s-8) 0;gap:var(--s-4);display:grid}.loginPanel h1{font-size:var(--t-xl);letter-spacing:-.02em;font-weight:500}.loginPanel .hint{color:var(--ink-2);font-size:var(--t-sm);margin:-8px 0 0}.loginPanel .button{height:44px;padding:0 var(--s-5);border-radius:var(--r-md);border:1px solid var(--ink);background:var(--ink);color:var(--canvas);justify-content:center;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.clerkMount{align-items:center;min-height:280px;display:grid}.centerScreen{height:100dvh;padding:var(--s-6);place-items:center;display:grid;overflow-y:auto}.emptyState{width:min(380px,100%);padding:var(--s-6) 0;gap:var(--s-3);text-align:left;display:grid}.emptyState h1{font-size:var(--t-xl);letter-spacing:-.02em;font-weight:500}.modal-backdrop{background:color-mix(in oklch, var(--canvas) 60%, black 40%);z-index:50;padding:var(--s-4);place-items:center;display:grid;position:fixed;inset:0}.modal{border-radius:var(--r-lg);background:var(--grad-surface);width:min(94vw,460px);max-height:min(86vh,720px);color:var(--ink);flex-direction:column;min-height:0;display:flex;overflow:hidden}.modal-head{justify-content:space-between;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--hairline);align-items:center;display:flex}.modal-head h2{font-size:var(--t-md);font-weight:500}.modal-body{padding:var(--s-4);gap:var(--s-3);-webkit-overflow-scrolling:touch;display:grid;overflow-y:auto}.modal-foot{padding:var(--s-3) var(--s-4);border-top:1px solid var(--hairline);justify-content:flex-end;gap:var(--s-2);display:flex}.icon-btn{width:32px;height:32px;color:var(--ink-2);font-size:20px;line-height:1}.icon-btn:hover{color:var(--ink)}.small-btn{height:36px;padding:0 var(--s-3);border-radius:var(--r-md);background:var(--grad-surface-2);color:var(--ink);font-size:var(--t-sm);transition:background var(--t-fast) ease, color var(--t-fast) ease;border:0}.small-btn:hover{background:var(--surface-3)}.small-btn.primary{color:var(--canvas);background:linear-gradient(#eff2f5,#e2e5e8);background:linear-gradient(lab(95.3681% -.823021 -1.65218),lab(90.7281% -.822723 -1.65201))}.small-btn.danger:hover{color:var(--over-text)}.small-btn:disabled{opacity:.4;cursor:not-allowed}.scan-preview{aspect-ratio:4/3;border-radius:var(--r-md);background:var(--surface-2);overflow:hidden}.scan-preview img{object-fit:cover;width:100%;height:100%;display:block}.scan-status{font-size:var(--t-sm);color:var(--ink-2);text-align:center;padding:var(--s-1) 0}.rate-banner{background:var(--grad-surface);border-radius:var(--r-md);padding:var(--s-2) var(--s-3);font-size:var(--t-xs);color:var(--ink-2);justify-content:space-between;align-items:center;gap:var(--s-2);display:flex}.rate-banner.is-warn{color:var(--at-text)}.rate-banner.is-block{color:var(--over-text)}@media (min-width:760px){.rings{padding:var(--s-10) 0 var(--s-6)}.ring-svg-wrap,.ring-svg{max-width:130px}}@media (max-width:560px){.rings{grid-template-columns:repeat(2,minmax(0,1fr))}.rings>:nth-child(3){grid-column:1/-1;justify-self:center}.field-row.is-log{grid-template-columns:repeat(2,minmax(0,1fr))}.field-row.is-log .field:first-child{grid-column:1/-1}.calendar-summary{text-align:left;grid-template-columns:1fr;gap:2px}.calendar-summary span:last-child{text-align:left}}
