@charset "UTF-8";:root{color-scheme:light dark;--bg: #f4f5f7;--surface: #ffffff;--text: #16181d;--muted: #5d6470;--border: #dfe2e8;--accent: #1f6feb;--accent-text: #ffffff;--danger: #b3261e;--ok: #1a7f4b;--ok-soft: #e3f4ea;--amber: #9a6700;--amber-soft: #fff4d6;--red-soft: #fde7e5;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45}@media(prefers-color-scheme:dark){:root{--bg: #101216;--surface: #1a1d23;--text: #eceef2;--muted: #9aa2b0;--border: #2c313a;--accent: #5b9dff;--accent-text: #0b1220;--danger: #ff8a80;--ok: #5fd08f;--ok-soft: #173326;--amber: #f0c04a;--amber-soft: #3a2f10;--red-soft: #3d1c1a}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%}.page{max-width:34rem;margin:0 auto;padding:1rem 1rem calc(5.5rem + env(safe-area-inset-bottom))}.login{padding-top:18vh}h1{font-size:1.5rem;margin:0}h2{font-size:1rem;margin:1.5rem 0 .5rem;color:var(--muted);font-weight:600}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem;margin:.75rem 0}.card p{margin:.15rem 0}.eyebrow{color:var(--muted);font-size:.9rem}.headline{font-size:1.3rem;font-weight:650}.muted{color:var(--muted);font-size:.9rem}.error{color:var(--danger)}.footnote{text-align:center;margin-top:1.5rem}label{display:block;font-size:.9rem;color:var(--muted);margin-bottom:.9rem}input{display:block;width:100%;margin-top:.3rem;padding:.75rem;font-size:1rem;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px}button{font:inherit;cursor:pointer}button.primary{width:100%;min-height:3rem;margin-top:.5rem;border:0;border-radius:10px;background:var(--accent);color:var(--accent-text);font-weight:600}button.primary:disabled{opacity:.55;cursor:default}button.link{min-height:2.75rem;padding:0 .25rem;border:0;background:none;color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.session summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:2rem;font-weight:600;cursor:pointer}.session ol{margin:.75rem 0 0;padding:0;list-style:none}.session li{display:grid;grid-template-columns:1fr auto;gap:0 1rem;padding:.6rem 0;border-top:1px solid var(--border)}.session .dose{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.session .detail{grid-column:1/-1}.card h2,.session-head h2{margin:0 0 .6rem;font-size:1.05rem;color:var(--text)}.ok{color:var(--ok)}.tabs{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:10}.tabs a{flex:1;min-height:3.25rem;display:flex;align-items:center;justify-content:center;color:var(--muted);text-decoration:none;font-size:.95rem}.tabs a.active{color:var(--accent);font-weight:650}.day-nav{display:flex;align-items:center;justify-content:space-between;text-align:center;margin-bottom:.5rem}.day-nav p{margin:0}.nav-arrow{width:2.75rem;height:2.75rem;display:flex;align-items:center;justify-content:center;font-size:1.8rem;line-height:1;color:var(--accent);text-decoration:none;border-radius:50%}.banner{margin:.75rem 0;padding:.75rem 1rem;border-radius:10px;background:var(--red-soft);color:var(--danger)}.banner.info{background:var(--amber-soft);color:var(--amber)}.inline{display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--text);font-size:1rem}.unit-input{display:flex;align-items:center;gap:.4rem;color:var(--muted)}.unit-input input{width:6rem;margin:0;text-align:right;font-variant-numeric:tabular-nums}.field-label{margin:.9rem 0 .4rem!important;color:var(--muted);font-size:.9rem}.pain{display:grid;grid-template-columns:repeat(11,1fr);gap:3px}.pain button{min-height:2.75rem;padding:0;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-variant-numeric:tabular-nums}.pain button.selected{background:var(--ok);border-color:var(--ok);color:var(--surface);font-weight:700}.pain button.selected.amber{background:var(--amber);border-color:var(--amber)}.pain button.selected.red{background:var(--danger);border-color:var(--danger)}.rule{margin-top:.6rem!important;padding:.5rem .75rem;border-radius:8px;background:var(--ok-soft);color:var(--ok);font-size:.9rem}.rule.amber{background:var(--amber-soft);color:var(--amber)}.rule.red{background:var(--red-soft);color:var(--danger)}button.secondary{width:100%;min-height:3rem;margin-top:.5rem;border:1px solid var(--border);border-radius:10px;background:none;color:var(--accent);font-weight:600}.choices{list-style:none;margin:.75rem 0 0;padding:0}.choices button{width:100%;min-height:3rem;padding:0 .25rem;border:0;border-top:1px solid var(--border);background:none;color:var(--text);text-align:left}.session-head{display:flex;justify-content:space-between;align-items:center;margin-top:1.25rem}.session-head h2{margin:0;font-size:1.2rem}.session-head p{margin:0}.exercise header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.exercise h3{margin:0;font-size:1rem}.exercise .dose{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted)}.exercise.complete{border-color:var(--ok)}.exercise.complete h3:after{content:" \2713";color:var(--ok)}.how{margin-top:.4rem}.how summary{color:var(--accent);font-size:.9rem;min-height:2rem;display:flex;align-items:center;cursor:pointer}.how .cue{font-weight:600}.sets{list-style:none;margin:.5rem 0 0;padding:0}.sets li{display:flex;align-items:center;gap:.6rem;padding:.45rem 0;border-top:1px solid var(--border)}.set-label{width:3rem;color:var(--muted);font-size:.9rem}.fields{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .75rem}.fields label{display:flex;align-items:center;gap:.3rem;margin:0}.fields input{width:3.6rem;margin:0;padding:.5rem .4rem;text-align:right;font-variant-numeric:tabular-nums}.sets li.done .fields input{border-color:transparent;background:none}.tick{flex:none;width:3rem;height:3rem;border:2px solid var(--border);border-radius:50%;background:none;color:transparent;font-size:1.3rem;font-weight:700}.tick.on{border-color:var(--ok);background:var(--ok);color:var(--surface)}.timer{min-height:2.5rem;padding:0 .75rem;border:1px solid var(--accent);border-radius:8px;background:none;color:var(--accent);font-variant-numeric:tabular-nums}.timer.running{background:var(--accent);color:var(--accent-text)}.check{display:flex;align-items:center;gap:.75rem;min-height:3rem;margin:0;color:var(--text);font-size:1rem}.check input{width:1.5rem;height:1.5rem;margin:0;flex:none;accent-color:var(--ok)}.done-line{color:var(--ok)}.footnote a{color:var(--accent)}.bar-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-top:.6rem}.bar-row:first-child{margin-top:0}.figure{font-variant-numeric:tabular-nums;white-space:nowrap}.bar{height:.6rem;margin-top:.3rem;border-radius:999px;background:var(--border);overflow:hidden}.bar span{display:block;height:100%;border-radius:999px;background:var(--accent)}.bar.reached span{background:var(--ok)}.bar.over span{background:var(--danger)}.status{margin-top:.8rem!important;font-weight:600}.button-link{display:flex;align-items:center;justify-content:center;min-height:3rem;margin-top:.9rem;border:1px solid var(--border);border-radius:10px;color:var(--accent);font-weight:600;text-decoration:none}.slot summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:2rem;font-weight:600;cursor:pointer}.slot summary .muted{font-weight:400}.slot.eaten{border-color:var(--ok)}.eaten-mark{color:var(--ok)}.options{list-style:none;margin:.75rem 0 0;padding:0}.options li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem 0;border-top:1px solid var(--border)}.option-name{font-weight:600}button.log{flex:none;min-width:4rem;min-height:2.75rem;border:0;border-radius:10px;background:var(--accent);color:var(--accent-text);font-weight:600}button.log:disabled,.chips button:disabled{opacity:.55}.entry{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-top:1px solid var(--border)}.entry:first-child{border-top:0}.entry>div{flex:1;min-width:0}.field-label.first{margin-top:0!important}.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.chips button{display:flex;flex-direction:column;align-items:flex-start;min-height:2.75rem;padding:.4rem .8rem;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);text-align:left}.food-form .pair{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}select{display:block;width:100%;margin-top:.3rem;padding:.75rem;font:inherit;font-size:1rem;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px}button.secondary.danger{color:var(--danger)}.choices button .warning,.choices button .recommended{display:block;padding-bottom:.5rem;font-size:.85rem}.choices button .warning{color:var(--amber)}.choices button .recommended{color:var(--ok)}.basis{margin:.4rem 0 0!important;padding:.4rem .6rem;border-radius:8px;font-size:.9rem;background:var(--ok-soft);color:var(--ok)}.basis.repeat,.basis.hold{background:var(--amber-soft);color:var(--amber)}.basis.drop{background:var(--red-soft);color:var(--danger)}.targets{list-style:none;margin:0 0 .5rem;padding:0}.targets li{display:grid;grid-template-columns:1.5rem 1fr auto;gap:.5rem;align-items:baseline;padding:.4rem 0;border-top:1px solid var(--border)}.targets li:first-child{border-top:0}.targets li.done .mark{color:var(--ok);font-weight:700}.targets li.dropped{color:var(--muted)}.check.squash{margin-top:.5rem;border-top:1px solid var(--border);padding-top:.5rem}.week-days{list-style:none;margin:0;padding:0}.week-day{display:grid;grid-template-columns:3.2rem 1fr auto;gap:.75rem;align-items:center;margin:.5rem 0;color:var(--text);text-decoration:none}.week-day .when,.week-day .what{display:flex;flex-direction:column}.week-day .activity{font-weight:600}.week-day .state{font-size:.85rem;color:var(--muted);white-space:nowrap}.week-day.done .state{color:var(--ok)}.week-day.missed .activity{color:var(--muted);font-weight:400}.week-day.today{border-color:var(--accent)}.week-day.today .state{color:var(--accent);font-weight:650}:root{--series-1: #2a78d6;--series-2: #eb6834;--chart-context: #898781;--chart-grid: #e1e0d9;--chart-axis: #c3c2b7}@media(prefers-color-scheme:dark){:root{--series-1: #3987e5;--series-2: #d95926;--chart-grid: #2c313a;--chart-axis: #454b57}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.update{margin:0;padding:.6rem 1rem;background:var(--accent);color:var(--accent-text);text-align:center}.update .link{color:inherit;text-decoration:underline;font-weight:650}.banner .link{min-height:0;padding:0;margin-left:.25rem;color:inherit;text-decoration:underline;font-weight:650}.nav-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--text);text-decoration:none}.nav-card span span{display:block}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.tile{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.9rem 1rem}.tile p{margin:0}.tile-label{color:var(--muted);font-size:.85rem}.tile-value{font-size:1.7rem;font-weight:650;line-height:1.25}.tile-unit{font-size:1rem;font-weight:400;color:var(--muted)}.suggestion{border-color:var(--accent)}.chart{margin:0}.chart .plot{position:relative}.chart svg{display:block;width:100%;touch-action:pan-y;outline-offset:4px}.chart .grid{stroke:var(--chart-grid);stroke-width:1}.chart .reference,.chart .guide{stroke:var(--chart-axis);stroke-width:1}.chart .band{fill:var(--chart-context);opacity:.14}.chart .tick{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.chart .end-label{fill:var(--text);font-size:12px;font-weight:650}.chart .line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart .line.series-1{stroke:var(--series-1)}.chart .line.series-2{stroke:var(--series-2)}.chart .line.context{stroke:var(--chart-context)}.chart .dot{stroke:var(--surface);stroke-width:2}.chart .dot.series-1{fill:var(--series-1)}.chart .dot.series-2{fill:var(--series-2)}.chart .dot.context{fill:var(--chart-context)}.chart .crosshair{stroke:var(--muted);stroke-width:1}.legend{display:flex;flex-wrap:wrap;gap:.25rem 1rem;list-style:none;margin:0 0 .5rem;padding:0;font-size:.85rem;color:var(--muted)}.legend li{display:flex;align-items:center;gap:.4rem}.key{display:inline-block;flex:none;width:14px;height:2px;border-radius:1px}.key.dots{width:8px;height:8px;border-radius:50%}.key.series-1{background:var(--series-1)}.key.series-2{background:var(--series-2)}.key.context{background:var(--chart-context)}.tooltip{position:absolute;top:0;transform:translate(10px);padding:.4rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 2px 8px #0000001f;font-size:.85rem;pointer-events:none;white-space:nowrap}.tooltip.flip{transform:translate(calc(-100% - 10px))}.tooltip p{display:flex;align-items:center;gap:.4rem;margin:0}.tooltip .when,.tooltip .name{color:var(--muted)}.table-view{margin-top:.5rem}.table-view summary{min-height:2rem;display:flex;align-items:center;color:var(--accent);font-size:.9rem;cursor:pointer}.table-view table{width:100%;border-collapse:collapse;font-size:.9rem;font-variant-numeric:tabular-nums}.table-view th,.table-view td{padding:.3rem .4rem;border-top:1px solid var(--border);text-align:right;font-weight:400}.table-view th:first-child{text-align:left}.table-view thead th{color:var(--muted);border-top:0}.waist{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border)}.due{margin-left:.4rem;padding:.1rem .45rem;border-radius:999px;background:var(--amber-soft);color:var(--amber);font-size:.8rem}.goals,.loads{list-style:none;margin:0;padding:0}.goals li{display:grid;grid-template-columns:1.5rem 1fr;gap:.5rem;padding:.55rem 0;border-top:1px solid var(--border)}.goals li:first-child,.loads li:first-child{border-top:0}.goals .muted{display:block}.goals li.reached .mark{color:var(--ok);font-weight:700}.loads li{display:grid;grid-template-columns:1fr 64px auto;gap:.75rem;align-items:center;padding:.55rem 0;border-top:1px solid var(--border)}.load-name .muted{display:block}.spark{width:64px;height:24px}.spark path{fill:none;stroke:var(--chart-context);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.spark circle{fill:var(--series-1)}
