:root{--bg:#f4f5f7;--card:#fff;--card-2:#f0f2f5;--text:#16181d;--muted:#5f6672;--border:#e3e6ea;--ok:#1e8e3e;--bad:#d93025;--warn:#b26a00;--accent:#1e7be0;--strava:#fc4c02;--warmup:#1f9d55;--active:#1e7be0;--recovery:#e08a00;--cooldown:#8a55e6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f1114;--card:#1a1d22;--card-2:#22262c;--text:#f1f3f5;--muted:#9aa0a6;--border:#2a2f36;--ok:#2ecc71;--bad:#ff5a4f;--warn:#ffb020;--accent:#3d9bff;--warmup:#2ecc71;--active:#3d9bff;--recovery:#ff9f1a;--cooldown:#a066ff}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}button{font:inherit;color:inherit}.topbar{background:var(--card);border-bottom:1px solid var(--border);z-index:10;position:sticky;top:0}.topbar-inner{align-items:center;gap:24px;max-width:1100px;height:56px;margin:0 auto;padding:0 16px;display:flex}.brand{white-space:nowrap;font-weight:700}.tabs{gap:4px;display:flex;overflow-x:auto}.tabs a{color:var(--muted);white-space:nowrap;border-radius:8px;padding:8px 12px;font-weight:600;text-decoration:none}.tabs a.active{color:var(--text);background:var(--card-2)}main{max-width:600px;margin:0 auto;padding:24px 16px 48px}main.wide{max-width:1100px}.lead{color:var(--muted);margin:8px 0 24px}.muted{color:var(--muted)}.small{margin:2px 0 0;font-size:13px}.error{color:var(--bad);margin:4px 0}.notice{border:1px solid var(--border);background:var(--card);border-radius:12px;margin:0 0 16px;padding:12px 16px}.notice.ok{border-color:var(--ok)}.notice.bad{border-color:var(--bad)}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px 20px}.card+.card{margin-top:16px}.card h2{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 12px;font-size:14px}.row{align-items:center;gap:10px;padding:8px 0;display:flex}.dot{border-radius:50%;flex:none;width:10px;height:10px}.dot.ok{background:var(--ok)}.dot.bad{background:var(--bad)}.dot.pending{background:var(--warn)}.label{min-width:130px;font-weight:600}.value{color:var(--muted)}.row-actions{align-items:center;gap:12px;margin-left:auto;display:flex}.actions{align-items:center;gap:16px;margin-top:12px;display:flex}button:not(.link):not(.ghost):not(.chip){background:var(--text);color:var(--card);cursor:pointer;border:none;border-radius:8px;padding:6px 12px;font-weight:600}button.link{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}button.ghost{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;min-width:36px;padding:6px 12px;font-weight:600}button.ghost:hover{background:var(--card-2)}.strava-button{background:var(--strava);color:#fff;border-radius:10px;padding:10px 18px;font-weight:600;text-decoration:none;display:inline-block}.strava-button:hover{filter:brightness(.93)}.run{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 0;display:flex}.run:first-of-type{border-top:none}.run-main{flex-direction:column;flex:200px;min-width:0;display:flex}.run-date{color:var(--muted);font-size:13px}.run-name{font-weight:600}.run-stats{color:var(--muted);font-size:14px}.badge{border:1px solid;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.badge.pending{color:var(--warn)}.badge.ok{color:var(--ok)}.badge.bad{color:var(--bad)}.badge.muted{color:var(--muted)}.calendar-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.calendar-title{margin:0;font-size:24px}.calendar-nav{gap:6px;display:flex}.grid{background:var(--border);border:1px solid var(--border);border-radius:14px;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;transition:opacity .15s;display:grid;overflow:hidden}.grid.loading{opacity:.5}.weekday{background:var(--card);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:8px;font-size:12px;font-weight:600}.day{background:var(--card);flex-direction:column;gap:4px;min-width:0;min-height:112px;padding:6px;display:flex}.day.other-month{background:var(--card-2)}.day.other-month .day-number{opacity:.45}.day-number{border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:600;display:inline-flex}.day.today .day-number{background:var(--accent);color:#fff}.chip{text-align:left;border:none;border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--card));border-radius:6px;flex-direction:column;align-items:flex-start;width:100%;min-width:0;padding:4px 6px;display:flex}button.chip{cursor:pointer}button.chip:hover{background:color-mix(in srgb, var(--accent) 20%, var(--card))}.chip-name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:12px;font-weight:600;overflow:hidden}.chip-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;overflow:hidden}.chip.entry.done{border-left-color:var(--ok);background:color-mix(in srgb, var(--ok) 12%, var(--card))}.chip.entry.missed{border-left-color:var(--muted);background:var(--card-2)}.chip.entry.missed .chip-name{color:var(--muted);text-decoration:line-through}.chip.run{border-left-color:var(--ok);background:0 0;padding-left:6px}.chip.run .chip-name{color:var(--ok)}.agenda{margin:0;padding:0;list-style:none;display:none}.agenda-day{background:var(--card);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.agenda-day+.agenda-day{margin-top:8px}.agenda-day.today{border-color:var(--accent)}.agenda-date{font-weight:600}.chip.wide{grid-template-columns:1fr auto;column-gap:8px;padding:8px 10px;display:grid}.chip.wide .chip-name{font-size:14px}.chip.wide .chip-meta{grid-column:1;font-size:13px}.chip-state{color:var(--muted);grid-area:1/2/span 2;align-self:center;font-size:12px;font-weight:600}.chip-state.done{color:var(--ok)}.chip-state.today{color:var(--accent)}@media (width<=720px){.grid{display:none}.agenda{display:block}.calendar-title{font-size:20px}}.panel-backdrop{z-index:20;background:#00000059;justify-content:flex-end;display:flex;position:fixed;inset:0}.panel{background:var(--card);border-left:1px solid var(--border);width:min(440px,100%);height:100%;padding:24px 24px 48px;position:relative;overflow-y:auto}.panel-close{font-size:20px;line-height:1;position:absolute;top:16px;right:16px}.eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;font-size:12px;font-weight:600}.panel-title{margin:4px 40px 4px 0;font-size:22px}.panel-title+.muted{margin:0}.totals{grid-template-columns:1fr 1fr;gap:12px;margin:20px 0 12px;display:grid}.totals div{background:var(--card-2);border-radius:12px;padding:10px 12px}.totals dt{color:var(--muted);font-size:12px}.totals dd{margin:4px 0 0;font-size:20px;font-weight:700}.section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:24px 0 8px;font-size:12px}.outline{margin:0;padding:0;list-style:none}.step{border-bottom:1px solid var(--border);--step:var(--active);grid-template-columns:14px 1fr auto;align-items:baseline;column-gap:12px;padding:10px 0;display:grid}.step-dot{background:var(--step);border-radius:50%;align-self:center;width:12px;height:12px}.step-name{font-weight:600}.step-amount{font-variant-numeric:tabular-nums;font-weight:600}.step-target,.step-notes{color:var(--muted);grid-column:2/span 2;font-size:13px}.i-warmup{--step:var(--warmup)}.i-active,.i-interval{--step:var(--active)}.i-recovery,.i-rest{--step:var(--recovery)}.i-cooldown{--step:var(--cooldown)}.i-other{--step:var(--muted)}.repeat{border:1px solid var(--border);background:var(--card-2);border-radius:12px;margin:10px 0;padding:4px 12px 0}.repeat-label{color:var(--muted);padding-top:8px;font-size:13px;font-weight:700;display:block}.repeat .step:last-child{border-bottom:none}a.badge{text-decoration:none}a.badge:hover{text-decoration:underline}.run-error{flex-basis:100%;font-size:14px}@media (width<=480px){.brand{display:none}.topbar-inner{gap:0}.panel{border-left:none;width:100%}.row{flex-wrap:wrap}.row-actions{margin-left:0}}
