:root{--bg: #14161a;--panel: #1b1f26;--panel-2: #232830;--line: #2c333d;--text: #e6e9ee;--muted: #9aa4b2;--accent: #6aa9ff;--ok: #4ec9a0;--warn: #e2b341;--bad: #f2777a;--mono: ui-monospace, SFMono-Regular, Menlo, monospace;--hard: #f2777a;--easy: #4ec9a0;--rest: #6b7482}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;padding-bottom:5rem}.shell{max-width:34rem;margin:0 auto;padding:1rem 1rem 0}h1{font-size:1.5rem;margin:0 0 .25rem;line-height:1.25}h2{font-size:1rem;margin:0 0 .5rem;color:var(--muted);font-weight:600}a{color:var(--accent)}code{font-family:var(--mono);font-size:.9em;background:var(--panel-2);padding:.1em .35em;border-radius:4px}.muted{color:var(--muted)}.error{color:var(--bad)}.mono{font-family:var(--mono)}.subtitle{color:var(--muted);margin-top:0}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem;margin:0 0 .75rem}.day-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.day-when{display:flex;flex-direction:column}.weekday{font-size:1.75rem;font-weight:700;line-height:1.1}.targets{display:flex;flex-wrap:wrap;gap:.5rem;margin:.25rem 0 .75rem;color:var(--muted);font-size:.9rem}.targets span:not(:last-child):after{content:" ·"}.exercises{list-style:none;margin:0;padding:0}.exercises li{display:grid;grid-template-columns:1fr auto;gap:0 .75rem;padding:.6rem 0;border-top:1px solid var(--line)}.exercises li:first-child{border-top:none}.ex-name{font-weight:600}.ex-pres{font-family:var(--mono);text-align:right;white-space:nowrap}.ex-rest{grid-column:1 / -1;color:var(--muted);font-size:.8rem}.notes{margin:.75rem 0 0;color:var(--muted);font-size:.9rem}.pill{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--panel-2);color:var(--muted);white-space:nowrap}.pill.ok{color:var(--ok)}.pill.warn{color:var(--warn)}.pill.bad{color:var(--bad)}.pill.hard{color:var(--hard)}.pill.easy{color:var(--easy)}.pill.rest{color:var(--rest)}button{font:inherit;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);min-height:44px;cursor:pointer}button.primary{background:var(--accent);border-color:var(--accent);color:#0d1117;font-weight:600;width:100%}button:disabled{opacity:.6}.log-form label{display:block;margin-bottom:.75rem;color:var(--muted);font-size:.85rem}.log-form input,.log-form select,.log-form textarea{display:block;width:100%;margin-top:.25rem;padding:.6rem;font:16px/1.4 inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:8px}.field-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.field-row:has(label:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}.log-form .actions{display:flex;gap:.5rem}.log-form .actions button.primary{flex:2}.log-form .actions button:not(.primary){flex:1}.read-only{text-align:center;font-size:.9rem}.suggestions strong{color:var(--ok)}.logged h2{display:flex;align-items:center;gap:.5rem}.week h2{color:var(--text)}.week-days{list-style:none;margin:0;padding:0}.week-days a{display:grid;grid-template-columns:2.5rem 1fr auto auto;align-items:center;gap:.5rem;padding:.6rem 0;border-top:1px solid var(--line);color:var(--text);text-decoration:none;min-height:44px}.week-days li:first-child a{border-top:none}.week-days .dow{color:var(--muted);font-size:.8rem}.week-days .title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-days .tick{color:var(--ok)}.day.is-today a{box-shadow:inset 3px 0 0 var(--accent);padding-left:.5rem}.chart svg{width:100%;height:auto;overflow:visible}.chart{margin:0 0 .75rem}.line{fill:none;stroke-width:2}.line.pace,.dot.pace{stroke:var(--accent);fill:var(--accent)}.line.hr{stroke:var(--warn);stroke-dasharray:4 3}.chart figcaption{font-size:.8rem}.key.pace{color:var(--accent)}.key.hr{color:var(--warn)}.runs,.bells,.load{list-style:none;margin:0;padding:0}.runs li,.bells li{display:grid;gap:0 .5rem;padding:.5rem 0;border-top:1px solid var(--line);font-size:.9rem}.runs li{grid-template-columns:auto auto 1fr}.bells li{grid-template-columns:1fr auto}.bells .muted{grid-column:1 / -1;font-size:.8rem}.load li{display:grid;grid-template-columns:4.5rem 1fr auto;align-items:center;gap:.5rem;padding:.3rem 0;font-size:.9rem}.load .bar{height:.6rem;background:var(--accent);border-radius:3px;min-width:2px}nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--panel);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}nav a{flex:1;text-align:center;padding:.9rem 0;color:var(--muted);text-decoration:none;font-size:.9rem}nav a.active{color:var(--accent);font-weight:600;box-shadow:inset 0 2px 0 var(--accent)}.banner{margin:1rem 0 0;padding:.6rem .75rem;text-align:center;font-size:.8rem;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:10px}:root{--ease: cubic-bezier(.2, 0, 0, 1);--fast: .15s;--page: .2s}@media (prefers-reduced-motion: no-preference){.page-enter{animation:page-in var(--page) var(--ease) both}.spinner{animation:spin .7s linear infinite}.stagger{animation:rise var(--page) var(--ease) both;animation-delay:calc(var(--i, 0) * 40ms)}}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}}@keyframes spin{to{rotate:360deg}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}nav a:focus-visible{outline-offset:-3px}button{transition:background-color var(--fast) var(--ease),border-color var(--fast) var(--ease),opacity var(--fast) var(--ease),scale var(--fast) var(--ease)}@media (hover: hover){button:hover:not(:disabled){border-color:var(--accent)}nav a:hover{color:var(--text)}.week-days a:hover{background:var(--panel-2)}}@media (prefers-reduced-motion: no-preference){button:active:not(:disabled){scale:.96}}nav a,.week-days a{transition:color var(--fast) var(--ease),background-color var(--fast) var(--ease)}.log-form input,.log-form select,.log-form textarea{transition:border-color var(--fast) var(--ease),background-color var(--fast) var(--ease)}.log-form input:focus,.log-form select:focus,.log-form textarea:focus{border-color:var(--accent)}.week-days .title{min-width:0}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;min-height:60vh;color:var(--muted)}.spinner{width:28px;height:28px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent)}.loading-label{font-size:.9rem}.refresh-bar{position:fixed;top:0;left:0;right:0;height:2px;background:var(--accent);opacity:0;transition:opacity var(--fast) var(--ease);pointer-events:none;z-index:10}.refresh-bar[data-active=true]{opacity:.9}.nav-indicator{position:absolute;top:0;left:0;height:2px;background:var(--accent);transition:transform var(--page) var(--ease),width var(--page) var(--ease),opacity var(--fast) var(--ease);pointer-events:none}@media (prefers-reduced-motion: reduce){.nav-indicator{transition:none}}nav{position:fixed;isolation:isolate}nav a.active{box-shadow:none}@media (prefers-reduced-motion: no-preference){::view-transition-old(root){animation:fade-out var(--fast) var(--ease) both}::view-transition-new(root){animation:page-in var(--page) var(--ease) both}}@keyframes fade-out{to{opacity:0}}.form-slot{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--page) var(--ease)}.form-slot[data-open=true]{grid-template-rows:1fr}.form-slot>.form-inner{min-height:0;overflow:hidden}.form-slot[data-open=false]>.form-inner>.log-form{margin-bottom:0}@media (prefers-reduced-motion: reduce){.form-slot{transition:none}}
