/* EnduroLab 28 — visual consolidation.
   Quiet, functional design with one component vocabulary and no new data model.
   All rules are presentation-only and retain existing account appearance presets. */
:root {
  --v28-ink:#eaf0ec; --v28-secondary:#a7b4b5;
  --v28-line:color-mix(in srgb,var(--border) 83%,#73847e 17%);
  --v28-accent:var(--lime); --v28-surface:var(--panel);
  --v28-raised:var(--panel2); --v28-radius:12px;
}
html[data-el-colored="false"]{
 --bg:#0e151c;--panel:#141e27;--panel2:#192630;--panel3:#20313d;--border:#30404c;
 --text:#ecf1f1;--soft:#cad7d8;--muted:#9daeb8;--cyan:#abd0c8;--lime:#b9d6a6;
 --shadow:0 8px 26px #00000020;
}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Arial,sans-serif;
 font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
:where(h1,h2,h3,h4,strong,b){font-kerning:normal}
:where(.eyebrow,.v20-eyebrow,.v20-kicker,.is-kicker,.v20-small,.nav-caption){
 letter-spacing:.055em}
:where(button,input,select,textarea){font-family:inherit}
:where(button,a,input,textarea,select,summary):focus-visible{outline:2px solid var(--lime);outline-offset:3px}
button{touch-action:manipulation}
:where(.view,.panel,.v20-card,.v20-activity-card,.cal-day,.v27-profile-panel){min-width:0}
:where(.panel,.v20-card,.v20-activity-card,.week-expandable,.week-deep-dive,.v24-analytics-wrap){
 box-shadow:none!important;filter:none}
.panel{border-radius:var(--v28-radius);background:var(--panel);border:1px solid var(--v28-line)}
.panel-pad{padding:clamp(17px,1.9vw,26px)}
:where(.panel,.v20-card,.cal-day,.week-expandable,.week-quick-card,.v20-diary-controls,.v20-activity-card){
 background-image:none!important}
:where(.eyebrow,.v20-eyebrow,.v20-kicker,.is-kicker){
 color:var(--muted);font-size:10px;font-weight:770;text-transform:uppercase}
:where(.page-head,.v20-home-head,.v20-diary-head){margin-top:1px;margin-bottom:20px}
:where(.page-head h1,.v20-home-head h1,.v20-diary-head h1){
 font-size:clamp(27px,3vw,38px);line-height:1.18;letter-spacing:-.041em;font-weight:740;
 margin:5px 0 8px}
:where(.page-head p,.v20-home-head p,.v20-diary-head p){
 color:var(--muted);font-size:13px;line-height:1.7;max-width:70ch}
:where(.panel h2,.v20-card h2,.v28-section-title){letter-spacing:-.025em}
.btn{border-radius:9px;border-color:var(--v28-line);font-size:12px;font-weight:670;
 min-height:38px;padding:9px 14px;background:var(--panel2);box-shadow:none!important;
 transition:background-color .14s,border-color .14s,color .14s}
.btn:hover{transform:none;background:color-mix(in srgb,var(--panel2) 70%,var(--text) 8%)}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--lime);border-color:var(--lime);color:#14221c;
 font-weight:750;box-shadow:none!important}
.btn.primary:hover{background:color-mix(in srgb,var(--lime) 85%,white)}
:where(.pill,.badge,.v20-state,.v28-label,.v26-pill,.profile-pill){box-shadow:none}
:where(input,select,textarea){accent-color:var(--lime)}
:where(input[type="text"],input[type="date"],input[type="number"],input[type="search"],input[type="email"],
 input[type="password"],select,textarea){border-radius:8px;max-width:100%;min-width:0}
