:root{--bg:#0f1115;--surface:#181b22;--raise:#222631;--line:#2e3340;--ink:#eceef2;--ink-2:#b4b9c4;--muted:#8a909c;--accent:#f5b83d;--accent-ink:#1a1405;--good:#5ccf8a;--warn:#f0a24a;--bad:#ef6b6b;--info:#6fb1ff;--tap:56px;--r:14px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0}body{-webkit-tap-highlight-color:transparent;font:17px/1.45 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}h1,h2,h3{margin:1.2em 0 .5em;line-height:1.2}h1{font-size:1.5rem}h2{font-size:1.2rem}h3{font-size:1.05rem}p{margin:.5em 0}a{color:var(--accent)}small,.small{font-size:.85rem}.muted{color:var(--muted)}strong{font-weight:650}.shell{flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;display:flex}.top{z-index:5;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;top:0}.top h1{margin:0;font-size:1.15rem}.who{background:var(--surface);border:1px solid var(--line);width:auto;min-height:44px;color:var(--ink);font:inherit;border-radius:999px;align-items:center;gap:8px;margin:0;padding:4px 12px 4px 4px;display:inline-flex}.avatar{background:var(--accent);width:34px;height:34px;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid}.page{flex:1;padding:8px 16px 180px}.narrow{max-width:420px;margin:0 auto}.bottom{z-index:6;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0;left:0;right:0}.bottom nav,nav.bottom-nav{max-width:560px;margin:0 auto;display:flex}.bottom nav button{min-height:var(--tap);color:var(--muted);background:0 0;border:0;border-radius:0;flex:1;font-weight:600}.bottom nav button.on{color:var(--accent);box-shadow:inset 0 3px 0 var(--accent)}button,.button{min-height:var(--tap);border-radius:var(--r);border:1px solid var(--line);background:var(--raise);color:var(--ink);font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:8px;width:100%;margin:6px 0;padding:0 18px;font-weight:600;text-decoration:none;display:inline-flex}button:disabled{opacity:.45;cursor:not-allowed}.button:focus-within{outline:3px solid var(--accent);outline-offset:2px}button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.big{min-height:64px;font-size:1.1rem}button.ghost{background:0 0}button.danger,.danger{color:var(--bad)}button.small{width:auto;min-height:44px;margin:0;padding:0 14px;font-size:.9rem}button.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.choice{margin:14px 0}.choice>p,.choice legend{color:var(--ink-2);margin:0 0 6px;font-weight:600}.choice{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.choice:has(small){grid-template-columns:repeat(2,1fr)}.choice button{flex-direction:column;gap:2px;margin:0;padding:8px 6px;line-height:1.2}.choice button small{color:var(--muted);font-weight:400}.choice button.on{background:color-mix(in srgb, var(--accent) 18%, var(--raise))}.choice button.on small{color:var(--ink-2)}.stack{flex-direction:column;gap:8px;display:flex}.stack button{text-align:left;justify-content:flex-start;margin:0}.stack button.right{border-color:var(--good);box-shadow:inset 0 0 0 1px var(--good)}.stack button.wrong{border-color:var(--bad)}.stack button.dim{opacity:.5}.stepper{align-items:center;gap:6px;display:flex}.stepper button{width:var(--tap);flex:none;margin:0;padding:0;font-size:1.4rem}.stepper label{flex-direction:column;align-items:center;display:flex}.stepper input{text-align:center;font-variant-numeric:tabular-nums;-moz-appearance:textfield;width:4.6em;padding:0 4px;font-size:1.1rem;font-weight:650}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper output,.stepper .val{text-align:center;font-variant-numeric:tabular-nums;min-width:4.2em;font-size:1.1rem;font-weight:650}.stepper .unit,.stepper small{color:var(--muted);font-size:.8rem;font-weight:400}.form{flex-direction:column;gap:12px;display:flex}.form label{color:var(--ink-2);flex-direction:column;gap:6px;font-weight:600;display:flex}input,select{min-height:var(--tap);border-radius:var(--r);border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;width:100%;padding:0 14px}.banner{border-radius:var(--r);background:var(--surface);border:1px solid var(--line);margin:10px 0;padding:12px 14px}.banner.warn,.warn{border-color:var(--warn)}.banner.warn{background:color-mix(in srgb, var(--warn) 10%, var(--surface))}.banner.error,.error{border-color:var(--bad);color:#ffd2d2}.banner.error{background:color-mix(in srgb, var(--bad) 14%, var(--surface))}.explain{color:var(--ink-2);background:var(--surface);border-left:3px solid var(--accent);border-radius:0 var(--r) var(--r) 0;padding:10px 14px}.ask{margin:16px 0}.ask-block{border-radius:var(--r);background:var(--surface);border:1px solid var(--line);margin:18px 0;padding:12px 14px}.intro{padding-top:12px}.sheet-bg{z-index:20;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.sheet{background:var(--bg);border-top:1px solid var(--line);width:100%;max-width:560px;max-height:88dvh;padding:8px 16px calc(24px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;overflow:auto}.sheet-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.sheet-head h2{margin:12px 0}.sheet-head button{width:auto;min-height:44px;margin:0}.list{flex-direction:column;gap:8px;margin:8px 0;padding:0;list-style:none;display:flex}.list.tight{gap:4px}.row{min-height:var(--tap);border-radius:var(--r);background:var(--surface);border:1px solid var(--line);align-items:center;gap:10px;padding:10px 12px;display:flex}button.row{text-align:left;justify-content:flex-start;width:100%;margin:0;font-weight:400}.row-main{flex-direction:column;flex:1;min-width:0;display:flex}.row-main small{color:var(--muted)}.tally{font-variant-numeric:tabular-nums;color:var(--ink-2);font-weight:600}.tally.full{color:var(--good)}li.plan{border-radius:var(--r);background:var(--surface);border:1px solid var(--line);grid-template-columns:1fr auto;align-items:start;gap:4px 10px;margin:0;padding:12px 14px;display:grid}.card{border-radius:var(--r);background:var(--surface);border:1px solid var(--line);margin:10px 0;padding:12px 14px}.card h3{margin:0 0 6px}.badge{letter-spacing:.02em;white-space:nowrap;vertical-align:middle;border:1px solid;border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:700;display:inline-block}.badge.up{color:var(--good)}.badge.same{color:var(--ink-2)}.badge.down{color:var(--warn)}.badge.calibrate{color:var(--info)}.badge.resume{color:var(--warn)}p.why{grid-column:1/-1;padding:0}.why,.whys{color:var(--ink-2);margin:6px 0 0;padding-left:1.1em;font-size:.92rem}.whys li+li,.why li+li{margin-top:2px}.log{padding-top:4px}.crumb{align-items:center;gap:12px;margin:4px 0;display:flex}.crumb button{width:auto;min-height:44px;color:var(--ink-2);border:0;margin:0 0 0 -8px;padding:0 10px 0 8px}.target{font-variant-numeric:tabular-nums;margin:4px 0;font-size:1.35rem;font-weight:700}details.how,details.swap,details.warmup{border-radius:var(--r);background:var(--surface);border:1px solid var(--line);margin:10px 0}details>summary{min-height:var(--tap);cursor:pointer;align-items:center;padding:0 14px;font-weight:600;list-style:none;display:flex}details>summary::-webkit-details-marker{display:none}details>summary:after{content:"+";color:var(--muted);margin-left:auto;font-size:1.3rem}details[open]>summary:after{content:"–"}details>:not(summary){margin-left:14px;margin-right:14px}details>:last-child{margin-bottom:14px}.how ul{padding-left:1.1em}.how h4{color:var(--ink-2);margin:12px 0 4px;font-size:.95rem}.warmup label,.warmup li{align-items:center;gap:10px;min-height:48px;display:flex}.warmup input[type=checkbox]{width:24px;height:24px;min-height:0;accent-color:var(--accent)}.warmup ul,.warmup ol{padding:0;list-style:none}.sets{flex-direction:column;gap:8px;margin:12px 0;padding:0;list-style:none;display:flex}.sets li{border-radius:var(--r);background:var(--surface);border:1px solid var(--line);grid-template-columns:1.6em 1fr auto;align-items:center;gap:6px 8px;padding:8px 10px;display:grid}.sets li.done{border-color:color-mix(in srgb, var(--good) 60%, var(--line));background:color-mix(in srgb, var(--good) 8%, var(--surface))}.set-n{width:1.6em;color:var(--muted);text-align:center;font-weight:700}.sets .set-n{grid-row:span 2}.sets .stepper{grid-column:2}.sets .tick{grid-area:1/3/span 2}.tick{width:var(--tap);height:var(--tap);border-radius:50%;flex:none;margin:0;padding:0;font-size:1.5rem}.sets li.done .tick{background:var(--good);border-color:var(--good);color:#062612}.pager{gap:8px;margin-top:14px;display:flex}.pager button{margin:0}.rest{border-bottom:1px solid var(--line);background:var(--raise);padding:8px 16px;position:relative;overflow:hidden}.rest.over{background:color-mix(in srgb, var(--accent) 22%, var(--raise))}.rest-fill{background:color-mix(in srgb, var(--accent) 16%, transparent);pointer-events:none;position:absolute;top:0;bottom:0;left:0}.rest-row{align-items:center;gap:10px;max-width:560px;margin:0 auto;display:flex;position:relative}.rest-time{font-variant-numeric:tabular-nums;min-width:3.2em;font-size:1.5rem;font-weight:750}.rest-label{min-width:0;color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;overflow:hidden}.rest-row button{width:auto;min-height:44px;margin:0;padding:0 12px}.chart{margin:12px 0}.chart svg{touch-action:pan-y;width:100%;height:auto;display:block}.chart .grid{stroke:var(--line);stroke-width:1px}.chart .axis{fill:var(--muted);font-size:11px}.chart .cross{stroke:var(--ink-2);stroke-width:1px;stroke-dasharray:3 3}.chart .line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .dot{fill:var(--accent);stroke:var(--bg);stroke-width:2px}.chart .tip,.chart figcaption{color:var(--ink-2);min-height:1.5em;margin-top:6px;font-size:.92rem}table.table,.table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin:8px 0}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:8px 6px}.table th{color:var(--muted);font-size:.85rem;font-weight:600}@media (prefers-reduced-motion:no-preference){button{transition:background-color .12s,border-color .12s}}.fig{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin:4px 0 12px;padding:8px}.fig .frames{grid-template-areas:"f";justify-items:center;display:grid}.fig .frame{grid-area:f;width:100%;max-width:240px;height:auto}.fig .f0{animation:3.2s linear infinite fig-a}.fig .f1{animation:3.2s linear infinite fig-b}@keyframes fig-a{0%,45%{opacity:1}50%,95%{opacity:0}to{opacity:1}}@keyframes fig-b{0%,45%{opacity:0}50%,95%{opacity:1}to{opacity:0}}.fig .limb{fill:none;stroke:var(--ink);stroke-width:7px;stroke-linecap:round;stroke-linejoin:round}.fig .limb.far{stroke:var(--muted)}.fig .headc{fill:var(--ink)}.fig .kit{fill:var(--raise);stroke:var(--accent);stroke-width:2.5px}.fig .cable{stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round}.fig .floor{stroke:var(--line);stroke-width:2px}@media (prefers-reduced-motion:reduce){.fig .frames{grid-template-columns:1fr 1fr;grid-template-areas:none;gap:8px}.fig .frame{grid-area:auto;animation:none}}.gallery{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;padding:12px;display:grid}.gallery .frames{grid-template-columns:1fr 1fr;grid-template-areas:none;gap:8px}.gallery .frame{grid-area:auto;animation:none}.pad line{stroke-linecap:round;stroke:var(--accent)}.pad line+line{stroke:var(--raise)}label.check,.form label.check{color:var(--ink);grid-template-columns:24px 1fr;align-items:center;gap:12px;margin:14px 0;font-weight:400;display:grid}label.check input[type=checkbox]{width:24px;height:24px;min-height:0;accent-color:var(--accent);margin:0;padding:0}.field>p:first-child{color:var(--ink-2);margin:14px 0 0;font-weight:600}.list.gym li{padding:0}.list.gym label.check{min-height:44px;margin:0}
