:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f9f9f7;--surface:#fcfcfb;--surface-2:#efeee9;--text:#0b0b0b;--text-2:#52514e;--text-3:#66645f;--muted:#898781;--border:#0b0b0b1a;--grid:#e1e0d9;--axis:#c3c2b7;--primary:#1f6f5c;--on-primary:#fff;--primary-soft:#e0f0ea;--danger:#b3261e;--danger-soft:#fbe7e5;--warn:#8a5a00;--warn-soft:#fbefd5;--good:#006300;--good-soft:#e1f3e1;--info:#184f95;--info-soft:#e4eefb;--sos:#c2410c;--on-sos:#fff;--series-1:#2a78d6;--series-2:#eb6834;--radius:16px;--tabbar-h:64px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#0d0d0d;--surface:#1a1a19;--surface-2:#262625;--text:#f0efec;--text-2:#c3c2b7;--text-3:#a5a399;--border:#ffffff1a;--grid:#2c2c2a;--axis:#383835;--primary:#4fc3a1;--on-primary:#06231b;--primary-soft:#16302a;--danger:#ff8a80;--danger-soft:#3a1a18;--warn:#f0b24a;--warn-soft:#33270f;--good:#5fd35f;--good-soft:#14301a;--info:#86b6ef;--info-soft:#14243a;--sos:#fb923c;--on-sos:#1a0a02;--series-1:#3987e5;--series-2:#d95926}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.45}h1,h2,p,ul,figure,blockquote{margin:0}h1{letter-spacing:-.01em;font-size:28px;font-weight:800;line-height:1.2}h2{font-size:18px;font-weight:700}ul{padding:0;list-style:none}button,input{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.tabular{font-variant-numeric:tabular-nums}.muted{color:var(--text-3)}.lead{color:var(--text-2);font-size:18px}.center{text-align:center;justify-items:center}.text-error{color:var(--danger)}.text-warn{color:var(--warn)}.link{color:var(--primary);font-weight:600;text-decoration:none}.splash,.app{min-height:100dvh}.page{max-width:560px;padding:calc(20px + var(--safe-top)) 16px calc(var(--tabbar-h) + var(--safe-bottom) + 32px);margin:0 auto}.stack{align-content:start;gap:14px;display:grid}.page-header{gap:2px;display:grid}.row-between{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.banner{padding:12px 16px;font-weight:600}.banner-error{background:var(--danger-soft);color:var(--danger)}.tabbar{z-index:10;height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--surface);border-top:1px solid var(--border);grid-template-columns:repeat(5,1fr);align-items:center;display:grid;position:fixed;inset:auto 0 0}.tab{color:var(--text-3);justify-items:center;gap:2px;padding:8px 0;font-size:12px;font-weight:600;text-decoration:none;display:grid}.tab-active{color:var(--primary)}.sos-button{background:var(--sos);width:64px;height:64px;color:var(--on-sos);letter-spacing:.02em;border:4px solid var(--surface);border-radius:50%;justify-self:center;place-items:center;margin-top:-22px;font-size:16px;font-weight:800;text-decoration:none;display:grid;box-shadow:0 6px 18px #00000040}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:12px;padding:16px;display:grid}.card-accent{background:var(--primary-soft);border-color:var(--primary)}.card-done{border-color:var(--primary)}.notice{background:var(--surface-2);border-radius:12px;gap:6px;padding:12px 14px;display:grid}.pledge{border-left:4px solid var(--primary);padding-left:14px;font-size:18px;font-weight:600}.bullets{gap:6px;padding-left:20px;list-style:outside;display:grid}.btn{cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;min-height:48px;padding:0 18px;font-weight:700;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-secondary{background:var(--surface-2);color:var(--text)}.btn-ghost{color:var(--primary);background:0 0}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-block{width:100%}.btn-small{min-height:36px;padding:0 12px}.btn-large{min-height:56px;font-size:18px}.field{gap:6px;font-weight:600;display:grid}.field small{font-weight:400}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}input:not([type=checkbox]){background:var(--surface);border:1px solid var(--axis);border-radius:12px;width:100%;min-height:48px;padding:0 14px;font-weight:400}input[aria-invalid=true]{border-color:var(--danger)}.fieldset{border:0;gap:4px;min-width:0;margin:0;padding:0;display:grid}.fieldset legend{margin-bottom:4px;padding:0;font-weight:600}.check-list{gap:2px;display:grid}.check{align-items:center;gap:12px;min-height:48px;padding:4px 0;display:flex}.check input{width:24px;height:24px;accent-color:var(--primary);flex:none}.check-custom{flex:1}.inline-add{gap:8px;display:flex}.inline-add input{flex:1}.segmented{border:1px solid var(--axis);border-radius:12px;display:inline-flex;overflow:hidden}.segment{cursor:pointer;background:0 0;border:0;min-height:44px;padding:0 18px;font-weight:600}.segment-on{background:var(--primary);color:var(--on-primary)}.segmented-compact .segment{min-height:36px;padding:0 12px}.level{gap:6px;display:grid}.level-buttons{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.level-button{background:var(--surface);border:1px solid var(--axis);cursor:pointer;border-radius:12px;min-height:48px;font-weight:700}.level-button-on{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.level-ends{color:var(--text-3);justify-content:space-between;font-size:13px;display:flex}.choices{gap:8px;display:grid}.choice{text-align:left;background:var(--surface);border:1px solid var(--axis);cursor:pointer;border-radius:12px;gap:2px;width:100%;padding:12px 14px;display:grid}.choice span{color:var(--text-3);font-size:14px}.choice-on{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.chips{flex-wrap:wrap;gap:8px;display:flex}.pill{background:var(--surface);border:1px solid var(--axis);cursor:pointer;border-radius:999px;min-height:44px;padding:0 16px;font-weight:600}.pill-on{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.stepper{justify-content:center;align-items:center;gap:20px;display:flex}.stepper-value{text-align:center;min-width:80px;font-size:28px;font-weight:700}.onboarding{max-width:560px;min-height:100dvh;padding:calc(20px + var(--safe-top)) 20px calc(24px + var(--safe-bottom));align-content:start;gap:20px;margin:0 auto;display:grid}.onboarding-top{justify-content:space-between;align-items:center;display:flex}.onboarding .actions{justify-content:space-between}.streak{grid-template-columns:auto 1fr;align-items:center;gap:16px}.streak-number{text-align:center;min-width:56px;color:var(--primary);font-size:56px;font-weight:800;line-height:1}.streak-title{font-size:18px;font-weight:700}.chip{background:var(--surface-2);color:var(--text-2);border-radius:999px;align-items:center;padding:4px 12px;font-size:13px;font-weight:700;display:inline-flex}.chip-reached,.chip-on_track{background:var(--good-soft);color:var(--good)}.chip-close{background:var(--info-soft);color:var(--info)}.chip-behind{background:var(--warn-soft);color:var(--warn)}.chip-unrealistic{background:var(--danger-soft);color:var(--danger)}.stats{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:12px;gap:2px;padding:12px 14px;display:grid}.stat-label{color:var(--text-3);font-size:13px}.stat-value{font-size:22px;font-weight:700}.bars{gap:8px;display:grid}.bars li{grid-template-columns:112px 1fr 28px;align-items:center;gap:8px;font-size:14px;display:grid}.bar-track{background:var(--surface-2);border-radius:5px;height:10px}.bar-fill{background:var(--series-1);border-radius:0 4px 4px 0;height:100%;display:block}.bar-value{text-align:right;color:var(--text-2)}.legend{color:var(--text-2);flex-wrap:wrap;gap:6px 16px;margin-bottom:8px;font-size:13px;display:flex}.legend li{align-items:center;gap:6px;display:flex}.key{flex:none;display:inline-block}.key-line,.viz-trend-bg{background:var(--series-1);border-radius:1px;width:18px;height:2px}.key-dot{background:var(--text-3);opacity:.6;border-radius:50%;width:8px;height:8px}.key-dash{border-top:2px dashed var(--series-2);width:18px}.key-dotted{border-top:2px dotted var(--series-1);width:18px}.chart-wrap{border-radius:8px;position:relative}.chart-wrap svg{touch-action:pan-y;display:block}.viz-grid{stroke:var(--grid);stroke-width:1px}.viz-axis{stroke:var(--axis);stroke-width:1px}.viz-label{fill:var(--muted);font-size:10px}.viz-text{fill:var(--text-2);font-size:11px}.viz-text-strong{fill:var(--text);font-weight:600}.viz-goal{stroke:var(--text-2);stroke-width:1px}.viz-plan{stroke:var(--series-2);stroke-width:2px;stroke-dasharray:6 4;stroke-linecap:round}.viz-forecast{stroke:var(--series-1);stroke-width:2px;stroke-dasharray:1 5;stroke-linecap:round}.viz-trend{stroke:var(--series-1);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.viz-dot{fill:var(--text-3);opacity:.55}.viz-end{fill:var(--series-1);stroke:var(--surface);stroke-width:2px}.viz-cross{stroke:var(--axis);stroke-width:1px}.tooltip{background:var(--surface);border:1px solid var(--axis);pointer-events:none;border-radius:10px;gap:2px;min-width:128px;padding:8px 10px;font-size:12px;display:grid;position:absolute;top:4px;transform:translate(-50%);box-shadow:0 4px 14px #00000026}.chart-table{margin-top:8px;font-size:14px}.chart-table summary{cursor:pointer;color:var(--primary);font-weight:600}.chart-table table{border-collapse:collapse;width:100%;margin-top:8px}.chart-table th,.chart-table td{text-align:left;border-bottom:1px solid var(--grid);padding:4px 6px}.ring{margin:8px auto;position:relative}.ring-track{stroke:var(--surface-2)}.ring-fill{stroke:var(--primary);transition:stroke-dashoffset .6s linear}.ring-fill-done{stroke:var(--good)}.ring-center{align-content:center;justify-items:center;gap:2px;display:grid;position:absolute;inset:0}.ring-label{color:var(--text-3);font-size:13px;font-weight:700}.ring-time{letter-spacing:-.01em;font-size:38px;font-weight:800}.ring-sub{color:var(--text-3);font-size:14px}.history{gap:8px;display:grid}.history li{grid-template-columns:1fr auto auto;align-items:center;gap:12px;display:grid}.sos{max-width:560px;min-height:100dvh;padding:calc(12px + var(--safe-top)) 20px calc(24px + var(--safe-bottom));align-content:start;gap:8px;margin:0 auto;display:grid}.sos-top{justify-content:flex-end;display:flex}.breath-wrap{place-items:center;width:240px;height:240px;margin:8px auto;display:grid}.breath{background:var(--primary-soft);border:3px solid var(--primary);border-radius:50%;width:220px;height:220px;animation:16s ease-in-out infinite breathe}.breath-still{animation:none}.breath-label{min-height:32px;font-size:24px;font-weight:700}.countdown{font-size:40px;font-weight:800}@keyframes breathe{0%{transform:scale(.6)}25%,50%{transform:scale(1)}75%,to{transform:scale(.6)}}@media (prefers-reduced-motion:reduce){.breath{animation:none}.ring-fill{transition:none}}