:where(.formgrid,.settings-grid,.v20-widget-grid,.v20-hero-grid){min-width:0}
:where(.footnote,.hint,.field-hint,.v20-foot){font-size:11px;color:var(--muted);line-height:1.6}
/* A quieter, more navigable left rail. */
@media(min-width:821px){
 .app{grid-template-columns:236px minmax(0,1fr)}
 .sidebar{padding:22px 13px 15px;background:var(--panel)!important;
  border-right:1px solid var(--v28-line);scrollbar-width:thin}
 .sidebar .brand{padding:5px 10px 20px;margin-bottom:19px;border-bottom:1px solid var(--v28-line);gap:11px}
 .sidebar .brand-mark{width:37px;height:37px;border-radius:10px;
  background:color-mix(in srgb,var(--lime) 13%,var(--panel2))!important;
  border:1px solid color-mix(in srgb,var(--lime) 32%,var(--border));font-size:13px;
  color:var(--lime);letter-spacing:-.065em;font-weight:800}
 .sidebar .brand strong{font-size:16px;letter-spacing:-.035em;font-weight:760}
 .sidebar .brand span{font-size:10px;letter-spacing:.04em;text-transform:none;color:var(--muted)}
 .sidebar .nav-caption{padding:2px 12px 10px;font-size:10px;color:var(--muted);
  text-transform:none;letter-spacing:.03em;font-weight:650}
 .sidebar .nav-primary{gap:2px}
 .sidebar .nav button[data-nav]{border-radius:8px;font-size:13px;font-weight:560;min-height:41px;gap:11px}
 .sidebar .nav button[data-nav]:hover{background:color-mix(in srgb,var(--panel2) 80%,var(--lime) 5%)}
 .sidebar .nav button[data-nav].active{background:color-mix(in srgb,var(--lime) 11%,var(--panel2))!important;
  border-color:color-mix(in srgb,var(--lime) 16%,var(--border));box-shadow:none;color:var(--text)}
 .sidebar .nav button[data-nav].active .nav-icon{color:var(--lime)}
 .sidebar .nav button[data-nav].active::after{content:"";width:4px;height:4px;border-radius:50%;
  background:var(--lime);margin-left:auto}
 .nav-icon{color:var(--muted)}
 .nav-collections{margin:17px 0 0;padding-top:16px;border-color:var(--v28-line)}
 .nav-details{border-radius:8px;margin:3px 0}
 .nav-details>summary{padding:11px 12px;border-radius:8px;font-size:12px;font-weight:610;color:var(--soft)}
 .nav-summary-icon{display:none}
 .nav-details summary:hover,.nav-details[open]>summary{background:var(--panel2);color:var(--text)}
 .nav-secondary{margin:4px 0 6px 18px;padding-left:8px;border-color:var(--v28-line)}
 .sidebar .nav-secondary button[data-nav]{min-height:35px;font-size:12px;color:var(--muted);font-weight:540}
 .sidebar .nav-secondary button.active::before{background:var(--lime)}
 .side-footer{border-top:1px solid var(--v28-line);padding:13px 2px 4px}
 .side-footer-note{display:none}
}
.main{max-width:1440px;padding:25px clamp(17px,2.7vw,42px) 72px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:15px;
 padding-bottom:15px;margin-bottom:24px;border-color:var(--v28-line)}
.workspace-label{gap:9px}
.workspace-label .eyebrow{color:var(--muted);font-size:10px;letter-spacing:.055em}
.workspace-label .crumb-sep{color:var(--muted);opacity:.6}
.workspace-label #navBreadcrumb{font-size:12px;font-weight:680;letter-spacing:0;text-transform:none;color:var(--text)}
.top-actions{gap:7px}
.top-actions .btn{min-height:36px;border-radius:8px;font-weight:650}
.top-actions #topLog{padding-inline:14px}
.top-actions #syncBadge{font-size:10px;letter-spacing:0;border-radius:8px;
 color:var(--muted);background:transparent;border-color:var(--v28-line);font-weight:650}
.top-actions #syncBadge[data-sync="synced"]{background:transparent;color:var(--lime);border-color:var(--v28-line)}
.top-actions .v27-bell{border-radius:8px;min-width:38px;font-size:14px!important}
.top-actions .v20-top-search{background:transparent;border-color:var(--v28-line)}
/* Home as a single editorial overview, not a collection of gradients. */
#view-overview .v20-home{margin-bottom:20px}
#view-overview .v20-home-head{margin:7px 0 19px}
#view-overview .v20-home-head h1{font-size:clamp(27px,3.2vw,40px);font-weight:740}
#view-overview .v20-home-head .btn{background:transparent;border:1px solid var(--v28-line);color:var(--soft)}
#view-overview .v20-hero-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:12px;margin-bottom:12px}
#view-overview .v20-widget-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#view-overview .v20-card{background:var(--panel)!important;border:1px solid var(--v28-line)!important;
 border-radius:var(--v28-radius);padding:20px 21px;min-height:170px;gap:8px}
#view-overview .v20-card.v20-coach{background:var(--panel2)!important;border-color:var(--v28-line)!important}
#view-overview .v20-card h2{font-size:clamp(17px,1.6vw,21px);letter-spacing:-.02em;font-weight:730}
#view-overview .v20-card p{font-size:12px;color:var(--muted);line-height:1.65}
#view-overview .v20-card .v20-link{font-size:12px;text-decoration:none;
 border-bottom:1px solid transparent;color:var(--lime);font-weight:680}
