/*
 * Canonical application visual system, promoted from the frozen Home page.
 * This layer changes presentation only; route and interaction contracts remain intact.
 */
:root{
  --rc-canvas:#111411;
  --rc-panel:#181c18;
  --rc-raised:#202520;
  --rc-interactive:#272d27;
  --rc-line:rgba(237,239,232,.12);
  --rc-line-strong:rgba(237,239,232,.2);
  --rc-copy:#f2f0e9;
  --rc-copy-support:#d5d3cb;
  --rc-copy-muted:#a7aea5;
  --rc-action:#ef6840;
  --rc-action-hover:#ff875b;
  --rc-nav:#74b98b;
  --rc-rest:#408580;
  --rc-easy:#53977b;
  --rc-long:#467093;
  --rc-threshold:#ef6840;
  --rc-interval:#e84c33;
  --rc-race:#f54c2d;
  --rc-ancillary:#887c94;
  --rc-success:#74b98b;
  --rc-alert:#d79a55;
  --rc-critical:#dd6b5f;
  --rc-page-gap:14px;
  --rc-page-gutter:18px;
  --rc-major-radius:24px;
  --rc-surface-radius:18px;
  --rc-control-radius:9px;
}

html{background:var(--rc-canvas);color-scheme:dark;scrollbar-color:#394039 var(--rc-canvas)}
body{background:var(--rc-canvas);color:var(--rc-copy);font-size:15px;line-height:1.5}
body::selection{background:rgba(239,104,64,.3);color:var(--rc-copy)}
a{color:color-mix(in srgb,var(--rc-action) 82%,var(--rc-copy));text-underline-offset:3px}
a:hover{color:var(--rc-action-hover)}
hr{border:0;border-top:1px solid var(--rc-line)}

/* Shared frame and compact page-header language. */
body:not([data-view="today"]) .app-header{border:0;background:var(--rc-canvas)}
body:not([data-view="today"]) .app-header__inner{min-height:112px;align-items:flex-end;padding-block:19px 17px}
body:not([data-view="today"]) .app-header .eyebrow{color:var(--rc-copy-muted);font-size:.67rem;letter-spacing:.11em}
body:not([data-view="today"]) .app-header h1{margin-top:4px;font-size:clamp(1.8rem,3vw,2.45rem);font-weight:750;letter-spacing:-.04em;line-height:1}
body:not([data-view="today"]) .app-header__meta{max-width:720px;margin-top:6px;color:var(--rc-copy-muted);font-size:.78rem}
body:not([data-view="today"]) .app-header__aside .runner-scout-sprite{display:none}
body:not([data-view="today"]) .app-header__action{min-height:38px;margin:0;padding:8px 12px;border:1px solid var(--rc-line);border-radius:var(--rc-control-radius);color:var(--rc-copy-muted)}
.app-nav{border-color:var(--rc-line);background:rgba(17,20,17,.96);backdrop-filter:blur(14px)}
.app-nav .nav-shell{min-height:56px}
a.app-nav__link{color:var(--rc-copy);font-weight:730}
a.app-nav__link:hover{background:rgba(116,185,139,.08);color:#b8d9c2}
a.app-nav__link.active,a.app-nav__link--secondary.active{border-color:rgba(116,185,139,.3);background:rgba(116,185,139,.14);color:#b8d9c2}
main.page-container{margin-bottom:64px;padding-top:22px}

/* Type hierarchy and low-chrome content rhythm. */
main h1{color:var(--rc-copy);font-weight:760;letter-spacing:-.045em}
main h2{color:var(--rc-copy);font-weight:720;letter-spacing:-.028em}
main h3{color:var(--rc-copy);font-weight:680}
main p,main li,main dd{color:var(--rc-copy-support)}
.eyebrow,.section-number,.rc-module-eyebrow,.phase-kicker,.section-head .number{
  color:var(--rc-copy-muted)!important;
  font-size:.7rem!important;
  font-weight:780!important;
  letter-spacing:.105em!important;
  text-transform:uppercase;
}
.muted,.metadata,.meta,.stable-id,.hash,.section-subtitle,.page-context-note{color:var(--rc-copy-muted)!important}
.section-title{margin:36px 0 14px}
.section-title h2{margin:4px 0 0;font-size:clamp(1.3rem,2.3vw,1.65rem)}

/* Shared surface hierarchy. */
.card,.hero,.today,.checkin,.chart-card,.status-card,.notice,.issues,.overall,.year-card,.month-review-entry{
  border:1px solid var(--rc-line);
  border-radius:var(--rc-surface-radius);
  background:var(--rc-panel);
  box-shadow:none;
}
.card{padding:22px}
.hero,.page-intro,.current-block-summary,.overall,.year-hero,.month-hero{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(239,104,64,.26)!important;
  border-radius:var(--rc-major-radius)!important;
  background:linear-gradient(118deg,rgba(239,104,64,.16),rgba(239,104,64,.045) 50%,var(--rc-panel))!important;
  box-shadow:0 22px 60px rgba(0,0,0,.18)!important;
}
.hero::before,.page-intro::before,.current-block-summary::before,.overall::before,.year-hero::before,.month-hero::before{
  content:"";position:absolute;z-index:0;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--rc-action),rgba(239,104,64,.14) 52%,transparent 82%);pointer-events:none
}
.hero>*,.page-intro>*,.current-block-summary>*,.overall>*,.year-hero>*,.month-hero>*{position:relative;z-index:1}
.hero h2,.page-intro h2,.overall h2{font-size:clamp(2rem,4.4vw,3.55rem);line-height:1;letter-spacing:-.05em}
.card+.card{margin-top:14px}
.stat,.metric,.week-figure,.summary-item,.fact,.scope,.mini-day,.day-detail-item,.roadmap article,.session,
.goal-field,.v2metric,.proposal-week,.outlook-week,.future-block-grid>div,.block-events,.uncertainty{
  border-color:var(--rc-line);background:transparent;box-shadow:none
}
.metric-grid,.stats,.week-figures,.goal-evidence,.summary,.year-headline,.kpi-strip{
  gap:0!important;overflow:hidden;border:1px solid var(--rc-line);border-radius:16px;background:rgba(24,28,24,.64)
}
.metric-grid>*,.stats>*,.week-figures>*,.goal-evidence>*,.summary>*,.year-headline>*,.kpi-strip>*{position:relative;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.metric-grid>*+*::before,.stats>*+*::before,.week-figures>*+*::before,.goal-evidence>*+*::before,.summary>*+*::before,.year-headline>*+*::before,.kpi-strip>*+*::before{content:"";position:absolute;inset:14px auto 14px 0;width:1px;background:var(--rc-line)}

/* One button system: orange decision, quiet secondary, minimal tertiary. */
button,.button,.link,.button-link,input[type="submit"]{
  min-height:42px;padding:10px 15px;border:1px solid var(--rc-action);border-radius:var(--rc-control-radius);background:var(--rc-action);color:#18100d;font-weight:800;box-shadow:none
}
button:hover,.button:hover,.link:hover,.button-link:hover,input[type="submit"]:hover{border-color:var(--rc-action-hover);background:var(--rc-action-hover);color:#18100d}
button.secondary,.button.secondary,.button-link.secondary,.secondary,
.coaching-utility-actions button,.request-inspector-trigger,.handover-export{
  border-color:var(--rc-line)!important;background:transparent!important;color:var(--rc-copy-muted)!important
}
button.secondary:hover,.button.secondary:hover,.button-link.secondary:hover,.secondary:hover,
.coaching-utility-actions button:hover{border-color:rgba(239,104,64,.36)!important;background:var(--rc-raised)!important;color:var(--rc-copy)!important}
button.danger,.button.danger,.delete,.danger{border-color:rgba(221,107,95,.45)!important;background:transparent!important;color:#e7958d!important}
button.danger:hover,.button.danger:hover,.delete:hover,.danger:hover{background:rgba(221,107,95,.11)!important;color:#f0aaa3!important}
button:disabled,.button[aria-disabled="true"]{border-color:var(--rc-line)!important;background:var(--rc-raised)!important;color:#737a72!important;opacity:.72}
button:focus-visible,.button:focus-visible,.link:focus-visible,.button-link:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid color-mix(in srgb,var(--rc-action) 78%,white);outline-offset:3px}

/* Forms, selects, date controls and compact grouped questions. */
form{gap:13px}
label{display:grid;gap:6px;color:var(--rc-copy);font-size:.82rem;font-weight:680}
input,select,textarea{
  min-height:44px;padding:10px 12px;border:1px solid var(--rc-line);border-radius:var(--rc-control-radius);background:var(--rc-raised);color:var(--rc-copy);box-shadow:none
}
textarea{min-height:124px;line-height:1.5}
input:hover,select:hover,textarea:hover{border-color:var(--rc-line-strong)}
input:focus,select:focus,textarea:focus{border-color:rgba(239,104,64,.62);background:var(--rc-interactive)}
input:disabled,select:disabled,textarea:disabled{color:#737a72;opacity:.74}
input[readonly],textarea[readonly]{border-style:dashed;background:rgba(32,37,32,.55)}
select{color-scheme:dark}
select option{background:var(--rc-raised);color:var(--rc-copy)}
input[type="date"]{color-scheme:dark}
fieldset{padding:16px;border:1px solid var(--rc-line);border-radius:var(--rc-control-radius)}
legend{padding:0 7px;color:var(--rc-copy-muted);font-size:.7rem;font-weight:780;letter-spacing:.08em;text-transform:uppercase}
.ranges{gap:12px}
.scale-control,.symptom-control{padding:13px 0;border-top:1px solid var(--rc-line)}
.scale-control:first-child,.symptom-control:first-child{border-top:0}
input[type="range"]{padding:0;accent-color:var(--rc-action)}

/* Badges are metadata, not decoration. */
.badge,.status,.plain-status,.cal-badge,.cal-status,.chip,.pill,.assessment,.priority-badge,.status-badge,.cal-outcome-badge{
  min-height:22px;padding:3px 8px;border:1px solid var(--rc-line);border-radius:999px;background:rgba(32,37,32,.72);color:var(--rc-copy-muted);font-size:.68rem;font-weight:780
}
.status.stale,.warning,.attention .badge{border-color:rgba(215,154,85,.38);background:rgba(215,154,85,.08);color:#deb27c}
.status.failed,.error .badge,.problem .badge{border-color:rgba(221,107,95,.4);background:rgba(221,107,95,.08);color:#e7958d}
.healthy .badge,.status.ready,.status.applied{border-color:rgba(116,185,139,.35);background:rgba(116,185,139,.08);color:#91cba3}

/* Disclosures, tooltips, popovers, drawers and every modal share one elevation. */
details:not(.mobile-more){border-color:var(--rc-line)}
details>summary{color:var(--rc-copy-muted);cursor:pointer}
details>summary:hover{color:var(--rc-copy)}
.info-popover,.metric-help-popover,[role="tooltip"],.tooltip{
  border:1px solid var(--rc-line)!important;border-radius:var(--rc-control-radius)!important;background:var(--rc-raised)!important;color:var(--rc-copy-support)!important;box-shadow:0 18px 46px rgba(0,0,0,.34)!important
}
.modal,.request-inspector-overlay{background:rgba(5,7,5,.76)!important;backdrop-filter:blur(5px)}
.modal>div,.request-inspector-dialog,.fitness-event-drawer,.detail-drawer{
  border:1px solid var(--rc-line)!important;border-radius:var(--rc-major-radius)!important;background:var(--rc-panel)!important;color:var(--rc-copy)!important;box-shadow:0 30px 90px rgba(0,0,0,.5)!important
}
.modal-close,.request-inspector-close{border-color:var(--rc-line)!important;background:transparent!important;color:var(--rc-copy-muted)!important}
.modal h2,.detail-drawer h2,.request-inspector-dialog h2{color:var(--rc-copy)}
.modal p,.modal li,.detail-drawer p{color:var(--rc-copy-support)}

/* Tables and technical density. */
.table-scroll{border:1px solid var(--rc-line);border-radius:var(--rc-surface-radius)}
table{width:100%;border-collapse:collapse;background:transparent;color:var(--rc-copy)}
th{padding:10px 12px;border-bottom:1px solid var(--rc-line);background:rgba(32,37,32,.58);color:var(--rc-copy-muted);font-size:.68rem;letter-spacing:.08em;text-align:left;text-transform:uppercase}
td{padding:11px 12px;border-bottom:1px solid var(--rc-line);color:var(--rc-copy-support)}
tbody tr:hover{background:rgba(255,255,255,.025)}
tbody tr[aria-selected="true"],tbody tr.selected{background:rgba(120,151,170,.09);box-shadow:inset 2px 0 var(--rc-info)}
pre,code{color:#c2c8c0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
pre{border:1px solid var(--rc-line);border-radius:var(--rc-control-radius);background:#121512}

/* CALENDAR — chronology and prescriptions, extending Home's week surface. */
body[data-view="month"] #app>.month-card{padding:0;border:0;background:transparent}
body[data-view="month"] .month-head{align-items:end;padding:0 2px 18px;border-bottom:1px solid var(--rc-line)}
body[data-view="month"] .month-head h2{margin:4px 0 0;font-size:clamp(1.75rem,3.4vw,2.6rem)}
body[data-view="month"] .navbuttons{display:flex;gap:7px}
body[data-view="month"] .navbuttons button{min-height:38px;padding:8px 11px;border-color:var(--rc-line);background:transparent;color:var(--rc-copy-muted);font-size:.74rem}
body[data-view="month"] .current-week-summary{margin:16px 0 22px;padding:18px 0;border-block:1px solid var(--rc-line);background:transparent}
body[data-view="month"] .month{overflow:hidden;border:1px solid var(--rc-line);border-radius:var(--rc-surface-radius);background:#151915}
body[data-view="month"] .month-labels{background:transparent;border-color:var(--rc-line)}
body[data-view="month"] .month-labels span{color:var(--rc-copy-muted)}
body[data-view="month"] .month-week{border-color:var(--rc-line)}
body[data-view="month"] .day{min-height:132px;border-color:var(--rc-line);background:transparent}
body[data-view="month"] .day:hover{background:rgba(255,255,255,.025)}
body[data-view="month"] .day.other{opacity:.38}
body[data-view="month"] .datehead{color:var(--rc-copy-muted)}
body[data-view="month"] .cal-item{border:0;border-left:2px solid var(--tone,var(--rest));border-radius:4px;background:rgba(32,37,32,.55)!important;color:var(--rc-copy-support)}
body[data-view="month"] .cal-item:hover{background:var(--rc-interactive)!important;filter:none}
body[data-view="month"] .cal-item.easy{--tone:var(--rc-easy)}
body[data-view="month"] .cal-item.recovery,body[data-view="month"] .cal-item.rest{--tone:var(--rc-rest)}
body[data-view="month"] .cal-item.long_easy,body[data-view="month"] .cal-item.long_quality{--tone:var(--rc-long)}
body[data-view="month"] .cal-item.threshold,body[data-view="month"] .cal-item.quality{--tone:var(--rc-threshold)}
body[data-view="month"] .cal-item.intervals{--tone:var(--rc-interval)}
body[data-view="month"] .cal-item.race{--tone:var(--rc-race)}
body[data-view="month"] .cal-item.ancillary,body[data-view="month"] .cal-item.work,body[data-view="month"] .cal-item.strength{--tone:var(--rc-ancillary);color:#aaa0b6}
body[data-view="month"] .weektotal{border-color:var(--rc-line);background:rgba(32,37,32,.35);color:var(--rc-copy)}
body[data-view="month"] .calendar-notes{margin-top:18px;padding-top:16px;border-color:var(--rc-line)}
body[data-view="month"] .portrait-week{border-color:var(--rc-line);background:transparent}
body[data-view="month"] .portrait-day{border:0;background:transparent;color:var(--rc-copy)}
body[data-view="month"] .portrait-day.today{border:1px solid rgba(64,133,128,.62);border-radius:10px;background:rgba(64,133,128,.08)}
body[data-view="month"] .portrait-week-summary{border-color:var(--rc-line);background:var(--rc-raised);color:var(--rc-copy)}

/* SESSION / COMPLETED RUN DETAIL — result first, analysis second. */
.activity-detail-page>header{border-bottom:1px solid var(--rc-line)}
.activity-detail-page>header h2{font-size:clamp(2rem,4vw,3.3rem)}
.activity-primary-metrics{border:1px solid var(--rc-line)!important;background:transparent!important}
.activity-primary-metrics .activity-metric{border:0;background:transparent}
.activity-primary-metrics .activity-metric+.activity-metric{border-left:1px solid var(--rc-line)}
.activity-tabs{border:1px solid var(--rc-line);background:var(--rc-raised)}
.activity-tabs button{min-height:38px;border:0;background:transparent;color:var(--rc-copy-muted)}
.activity-tabs button[aria-selected="true"]{background:var(--rc-panel);color:var(--rc-copy);box-shadow:none}
.activity-overview>section,.activity-stat-group,.activity-charts section{border-color:var(--rc-line);background:transparent;box-shadow:none}

/* STATISTICS — analytical canvases own the page. */
.trends-page .statistics-tabs,.review-nav{padding:4px;border:1px solid var(--rc-line);border-radius:var(--rc-control-radius);background:var(--rc-raised)}
.trends-page .statistics-tabs a,.review-nav a{border:0!important;background:transparent!important;color:var(--rc-copy-muted)!important}
.trends-page .statistics-tabs a.active,.review-nav a.active{background:var(--rc-panel)!important;color:var(--rc-copy)!important}
.trends-page .trend-section{margin-top:34px!important;padding:0 0 28px!important;border:0!important;border-bottom:1px solid var(--rc-line)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.trends-page .trend-section::before{display:none}
.trends-page .trend-section>.section-head h2{font-size:clamp(1.55rem,3vw,2.05rem)}
.trends-page .chart-card,.trends-page .training-analysis,.trends-page .recovery-overview-card,.fitness-trajectory-card{
  border:1px solid var(--rc-line)!important;border-radius:var(--rc-surface-radius)!important;background:#151915!important;box-shadow:none!important
}
.trends-page .chart{color:var(--rc-copy-muted)}
.trends-page .chart text{fill:var(--rc-copy-muted)}
.trends-page .grid,.trends-page .axis{stroke:var(--rc-line)}
.trends-page .statistics-review-entry{border-color:var(--rc-line)}

/* COACHING — interpretation and conversation, without chat-app chrome. */
body:has(#coaching-form) .hero{max-width:900px;padding:28px 30px}
body:has(#coaching-form) .hero h2{max-width:760px;font-size:clamp(2rem,4vw,3.2rem)}
body:has(#coaching-form) .two{grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);gap:14px;align-items:start}
body:has(#coaching-form) .two>.card:first-child{border-color:rgba(239,104,64,.24);background:linear-gradient(145deg,rgba(239,104,64,.07),var(--rc-panel) 52%)}
body:has(#coaching-form) .two>aside{background:transparent}
body:has(#coaching-form) .scope{padding:14px;border:0;border-left:2px solid var(--rc-info);border-radius:0;background:transparent}
.message,.msg{max-width:88%;margin:12px 0;padding:14px 0;border:0!important;border-bottom:1px solid var(--rc-line)!important;border-radius:0!important;background:transparent!important;color:var(--rc-copy-support)!important}
.message.ryan,.msg.ryan{margin-left:12%;padding:14px 16px;border:1px solid var(--rc-line)!important;border-radius:12px!important;background:rgba(120,151,170,.07)!important}
.conversation{max-width:860px}
.thinking{border-color:rgba(215,154,85,.3)!important;background:rgba(215,154,85,.06)!important}
.proposal,.approval-card,.action-card{border-color:rgba(239,104,64,.3)!important;background:linear-gradient(145deg,rgba(239,104,64,.075),var(--rc-panel) 60%)!important}

/* TRAINING PHASES — one continuous strategic direction. */
body[data-view="block"] .page-intro{padding:30px}
body[data-view="block"] .block-purpose{margin-top:18px;padding:18px 0 0;border:0;border-top:1px solid var(--rc-line);background:transparent}
body[data-view="block"] .week-sequence{position:relative;display:grid;gap:0;padding-left:24px}
body[data-view="block"] .week-sequence::before{content:"";position:absolute;left:7px;top:16px;bottom:16px;width:1px;background:var(--rc-line)}
body[data-view="block"] .week-card{position:relative;margin:0;padding:16px 0 16px 18px;border:0;border-bottom:1px solid var(--rc-line);border-radius:0;background:transparent}
body[data-view="block"] .week-card::before{content:"";position:absolute;left:-21px;top:23px;width:7px;height:7px;border:2px solid var(--rc-copy-muted);border-radius:50%;background:var(--rc-canvas)}
body[data-view="block"] .week-card.current{border-left:0;background:rgba(239,104,64,.045)}
body[data-view="block"] .week-card.current::before{border-color:var(--rc-action);background:var(--rc-action)}
.phase-timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;border:1px solid var(--rc-line);border-radius:var(--rc-surface-radius);overflow:hidden}
.phase-timeline .phase-card{margin:0;border:0;border-radius:0;background:transparent}
.phase-timeline .phase-card+.phase-card{border-left:1px solid var(--rc-line)}
.phase-timeline .phase-card.provisional{opacity:.64;background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(120,151,170,.025) 14px 28px)}
.future-block-card{border:0!important;border-left:2px dashed var(--rc-info)!important;background:transparent!important}
.future-load-graph{border-color:var(--rc-line)!important;background:#151915!important}

/* HISTORY — chronology first, cards removed from the timeline. */
body:has(#app .timeline) .plans{gap:0;border-block:1px solid var(--rc-line)}
body:has(#app .timeline) .plan{margin:0;padding:16px;border:0;border-left:1px solid var(--rc-line);border-radius:0;background:transparent}
body:has(#app .timeline) .plan:first-child{border-left:0}
body:has(#app .timeline) .timeline{padding-left:30px}
body:has(#app .timeline) .timeline::before{left:8px;width:1px;background:var(--rc-line)}
body:has(#app .timeline) .entry{margin:0;padding:17px 0 17px 18px;border:0;border-bottom:1px solid var(--rc-line);border-radius:0;background:transparent;box-shadow:none}
body:has(#app .timeline) .entry::before{left:-27px;width:8px;height:8px;border:2px solid var(--rc-copy-muted);background:var(--rc-canvas)}
body:has(#app .timeline) .entry.applied-change::before{border-color:var(--rc-success);background:var(--rc-success)}
body:has(#app .timeline) .entry.calendar-edit::before{border-color:var(--rc-info)}
body:has(#app .timeline) .event{border-color:var(--rc-line)}

/* SYSTEMS — technical health in restrained semantic lanes. */
body:has(#overall) .overall{border-color:rgba(116,185,139,.24)!important;background:linear-gradient(118deg,rgba(116,185,139,.1),var(--rc-panel) 58%)!important}
body:has(#overall) .overall.attention{border-color:rgba(215,154,85,.32)!important;background:linear-gradient(118deg,rgba(215,154,85,.09),var(--rc-panel) 58%)!important}
body:has(#overall) .overall.problem{border-color:rgba(221,107,95,.32)!important;background:linear-gradient(118deg,rgba(221,107,95,.09),var(--rc-panel) 58%)!important}
body:has(#overall) .summary{margin:14px 0 34px}
body:has(#overall) .system-section{margin-top:34px;padding-top:28px;border-top:1px solid var(--rc-line)}
body:has(#overall) .status-card{border:0;border-left:2px solid var(--rc-line);border-radius:0;background:transparent}
body:has(#overall) .status-card.healthy{border-left-color:var(--rc-success)}
body:has(#overall) .status-card.attention{border-left-color:var(--rc-alert)}
body:has(#overall) .status-card.problem{border-left-color:var(--rc-critical)}
body:has(#overall) .row,body:has(#overall) .issue{border-color:var(--rc-line)}
body:has(#overall) .diagnostics{border-color:var(--rc-line);background:#151815}
body:has(#overall) .diagnostic-item{border-color:var(--rc-line)}

/* Reviews and pause/adjust — current, proposed, why, impact, action. */
body:has(.compare) .hero,body:has(.conversation) .hero{padding:28px 30px}
main#app .hero>aside.card h2,main#app .hero>.assessment-card h2{font-size:clamp(1.55rem,2.7vw,2.45rem);line-height:1.02;word-break:normal;overflow-wrap:normal}
.compare{gap:0!important;overflow:hidden;border:1px solid var(--rc-line);border-radius:var(--rc-surface-radius)}
.compare>*{margin:0!important;border:0!important;border-radius:0!important;background:transparent!important}
.compare>*+*{border-left:1px solid var(--rc-line)!important}
.interpretation,.evidence,.stance{border-color:var(--rc-line)!important;background:transparent!important}
.callout{border:1px solid rgba(215,154,85,.28)!important;border-left:3px solid var(--rc-alert)!important;background:rgba(215,154,85,.06)!important}
.callout.error,.error-box{border-color:rgba(221,107,95,.35)!important;background:rgba(221,107,95,.07)!important;color:#e9aaa4!important}
.reason{border:1px solid var(--rc-line)!important;background:var(--rc-raised)!important;color:var(--rc-copy)!important}
.reason.active{border-color:var(--rc-action)!important;background:rgba(239,104,64,.09)!important;box-shadow:inset 0 0 0 1px rgba(239,104,64,.28)}
.hash,.stable-id{font-size:.7rem!important}

/* Loading, empty and error states. */
.loading-skeleton{background:var(--rc-raised)}
.no-action,.empty-roadmap,.month-error,.athlete-zone-empty{padding:20px;border:1px dashed var(--rc-line);border-radius:var(--rc-surface-radius);background:transparent;color:var(--rc-copy-muted)}
.notice.error,.year-notice.error{border-color:rgba(221,107,95,.34);background:rgba(221,107,95,.07);color:#e9aaa4}
.spinner{border-color:rgba(239,104,64,.2)!important;border-top-color:var(--rc-action)!important}
.ai-pulse::after{background:var(--rc-action)}

@media(max-width:900px){
  .metric-grid,.stats,.week-figures,.goal-evidence,.summary,.year-headline,.kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .metric-grid>*:nth-child(odd)::before,.stats>*:nth-child(odd)::before,.week-figures>*:nth-child(odd)::before,.goal-evidence>*:nth-child(odd)::before,.summary>*:nth-child(odd)::before,.year-headline>*:nth-child(odd)::before,.kpi-strip>*:nth-child(odd)::before{display:none}
  .metric-grid>*:nth-child(n+3),.stats>*:nth-child(n+3),.week-figures>*:nth-child(n+3),.goal-evidence>*:nth-child(n+3),.summary>*:nth-child(n+3),.year-headline>*:nth-child(n+3),.kpi-strip>*:nth-child(n+3){border-top:1px solid var(--rc-line)!important}
  .phase-timeline{grid-template-columns:1fr}
  .phase-timeline .phase-card+.phase-card{border-top:1px solid var(--rc-line);border-left:0}
}

@media(max-width:760px){
  :root{--rc-page-gutter:12px;--rc-major-radius:18px;--rc-surface-radius:15px}
  html.mobile-app:has(>body:not([data-view="today"])){--mobile-header:74px}
  html.mobile-app body:not([data-view="today"]) .app-header__inner{height:100%;min-height:0;align-items:flex-end;padding-top:env(safe-area-inset-top);padding-bottom:9px}
  html.mobile-app body:not([data-view="today"]) .app-header h1{margin-top:2px;font-size:1.45rem;line-height:.95}
  html.mobile-app body:not([data-view="today"]) .app-header__meta{display:none!important}
  body:not([data-view="today"]) .app-header__inner{min-height:86px;padding-top:max(13px,env(safe-area-inset-top));padding-bottom:12px}
  body:not([data-view="today"]) .app-header h1{font-size:1.7rem}
  body:not([data-view="today"]) .app-header__meta{display:block;max-width:31ch;font-size:.72rem;white-space:normal}
  main.page-container{padding-top:14px}
  .mobile-bottom-nav{border-color:var(--rc-line);background:rgba(24,28,24,.96)}
  .mobile-bottom-nav__link.active,.mobile-more.active>summary,.mobile-more[open]>summary{background:transparent;color:#e9957d}
  .mobile-bottom-nav__link.active::before{content:"";position:absolute;top:0;width:23px;height:2px;background:#e9957d}
  .mobile-bottom-nav__link,.mobile-more>summary{position:relative;border-radius:0}
  .mobile-more__menu{border-color:var(--rc-line);background:var(--rc-raised);box-shadow:0 22px 60px rgba(0,0,0,.42)}
  .card{padding:17px 15px}
  .hero,.page-intro,.current-block-summary,.overall,.year-hero,.month-hero{padding:22px 19px!important}
  .hero h2,.page-intro h2,.overall h2{font-size:clamp(1.85rem,9vw,2.55rem)}
  body[data-view="month"] .month-head{align-items:flex-start}
  body[data-view="month"] .navbuttons{width:100%;margin-top:12px}
  body[data-view="month"] .navbuttons button{flex:1}
  body[data-view="month"] .month{border:0;background:transparent}
  body:has(#coaching-form) .two{grid-template-columns:1fr}
  body:has(#coaching-form) .two>aside{order:2}
  .compare{grid-template-columns:1fr!important}
  .compare>*+*{border-top:1px solid var(--rc-line)!important;border-left:0!important}
  .message,.msg{max-width:100%}
  .message.ryan,.msg.ryan{margin-left:0}
  .actions>*{min-height:44px}

  html.mobile-app body:not([data-view="today"]):not([data-view="month"]):not([data-view="block"]):not(.mobile-statistics):not(.mobile-coaching){height:auto;min-height:100dvh;overflow-x:hidden;overflow-y:auto}
  html.mobile-app:has(>body:not([data-view="today"]):not([data-view="month"]):not([data-view="block"]):not(.mobile-statistics):not(.mobile-coaching)){height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}
  html.mobile-app body:not([data-view="today"]):not([data-view="month"]):not([data-view="block"]):not(.mobile-statistics):not(.mobile-coaching) main.page-container{height:auto;min-height:calc(100dvh - var(--mobile-header) - var(--mobile-nav));padding-bottom:calc(18px + var(--mobile-nav) + env(safe-area-inset-bottom));overflow:visible}
  html.mobile-app body[data-view="month"] .portrait-day.today,html.mobile-app body[data-view="month"] .portrait-day.today.selected{background:color-mix(in srgb,var(--rc-rest) 13%,var(--rc-panel));box-shadow:inset 0 0 0 2px var(--rc-rest)}
  html.mobile-app body[data-view="month"] .portrait-day.today .date-number{color:color-mix(in srgb,var(--rc-rest) 70%,var(--rc-copy))}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}

/* Calendar selection carries the session's meaning instead of introducing a new accent. */
body[data-view="month"]{--calendar-today:var(--rc-rest)}
body[data-view="month"] .day.today{background:color-mix(in srgb,var(--rc-panel) 94%,var(--calendar-today));box-shadow:inset 0 0 0 1px var(--calendar-today)}
body[data-view="month"] .day.today::before{opacity:.2;filter:blur(11px) saturate(.9);animation:none}
body[data-view="month"] .day.today:has(.cal-item.easy),body[data-view="month"] .day.today:has(.cal-item.aerobic){--calendar-today:var(--rc-easy)}
body[data-view="month"] .day.today:has(.cal-item.rest),body[data-view="month"] .day.today:has(.cal-item.recovery){--calendar-today:var(--rc-rest)}
body[data-view="month"] .day.today:has(.cal-item.long),body[data-view="month"] .day.today:has(.cal-item.long_easy){--calendar-today:var(--rc-long)}
body[data-view="month"] .day.today:has(.cal-item.threshold),body[data-view="month"] .day.today:has(.cal-item.tempo),body[data-view="month"] .day.today:has(.cal-item.quality){--calendar-today:var(--rc-threshold)}
body[data-view="month"] .day.today:has(.cal-item.intervals),body[data-view="month"] .day.today:has(.cal-item.vo2){--calendar-today:var(--rc-interval)}
body[data-view="month"] .day.today:has(.cal-item.race),body[data-view="month"] .day.today:has(.cal-item.race_training){--calendar-today:var(--rc-race)}

/* The progression chart remains dense with evidence, but belongs to the same calm surface system. */
#training-phase-progression .tpp-shell{background:#151915;border:1px solid var(--rc-line);border-radius:var(--rc-major-radius);box-shadow:none}
#training-phase-progression .tpp-head p,#training-phase-progression .tpp-summary-card span,#training-phase-progression .tpp-legend,#training-phase-progression .tpp-section-head p,#training-phase-progression .tpp-method{color:var(--rc-copy-muted)}
#training-phase-progression .tpp-readonly{border-color:var(--rc-line);color:var(--rc-copy-muted);background:transparent}
#training-phase-progression .tpp-summary{gap:0;border-top:1px solid var(--rc-line);border-bottom:1px solid var(--rc-line)}
#training-phase-progression .tpp-summary-card{border:0;border-radius:0;background:transparent;padding:14px 16px}
#training-phase-progression .tpp-summary-card+.tpp-summary-card{border-left:1px solid var(--rc-line)}
#training-phase-progression .tpp-summary-card>small,#training-phase-progression .tpp-performance>small{color:var(--rc-copy-faint)}
#training-phase-progression .tpp-summary-card strong,#training-phase-progression .tpp-performance b,#training-phase-progression .tpp-key-card b{color:var(--rc-copy)}
#training-phase-progression .tpp-chart-wrap{border-color:var(--rc-line);background:#111411}
#training-phase-progression .tpp-tooltip{border-color:var(--rc-line);background:rgba(24,28,24,.98);box-shadow:var(--rc-shadow);color:var(--rc-copy)}
#training-phase-progression .tpp-key-section{border-color:var(--rc-line)}
#training-phase-progression .tpp-key-week{border-color:var(--rc-line);background:transparent}
#training-phase-progression .tpp-key-week.current{border-color:rgba(116,185,139,.42);box-shadow:inset 0 0 0 1px rgba(116,185,139,.08)}
#training-phase-progression .tpp-key-week.future{border-color:rgba(167,174,165,.3);border-style:dashed}

@media(max-width:900px){
  #training-phase-progression .tpp-summary-card+.tpp-summary-card{border-left:0}
  #training-phase-progression .tpp-summary-card:nth-child(even){border-left:1px solid var(--rc-line)}
  #training-phase-progression .tpp-summary-card:nth-child(n+3){border-top:1px solid var(--rc-line)}
}
