/* Sport specification 03.11.2026. Self-hosted Cyrillic/Latin variable fonts. */
@font-face{font-family:Oswald;src:url('/web/fonts/oswald-variable.ttf') format('truetype');font-style:normal;font-weight:200 700;font-display:swap}
@font-face{font-family:Manrope;src:url('/web/fonts/manrope-variable.ttf') format('truetype');font-style:normal;font-weight:200 800;font-display:swap}
:root{--google-bg:#131314;--google-hover:#1F1F20;--google-text:#E3E3E3;--google-line:#8E918F;--bg:#0B0B0C;--surface:#17171A;--surface-2:#17171A;--line:#2A2A2D;--text:#F5F5F2;--text-2:#A3A3A0;--text-3:#A3A3A0;--accent:#D7FF3A;--accent-text:#D7FF3A;--accent-press:#D7FF3A;--accent-soft:#2A2A2D;--on-accent:#0B0B0C;--ok:#5EE08A;--warn:#FF7A59;--bad:#FF7A59;--bad-text:#FF7A59;--warn-text:#FF7A59;--secondary-bg:#17171A;--secondary-text:#F5F5F2;--rest:#A3A3A0;--z1:#A3A3A0;--z2:#5EE08A;--z3:#D7FF3A;--z4:#FF7A59;--z5:#FF7A59;--shadow:none;--overlay:rgba(11,11,12,.75);--r-s:14px;--r-m:16px;--r-l:20px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:32px;--font:Manrope,system-ui,sans-serif;--font-heading:Oswald,Manrope,sans-serif;--tabbar-h:72px;--paper:var(--bg);--ink:var(--text);--muted:var(--text-2);--fjord:var(--text);--mist:var(--bg);--stone:var(--line);--sage:var(--ok);--brass:var(--accent);--rust:var(--bad-text);--muted-fjord:var(--text-2);--muted-mist:var(--text-2);--fog:var(--bg);--pine:var(--accent);--pine-soft:var(--accent-soft);--lime:var(--on-accent);--coral:var(--bad-text);--white:var(--surface);--radius:var(--r-m);--flow-surface:var(--surface);--flow-text:var(--text);--flow-muted:var(--text-2);--flow-selected:var(--accent-soft);--today-bg:var(--bg);--today-text:var(--text);--today-muted:var(--text-2);--week-easy:var(--z2);--week-long-end:var(--z3);--week-quality:var(--z4);--week-completed:var(--ok);--coach-user-bg:var(--accent);--coach-user-ink:var(--on-accent);--coach-action-bg:var(--accent);--coach-action-ink:var(--on-accent);color-scheme:dark}
:root[data-theme=dark]{color-scheme:dark}

.season-roadmap{margin:var(--sp-4) 0;padding:var(--sp-4);border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface)}.season-roadmap summary{cursor:pointer;font-weight:650;min-height:28px}.season-note,.season-lines{color:var(--text-2);font-size:13px}.season-track{display:flex;position:relative;gap:2px;height:20px;margin:32px 0 16px}.season-phase{min-width:2px;border-radius:3px;background:var(--rest)}.season-base,.season-maintenance{background:var(--z1)}.season-hills,.season-development{background:var(--accent)}.season-specific{background:#9462D4}.season-taper{background:var(--ok)}.season-race{background:var(--warn)}.season-now{position:absolute;top:-22px;transform:translateX(-50%);font-size:12px;color:var(--text);white-space:nowrap}.season-now:after{content:"";display:block;height:22px;width:2px;margin:auto;background:var(--text)}.season-checkpoint{position:absolute;bottom:-12px;transform:translateX(-50%);color:var(--text)}.season-blocks{padding-left:20px}.season-blocks li{margin:12px 0}.season-lines p{overflow-wrap:anywhere}
/* Claude 31.10 (MT-006): iOS Safari and the Telegram webview zoom into any form field under 16px on focus and the page then shifts sideways.
   Form fields are at least 16px on phones; !important because brand.css/styles.css set 15px/13px later in the cascade. */
@media (max-width:900px){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea{font-size:16px !important}}
