:root{--ground: #eef0f4;--surface: #ffffff;--surface2: #e3e7ee;--line: #c9d0dc;--ink: #1a2230;--ink2: #5c6b82;--accent: #8a6d00;--accent-bg: #f2c230;--accent-ink: #231a00;--good: #0e7a52;--good-bg: #d8f3e6;--bad: #a8321f;--bad-bg: #fbe4de;--series-1: #8a6d00;--series-2: #1d5fa8}@media(prefers-color-scheme:dark){:root{--ground: #0e1118;--surface: #1b212c;--surface2: #242c3a;--line: #303a4b;--ink: #e8ecf3;--ink2: #8ca0b8;--accent: #f2c230;--good: #3ecf8e;--good-bg: #12362a;--bad: #f08a72;--bad-bg: #3a1c16;--series-1: #b88d08;--series-2: #4f92d8}}*{box-sizing:border-box}html{color-scheme:light dark;-webkit-text-size-adjust:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45;padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left);overscroll-behavior-y:none}main{max-width:34rem;margin:0 auto;padding:.75rem .75rem calc(5rem + env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;gap:.5rem;margin:.25rem 0 .9rem}.topbar-title{flex:1;min-width:0}.topbar h1{font-family:Avenir Next Condensed,Arial Narrow,system-ui,sans-serif;text-transform:uppercase;letter-spacing:.05em;font-size:1.45rem;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-title p{margin:0;font-size:.8rem;color:var(--ink2)}.icon-btn{width:2.5rem;min-width:2.5rem;height:2.5rem;padding:0;border-radius:999px;border:1px solid var(--line);background:var(--surface2);color:var(--ink);font-size:1.2rem;line-height:1;display:grid;place-items:center;text-decoration:none}.card{background:var(--surface2);border:1px solid var(--line);border-radius:14px;padding:.8rem .9rem;margin-bottom:.7rem}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.card h2{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink2);margin:0 0 .55rem;font-family:Avenir Next Condensed,Arial Narrow,sans-serif}.card-head h2{margin-bottom:.4rem}.card-aside{font-size:.75rem;color:var(--ink2)}.card.good{border-left:3px solid var(--good)}.card.good h2{color:var(--good)}.card.warn,.card.bad{border-left:3px solid var(--bad);background:var(--bad-bg)}.card.warn h2,.card.bad h2{color:var(--bad)}dl{display:grid;grid-template-columns:auto 1fr;gap:.2rem .9rem;margin:0;font-size:.88rem}dt{color:var(--ink2)}dd{margin:0}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-variant-numeric:tabular-nums;font-size:.92em}.num{text-align:right}.big{font-size:1.05rem;margin:.2rem 0 .4rem}.big strong{font-size:1.5rem;color:var(--accent)}.note{font-size:.78rem;color:var(--ink2);margin:.5rem 0 0}.empty{font-size:.85rem;color:var(--ink2);margin:.4rem 0}pre{white-space:pre-wrap;word-break:break-word;font-size:.8rem;margin:0}a{color:var(--accent)}button{font:inherit;font-size:.92rem;min-height:2.75rem;padding:.55rem .9rem;border-radius:11px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-weight:500;cursor:pointer}button.primary{border-color:var(--accent-bg);background:var(--accent-bg);color:var(--accent-ink);font-weight:700}button.big-btn{width:100%;min-height:3.25rem;font-size:1rem;margin-top:.3rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-sub{font-weight:500;opacity:.75;font-variant-numeric:tabular-nums}button:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.danger{background:transparent;border-color:var(--bad);color:var(--bad)}.linkish{background:none;border:none;padding:.2rem 0;min-height:0;color:var(--accent);font-size:.8rem;text-decoration:underline}.linkish.danger-text{color:var(--bad)}.btn-row{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.btn-row input[type=date]{flex:1}input,select,textarea{font:inherit;font-size:1rem;width:100%;min-height:2.75rem;padding:.5rem .6rem;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}textarea{min-height:3.5rem;resize:vertical}.field{display:block;margin-bottom:.55rem}.field>span{display:block;font-size:.75rem;color:var(--ink2);margin-bottom:.2rem}.search{margin-bottom:.7rem}.note-input{margin-top:.5rem;font-size:.9rem}.numfield{flex:1;min-width:0}.numfield label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);margin-bottom:.2rem}.numfield-suffix{text-transform:none;letter-spacing:0}.numfield-row{display:flex;align-items:stretch;gap:.3rem}.numfield-row input{text-align:center;font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums;padding:.4rem .2rem}.stepper{width:2.75rem;min-width:2.75rem;padding:0;font-size:1.15rem;font-weight:700;background:var(--surface2)}.entry-row{display:flex;gap:.55rem}.entry-flags{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.5rem}.toggle{min-height:2.25rem;padding:.3rem .7rem;font-size:.82rem;border-radius:999px}.toggle.is-on{background:var(--accent-bg);border-color:var(--accent-bg);color:var(--accent-ink);font-weight:700}.chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.2rem}.chips.indent{padding:.3rem 0 .5rem .8rem}.chip{min-height:2.25rem;padding:.3rem .7rem;font-size:.82rem;border-radius:999px;background:var(--surface)}.chip.is-on{background:var(--ink);border-color:var(--ink);color:var(--ground);font-weight:600}.chip-add{border-style:dashed;color:var(--ink2)}.variant-chips{margin-bottom:.7rem}.tagrow{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin:0 0 .7rem}.tagrow-count{font-size:.75rem;color:var(--ink2)}.tag{font-size:.7rem;padding:.15rem .45rem;border-radius:6px;background:var(--surface);border:1px solid var(--line);color:var(--ink);white-space:nowrap}.tag-chest{background:color-mix(in oklab,#d94f3d 18%,var(--surface))}.tag-back{background:color-mix(in oklab,#1d5fa8 18%,var(--surface))}.tag-shoulders{background:color-mix(in oklab,#8a6d00 22%,var(--surface))}.tag-arms{background:color-mix(in oklab,#7a3fa8 18%,var(--surface))}.tag-legs{background:color-mix(in oklab,#0e7a52 20%,var(--surface))}.tag-core{background:color-mix(in oklab,#0f7f8f 18%,var(--surface))}.tag-label{font-weight:700;letter-spacing:.04em;text-transform:uppercase}.variant-pill{font-size:.68rem;padding:.1rem .4rem;margin-left:.35rem;border-radius:5px;background:var(--surface);border:1px solid var(--line);color:var(--ink2);white-space:nowrap}.block{display:block;width:100%;text-align:left;background:var(--surface2);border:1px solid var(--line);border-radius:14px;padding:.7rem .85rem;margin-bottom:.6rem;min-height:0}.block-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.block-head strong{font-size:.98rem}.block-count{font-size:.75rem;color:var(--ink2);white-space:nowrap}.block-sets,.setlist{list-style:none;margin:.4rem 0 0;padding:0;display:grid;gap:.15rem}.block-sets li,.setlist li{display:flex;align-items:center;gap:.5rem;font-size:.87rem}.block-sets li.is-warmup,.setlist li.is-warmup{opacity:.6}.set-no{width:1.3rem;min-width:1.3rem;font-size:.7rem;color:var(--ink2);font-variant-numeric:tabular-nums}.setline em{font-style:normal;color:var(--ink2);font-size:.85em}.setline em.is-fuzzy{opacity:.6}.setrow{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;background:none;border:none;border-radius:8px;padding:.3rem .2rem;min-height:2.4rem}.setrow .edit-hint{margin-left:auto;font-size:.7rem;color:var(--ink2);opacity:.7}.editset{width:100%;padding:.5rem;border:1px dashed var(--line);border-radius:10px;background:var(--surface);display:grid;gap:.5rem}.flash{margin-top:.6rem;padding:.45rem .7rem;border-radius:10px;font-size:.85rem;background:var(--surface);border:1px solid var(--line);color:var(--ink2)}.flash.is-pr{background:var(--good-bg);border-color:var(--good);color:var(--ink)}.flash.is-pr strong{color:var(--good)}.picklist,.sessionlist,.varlist,.history{list-style:none;margin:0;padding:0}.picklist>li{border-bottom:1px solid var(--line)}.picklist>li:last-child{border-bottom:none}.pickrow{display:block;width:100%;text-align:left;background:none;border:none;padding:.5rem .1rem;border-radius:8px}.pickrow-name{display:block;font-size:.95rem;font-weight:500}.pickrow-meta{display:block;font-size:.75rem;color:var(--ink2)}.sessionlist>li{margin-bottom:.5rem}.sessionrow{display:block;width:100%;text-align:left;background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:.6rem .8rem}.sessionrow-top{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.sessionrow-meta{font-size:.75rem;color:var(--ink2);white-space:nowrap}.sessionrow .tagrow{margin:.35rem 0 0}.varlist>li{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;font-size:.9rem;padding:.35rem 0;border-bottom:1px solid var(--line)}.varlist>li:last-child{border-bottom:none;margin-bottom:.5rem}.varlist-name{display:flex;align-items:center;flex-wrap:wrap;gap:.1rem}.variant-pill.is-muted{opacity:.75;font-style:italic}.variant-pill.is-good{border-color:var(--good);color:var(--good)}.calib-form{flex-basis:100%;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.6rem .7rem;margin:.2rem 0 .4rem}.numfield-pair{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.calib-result{margin:.5rem 0;font-size:.85rem;padding:.4rem .6rem;border-radius:8px;background:var(--good-bg);border-left:3px solid var(--good)}.calib-result strong{font-variant-numeric:tabular-nums}.kv{display:grid;grid-template-columns:auto 1fr;gap:.1rem .7rem;margin:.5rem 0;font-size:.8rem}.kv dt{color:var(--ink2)}.kv dd{margin:0;font-variant-numeric:tabular-nums}.history>li{display:flex;align-items:baseline;gap:.6rem;padding:.28rem 0;border-bottom:1px solid var(--line);font-size:.85rem}.history>li:last-child{border-bottom:none}.history-date{min-width:6.2rem;font-size:.78rem;color:var(--ink2);text-decoration:none}.history-sets{flex:1}.history-variant{font-size:.7rem;color:var(--ink2)}table{width:100%;border-collapse:collapse;margin-top:.7rem;font-size:.85rem}th{text-align:left;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);font-weight:600;padding-bottom:.2rem}th.num{text-align:right}td{padding:.3rem 0;border-top:1px solid var(--line)}.chart{position:relative;width:100%}.chart svg{display:block;touch-action:pan-y}.chart-empty{font-size:.8rem;color:var(--ink2);padding:.6rem 0}.chart-grid{stroke:var(--line);stroke-width:1}.chart-axis{fill:var(--ink2);font-size:10px;font-family:ui-monospace,SF Mono,Menlo,monospace}.chart-line{fill:none;stroke:var(--series-1);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart-dot{fill:var(--series-1);stroke:var(--surface2);stroke-width:2}.chart-dot.is-active{stroke:var(--surface2)}.chart svg g.s2 .chart-line{stroke:var(--series-2)}.chart svg g.s2 .chart-dot{fill:var(--series-2)}.chart-line.is-provisional{stroke-dasharray:5 4}.chart-legend{list-style:none;margin:.35rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.15rem .9rem;font-size:.72rem;color:var(--ink2)}.chart-legend li{display:flex;align-items:center;gap:.3rem}.chart-legend-note{font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;color:var(--bad)}.swatch{width:.7rem;height:.2rem;border-radius:2px;background:var(--series-1);flex:none}.swatch.s2{background:var(--series-2)}.chart-tip-row{display:flex;align-items:baseline;gap:.3rem}.chart-tip-meta{font-size:.68rem;opacity:.85}.chart-crosshair{stroke:var(--ink2);stroke-width:1;stroke-dasharray:2 3}.chart-tip{position:absolute;transform:translate(-50%,-100%);background:var(--ink);color:var(--ground);border-radius:8px;padding:.25rem .5rem;font-size:.72rem;line-height:1.35;pointer-events:none;white-space:nowrap;display:grid;justify-items:center}.chart-tip strong{font-size:.85rem;font-variant-numeric:tabular-nums}.tabbar{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);gap:0;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:10}.tab{border:none;border-radius:0;background:none;display:grid;justify-items:center;gap:.1rem;font-size:.68rem;letter-spacing:.03em;color:var(--ink2);padding:.45rem .2rem;min-height:3.1rem}.tab span{font-size:1.05rem;line-height:1}.tab.is-on{color:var(--accent);font-weight:700}@media(prefers-reduced-motion:no-preference){.flash{animation:pop .18s ease-out}@keyframes pop{0%{transform:scale(.97);opacity:0}}}.filebtn input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.filebtn{display:inline-block;position:relative}.filebtn span{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 .9rem;border:1px solid var(--line);border-radius:10px;background:var(--surface2);color:var(--ink);font:inherit;font-size:.85rem}.filebtn input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.filebtn input:disabled+span{opacity:.5}.restore-summary{margin-top:.7rem;padding:.7rem;border:1px solid var(--line);border-radius:10px;background:var(--surface2)}.restore-summary>p:first-child{margin:0 0 .4rem;font-size:.85rem}.restore-summary dl{grid-template-columns:1fr auto}.restore-summary button{margin-top:.5rem;margin-right:.4rem}.good-text{color:var(--good)}.bad-text,.warn-text{color:var(--bad)}hr{border:none;border-top:1px solid var(--line);margin:.9rem 0}.periodbar{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.5rem .6rem;margin-bottom:.6rem;display:grid;gap:.4rem}.periodbar-range{margin:0;font-size:.75rem;color:var(--ink2);font-variant-numeric:tabular-nums}.stepper-row{display:flex;align-items:center;gap:.4rem}.stepper-row strong{font-variant-numeric:tabular-nums}.date-pair{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.date-pair label{display:grid;gap:.15rem;font-size:.75rem;color:var(--ink2)}.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin:0}.tiles>div{background:var(--surface2);border-radius:10px;padding:.45rem .6rem}.tiles dt{font-size:.7rem;color:var(--ink2);text-transform:uppercase;letter-spacing:.04em}.tiles dd{margin:0;font-size:1.35rem;font-weight:600;font-variant-numeric:tabular-nums}.bars{list-style:none;margin:0;padding:0;display:grid;gap:2px}.bar-row{display:grid;grid-template-columns:7.5rem 1fr auto;align-items:center;gap:.5rem;width:100%;text-align:left;background:none;border:none;padding:.25rem .1rem;border-radius:8px;color:var(--ink);font-size:.85rem}.bars>li.is-on .bar-row{background:var(--surface2)}.bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-label em{display:block;font-size:.68rem;font-style:normal;color:var(--ink2)}.bar-track{display:block;height:.6rem}.bar-fill{display:block;height:100%;background:var(--series-1);border-radius:0 4px 4px 0}.bar-value{font-variant-numeric:tabular-nums;font-weight:600;min-width:2.2rem;text-align:right}.monthgrid-head,.monthgrid-body{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.monthgrid-head{margin-bottom:3px}.monthgrid-head span{text-align:center;font-size:.65rem;color:var(--ink2)}.daycell{position:relative;aspect-ratio:1;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font-size:.72rem;font-variant-numeric:tabular-nums;padding:0;display:flex;align-items:center;justify-content:center;min-height:2rem}.daycell.is-pad{border:none;background:none}.daycell.is-today{outline:2px solid var(--accent);outline-offset:-2px}.daycell.lvl-1{background:color-mix(in oklab,var(--series-1) 22%,var(--surface))}.daycell.lvl-2{background:color-mix(in oklab,var(--series-1) 42%,var(--surface))}.daycell.lvl-3{background:color-mix(in oklab,var(--series-1) 64%,var(--surface))}.daycell.lvl-4{background:color-mix(in oklab,var(--series-1) 88%,var(--surface));color:var(--surface)}.daycell-mob{position:absolute;right:3px;bottom:3px;width:4px;height:4px;border-radius:50%;background:var(--ink2)}.facets{display:grid;gap:3px;margin-top:.7rem}.facet{display:grid;grid-template-columns:5.5rem 1fr;align-items:center;gap:.4rem}.facet-label{font-size:.72rem;color:var(--ink2);display:flex;justify-content:space-between;gap:.3rem}.facet-label em{font-style:normal;font-variant-numeric:tabular-nums;color:var(--ink)}.facet-track{display:flex;gap:1px}.facet-tick{flex:1;height:.55rem;border-radius:2px;background:var(--surface2)}.facet-tick.is-on{background:var(--series-1)}.heatmap-grid{display:flex;gap:2px;overflow-x:auto;padding-bottom:.3rem}.heatmap-col{display:grid;grid-template-rows:repeat(7,1fr);gap:2px;flex:none}.heatcell{width:.55rem;height:.55rem;border-radius:2px;background:var(--surface2)}.heatcell.lvl-1{background:color-mix(in oklab,var(--series-1) 28%,var(--surface))}.heatcell.lvl-2{background:color-mix(in oklab,var(--series-1) 50%,var(--surface))}.heatcell.lvl-3{background:color-mix(in oklab,var(--series-1) 72%,var(--surface))}.heatcell.lvl-4{background:var(--series-1)}.pickrow.is-on{background:var(--surface2)}.streaks>summary{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;cursor:pointer;list-style:none}.streaks>summary::-webkit-details-marker{display:none}.streaks-title{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink2);font-family:Avenir Next Condensed,Arial Narrow,sans-serif}.streaks-headline{font-size:.8rem;color:var(--ink);text-align:right}.streaks-title:after{content:" ▸";color:var(--ink2)}.streaks[open] .streaks-title:after{content:" ▾"}.streaks[open] .streaks-headline{display:none}.streaks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.55rem .7rem;margin:.7rem 0 0}.streaks-grid dt{font-size:.7rem;color:var(--ink2);line-height:1.25}.streaks-grid dd{margin:.1rem 0 0;font-size:1.15rem;font-variant-numeric:tabular-nums}.streaks-grid dd em{display:block;font-size:.68rem;font-style:normal;color:var(--ink2)}.nameform{margin:.6rem 0 .3rem}.nameform>label{display:block}.nameform>label>span{display:block;font-size:.7rem;color:var(--ink2);margin-bottom:.2rem}.nameform input[type=text]{width:100%}.nameform .btn-row{margin-top:.5rem}.confirm{margin:.6rem 0 .3rem;padding:.6rem .7rem;border-radius:10px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--ink2)}.confirm.is-destructive{border-left-color:var(--bad)}.confirm-q{margin:0 0 .3rem;font-weight:600;font-size:.92rem}.confirm .btn-row{margin-top:.55rem}.refusal{margin:.55rem 0 0;padding:.5rem .6rem;border-radius:10px;border:1px solid var(--line);border-left:3px solid var(--accent);font-size:.82rem}
