:root{--bg:#f4f5f7;--surface:#fff;--surface-tint:#fbfbfc;--text:#16191f;--text-muted:#5c636e;--text-faint:#868d99;--border:#e2e5ea;--hairline:#10182814;--accent:#1a1d21;--accent-text:#fff;--accent-soft:color-mix(in oklab, var(--text) 7%, var(--surface));--danger:#dc2626;--guide:#963e36;--guide-soft:#f7eee9;--grid-empty:color-mix(in oklab, var(--text) 10%, var(--surface));--card-shadow:0 0 0 1px #1018280d, 0 1px 2px #1018280f;--card-shadow-hero:0 0 0 1px #1018280f, 0 12px 28px -20px #10182880;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--series-6:#4a8f22;--series-7:#4a3aa7;--series-other:#6d7683;--summary:#d0568a;--progress-zero:#b7791f;--progress-match:#2563eb;--progress-beat:#059669;--progress-beat-deep:#047857;--state-ahead:#047857;--fs-0:.6875rem;--fs-1:.8125rem;--fs-2:.9375rem;--fs-3:1.0625rem;--fs-4:1.3125rem;--fs-5:2rem;--ls-tight:-.02em;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--r-1:6px;--r-2:10px;--r-3:16px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-fast:.14s;--dur-base:.26s;--dur-slow:.7s;font-variant-numeric:tabular-nums lining;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0e1014;--surface:#171a21;--surface-tint:#1c2029;--text:#f0f2f5;--text-muted:#99a1ac;--text-faint:#737b87;--border:#262b35;--hairline:#ffffff12;--accent:#e8eaed;--accent-text:#14171d;--accent-soft:#ffffff17;--danger:#f87171;--guide:#df7f73;--guide-soft:#241d1d;--grid-empty:color-mix(in oklab, var(--text) 13%, var(--surface));--card-shadow:inset 0 1px 0 #ffffff0a;--card-shadow-hero:inset 0 1px 0 #ffffff0f, 0 14px 30px -22px #000000e6;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--series-5:#d55181;--series-6:#6fbf3f;--series-7:#9085e9;--series-other:#8b94a3;--summary:#d55181;--progress-zero:#d9a441;--progress-match:#6ea8fe;--progress-beat:#34d399;--progress-beat-deep:#6ee7b7;--state-ahead:#34d399}}*{box-sizing:border-box}[hidden]{display:none!important}html{background:var(--bg)}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;overscroll-behavior-y:contain;padding:calc(var(--sp-4) + env(safe-area-inset-top)) var(--sp-4) calc(6.5rem + env(safe-area-inset-bottom));margin:0}body:after{content:"";height:calc(5rem + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--bg) 45%, transparent);pointer-events:none;z-index:1;position:fixed;inset:auto 0 0}#auth,#app{max-width:28rem;margin:0 auto}#auth{padding-top:12vh}h1{font-size:var(--fs-4);letter-spacing:var(--ls-tight);margin:0;font-weight:600}h2{font-size:var(--fs-0);text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);margin:0 0 var(--sp-3);font-weight:600}.card{background:var(--surface);border-radius:var(--r-3);box-shadow:var(--card-shadow);padding:var(--sp-4);margin-bottom:var(--sp-4)}.hero-card{background:linear-gradient(180deg, var(--surface-tint) 0%, var(--surface) 60%);box-shadow:var(--card-shadow-hero);padding:var(--sp-5) var(--sp-4) var(--sp-4);transition:background var(--dur-slow) var(--ease-out)}.hero-card:has(.rings svg.is-complete){background:linear-gradient(180deg, color-mix(in oklab, var(--state-ahead) 12%, var(--surface)) 0%, var(--surface) 65%)}.card-head{margin-bottom:var(--sp-4);flex-direction:column;gap:.1rem;display:flex}.card-head h2{font-size:var(--fs-4);text-transform:none;letter-spacing:var(--ls-tight);color:var(--text);margin:0;font-weight:600}.auth-card h1{margin-bottom:var(--sp-2)}.muted{color:var(--text-muted)}.small{font-size:var(--fs-1);margin:0}label{font-size:var(--fs-1);color:var(--text-muted);margin-bottom:var(--sp-1);display:block}input,select{font:inherit;color:inherit;border:1px solid var(--border);border-radius:var(--r-2);background:var(--bg);width:100%;margin-bottom:var(--sp-3);padding:.7rem .8rem}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--progress-match);outline-offset:2px}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);transition:transform .11s var(--ease-out), opacity var(--dur-fast) ease .12s, background-color var(--dur-fast) ease;padding:.7rem 1rem}button:active:not(:disabled){transform:scale(.96)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.ghost{padding:var(--sp-1) var(--sp-2);color:var(--text-muted);background:0 0;border:none}button.danger{color:var(--danger)}.suggestions{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}button.suggest-chip{padding:var(--sp-2) var(--sp-3);background:color-mix(in oklab, var(--series-color) 18%, var(--surface));border-color:#0000;border-radius:999px;align-items:baseline;gap:.35rem;display:inline-flex}.suggest-amount{font-size:var(--fs-2);color:var(--series-color);font-weight:700}.suggest-name{font-size:var(--fs-1);color:var(--text)}.quick-row{gap:var(--sp-2);margin-bottom:var(--sp-3);grid-template-columns:repeat(4,1fr);display:grid}button.quick,button.habit-mark{background:color-mix(in oklab, var(--series-color,var(--text)) 16%, var(--surface));color:var(--text);border-color:#0000}button.quick{min-height:3.4rem;font-size:var(--fs-3);font-weight:600}.inline-form{gap:var(--sp-2);display:flex}.inline-form input{flex:1;margin-bottom:0}.inline-form .unit-select{width:auto;margin-bottom:0}.inline-form .grow{flex:1}.habit-mark{width:100%;min-height:3.4rem;font-size:var(--fs-3)}.fab{bottom:calc(1.25rem + env(safe-area-inset-bottom));background:var(--accent);border-color:var(--accent);width:3.5rem;height:3.5rem;color:var(--accent-text);z-index:2;border-radius:50%;place-items:center;padding:0;display:grid;position:fixed;right:max(1.25rem,50% - 12.75rem);box-shadow:0 6px 20px #00000059}.fab:active:not(:disabled){transform:scale(.92)}.sheet{border-radius:var(--r-3) var(--r-3) 0 0;background:var(--surface);color:var(--text);padding:var(--sp-4);width:100%;max-width:28rem;max-height:85dvh;padding-bottom:calc(var(--sp-4) + env(safe-area-inset-bottom));opacity:0;transition:translate var(--dur-base) var(--ease-out), opacity .2s var(--ease-out), display var(--dur-base) allow-discrete, overlay var(--dur-base) allow-discrete;border:none;margin:auto auto 0;overflow-y:auto;translate:0 100%}.sheet[open]{opacity:1;translate:0}@starting-style{.sheet[open]{opacity:0;translate:0 100%}}.sheet::backdrop{transition:background var(--dur-base) var(--ease-out), display var(--dur-base) allow-discrete, overlay var(--dur-base) allow-discrete;background:0 0}.sheet[open]::backdrop{background:#00000080}@starting-style{.sheet[open]::backdrop{background:0 0}}.sheet-head{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.sheet-head h2{font-size:var(--fs-4);text-transform:none;letter-spacing:var(--ls-tight);color:var(--text);margin:0;font-weight:600}.sheet-signout{width:100%;margin-top:var(--sp-4);font-size:var(--fs-1);display:block}.status{min-height:1.2rem;margin:var(--sp-2) 0 0;font-size:var(--fs-1);color:var(--text-muted)}.backdate{margin-top:var(--sp-3)}.finish-book{width:100%;margin-top:var(--sp-3);font-size:var(--fs-1);text-align:center;display:block}.finished-list{margin-top:var(--sp-2);flex-direction:column;display:flex}.finished-row{align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;display:flex}.finished-row+.finished-row{box-shadow:inset 0 1px 0 var(--hairline)}.finished-meta{flex:1;min-width:0}.finished-title{font-size:var(--fs-2);margin:0;font-weight:500}.finished-sub{font-size:var(--fs-1);color:var(--text-faint);margin:0}.backdate summary{cursor:pointer;font-size:var(--fs-1);color:var(--text-muted);padding:var(--sp-1) 0}.backdate label{margin-top:var(--sp-2)}.backdate input{margin-bottom:var(--sp-1)}.auth-card .status{text-align:center}.auth-card form+form{margin-top:var(--sp-3)}.code-input{letter-spacing:.15em}.auth-card button.primary{width:100%}.hero{align-items:center;gap:var(--sp-5);flex-wrap:wrap;display:flex}.rings{flex-shrink:0;width:148px;margin:0 auto}.rings svg{width:100%;height:auto;display:block}.ring-track{fill:none;stroke:color-mix(in oklab, var(--series-color,var(--text)) 13%, var(--surface))}.ring-arc{fill:none;stroke:var(--series-color);stroke-linecap:round;animation:ring-draw var(--dur-slow) var(--ease-out) backwards;animation-delay:calc(var(--i,0) * 90ms)}@keyframes ring-draw{0%{stroke-dashoffset:var(--dash)}}.ring-center{fill:var(--text);letter-spacing:-.03em;font-size:25px;font-weight:700}.ring-sub{fill:var(--text-faint);font-size:11px}.ring-check{stroke:var(--state-ahead);stroke-width:5px;animation:check-pop .42s var(--ease-spring) backwards;animation-delay:.32s}@keyframes check-pop{0%{opacity:0;transform-origin:50%;transform:scale(.5)}}.hero .today-rows{flex:1;min-width:15rem}.today-rows{flex-direction:column;display:flex}.today-row{column-gap:var(--sp-3);padding:var(--sp-2) 0;grid-template-columns:3.4rem minmax(0,1fr) auto;align-items:center;display:grid}.today-row+.today-row{box-shadow:inset 0 1px 0 var(--hairline)}.today-count{font-size:var(--fs-5);letter-spacing:var(--ls-tight);text-align:right;font-weight:700;line-height:1.1}.today-meta{flex-direction:column;gap:.1rem;min-width:0;display:flex}.today-name{font-size:var(--fs-2);white-space:nowrap;text-overflow:ellipsis;margin:0;font-weight:500;overflow:hidden}.today-unit{color:var(--text-faint);font-weight:400;font-size:var(--fs-1)}.today-sub{font-size:var(--fs-1);color:var(--text-faint);margin:0}.today-sub:empty{display:none}.today-sub.up{color:var(--state-ahead);font-weight:500}.today-row.is-gain .today-count{animation:count-bump .46s var(--ease-spring)}@keyframes count-bump{30%{transform:scale(1.14)}}.today-count{transform-origin:100%}.booting{place-items:center;padding-top:30vh;display:grid}.pull-indicator{top:calc(-2.5rem + env(safe-area-inset-top));pointer-events:none;opacity:0;z-index:3;place-items:center;height:2.5rem;display:grid;position:fixed;left:0;right:0}.pull-indicator.is-pulling,.pull-indicator.is-loading{opacity:1}.pull-indicator.is-pulling{transition:none}.pull-indicator.is-loading,.pull-indicator:not(.is-pulling){transition:transform var(--dur-base) var(--ease-out), opacity var(--dur-base) var(--ease-out)}.pull-spinner{border:2px solid var(--border);border-top-color:var(--text-muted);border-radius:50%;width:1.35rem;height:1.35rem}.is-ready .pull-spinner{border-top-color:var(--state-ahead)}.booting .pull-spinner,.is-loading .pull-spinner{animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.data-error{width:100%;margin:var(--sp-4) 0 0;padding:var(--sp-2) var(--sp-3);border:none;border-left:3px solid var(--danger);border-radius:0 var(--r-2) var(--r-2) 0;background:color-mix(in oklab, var(--danger) 12%, var(--surface));color:var(--text);font-size:var(--fs-1);text-align:left;font-weight:500;display:block}.nudge{margin:var(--sp-4) 0 0;padding:var(--sp-2) var(--sp-3);border-radius:0 var(--r-2) var(--r-2) 0;border-left:3px solid var(--text-faint);background:var(--accent-soft);font-size:var(--fs-1);animation:slide-fade-in var(--dur-base) var(--ease-out);font-weight:500}@keyframes slide-fade-in{0%{opacity:0;transform:translateY(-4px)}}.chart-s1{--series-color:var(--series-1)}.chart-s2{--series-color:var(--series-2)}.chart-s3{--series-color:var(--series-3)}.chart-s4{--series-color:var(--series-4)}.chart-s5{--series-color:var(--series-5)}.chart-s6{--series-color:var(--series-6)}.chart-s7{--series-color:var(--series-7)}.chart-s-other{--series-color:var(--series-other)}.mx-all{--series-color:var(--summary)}.legend-swatch{background:var(--series-color);border-radius:2px;flex-shrink:0;width:8px;height:8px}.strip-cell,.mx-cell{background:currentColor;position:relative}.strip-cell.lvl-1,.mx-cell.lvl-1{color:color-mix(in oklab, var(--series-color) 38%, var(--surface))}.strip-cell.lvl-2,.mx-cell.lvl-2{color:color-mix(in oklab, var(--series-color) 68%, var(--surface))}.strip-cell.lvl-3,.mx-cell.lvl-3{color:var(--series-color)}.strip-cell.off,.mx-cell.off{color:var(--grid-empty)}.strip-cell.run-l,.mx-cell.run-l{border-top-left-radius:0;border-bottom-left-radius:0}.strip-cell.run-r,.mx-cell.run-r{border-top-right-radius:0;border-bottom-right-radius:0}.strip-cell.run-r:after,.mx-cell.run-r:after{content:"";background:currentColor;width:2px;position:absolute;top:0;bottom:0;left:100%}.mx-gap.is-bridge{background:var(--series-color);height:14px}.strip-cell.is-live.lvl-1{color:color-mix(in oklab, var(--series-color) 62%, var(--surface))}.streak-t1 .is-live{filter:drop-shadow(0 0 1px var(--series-color))}.streak-t2 .is-live{filter:drop-shadow(0 0 2.5px var(--series-color))}.streak-t3 .is-live{filter:drop-shadow(0 0 4px var(--series-color)) saturate(1.15)}.streak-t4 .is-live{filter:drop-shadow(0 0 6px var(--series-color)) saturate(1.3)}.track{align-items:center;gap:.4rem;display:flex}.strip{gap:2px;display:flex}.strip-cell{border-radius:2px;width:7px;height:16px}.streak-badge{min-width:1.2rem;height:1.2rem;font-size:var(--fs-0);color:var(--series-color);background:color-mix(in oklab, var(--series-color) 16%, var(--surface));border-radius:999px;place-items:center;padding:0 .25rem;font-weight:600;line-height:1;display:grid}.streak-t3 .streak-badge,.streak-t4 .streak-badge{color:var(--accent-text);background:var(--series-color)}.streak-t4 .streak-badge{box-shadow:0 0 10px color-mix(in oklab, var(--series-color) 65%, transparent)}.chart-wrap{position:relative}.mx-row{align-items:center;gap:2px;margin-bottom:3px;display:flex}.mx-label{width:4.6rem;font-size:var(--fs-1);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;padding-right:var(--sp-1);flex-shrink:0;overflow:hidden}.mx-cell,.mx-tick{flex:1 1 0;min-width:0}.mx-cell{border-radius:3px;height:14px}.mx-row.mx-all{margin-top:var(--sp-2);padding-top:var(--sp-2);box-shadow:inset 0 1px 0 var(--hairline)}.mx-gap{flex:0 0 6px}.mx-weekdays{margin-bottom:var(--sp-1)}.mx-weekday{text-align:center;min-width:0;font-size:var(--fs-0);color:var(--text-faint);flex:1 1 0;line-height:1}.mx-activity{cursor:pointer;border-radius:var(--r-1);transition:background-color var(--dur-fast) ease;padding:3px 0}.mx-activity.is-open{background:var(--accent-soft)}.mx-activity .mx-label:after{content:"";vertical-align:1px;opacity:.5;width:0;height:0;transition:transform var(--dur-fast) var(--ease-out);border-top:4px solid;border-left:3px solid #0000;border-right:3px solid #0000;margin-left:4px;display:inline-block}.mx-activity.is-open .mx-label:after{transform:rotate(180deg)}.mx-cell.is-record{box-shadow:inset 0 0 0 1.5px color-mix(in oklab, var(--text) 85%, transparent)}.mx-detail{gap:var(--sp-1) var(--sp-3);margin:0 0 var(--sp-2) 0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-1);border-left:3px solid var(--series-color);background:var(--accent-soft);font-size:var(--fs-1);animation:slide-fade-in var(--dur-fast) var(--ease-out);flex-wrap:wrap;display:flex}.mx-chip-key{color:var(--text-faint);margin-right:.35rem}.mx-ticks{margin-bottom:0}.mx-tick{height:1rem;position:relative}.mx-tick-text{font-size:var(--fs-0);color:var(--text-faint);white-space:nowrap;position:absolute;left:0}.mx-tick-text.end{left:auto;right:0}.chart-tooltip{background:var(--surface-tint);border:1px solid var(--border);border-radius:var(--r-1);padding:var(--sp-1) var(--sp-2);font-size:var(--fs-1);white-space:nowrap;pointer-events:none;z-index:3;position:absolute;transform:translate(-50%);box-shadow:0 4px 12px #00000040}.recap-card{border-left:3px solid var(--summary)}.recap-lead{margin:0 0 var(--sp-3);font-size:var(--fs-2);font-weight:500}.recap-rows{flex-direction:column;display:flex}.recap-row{align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;grid-template-columns:auto minmax(0,1fr) auto auto;display:grid}.recap-row+.recap-row{box-shadow:inset 0 1px 0 var(--hairline)}.recap-name{font-size:var(--fs-2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.recap-value{font-size:var(--fs-1);color:var(--text-muted)}.recap-delta{font-size:var(--fs-1);color:var(--text-faint);text-align:right;min-width:3.2rem}.recap-delta.up{color:var(--state-ahead);font-weight:500}.entries{margin:0;padding:0;list-style:none}.entries li{align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;box-shadow:inset 0 1px 0 var(--hairline);display:flex}.entries li:first-child{box-shadow:none}.entry-label{font-size:var(--fs-2);flex:1;min-width:0}.entries time{font-size:var(--fs-1);color:var(--text-faint);white-space:nowrap}.field-guide-link{align-items:center;gap:var(--sp-3);min-height:5.75rem;margin-bottom:var(--sp-4);padding:var(--sp-4);border:1px solid color-mix(in oklab, var(--guide) 24%, var(--border));border-radius:var(--r-3);background:linear-gradient(135deg, var(--guide-soft), var(--surface));color:var(--text);box-shadow:var(--card-shadow);transition:border-color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-out);grid-template-columns:2.5rem minmax(0,1fr) 1.25rem;text-decoration:none;display:grid}.field-guide-link:hover{border-color:color-mix(in oklab, var(--guide) 62%, var(--border))}.field-guide-link:active{transform:scale(.985)}.field-guide-link:focus-visible{outline:2px solid var(--progress-match);outline-offset:2px}.field-guide-mark{background:var(--guide);width:2.5rem;height:2.5rem;color:var(--surface);font-size:var(--fs-1);border-radius:50%;place-items:center;display:grid}.field-guide-copy{flex-direction:column;min-width:0;display:flex}.field-guide-copy strong{font-size:var(--fs-3);letter-spacing:var(--ls-tight)}.field-guide-copy>span:last-child{color:var(--text-muted);font-size:var(--fs-1);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.field-guide-label{color:var(--guide);font-size:var(--fs-0);letter-spacing:.1em;text-transform:uppercase;font-weight:700}.field-guide-link>svg{fill:none;width:1.2rem;height:1.2rem;stroke:var(--guide);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;transition:transform var(--dur-fast) var(--ease-out)}.field-guide-link:hover>svg{transform:translate(.18rem)}.notification-card{border:1px solid color-mix(in oklab, var(--guide) 18%, var(--border));background:linear-gradient(155deg, color-mix(in oklab, var(--guide-soft) 62%, var(--surface)), var(--surface) 68%)}.notification-heading{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);grid-template-columns:2.5rem minmax(0,1fr);display:grid}.notification-heading h2{color:var(--text);font-size:var(--fs-3);letter-spacing:var(--ls-tight);text-transform:none;margin:.18rem 0 0;font-weight:650;line-height:1.18}.notification-mark{background:color-mix(in oklab, var(--guide) 14%, var(--surface));width:2.5rem;height:2.5rem;color:var(--guide);border-radius:50%;place-items:center;display:grid}.notification-mark svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1.2rem;height:1.2rem}.notification-label{color:var(--guide);font-size:var(--fs-0);letter-spacing:.1em;text-transform:uppercase;margin:0;font-weight:700}.notification-copy{margin:0 0 var(--sp-3);color:var(--text-muted);font-size:var(--fs-2);line-height:1.55}.notification-schedule{margin:0 0 var(--sp-3);color:var(--text);font-size:var(--fs-1);font-weight:650}.notification-schedule span{color:var(--guide);margin-inline:.35rem}.notification-actions{align-items:center;min-height:2.75rem;display:flex}.notification-actions button{min-height:2.75rem}.notification-disable{margin-left:calc(-1 * var(--sp-2))}.notification-status{min-height:1.35rem;margin:var(--sp-2) 0 0;color:var(--text-faint);font-size:var(--fs-1);line-height:1.45}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-delay:0s!important}}
