@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/fonts/archivo-latin.woff2) format("woff2")}:root{--bg: #0E1B2C;--bg-deep: #0A1523;--surface: #15263B;--raised: #1D334D;--line: #2A4160;--line-soft: rgba(168, 185, 205, .12);--box: #4E6A8E;--text: #EDF3F9;--text-2: #A8B9CD;--text-3: #8CA2BC;--ice: #7CD4F4;--ice-ink: #062635;--ice-wash: rgba(124, 212, 244, .14);--amber: #F4B740;--amber-wash: rgba(244, 183, 64, .12);--amber-line: rgba(244, 183, 64, .38);--red: #FF6B5C;--red-wash: rgba(255, 107, 92, .12);--red-line: rgba(255, 107, 92, .42);--rani: #F0508F;--font: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--tabbar: calc(72px + env(safe-area-inset-bottom, 0px)) ;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:#08121f;color:var(--text);font-family:var(--font);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;overscroll-behavior:none}button,a.btn,input,textarea,select{font:inherit;color:inherit}button,a.btn{background:none;border:0;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;text-decoration:none}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--ice);outline-offset:2px;border-radius:8px}.ic{flex:none}#app{position:relative;height:100vh;height:100dvh;max-width:480px;margin:0 auto;background:var(--bg);overflow:hidden;overflow:clip}@media (min-width: 481px){#app{border-left:1px solid var(--line);border-right:1px solid var(--line)}}.screen{position:absolute;inset:0 0 var(--tabbar) 0;overflow-y:auto;overscroll-behavior:contain;padding:max(14px,env(safe-area-inset-top,0px)) 16px 36px;scrollbar-width:none}.screen::-webkit-scrollbar{display:none}.tabbar{position:absolute;left:0;right:0;bottom:0;height:var(--tabbar);padding-bottom:env(safe-area-inset-bottom,0px);display:grid;grid-template-columns:repeat(5,1fr);background:var(--bg-deep);border-top:1px solid var(--line)}.tab{display:grid;justify-items:center;align-content:center;gap:4px;font-size:12px;font-weight:550;color:var(--text-3)}.tab[aria-current=page]{color:var(--ice)}.page-head{display:flex;align-items:center;gap:6px;min-height:44px}.page-title{font-stretch:76%;font-weight:760;font-size:34px;line-height:1.05}.page-sub{color:var(--text-2);margin-top:4px}.back-btn{display:inline-flex;align-items:center;gap:2px;min-height:44px;margin-left:-8px;padding:0 8px;color:var(--text-2)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px}.daynav{display:flex;align-items:center;margin-left:-10px}.daynav .icon-btn{width:40px;height:44px}.daynav .icon-btn:disabled{opacity:.3}.date{color:var(--text-2);min-width:86px;text-align:center}.flag-btn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border:1px solid var(--red-line);border-radius:12px;color:var(--red);font-size:14px;font-weight:600;white-space:nowrap}.hero{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin-top:6px}.hero-count{font-stretch:66%;font-weight:780;font-size:84px;line-height:.86;letter-spacing:-.01em}.hero-title{font-stretch:76%;font-weight:680;font-size:27px;line-height:1.05;margin-top:6px}.hero-title.solo{font-size:44px;font-weight:760;margin-top:0}.hero-sub{color:var(--text-2);margin-top:6px}.dial-wrap{position:relative;width:136px;height:136px}.dial{display:block;width:100%;height:100%}.notch{stroke:var(--line);stroke-width:4;stroke-linecap:round;transition:stroke .25s}.notch.on{stroke:var(--ice)}.notch.pop{animation:notch-pop .5s ease-out}@keyframes notch-pop{0%{stroke-width:11;stroke:#fff}to{stroke-width:4;stroke:var(--ice)}}.dial-center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center}.dial-done{font-stretch:68%;font-weight:780;font-size:44px;line-height:1}.dial-total{font-size:13px;color:var(--text-2);margin-top:2px}.dial-wrap.pulse{animation:dial-pulse .7s ease-out}@keyframes dial-pulse{35%{transform:scale(1.07)}to{transform:scale(1)}}.track{display:flex;align-items:center;gap:3px;height:22px;margin-top:20px}.track-seg{position:relative;height:6px;border-radius:3px;background:var(--raised)}.track-fill{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--ice)}.track-now{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--ice)}.track-mark{flex:none;width:2px;height:14px;border-radius:1px;background:var(--text-2)}.track-wed{flex:none;width:12px;height:12px;border-radius:50%;background:var(--rani)}.chips{display:flex;gap:8px;margin-top:10px}.chip{flex:1;min-width:0;background:var(--surface);border-radius:14px;padding:10px 12px}.chip-label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2)}.chip.wed .chip-label .ic{color:var(--rani)}.chip-value{font-stretch:76%;font-weight:720;font-size:22px;line-height:1.15;margin-top:2px}.chip-date{font-size:12px;color:var(--text-3)}.tip{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);color:var(--text)}.tip .ic{color:var(--amber);margin-top:2px}.seg{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}.seg-btn{min-height:44px;border-radius:12px;background:var(--raised);color:var(--text-2);font-size:14px;font-weight:600;transition:background .15s,color .15s}.seg-btn[aria-pressed=true]{background:var(--ice);color:var(--ice-ink)}.log-entry{display:flex;align-items:flex-start;gap:8px}.log-entry .icon-btn{margin:-6px -8px 0 0}.log-text{margin-top:4px;white-space:pre-wrap;overflow-wrap:anywhere}.log-entry .input{margin-top:8px}.log-section{margin-top:14px;font-weight:650;color:var(--text-2)}.tag.q{background:var(--amber-wash);color:var(--amber)}.link-row{display:flex;align-items:center;gap:4px;min-height:44px;margin-top:4px;color:var(--ice);font-weight:650}.seg.two{grid-template-columns:repeat(2,1fr)}.seg.three{grid-template-columns:repeat(3,1fr)}.seg-btn{padding:0 6px;line-height:1.15}.pinned{margin-top:14px;padding:12px 14px;border-radius:14px;background:var(--amber-wash);border:1px solid var(--amber-line)}.pinned-title{display:flex;align-items:center;gap:6px;font-weight:680;color:var(--amber)}.pinned-rule{margin-top:8px;overflow-wrap:anywhere}.pinned-rule b{font-weight:650}.pinned-until{color:var(--text-2);font-size:13px;white-space:nowrap}.pinned .link{display:inline-block;margin-top:8px;min-height:32px;color:var(--ice);font-weight:650}.med-dose{font-weight:500;color:var(--text-2);font-size:14px}.doses{display:grid;gap:4px;margin-top:8px}.dose{display:flex;align-items:center;gap:12px;min-height:48px;width:100%;text-align:left}.dose .tick-box{margin-top:0}.dose:active .tick-box{transform:scale(.88)}.dose-time{font-weight:600;font-variant-numeric:tabular-nums;min-width:76px}.dose .row-sub{margin-top:0}.chip-x{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border-radius:12px;background:var(--raised);color:var(--text);font-size:14px;font-variant-numeric:tabular-nums}.chip-x .ic{color:var(--text-3)}.med .note{margin-top:10px}.pain-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:8px}.pain-grid .seg-btn{font-variant-numeric:tabular-nums;font-size:15px}.group{margin-top:30px}.group-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}.group-head .ic{color:var(--ice)}.group-title{font-stretch:86%;font-weight:690;font-size:20px}.group-count{margin-left:auto;color:var(--text-2);font-size:14px;font-variant-numeric:tabular-nums}.group-hint{color:var(--text-3);font-size:14px;margin-bottom:10px}.list{background:var(--surface);border-radius:18px;overflow:hidden;margin-top:10px}.row{padding:14px}.row+.row{border-top:1px solid var(--line-soft)}.tickrow{display:flex;align-items:flex-start;gap:12px;width:100%;min-height:56px;text-align:left}.tick-box{flex:none;width:26px;height:26px;margin-top:-2px;border:2px solid var(--box);border-radius:9px;display:grid;place-items:center;transition:background .18s,border-color .18s,transform .14s}.tickrow:active .tick-box{transform:scale(.88)}.chk{width:16px;height:16px;stroke-width:3.2;stroke-dasharray:26;stroke-dashoffset:26;transition:stroke-dashoffset .24s ease-out .03s}[aria-pressed=true]>.tick-box{background:var(--ice);border-color:var(--ice);color:var(--ice-ink)}[aria-pressed=true] .chk{stroke-dashoffset:0}.row-text{flex:1;min-width:0;transition:color .18s}.tickrow[aria-pressed=true] .row-text{color:var(--text-3)}.row-sub{display:block;font-size:13px;color:var(--text-3);margin-top:2px}.row-ic{flex:none;color:var(--text-2);display:grid;place-items:center;width:26px;height:26px}.line{display:flex;align-items:center;gap:12px}.note{display:flex;gap:10px;padding:12px 14px;border-radius:14px;margin-top:10px;font-size:14px}.note .ic{margin-top:1px}.note b{font-weight:650}.note.careful{background:var(--amber-wash);border:1px solid var(--amber-line)}.note.careful .ic{color:var(--amber)}.note.plain{background:var(--surface);color:var(--text-2)}.note.plain .ic{color:var(--text-2)}.note-body{flex:1;min-width:0}.note .link{display:inline-block;margin-top:6px;color:var(--ice);font-weight:650;min-height:32px}.ex-open{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;text-align:left}.ex-open>.ic{color:var(--text-3)}.ex-pic{position:relative;flex:none;width:96px;aspect-ratio:16 / 9;border-radius:10px;overflow:hidden;background:var(--bg);display:grid;place-items:center;color:var(--text-3)}.ex-pic img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.ex-text{flex:1;min-width:0}.ex-name{display:block;font-weight:650;font-size:16px}.ex-dose{display:block;font-size:13px;color:var(--text-2);margin-top:1px}.sess{display:flex;align-items:center;gap:8px;margin-top:12px}.sess-btn{position:relative;width:40px;height:40px;border:2px solid var(--box);border-radius:50%;display:grid;place-items:center;color:var(--text-2);font-weight:650;font-variant-numeric:tabular-nums;transition:background .18s,border-color .18s,transform .14s}.sess-btn:active{transform:scale(.9)}.sess-btn .chk{position:absolute;width:18px;height:18px}.sess-n{transition:opacity .12s}.sess-btn[aria-pressed=true]{background:var(--ice);border-color:var(--ice);color:var(--ice-ink)}.sess-btn[aria-pressed=true] .sess-n{opacity:0}.sess-label{margin-left:auto;font-size:13px;color:var(--text-3)}.counter{display:flex;align-items:center;gap:10px}.step{width:40px;height:40px;border-radius:50%;background:var(--raised);display:grid;place-items:center;color:var(--text);transition:transform .12s}.step:active{transform:scale(.9)}.step.plus{background:var(--ice);color:var(--ice-ink)}.counter-val{font-size:14px;color:var(--text-2);font-variant-numeric:tabular-nums}.counter-val b{font-stretch:76%;font-weight:720;font-size:22px;color:var(--text)}.counter[data-done="1"] .counter-val b{color:var(--ice)}.meters{display:grid;gap:12px}.meter-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.meter-name{display:inline-flex;align-items:center;gap:6px}.meter-name .ic{color:var(--text-2);align-self:center}.meter-val{font-size:14px;color:var(--text-2);font-variant-numeric:tabular-nums}.meter-val b{font-weight:680;color:var(--text)}.bar{height:8px;border-radius:4px;background:var(--ice-wash);margin-top:6px;overflow:hidden}.bar>span{display:block;height:100%;border-radius:4px;background:var(--ice);transition:width .35s cubic-bezier(.2,.8,.2,1)}.meter.over .bar{background:var(--amber-wash)}.meter.over .bar>span{background:var(--amber)}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.input{width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--text);font-size:16px}.input::placeholder{color:var(--text-3)}.input:focus{outline:2px solid var(--ice);outline-offset:0;border-color:transparent}textarea.input{resize:vertical;min-height:84px;line-height:1.4}.input.short{width:96px;text-align:right}.unit{color:var(--text-2);font-size:14px}.field{display:grid;gap:6px;margin-top:14px}.field-label{font-size:14px;color:var(--text-2)}.field-help{font-size:13px;color:var(--text-3)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.meal{display:flex;align-items:stretch;gap:0;padding:0}.meal+.meal,#meal-rows{border-top:1px solid var(--line-soft)}.meal-tick{flex:none;width:54px;display:grid;place-items:center}.meal-tick .tick-box{margin-top:0}.meal-tick:active .tick-box{transform:scale(.88)}.meal-open{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:12px 14px 12px 0;text-align:left;min-height:64px}.meal-open>.ic{color:var(--text-3)}.meal-slot{display:block;font-size:13px;color:var(--text-3)}.meal-name{display:block;font-weight:600}.meal.skipped .meal-name{color:var(--text-3);text-decoration:line-through}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:14px;background:var(--raised);color:var(--text);font-weight:650;transition:transform .12s,background .15s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45}.btn.primary{background:var(--ice);color:var(--ice-ink)}.btn.danger{background:var(--red);color:#2b0703}.btn.small{min-height:44px;padding:0 14px;font-size:14px;justify-self:start}.btn.wide{width:100%}.icon-btn{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--text-2)}.icon-btn:active{background:var(--raised)}.finish{margin-top:30px}.finish .btn{min-height:56px;font-size:17px}.finish .btn .chk{width:20px;height:20px;stroke-dashoffset:0}.finish .btn.done{background:var(--ice-wash);color:var(--ice);opacity:1}.finish-meta{display:flex;justify-content:center;gap:20px;margin-top:12px;font-size:14px;color:var(--text-2)}.finish-meta span{display:inline-flex;align-items:center;gap:6px}.finish-meta b{color:var(--text);font-weight:650}.navrow{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;text-align:left}.navrow>.ic:first-child{color:var(--text-2)}.navrow>.ic:last-child{color:var(--text-3)}.navrow.flag>.ic:first-child,.navrow.flag .row-text{color:var(--red)}.plain-list{margin:8px 0 0;padding-left:20px;color:var(--text-2);display:grid;gap:6px}.tag{display:inline-block;padding:2px 8px;border-radius:8px;background:var(--raised);color:var(--text-2);font-size:12px;font-weight:600}.tag.now{background:var(--ice);color:var(--ice-ink)}.cal-month{font-stretch:86%;font-weight:690;font-size:20px;margin-top:26px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:10px}.cal-dow{font-size:12px;color:var(--text-3);text-align:center;padding-bottom:2px}.cal-cell{position:relative;aspect-ratio:1;border-radius:12px;background:var(--surface);display:grid;place-items:center;align-content:center;gap:1px;font-variant-numeric:tabular-nums;font-weight:600;color:var(--text-2)}.cal-cell.blank{background:none}.cal-cell.done{background:var(--ice);color:var(--ice-ink)}.cal-cell.freeze{background:var(--ice-wash);color:var(--ice)}.cal-cell.missed{color:var(--text-3)}.cal-cell.missed:after{content:"";position:absolute;bottom:6px;width:4px;height:4px;border-radius:50%;background:var(--amber)}.cal-cell.today{outline:2px solid var(--ice);outline-offset:-2px;color:var(--text)}.cal-cell.today.done{outline-color:var(--text);outline-offset:2px;color:var(--ice-ink)}.cal-cell .ic{color:inherit}.cal-cell.wed{color:var(--rani)}.cal-cell.done.wed{color:var(--ice-ink)}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:14px;font-size:13px;color:var(--text-2)}.legend span{display:inline-flex;align-items:center;gap:6px}.swatch{width:12px;height:12px;border-radius:4px;background:var(--surface)}.swatch.done{background:var(--ice)}.swatch.freeze{background:var(--ice-wash);border:1px solid var(--ice)}.swatch.missed{background:var(--amber);border-radius:50%;width:6px;height:6px}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.tile{background:var(--surface);border-radius:16px;padding:12px 14px}.tile-label{font-size:13px;color:var(--text-2)}.tile-value{font-stretch:76%;font-weight:720;font-size:28px;line-height:1.15;margin-top:2px}.tile-note{font-size:13px;color:var(--text-3);margin-top:2px}.empty{background:var(--surface);border-radius:18px;padding:18px 16px;margin-top:10px;color:var(--text-2)}.empty b{color:var(--text);font-weight:650}.toast{position:absolute;left:16px;right:16px;bottom:calc(var(--tabbar) + 12px);padding:12px 14px;border-radius:14px;background:var(--text);color:var(--ice-ink);font-size:14px;font-weight:550;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .2s,transform .2s;z-index:30}.toast.show{opacity:1;transform:none}.scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#040a129e;opacity:0;pointer-events:none;transition:opacity .22s;z-index:20}.sheet{position:absolute;left:0;right:0;bottom:0;max-height:93%;display:flex;flex-direction:column;background:var(--surface);border-radius:26px 26px 0 0;transform:translateY(102%);transition:transform .34s cubic-bezier(.2,.8,.2,1);z-index:21}.sheet-open .scrim{opacity:1;pointer-events:auto}.sheet-open .sheet{transform:none}.sheet-grab{flex:none;width:40px;height:4px;border-radius:2px;background:var(--line);margin:10px auto 0}.sheet-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px 0 18px}.sheet-head h2{font-stretch:80%;font-weight:720;font-size:26px}.sheet-body{overflow-y:auto;padding:8px 18px calc(28px + env(safe-area-inset-bottom,0px));scrollbar-width:none}.sheet-body::-webkit-scrollbar{display:none}.sheet-body h3{font-size:16px;font-weight:680;margin-top:22px}.sheet-body .body{color:var(--text-2);margin-top:6px}.dose{color:var(--text-2)}.video{position:relative;display:block;width:100%;aspect-ratio:16 / 9;margin-top:12px;border-radius:18px;overflow:hidden;background:var(--bg)}.video img,.video iframe{display:block;width:100%;height:100%;object-fit:cover;border:0}.video-play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:#062635c7;color:#fff;display:grid;place-items:center}.video-play .ic{fill:currentColor;margin-left:3px}.timer{display:flex;align-items:center;gap:16px;margin-top:16px;padding:14px;border-radius:18px;background:var(--raised)}.ring{position:relative;flex:none;width:96px;height:96px}.ring svg{display:block;width:100%;height:100%}.ring-track{fill:none;stroke:var(--line);stroke-width:7}.ring-fill{fill:none;stroke:var(--ice);stroke-width:7;stroke-linecap:round;transition:stroke .2s}.timer.rest .ring-fill{stroke:var(--text-3)}.ring-num{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-stretch:70%;font-weight:760;font-size:40px;font-variant-numeric:tabular-nums}.ring-num.clock{font-size:28px}.ring-num .chk{width:40px;height:40px;stroke-dashoffset:0;color:var(--ice)}.timer-side{flex:1;min-width:0}.timer-label{font-weight:650;font-size:16px}.timer-btns{display:flex;align-items:center;gap:6px;margin-top:10px}.timer-btns .btn{flex:1}.timer-msg{min-height:21px;margin-top:8px;font-size:14px;color:var(--ice)}.cues{margin-top:8px;padding-left:22px;color:var(--text-2);display:grid;gap:8px}.cues li::marker{color:var(--text-3);font-weight:650}.gear{display:flex;align-items:center;gap:8px;margin:18px 0 0;color:var(--text-2)}.fine{margin-top:10px;font-size:13px;color:var(--text-3)}.flag-block{margin-top:16px;padding:14px;border-radius:18px;background:var(--raised)}.flag-block.now{background:var(--red-wash);border:1px solid var(--red-line)}.flag-block h3{margin-top:0;display:flex;align-items:center;gap:8px}.flag-block.now h3 .ic{color:var(--red)}.flag-block ul{margin:8px 0 14px;padding-left:20px;display:grid;gap:6px}.flag-block .btn+.btn,.flag-block .btn+.numrow,.flag-block .numrow+.btn,.flag-block .numrow+.numrow{margin-top:8px}.flag-block .btn:not(.danger){background:var(--surface)}.numrow{display:flex;gap:8px}.numrow .input{flex:1;min-width:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.lock-tag{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--amber)}.ex.is-locked .ex-pic{opacity:.55}.ex.is-locked .ex-name{color:var(--text-2)}.cal-cell.has-appt:before{content:"";position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--amber)}.swatch.appt{width:7px;height:7px;border-radius:50%;background:var(--amber)}