#view-overview .v20-card .v20-link:hover{border-color:var(--lime);text-decoration:none}
#view-overview .v20-state{font-size:10px;font-weight:620;letter-spacing:0;text-transform:none;
 border-radius:6px;background:transparent;padding:4px 7px;color:var(--soft);border-color:var(--v28-line)}
#view-overview .v20-stat-pair span{border-radius:8px;background:var(--panel2);border-color:var(--v28-line)}
#view-overview .v20-stat-pair strong{font-size:21px}
#view-overview .v20-sport{background:var(--panel2);border-color:var(--v28-line);border-radius:8px}
#view-overview .v20-recent button{border-color:var(--v28-line)}
#view-overview .v20-recent button:hover{background:var(--panel2)}
#view-overview .v20-recent button>strong{color:var(--text)}
#view-overview .v20-legacy-home{margin-top:16px;background:transparent;border:1px solid var(--v28-line);border-radius:9px}
#view-overview .v20-legacy-home summary{padding:13px 16px;font-size:12px;font-weight:600;color:var(--muted)}
#view-overview .v20-legacy-home summary:hover{color:var(--text)}
/* Calendar hierarchy: a restrained control surface and calm session cards. */
#view-calendar .week-page-head h1{font-size:clamp(26px,3vw,38px);letter-spacing:-.04em}
#view-calendar .week-title-dot{color:inherit}
#view-calendar .week-page-head p{font-size:12px;color:var(--muted)}
#view-calendar .cal-top{background:var(--panel)!important;border:1px solid var(--v28-line);
 border-radius:var(--v28-radius);padding:17px 18px;margin-bottom:12px}
#view-calendar .cal-toolbar h2{font-size:18px;font-weight:740;letter-spacing:-.025em}
#view-calendar .cal-toolbar .cal-actions{gap:6px}
#view-calendar .week-main-actions{margin-top:8px}
#view-calendar .week-calendar-heading h2{font-size:16px;font-weight:700}
#view-calendar .cal-grid{gap:8px;margin-bottom:0}
#view-calendar .cal-day{background:var(--panel2)!important;border:1px solid var(--v28-line);
 border-radius:9px;min-height:190px;padding:11px}
#view-calendar .cal-day.today{border-color:color-mix(in srgb,var(--lime) 70%,var(--border));
 box-shadow:inset 0 2px 0 color-mix(in srgb,var(--lime) 73%,transparent)}
#view-calendar .cal-dayhead{border-bottom:1px solid var(--v28-line);padding-bottom:8px;margin-bottom:10px}
#view-calendar .cal-dayhead b{font-size:12px;font-weight:700}
#view-calendar .cal-dayhead span{font-size:11px}
#view-calendar .cal-dayhead button{font-size:17px;color:var(--soft)}
#view-calendar .cal-session{background:var(--panel)!important;border:1px solid var(--v28-line);
 border-left:3px solid var(--lime);border-radius:7px;padding:9px;margin-bottom:7px}
#view-calendar .cal-session strong{font-size:12px;font-weight:660}
#view-calendar .cal-session small{color:var(--muted)}
#view-calendar .cal-session .cal-mini button{background:var(--panel2);border-color:var(--v28-line);
 border-radius:6px;color:var(--soft)}
#view-calendar button.v25-actual-session{background:color-mix(in srgb,var(--panel) 92%,var(--lime) 8%)!important;
 color:var(--text);border-color:var(--v28-line);border-radius:7px}
#view-calendar button.v25-actual-session:hover{border-color:var(--lime)}
#view-calendar .v25-actual-heading{color:var(--muted);letter-spacing:.04em;font-size:10px}
#view-calendar .v25-week-status{color:var(--muted);font-size:11px;font-weight:550}
#view-calendar .v25-calendar-legend{color:var(--muted);font-size:10px}
#view-calendar .week-expandable{background:var(--panel)!important;border:1px solid var(--v28-line);border-radius:9px}
#view-calendar .week-expandable>summary{background:transparent!important;min-height:54px;padding:11px 14px}
#view-calendar .week-expandable>summary strong{font-size:12px;font-weight:700}
#view-calendar .week-expandable>summary small{font-size:11px;color:var(--muted)}
#view-calendar .v26-intelligence-wrap{background:var(--panel)!important;border-color:var(--v28-line)}
#view-calendar .v26-intelligence-wrap .v26-suggestion-badge{background:var(--panel2);
 border:1px solid var(--v28-line);color:var(--muted);letter-spacing:0;font-size:10px;font-weight:620}
