/* RunCoach · quiet, legible surfaces for a day of training or a long analysis. */
:root {
  color-scheme: dark;
  --rc-bg: #101719;
  --rc-surface: #192225;
  --rc-raised: #202c30;
  --rc-line: #304045;
  --rc-ink: #f0f4ef;
  --rc-muted: #a0afaf;
  --rc-dim: #7f9495;
  --rc-accent: #bce4b4;
  --rc-accent-ink: #172b1b;
  --rc-radius: 20px;
}
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body.rc-app { background: var(--rc-bg); color: var(--rc-ink); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 14px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
.rc-app *, .rc-app *::before, .rc-app *::after { box-sizing: border-box; }
.rc-app button, .rc-app a, .rc-app input, .rc-app textarea, .rc-app select { -webkit-tap-highlight-color: transparent; }
.rc-app button, .rc-app summary { touch-action: manipulation; }
.rc-app button:disabled { opacity: .5; cursor: not-allowed; }
.rc-app :focus-visible { outline: 2px solid var(--rc-accent); outline-offset: 4px; }
.rc-app ::selection { background: #bce4b43b; }
.rc-app .text-slate-100, .rc-app .text-slate-200, .rc-app .text-white { color: var(--rc-ink); }
.rc-app .text-slate-300 { color: #cad5d2; }
.rc-app .text-slate-400 { color: var(--rc-muted); }
.rc-app .text-slate-500, .rc-app .text-slate-600 { color: var(--rc-dim); }
.rc-app .text-sky-400, .rc-app .text-sky-300 { color: var(--rc-accent); }
.rc-app .card { background: var(--rc-surface); border: 1px solid #ffffff0a; border-radius: var(--rc-radius); padding: 24px; box-shadow: none; min-width: 0; }
.rc-app .card-title { color: var(--rc-muted); font-size: 11px; font-weight: 650; letter-spacing: .1em; line-height: 1.5; text-transform: uppercase; }
.rc-app .badge { border-radius: 6px; font-size: 10px; font-weight: 650; letter-spacing: .025em; padding: 4px 7px; line-height: 1.4; }
.rc-app .badge.bg-sky-700 { background: #bce4b41a; color: var(--rc-accent); }
.rc-app .badge.bg-emerald-600 { background: #60d3ad1a; color: #8de0bf; }
.rc-app .badge.bg-slate-600 { background: #3c4d50; color: #d9e1dd; }
.rc-app .badge.bg-amber-600, .rc-app .badge.bg-amber-500 { background: #e7b77b20; color: #f1cc98; }
.rc-app .badge.bg-red-700, .rc-app .badge.bg-red-600 { background: #e4908b20; color: #f2a49c; }
.rc-app .btn, .rc-app .btn-primary, .rc-app .btn-ghost { min-height: 40px; border-radius: 10px; padding: 8px 14px; font-size: 12px; font-weight: 600; justify-content: center; transition: background .16s, border-color .16s; }
.rc-app .btn-primary { background: var(--rc-accent); color: var(--rc-accent-ink); border: 1px solid transparent; }
.rc-app .btn-primary:hover { background: #d1f0c9; }
.rc-app .btn-ghost { background: #ffffff05; color: #dce4df; border: 1px solid var(--rc-line); }
.rc-app .btn-ghost:hover { background: #ffffff0c; border-color: #596b6f; }
.rc-app .field { min-height: 46px; padding: 10px 12px; color: var(--rc-ink); background: var(--rc-bg); border: 1px solid #3c4a4e; border-radius: 10px; font-size: 15px; }
.rc-app .field:focus { border-color: var(--rc-accent); outline: none; box-shadow: 0 0 0 3px #bce4b414; }
.rc-app .label { color: #b4c1bd; font-size: 12px; }
.rc-app .help-btn { position: relative; width: 16px; height: 16px; margin-left: 6px; border: 1px solid #647b7b; border-radius: 50%; color: #a5b9b3; font-size: 10px; cursor: pointer; }
.rc-app .help-btn::before { content: ''; position: absolute; inset: -9px; }
.rc-app .help-btn:hover, .rc-app .help-btn[aria-expanded=true] { color: var(--rc-accent); border-color: var(--rc-accent); background: #bce4b412; }
.rc-app #help-pop { color: #dce5e0; background: #263337; border-color: #526369; border-radius: 12px; padding: 14px 16px; font-size: 12px; line-height: 1.65; box-shadow: 0 16px 60px #0007; max-height: min(60dvh, 340px); overflow-y: auto; z-index: 10000; }
.rc-topbar { position: sticky; top: 0; z-index: 40; height: 76px; border-bottom: 1px solid #ffffff09; background: #101719f5; backdrop-filter: blur(20px); }
.rc-topbar-inner { height: 100%; max-width: 1600px; margin: auto; padding: 0 36px; display: flex; align-items: center; gap: 32px; }
.rc-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--rc-ink); text-decoration: none; font-size: 19px; font-weight: 720; letter-spacing: -.8px; white-space: nowrap; }
.rc-brand-mark { display: inline-flex; align-items: center; justify-content: center; width: 33px; height: 33px; border-radius: 11px; background: var(--rc-accent); color: var(--rc-accent-ink); }
.rc-brand-mark svg { width: 23px; height: 23px; }
.rc-nav { display: flex; align-items: center; gap: 5px; margin-inline: auto; }
.rc-nav a { display: flex; align-items: center; gap: 7px; min-height: 40px; padding: 9px 15px; color: var(--rc-muted); border-radius: 10px; text-decoration: none; font-size: 13px; font-weight: 550; }
.rc-nav a:hover { color: var(--rc-ink); background: #ffffff05; }
.rc-nav a[aria-current=page] { color: var(--rc-ink); background: #ffffff09; }
.rc-account { position: relative; margin-left: auto; }
.rc-account summary { display: flex; align-items: center; gap: 9px; min-height: 42px; padding: 3px 0 3px 6px; cursor: pointer; list-style: none; color: #c1ccc7; }
.rc-account summary::-webkit-details-marker { display: none; }
.rc-avatar { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: #2f3e3e; color: #d6e5d3; font-size: 12px; font-weight: 650; }
.rc-account-chevron { width: 14px; height: 14px; opacity: .6; }
.rc-account-menu { position: absolute; top: 52px; right: 0; width: 226px; padding: 8px; background: #243135; border: 1px solid #405156; border-radius: 14px; box-shadow: 0 18px 40px #0006; }
.rc-account-heading { padding: 8px 10px 12px; border-bottom: 1px solid #ffffff12; margin-bottom: 5px; font-size: 11px; color: var(--rc-muted); }
.rc-account-menu a, .rc-account-menu button { display: flex; width: 100%; min-height: 43px; align-items: center; padding: 9px 10px; border-radius: 8px; font-size: 13px; text-align: left; color: #e6eee7; }
.rc-account-menu a:hover, .rc-account-menu button:hover { background: #ffffff08; }
.rc-page { max-width: 1600px; margin: auto; padding: 32px 36px 48px; }
.rc-page-intro { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 26px; }
.rc-eyebrow { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--rc-accent); font-weight: 650; margin-bottom: 5px; }
.rc-page-title { font-size: clamp(26px, 2.2vw, 36px); font-weight: 580; letter-spacing: -1.15px; line-height: 1.2; }
.rc-page-description { margin-top: 8px; color: var(--rc-muted); font-size: 13px; }
.rc-date { color: var(--rc-muted); font-size: 12px; }
.rc-dashboard-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; align-items: start; }
.rc-app #dashboard-main { padding: 0; margin: 0; max-width: none; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rc-app #dashboard-main > [data-view-hidden=true] { display: none !important; }
.rc-app .rc-summary { display: grid; grid-template-columns: 1.2fr 1fr 1fr; grid-column: 1 / -1; gap: 0; padding: 22px 24px; background: transparent; border: 1px solid var(--rc-line); border-radius: var(--rc-radius); }
.rc-summary-item { min-width: 0; display: flex; gap: 12px; align-items: center; padding: 0 20px; border-left: 1px solid var(--rc-line); }
.rc-summary-item:first-child { border: 0; padding-left: 0; }
.rc-summary-item:last-child { padding-right: 0; }
.rc-summary-label { font-size: 10px; color: var(--rc-muted); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.rc-summary-value { display: block; font-size: 21px; font-weight: 580; letter-spacing: -.5px; margin-top: 3px; line-height: 1.3; }
.rc-summary-value .badge { font-size: 11px; }
.rc-app #hdr-readiness { font-size: 15px; letter-spacing: -.3px; text-transform: capitalize; }
.rc-app #today-workout { background: linear-gradient(115deg, #23332b 0%, #1c2a28 65%, #192629); border: 1px solid #bbdfb42e; padding: 26px; }
.rc-app #workout-title { font-size: 26px; line-height: 1.2; letter-spacing: -.7px; font-weight: 580; }
.rc-app #workout-type { margin-right: 4px; }
.rc-app #workout-body { margin-top: 20px; }
.rc-app #workout-desc { color: #d0ddd1; font-size: 14px; }
.rc-app #workout-steps { height: 8px; margin-top: 22px; border-radius: 3px; }
.rc-app .seg-warmup, .rc-app .seg-cooldown { background: #6c9890; }
.rc-app .seg-run { background: var(--rc-accent); }
.rc-app .seg-recovery { background: #3f5952; }
.rc-app #workout-steps-head { font-size: 9px; margin-top: 16px; }
.rc-app #workout-step-list { margin-top: 8px; font-size: 12px; color: #a9bfb2; line-height: 1.8; }
.rc-app #workout-meta { padding-top: 12px; border-top: 1px solid #bce4b41a; font-size: 12px; }
.rc-app #workout-why summary { min-height: 34px; display: flex; align-items: center; font-size: 12px; gap: 8px; }
.rc-app #workout-why summary::before { content: '+'; font-size: 17px; }
.rc-app #workout-why[open] summary::before { content: '−'; }
.rc-app #workout-why p { font-size: 12px; }
.rc-app #next-race-body > div:first-child { font-size: 17px; letter-spacing: -.3px; }
.rc-app #next-race-body .text-4xl { font-size: 44px; font-weight: 500; letter-spacing: -2px; }
.rc-app #plan-strip { gap: 7px; padding-bottom: 4px; margin-top: 20px; }
.rc-app .plan-cell { position: relative; border: 1px solid var(--rc-line); border-radius: 12px; padding: 12px 9px; min-height: 128px; background: #ffffff02; }
.rc-app .plan-cell:hover { background: #ffffff06; border-color: #5f7972; }
.rc-app .plan-cell.border-sky-500\/70 { border-color: #bce4b477; background: #bce4b408; }
.rc-app .plan-cell > div:first-child { font-size: 9px; letter-spacing: .06em; }
.rc-app .plan-cell > div:first-child span { display: block; font-size: 23px; line-height: 1.4; color: #e6eee7; letter-spacing: -.5px; margin-bottom: 8px; }
.rc-app .plan-cell .badge { font-size: 8px !important; padding: 3px 5px !important; }
.rc-app .plan-cell > div:nth-child(3) { margin-top: 9px; font-size: 11px; }
.rc-app .plan-cell > div:nth-child(4) { font-size: 9px; margin-top: 5px; }
.rc-app #plan-note { margin-top: 16px; max-width: 720px; font-size: 11px; line-height: 1.7; }
.rc-app table { border-collapse: collapse; }
.rc-app #runs-table th { font-size: 10px; padding-bottom: 12px; color: var(--rc-dim); }
.rc-app #runs-table td { padding-top: 15px; padding-bottom: 15px; border-top: 1px solid #ffffff08; font-size: 12px; }
.rc-app #runs-table tbody tr { border: 0; }
.rc-app #runs-table td:nth-child(2) a { color: #e0e9e1; text-decoration: none; }
.rc-app #runs-table tr:hover td { background: #ffffff03; }
.rc-app #runs-table a:hover { color: var(--rc-accent); }
.rc-app #load-stats, .rc-app #fitness-stats { border-top: 1px solid var(--rc-line); padding-top: 18px; gap: 14px; }
.rc-app #load-stats dd, .rc-app #fitness-stats dd { font-size: 20px; font-weight: 550; margin-top: 6px; }
.rc-app #load-stats dt, .rc-app #fitness-stats dt { font-size: 10px; }
.rc-app #load-stats .help-btn { width: 13px; height: 13px; font-size: 8px; }
.rc-app #sync-footer { margin: 22px 0 0; padding: 0; max-width: none; font-size: 10px; color: var(--rc-dim); }
.rc-coach-panel { position: sticky; top: 100px; height: calc(100dvh - 128px); min-height: 470px; max-height: 940px; display: flex; flex-direction: column; background: var(--rc-surface); border: 1px solid var(--rc-line); border-radius: var(--rc-radius); overflow: hidden; }
.rc-coach-head { display: flex; align-items: center; gap: 10px; padding: 18px 18px 16px; border-bottom: 1px solid #ffffff0b; }
.rc-coach-mark { width: 30px; height: 30px; display: inline-flex; justify-content: center; align-items: center; border-radius: 10px; background: #bce4b414; color: var(--rc-accent); flex-shrink: 0; }
.rc-coach-title { font-size: 13px; font-weight: 650; }
.rc-coach-caption { font-size: 10px; color: var(--rc-muted); margin-top: 1px; }
.rc-icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 9px; color: var(--rc-muted); flex-shrink: 0; }
.rc-icon-btn:hover { background: #ffffff09; color: var(--rc-ink); }
.rc-icon-btn svg { width: 17px; height: 17px; }
.rc-coach-head .rc-icon-btn:first-of-type { margin-left: auto; }
.rc-coach-panel iframe { width: 100%; height: 100%; flex: 1; min-height: 0; border: 0; background: var(--rc-surface); }
.rc-coach-panel[data-focus=true] { position: fixed; inset: 88px max(24px, calc((100vw - 1080px) / 2)) 24px; z-index: 70; height: auto; min-height: 0; max-height: none; box-shadow: 0 0 0 100vmax #080e11cc; }
.rc-mobile-nav { display: none; }
.rc-app #modal { z-index: 90; backdrop-filter: blur(7px); background: #080e11a8; }
.rc-app #modal > .card { padding: 30px; max-height: calc(100dvh - 48px); overflow-y: auto; border: 1px solid #455451; box-shadow: 0 25px 100px #0006; }
.rc-app #modal-close { width: 36px; height: 36px; border-radius: 50%; font-size: 25px; line-height: 1; right: 10px; top: 10px; }
.rc-app #modal-close:hover { background: #ffffff08; }
.rc-detail-dialog { position: fixed; inset: 0; z-index: 80; display: flex; align-items: center; justify-content: center; padding: 24px; background: #080e11c9; backdrop-filter: blur(8px); }
.rc-detail-dialog[hidden] { display: none; }
.rc-detail-surface { display: flex; flex-direction: column; width: min(1150px, 100%); height: min(900px, 100%); min-height: 0; overflow: hidden; border-radius: 22px; border: 1px solid #4a5d60; background: var(--rc-bg); box-shadow: 0 20px 90px #0008; }
.rc-detail-head { display: flex; align-items: center; gap: 12px; padding: 12px 20px; border-bottom: 1px solid var(--rc-line); }
.rc-detail-head strong { font-size: 13px; font-weight: 600; }
.rc-detail-head a { margin-left: auto; color: var(--rc-muted); font-size: 11px; }
.rc-detail-dialog iframe { width: 100%; height: 100%; flex: 1; min-height: 0; border: 0; }
.rc-app .rc-subpage-main { padding: 36px 24px 64px; }
.rc-app.rc-settings .rc-subpage-main { max-width: 1040px; }
.rc-app.rc-settings #profile-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 24px; }
.rc-app.rc-settings #profile-form > * { margin-top: 0; }
.rc-app.rc-settings #sec-about { grid-column: 1 / -1; }
.rc-app.rc-settings #form-error, .rc-app.rc-settings .rc-profile-actions { grid-column: 1 / -1; }
.rc-app.rc-settings .rc-profile-actions { position: sticky; bottom: 16px; z-index: 15; padding: 12px 16px; border: 1px solid #4b6259; border-radius: 14px; background: #203029f5; backdrop-filter: blur(12px); }
.rc-settings-intro { max-width: 640px; margin-bottom: 24px; }
.rc-settings-sections { display: flex; gap: 7px; flex-wrap: wrap; margin: 22px 0; }
.rc-settings-sections a { font-size: 11px; color: #bdc9c2; padding: 7px 11px; border: 1px solid var(--rc-line); border-radius: 8px; }
.rc-app.rc-settings .readonly { min-height: 46px; padding: 10px 12px; border-radius: 10px; background: #ffffff04; font-size: 16px; }
.rc-app.rc-settings .note { color: var(--rc-dim); font-size: 11px; margin-top: 8px; line-height: 1.65; }
.rc-app.rc-settings .card-title { margin-bottom: 22px; }
.rc-app.rc-run .rc-subpage-main { max-width: 1180px; }
.rc-app.rc-run #run-title { font-size: clamp(26px, 4vw, 38px); letter-spacing: -1px; font-weight: 580; margin-top: 8px; }
.rc-app.rc-run #run-date { font-size: 11px; color: var(--rc-accent); letter-spacing: .07em; }
.rc-app.rc-run #run-device, .rc-app.rc-run #run-planned { font-size: 12px; margin-top: 6px; }
.rc-app.rc-run #run-header { margin-bottom: 26px; }
.rc-app.rc-run #tiles { gap: 10px; }
.rc-app.rc-run .tile { padding: 18px; border-radius: 15px; background: var(--rc-surface); border: 1px solid #ffffff07; }
.rc-app.rc-run .tile-label { color: var(--rc-muted); font-size: 9px; letter-spacing: .08em; }
.rc-app.rc-run .tile-value { margin-top: 9px; font-size: 24px; font-weight: 550; letter-spacing: -.5px; }
.rc-app.rc-run #comment-card { border-left: 2px solid #bce4b477; }
.rc-app.rc-run #comment-text { font-size: 13px; line-height: 1.9; }
.rc-app.rc-run .toggle { min-height: 36px; background: #ffffff05; border: 1px solid #435451; border-radius: 9px; color: #c1cec4; }
.rc-app.rc-run .toggle.on { color: var(--rc-accent-ink); background: var(--rc-accent); border-color: transparent; }
.rc-app.rc-run #laps-table td { padding-top: 12px; padding-bottom: 12px; font-size: 12px; border-top: 1px solid #ffffff09; }
.rc-app.rc-run #readout { top: 85px; background: #283932f5; border: 1px solid #526858; border-radius: 10px; }
.rc-app.rc-run #laps-card { overflow-x: auto; }
.rc-app.rc-chat { background: var(--rc-bg); }
.rc-app.rc-chat .msg.coach { color: #dce6db; font-family: inherit; font-size: 15px; line-height: 1.85; }
.rc-app.rc-chat .msg.user { background: #2e4138; border-radius: 16px 16px 4px 16px; font-size: 14px; padding: 12px 16px; color: #e4eee1; }
.rc-app.rc-chat .msg.coach strong { color: #f2f6ed; }
.rc-app.rc-chat .msg.coach a { color: var(--rc-accent); }
.rc-app.rc-chat #composer-box { background: #26342e; border: 1px solid #4d6357; border-radius: 16px; }
.rc-app.rc-chat #composer-box:focus-within { border-color: var(--rc-accent); }
.rc-app.rc-chat #send-btn { width: 36px; height: 36px; background: var(--rc-accent); color: var(--rc-accent-ink); border-radius: 11px; }
.rc-app.rc-chat #message-input { font-size: 16px; color: #e5eee0; }
.rc-app.rc-chat #file-preview .chip { background: #3a4c41; }
.rc-app.rc-chat .actions { opacity: 1; margin-top: 7px; }
.rc-app.rc-chat .actions button { min-height: 32px; color: var(--rc-dim); font-size: 10px; }
.rc-app.rc-chat .turn.run-comment .msg.coach { border-color: #8eb983; }
.rc-chat-intro-mark { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; margin: 0 auto 20px; background: #bce4b412; border: 1px solid #bce4b425; border-radius: 16px; color: var(--rc-accent); }
.rc-chat-intro-mark svg { width: 25px; height: 25px; }
.rc-chat-prompts { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 24px; }
.rc-chat-prompts button { border: 1px solid #43544a; border-radius: 10px; padding: 11px 13px; font-size: 12px; color: #cad8c7; text-align: left; }
.rc-chat-prompts button:hover { border-color: var(--rc-accent); background: #bce4b409; }
.rc-app.rc-embedded { background: var(--rc-surface); }
.rc-app.rc-embedded > header { display: none; }
.rc-app.rc-embedded.rc-chat #thread { padding: 24px 18px; }
.rc-app.rc-embedded.rc-chat #empty-state { padding-top: 12px; }
.rc-app.rc-embedded.rc-chat #empty-state .text-2xl { font-size: 22px; letter-spacing: -.6px; line-height: 1.3; font-weight: 550; }
.rc-app.rc-embedded.rc-chat #empty-state p { font-size: 12px; line-height: 1.7; }
.rc-app.rc-embedded.rc-chat .msg.coach { font-size: 13px; line-height: 1.9; }
.rc-app.rc-embedded.rc-chat .msg.user { font-size: 12px; max-width: 95%; }
.rc-app.rc-embedded.rc-chat .rc-chat-prompts { display: grid; gap: 8px; margin-top: 22px; }
.rc-app.rc-embedded.rc-chat .rc-chat-prompts button { font-size: 11px; padding: 10px 12px; }
.rc-app.rc-embedded.rc-chat .safe-bottom { padding: 0 14px 16px; }
.rc-app.rc-embedded.rc-chat .rc-chat-note { font-size: 9px; margin-top: 10px; }
.rc-app.rc-embedded.rc-chat #footer-model { display: none; }
.rc-app.rc-embedded.rc-run .rc-subpage-main { padding: 28px; }
.rc-app.rc-embedded.rc-run #readout { top: 8px; }
.rc-app.rc-login main { background: var(--rc-surface); border-color: #3c4e43; border-radius: 24px; padding: 32px; }
.rc-app.rc-login .btn { background: var(--rc-accent); color: var(--rc-accent-ink); min-height: 46px; }
.rc-app.rc-login h1 { font-size: 28px; letter-spacing: -1px; }
.rc-app.rc-login main > p:first-of-type { margin-top: 9px; margin-bottom: 28px; }
@media (min-width: 768px) { .rc-app #dashboard-main > .md\:col-span-2 { grid-column: span 2; } .rc-app #dashboard-main > .md\:col-span-3 { grid-column: span 3; } }
@media (min-width: 1100px) and (max-width: 1350px) { .rc-dashboard-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; } .rc-page { padding-inline: 24px; } .rc-app .card { padding: 20px; } .rc-app .plan-cell { padding-inline: 6px; } }
@media (max-width: 1099px) {
  .rc-dashboard-layout { grid-template-columns: minmax(0, 1fr); }
  .rc-coach-panel { display: none; }
  .rc-coach-panel[data-open=true] { position: fixed; inset: 88px 24px 24px; height: auto; min-height: 0; max-height: none; display: flex; z-index: 70; box-shadow: 0 0 0 100vmax #080e11cc; }
  .rc-coach-panel[data-focus=true] { inset: 88px 24px 24px; }
  .rc-page { padding: 28px 24px 40px; }
  .rc-nav { gap: 0; }
  .rc-nav a { padding-inline: 12px; }
}
@media (min-width: 1100px) { .rc-coach-mobile-close { display: none; } }
@media (max-width: 767px) {
  html { scroll-padding-top: 76px; }
  .rc-topbar { height: 64px; }
  .rc-topbar-inner { padding: 0 20px; gap: 16px; }
  .rc-brand { font-size: 18px; }
  .rc-brand-mark { width: 30px; height: 30px; border-radius: 10px; }
  .rc-nav { display: none; }
  .rc-account summary { gap: 6px; }
  .rc-account summary #user-name { display: none; }
  .rc-page { padding: 26px 16px 112px; }
  .rc-page-intro { margin-bottom: 23px; align-items: start; }
  .rc-page-title { font-size: 29px; letter-spacing: -1px; }
  .rc-page-description { max-width: 260px; font-size: 12px; line-height: 1.7; }
  .rc-eyebrow { font-size: 10px; margin-bottom: 6px; }
  .rc-date { font-size: 10px; max-width: 100px; text-align: right; padding-top: 3px; }
  .rc-app #dashboard-main { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .rc-app #dashboard-main > * { grid-column: 1 / -1; }
  .rc-app .card { padding: 20px; border-radius: 17px; }
  .rc-app .rc-summary { padding: 18px 14px; gap: 0; grid-template-columns: 1.4fr 1fr 1fr; border-radius: 16px; }
  .rc-summary-item { gap: 8px; padding: 0 12px; }
  .rc-summary-item:first-child { gap: 8px; }
  .rc-summary-item svg { width: 29px; height: 29px; flex-shrink: 0; }
  .rc-summary-label { font-size: 8px; letter-spacing: .045em; }
  .rc-summary-value { font-size: 19px; }
  .rc-app #hdr-readiness { font-size: 12px; max-width: 76px; line-height: 1.6; }
  .rc-summary-value .badge { font-size: 8px; padding: 3px 5px; }
  .rc-summary-item .help-btn { width: 12px; height: 12px; font-size: 8px; margin-left: 3px; }
  .rc-app #today-workout { padding: 22px 20px; }
  .rc-app #workout-title { font-size: 24px; }
  .rc-app #workout-type { font-size: 9px; }
  .rc-app #workout-body { margin-top: 18px; }
  .rc-app #workout-desc { font-size: 13px; }
  .rc-app #workout-meta { font-size: 11px; }
  .rc-app #workout-status { font-size: 9px; }
  .rc-app #plan-strip { margin-right: -20px; padding-right: 20px; gap: 7px; scroll-snap-type: x proximity; scrollbar-width: none; }
  .rc-app #plan-strip::-webkit-scrollbar { display: none; }
  .rc-app .plan-cell { width: 94px; min-height: 139px; scroll-snap-align: start; }
  .rc-app .plan-cell > div:first-child { font-size: 9px; }
  .rc-app .plan-cell > div:first-child span { font-size: 26px; }
  .rc-app .plan-cell .badge { font-size: 9px !important; }
  .rc-app .plan-cell > div:nth-child(3) { font-size: 11px; }
  .rc-app #plan-note { font-size: 10px; }
  .rc-mobile-nav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); position: fixed; bottom: 0; left: 0; right: 0; padding: 10px 8px calc(10px + env(safe-area-inset-bottom)); z-index: 60; border-top: 1px solid #364641; background: #16201cf5; backdrop-filter: blur(20px); }
  .rc-mobile-nav a { display: flex; flex-direction: column; gap: 4px; align-items: center; min-height: 43px; color: #8fa299; font-size: 9px; font-weight: 550; letter-spacing: .02em; border-radius: 9px; }
  .rc-mobile-nav a svg { width: 20px; height: 20px; margin-bottom: 1px; }
  .rc-mobile-nav a[aria-current=page] { color: var(--rc-accent); }
  .rc-mobile-nav a[aria-current=page] svg { stroke-width: 2.2; }
  .rc-mobile-nav a:hover { background: #ffffff05; }
  .rc-coach-panel[data-open=true], .rc-coach-panel[data-focus=true] { inset: 0 0 calc(64px + env(safe-area-inset-bottom)); border: 0; border-radius: 0; height: auto; min-height: 0; box-shadow: none; z-index: 55; }
  .rc-coach-head { min-height: 64px; padding: 11px 18px; }
  .rc-coach-panel[data-focus=true] { bottom: 0; z-index: 75; }
  .rc-coach-panel[data-focus=true] .rc-coach-mobile-close { display: flex; }
  .rc-app #modal { padding: 0; align-items: end; }
  .rc-app #modal > .card { width: 100%; max-width: none; padding: 28px 24px calc(28px + env(safe-area-inset-bottom)); border-radius: 24px 24px 0 0; max-height: calc(100dvh - 40px); }
  .rc-detail-dialog { padding: 0; }
  .rc-detail-surface { height: 100%; border: 0; border-radius: 0; }
  .rc-detail-head { padding: 10px 16px; min-height: 60px; }
  .rc-detail-head a { font-size: 10px; }
  .rc-app.rc-embedded.rc-run .rc-subpage-main { padding: 24px 16px 40px; }
  .rc-app .rc-subpage-main { padding: 28px 16px 48px; }
  .rc-app.rc-settings #profile-form { display: block; }
  .rc-app.rc-settings #profile-form > * { margin-top: 16px; }
  .rc-app.rc-settings .rc-profile-actions { bottom: 10px; padding: 10px; }
  .rc-app.rc-settings .field { font-size: 16px; }
  .rc-settings-intro .rc-page-title { font-size: 29px; }
  .rc-settings-sections { flex-wrap: nowrap; overflow-x: auto; margin-right: -16px; padding-right: 16px; padding-bottom: 3px; }
  .rc-settings-sections a { white-space: nowrap; }
  .rc-app.rc-run .tile { padding: 16px; }
  .rc-app.rc-run .tile-value { font-size: 22px; }
  .rc-app.rc-run #readout { top: 70px; }
  .rc-app.rc-chat .safe-bottom { padding-inline: 12px; }
  .rc-app.rc-chat #thread { padding-inline: 20px; }
  .rc-app.rc-chat .msg.coach { font-size: 14px; }
  .rc-app.rc-chat .rc-chat-note { font-size: 10px; }
  .rc-app.rc-chat .rc-topbar .rc-brand { font-size: 16px; }
  .rc-app.rc-embedded.rc-chat #empty-state { padding-top: 20px; }
  .rc-app.rc-embedded.rc-chat .msg.coach { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .rc-app *, .rc-app *::before, .rc-app *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
.rc-mobile-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rc-back-link { margin-left: auto; color: var(--rc-muted); font-size: 12px; }
.rc-back-link:hover { color: var(--rc-ink); }
.rc-topbar .rc-back-link + .rc-account { margin-left: 14px; }
.rc-coach-mark svg { width: 18px; height: 18px; }
.rc-detail-dialog { width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; border: 0; color: var(--rc-ink); }
.rc-detail-dialog:not([open]) { display: none; }
.rc-coach-panel[data-focus=true] .rc-coach-mobile-close { display: flex; }
.rc-coach-panel[data-focus=true] .rc-coach-head { padding-inline: 24px; }
.rc-skip-link { position: fixed; top: -80px; left: 12px; z-index: 11000; padding: 10px 18px; background: var(--rc-accent); color: var(--rc-accent-ink); border-radius: 8px; }
.rc-skip-link:focus { top: 10px; }
.rc-frame-status { padding: 20px; color: var(--rc-muted); font-size: 12px; }
.rc-frame-status[hidden] { display: none; }
.rc-app #dashboard-error { grid-column: 1 / -1; padding: 16px 20px; border-radius: 14px; border: 1px solid #e7b77b66; color: #f1cc98; background: #e7b77b10; font-size: 12px; }
.rc-app #dashboard-error[hidden] { display: none; }
.rc-app #dashboard-error button { min-height: 36px; padding: 6px 12px; border: 1px solid #e7b77b66; border-radius: 8px; margin-left: 10px; }
.rc-app #history-error { margin: 0 18px; padding: 12px; border: 1px solid #a4845c; border-radius: 10px; color: #f1cc98; font-size: 12px; }
.rc-app #history-error[hidden] { display: none; }
@media (max-width: 767px) { .rc-back-link { font-size: 0; } .rc-back-link::before { content: attr(data-mobile-label); font-size: 12px; } .rc-topbar .rc-back-link + .rc-account { margin-left: 0; } }
.rc-app.rc-chat-focused #thread, .rc-app.rc-chat-focused #composer { max-width: 760px; }
.rc-app.rc-chat-focused #thread { padding-inline: 36px; }
.rc-app.rc-chat-focused .msg.coach { font-size: 15px; }
.rc-app.rc-chat-focused #empty-state { padding-top: 50px; }
.rc-app.rc-chat-focused .rc-chat-prompts { display: flex; }
.rc-app.rc-coach-is-focused { overflow: hidden; }
.rc-app.rc-run-is-open { overflow: hidden; }
.rc-detail-dialog::backdrop { background: transparent; }
@media (max-width: 767px) {
  .rc-keyboard-open .rc-mobile-nav { display: none; }
  .rc-keyboard-open .rc-coach-panel[data-open=true], .rc-coach-panel[data-focus=true] { bottom: var(--rc-keyboard-inset, 0px); }
  .rc-app.rc-chat-focused #thread { padding-inline: 20px; }
  .rc-app.rc-chat-focused .msg.coach { font-size: 14px; }
}
.rc-dashboard-layout > div:first-child { display: flex; flex-direction: column; min-width: 0; }
.rc-app #sync-footer { order: -1; margin: 0 0 18px; min-height: 30px; padding: 0 !important; }
.rc-app #sync-footer .btn-ghost { min-height: 30px; font-size: 10px; padding: 4px 9px; }
.rc-app .rc-all-runs { color: var(--rc-muted); font-size: 10px; padding: 7px 0 7px 8px; }
.rc-app .rc-all-runs:hover { color: var(--rc-accent); }
.rc-app [data-active-view=today] #runs-table tbody tr:nth-child(n+6) { display: none; }
.rc-app [data-active-view=progress] .rc-all-runs { display: none; }
.rc-app [data-active-view=plan] #plan-week { order: 1; }
.rc-app [data-active-view=plan] #next-race { order: 2; }
.rc-app [data-active-view=plan] #goals-card { order: 3; }
.rc-app [data-active-view=plan] > .card:last-child { order: 4; }
@media (min-width: 768px) { .rc-app #dashboard-main[data-active-view=plan] > #goals-card { grid-column: span 2; } }
@media (max-width: 767px) {
  .rc-app #sync-footer { margin-bottom: 13px; gap: 8px; flex-wrap: nowrap; }
  .rc-app #sync-footer #sync-text { font-size: 9px; flex: 1; min-width: 0; }
  .rc-app #sync-footer .btn-ghost { flex-shrink: 0; }
}
.rc-app .btn, .rc-app .btn-primary, .rc-app .btn-ghost, .rc-nav a, .rc-account summary { min-height: 44px; }
.rc-icon-btn { position: relative; }
.rc-icon-btn::before { position: absolute; content: ''; inset: -4px; }
.rc-app #modal-close { width: 44px; height: 44px; }
.rc-app.rc-chat #send-btn { width: 40px; height: 40px; }
.rc-app.rc-chat #composer-box label:has(#file-input) { width: 40px; height: 40px; }
.rc-app #sync-btn { min-height: 36px; }
@media (max-width: 767px) { .rc-mobile-nav a { min-height: 44px; } }
.rc-app #dashboard-main[data-load-state=failed] > [data-views] { display: none !important; }
.rc-app #history-error { margin-top: 18px; line-height: 1.7; }
.rc-app #history-retry { padding: 4px 10px; min-height: 36px; margin-left: 5px; border: 1px solid #a4845c; border-radius: 8px; white-space: nowrap; }
.rc-topbar { flex-shrink: 0; }
.rc-app.rc-chat #messages { min-height: 0; }
.rc-app.rc-chat .safe-bottom { flex-shrink: 0; }
.rc-app.rc-chat #scroll-latest-btn { z-index: 5; background: #344b3d; border: 1px solid #5e7761; }
.rc-app #dashboard-main[data-load-state=loading] > [data-views] { display: none !important; }
.rc-app .rc-loading-status { display: flex; align-items: center; gap: 12px; min-height: 112px; color: var(--rc-muted); font-size: 13px; }
.rc-app #dashboard-loading[hidden], .rc-app #run-loading[hidden] { display: none; }
.rc-loading-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--rc-accent); box-shadow: 0 0 0 5px #bce4b410; }
/* Warnings are sentences: wrapping must take precedence over compact status-chip styling. */
.rc-app #flags-banner, .rc-app #flags, .rc-app #garmin-banner, .rc-app #profile-banner, .rc-app #zones-banner, .rc-app .profile-change { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.rc-app #flags .badge { max-width: 100%; min-width: 0; white-space: normal; line-height: 1.65; padding: 6px 9px; }
.rc-app #flags-banner { overflow: hidden; }
.rc-app.rc-chat #composer-box:focus-within { border-color: var(--rc-accent); box-shadow: 0 0 0 3px #bce4b418; }
.rc-app.rc-chat #composer-box #message-input:focus-visible { outline: none; box-shadow: none; }
/* Activity archive: search, cursor paging and readable rows without changing Today's short list. */
.rc-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.rc-activity-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.rc-activity-intro { margin-top: 6px; font-size: 12px; color: var(--rc-muted); }
.rc-activity-search { width: min(290px, 100%); }
.rc-activity-search input { font-size: 13px; min-height: 44px; }
.rc-activity-table-wrap { overflow-x: auto; max-width: 100%; }
.rc-app #activity-table th { font-size: 10px; padding-bottom: 12px; color: var(--rc-dim); }
.rc-app #activity-table td { padding-top: 15px; padding-bottom: 15px; border-top: 1px solid #ffffff08; font-size: 12px; }
.rc-app #activity-table td:nth-child(2) a { color: #e0e9e1; text-decoration: none; }
.rc-app #activity-table a:hover { color: var(--rc-accent); }
.rc-app #activity-table tr:hover td { background: #ffffff03; }
.rc-activity-footer { margin-top: 18px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.rc-activity-footer p { color: var(--rc-muted); font-size: 11px; }
.rc-app #activity-more[hidden], .rc-inline-error[hidden] { display: none; }
.rc-inline-error { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 16px; padding: 14px; border: 1px solid #bd91584d; border-radius: 12px; color: #f1cc98; font-size: 12px; }
.rc-app #activity:focus-visible { outline-offset: 6px; }
@media (max-width: 767px) { .rc-activity-toolbar { display: block; } .rc-activity-search { display: block; width: 100%; margin-top: 16px; } .rc-activity-search input { font-size: 16px; } }
/* Race day is a separate guide, with a restrained finish-line cue. */
.rc-app #race-day { position: relative; overflow: hidden; padding: 30px; background: linear-gradient(120deg, #293b31, #1d292a); border-color: #bce4b44a; }
.rc-app #race-day::after { content: ''; position: absolute; width: 210px; height: 210px; top: -34px; right: -30px; transform: rotate(-15deg); background: repeating-conic-gradient(#d4e9cc1a 0% 25%, transparent 0% 50%) 0 0 / 30px 30px; mask-image: linear-gradient(90deg, transparent, #000); pointer-events: none; }
.rc-race-day-eyebrow { display: flex; gap: 8px; align-items: center; color: var(--rc-accent); font-size: 11px; font-weight: 650; text-transform: uppercase; letter-spacing: .13em; }
.rc-checkered-mark { width: 17px; height: 17px; border: 1px solid #bce4b455; border-radius: 2px; background: repeating-conic-gradient(#bce4b4cc 0% 25%, transparent 0% 50%) 0 0 / 8px 8px; }
.rc-app #race-day h2 { position: relative; z-index: 1; max-width: 80%; font-size: clamp(26px, 3vw, 38px); line-height: 1.2; letter-spacing: -1px; font-weight: 580; margin: 16px 0 12px; }
.rc-app #race-day-meta { position: relative; z-index: 1; color: #d2decf; font-size: 13px; }
.rc-race-day-copy { position: relative; z-index: 1; color: #a8bcab; font-size: 13px; margin-top: 14px; }
.rc-race-day-actions { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.rc-race-clock { display: flex; flex-wrap: wrap; align-items: baseline; gap: 7px 12px; margin-top: 20px; color: var(--rc-accent); }
.rc-race-clock strong { font-size: clamp(25px, 3.2vw, 36px); font-weight: 500; line-height: 1.25; letter-spacing: -1px; }
.rc-race-clock > span { font-size: 12px; color: var(--rc-muted); }
.rc-race-clock-caption { margin-top: 7px; color: var(--rc-muted); font-size: 11px; line-height: 1.8; overflow-wrap: anywhere; }
.rc-race-clock-caption .help-btn { margin-left: 6px; }
.rc-race-clock[hidden], .rc-race-clock-caption[hidden], #race-day-result-link[hidden] { display: none !important; }
.rc-race-message { position: relative; z-index: 1; margin-top: 22px; font-size: 17px; font-weight: 500; letter-spacing: -.25px; line-height: 1.55; }
.rc-app #race-day .rc-race-day-copy { margin-top: 6px; }
.rc-race-day-copy p:empty { display: none; }
.rc-race-day-copy p + p { margin-top: 7px; }
.rc-race-day-copy a { display: inline-flex; align-items: center; min-height: 44px; color: var(--rc-accent); text-decoration: underline; text-underline-offset: 4px; }
.rc-app #race-day #race-elev-form { position: relative; z-index: 1; margin-top: 20px; padding-top: 20px; border-top: 1px solid #ffffff18; }
.rc-race-form-note { color: var(--rc-muted); font-size: 11px; line-height: 1.8; }
.rc-app #race-elev-form select, .rc-app #race-form select { max-width: 100%; min-width: 0; }
.rc-app #dashboard-main[data-race-day=true][data-active-view=today] > #today-workout, .rc-app #dashboard-main[data-race-day=true][data-active-view=today] > #next-race { display: none !important; }
.rc-next-race-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--rc-line); }
.rc-race-coach-link { font-size: 11px; color: var(--rc-muted); min-height: 40px; }
.rc-race-coach-link:hover { color: var(--rc-accent); }
.rc-app.rc-strategy-is-open { overflow: hidden; }
.rc-strategy-surface { display: flex; flex-direction: column; width: min(760px, 100%); max-height: min(900px, 100%); overflow: hidden; border: 1px solid #4a5d60; border-radius: 22px; background: var(--rc-bg); box-shadow: 0 20px 90px #0008; }
.rc-strategy-surface .rc-detail-head { flex-shrink: 0; }
.rc-strategy-surface .rc-detail-head button { margin-left: auto; font-size: 25px; }
.rc-strategy-body { padding: 28px; overflow-y: auto; overscroll-behavior: contain; }
.rc-strategy-body #strategy-title { font-size: clamp(25px, 4vw, 33px); margin-top: 14px; }
.rc-strategy-body #strategy-summary { margin-top: 16px; font-size: 14px; color: #c6d6c8; line-height: 1.85; white-space: pre-wrap; }
.rc-strategy-body #strategy-watch-status { margin-top: 20px; font-size: 12px; color: var(--rc-accent); }
.rc-strategy-body #strategy-warnings { margin-top: 20px; color: #efc98f; font-size: 12px; line-height: 1.8; }
.rc-strategy-body #strategy-warnings:not(:empty) { padding: 14px 18px 14px 30px; background: #dba6580d; border: 1px solid #dba65844; border-radius: 12px; list-style: disc; }
.rc-app #strategy-segments { display: grid; gap: 12px; margin-top: 24px; }
.rc-app #strategy-segments > li { padding: 16px 18px; border: 1px solid var(--rc-line); border-radius: 14px; background: var(--rc-surface); }
.rc-app #strategy-segments summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 18px; list-style: none; min-height: 44px; }
.rc-app #strategy-segments summary::-webkit-details-marker { display: none; }
.rc-app #strategy-segments summary strong { display: block; font-size: 15px; font-weight: 550; margin-top: 5px; }
.rc-strategy-range { font-size: 10px; letter-spacing: .06em; color: var(--rc-accent); }
.rc-app #strategy-segments p { color: #adbfaf; font-size: 13px; line-height: 1.8; margin-top: 12px; white-space: pre-wrap; }
.rc-strategy-targets { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 13px; }
.rc-strategy-targets span { font-size: 11px; padding: 5px 9px; border-radius: 7px; background: #bce4b410; color: #d3e2cb; }
.rc-strategy-footer { display: flex; justify-content: space-between; gap: 12px; flex-shrink: 0; padding: 16px 28px; border-top: 1px solid var(--rc-line); background: var(--rc-surface); }
.rc-app #strategy-loading { padding: 22px 0; color: var(--rc-muted); font-size: 13px; }
.rc-app #strategy-loading[hidden], .rc-app #strategy-content[hidden], .rc-app #strategy-error[hidden] { display: none; }
@media (max-width: 767px) {
  .rc-app #race-day { padding: 24px 20px; }
  .rc-app #race-day::after { width: 160px; height: 160px; background-size: 24px 24px; }
  .rc-app #race-day h2 { max-width: 90%; font-size: 29px; }
  .rc-race-day-copy { max-width: 260px; font-size: 12px; }
  .rc-app #race-day-meta { font-size: 12px; line-height: 1.8; max-width: 270px; }
  .rc-strategy-surface { width: 100%; max-height: 100%; height: 100%; border: 0; border-radius: 0; }
  .rc-strategy-body { padding: 24px 20px; flex: 1; }
  .rc-strategy-footer { padding: 14px 20px calc(14px + env(safe-area-inset-bottom)); }
  .rc-strategy-footer .btn { padding-inline: 12px; font-size: 11px; }
}
.rc-app #strategy-segments summary > span:last-child { font-size: 0; }
.rc-app #strategy-segments summary > span:last-child::after { content: '+'; font-size: 18px; color: var(--rc-muted); }
.rc-app #strategy-segments details[open] summary > span:last-child::after { content: '−'; }
/* Keep the archive anchor alignable below the sticky header while results are loading or short. */
.rc-app #activity { min-height: calc(100dvh - 120px); }
/* Honest proportional strips. The 44px hit row surrounds a narrower visual band. */
.rc-saved-guide { position: relative; z-index: 1; min-width: 0; margin-top: 24px; padding-top: 18px; border-top: 1px solid #bce4b425; }
.rc-saved-guide[hidden], .rc-strategy-visual[hidden], .rc-strip-controls[hidden], .rc-step-inspector[hidden] { display: none !important; }
.rc-saved-guide-heading > span { display: block; color: var(--rc-muted); font-size: 9px; text-transform: uppercase; letter-spacing: .13em; }
.rc-saved-guide-heading > strong { display: block; margin-top: 8px; color: #e1ebdb; font-size: 14px; font-weight: 550; line-height: 1.6; }
.rc-app .rc-inspect-track, .rc-app #workout-steps.rc-inspect-track { display: flex; gap: 0; height: 44px; margin-top: 8px; border-radius: 0; overflow: visible; min-width: 0; isolation: isolate; }
.rc-app .rc-inspect-track.hidden, .rc-app #workout-steps.rc-inspect-track.hidden { display: none; }
.rc-app .rc-inspect-part { position: relative; display: block; min-width: 0; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; cursor: pointer; --part-color: var(--rc-accent); }
.rc-app .rc-inspect-part::before { content: ''; position: absolute; inset: 14px 0; background: var(--part-color); box-shadow: inset -1px 0 #17242266; }
.rc-app .rc-inspect-part:first-child::before { border-radius: 4px 0 0 4px; }
.rc-app .rc-inspect-part:last-child::before { border-radius: 0 4px 4px 0; box-shadow: none; }
.rc-app .rc-inspect-part:only-child::before { border-radius: 4px; }
.rc-app .rc-inspect-part.seg-warmup, .rc-app .rc-inspect-part.seg-cooldown { --part-color: #6c9890; background: transparent; }
.rc-app .rc-inspect-part.seg-recovery { --part-color: #3f5952; background: transparent; }
.rc-app .rc-inspect-part.seg-run { --part-color: var(--rc-accent); background: transparent; }
.rc-app .rc-inspect-track[data-unit=distance] .rc-inspect-part::before { inset-block: 10px; }
.rc-app .rc-inspect-part[data-kind=gap]::before { background: repeating-linear-gradient(125deg, #cfac6644 0 3px, #16201c 3px 7px); border-block: 1px solid #cfac6655; }
.rc-app .rc-inspect-part[aria-expanded=true]::before { filter: brightness(1.2); box-shadow: inset 0 0 0 1px #eff8e8; }
.rc-app .rc-inspect-part:focus-visible { z-index: 1; border-radius: 4px; outline-offset: 1px; }
.rc-strip-controls { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: -3px; min-width: 0; }
.rc-strip-scale { color: var(--rc-muted); font-size: 10px; line-height: 1.7; }
.rc-inspect-open { min-height: 44px; flex-shrink: 0; color: #d1e1ca; font-size: 11px; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #a5bf9c66; }
.rc-inspect-open:hover { color: var(--rc-accent); text-decoration-color: currentColor; }
.rc-guide-note { color: var(--rc-dim); font-size: 10px; line-height: 1.75; }
.rc-strategy-visual { margin-top: 24px; padding: 16px 18px; border: 1px solid var(--rc-line); border-radius: 14px; background: #bce4b405; }
.rc-plan-day-strip { margin-top: 12px; }
.rc-step-inspector { position: fixed; z-index: 120; width: 340px; max-width: calc(100vw - 24px); max-height: calc(100dvh - 110px); overflow-y: auto; overscroll-behavior: contain; padding: 16px 18px 10px; border: 1px solid #738b72; border-radius: 16px; background: #1a2626; color: #e4ecdf; box-shadow: 0 12px 50px #0008; text-align: left; }
.rc-inspector-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: -7px; }
.rc-inspector-head > span { color: var(--rc-accent); font-size: 10px; letter-spacing: .04em; }
.rc-app #step-inspector-close { width: 44px; height: 44px; margin-right: -12px; flex-shrink: 0; border-radius: 50%; color: var(--rc-muted); font-size: 24px; }
.rc-app #step-inspector-close:hover { background: #ffffff08; color: #fff; }
.rc-app #step-inspector-title { margin-top: 0; color: #e5eddf; font-size: 16px; line-height: 1.55; font-weight: 550; overflow-wrap: anywhere; }
.rc-app #step-inspector-targets { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.rc-app #step-inspector-targets:empty { display: none; }
.rc-app #step-inspector-targets > span { padding: 5px 8px; border-radius: 6px; font-size: 11px; color: #d8e8d0; background: #bce4b415; }
.rc-app #step-inspector-notes { margin-top: 10px; color: #b3c5b6; font-size: 12px; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; }
.rc-inspector-navigation { display: flex; align-items: center; justify-content: space-between; gap: 8px; border-top: 1px solid #ffffff0e; margin-top: 14px; }
.rc-inspector-navigation button { min-height: 44px; font-size: 11px; color: #d1e1ca; }
.rc-inspector-navigation button:disabled { opacity: .3; cursor: default; }
.rc-inspector-navigation span { color: var(--rc-muted); font-size: 10px; font-variant-numeric: tabular-nums; }
@media (max-width: 767px) {
  .rc-app #race-day .rc-saved-guide-heading strong { font-size: 13px; }
  .rc-saved-guide { margin-top: 20px; }
  .rc-strip-controls { gap: 10px; }
  .rc-strip-scale { font-size: 9px; }
  .rc-strategy-visual { padding: 12px; }
}
/* A quiet, reachable language preference at the end of each standalone page. */
.rc-language-footer { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; padding: 20px 16px calc(20px + env(safe-area-inset-bottom)); color: var(--rc-dim); font-size: 11px; }
.rc-language-footer select { color: var(--rc-muted); background: var(--rc-surface); border: 1px solid var(--rc-line); border-radius: 8px; padding: 7px 28px 7px 10px; min-height: 44px; font: inherit; }
.rc-language-footer #language-status { color: #efc98f; width: 100%; text-align: center; }
.rc-language-footer #language-status:empty { display: none; }
.rc-chat .rc-language-footer { flex-shrink: 0; padding-block: 3px; }
.rc-chat .rc-language-footer select { min-height: 32px; }
@media (max-width: 767px) { .rc-dashboard .rc-language-footer { padding-bottom: calc(90px + env(safe-area-inset-bottom)); } }
.rc-app #language-retry { min-height: 44px; text-decoration: underline; text-underline-offset: 3px; color: var(--rc-accent); }
.rc-app #language-retry[hidden] { display: none; }
body[data-page=login] { flex-direction: column; }
body[data-page=login] > main { flex-shrink: 0; }
/* Notification choice is a quiet part of training, never an interrupting modal. */
.rc-app .rc-notification-offer { display: flex; align-items: flex-start; gap: 16px; padding: 18px 20px; border-color: #78968155; background: linear-gradient(110deg, #26352d, #1b2728); }
.rc-app .rc-notification-offer.\!hidden { display: none !important; }
.rc-notification-mark { display: grid; place-items: center; width: 40px; height: 40px; flex-shrink: 0; border: 1px solid #bce4b42a; border-radius: 12px; color: var(--rc-accent); font-size: 23px; }
.rc-notification-copy { min-width: 0; flex: 1; }
.rc-notification-copy h2 { margin-top: 0; font-size: 17px; line-height: 1.45; font-weight: 550; letter-spacing: -.3px; }
.rc-notification-copy > p:not(.rc-eyebrow), .rc-notification-description { margin-top: 8px; color: var(--rc-muted); font-size: 12px; line-height: 1.85; max-width: 650px; }
.rc-notification-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-top: 16px; }
.rc-notification-actions a { min-height: 44px; display: inline-flex; align-items: center; color: var(--rc-muted); font-size: 11px; text-decoration: underline; text-underline-offset: 4px; }
.rc-notification-actions .btn-ghost, .rc-notification-actions .btn-primary { min-height: 44px; }
.rc-notification-offer .rc-notification-actions { margin-top: 10px; }
.rc-app #notification-offer-status, .rc-app #notifications-result { margin-top: 14px; font-size: 12px; line-height: 1.8; color: var(--rc-accent); }
.rc-app #notification-offer-status:empty, .rc-app #notifications-result:empty { display: none; }
.rc-app .rc-notification-error { color: #efc98f !important; font-size: 12px; line-height: 1.8; }
.rc-notifications-settings { scroll-margin-top: 90px; }
.rc-notification-section-heading h2 { margin-top: 7px; font-size: 24px; font-weight: 550; letter-spacing: -.6px; }
.rc-notification-device { margin-top: 22px; padding: 18px; border-radius: 14px; border: 1px solid var(--rc-line); background: #bce4b405; }
.rc-notification-device strong { font-size: 13px; font-weight: 550; }
.rc-notification-device p { margin-top: 7px; font-size: 12px; line-height: 1.8; color: var(--rc-muted); }
.rc-app #notifications-form { margin-top: 26px; }
.rc-app #notifications-form[hidden], .rc-app #notifications-settings [hidden] { display: none !important; }
.rc-app #notifications-form fieldset { padding: 0; margin: 0 0 26px; min-width: 0; border: 0; }
.rc-app #notifications-form legend { margin-bottom: 3px; font-size: 13px; font-weight: 550; color: #e0e9dd; }
.rc-notification-choice { display: flex; align-items: flex-start; gap: 13px; padding: 16px 0; border-bottom: 1px solid #ffffff08; cursor: pointer; min-height: 64px; }
.rc-notification-choice input { margin: 4px 0 0; width: 20px; height: 20px; accent-color: var(--rc-accent); flex-shrink: 0; }
.rc-notification-choice strong { display: block; font-size: 13px; line-height: 1.6; font-weight: 500; }
.rc-notification-choice small { display: block; margin-top: 3px; color: var(--rc-muted); font-size: 11px; line-height: 1.8; }
.rc-app #notifications-form .rc-notification-quiet { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rc-notification-quiet label { display: block; margin: 9px 0; font-size: 11px; color: var(--rc-muted); }
.rc-notification-quiet input, .rc-notification-quiet select { min-height: 44px; max-width: 100%; min-width: 0; color-scheme: dark; }
.rc-notification-timezone { grid-column: 1 / -1; }
.rc-app #notifications-quiet-note { grid-column: 1 / -1; font-size: 11px; color: var(--rc-dim); line-height: 1.8; }
.rc-pwa-install { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; padding-top: 24px; margin-top: 28px; border-top: 1px solid var(--rc-line); }
.rc-pwa-install > div { flex: 1; min-width: 180px; }
.rc-pwa-install strong { font-size: 13px; font-weight: 500; }
.rc-pwa-install p { margin-top: 7px; font-size: 11px; line-height: 1.8; color: var(--rc-muted); max-width: 520px; }
@media (max-width: 767px) {
  .rc-app .rc-notification-offer { gap: 12px; padding: 16px; }
  .rc-notification-mark { width: 30px; height: 30px; border-radius: 9px; font-size: 18px; }
  .rc-notification-copy h2 { font-size: 16px; }
  .rc-notification-copy > p:not(.rc-eyebrow) { font-size: 11px; }
  .rc-notification-actions .btn-primary, .rc-notification-actions .btn-ghost { font-size: 11px; padding-inline: 12px; }
  .rc-notification-device { padding: 15px; }
  .rc-notification-quiet select { font-size: 16px; }
}
