:root{
  --bg:#0c0f17;--bg2:#121623;--panel:#161b2b;--panel2:#1c2334;
  --line:#242c40;--txt:#e8ecf5;--muted:#8a94ad;--accent:#fc5200;--accent2:#ff7a33;
  --green:#25d07d;--red:#ff5c6c;--blue:#4b8bff;--yellow:#ffc74a;
  --radius:16px;--shadow:0 10px 40px rgba(0,0,0,.35);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--txt);line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.view{display:none}
.view.active{display:block}

/* buttons */
.btn{border:0;border-radius:10px;padding:10px 18px;font-weight:600;font-size:14px;cursor:pointer;font-family:inherit;transition:.15s;display:inline-flex;align-items:center;gap:8px;justify-content:center}
.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff}
.btn-primary:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--txt);border:1px solid var(--line)}
.btn-ghost:hover{background:var(--panel2)}
.btn-outline{background:var(--panel2);color:var(--txt);border:1px solid var(--line)}
.btn-outline:hover{border-color:var(--accent)}
.btn-strava{background:#fc5200;color:#fff}
.btn-strava:hover{filter:brightness(1.08)}
.btn-lg{padding:14px 26px;font-size:16px}
.btn-block{width:100%}

/* brand */
.brand{font-weight:800;font-size:20px;display:flex;align-items:center;gap:8px}
.brand.small{font-size:18px}
.logo{color:var(--accent);font-size:22px}
.accent{color:var(--accent)}

/* ===== landing — product first ===== */
#view-landing{--pf-bg:#090c0b;--pf-panel:#151a17;--pf-panel2:#1c221e;--pf-line:#303732;--pf-text:#eef3ef;--pf-muted:#909b93;--pf-green:#a5f0a9;background:var(--pf-bg);color:var(--pf-text)}
#view-landing .nav{height:70px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50;background:rgba(9,12,11,.95);backdrop-filter:blur(12px);border-bottom:1px solid #252b27}#view-landing .brand{color:#f4f6f4}#view-landing .logo{color:var(--pf-green)}#view-landing .nav-links{display:flex;align-items:center;gap:28px}#view-landing .nav-links a,#view-landing .nav-login{font:600 12px Inter;color:#a1aaa3;background:none;border:0;cursor:pointer}#view-landing .nav-links a:hover,#view-landing .nav-login:hover{color:#fff}#view-landing .btn{border-radius:4px}#view-landing .btn-primary{background:var(--pf-green);color:#0d140f;box-shadow:none}#view-landing .btn-primary:hover{background:#bcf6bf;filter:none}
.pf-hero{min-height:850px;padding:82px 7vw 0;text-align:center;overflow:hidden;background:radial-gradient(circle at 50% 28%,#17261b 0,transparent 42%)}.pf-hero-copy{max-width:900px;margin:auto}.pf-kicker{font-size:10px;letter-spacing:1.9px;color:var(--pf-green);font-weight:700}.pf-hero h1{font-size:clamp(52px,5.4vw,76px);line-height:1.01;letter-spacing:-3.8px;font-weight:650;margin:18px 0}.pf-hero-copy>p:not(.pf-kicker){color:var(--pf-muted);max-width:620px;margin:0 auto 29px;font-size:16px;line-height:1.7}.pf-actions{display:flex;justify-content:center;align-items:center;gap:23px}.pf-link{font:600 13px Inter;color:#e5ebe6;background:none;border:0;border-bottom:1px solid #566159;padding:10px 0;cursor:pointer}.pf-link span{color:var(--pf-green);margin-left:11px}.pf-link.light{color:#fff}
.product-window{width:min(1080px,94vw);height:430px;margin:62px auto 0;background:var(--pf-panel);border:1px solid #39413b;border-radius:9px 9px 0 0;box-shadow:0 28px 90px rgba(0,0,0,.65);display:grid;grid-template-columns:190px 1fr;text-align:left;overflow:hidden}.product-side{padding:24px 16px 18px;border-right:1px solid var(--pf-line);display:flex;flex-direction:column}.product-side .brand{margin:0 8px 35px;font-size:16px}.product-nav{display:flex;flex-direction:column;gap:4px}.product-nav span{font-size:10px;color:#747e77;padding:10px 11px;border-radius:3px}.product-nav span.active{background:#242b26;color:#fff;border-left:2px solid var(--pf-green)}.product-user{margin-top:auto;border-top:1px solid var(--pf-line);padding:16px 5px 0;display:flex;align-items:center;gap:9px}.product-user>i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#333c36;font:700 9px Inter}.product-user b,.product-user small{display:block}.product-user b{font-size:9px}.product-user small{font-size:8px;color:#747e77;margin-top:2px}.product-main{padding:26px 30px}.product-head{display:flex;justify-content:space-between;align-items:start}.product-head small,.product-today small,.product-chart small,.product-readiness small{font-size:8px;letter-spacing:1.1px;color:#758078}.product-head h2{font-size:22px;margin-top:3px}.product-head>span{font-size:8px;color:#778179;border:1px solid var(--pf-line);padding:7px 9px}.product-head>span i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--pf-green);margin-right:5px}.product-today{margin-top:22px;background:#202622;border:1px solid #343c36;padding:22px;display:grid;grid-template-columns:1fr 190px;align-items:center}.product-today h3{font-size:20px;margin:7px 0 3px}.product-today p{font-size:9px;color:#7f8982}.pf-bars{height:54px;display:flex;align-items:end;gap:4px}.pf-bars i{width:13px;height:24%;background:#68736b}.pf-bars i.hard{height:82%;background:var(--pf-green)}.product-lower{display:grid;grid-template-columns:1.6fr .7fr;gap:14px;margin-top:14px}.product-chart,.product-readiness{height:150px;border:1px solid var(--pf-line);padding:16px;background:#181e1a}.product-chart svg{height:88px;width:100%;margin-top:5px}.product-chart line{stroke:#303833;stroke-width:1}.product-chart polyline{fill:none;stroke:var(--pf-green);stroke-width:2}.product-chart>div{display:flex;justify-content:space-between;color:#667169;font-size:7px}.product-readiness strong{display:block;color:var(--pf-green);font-size:44px;font-weight:500;line-height:1;margin:13px 0 2px}.product-readiness>span{font-size:9px;color:#909b93}.product-readiness>div{height:3px;background:#303832;margin-top:15px}.product-readiness>div i{display:block;height:100%;background:var(--pf-green)}
.pf-intro{padding:120px 8vw;background:#eff1ed;color:#111713;display:grid;grid-template-columns:1fr 1fr;gap:12vw;align-items:end}.pf-intro .pf-kicker,.pf-pricing .pf-kicker{color:#337449;margin-bottom:18px}.pf-intro h2,.pf-coach h2,.pf-pricing h2,.pf-final h2{font-size:clamp(38px,4vw,53px);line-height:1.08;letter-spacing:-2.3px;font-weight:620}.pf-intro>p{color:#606861;line-height:1.8;max-width:500px}
.pf-features{background:#eff1ed;color:#111713;padding:0 8vw 115px;display:grid;grid-template-columns:repeat(3,1fr);gap:5vw}.pf-features article{border-top:1px solid #aeb4ae;padding-top:25px}.pf-features article>span{font-size:10px;color:#5c7e65}.pf-features h3{font-size:18px;margin:24px 0 10px}.pf-features p{font-size:13px;color:#687069;line-height:1.7}
.pf-coach{min-height:590px;background:#141916;padding:95px 9vw;display:grid;grid-template-columns:.9fr 1.1fr;gap:11vw;align-items:center}.coach-copy>p:not(.pf-kicker){color:var(--pf-muted);line-height:1.75;margin:24px 0;max-width:520px}.coach-message{background:#1d231f;border:1px solid #3a423c;padding:31px;box-shadow:18px 18px 0 #101411}.coach-message>div:first-child{display:flex;align-items:center;gap:11px}.coach-message>div:first-child i{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--pf-green);color:#111712;font:700 14px Inter}.coach-message b,.coach-message small{display:block}.coach-message b{font-size:12px}.coach-message small{font-size:8px;color:#727e75;margin-top:3px}.coach-message blockquote{font-size:21px;line-height:1.55;margin:31px 0;color:#dfe5e0;font-weight:450}.coach-session{border-top:1px solid #3b433d;padding-top:18px}.coach-session span,.coach-session small,.coach-session strong{display:block}.coach-session span{font-size:8px;color:#778179;letter-spacing:1px}.coach-session strong{font-size:13px;margin:7px 0}.coach-session small{font-size:9px;color:#778179}
.pf-pricing{padding:110px 9vw;background:#eff1ed;color:#111713;display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center}.pf-pricing>div:first-child>p:last-child{color:#697069;margin-top:20px}.price-panel{border-block:1px solid #aab1aa;padding:26px 0}.price-panel>div{display:flex;align-items:end;gap:14px}.price-panel strong{font-size:53px;font-weight:500}.price-panel>div span{font-size:9px;color:#6c746d;margin-bottom:11px}.price-panel ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;margin:24px 0}.price-panel li{font-size:11px;color:#596159;padding:8px 0}.price-panel li:before{content:"—";margin-right:8px;color:#458459}
.pf-final{text-align:center;padding:105px 24px}.pf-final h2{margin:15px 0 28px}.footer{padding:35px 5.5vw;border-top:1px solid var(--pf-line);display:flex;align-items:center;justify-content:space-between;color:#737e77}.footer .brand{margin:0;color:#f4f6f4}.footer>div:nth-child(2){display:flex;gap:25px;font-size:11px}.footer p{font-size:10px}
@media(max-width:900px){#view-landing .nav-links a{display:none}.product-window{grid-template-columns:1fr}.product-side{display:none}.pf-intro,.pf-coach,.pf-pricing{grid-template-columns:1fr;gap:55px}.pf-features{grid-template-columns:1fr}.pf-hero{padding-inline:4vw}.coach-message{box-shadow:9px 9px 0 #101411}.footer{flex-wrap:wrap;gap:20px}}
@media(max-width:600px){#view-landing .nav{padding-inline:18px}#view-landing .nav-login{display:none}#view-landing .nav-links{gap:8px}.pf-hero{padding-top:60px;min-height:800px}.pf-hero h1{font-size:45px;letter-spacing:-2px}.pf-actions{flex-direction:column;gap:8px}.product-window{height:390px;margin-top:45px}.product-main{padding:20px 14px}.product-today{grid-template-columns:1fr}.pf-bars{display:none}.product-lower{grid-template-columns:1fr}.product-readiness{display:none}.pf-intro,.pf-features,.pf-coach,.pf-pricing{padding-inline:22px}.price-panel ul{grid-template-columns:1fr}.footer>div:nth-child(2){order:3;width:100%}}

/* ===== login ===== */
.login-wrap{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}
.login-left{background:linear-gradient(160deg,#1a1005,#0c0f17 60%);padding:50px 5vw;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line)}
.login-quote p{font-size:26px;font-weight:700;line-height:1.35;max-width:440px}
.login-quote span{color:var(--muted);display:block;margin-top:16px}
.login-metrics{display:flex;gap:34px}
.login-metrics b{font-size:26px;color:var(--accent2);display:block}
.login-metrics span{color:var(--muted);font-size:13px}
.login-right{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:18px}
.login-card{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:36px;width:100%;max-width:400px;box-shadow:var(--shadow)}
.login-card h2{font-size:26px;margin-bottom:6px}
.login-card .muted{margin-bottom:22px}
.login-card label{display:block;font-size:13px;color:var(--muted);margin:14px 0 6px;font-weight:500}
.login-card input[type=email],.login-card input[type=password]{width:100%;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;color:var(--txt);font-size:14px;font-family:inherit}
.login-card input:focus{outline:none;border-color:var(--accent)}
.strava-mark{font-size:18px}
.divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin:20px 0}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}
.login-row{display:flex;justify-content:space-between;align-items:center;margin:16px 0;font-size:13px}
.login-row a{color:var(--accent2)}
.check{display:flex;align-items:center;gap:6px;color:var(--muted)}
.center{text-align:center;margin-top:16px}
.center a{color:var(--accent2)}
.link-back{background:none;border:0;color:var(--muted);cursor:pointer;font-size:13px;font-family:inherit}

/* ===== dashboard v3 — editorial training workspace ===== */
#view-dashboard{--bg:#f3f1ec;--bg2:#ece9e2;--panel:#fff;--panel2:#f7f5f0;--line:#dedbd3;--txt:#181a17;--muted:#74766f;--green:#32885b;--blue:#326c88;--yellow:#aa7429;background:var(--bg);color:var(--txt)}
.btn-sm{padding:8px 14px;font-size:13px}
.app{display:grid;grid-template-columns:222px 1fr;min-height:100vh;background:var(--bg)}
.sidebar{background:#20221e;border-right:0;padding:24px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;color:#f1f1ed}
.sidebar .brand.small{padding:4px 9px 0;color:#fff}.sidebar .accent{color:#ff6830}
.side-nav{display:flex;flex-direction:column;gap:2px;margin-top:34px;flex:1}
.side-nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:6px;color:#92968e;font-size:13.5px;font-weight:500;cursor:pointer;transition:.12s}
.side-nav a svg{width:17px;height:17px;fill:currentColor;opacity:.8;flex-shrink:0}
.side-nav a:hover{background:#2b2e29;color:#fff}.side-nav a.active{background:#30332d;color:#fff}.side-nav a.active svg{fill:#ff6830;opacity:1}
.side-foot{display:flex;align-items:center;gap:10px;padding:15px 8px 4px;border-top:1px solid #373a34}.avatar{width:36px;height:36px;border-radius:50%;background:#d6d1c7;color:#242621;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.side-foot b{font-size:13px;display:block}.side-foot span{font-size:11px;color:#8f938b}
.content{padding:28px 34px 60px;overflow:auto;max-width:1600px;width:100%}.topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:26px}.crumb{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:5px}.topbar h1{font-size:25px;font-weight:650;letter-spacing:-.6px}.topbar h1+p{margin-top:3px;font-size:13px}.topbar-right{display:flex;align-items:center;gap:10px}.sync{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:var(--muted);background:transparent;padding:8px 10px;border-radius:6px;border:1px solid var(--line)}.dot-live{width:6px;height:6px;border-radius:50%;background:var(--green)}
#view-dashboard .btn-ghost{color:var(--txt);border-color:var(--line)}
.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px;align-items:start}.main-flow{min-width:0}.insight-rail{display:flex;flex-direction:column;gap:14px;position:sticky;top:24px}
.today-card{display:grid;grid-template-columns:84px minmax(0,1fr) auto;gap:22px;align-items:center;background:#20221e;color:#fff;border-radius:10px;padding:22px 24px;margin-bottom:28px;overflow:hidden;position:relative}.today-card:after{content:"";position:absolute;width:240px;height:240px;border:1px solid #3b3e38;border-radius:50%;right:120px;top:-170px}.today-date{border-right:1px solid #3c3f39;padding-right:20px;text-align:center;display:flex;flex-direction:column}.today-date span,.today-date small{font-size:9px;letter-spacing:1.4px;color:#9b9f96}.today-date strong{font-size:37px;line-height:1.05;font-weight:600}.eyebrow{font-size:9.5px;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);font-weight:650}.today-card .eyebrow{color:#aeb1a9}.session-dot{width:6px;height:6px;border-radius:50%;display:inline-block;margin-right:4px}.session-dot.threshold{background:#ff6830}.today-session h2{font-size:22px;letter-spacing:-.5px;margin:5px 0 2px;font-weight:600}.today-session p{font-size:12px;color:#aeb1aa}.workout-profile{height:30px;display:flex;align-items:flex-end;gap:3px;margin-top:13px;max-width:300px}.workout-profile i{display:block;flex:1;background:#6f736b;min-height:4px}.workout-profile i.hard{background:#ff6830}.start-btn{background:#f5f3ed;color:#20221e;border:0;border-radius:6px;padding:11px 14px;font:600 12px Inter;cursor:pointer;white-space:nowrap}.start-btn span{margin-left:12px}
.section-block{border-top:1px solid #d7d3ca;padding:24px 0 28px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:16px}.section-head.compact{align-items:center}.section-head h2{font-size:19px;font-weight:620;letter-spacing:-.35px;margin-top:2px}.adaptation-note{display:block;margin-top:5px;font-size:10px;color:var(--sage);font-weight:650}.week-total{text-align:right}.week-total strong{font-size:14px;display:block}.week-total span{font-size:11px;color:var(--muted)}
.week-strip{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel)}.wday{padding:13px 10px 12px;min-width:0;border-right:1px solid var(--line);position:relative}.wday:last-child{border-right:0}.wday>span{font-size:9px;color:var(--muted);letter-spacing:.6px}.wday b{font-size:11.5px;display:block;margin-top:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wday small{display:block;font-size:9.5px;color:var(--muted);margin-top:2px}.wday.complete{background:#f1efe9}.wday.complete:after{content:"✓";position:absolute;right:8px;top:10px;font-size:9px;color:var(--green)}.wday.missed{background:#f7f3ef}.wday.missed:after{content:"–";position:absolute;right:8px;top:8px;font-size:12px;color:var(--accent)}.wday.current{background:#fff8f4;box-shadow:inset 0 3px #ff6830}.wicon{height:29px;margin:10px 0 2px;position:relative;border-bottom:1px solid #d2cfc7}.wicon:after{content:"";position:absolute;bottom:0;left:5%;right:5%;height:7px;background:#7d8179}.wicon.rest:after{height:2px;background:#c7c4bc}.wicon.endurance:after{height:10px;background:#4382a0}.wicon.threshold:after{height:22px;background:#ff6830;clip-path:polygon(0 100%,0 45%,14% 45%,14% 0,28% 0,28% 45%,42% 45%,42% 0,56% 0,56% 45%,70% 45%,70% 0,84% 0,84% 45%,100% 45%,100% 100%)}.wicon.tempo:after{height:15px;background:#af7936}.wicon.long:after{height:11px;background:#548b6a}
.chart-block{padding-bottom:18px}.legend{display:flex;gap:14px;font-size:10px}.lg{display:flex;align-items:center;gap:5px;color:var(--muted)}.lg::before{content:"";width:12px;height:2px}.lg-ctl::before{background:var(--blue)}.lg-atl::before{background:var(--accent)}.lg-tsb::before{background:var(--green)}.chart{height:220px;position:relative;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px}.chart svg{width:100%;height:100%;overflow:visible}.chart .gl{stroke:#dedbd3;stroke-width:1}.chart .axlbl{fill:#8a8b85;font-size:10px}.chart .pt{fill:#fff}
.text-link{font-size:11px;color:var(--muted);cursor:pointer}.ride-list{border-top:1px solid var(--line)}.ride-row{display:grid;grid-template-columns:48px minmax(145px,1.8fr) repeat(4,minmax(60px,.7fr)) 74px;gap:12px;align-items:center;padding:12px 2px;border-bottom:1px solid var(--line)}.ride-row>div:not(.ride-map){display:flex;flex-direction:column}.ride-row b{font-size:11.5px;font-weight:600}.ride-row span{font-size:9.5px;color:var(--muted);margin-top:2px}.ride-map{width:44px;height:34px;border-radius:4px;background-color:#dedbd3;position:relative;overflow:hidden}.ride-map:after{content:"";position:absolute;inset:5px 4px;border:2px solid #747970;border-left-color:transparent;border-radius:50% 35% 48% 30%;transform:rotate(-15deg)}.map2:after{border-radius:35% 60% 30% 50%;transform:rotate(25deg)}.map3:after{border-radius:10%;transform:rotate(0)}.ride-status{justify-self:end;padding:4px 7px;border-radius:4px;font-size:9px!important;font-weight:600}.ride-status.good{background:#e4eee7;color:#32704e}.ride-status.warn{background:#f3e8d8;color:#95611f}
.coach-brief{background:#20221e;color:#f6f5f1;padding:20px;border-radius:9px}.coach-byline{display:flex;align-items:center;gap:10px}.coach-avatar{width:32px;height:32px;background:#ff6830;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}.coach-byline b{display:block;font-size:13px}.coach-byline span{display:block;color:#9b9e97;font-size:10px}.coach-brief>p{font-size:13px;line-height:1.55;margin:18px 0 13px}.coach-brief blockquote{border-left:2px solid #ff6830;padding-left:12px;color:#c3c5bf;font-size:11.5px;line-height:1.5}.brief-actions{display:flex;gap:7px;margin-top:18px}.brief-actions button{flex:1;background:#f3f1ec;color:#20221e;border:0;border-radius:5px;padding:9px;font:600 11px Inter}.brief-actions .icon-btn{flex:0 0 36px}
.rail-section{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px}.rail-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.rail-head h3{font-size:12.5px}.rail-head>span{font-size:10px;color:var(--muted)}.rail-head .score{font-size:19px;color:var(--txt);font-weight:650}.signal{display:grid;grid-template-columns:52px 1fr 42px;align-items:center;gap:8px;margin:10px 0}.signal>span,.signal>b{font-size:10px}.signal>b{text-align:right}.signal>div{height:4px;background:#e4e1da;border-radius:4px}.signal i{display:block;height:100%;background:var(--green);border-radius:4px}.signal i.orange{background:#d58947}.source{font-size:9px;color:var(--muted);margin-top:14px}.race-visual{height:76px;border-radius:5px;background:#d9ddd7;position:relative;overflow:hidden;margin-bottom:13px}.race-visual span{position:absolute;top:8px;left:9px;font-size:9px;font-weight:700;letter-spacing:.8px}.mountains{position:absolute;left:0;right:0;bottom:0;height:62px;background:#8d978b;clip-path:polygon(0 100%,0 82%,16% 48%,27% 70%,43% 18%,58% 67%,72% 35%,100% 78%,100% 100%)}.target-card h4{font-size:14px}.target-card>p{font-size:10.5px;color:var(--muted);margin-top:3px}.phase{display:flex;justify-content:space-between;margin-top:15px}.phase span,.phase b{font-size:9.5px}.phase-track{height:5px;background:#e5e2da;border-radius:4px;margin-top:7px}.phase-track i{display:block;height:100%;background:#ff6830;border-radius:4px}.numbers{display:grid;grid-template-columns:repeat(3,1fr);padding:14px 10px}.numbers div{padding:0 8px;border-right:1px solid var(--line)}.numbers div:last-child{border:0}.numbers span,.numbers small{font-size:8.5px;color:var(--muted);display:block}.numbers b{font-size:14px;display:block;margin:3px 0 1px}
@media(max-width:1100px){.workspace-grid{grid-template-columns:1fr}.insight-rail{position:static;display:grid;grid-template-columns:repeat(2,1fr)}.ride-row{grid-template-columns:40px 1.5fr repeat(2,.7fr)}.ride-row>div:nth-of-type(5),.ride-row>div:nth-of-type(6){display:none}.ride-status{display:none}}
@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{display:none}.content{padding:20px}.today-card{grid-template-columns:60px 1fr}.start-btn{display:none}.week-strip{overflow:auto;grid-template-columns:repeat(7,120px)}.insight-rail{grid-template-columns:1fr}}

.muted{color:var(--muted)}
.small{font-size:12px}

/* ===== Product-first alignment: login + dashboard ===== */
#view-login{--bg:#090c0b;--bg2:#111613;--panel:#151a17;--panel2:#1c221e;--line:#303732;--txt:#eef3ef;--muted:#909b93;--accent:#a5f0a9;--accent2:#bcf6bf;background:var(--bg);color:var(--txt)}
#view-login .login-wrap{background:var(--bg)}
#view-login .login-left{position:relative;overflow:hidden;background:radial-gradient(circle at 18% 58%,#1c3021 0,transparent 38%),#0c100e;border-right:1px solid #252b27;padding:48px 6vw}
#view-login .login-left:after{content:"";position:absolute;width:520px;height:520px;border:1px solid #29322c;border-radius:50%;left:-250px;bottom:-270px}
#view-login .brand{position:relative;z-index:1;color:#f4f6f4}#view-login .logo{color:var(--accent)}
#view-login .login-quote{position:relative;z-index:1;max-width:540px}
#view-login .login-quote:before{content:"RÉSULTAT ATHLÈTE";display:block;margin-bottom:25px;color:var(--accent);font-size:9px;font-weight:700;letter-spacing:1.8px}
#view-login .login-quote p{font-size:clamp(28px,3vw,44px);font-weight:540;letter-spacing:-1.5px;line-height:1.22;color:#e7ece8}
#view-login .login-quote span{font-size:12px;color:#7f8b82;margin-top:22px}
#view-login .login-metrics{position:relative;z-index:1;padding-top:24px;border-top:1px solid #303832;gap:0}
#view-login .login-metrics div{min-width:145px;padding-right:28px}
#view-login .login-metrics b{color:var(--accent);font-size:28px;font-weight:550}
#view-login .login-metrics span{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#778179}
#view-login .login-right{background:#090c0b;padding:46px}
#view-login .login-card{max-width:430px;background:transparent;border:0;border-radius:0;padding:10px;box-shadow:none}
#view-login .login-kicker{font-size:9px!important;letter-spacing:1.7px;color:var(--accent)!important;font-weight:700;margin-bottom:15px!important}
#view-login .login-card h2{font-size:35px;font-weight:590;letter-spacing:-1.4px;margin-bottom:6px}
#view-login .login-card>.muted{font-size:13px;margin-bottom:30px;color:#889289}
#view-login .btn{border-radius:4px;min-height:45px}
#view-login .btn-strava,#view-login .btn-outline{background:#171c19;color:#e7ece8;border:1px solid #323a34;margin-bottom:9px}
#view-login .btn-strava:hover,#view-login .btn-outline:hover{border-color:#647067;background:#1d241f;filter:none}
#view-login .provider-mark{display:grid;place-items:center;width:19px;height:19px;border:1px solid #59645c;border-radius:50%;font-size:8px;font-weight:700;color:var(--accent)}
#view-login .divider{color:#69736b;margin:22px 0}
#view-login .login-card label{font-size:11px;color:#929d94;margin-top:15px}
#view-login .login-card input[type=email],#view-login .login-card input[type=password]{border-radius:3px;background:#111613;border-color:#303732;color:#eef3ef;padding:13px 14px}
#view-login .login-card input:focus{border-color:var(--accent)}
#view-login .login-row a,#view-login .center a{color:#b3eeb7}
#view-login .btn-primary{background:var(--accent);color:#0d140f;box-shadow:none;margin-top:2px}
#view-login .btn-primary:hover{background:#bcf6bf;filter:none}
#view-login .center{font-size:12px;color:#7d887f}
#view-login .link-back{color:#727c74}

#view-dashboard{--bg:#f2f4f0;--bg2:#e9ece7;--panel:#fff;--panel2:#f7f8f5;--line:#d9ded8;--txt:#171c18;--muted:#707a72;--green:#3d8150;--blue:#4d8170;--yellow:#a88438;--accent:#3d8150;background:var(--bg);color:var(--txt)}
#view-dashboard .app{background:var(--bg)}
#view-dashboard .sidebar{background:#0d110f;border-right:1px solid #262c28;color:#eef3ef}
#view-dashboard .sidebar .logo,#view-dashboard .sidebar .accent{color:#a5f0a9}
#view-dashboard .side-nav a{color:#78837b;border-radius:4px}
#view-dashboard .side-nav a:hover{background:#171d19;color:#fff}#view-dashboard .side-nav a.active{background:#202722;color:#f1f5f2;border-left:2px solid #a5f0a9}#view-dashboard .side-nav a.active svg{fill:#a5f0a9}
#view-dashboard .side-foot{border-color:#2b322d}#view-dashboard .avatar{background:#29322c;color:#dfe8e1}
#view-dashboard .content{background:radial-gradient(circle at 82% 0,#e3eee4 0,transparent 28%),var(--bg)}
#view-dashboard .sync{background:#fff;border-color:var(--line)}
#view-dashboard .today-card{background:#fff;color:var(--txt);border:1px solid var(--line);border-radius:7px;box-shadow:0 16px 40px rgba(24,35,27,.07)}
#view-dashboard .today-card:after{border-color:#e0e8e1}#view-dashboard .today-date{border-color:#dce2dc}#view-dashboard .today-date span,#view-dashboard .today-date small,#view-dashboard .today-card .eyebrow,#view-dashboard .today-session p{color:var(--muted)}#view-dashboard .session-dot.threshold{background:#65b976}
#view-dashboard .workout-profile i{background:#b8c4ba}#view-dashboard .workout-profile i.hard{background:#65b976}
#view-dashboard .start-btn{background:#b7efb9;color:#102014;border-radius:3px}
#view-dashboard .section-block{border-color:#d4dad4}
#view-dashboard .week-strip,#view-dashboard .chart{background:#fff;border-color:var(--line);border-radius:5px}
#view-dashboard .wday{border-color:var(--line)}#view-dashboard .wday.complete{background:#f5f6f3}#view-dashboard .wday.current{background:#edf7ed;box-shadow:inset 0 3px #65b976}
#view-dashboard .wicon{border-color:#d6dbd5}#view-dashboard .wicon:after{background:#7a877d}#view-dashboard .wicon.rest:after{background:#c1c8c1}#view-dashboard .wicon.threshold:after{background:#65b976}#view-dashboard .wicon.tempo:after{background:#b49a51}
#view-dashboard .lg-atl::before{background:#a88438}#view-dashboard .chart .gl{stroke:#e2e6e1}#view-dashboard .chart .axlbl{fill:#7a827b}#view-dashboard .chart .pt{fill:#fff}
#view-dashboard .ride-list,#view-dashboard .ride-row{border-color:var(--line)}#view-dashboard .ride-map{background:#dfe5df}#view-dashboard .ride-map:after{border-color:#76847a;border-left-color:transparent}
#view-dashboard .ride-status.good{background:#e5f1e7;color:#367347}#view-dashboard .ride-status.warn{background:#f3edda;color:#806827}
#view-dashboard .coach-brief{background:#fff;color:var(--txt);border:1px solid var(--line);border-radius:6px}#view-dashboard .coach-avatar{background:#b7efb9;color:#111712}#view-dashboard .coach-byline span{color:var(--muted)}#view-dashboard .coach-brief blockquote{border-color:#65b976;color:#5e695f}#view-dashboard .brief-actions button{background:#b7efb9;color:#111712;border-radius:3px}
#view-dashboard .rail-section{background:#fff;border-color:var(--line);border-radius:5px}
#view-dashboard .signal>div{background:#e4e8e3}#view-dashboard .signal i{background:#65b976}#view-dashboard .signal i.orange{background:#b49a51}
#view-dashboard .race-visual{background:#e0e7e0;color:#273129}#view-dashboard .phase-track{background:#e1e6e1}#view-dashboard .phase-track i{background:#65b976}
#view-dashboard .numbers>div{border-color:var(--line)}
@media(max-width:760px){#view-login .login-wrap{grid-template-columns:1fr}#view-login .login-left{display:none}#view-login .login-right{padding:28px 18px;min-height:100vh}}

/* ===== onboarding ===== */
#view-onboarding{--ob-bg:#090c0b;--ob-panel:#151a17;--ob-panel2:#1c221e;--ob-line:#303732;--ob-txt:#eef3ef;--ob-muted:#909b93;--ob-green:#a5f0a9;background:var(--ob-bg);color:var(--ob-txt);min-height:100vh}
.onboarding-shell{min-height:100vh}.onboarding-top{height:74px;border-bottom:1px solid #252b27;display:grid;grid-template-columns:1fr 300px 1fr;align-items:center;padding:0 42px}.onboarding-top .brand{background:none;border:0;color:#f4f6f4;cursor:pointer;justify-self:start}.onboarding-top .logo{color:var(--ob-green)}.onboarding-progress>span{display:block;text-align:center;font-size:9px;letter-spacing:1.1px;color:#7d887f;margin-bottom:8px}.onboarding-progress>div{height:2px;background:#272e29}.onboarding-progress i{display:block;height:100%;width:20%;background:var(--ob-green);transition:width .3s}.onboarding-exit{justify-self:end;background:none;border:0;color:#7f8981;font:600 11px Inter;cursor:pointer}
.onboarding-main{display:grid;grid-template-columns:minmax(300px,36%) 1fr;min-height:calc(100vh - 74px)}.onboarding-context{padding:70px 6vw;background:radial-gradient(circle at 20% 35%,#1c3021 0,transparent 38%),#0c100e;border-right:1px solid #252b27;display:flex;flex-direction:column}.ob-kicker{font-size:9px;letter-spacing:1.7px;color:var(--ob-green);font-weight:700}.onboarding-context h2{font-size:clamp(32px,3vw,46px);line-height:1.12;letter-spacing:-1.8px;font-weight:560;max-width:470px;margin:22px 0}.onboarding-context>p:not(.ob-kicker){color:#849087;font-size:13px;line-height:1.7;max-width:430px}.ob-summary{margin-top:auto;border-top:1px solid #303832;padding-top:22px}.ob-summary>span{font-size:8px;letter-spacing:1.2px;color:#68736b}.ob-summary>div{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid #242b26;padding:13px 0}.ob-summary small{font-size:10px;color:#748078}.ob-summary b{font-size:10px;color:#cdd5cf;text-align:right;font-weight:600}
.onboarding-form{width:min(820px,100%);padding:64px 70px 30px;display:flex;flex-direction:column;margin:auto;min-height:calc(100vh - 74px)}.ob-step{display:none;animation:obIn .25s ease}.ob-step.active{display:block}@keyframes obIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.ob-step h1{font-size:clamp(35px,4vw,52px);letter-spacing:-2px;line-height:1.08;font-weight:590;margin:16px 0 10px}.ob-lead{font-size:14px;color:var(--ob-muted);margin-bottom:34px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice-card{background:#141916;border:1px solid #303732;color:#e9eeea;text-align:left;padding:20px;min-height:118px;cursor:pointer;font-family:Inter;transition:.15s}.choice-card:hover{border-color:#69756c;background:#19201b}.choice-card.selected{border-color:var(--ob-green);background:#1a261d;box-shadow:inset 0 0 0 1px var(--ob-green)}.choice-card>span{display:block;color:#657168;font-size:9px;margin-bottom:18px}.choice-card b,.choice-card small{display:block}.choice-card b{font-size:13px}.choice-card small{font-size:10px;color:#7e8981;margin-top:5px}.ob-fields{display:grid;gap:12px;margin-top:20px}.event-fields,.two-cols{grid-template-columns:1.5fr 1fr}.ob-fields label{font-size:10px;color:#909b93}.ob-fields input,.ob-fields select{display:block;width:100%;margin-top:7px;background:#111613;border:1px solid #303732;color:#e9eeea;padding:13px;font:12px Inter;border-radius:2px}.ob-fields input:focus,.ob-fields select:focus{outline:none;border-color:var(--ob-green)}
.choice-list{display:grid;gap:9px}.choice-list .choice-card{min-height:82px;display:grid;grid-template-columns:34px 1fr;align-items:center;padding:15px 18px}.choice-list .choice-card>span{margin:0}.choice-list .choice-card small{margin-top:3px}.days-picker{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--ob-line)}.days-picker button{height:110px;background:#121713;border:0;border-right:1px solid var(--ob-line);color:#778179;font-family:Inter;cursor:pointer}.days-picker button:last-child{border-right:0}.days-picker button span,.days-picker button b{display:block}.days-picker button span{font-size:8px;letter-spacing:.8px}.days-picker button b{font-size:9px;margin-top:34px}.days-picker button.selected{background:#1b271e;color:#e7ede8;box-shadow:inset 0 3px var(--ob-green)}.volume-box{margin-top:28px;border-top:1px solid var(--ob-line);padding-top:24px}.volume-box>div:first-child{display:flex;justify-content:space-between;align-items:end}.volume-box span{font-size:8px;color:#78837b;letter-spacing:1px}.volume-box strong{font-size:28px;font-weight:520}.volume-box input{width:100%;accent-color:var(--ob-green);margin-top:22px}.range-labels{display:flex;justify-content:space-between}
.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.metric-grid>label{background:#141916;border:1px solid var(--ob-line);padding:18px}.metric-grid label>span{font-size:10px;color:#929d94}.metric-grid label>div{display:flex;align-items:end;margin:19px 0 10px}.metric-grid input{width:100%;min-width:0;background:none;border:0;border-bottom:1px solid #424b44;color:#f0f3f1;font:500 32px Inter;padding:0 0 5px}.metric-grid input:focus{outline:none;border-color:var(--ob-green)}.metric-grid label b{font-size:10px;color:#7b867e;margin:0 0 10px 6px}.metric-grid small{font-size:8px;color:#69736c;line-height:1.5}.equipment{margin-top:28px}.equipment>span{font-size:8px;color:#7b867e;letter-spacing:1px}.equipment>div{display:flex;gap:8px;margin-top:12px}.equipment button{background:#151a17;color:#7e8981;border:1px solid var(--ob-line);padding:10px 13px;font:500 10px Inter;cursor:pointer}.equipment button.selected{border-color:#719177;color:#cfe6d2;background:#19241c}
.connect-list{display:grid;gap:10px}.connect-list>button{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:14px;text-align:left;background:#141916;border:1px solid var(--ob-line);padding:18px;color:#e8ede9;font-family:Inter;cursor:pointer}.connect-list>button.connected{border-color:var(--ob-green);background:#19241c}.service-mark{width:38px;height:38px;border:1px solid #536057;border-radius:50%;display:grid;place-items:center;color:var(--ob-green);font-size:11px;font-weight:700}.connect-list b,.connect-list small{display:block}.connect-list b{font-size:13px}.connect-list small{font-size:9px;color:#78837b;margin-top:4px}.connect-list i{font-style:normal;color:var(--ob-green);font-size:10px}.connect-note{font-size:9px;color:#6f7971;margin-top:15px}.ob-actions{margin-top:auto;padding-top:35px;display:flex;justify-content:space-between;align-items:center}.ob-actions .btn{background:var(--ob-green);color:#0d140f;border-radius:3px;min-width:145px}.ob-back{background:none;border:0;color:#7d887f;font:600 11px Inter;cursor:pointer;visibility:hidden}
@media(max-width:900px){.onboarding-top{grid-template-columns:1fr 180px 1fr;padding:0 20px}.onboarding-main{grid-template-columns:1fr}.onboarding-context{display:none}.onboarding-form{padding:45px 24px 25px}.days-picker{overflow:auto;grid-template-columns:repeat(7,90px)}}
@media(max-width:600px){.onboarding-top{grid-template-columns:1fr 1fr}.onboarding-progress{display:none}.choice-grid,.event-fields,.two-cols,.metric-grid{grid-template-columns:1fr}.onboarding-form{padding-top:35px}.ob-step h1{font-size:37px}.metric-grid{gap:8px}.equipment>div{flex-wrap:wrap}}
.signup-fields{margin-top:22px;padding-top:20px;border-top:1px solid var(--ob-line)}.signup-fields>p{font-size:8px;color:#7b867e;letter-spacing:1px;margin-bottom:11px}.signup-fields>div{display:grid;grid-template-columns:.7fr 1.3fr;gap:9px}.signup-fields label{display:block;color:#909b93;font-size:9px;margin-bottom:9px}.signup-fields input{display:block;width:100%;margin-top:6px;padding:11px 12px;background:#111613;border:1px solid #303732;color:#eef3ef;font:11px Inter}.signup-fields input:focus{outline:none;border-color:var(--ob-green)}.signup-fields>small{display:block;color:#657068;font-size:8px;line-height:1.5}.form-message{min-height:18px;margin-top:10px;font-size:10px;line-height:1.4;color:#e59b90}.form-message.success{color:#a5f0a9}.btn:disabled{opacity:.6;cursor:wait;transform:none!important}@media(max-width:600px){.signup-fields>div{grid-template-columns:1fr}}

/* ===== athlete settings ===== */
.settings-modal{position:fixed;inset:0;z-index:100;display:grid;grid-template-columns:1fr minmax(420px,520px);visibility:hidden;pointer-events:none}
.settings-modal.open{visibility:visible;pointer-events:auto}
.settings-backdrop{position:absolute;inset:0;border:0;background:rgba(5,9,7,.67);opacity:0;transition:opacity .2s;cursor:pointer}
.settings-modal.open .settings-backdrop{opacity:1}
.settings-panel{position:relative;grid-column:2;height:100vh;overflow:auto;background:#f7f8f5;color:#171c18;padding:34px 38px;box-shadow:-20px 0 60px rgba(8,15,10,.2);transform:translateX(100%);transition:transform .25s ease;display:flex;flex-direction:column}
.settings-modal.open .settings-panel{transform:none}
.settings-panel header{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:25px;border-bottom:1px solid #d9ded8}
.settings-panel header span{font-size:9px;letter-spacing:1.4px;color:#3d8150;font-weight:700}
.settings-panel header h2{font-size:30px;letter-spacing:-1px;margin-top:5px}
.settings-panel header button{border:1px solid #d9ded8;background:#fff;width:34px;height:34px;border-radius:50%;font:300 23px Inter;color:#59635b;cursor:pointer}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 14px;padding:28px 0}
.settings-grid label{font-size:10px;color:#707a72;font-weight:600}
.settings-grid input{display:block;width:100%;margin-top:7px;padding:12px 13px;border:1px solid #d3d9d3;border-radius:4px;background:#fff;color:#171c18;font:12px Inter}
.settings-grid input:focus{outline:0;border-color:#3d8150;box-shadow:0 0 0 2px rgba(61,129,80,.1)}
.settings-grid input:disabled{background:#ecefeb;color:#7d867f}
.integration-card{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:13px;padding:16px;margin:0 0 22px;background:#fff;border:1px solid #d3d9d3;border-radius:5px}.integration-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#fc5200;color:#fff;font-weight:700}.integration-card b,.integration-card span,.integration-card small{display:block}.integration-card b{font-size:13px}.integration-card span{font-size:10px;color:#3d8150;margin-top:2px}.integration-card small{font-size:9px;color:#707a72;margin-top:4px}.integration-card button{border:0;border-radius:4px;background:#fc5200;color:#fff;padding:10px 13px;font:600 10px Inter;cursor:pointer}.integration-card button:disabled{opacity:.6}
.activity-upload-shortcut{border:1px solid #3d8150;border-radius:4px;background:#eef5ef;color:#2f6840;padding:9px 12px;font:600 10px Inter;cursor:pointer}.activity-upload-shortcut:hover{background:#dfeee2}
.integration-disabled{background:#f1f3ef}.integration-disabled .integration-mark{filter:grayscale(1);opacity:.65}.integration-disabled button{background:#7b857d;cursor:not-allowed}.upload-card{align-items:start}.upload-mark{background:#3d8150}.upload-actions{display:flex;align-items:center;gap:7px;grid-column:1/-1;margin-top:3px}.upload-actions input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.upload-actions label{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid #cbd2cc;border-radius:4px;background:#f8faf7;padding:9px 11px;color:#39433b;font-size:10px;cursor:pointer}.upload-actions button{background:#3d8150}.upload-message{margin-top:-12px;margin-bottom:9px}.ride-empty{padding:22px 2px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px}.ride-status.neutral{background:#e9ece8;color:#5f6961}
.settings-message{min-height:18px;margin-top:auto;font-size:11px;color:#a34a3d}.settings-message.success{color:#3d8150}
.settings-panel footer{display:flex;justify-content:flex-end;gap:9px;padding-top:18px;border-top:1px solid #d9ded8}
.settings-panel footer .btn{width:auto;min-width:112px;border-radius:4px}.settings-panel footer .btn-primary{background:#a5f0a9;color:#102014}.settings-panel footer .btn-ghost{background:#fff;color:#343b35;border-color:#d3d9d3}
@media(max-width:600px){.settings-modal{grid-template-columns:1fr}.settings-panel{grid-column:1;width:100%;padding:26px 20px}.settings-grid{grid-template-columns:1fr;gap:13px}.integration-card{grid-template-columns:42px 1fr}.integration-card button{grid-column:1/-1}.settings-panel footer{position:sticky;bottom:-26px;background:#f7f8f5;padding:16px 0 26px}}