#view-calendar .v24-week-tap-hint{font-size:10px;color:var(--muted)}
#view-calendar .v26-suggestion,#view-calendar .v26-preferences{background:var(--panel2);border-color:var(--v28-line)}
#view-calendar .v26-suggestion:has(input:checked){background:color-mix(in srgb,var(--panel2) 90%,var(--lime) 10%)}
/* Activity history and analytics use the same visual component system. */
#view-activities .v20-diary-head{margin-top:3px;margin-bottom:20px}
#view-activities .v20-diary-head h1{font-size:clamp(27px,3vw,38px)}
#view-activities .v20-diary-controls{background:var(--panel);border-radius:var(--v28-radius);
 border-color:var(--v28-line);gap:10px;padding:15px}
#view-activities .v20-activity-card{background:var(--panel);border-color:var(--v28-line);
 border-radius:var(--v28-radius);padding:15px 17px;margin-bottom:8px}
#view-activities .v20-month-group{font-weight:710;font-size:14px;color:var(--text)}
#view-activities .v20-activity-symbol{border-radius:8px;background:var(--panel2);font-size:20px}
#view-activities .v20-diary-summary{color:var(--muted)}
#view-insights .insight-page-head{margin-top:0;margin-bottom:18px}
#view-insights .insight-page-head h1{font-size:clamp(27px,3vw,38px)}
#view-insights .panel{margin-bottom:12px}
#view-insights .v24-analytics-wrap{margin-top:12px}
#view-settings>.page-head{margin:2px 0 20px}
#view-settings>.page-head h1{font-size:clamp(27px,3vw,38px)}
#view-settings>.panel,#view-settings>.v27-profile-panel,#view-settings>.v27-notif-panel{margin-bottom:12px}
#view-settings .v27-badge{border-radius:6px;font-weight:680;letter-spacing:0;
 color:var(--muted);border-color:var(--v28-line);padding:5px 9px}
#view-settings .v27-day span{border-radius:7px}
#view-settings .v27-profile-panel,#view-settings .v27-notif-panel{background:var(--panel);border-color:var(--v28-line)}
#view-settings .ap-panel{border-color:var(--v28-line)!important}
#view-settings .ap-heading-mark{display:none}
#view-settings .v27-form-grid label input,#view-settings .v27-form-grid label select{
 background:var(--panel2);border-color:var(--v28-line)}
/* Dialogs, menus and notifications obey the same restrained hierarchy. */
.dialog,.v27-inbox,.v20-quick-menu,.nav-explorer{
 background-color:var(--panel)!important;border-color:var(--v28-line)!important}
