*{box-sizing:border-box}html{background:#070a08;color-scheme:dark}body{margin:0;background:radial-gradient(circle at 90% 0%,rgba(175,108,54,.16),transparent 28rem),#070a08;color:#f4f0e9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.shell{width:min(100%,1080px);margin:0 auto;padding:calc(18px + env(safe-area-inset-top)) 18px calc(104px + env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.brand,.back-link{color:inherit;text-decoration:none}.brand{display:flex;align-items:center;gap:9px;font-weight:800;letter-spacing:.08em}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(221,151,91,.5);border-radius:10px;background:linear-gradient(145deg,rgba(221,151,91,.18),rgba(255,255,255,.03));color:#e0a16c}.back-link{font-size:.9rem;color:#c5b9aa}.hero{padding:54px 0 28px;max-width:720px}.eyebrow,.section-head small,.status-card small,.next-card small,.detail-card small,.target-card small,.transition-card small,.range-card small{display:block;margin:0 0 8px;color:#d49a68;font-size:.72rem;font-weight:800;letter-spacing:.16em}.hero h1{margin:0;font-size:clamp(3rem,10vw,6.6rem);line-height:.88;letter-spacing:-.065em}.hero p:last-child{max-width:620px;margin:20px 0 0;color:#aaa39a;font-size:1rem;line-height:1.55}.status-card,.next-card,.ftp-card,.detail-card,.race-card,.target-card,.transition-card,.range-card{border:1px solid rgba(255,255,255,.09);background:linear-gradient(155deg,rgba(255,255,255,.055),rgba(255,255,255,.018));box-shadow:0 20px 60px rgba(0,0,0,.22);border-radius:24px}.status-card{padding:26px}.status-card h2,.next-card h2,.section-head h2,.detail-card h3,.race-card h3,.target-card h3,.transition-card h3,.range-card h3{margin:0}.status-card p,.next-card p,.detail-card p,.race-card p,.target-card p,.transition-card p,.range-card p{color:#aaa39a;line-height:1.5}.next-card{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px;margin-bottom:24px}.primary-btn,.ftp-row button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;border:0;border-radius:14px;padding:0 18px;background:#e0a16c;color:#130e0a;font-weight:800;text-decoration:none;cursor:pointer}.ftp-row .secondary-btn{border:1px solid rgba(255,255,255,.11);background:#111713;color:#d6cec4}.section-block{margin:34px 0}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}.section-head h2{font-size:clamp(1.6rem,4vw,2.5rem);letter-spacing:-.035em}.quiet-pill{flex:0 0 auto;padding:7px 10px;border:1px solid rgba(255,255,255,.08);border-radius:999px;color:#a7a097;font-size:.68rem;font-weight:800;letter-spacing:.08em}.ftp-card{padding:20px}.ftp-card label{display:block;margin-bottom:8px;font-weight:700}.ftp-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px}.ftp-row input{min-width:0;min-height:50px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:#0b100d;color:#fff;padding:0 14px;font-size:1rem}.ftp-row input[aria-invalid="true"]{border-color:#e4a06b;box-shadow:0 0 0 2px rgba(224,161,108,.12)}.helper,.data-note{margin:10px 0 0;color:#918b83;font-size:.85rem;line-height:1.45}.zone-grid,.metric-grid,.coverage-grid{display:grid;gap:10px}.zone-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:12px 0}.coverage-grid{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:16px}.zone-card,.metric-card,.coverage-card{min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:#0b100d;padding:15px}.zone-card small,.metric-card small,.coverage-card small{display:block;color:#918b83;font-size:.69rem;font-weight:800;letter-spacing:.08em}.zone-card strong,.metric-card strong,.coverage-card strong{display:block;margin-top:6px;font-size:1.08rem}.zone-card span,.metric-card span,.coverage-card span{display:block;margin-top:4px;color:#b5ada4;font-size:.78rem}.zone-card em{display:block;margin-top:8px;color:#8f887f;font-size:.72rem;font-style:normal;line-height:1.35}.detail-card,.race-card{padding:20px}.race-phase{display:inline-flex;margin-bottom:10px;padding:6px 9px;border:1px solid rgba(224,161,108,.24);border-radius:999px;background:rgba(224,161,108,.08);color:#dfa473;font-size:.67rem;font-weight:800;letter-spacing:.11em}.target-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.7fr);gap:22px;align-items:end;padding:20px;margin-top:12px}.target-card p{margin:8px 0 0}.target-row{display:grid;grid-template-columns:auto minmax(80px,110px);gap:8px 10px;align-items:center}.target-row label{font-size:.78rem;color:#b9b1a7;font-weight:700}.target-row input{min-height:48px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:#0b100d;color:#fff;padding:0 12px;font-size:1rem}.target-result{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding-top:8px;border-top:1px solid rgba(255,255,255,.07)}.target-result strong{font-size:1.5rem}.target-result span{color:#9e978e;font-size:.78rem;text-align:right}.transition-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.9fr);gap:20px;padding:20px;margin-top:12px}.transition-card p{margin:8px 0 0}.transition-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.transition-grid>div{min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:#0b100d;padding:14px}.transition-grid span{display:block;color:#d49a68;font-size:.7rem;font-weight:800;letter-spacing:.1em}.transition-grid strong{display:block;margin-top:6px;font-size:.92rem}.bottom-nav{position:fixed;left:50%;bottom:calc(12px + env(safe-area-inset-bottom));z-index:20;display:grid;grid-template-columns:repeat(5,1fr);width:min(calc(100% - 24px),620px);transform:translateX(-50%);border:1px solid rgba(255,255,255,.09);border-radius:20px;background:rgba(9,13,10,.92);backdrop-filter:blur(20px);box-shadow:0 18px 45px rgba(0,0,0,.35);overflow:hidden}.bottom-nav a{display:grid;place-items:center;gap:2px;min-height:58px;color:#8f8a83;text-decoration:none;font-size:.68rem}.bottom-nav a span{font-size:1rem}.bottom-nav a.active{color:#e0a16c;background:rgba(224,161,108,.07)}.toast{position:fixed;left:50%;bottom:calc(86px + env(safe-area-inset-bottom));z-index:30;transform:translateX(-50%);max-width:min(90vw,460px);padding:12px 16px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:#151a16;color:#fff;box-shadow:0 18px 50px rgba(0,0,0,.35)}[hidden]{display:none!important}.preset-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.preset-row button{min-width:52px;min-height:42px;border:1px solid rgba(224,161,108,.2);border-radius:999px;background:rgba(224,161,108,.07);color:#e7c4a4;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}.preset-row button:hover,.preset-row button:focus-visible{border-color:rgba(224,161,108,.55);background:rgba(224,161,108,.14);outline:none}.range-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.75fr);gap:22px;align-items:end;padding:20px;margin-top:12px}.range-card p{margin:8px 0 0}.range-controls{display:grid;grid-template-columns:auto minmax(80px,1fr);gap:8px 10px;align-items:center}.range-controls label{font-size:.78rem;color:#b9b1a7;font-weight:700}.range-controls input{min-width:0;min-height:48px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:#0b100d;color:#fff;padding:0 12px;font-size:1rem}.target-row input[aria-invalid="true"],.range-controls input[aria-invalid="true"]{border-color:#e4a06b;box-shadow:0 0 0 2px rgba(224,161,108,.12)}.race-action{display:grid;gap:5px;margin-top:14px;padding:14px;border:1px solid rgba(224,161,108,.16);border-radius:16px;background:rgba(224,161,108,.055)}.race-action small{color:#d49a68;font-size:.68rem;font-weight:800;letter-spacing:.11em}.race-action strong{font-size:.9rem;line-height:1.45;color:#e7dfd5}.transition-grid small{display:block;margin-top:8px;color:#8f887f;font-size:.68rem;line-height:1.4;letter-spacing:0}@media(max-width:760px){.shell{padding-left:14px;padding-right:14px}.hero{padding-top:42px}.next-card{align-items:flex-start;flex-direction:column}.primary-btn{width:100%}.zone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.coverage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{align-items:flex-start;flex-direction:column}.quiet-pill{white-space:normal}.target-card,.transition-card,.range-card{grid-template-columns:1fr}.target-result{align-items:flex-start;flex-direction:column}.target-result span{text-align:left}.transition-grid{grid-template-columns:1fr 1fr}.preset-row button{flex:1 0 28%;min-height:44px}}@media(max-width:560px){.ftp-row{grid-template-columns:1fr 1fr}.ftp-row input{grid-column:1/-1}.ftp-row button{width:100%}.range-controls{grid-template-columns:1fr 1fr}.range-controls label{align-self:end}}@media(max-width:390px){.hero h1{font-size:2.75rem}.zone-grid,.metric-grid,.coverage-grid,.transition-grid{grid-template-columns:1fr}.bottom-nav a{font-size:.62rem}.target-row{grid-template-columns:1fr}.target-row input{width:100%}.target-result{grid-column:auto}.range-controls{grid-template-columns:1fr}.preset-row button{flex-basis:30%}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}


/* Cycling & Triathlon X10 round 3 — module-local detail surfaces */
.hr-card{padding:20px;border:1px solid rgba(255,255,255,.09);background:linear-gradient(155deg,rgba(255,255,255,.055),rgba(255,255,255,.018));box-shadow:0 20px 60px rgba(0,0,0,.22);border-radius:24px}
.hr-card label{display:block;margin-bottom:8px;font-weight:700}.hr-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px}.hr-row input{min-width:0;min-height:50px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:#0b100d;color:#fff;padding:0 14px;font-size:1rem}.hr-row input[aria-invalid="true"]{border-color:#e4a06b;box-shadow:0 0 0 2px rgba(224,161,108,.12)}.hr-row button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;border:0;border-radius:14px;padding:0 18px;background:#e0a16c;color:#130e0a;font-weight:800;cursor:pointer}.hr-row .secondary-btn{border:1px solid rgba(255,255,255,.11);background:#111713;color:#d6cec4}
.section-copy{margin:-4px 0 14px;color:#9c958c;line-height:1.5}.interval-library{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.interval-card{display:flex;min-width:0;flex-direction:column;border:1px solid rgba(255,255,255,.08);border-radius:20px;background:#0b100d;padding:16px}.interval-card small{color:#d49a68;font-size:.68rem;font-weight:800;letter-spacing:.09em}.interval-card h3{margin:6px 0 12px;font-size:1rem}.interval-card strong{font-size:1.35rem}.interval-card span{margin-top:4px;color:#b5ada4;font-size:.78rem}.interval-card p{min-height:2.6em;margin:10px 0;color:#8f887f;font-size:.76rem;line-height:1.35}.interval-card button{margin-top:auto;min-height:44px;border:1px solid rgba(224,161,108,.2);border-radius:12px;background:rgba(224,161,108,.08);color:#e7c4a4;font:inherit;font-size:.76rem;font-weight:800;cursor:pointer}.interval-card button:focus-visible{outline:2px solid #e0a16c;outline-offset:2px}
.interval-profile{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.interval-profile>span{min-width:0;border:1px solid rgba(224,161,108,.16);border-radius:14px;background:rgba(224,161,108,.055);padding:10px}.interval-profile small{margin:0;color:#a8876c;font-size:.6rem}.interval-profile strong{display:block;margin-top:5px;font-size:.8rem}
.environment-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.race-sequence{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:14px}.race-sequence>div{min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#0b100d;padding:12px}.race-sequence small{display:block;color:#d49a68;font-size:.62rem;font-weight:800;letter-spacing:.08em}.race-sequence strong{display:block;margin-top:5px;font-size:.78rem}.race-sequence span{display:block;margin-top:5px;color:#8f887f;font-size:.65rem}
@media(max-width:760px){.interval-library{grid-template-columns:repeat(2,minmax(0,1fr))}.environment-grid{grid-template-columns:1fr}.race-sequence{grid-template-columns:repeat(5,minmax(112px,1fr));overflow-x:auto;padding-bottom:4px}.hr-row{grid-template-columns:1fr 1fr}.hr-row input{grid-column:1/-1}.hr-row button{width:100%}}
@media(max-width:390px){.interval-library,.interval-profile{grid-template-columns:1fr}}
.multisport-start{display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:auto;padding:12px;border:1px solid rgba(224,161,108,.2);border-radius:12px;background:rgba(224,161,108,.08);color:#e7c4a4;text-decoration:none;font-size:.76rem;font-weight:800}.multisport-start:focus-visible{outline:2px solid #e0a16c;outline-offset:2px}


/* ENDURANCE DESKTOP WORKSPACE X4 — pair setup surfaces and use full desktop width for libraries */
@media(min-width:1180px){
  #dashboard{
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(390px,.65fr);
    gap:0 18px;
    align-items:start;
  }
  #dashboard>.next-card{grid-column:1/-1}
  #dashboard>.section-block{min-width:0}
  #dashboard>section[aria-labelledby="ftpTitle"]{grid-column:1}
  #dashboard>section[aria-labelledby="hrTitle"]{grid-column:2}
  #dashboard>section[aria-labelledby="intervalLibraryTitle"],
  #dashboard>section[aria-labelledby="multisportLibraryTitle"],
  #dashboard>section[aria-labelledby="loadTitle"],
  #dashboard>section[aria-labelledby="raceTitle"]{grid-column:1/-1}
  #dashboard>section[aria-labelledby="ftpTitle"],
  #dashboard>section[aria-labelledby="hrTitle"]{margin-top:18px;margin-bottom:18px}
  #dashboard>section[aria-labelledby="hrTitle"] .zone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #dashboard>section[aria-labelledby="intervalLibraryTitle"] .interval-library,
  #dashboard>section[aria-labelledby="multisportLibraryTitle"] .interval-library{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
  }
  #dashboard .interval-card{min-height:100%}
}


/* TRIATHLON SUPPORT COACHING — transferred canonical technique depth, no programmed dose. */
.tri-support-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tri-support-card{min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:#0b100d;overflow:hidden}.tri-support-card summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;min-height:78px;padding:14px;cursor:pointer;list-style:none}.tri-support-card summary::-webkit-details-marker{display:none}.tri-support-card summary>span{display:grid;gap:4px;min-width:0}.tri-support-card summary small,.tri-support-detail small{color:#d49a68;font-size:.68rem;font-weight:800;letter-spacing:.09em}.tri-support-card summary strong{font-size:.96rem;line-height:1.25}.tri-support-card summary em{color:#908980;font-size:.72rem;font-style:normal}.tri-support-card summary>b{color:#e0a16c;font-size:1.15rem}.tri-support-card[open] summary>b{transform:rotate(45deg)}.tri-support-detail{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 14px 14px;border-top:1px solid rgba(255,255,255,.07)}.tri-support-detail section{padding-top:12px}.tri-support-detail section:last-child{grid-column:1/-1;padding:11px;border:1px solid rgba(224,161,108,.14);border-radius:13px;background:rgba(224,161,108,.045)}.tri-support-detail ul{margin:7px 0 0;padding-left:18px;color:#b7afa6;font-size:.78rem;line-height:1.45}.tri-support-detail li+li{margin-top:4px}.tri-support-detail p{margin:7px 0 0;color:#c4bbb1;font-size:.78rem;line-height:1.5}@media(max-width:760px){.tri-support-grid{grid-template-columns:1fr}}@media(max-width:390px){.tri-support-detail{grid-template-columns:1fr}.tri-support-detail section:last-child{grid-column:auto}}@media(min-width:1180px){#dashboard>section[aria-labelledby="triSupportTitle"]{grid-column:1/-1}.tri-support-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* TRI SUPPORT FILTERS — local-only discovery control. */
.tri-support-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}.tri-support-filters{display:flex;flex-wrap:wrap;gap:7px}.tri-support-filters button{min-height:42px;padding:0 13px;border:1px solid rgba(255,255,255,.09);border-radius:999px;background:#0b100d;color:#aaa39a;font:inherit;font-size:.76rem;font-weight:800;cursor:pointer}.tri-support-filters button[aria-pressed="true"]{border-color:rgba(224,161,108,.42);background:rgba(224,161,108,.12);color:#edc8a7}.tri-support-filters button:focus-visible{outline:2px solid #e0a16c;outline-offset:2px}@media(max-width:560px){.tri-support-toolbar{align-items:flex-start;flex-direction:column}.tri-support-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.tri-support-filters button{padding:0 8px}}@media(max-width:390px){.tri-support-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* TRANSITION → BRICK TECHNIQUE handoff. */
.transition-support-action{min-height:44px;margin-top:12px;padding:0 14px;border:1px solid rgba(224,161,108,.24);border-radius:12px;background:rgba(224,161,108,.08);color:#e7c4a4;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}.transition-support-action:hover,.transition-support-action:focus-visible{border-color:rgba(224,161,108,.52);background:rgba(224,161,108,.14);outline:none}.transition-support-action:focus-visible{box-shadow:0 0 0 2px #070a08,0 0 0 4px #e0a16c}@media(max-width:760px){.transition-support-action{width:100%}}

/* MULTISPORT → BRICK SUPPORT shortcut. */
.multisport-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}.multisport-actions .multisport-start{margin-top:0}.multisport-technique{display:flex;align-items:center;justify-content:center;min-height:44px;padding:12px;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:#111713;color:#d6cec4;font:inherit;font-size:.76rem;font-weight:800;cursor:pointer}.multisport-technique:hover,.multisport-technique:focus-visible{border-color:rgba(224,161,108,.42);color:#e7c4a4;outline:none}.multisport-technique:focus-visible{box-shadow:0 0 0 2px #070a08,0 0 0 4px #e0a16c}@media(max-width:390px){.multisport-actions{grid-template-columns:1fr}}
