@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-var.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-latin-var.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-var.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-latin-var.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-latin-var.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/firacode-latin-var.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Code;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/firacode-latin-var.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Code;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/firacode-latin-var.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after{box-sizing:border-box}:root{--bg:#fff;--surface:#fafafa;--surface-elevated:#fff;--border:#e5e5e5;--border-strong:#d4d4d4;--text:#262626;--text-muted:#737373;--text-strong:#000;--brand:#0f766e;--brand-hover:#134e48;--brand-soft:#ecfdf5;--brand-pale:#a7f3d0;--brand-bright:#2dd4bf;--accent:var(--brand);--accent-hover:var(--brand-hover);--accent-soft:var(--brand-soft);--success:#16a34a;--warn:#d97706;--danger:#dc2626;--info:#3b82f6;--severity-info-bg:color-mix(in srgb, var(--success) 14%, transparent);--severity-info-fg:var(--success);--severity-info-border:var(--success);--severity-watch-bg:#d4a01724;--severity-watch-fg:#8a6500;--severity-watch-border:#d4a017;--severity-warn-bg:color-mix(in srgb, var(--warn) 14%, transparent);--severity-warn-fg:var(--warn);--severity-warn-border:var(--warn);--severity-alert-bg:color-mix(in srgb, var(--danger) 14%, transparent);--severity-alert-fg:var(--danger);--severity-alert-border:var(--danger);--compliance-on-target-bg:#e8f5ec;--compliance-on-target-fg:#186a31;--compliance-on-target-border:#4caf50;--compliance-under-bg:#fff5d6;--compliance-under-fg:#8a6500;--compliance-under-border:#f0c700;--compliance-over-bg:#ffeede;--compliance-over-fg:#9a4d00;--compliance-over-border:#f08a3e;--compliance-no-target-bg:var(--surface);--compliance-no-target-fg:var(--text-muted);--compliance-no-target-border:var(--border);--compliance-band-green:#2e8b46;--compliance-band-yellow:#c79212;--compliance-band-red:#c54a3a;--compliance-ring-track:var(--border);--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 8px 24px #00000014;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-pill:999px;--space-0:0;--space-1:2px;--space-2:4px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:20px;--space-7:24px;--space-8:28px;--space-9:32px;--space-10:40px;--space-11:48px;--space-12:56px;--space-13:64px;--navbar-height:64px;--source-strava:#fc4c02;--source-wahoo:#003a70;--source-fit:#6b7280;--font-display:"Inter", system-ui, -apple-system, sans-serif;--font-body:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"Fira Code", ui-monospace, SFMono-Regular, Menlo, monospace;--type-display-1-size:48px;--type-display-1-weight:800;--type-display-1-tracking:-.03em;--type-display-1-leading:1.05;--type-display-2-size:36px;--type-display-2-weight:700;--type-display-2-tracking:-.025em;--type-display-2-leading:1.1;--type-h1-size:28px;--type-h1-weight:700;--type-h1-tracking:-.025em;--type-h1-leading:1.15;--type-h2-size:22px;--type-h2-weight:600;--type-h2-tracking:-.02em;--type-h2-leading:1.2;--type-h3-size:18px;--type-h3-weight:600;--type-h3-tracking:-.015em;--type-h3-leading:1.3;--type-card-title-size:15px;--type-card-title-weight:600;--type-card-title-tracking:-.01em;--type-card-title-leading:1.3;--type-body-size:15px;--type-body-weight:400;--type-body-tracking:0;--type-body-leading:1.55;--type-body-sm-size:14px;--type-body-sm-weight:400;--type-body-sm-tracking:0;--type-body-sm-leading:1.5;--type-caption-size:12px;--type-caption-weight:400;--type-caption-tracking:0;--type-caption-leading:1.45;--type-eyebrow-size:11px;--type-eyebrow-weight:600;--type-eyebrow-tracking:.06em;--type-eyebrow-leading:1.2;--type-stat-size:24px;--type-stat-weight:600;--type-stat-tracking:0;--type-stat-leading:1;--type-metric-hero-size:40px;--type-metric-hero-weight:700;--type-metric-hero-tracking:-.01em;--type-metric-hero-leading:1;--card-bg:var(--surface-elevated);--card-bg-dark:var(--surface-elevated);--text-primary:var(--text-strong);--text-secondary:var(--text-muted);--text-color:var(--text);--input-bg:var(--surface);--bg-input:var(--surface);--bg-subtle:var(--surface);--bg-hover:color-mix(in srgb, var(--text-strong) 4%, transparent);--border-default:var(--border);--border-color:var(--border);--surface-alt:var(--surface);--surface-hover:color-mix(in srgb, var(--text-strong) 4%, transparent);--accent-error:var(--danger);--accent-success:var(--success);--error:var(--danger);--error-bg:color-mix(in srgb, var(--danger) 8%, transparent);--error-text:var(--danger);--danger-bg:color-mix(in srgb, var(--danger) 8%, transparent);--success-bg:color-mix(in srgb, var(--success) 8%, transparent);--focus-ring:var(--accent);font-family:var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-size:15px}[data-theme=dark]{--bg:#0a0a0a;--surface:#141414;--surface-elevated:#1a1a1a;--border:#262626;--border-strong:#404040;--text:#e5e5e5;--text-muted:#a3a3a3;--text-strong:#fff;--brand:#2dd4bf;--brand-hover:#14b8a6;--brand-soft:#042f2e;--accent:var(--brand);--accent-hover:var(--brand-hover);--accent-soft:var(--brand-soft);--success:#22c55e;--warn:#f59e0b;--danger:#ef4444;--severity-watch-bg:#f5d34a2e;--severity-watch-fg:#f5d34a;--severity-watch-border:#f5d34a;--compliance-on-target-bg:#4caf5029;--compliance-on-target-fg:#7fd093;--compliance-on-target-border:#4caf50;--compliance-under-bg:#f0c70024;--compliance-under-fg:#f5d34a;--compliance-under-border:#f0c700;--compliance-over-bg:#f08a3e29;--compliance-over-fg:#f4a96d;--compliance-over-border:#f08a3e;--compliance-band-green:#6fce86;--compliance-band-yellow:#f0c700;--compliance-band-red:#ed7464;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--font-body);margin:0;transition:background .15s,color .15s}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3{color:var(--text-strong);margin:0;font-weight:600}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.eyebrow{font-size:var(--type-eyebrow-size);font-weight:var(--type-eyebrow-weight);letter-spacing:var(--type-eyebrow-tracking);line-height:var(--type-eyebrow-leading);text-transform:uppercase;color:var(--text-muted)}.metric-hero{font-family:var(--font-mono);font-size:var(--type-metric-hero-size);font-weight:var(--type-metric-hero-weight);font-variant-numeric:tabular-nums;color:var(--text-strong);line-height:var(--type-metric-hero-leading);letter-spacing:var(--type-metric-hero-tracking)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.workout-builder-page__sheet,.workout-builder-page__toast{animation:none!important;transform:none!important}}.navbar{height:var(--navbar-height);background:var(--surface-elevated);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.nav-brand{color:var(--text-strong);letter-spacing:-.01em;align-items:center;gap:12px;font-size:15px;font-weight:600;display:flex}.nav-brand img{object-fit:contain;width:40px;height:40px}.nav-links{align-items:center;gap:16px;display:flex}.nav-links a{color:var(--text-muted);font-size:14px;font-weight:500}.nav-links a:hover{color:var(--text-strong);text-decoration:none}.theme-toggle{border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:inline-flex}.theme-toggle:hover{background:var(--bg);border-color:var(--border-strong);color:var(--text-strong)}.user-selector{border:1px solid var(--border);background:var(--surface);color:var(--text-strong);cursor:pointer;border-radius:8px;padding:6px 10px;font-family:inherit;font-size:13px}.user-selector:hover{border-color:var(--border-strong)}.user-selector:focus{outline:2px solid var(--brand);outline-offset:1px}.user-selector-loading{color:var(--text-muted);font-size:13px}main{flex:1}.page{flex-direction:column;gap:20px;max-width:1180px;margin:0 auto;padding:28px 20px;display:flex}.card{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:22px}.card h2{font-size:var(--type-card-title-size);font-weight:var(--type-card-title-weight);color:var(--text-strong);letter-spacing:var(--type-card-title-tracking);margin:0 0 18px}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.stat{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:4px;padding:14px 18px;display:flex}.stat span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:500}.stat strong{font-size:var(--type-stat-size);font-weight:var(--type-stat-weight);color:var(--text-strong);font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.activity-table{border-collapse:collapse;width:100%;font-size:14px}.activity-table-scroll{-webkit-overflow-scrolling:touch;margin:0 -22px;padding:0 22px;overflow-x:auto}.activity-table-scroll>.activity-table{min-width:max-content}.activity-table th{text-align:left;font-size:var(--type-eyebrow-size);font-weight:var(--type-eyebrow-weight);text-transform:uppercase;letter-spacing:var(--type-eyebrow-tracking);color:var(--text-muted);border-bottom:1px solid var(--border);padding:10px 12px}.activity-table td{border-bottom:1px solid var(--border);color:var(--text);font-variant-numeric:tabular-nums;font-family:var(--font-mono);padding:12px}.activity-table tr.clickable{cursor:pointer}.activity-table tr.clickable:hover td{background:var(--surface)}.capitalize{text-transform:capitalize}.activity-header{margin-bottom:4px}.activity-header h1{font-family:var(--font-display);color:var(--text-strong);text-transform:capitalize;letter-spacing:-.02em;margin:0 0 4px;font-size:26px;font-weight:600}.activity-date{color:var(--text-muted);margin:0;font-size:13px}.back-link{color:var(--brand);font-size:13px;font-weight:500}.back-link:hover{text-decoration:underline}.btn{cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-strava,.btn-primary{background:var(--brand);color:#fff}.btn-strava:hover:not(:disabled),.btn-primary:hover:not(:disabled){background:var(--brand-hover)}.btn-wahoo{color:#fff;background:#003a70}.btn-wahoo:hover:not(:disabled){background:#00264a}.wahoo-connected{color:#2563eb!important}.btn-secondary{background:var(--surface);color:var(--text-strong);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg);border-color:var(--border-strong)}.strava-sync-row{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:10px 12px;padding:10px 16px;display:flex}.strava-connected{color:var(--success);font-size:13px;font-weight:500}.sync-result{color:var(--text-muted);font-size:12px}.sync-error{color:var(--danger);font-size:12px}.sync-progress{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px}.strava-sync-row .sync-progress,.strava-sync-row .sync-result,.strava-sync-row .sync-error{flex:100%;order:1;margin:0;line-height:1.4}.streams-toggle{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:12px;display:inline-flex}.streams-toggle input{accent-color:var(--brand);cursor:pointer}.loading{text-align:center;color:var(--text-muted);padding:32px;font-size:14px}.empty-state{text-align:center;color:var(--text-muted);padding:28px;font-size:14px}.chart-empty{text-align:center;color:var(--text-muted);padding:40px;font-size:14px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-title{font-family:var(--font-display);font-size:var(--type-h1-size);font-weight:var(--type-h1-weight);letter-spacing:var(--type-h1-tracking);color:var(--text-strong);margin:0 0 2px}.page-subtitle{color:var(--text-muted);margin:0;font-size:13px}.card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.card-header h2{margin:0}.card-sub{color:var(--text-muted);margin:0 0 16px;font-size:12px}.date-range-picker{background:var(--surface);border:1px solid var(--border);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.range-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:7px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:background .15s,color .15s}.range-btn:hover{color:var(--text-strong)}.range-btn.active{background:var(--brand);color:#fff}.metric-toggle{gap:4px;display:inline-flex}.form-card{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:10px;padding:18px 20px;display:flex}.form-headline{justify-content:space-between;align-items:center;display:flex}.form-tsb{color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:14px;font-weight:600;font-family:var(--font-mono)}.form-pill{letter-spacing:.02em;text-transform:uppercase;font-variant-numeric:tabular-nums;border-left:3px solid #0000;border-radius:999px;align-items:center;padding:4px 12px 4px 10px;font-size:12px;font-weight:600;display:inline-flex}.form-fresh{color:#15803d;background:#22c55e22;border-left-color:#22c55e}.form-ready{color:#1e40af;background:#3b82f622;border-left-color:#3b82f6}.form-optimal{color:#374151;background:#f3f4f6;border-left-color:#94a3b8}.form-building{color:#854d0e;background:#eab30822;border-left-color:#eab308}.form-tired{color:#991b1b;background:#ef444422;border-left-color:#ef4444}.form-neutral{background:var(--surface);color:var(--text-muted);border-left-color:var(--border-strong)}[data-theme=dark] .form-fresh{color:#86efac;background:#22c55e33;border-left-color:#4ade80}[data-theme=dark] .form-ready{color:#93c5fd;background:#3b82f633;border-left-color:#60a5fa}[data-theme=dark] .form-optimal{color:#cbd5e1;background:#1f2937;border-left-color:#64748b}[data-theme=dark] .form-building{color:#fde047;background:#eab30833;border-left-color:#facc15}[data-theme=dark] .form-tired{color:#fca5a5;background:#ef444433;border-left-color:#f87171}.form-rec{color:var(--text);margin:0;font-size:14px;line-height:1.5}.form-meta{color:var(--text-muted);border-top:1px solid var(--border);flex-wrap:wrap;gap:16px;padding-top:4px;font-size:12px;display:flex}.form-meta strong{color:var(--text-strong);margin-right:4px;font-weight:600}.form-meta em{color:var(--text-muted);font-style:normal}.ftp-card{grid-template-columns:1fr 2fr;align-items:center;gap:24px;display:grid}.ftp-main{background:var(--brand-soft);border-radius:var(--radius-md);flex-direction:column;align-items:flex-start;gap:4px;padding:16px;display:flex}.ftp-label{color:var(--brand);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.ftp-value{font-size:var(--type-metric-hero-size);font-weight:var(--type-metric-hero-weight);color:var(--text-strong);font-variant-numeric:tabular-nums;font-family:var(--font-mono);line-height:var(--type-metric-hero-leading)}.ftp-confidence{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.ftp-detail{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ftp-detail>div{flex-direction:column;gap:2px;display:flex}.ftp-detail span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.ftp-detail strong{color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:16px;font-family:var(--font-mono)}@media (width<=720px){.ftp-card{grid-template-columns:1fr}}.section-metrics{border-left:3px solid var(--brand)}.section-range{font-variant-numeric:tabular-nums;font-family:var(--font-mono);color:var(--text-strong);font-weight:500}.section-duration{color:var(--text-muted)}.recharts-brush-traveller rect{fill:var(--brand)!important}.ride-timeseries{flex-direction:column;gap:12px;display:flex}.timeseries-toolbar{align-items:center;gap:12px;font-size:12px;display:flex}.timeseries-toolbar .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:500}.track-meta{color:var(--text-muted);margin-left:auto;font-size:11px}.track-stack-row{grid-template-columns:1fr 180px;gap:16px;display:grid}.track-stack{flex-direction:column;gap:16px;display:flex}.track{border-top:1px solid var(--border);padding-top:4px}.track:first-child{border-top:none;padding-top:0}.hover-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:6px;height:fit-content;padding:14px 16px;display:flex;position:sticky;top:80px}.hover-time{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700;font-family:var(--font-mono);color:var(--text-strong);letter-spacing:-.01em;margin-bottom:4px}.hover-row{justify-content:space-between;align-items:baseline;font-size:13px;display:flex}.hover-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:500}.hover-value{color:var(--text-strong);font-variant-numeric:tabular-nums;font-weight:600;font-family:var(--font-mono)}@media (width<=720px){.track-stack-row{grid-template-columns:1fr}.hover-panel{position:static}}.ride-map-wrap{flex-direction:column;gap:10px;display:flex}.ride-map-toolbar{flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}.ride-map-toolbar .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:500}.ride-map{border-radius:var(--radius-md);border:1px solid var(--border);width:100%;height:420px;overflow:hidden}.ride-map-legend{flex-wrap:wrap;gap:6px;margin-left:auto;display:inline-flex}.legend-pill{color:var(--text-muted);align-items:center;gap:4px;font-size:11px;display:inline-flex}.legend-dot{border-radius:999px;width:10px;height:10px;display:inline-block}[data-theme=dark] .leaflet-control-attribution,[data-theme=dark] .leaflet-control-zoom a{background:var(--surface-elevated)!important;color:var(--text)!important}[data-theme=dark] .leaflet-control-attribution a{color:var(--brand)!important}.heatmap{flex-direction:column;gap:12px;display:flex}.heatmap-stats{color:var(--text-muted);gap:18px;font-size:12px;display:flex}.heatmap-stats strong{color:var(--text-strong);font-variant-numeric:tabular-nums;font-family:var(--font-mono);margin-right:4px}.heatmap-grid{gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.heatmap-weekdays{flex-direction:column;gap:2px;padding-top:0;display:flex}.heatmap-weekday{height:12px;color:var(--text-muted);font-size:9px;line-height:12px}.heatmap-cells{gap:2px;display:flex}.heatmap-col{flex-direction:column;gap:2px;display:flex}.heatmap-cell{background:var(--border);cursor:default;border-radius:2px;width:12px;height:12px}.heatmap-lvl-0{background:var(--surface);border:1px solid var(--border);width:10px;height:10px}.heatmap-lvl-1{background:#fed7aa}.heatmap-lvl-2{background:#fdba74}.heatmap-lvl-3{background:#fb923c}.heatmap-lvl-4{background:var(--brand)}[data-theme=dark] .heatmap-lvl-0{background:var(--surface);border-color:var(--border)}[data-theme=dark] .heatmap-lvl-1{background:#7c2d1280}[data-theme=dark] .heatmap-lvl-2{background:#9a3412}[data-theme=dark] .heatmap-lvl-3{background:#c2410c}[data-theme=dark] .heatmap-lvl-4{background:var(--brand)}.heatmap-legend{color:var(--text-muted);align-self:flex-end;align-items:center;gap:4px;font-size:11px;display:flex}.ramp-headline{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:28px;margin-bottom:12px;padding-bottom:12px;display:flex}.ramp-headline>div{flex-direction:column;gap:2px;display:flex}.rr-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:500}.ramp-headline strong{color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:20px;font-family:var(--font-mono)}.ramp-zone{font-size:16px!important}.ramp-safe{color:#22c55e!important}.ramp-aggressive{color:#f59e0b!important}.ramp-high-risk{color:#dc2626!important}.ramp-detraining{color:var(--text-muted)!important}.predictor-controls{border-bottom:1px solid var(--border);grid-template-columns:1fr 1fr;gap:18px;margin-bottom:12px;padding-bottom:12px;display:grid}.predictor-controls label{grid-template-columns:max-content 1fr 40px;align-items:center;gap:10px;font-size:13px;display:grid}.predictor-controls label>span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:500}.predictor-controls input[type=range]{accent-color:var(--brand)}.predictor-controls label>strong{font-variant-numeric:tabular-nums;font-family:var(--font-mono);color:var(--text-strong);text-align:right;font-size:14px}@media (width<=720px){.predictor-controls{grid-template-columns:1fr}}.dup-toolbar{background:var(--brand-soft);border:1px solid var(--brand);border-radius:var(--radius-md);top:var(--navbar-height);z-index:5;justify-content:space-between;align-items:center;padding:12px 18px;font-size:14px;display:flex;position:sticky}.dup-toolbar strong{color:var(--text-strong);font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.dup-group-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;margin-bottom:8px;padding-bottom:8px;display:flex}.dup-group-header strong{color:var(--text-strong);font-size:15px}.dup-group-meta{color:var(--text-muted);font-size:12px}.dup-table tr.dup-keep{background:#22c55e14}.dup-table tr.dup-delete td{color:var(--text-muted);text-decoration:line-through;-webkit-text-decoration-color:var(--danger);text-decoration-color:var(--danger);text-decoration-thickness:1px}.dup-table input[type=radio]{accent-color:var(--brand);cursor:pointer}.dup-success{background:var(--brand-soft);border-color:var(--brand)}.dup-error{border-color:var(--danger);color:var(--danger)}.source-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.source-pill--strava{background:color-mix(in srgb, var(--source-strava) 13%, transparent);color:var(--source-strava)}.source-pill--wahoo{background:color-mix(in srgb, var(--source-wahoo) 13%, transparent);color:var(--source-wahoo)}.source-pill--fit{background:color-mix(in srgb, var(--source-fit) 13%, transparent);color:var(--source-fit)}.recommend-pill{color:var(--brand);text-transform:uppercase;letter-spacing:.05em;margin-left:6px;font-size:11px;font-weight:500}.peaks-table .num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.peaks-table .muted{color:var(--text-muted);font-size:13px}.peaks-table .peak-row.clickable{cursor:pointer;transition:background .1s}.peaks-table .peak-row.clickable:hover{background:var(--brand-soft)}.peaks-table .peak-row.selected{background:var(--brand-soft);outline:1px solid var(--brand)}.marker-pills{flex-wrap:wrap;gap:6px;display:flex}.marker-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.marker-pill.pr{background:color-mix(in srgb, var(--brand) 22%, transparent);color:var(--brand)}.marker-pill.ninety{background:color-mix(in srgb, var(--success) 18%, transparent);color:var(--success)}.marker-pill.season{background:color-mix(in srgb, var(--warn) 22%, transparent);color:var(--warn)}.climbs-table .climb-row.clickable{cursor:pointer;transition:background .1s}.climbs-table .climb-row.clickable:hover{background:var(--brand-soft)}.climbs-table .climb-row.selected{background:var(--brand-soft);outline:1px solid var(--brand)}.vam-pill{font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;font-family:var(--font-mono);border-radius:999px;padding:2px 8px;display:inline-flex}.vam-low{background:color-mix(in srgb, var(--text-muted) 18%, transparent);color:var(--text-muted)}.vam-mid{background:color-mix(in srgb, var(--success) 18%, transparent);color:var(--success)}.vam-high{background:color-mix(in srgb, var(--warn) 22%, transparent);color:var(--warn)}.vam-elite{background:color-mix(in srgb, var(--brand) 22%, transparent);color:var(--brand)}.profile-wrapper{overflow-x:auto}.profile-table{border-collapse:collapse;width:100%;font-size:14px}.profile-table th{text-align:left;font-size:var(--type-eyebrow-size);font-weight:var(--type-eyebrow-weight);text-transform:uppercase;letter-spacing:var(--type-eyebrow-tracking);color:var(--text-muted);border-bottom:1px solid var(--border);padding:10px 12px}.profile-table td{border-bottom:1px solid var(--border);color:var(--text);padding:12px}.profile-table td.num{font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.profile-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:4px 12px;font-size:11px;font-weight:600;display:inline-flex}.rider-type-card{background:var(--surface-elevated);border:1px solid var(--border);border-left:3px solid var(--brand);border-radius:var(--radius-md);flex-direction:column;gap:4px;padding:18px 22px;display:flex}.rider-type-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:500}.rider-type-value{color:var(--text-strong);letter-spacing:-.01em;font-size:26px;font-weight:700}.rider-type-desc{color:var(--text);margin:4px 0 0;font-size:13px}.wbal-wrapper{flex-direction:column;gap:8px;display:flex}.wbal-header{border-bottom:1px solid var(--border);gap:28px;padding-bottom:8px;display:flex}.wbal-header>div{flex-direction:column;gap:2px;display:flex}.wbal-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:500}.wbal-header strong{color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:18px;font-family:var(--font-mono)}.wbal-help{color:var(--text-muted);margin:0;font-size:12px}.stat-secondary{color:var(--text-muted);margin-left:4px;font-size:13px;font-weight:500}.recharts-cartesian-grid line{stroke:var(--border)}.recharts-cartesian-axis-tick-value{fill:var(--text-muted)}.recharts-tooltip-wrapper{outline:none}.recharts-default-tooltip{background:var(--surface-elevated)!important;border-color:var(--border)!important;border-radius:var(--radius-sm)!important;box-shadow:var(--shadow-md)!important}.recharts-tooltip-label,.recharts-tooltip-item{color:var(--text)!important}.landing-card{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:460px;box-shadow:var(--shadow-md);flex-direction:column;gap:20px;padding:28px;display:flex}.landing-tabs{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);gap:4px;padding:4px;display:flex}.landing-tab{border-radius:calc(var(--radius-md) - 4px);color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:10px 14px;font-size:14px;font-weight:600;transition:background .1s,color .1s}@media (pointer:coarse){.landing-tab{min-height:44px}}.landing-tab:hover:not(:disabled):not(.active){color:var(--text)}.landing-tab.active{background:var(--surface-elevated);color:var(--text-strong);box-shadow:var(--shadow-sm)}.landing-tab:disabled{cursor:not-allowed;opacity:.5}.landing-form{flex-direction:column;gap:16px;display:flex}.landing-form label{color:var(--text);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.landing-form input,.landing-form select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:10px 12px;font-family:inherit;font-size:15px;transition:border-color .1s,box-shadow .1s}@media (width<=768px){.landing-form input,.landing-form select{font-size:16px}}.landing-form input:focus,.landing-form select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.landing-form small{color:var(--text-muted);font-size:12px;font-weight:400}.landing-form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=480px){.landing-form-row{grid-template-columns:1fr}}.landing-submit{width:100%;margin-top:4px;padding:12px 16px;font-size:15px}.landing-error{border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent);padding:10px 12px;font-size:13px}.landing-footer{color:var(--text-muted);text-align:center;max-width:460px;margin:0;font-size:12px}.nav-signout{border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;padding:6px 12px;font-size:13px;font-weight:500;transition:color .1s,border-color .1s,background .1s}.nav-signout:hover{color:var(--text-strong);border-color:var(--brand);background:var(--brand-soft)}.settings-form{flex-direction:column;gap:20px;max-width:600px;display:flex}.settings-form label{color:var(--text);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.settings-form input,.settings-form select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:10px 12px;font-family:inherit;font-size:15px;transition:border-color .1s,box-shadow .1s}@media (width<=768px){.settings-form input,.settings-form select{font-size:16px}}.settings-form input:focus,.settings-form select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.settings-form input:disabled{background:var(--surface);color:var(--text-muted);cursor:not-allowed}.settings-form small{color:var(--text-muted);font-size:12px;font-weight:400}.settings-form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=600px){.settings-form-row{grid-template-columns:1fr}}.settings-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.settings-success{border:1px solid var(--success);border-radius:var(--radius-sm);color:var(--success);background:color-mix(in srgb, var(--success) 8%, transparent);padding:10px 12px;font-size:13px}.nav-settings{border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:6px 12px;font-size:13px;font-weight:500;transition:color .1s,border-color .1s,background .1s;color:var(--text-muted)!important}.nav-settings:hover{border-color:var(--brand);background:var(--brand-soft);text-decoration:none;color:var(--text-strong)!important}.card-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.card-header-row h2{margin:0}.card-toggle{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:12px;display:inline-flex}.card-toggle input[type=checkbox]{accent-color:var(--brand);cursor:pointer}.sprint-sets-table .sprint-row.clickable{cursor:pointer;transition:background .1s}.sprint-sets-table .sprint-row.clickable:hover{background:var(--brand-soft)}.sprint-sets-table .sprint-row.selected{background:var(--brand-soft);outline:1px solid var(--brand)}.decay-pill{font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;font-family:var(--font-mono);border-radius:999px;padding:2px 8px;display:inline-flex}.decay-low{background:color-mix(in srgb, var(--success) 18%, transparent);color:var(--success)}.decay-mid{background:color-mix(in srgb, var(--warn) 22%, transparent);color:var(--warn)}.decay-high{background:color-mix(in srgb, var(--danger) 22%, transparent);color:var(--danger)}.pacing-label{font-weight:600}.pacing-steady{color:var(--success)}.pacing-variable{color:var(--warn)}.pacing-punchy{color:var(--danger)}.readiness-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-elevated);box-shadow:var(--shadow-sm);flex-direction:column;gap:12px;padding:18px 22px;display:flex}.readiness-green{border-left:4px solid var(--success)}.readiness-yellow{border-left:4px solid var(--warn)}.readiness-orange{border-left:4px solid #f97316}.readiness-red{border-left:4px solid var(--danger)}.readiness-header{align-items:center;gap:18px;display:flex}.readiness-score{font-variant-numeric:tabular-nums;font-family:var(--font-mono);align-items:baseline;gap:2px;min-width:72px;display:flex}.readiness-score strong{color:var(--text-strong);font-size:36px;font-weight:600}.readiness-score span{color:var(--text-muted);font-size:14px}.readiness-header h3{margin:0 0 4px;font-size:15px}.readiness-rec{color:var(--text);margin:0;font-size:13px}.readiness-drivers{color:var(--text-muted);margin:0;padding-left:18px;font-size:13px}.readiness-drivers li{margin:2px 0}.readiness-meta{color:var(--text-muted);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:14px;padding-top:10px;font-size:12px;display:flex}.readiness-edit-link{color:var(--brand);margin-left:auto;font-weight:500}.wellness-form{flex-direction:column;gap:18px;max-width:720px;display:flex}.hooper-row{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.hooper-row legend{align-items:baseline;gap:10px;padding:0;display:flex}.hooper-row legend strong{color:var(--text);font-size:13px}.hooper-row legend small{color:var(--text-muted);font-size:12px}.hooper-scale{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.hooper-pip{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;padding:10px 0;font-size:14px;font-weight:500;transition:background .1s,color .1s,border-color .1s}.hooper-pip:hover{border-color:var(--brand)}.hooper-pip.selected{background:var(--brand);border-color:var(--brand);color:#fff}.wellness-biomarkers{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}@media (width<=600px){.wellness-biomarkers{grid-template-columns:1fr}}.wellness-biomarkers label,.wellness-notes{color:var(--text);flex-direction:column;gap:6px;font-size:13px;display:flex}.wellness-biomarkers input,.wellness-notes textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:10px 12px;font-family:inherit;font-size:15px}@media (width<=768px){.wellness-biomarkers input,.wellness-notes textarea{font-size:16px}}.wellness-biomarkers input:focus,.wellness-notes textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.wellness-biomarkers small,.wellness-notes small{color:var(--text-muted);font-size:12px}.wellness-notes-cell{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:300px;font-size:13px;overflow:hidden}.course-form{flex-direction:column;gap:16px;max-width:600px;display:flex}.course-form label{color:var(--text);flex-direction:column;gap:6px;font-size:13px;display:flex}.course-form input[type=text]{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:10px 12px;font-family:inherit;font-size:15px}.course-form input[type=file]{padding:8px 0;font-size:13px}.course-form small{color:var(--text-muted);font-size:12px}.compliance-table{font-size:13px}.compliance-row .muted{color:var(--text-muted)}.compliance-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.compliance-pill-on_target{background:color-mix(in srgb, var(--success) 18%, transparent);color:var(--success)}.compliance-pill-over{background:color-mix(in srgb, var(--warn) 22%, transparent);color:var(--warn)}.compliance-pill-under{background:color-mix(in srgb, var(--warn) 18%, transparent);color:var(--warn)}.compliance-pill-missed{background:color-mix(in srgb, var(--danger) 22%, transparent);color:var(--danger)}.compliance-pill-unplanned{background:color-mix(in srgb, var(--text-muted) 18%, transparent);color:var(--text-muted)}.compliance-pill-upcoming{background:color-mix(in srgb, var(--brand) 18%, transparent);color:var(--brand)}.compliance-pill-rest{background:var(--surface);color:var(--text-muted)}.plan-form{flex-direction:column;gap:16px;display:flex}.plan-form-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;display:grid}.plan-form label{color:var(--text);flex-direction:column;gap:6px;font-size:13px;display:flex}.plan-form input,.plan-form select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:10px 12px;font-family:inherit;font-size:15px}@media (width<=768px){.plan-form input,.plan-form select{font-size:16px}}.plan-form input:focus,.plan-form select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.plan-delete{padding:4px 10px;font-size:12px}.landing-link-btn{color:var(--brand);cursor:pointer;text-align:center;background:0 0;border:none;padding:4px 0;font-family:inherit;font-size:13px}.landing-link-btn:hover{text-decoration:underline}.nav-user{color:var(--text-strong);background:var(--surface);border:1px solid var(--border);cursor:default;text-overflow:ellipsis;white-space:nowrap;border-radius:8px;max-width:180px;padding:6px 10px;font-family:inherit;font-size:13px;overflow:hidden}.loading-screen{min-height:100vh;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.error-boundary{background:var(--surface-elevated);border:1px solid var(--danger);border-radius:var(--radius-md);border-left-width:4px;flex-direction:column;gap:12px;max-width:720px;margin:48px auto;padding:24px;display:flex}.error-boundary h2{color:var(--danger);margin:0;font-size:16px}.error-boundary-msg{color:var(--text);margin:0;font-size:14px}.error-boundary-actions{gap:8px;margin-top:8px;display:flex}.error-boundary-stack{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);max-height:240px;margin:12px 0 0;padding:12px;font-size:11px;overflow-x:auto}.nav-burger{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:38px;height:36px;padding:8px 10px;display:none}.nav-burger span{background:var(--text);border-radius:2px;width:18px;height:2px;transition:transform .15s,opacity .15s;display:block}.nav-burger.open span:first-child{transform:translateY(5px)rotate(45deg)}.nav-burger.open span:nth-child(2){opacity:0}.nav-burger.open span:nth-child(3){transform:translateY(-5px)rotate(-45deg)}@media (width<=880px){.nav-burger{display:flex}.nav-links{top:var(--navbar-height);background:var(--surface-elevated);border-bottom:1px solid var(--border);box-shadow:var(--shadow-md);z-index:9;max-height:calc(100vh - var(--navbar-height));flex-direction:column;align-items:stretch;gap:0;padding:8px 0;display:none;position:fixed;left:0;right:0;overflow-y:auto}.nav-links.open{display:flex}.nav-links a,.nav-links .nav-user,.nav-links .nav-settings,.nav-links .nav-signout{text-align:left;background:0 0;border:none;border-radius:0;width:100%;max-width:none;padding:12px 24px;font-size:15px}.nav-links a:hover,.nav-links .nav-settings:hover,.nav-links .nav-signout:hover{background:var(--surface);border:none;color:var(--text-strong)!important}.nav-links .nav-user{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:16px 24px 8px;font-size:12px}.nav-links .theme-toggle{width:36px;margin:8px 24px 12px}}.settings-section-heading{color:var(--text-strong);margin:0;font-size:15px;font-weight:600}.indoor-pill{text-transform:uppercase;letter-spacing:.04em;background:color-mix(in srgb, var(--text-muted) 14%, transparent);color:var(--text-muted);border-radius:999px;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.settings-privacy{border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:12px;margin:0;padding:14px 18px;display:flex}.settings-privacy legend{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:0 6px;font-size:12px;font-weight:600}.settings-privacy-hint{color:var(--text-muted);margin:0;font-size:12px}.danger-zone{border-color:color-mix(in srgb, var(--danger) 40%, var(--border))}.danger-zone .settings-section-heading{color:var(--danger)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 85%, black)}.settings-page{max-width:1200px}.settings-grid{grid-template-columns:1fr;gap:20px;display:grid}.settings-grid>.settings-form{max-width:100%}@media (width>=1024px){.settings-grid{grid-template-columns:1fr 1fr;grid-auto-flow:row}.settings-grid>:first-child{grid-area:1/1/span 2}.settings-grid>:nth-child(2){grid-area:1/2}.settings-grid>:nth-child(3){grid-area:2/2}.settings-grid>.settings-full{grid-column:1/-1}}.integration-row{flex-wrap:wrap;gap:12px;display:flex}.integration-row>*{flex:320px;min-width:0}.integration-chip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:10px;padding:10px 16px;font-size:13px;display:flex}.integration-chip-dot{color:var(--text-muted);font-size:14px;line-height:1}.integration-chip-label{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.integration-chip-action{font:inherit;color:var(--brand);cursor:pointer;background:0 0;border:none;padding:0;font-weight:500}.integration-chip-action:hover{text-decoration:underline}.integration-chip-dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:12px;line-height:1;transition:color .1s,background .1s}.integration-chip-dismiss:hover{color:var(--text-strong);background:var(--surface-elevated)}.activity-row-chevron{text-align:right;width:1%;color:var(--text-muted);font-size:18px;line-height:1;transition:color .1s,transform .1s;padding-left:4px!important;padding-right:14px!important}.activity-table-clickable tr.clickable:hover .activity-row-chevron{color:var(--text-strong);transform:translate(2px)}.compliance-empty{flex-direction:column;align-items:flex-start;gap:6px;padding:8px 0 4px;display:flex}.compliance-empty-headline{color:var(--text-strong);margin:0;font-size:15px;font-weight:600}.compliance-empty-help{color:var(--text-muted);margin:0;font-size:13px}.compliance-empty-cta{margin-top:8px;text-decoration:none}.compliance-empty-cta:hover{text-decoration:none}@media (pointer:coarse){.range-btn,.filter-pill,.metric-toggle .range-btn,.integration-chip button,.integration-chip-dismiss{min-height:44px;padding-top:0;padding-bottom:0}.range-toggle,.metric-toggle{padding:4px}}:where(button,a,input,select,textarea,[role=button],[role=radio],[tabindex]):focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--radius-sm)}.card-sub-meta{color:var(--text-muted);margin-top:-4px;margin-bottom:8px;font-size:12px}.card-sub-meta a{color:var(--text-muted);text-underline-offset:2px;text-decoration:underline}.card-sub-meta a:hover{color:var(--brand)}.landing-forgot-password{color:var(--brand,#0f766e);margin-top:6px;font-size:13px;font-weight:500;text-decoration:none;display:inline-block}.landing-forgot-password:hover{text-decoration:underline}.landing-role-hint{color:var(--text-secondary,#4b5563);background:#f9731614;border-radius:8px;margin:0 0 12px;padding:8px 12px;font-size:13px}.landing-card-heading{color:var(--text-strong);text-align:center;margin:0 0 16px;font-size:18px;font-weight:600}.landing-form-details{border:1px solid var(--border,#00000014);background:var(--card-bg-subtle,transparent);border-radius:8px;margin:4px 0 8px;padding:0}.landing-form-details-summary{cursor:pointer;color:var(--text-secondary,#4b5563);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;min-height:44px;padding:10px 12px;font-size:14px;font-weight:500;list-style:none;display:flex}.landing-form-details-summary::-webkit-details-marker{display:none}.landing-form-details-summary:before{content:"▸";width:12px;font-size:11px;transition:transform .12s;display:inline-block}.landing-form-details[open]>.landing-form-details-summary:before{transform:rotate(90deg)}.landing-form-details-summary:hover{color:var(--text-primary,#111827)}.landing-form-details-summary:focus-visible{outline:2px solid var(--accent,#f97316);outline-offset:2px}.landing-form-details-body{flex-direction:column;gap:12px;padding:4px 12px 12px;display:flex}@media (width<=480px){.landing-form-details-body{padding:4px 10px 10px}}.landing-form-feedback{margin-top:6px;font-size:13px;line-height:1.35;display:block}.landing-form-feedback-error{color:var(--danger,#b91c1c)}.landing-form input[aria-invalid=true]{border-color:var(--danger,#b91c1c)}.landing-consent{border:1px solid var(--color-border,#0000001f);border-radius:8px;flex-direction:column;gap:10px;margin:4px 0 0;padding:12px 14px;display:flex}.landing-consent-legend{color:var(--text-muted,#737373);padding:0 4px;font-size:13px;font-weight:600}.landing-consent-item{cursor:pointer;grid-template-columns:auto 1fr;align-items:start;gap:8px;font-size:13px;line-height:1.4;display:grid}.landing-consent-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand,#0f766e);cursor:pointer;margin-top:2px}.landing-consent-item a{color:var(--brand,#0f766e);text-underline-offset:2px;text-decoration:underline}.signup-page{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.signup-page-topnav{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 28px;display:flex}.signup-page-brand{font-family:var(--font-display,system-ui);letter-spacing:-.01em;color:var(--text-strong);font-size:17px;font-weight:700;text-decoration:none}.signup-page-back{color:var(--text);font-size:14px;text-decoration:none}.signup-page-back:hover{color:var(--brand);text-decoration:underline}.signup-page-main{flex:1;justify-content:center;align-items:flex-start;padding:clamp(32px,8vh,64px) 20px;display:flex}.signup-page-main>.landing-card{width:100%;max-width:480px}.auth-page{background:var(--bg,#f9fafb);justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.auth-card{background:var(--card-bg,#fff);border-radius:14px;width:100%;max-width:440px;padding:32px 28px;box-shadow:0 1px 3px #0000000f}[data-theme=dark] .auth-card{background:var(--card-bg-dark,#1f2937);box-shadow:0 1px 3px #0000004d}.auth-heading{color:var(--text-primary,#1f2937);margin:0 0 16px;font-size:22px;font-weight:600}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-form label{flex-direction:column;gap:6px;display:flex}.auth-form label>span{color:var(--text-secondary,#4b5563);font-size:13px;font-weight:500}.auth-form input{border:1px solid var(--border,#d1d5db);background:var(--input-bg,#fff);color:var(--text-primary,#1f2937);border-radius:8px;padding:10px 12px;font-size:15px}.auth-form input:focus{border-color:var(--brand,#0f766e);outline:none;box-shadow:0 0 0 3px #f9731626}.auth-intro{color:var(--text-secondary,#4b5563);margin:0 0 8px;font-size:14px}.auth-submit{margin-top:4px}.auth-error{color:#991b1b;background:#dc262614;border-radius:8px;padding:8px 12px;font-size:13px}[data-theme=dark] .auth-error{color:#fca5a5;background:#dc262633}.auth-success{color:var(--text-secondary,#4b5563);font-size:14px}.auth-success p{margin:0 0 12px}.auth-link{color:var(--brand,#0f766e);font-weight:500;text-decoration:none}.auth-link:hover{text-decoration:underline}.auth-link-btn{color:var(--brand,#0f766e);font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:500;text-decoration:underline}.auth-footer-link{text-align:center;margin:12px 0 0;font-size:13px}.auth-spinner{color:var(--text-secondary,#4b5563);font-size:14px}.verify-banner{color:#78350f;background:#fef3c7;border:1px solid #fcd34d;border-radius:10px;align-items:flex-start;gap:12px;margin:0 0 16px;padding:12px 16px;font-size:14px;display:flex}[data-theme=dark] .verify-banner{color:#fde68a;background:#fcd34d1f;border-color:#fcd34d66}.verify-banner-body{flex:1}.verify-banner-body strong{color:#78350f;margin-bottom:2px;display:block}[data-theme=dark] .verify-banner-body strong{color:#fde68a}.verify-banner-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.verify-banner-action{color:#78350f;cursor:pointer;background:#fff7ed;border:1px solid #fdba74;border-radius:6px;padding:6px 12px;font-size:13px;font-weight:500}.verify-banner-action:hover{background:#ffedd5}.verify-banner-action:disabled{opacity:.6;cursor:not-allowed}.verify-banner-dismiss{color:#78350f;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.verify-banner-status{margin-top:4px;font-size:13px}.verify-gate-modal-backdrop{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.verify-gate-modal{background:var(--card-bg,#fff);border-radius:12px;width:100%;max-width:440px;padding:24px;box-shadow:0 20px 25px -5px #0000001a}[data-theme=dark] .verify-gate-modal{background:var(--card-bg-dark,#1f2937)}.verify-gate-modal h2{margin:0 0 12px;font-size:18px;font-weight:600}.verify-gate-modal p{color:var(--text-secondary,#4b5563);margin:0 0 16px;font-size:14px}.verify-gate-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.verify-gate-modal-hint{color:#064e3b;background:#ecfdf5;border:1px solid #6ee7b7;border-radius:8px;margin:0 0 16px;padding:10px 12px;font-size:13px;line-height:1.5}[data-theme=dark] .verify-gate-modal-hint{color:#6ee7b7;background:#10b9811f;border-color:#10b98166}.landing-flash{color:#065f46;text-align:center;background:#ecfdf5;border:1px solid #6ee7b7;border-radius:10px;max-width:560px;margin:0 auto 16px;padding:10px 14px;font-size:14px}[data-theme=dark] .landing-flash{color:#6ee7b7;background:#6ee7b71f;border-color:#6ee7b766}.view-as-banner{background:var(--brand-soft);border-bottom:1px solid var(--border);color:var(--text);top:var(--navbar-height);z-index:9;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 24px;font-size:13px;display:flex;position:sticky}.view-as-banner-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.view-as-banner-name{color:var(--text-strong);font-weight:600}.view-as-banner-email{color:var(--text-muted);font-size:12px}.view-as-banner-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.view-as-banner-roster{color:var(--text-strong);border-radius:8px;align-items:center;min-height:32px;padding:6px 10px;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.view-as-banner-roster:hover{background:var(--surface-elevated);color:var(--brand)}.view-as-banner-roster:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.view-as-banner-clear{background:var(--surface-elevated);border:1px solid var(--border-strong);color:var(--text-strong);cursor:pointer;border-radius:8px;min-width:32px;min-height:32px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:500}.view-as-banner-clear:hover{background:var(--bg);border-color:var(--brand);color:var(--brand)}.view-as-banner-clear:focus-visible{outline:2px solid var(--brand);outline-offset:1px}@media (width<=640px){.view-as-banner{padding:10px 16px}.view-as-banner-email{display:none}.view-as-banner-actions{flex-direction:column;align-items:stretch;gap:6px;width:100%;margin-left:0}.view-as-banner-roster,.view-as-banner-clear{text-align:center;justify-content:center;width:100%}}.athlete-picker{border:1px solid var(--border);background:var(--surface);color:var(--text-strong);cursor:pointer;border-radius:8px;max-width:220px;padding:6px 10px;font-family:inherit;font-size:13px}.athlete-picker:hover{border-color:var(--border-strong)}.athlete-picker:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.athlete-picker:disabled{opacity:.6;cursor:progress}@media (width<=880px){.nav-mobile-utils .athlete-picker{width:100%;max-width:none}}.view-as-pill{background:var(--brand-soft);border:1px solid var(--brand);color:var(--brand);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:8px;min-height:28px;padding:5px 10px 5px 8px;font-size:12px;font-weight:500;line-height:1.2;transition:background .1s,border-color .1s,transform 80ms;display:inline-flex}.view-as-pill:hover{background:var(--brand);color:var(--surface);border-color:var(--brand)}.view-as-pill:hover .view-as-pill-action{color:var(--surface);border-color:#fff6}.view-as-pill:active{transform:translateY(1px)}.view-as-pill:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.view-as-pill-icon{flex:0 0 14px;width:14px;height:14px}.view-as-pill-text{white-space:nowrap;text-overflow:ellipsis;max-width:200px;overflow:hidden}.view-as-pill-text strong{font-weight:600}.view-as-pill-action{border:1px solid var(--brand);text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:500;transition:border-color .1s,color .1s}@media (width<=720px){.view-as-pill-action{display:none}.view-as-pill-text{max-width:140px}}.nav-shell{z-index:10;background:var(--surface-elevated);border-bottom:1px solid var(--border);position:sticky;top:0}.nav-top{height:var(--navbar-height);align-items:center;gap:24px;padding:0 24px;display:flex}.nav-shell .nav-brand{color:var(--text-strong);letter-spacing:-.01em;flex-shrink:0;align-items:center;gap:12px;font-size:15px;font-weight:600;text-decoration:none;display:flex}.nav-shell .nav-brand:hover{text-decoration:none}.nav-shell .nav-brand-wordmark{width:auto;height:28px;display:block}.nav-shell .nav-brand-wordmark--dark,[data-theme=dark] .nav-shell .nav-brand-wordmark--light{display:none}[data-theme=dark] .nav-shell .nav-brand-wordmark--dark{display:block}.nav-sections{flex:1;align-items:center;gap:4px;display:flex}.nav-section-tab{height:var(--navbar-height);color:var(--text-muted);letter-spacing:-.005em;border-bottom:2px solid #0000;align-items:center;padding:0 14px;font-size:15px;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s;display:inline-flex;position:relative}.nav-section-tab:hover{color:var(--text-strong);text-decoration:none}.nav-section-tab.active{color:var(--text-strong);border-bottom-color:var(--brand);font-weight:600}.nav-section-tab:focus-visible{outline:2px solid var(--brand);outline-offset:-4px;border-radius:4px}.nav-utils{flex-shrink:0;align-items:center;gap:10px;display:flex}.nav-utils .nav-user{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-family:var(--font-mono)}.nav-utils .nav-user[data-has-display-name=true]{text-transform:none;letter-spacing:normal;font-family:inherit;font-size:13px}.nav-utils .nav-signout{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:6px 10px;font-family:inherit;font-size:13px;transition:background .15s,border-color .15s,color .15s}.nav-utils .nav-signout:hover{background:var(--bg);border-color:var(--border-strong);color:var(--text-strong)}.nav-cmdk-chip{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;letter-spacing:.02em;border-radius:8px;align-items:center;gap:4px;padding:4px 8px;font-family:inherit;font-size:11px;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.nav-cmdk-chip:hover{background:var(--bg);border-color:var(--border-strong);color:var(--text-strong)}.nav-cmdk-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nav-cmdk-chip__key{border:1px solid var(--border);background:var(--bg);min-width:16px;height:18px;font-family:var(--font-mono);color:var(--text);border-radius:4px;justify-content:center;align-items:center;padding:0 4px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.nav-subtabs{background:var(--surface);border-top:1px solid var(--border);scrollbar-width:thin;align-items:center;gap:2px;height:44px;padding:0 24px;display:flex;overflow-x:auto}.nav-subtab{color:var(--text-muted);white-space:nowrap;border-radius:6px;padding:8px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:background .12s,color .12s}.nav-subtab:hover{color:var(--text-strong);background:var(--surface-elevated);text-decoration:none}.nav-subtab.active{color:var(--text-strong);background:var(--brand-soft);font-weight:600}.nav-subtab:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.nav-burger{border:1px solid var(--border);cursor:pointer;width:44px;height:44px;color:var(--text);background:0 0;border-radius:8px;justify-content:center;align-items:center;margin-left:auto;padding:0;display:none}.nav-burger__icon{width:20px;height:20px;transition:color .15s;display:block}.nav-burger:hover{color:var(--text-strong);border-color:var(--border-strong)}.nav-burger:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.nav-mobile-drawer{top:var(--navbar-height);background:var(--surface-elevated);border-bottom:1px solid var(--border);box-shadow:var(--shadow-md);z-index:9;max-height:calc(100vh - var(--navbar-height));padding:8px 0 16px;display:none;position:fixed;left:0;right:0;overflow-y:auto}.nav-mobile-section{border-bottom:1px solid var(--border)}.nav-mobile-section:last-of-type{border-bottom:none}.nav-mobile-section-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;background:var(--surface);padding:14px 24px;font-size:12px;font-weight:700;list-style:none}.nav-mobile-section-header::-webkit-details-marker{display:none}.nav-mobile-section-header:after{content:"";border-left:4px solid #0000;border-right:4px solid #0000;border-top:5px solid var(--text-muted);vertical-align:middle;width:0;height:0;margin-left:8px;transition:transform .15s;display:inline-block;transform:rotate(-90deg)}.nav-mobile-section[open]>.nav-mobile-section-header:after{transform:rotate(0)}.nav-mobile-pages{margin:0;padding:0 0 8px;list-style:none}.nav-mobile-pages li a{color:var(--text);padding:12px 32px;font-size:15px;text-decoration:none;display:block}.nav-mobile-pages li a:hover{background:var(--surface);color:var(--text-strong);text-decoration:none}.nav-mobile-pages li a.active{color:var(--brand);background:var(--brand-soft);font-weight:600}.nav-mobile-utils{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;padding:16px 24px 0;display:flex}.nav-mobile-utils .nav-user-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;width:100%;font-size:12px}.nav-mobile-utils .nav-signout{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:6px 10px;font-family:inherit;font-size:13px}.nav-mobile-utils .nav-signout:hover{background:var(--bg);border-color:var(--border-strong);color:var(--text-strong)}@media (width<=880px){.nav-burger{display:flex}.nav-sections,.nav-utils,.nav-subtabs{display:none}.nav-mobile-drawer{display:block}.nav-top{gap:12px}}.chord-toast{z-index:250;background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-family:var(--font-mono);color:var(--text-strong);pointer-events:none;padding:8px 14px;font-size:13px;animation:1s forwards chord-toast-pop;position:fixed;top:84px;right:24px}@keyframes chord-toast-pop{0%{opacity:0;transform:translateY(-6px)}15%{opacity:1;transform:translateY(0)}80%{opacity:1}to{opacity:0;transform:translateY(-2px)}}@media (prefers-reduced-motion:reduce){.chord-toast{animation:1s forwards chord-toast-fade}@keyframes chord-toast-fade{0%{opacity:0}15%{opacity:1}80%{opacity:1}to{opacity:0}}}.consent-banner{z-index:95;background:var(--surface-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;animation:.22s consent-banner-in;display:flex;position:fixed;bottom:16px;left:16px;right:16px}@keyframes consent-banner-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.consent-banner{animation:none}}.consent-banner__copy{flex:320px;min-width:0}.consent-banner__title{color:var(--text-strong);margin:0 0 4px;font-size:14px;font-weight:600}.consent-banner__body{color:var(--text-muted);margin:0;font-size:12.5px;line-height:1.5}.consent-banner__link{color:var(--brand);text-underline-offset:2px;text-decoration:underline}.consent-banner__link:hover,.consent-banner__link:focus-visible{color:var(--brand-hover);text-decoration-thickness:2px}.consent-banner__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.consent-banner__btn{min-height:36px}.consent-banner__live{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=560px){.consent-banner{padding:12px 14px;bottom:8px;left:8px;right:8px}.consent-banner__actions{justify-content:stretch;width:100%}.consent-banner__btn{flex:auto}}.consent-modal__backdrop{z-index:100;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.consent-modal{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;max-width:480px;max-height:calc(100vh - 32px);box-shadow:var(--shadow-lg);color:var(--text);outline:none;flex-direction:column;animation:.16s consent-modal-in;display:flex}@keyframes consent-modal-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.consent-modal{animation:none}}.consent-modal__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.consent-modal__title{color:var(--text-strong);margin:0;font-size:15px;font-weight:600}.consent-modal__close{border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;color:var(--text-muted);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.consent-modal__close:hover{background:var(--brand-soft);color:var(--text-strong)}.consent-modal__close:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.consent-modal__body{flex:1;padding:14px 16px 16px;overflow-y:auto}.consent-modal__intro{color:var(--text-muted);margin:0 0 12px;font-size:13px;line-height:1.5}.consent-modal__list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.consent-modal__item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.consent-modal__row{cursor:pointer;align-items:flex-start;gap:12px;min-height:44px;padding:10px 12px;display:flex}.consent-modal__row:hover{background:var(--brand-soft)}.consent-modal__item--locked{align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.consent-modal__checkbox{cursor:pointer;width:18px;height:18px;accent-color:var(--brand);flex-shrink:0;margin-top:2px}.consent-modal__row-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.consent-modal__row-label{color:var(--text-strong);font-size:13px;font-weight:600}.consent-modal__row-desc{color:var(--text-muted);font-size:11.5px;line-height:1.45}.consent-modal__locked{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border);flex-shrink:0;align-self:center;padding:4px 8px;font-size:11px;font-weight:600}.consent-modal__footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.kbd-help-trigger{z-index:80;-webkit-backdrop-filter:blur(8px);width:40px;height:40px;color:var(--text);font-family:var(--font-mono);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;font-size:16px;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-flex;position:fixed;bottom:16px;right:16px}[data-theme=light] .kbd-help-trigger{color:var(--text-muted);background:#0000000d;border-color:#0000001a}.kbd-help-trigger:hover{color:var(--text-strong);background:#ffffff1f;border-color:#ffffff2e}[data-theme=light] .kbd-help-trigger:hover{color:var(--text-strong);background:#0000001a;border-color:#0000002e}.kbd-help-trigger:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.kbd-help-overlay{z-index:220;background:#0006;justify-content:center;align-items:center;padding:16px;animation:.12s cmdk-fade-in;display:flex;position:fixed;inset:0}[data-theme=dark] .kbd-help-overlay{background:#0009}.kbd-help-panel{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(420px,100%);box-shadow:var(--shadow-md);padding:20px 24px}.kbd-help-title{color:var(--text-strong);margin:0 0 16px;font-size:16px;font-weight:600}.kbd-help-section{margin-bottom:16px}.kbd-help-section h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 8px;font-size:12px;font-weight:600}.kbd-help-table{border-collapse:collapse;width:100%}.kbd-help-table td{color:var(--text);vertical-align:middle;padding:6px 0;font-size:13px}.kbd-help-table td:first-child{white-space:nowrap;width:130px}.kbd-help-table kbd{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border-strong);color:var(--text-strong);text-align:center;border-radius:4px;min-width:24px;min-height:24px;margin-right:4px;padding:2px 7px;font-size:11px;display:inline-block}.kbd-help-tip{background:var(--surface);border-radius:var(--radius-sm);color:var(--text-muted);margin:16px 0 0;padding:10px 12px;font-size:12px}.kbd-help-close-row{justify-content:flex-end;margin-top:8px;display:flex}.kbd-help-close{border:1px solid var(--border-strong);border-radius:var(--radius-sm);height:32px;color:var(--text);cursor:pointer;background:0 0;padding:0 14px;font-size:13px}.kbd-help-close:hover{background:var(--surface)}@media (prefers-reduced-motion:reduce){.kbd-help-overlay{animation:none}}.ios-install-hint{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:240;background:var(--surface-elevated);border:1px solid var(--border);border-left:3px solid var(--brand);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-family:var(--font-sans);color:var(--text-strong);align-items:flex-start;gap:12px;padding:12px 14px;animation:.22s forwards ios-install-hint-slide-up;display:flex;position:fixed}.ios-install-hint__body{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.ios-install-hint__title{color:var(--text-strong);font-size:14px;font-weight:600}.ios-install-hint__detail{color:var(--text);font-size:13px;line-height:1.4}.ios-install-hint__close{appearance:none;border-radius:var(--radius-sm);color:var(--text-muted,var(--text));cursor:pointer;background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:background-color .12s,color .12s;display:inline-flex}.ios-install-hint__close:hover,.ios-install-hint__close:focus-visible{background:var(--surface-hover,#0f766e14);color:var(--text-strong)}.ios-install-hint__close:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@keyframes ios-install-hint-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.ios-install-hint{animation:none}}.sw-update-prompt{bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:260;background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-family:var(--font-sans);color:var(--text-strong);align-items:center;gap:16px;max-width:360px;padding:12px 14px 12px 18px;font-size:14px;animation:.22s forwards sw-update-prompt-slide-in;display:flex;position:fixed;right:24px}.sw-update-prompt__text{white-space:nowrap;font-weight:600}.sw-update-prompt__actions{flex-shrink:0;gap:8px;display:inline-flex}.sw-update-prompt__button{appearance:none;border-radius:var(--radius-sm);font:inherit;cursor:pointer;border:1px solid #0000;padding:6px 12px;font-size:13px;font-weight:600;transition:background-color .12s,border-color .12s,color .12s}.sw-update-prompt__button--primary{background:var(--brand);color:#fff}.sw-update-prompt__button--primary:hover,.sw-update-prompt__button--primary:focus-visible{background:var(--brand-strong,#134e48)}.sw-update-prompt__button--ghost{color:var(--text);border-color:var(--border);background:0 0}.sw-update-prompt__button--ghost:hover,.sw-update-prompt__button--ghost:focus-visible{background:var(--surface-hover,#0f766e14);color:var(--text-strong)}.sw-update-prompt__button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@keyframes sw-update-prompt-slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.sw-update-prompt{animation:none}}@media (width<=480px){.sw-update-prompt{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));flex-wrap:wrap;max-width:none}}