.dialog,.v27-inbox{border-radius:12px;box-shadow:0 18px 54px #0007}
.v27-inbox .v27-alert{background:var(--panel2);border-color:var(--v28-line);border-radius:9px}
.v27-inbox .v27-alert.new{border-left:2px solid var(--lime)}
.v27-inbox .v27-alert strong{font-weight:670}
.nav-explore-tile{background:var(--panel2);border-color:var(--v28-line);border-radius:9px}
.nav-explore-tile:hover{background:color-mix(in srgb,var(--panel2) 89%,var(--lime) 11%);color:var(--text)}
/* Mobile: clear priority, a usable week strip and swipeable day cards. */
.v28-day-rail{display:none}
@media(max-width:1050px) and (min-width:821px){
 .app{grid-template-columns:218px minmax(0,1fr)}
 .main{padding-inline:20px}
}
@media(max-width:820px){
 .main{padding:15px 15px calc(94px + env(safe-area-inset-bottom))}
 .topbar{display:flex;align-items:center;flex-wrap:nowrap;margin-bottom:18px;padding-bottom:12px;gap:8px}
 .workspace-label{flex:1 1 auto;min-width:0}
 .workspace-label .eyebrow,.workspace-label .crumb-sep{display:none}
 .workspace-label #navBreadcrumb{font-size:14px;font-weight:730;letter-spacing:-.02em}
 .top-actions{width:auto;min-width:0;justify-content:flex-end;gap:6px;flex:0 0 auto}
 .top-actions #topImport,.top-actions #profileQuickButton,.top-actions #syncBadge{display:none!important}
 .top-actions #topLog{min-height:36px;padding:7px 11px;font-size:11px}
 .top-actions .v20-top-search{font-size:0;padding:7px 9px;min-width:36px}
 .top-actions .v27-bell{min-width:36px}
 .mobile-tabs{background:var(--panel)!important;border-color:var(--v28-line);box-shadow:none;
  padding:6px 5px calc(7px + env(safe-area-inset-bottom))}
 .mobile-tabs button{border-radius:8px;font-size:10px;font-weight:610;color:var(--muted)}
 .mobile-tabs button.active{background:color-mix(in srgb,var(--lime) 10%,var(--panel));color:var(--text)}
 .mobile-tabs button b{font-weight:400}
 #view-overview .v20-home-head{margin-top:2px}
 #view-overview .v20-hero-grid,#view-overview .v20-widget-grid{grid-template-columns:minmax(0,1fr);gap:10px}
 #view-overview .v20-card{min-height:0;padding:18px}
 #view-calendar .cal-top{padding:15px 12px}
 #view-calendar .week-page-head{margin-bottom:10px}
 #view-calendar .cal-grid{display:grid;grid-template-columns:none!important;grid-auto-flow:column;
  grid-auto-columns:minmax(220px,76vw);gap:10px;overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;scroll-padding-inline:2px;padding:2px 2px 12px;margin:0;
  scrollbar-width:thin;scrollbar-color:var(--border) transparent}
 #view-calendar .cal-day{scroll-snap-align:start;min-width:0;min-height:196px;max-height:440px;
  overflow-y:auto;overscroll-behavior-y:contain}
 #view-calendar .cal-day .cal-session{margin-bottom:7px}
 .v28-day-rail{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;
  margin:5px 0 11px;max-width:100%;min-width:0}
 .v28-day-rail button{min-width:0;min-height:54px;padding:6px 2px;display:grid;justify-items:center;gap:1px;
  border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);
  font-size:10px;font-weight:570;cursor:pointer}
 .v28-day-rail button strong{font-size:13px;font-weight:690;color:var(--soft)}
 .v28-day-rail button small{display:block;width:4px;height:4px;background:transparent;border-radius:50%}
 .v28-day-rail button[data-has-training="true"] small{background:var(--lime);opacity:.72}
 .v28-day-rail button[aria-pressed="true"]{background:var(--panel2);border-color:var(--v28-line);color:var(--text)}
 .v28-day-rail button[aria-pressed="true"] strong{color:var(--text)}
 .v28-day-rail button.is-today{box-shadow:inset 0 -2px 0 var(--lime)}
 .v28-day-rail button:focus-visible{outline:2px solid var(--lime);outline-offset:1px}
 #view-calendar .v25-calendar-intro{margin-bottom:0}
 #view-calendar .v24-week-tap-hint{margin:4px 2px 12px}
 #view-calendar .week-calendar-heading p{font-size:11px}
 #view-calendar .week-calendar-hint{display:none}
 #view-calendar .v26-intelligence-wrap>summary small{max-width:48ch}
 #view-calendar .cal-actions .btn{flex:initial}
 .v27-inbox{top:62px;right:12px}
}
@media(max-width:450px){
 .main{padding-inline:12px}
 .top-actions .v20-top-search{display:none!important}
 .top-actions #topLog{font-size:11px;padding:8px 10px}
 #view-calendar .week-main-actions .btn{min-width:0;width:auto;flex:1 1 120px}
 #view-calendar .cal-toolbar .cal-actions{display:flex;width:100%}
 #view-calendar .cal-toolbar .cal-actions .btn{flex:1 1 0;min-width:0;font-size:11px;padding:7px 5px}
 #view-calendar .cal-grid{grid-auto-columns:minmax(220px,85vw)}
 #view-calendar .week-main-actions{gap:6px}
 #view-calendar .v25-calendar-legend{display:none}
 .v28-day-rail button{font-size:9px}
}
@media(prefers-reduced-motion:reduce){
 .btn{transition:none}
 #view-calendar .cal-grid{scroll-behavior:auto}
}

/* Consistent utility line icons, including compact navigation. */
.mobile-tabs button b{display:flex;align-items:center;justify-content:center}
.mobile-tabs button b svg{display:block;width:21px;height:21px}
.top-actions .v27-bell{display:inline-flex;align-items:center;justify-content:center}
.top-actions .v27-bell svg{width:18px;height:18px;flex:none}
.top-actions .v20-top-search{align-items:center;gap:7px}
.top-actions .v20-top-search svg{width:16px;height:16px;flex:none}
.nav-explore-tile .nav-icon svg,.sidebar .nav-secondary .nav-icon svg{width:17px;height:17px}
#view-insights .v24-analytics-wrap>summary{font-weight:670}
