:root{color:#191c19;font-synthesis:none;text-rendering:optimizelegibility;background:#fafbf8;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%}body{background:#fafbf8;margin:0}#root{min-height:100vh}button,input{font:inherit}button{cursor:pointer}.login-page{background:radial-gradient(circle at 0 0,#a3ef372e,#0000 36%),#0d0f0e;place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{color:#f7faf7;background:#151815;border:1px solid #292d29;border-radius:26px;width:min(100%,430px);padding:38px}.logo{color:#11140f;background:#a8eb39;border-radius:15px;place-items:center;width:52px;height:52px;margin-bottom:24px;font-weight:900;display:grid}.logo.small{border-radius:10px;width:38px;height:38px;margin:0;font-size:13px}.eyebrow{color:#929a92;letter-spacing:.15em;margin:0 0 8px;font-size:11px;font-weight:800}.login-card h1{letter-spacing:-.045em;margin:0;font-size:40px}.muted{color:#7b837b;line-height:1.55}.login-card .muted{color:#aab1aa;margin:16px 0 28px}.login-card form{gap:17px;display:grid}.login-card label{gap:7px;font-size:13px;font-weight:700;display:grid}.login-card input{color:#fff;background:#0e110f;border:1px solid #343a34;border-radius:12px;outline:none;width:100%;padding:14px}.login-card input:focus{border-color:#a8eb39}.login-card form>button{color:#11140f;background:#a8eb39;border:0;border-radius:12px;padding:15px;font-weight:900}.login-card button:disabled{opacity:.6}.error{color:#c93434}.app-shell{background:radial-gradient(circle at 16% 35%,#b1f24f14,#0000 24%),#f5f8f5;min-height:100vh}.topbar{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff5;border-bottom:1px solid #e3e8e3;grid-template-columns:minmax(175px,1fr) auto minmax(240px,1fr);align-items:center;min-height:66px;padding:0 max(28px,50vw - 720px);display:grid;position:sticky;top:0}.brand{align-items:center;gap:11px;display:flex}.brand>div:last-child{display:grid}.brand strong{color:#111713;font-size:16px}.brand span{color:#768078;font-size:10px}.main-nav{align-self:stretch;align-items:stretch;gap:26px;display:flex}.nav-link{color:#6d7680;background:0 0;border:0;padding:0;font-size:13px;position:relative}.nav-link:hover{color:#161c18}.nav-link.active{color:#101512;font-weight:700}.nav-link.active:after{content:"";background:#8ee72f;height:2px;position:absolute;bottom:0;left:0;right:0}.profile-menu{justify-content:flex-end;align-items:center;gap:10px;display:flex}.profile-menu strong{font-size:13px}.avatar{color:#fff;background:#4f596d;border-radius:50%;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.notification,.logout-button{background:0 0;border:0}.notification{color:#3e4954;width:34px;height:34px;font-size:22px;position:relative}.notification span{background:#f33f48;border:2px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:5px;right:4px}.logout-button{color:#6e7771;padding:7px;font-size:11px}.hero{color:#fff;background:linear-gradient(90deg,#081e32d1,#08192833 62%,#08192861),url(/images/athlete-dashboard-hero.png) 50% 57%/cover no-repeat;justify-content:space-between;align-items:flex-start;min-height:280px;padding:52px max(32px,50vw - 720px);display:flex;position:relative;overflow:hidden}.hero:after{content:"";background:linear-gradient(#0000,#0a1f2d42);height:45%;position:absolute;inset:auto 0 0}.hero-copy,.hero blockquote{z-index:1;position:relative}.hero h1{letter-spacing:-.045em;max-width:760px;margin:0;font-size:clamp(36px,4.5vw,56px);line-height:1.05}.hero p{margin:15px 0 0;font-size:19px}.hero blockquote{text-shadow:0 2px 18px #0009;align-self:center;max-width:320px;margin:20px 32px 0 0;font-size:17px;font-weight:700;line-height:1.45}.dashboard-content{z-index:2;width:min(1440px,100% - 48px);margin:20px auto 0;padding-bottom:80px;position:relative}.status-panel{background:#fff;border:1px solid #dfe5df;border-radius:16px;padding:24px}.dashboard-card{background:#fffffff7;border:1px solid #dfe5df;border-radius:16px;box-shadow:0 5px 22px #21372a0a}.summary-grid{grid-template-columns:1.35fr 1fr .7fr;gap:16px;display:grid}.summary-grid>.dashboard-card{min-height:330px;padding:24px}.card-heading,.card-heading>div,.week-heading,.week-heading>div{align-items:center;display:flex}.card-heading{justify-content:space-between;gap:12px;min-height:34px}.card-heading>div,.week-heading>div{gap:10px}.card-heading>span{color:#748078;font-size:12px}.card-icon{color:#fff;border-radius:9px;flex:none;place-items:center;width:34px;height:34px;font-size:17px;display:inline-grid}.card-icon.green{background:linear-gradient(135deg,#75dc35,#a8ed43)}.card-icon.blue{background:linear-gradient(135deg,#29a7ec,#58c4ff)}.card-icon.red{background:linear-gradient(135deg,#ff3f55,#ff616f)}.card-icon.purple{background:linear-gradient(135deg,#6e50ee,#9a72ff)}.readiness-card{background:radial-gradient(circle at 86% 25%,#8be63a2e,#0000 35%),linear-gradient(145deg,#fff,#f4ffec)}.empty-state{color:#657069;flex-direction:column;justify-content:center;min-height:210px;display:flex}.empty-state strong{color:#202722;font-size:19px}.empty-state p{max-width:440px;margin:8px 0 0;line-height:1.55}.workout-title{align-items:center;gap:13px;margin-top:22px;display:flex}.workout-title h2,.goal-card h2{color:#121713;letter-spacing:-.025em;margin:0;font-size:24px;line-height:1.2}.workout-title p{color:#728078;margin:5px 0 0;font-size:13px}.workout-metrics{color:#34423a;gap:10px;margin:22px 0 0 5px;font-size:13px;display:grid}.workout-description{color:#253029;margin:18px 0;font-size:13px;line-height:1.5}.primary-action{color:#10150f;background:linear-gradient(90deg,#9ee928,#aeea38);border:0;border-radius:10px;justify-content:center;align-items:center;gap:14px;width:100%;margin-top:auto;padding:14px;font-weight:800;display:flex}.workout-card{flex-direction:column;display:flex}.goal-card h2{margin-top:20px}.goal-date{color:#344039;margin:25px 0 0;font-size:13px}.countdown{background:linear-gradient(135deg,#f2f8ff,#e8f4ff);border-radius:12px;gap:6px;margin-top:28px;padding:18px;display:grid}.countdown span{color:#677a8a;font-size:12px}.countdown strong{font-size:19px}.week-card{margin-top:16px;padding:18px}.week-heading{justify-content:space-between;margin-bottom:16px}.week-heading>div:first-child>span:last-child{color:#4c6075;margin-left:8px;font-size:14px}.week-controls{gap:8px;display:flex}.week-controls button{color:#33414b;background:#fff;border:1px solid #dbe2e2;border-radius:9px;min-width:38px;height:38px;font-weight:700}.week-controls .calendar-button{padding:0 15px}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;display:grid}.day-card{background:linear-gradient(145deg,#fff,#fbfcfc);border:1px solid #dfe4e4;border-radius:13px;min-height:190px;padding:15px}.day-card.today{background:radial-gradient(circle at 50% 52%,#8ce53226,#0000 42%),#fbfff6;border-color:#83d82b;box-shadow:inset 0 0 0 1px #9be83a}.day-card>strong{font-size:16px;display:block}.day-card>span{color:#758291;font-size:10px}.day-content{text-align:center;place-items:center;height:140px;display:grid}.mini-session,.rest-day{justify-items:center;gap:6px;display:grid}.session-symbol,.rest-day>span{font-size:27px}.mini-session b,.rest-day b{font-size:12px;line-height:1.3}.mini-session small{color:#485b4f;font-size:11px}.rest-day{color:#667487}.modules-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:16px;display:grid}.module-card{min-height:150px;padding:20px}.module-card strong{color:#172019;font-size:15px}.module-card p{color:#748078;margin:12px 0 0;font-size:12px;line-height:1.55}@media (width<=1180px){.topbar{grid-template-columns:auto 1fr auto}.main-nav{justify-content:center;gap:18px;display:flex}.main-nav .nav-placeholder{display:none}.summary-grid{grid-template-columns:1fr 1fr}.goal-card{grid-column:1/-1;min-height:auto!important}.week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.modules-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.topbar{grid-template-columns:auto 1fr auto;min-height:58px;padding:0 16px}.brand>div:last-child{display:none}.main-nav{gap:14px}.nav-link{font-size:12px}.profile-menu strong,.notification,.logout-button{display:none}.hero{background-position:64%;min-height:230px;padding:36px 20px}.hero h1{max-width:290px;font-size:34px}.hero p{max-width:240px;font-size:15px}.hero blockquote{display:none}.dashboard-content{width:min(100% - 24px,1440px);margin-top:12px}.summary-grid,.modules-grid{grid-template-columns:1fr}.summary-grid>.dashboard-card{min-height:auto;padding:19px}.week-heading{align-items:flex-start;gap:15px}.week-heading>div:first-child{flex-wrap:wrap}.week-heading>div:first-child>span:last-child{width:100%;margin-left:44px}.calendar-button{display:none}.week-grid{scroll-snap-type:x mandatory;display:flex;overflow-x:auto}.day-card{scroll-snap-align:start;flex:0 0 142px}}.readiness-score{align-items:baseline;gap:8px;margin-top:18px;display:flex}.readiness-score strong{color:#111713;letter-spacing:-.045em;font-size:48px;line-height:1}.readiness-score span{color:#7d867f;font-size:25px;font-weight:700}.readiness-label{color:#566159;margin:7px 0 12px;font-size:13px}.readiness-progress{background:#f6faf3;border:1px solid #d3dfce;border-radius:999px;height:8px;overflow:hidden}.readiness-progress span{border-radius:inherit;background:linear-gradient(90deg,#23ba45,#82df38);height:100%;display:block}.readiness-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:20px;display:grid}.readiness-metrics>div{align-content:start;min-width:0;padding-right:8px;display:grid}.readiness-metrics>div>span{color:#1daf68;min-height:24px;font-size:20px}.readiness-metrics small{color:#718078;margin-top:5px;font-size:11px}.readiness-metrics strong{color:#182019;white-space:nowrap;margin-top:5px;font-size:15px}.readiness-metrics p{color:#77837b;text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:10px;overflow:hidden}@media (width<=720px){.readiness-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}}.mini-session{width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:8px 4px}.mini-session:hover b,.mini-session:focus-visible b{color:#4b9f18}.mini-session:focus-visible{outline-offset:4px;border-radius:8px;outline:2px solid #83d82b}.primary-action,.secondary-action{cursor:pointer}.primary-action:disabled,.secondary-action:disabled{cursor:not-allowed;opacity:.55}.workout-modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#092727c7;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.workout-modal{background:#f8fbf9;border:1px solid #dce7e2;border-radius:24px;width:min(760px,100%);max-height:calc(100vh - 48px);padding:34px;position:relative;overflow-y:auto;box-shadow:0 28px 80px #00141452}.workout-modal-close{color:#25322c;cursor:pointer;background:#fff;border:1px solid #d8e2dd;border-radius:50%;place-items:center;width:38px;height:38px;font-size:25px;line-height:1;display:grid;position:absolute;top:18px;right:18px}.workout-modal-header{padding-right:48px}.workout-modal-header>span{color:#748078;font-size:13px}.workout-modal-header h2{margin:7px 0;font-size:32px;line-height:1.15}.workout-modal-header p{color:#68776f;margin:0}.workout-detail-section{background:#fff;border:1px solid #dce6e1;border-radius:16px;margin-top:22px;padding:22px}.workout-detail-section h3{margin:0 0 14px;font-size:19px}.workout-detail-section p{white-space:pre-wrap;margin:10px 0 0;line-height:1.6}.workout-detail-metrics{color:#526159;flex-wrap:wrap;gap:10px 22px;font-size:13px;display:flex}.actual-metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.actual-metrics-grid>div{background:#f3f8f5;border-radius:12px;gap:5px;padding:14px;display:grid}.actual-metrics-grid small{color:#718078}.actual-metrics-grid strong{font-size:17px}.workout-detail-section label{color:#526159;gap:7px;margin-top:14px;font-size:13px;font-weight:700;display:grid}.workout-detail-section input,.workout-detail-section textarea{box-sizing:border-box;color:#172019;width:100%;font:inherit;background:#fff;border:1px solid #cedbd4;border-radius:10px;padding:12px 13px}.workout-detail-section textarea{resize:vertical;line-height:1.5}.workout-detail-section input:focus,.workout-detail-section textarea:focus{border-color:#78cf2d;outline:3px solid #78cf2d24}.workout-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;display:grid}.secondary-action{color:#256316;background:#eefbe5;border:1px solid #78c93a;border-radius:10px;margin-top:16px;padding:12px 18px;font-weight:800}.saved-lactate-list{flex-wrap:wrap;gap:8px;display:flex}.saved-lactate-list span{color:#366a25;background:#edf8e8;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:700}.coach-answer{background:#effaf6;border-color:#adddce}.workout-form-error,.workout-form-success{border-radius:10px;margin-top:18px;padding:12px 14px;font-size:13px;font-weight:700}.workout-form-error{color:#a82929;background:#fff0f0}.workout-form-success{color:#286b19;background:#eaf9e4}.garmin-details-title{color:#526159;border-top:1px solid #e1e8e4;padding-top:18px;margin:22px 0 12px!important;font-size:14px!important}.garmin-details-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.garmin-details-grid>div{border:1px solid #e5ebe7;border-radius:10px;gap:4px;padding:11px 12px;display:grid}.garmin-details-grid small{color:#748078;line-height:1.25}.garmin-details-grid strong{color:#253029;font-size:14px}.chart-section{border-top:1px solid #e1e8e4;margin-top:20px;padding-top:18px}.chart-toggle{color:#253029;cursor:pointer;background:#f5faf7;border:1px solid #d9e4de;border-radius:10px;justify-content:space-between;align-items:center;width:100%;padding:12px 14px;font-weight:800;display:flex}.chart-toggle span:last-child{color:#568b37;font-size:12px}.heart-rate-chart{margin-top:14px;overflow-x:auto}.heart-rate-chart svg{width:100%;min-width:560px;height:auto;display:block}.chart-legend{color:#627068;flex-wrap:wrap;gap:10px 20px;margin-bottom:5px;font-size:12px;display:flex}.chart-legend span:before{content:"";vertical-align:middle;border-radius:999px;width:18px;height:3px;margin-right:7px;display:inline-block}.chart-legend .actual:before{background:#f45b5b}.chart-legend .session-average:before{background:#7d8781;height:2px}.chart-grid-line{stroke:#dfe7e2;stroke-width:1px}.heart-rate-area{fill:url(#heart-rate-fill)}.heart-rate-line{fill:none;stroke:#ef4747;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}.heart-rate-average-line{stroke:#727b76;stroke-width:1.5px}.heart-rate-average-label{fill:#59635d;font-family:inherit;font-size:10px;font-weight:700}.chart-time-point{fill:#8a948e}.chart-axis-label,.chart-axis-title{fill:#758179;font-family:inherit;font-size:11px}.chart-axis-title{font-size:10px}.chart-empty{color:#748078;font-size:13px}@media (width<=720px){.workout-modal-backdrop{align-items:end;padding:0}.workout-modal{border-radius:22px 22px 0 0;width:100%;max-height:94vh;padding:24px 16px 32px}.workout-modal-header h2{font-size:26px}.workout-detail-section{padding:17px}.actual-metrics-grid,.workout-form-grid{grid-template-columns:1fr}.garmin-details-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.athlete-intervals{border-top:1px solid #dbe6e2;margin-top:28px;padding-top:24px}.athlete-intervals-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.athlete-intervals-heading small{color:#61736e;margin-bottom:5px;font-size:13px;display:block}.athlete-intervals-heading h3{margin:0}.athlete-intervals-heading>span{color:#287a43;background:#eaf7e6;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.athlete-intervals-hint{color:#61736e;margin:10px 0 0;font-size:14px;line-height:1.5}.athlete-interval-table-scroll{background:#fff;border:1px solid #dbe6e2;border-radius:14px;max-width:100%;margin-top:16px;overflow-x:auto}.athlete-interval-table-scroll:focus-visible{outline-offset:3px;outline:2px solid #7bdc38}.athlete-interval-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;min-width:790px;font-size:14px}.athlete-interval-table.technical{min-width:920px}.athlete-interval-table th,.athlete-interval-table td{text-align:right;white-space:nowrap;border-top:1px solid #e3ebe8;padding:13px 12px}.athlete-interval-table thead th{color:#556b65;background:#f0f6f3;border-top:0;font-size:13px}.athlete-interval-table th:first-child{z-index:2;text-align:left;background:#fff;position:sticky;left:0;box-shadow:1px 0 #dbe6e2}.athlete-interval-table thead th:first-child{z-index:3;background:#f0f6f3}.athlete-interval-table tbody tr:nth-child(2n),.athlete-interval-table tbody tr:nth-child(2n) th{background:#f9fbfa}.athlete-interval-table tfoot th,.athlete-interval-table tfoot td{background:#eaf3ef;font-weight:800}.athlete-interval-table tfoot th:first-child{background:#eaf3ef}.athlete-interval-charts{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.athlete-interval-chart{background:#fbfdfc;border:1px solid #dbe6e2;border-radius:14px;min-width:0;padding:15px}.athlete-interval-chart-heading{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.athlete-interval-chart-heading h4{margin:0;font-size:15px}.athlete-interval-chart-heading>span{color:#667772;font-size:12px}.athlete-interval-legend{color:#667772;flex-wrap:wrap;gap:6px 12px;min-height:34px;margin-top:9px;font-size:12px;display:flex}.athlete-interval-legend span{align-items:center;gap:6px;display:flex}.athlete-interval-legend i{border-radius:999px;width:15px;height:3px}.athlete-interval-legend i.actual{background:#2e8b57}.athlete-interval-legend i.secondary{background:#ff5b5b}.athlete-interval-legend i.target{background:#a9ef31;height:7px}.athlete-interval-chart svg{width:100%;height:auto;overflow:visible}.athlete-interval-grid{stroke:#dce6e2;stroke-width:1px}.athlete-interval-line{fill:none;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.athlete-interval-line.actual{stroke:#2e8b57}.athlete-interval-line.secondary{stroke:#ff5b5b}.athlete-interval-point{fill:#fff;stroke-width:2px}.athlete-interval-point.actual{stroke:#2e8b57}.athlete-interval-point.secondary{stroke:#ff5b5b}.athlete-interval-target{fill:#a9ef31;opacity:.48}.athlete-interval-axis{fill:#6c7d78;font-size:10px}.athlete-interval-x{font-weight:800}.athlete-interval-details{background:#f7faf8;border:1px solid #dbe6e2;border-radius:14px;margin-top:16px}.athlete-interval-details summary{cursor:pointer;padding:15px 17px;font-size:14px;font-weight:800}.athlete-interval-details[open] summary{border-bottom:1px solid #dbe6e2}.athlete-interval-details .athlete-interval-table-scroll{border:0;border-radius:0 0 14px 14px;margin:0}@media (width<=900px){.athlete-interval-charts{grid-template-columns:1fr}}@media (width<=640px){.athlete-intervals{margin-top:22px;padding-top:20px}.athlete-interval-table{font-size:13px}.athlete-interval-chart{padding:12px}}.analytics-page{width:min(1440px,100% - 40px);margin:0 auto;padding:46px 0 72px}.analytics-heading{margin-bottom:28px}.analytics-heading h1{margin:5px 0 8px;font-size:clamp(36px,5vw,58px);line-height:1}.analytics-heading p{color:#6d776f;margin:0;font-size:18px}.analytics-eyebrow,.analytics-card-label{color:#70bd25;letter-spacing:.09em;text-transform:uppercase;font-size:13px;font-weight:800}.period-tabs{background:#f6f9f5;border:1px solid #dce5dc;border-radius:16px;gap:8px;margin-bottom:24px;padding:5px;display:flex;overflow-x:auto}.period-tabs button{color:#667168;min-width:105px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;flex:1 0 auto;padding:12px 18px;font-weight:700}.period-tabs button.active{color:#152018;background:#fff;box-shadow:0 5px 18px #1b311f17}.analytics-empty{text-align:center;background:#fff;border:1px solid #dce5dc;border-radius:22px;padding:70px 24px}.analytics-empty.compact{background:#f7faf7;padding:28px 20px}.analytics-empty strong{margin-bottom:8px;font-size:22px;display:block}.analytics-empty p{color:#748078;max-width:580px;margin:0 auto}.analytics-period-row,.analytics-card-title,.plan-completion-card{justify-content:space-between;align-items:center;gap:20px;display:flex}.analytics-period-row{margin-bottom:18px}.analytics-period-row div{gap:4px;display:grid}.analytics-period-row span{color:#79837c;text-transform:uppercase;font-size:13px;font-weight:700}.analytics-period-row strong{font-size:20px}.analytics-period-row select{max-width:360px;font:inherit;background:#fff;border:1px solid #d7e0d7;border-radius:12px;padding:11px 14px}.analytics-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.analytics-metrics article{background:#fff;border:1px solid #dce5dc;border-radius:20px;gap:7px;min-height:112px;padding:20px;display:grid;box-shadow:0 9px 30px #1e34230d}.analytics-metrics span{color:#778178;font-size:14px}.analytics-metrics strong{font-size:clamp(25px,3vw,36px)}.analytics-card{background:#fff;border:1px solid #dce5dc;border-radius:22px;margin-bottom:18px;padding:26px;box-shadow:0 9px 30px #1e34230d}.analytics-card-title h2{margin:5px 0 0;font-size:25px}.analytics-card-title small,.sport-total{color:#778178}.plan-completion-card strong{margin-top:6px;font-size:22px;display:block}.completion-value{color:#72cf27;font-size:38px;font-weight:850}.analytics-comparison-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px;display:grid}.analytics-comparison-item{background:#f7faf7;border-radius:15px;gap:5px;padding:17px;display:grid}.analytics-comparison-item span,.analytics-comparison-item small{color:#78827a}.analytics-comparison-item strong{font-size:22px}.analytics-comparison-item b{width:fit-content;margin-top:3px;font-size:13px}.analytics-comparison-item .comparison-change{color:#5f6b62}.coach-summary-card{background:linear-gradient(135deg,#fff 20%,#f1ffe7);border-color:#ccebb4}.coach-summary-card p{color:#374139;white-space:pre-wrap;margin:12px 0 0;font-size:17px;line-height:1.65}.sport-metrics,.target-heart-rate{color:#6f7a72;flex-wrap:wrap;gap:12px 24px;margin:20px 0;display:flex}.sport-metrics b{color:#1a211c;margin-left:5px}.sport-analytics h3{margin:25px 0 15px;font-size:18px}.zone-list{gap:13px;display:grid}.zone-row{grid-template-columns:minmax(120px,180px) 1fr 60px;align-items:center;gap:14px;display:grid}.zone-label{justify-content:space-between;gap:8px;display:flex}.zone-label span{color:#7c877f;font-size:13px}.zone-track{background:#edf1ed;border-radius:999px;height:10px;overflow:hidden}.zone-fill{border-radius:inherit;height:100%;display:block}.zone-1{background:#79c8ff}.zone-2{background:#65d552}.zone-3{background:#f2cc43}.zone-4{background:#f1963d}.zone-5{background:#ee525e}.zone-row>b{text-align:right}.zone-meta{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.zone-source{color:#4d5a50;background:#edf5e8;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:700}.analytics-note,.analytics-alert{border-radius:12px;margin:15px 0 0;padding:12px 14px;font-size:14px}.analytics-note{color:#667169;background:#f3f6f3}.analytics-alert{color:#9b3a40;background:#fff0f1}.target-heart-rate{border-top:1px solid #e6ece6;margin-bottom:0;padding-top:18px;font-size:14px}.target-heart-rate strong{color:#273029}@media (width<=900px){.analytics-metrics,.analytics-comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-card-title{flex-direction:column;align-items:flex-start}}@media (width<=620px){.analytics-page{width:min(100% - 24px,1440px);padding-top:26px}.analytics-heading p{font-size:15px}.analytics-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-metrics article{min-height:96px;padding:16px}.analytics-period-row,.plan-completion-card{flex-direction:column;align-items:flex-start}.analytics-period-row select{width:100%;max-width:none}.analytics-comparison-grid{grid-template-columns:1fr}.analytics-card{padding:20px}.zone-row{grid-template-columns:1fr 52px}.zone-label{grid-column:1/-1}.zone-track{grid-column:1}}.coach-shell{color:#172019;background:radial-gradient(circle at 8% 0,#78d83e24,#0000 28%),#f4f7f4;min-height:100vh}.coach-topbar{background:#fffffff0;border-bottom:1px solid #dfe5df;justify-content:space-between;align-items:center;min-height:72px;padding:0 32px;display:flex}.coach-topbar>div{align-items:center;gap:12px;display:flex}.coach-topbar>div>div{display:grid}.coach-topbar small{color:#748078;margin-top:2px}.coach-brand-mark{color:#fff;background:linear-gradient(135deg,#1d9f4a,#8edb39);border-radius:11px;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.coach-dashboard-content{width:min(960px,100% - 48px);margin:0 auto;padding:48px 0 80px}.coach-dashboard-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:24px;display:flex}.coach-dashboard-heading>div>span{color:#238b48;text-transform:uppercase;letter-spacing:.08em;font-size:13px;font-weight:700}.coach-dashboard-heading h1{letter-spacing:-.04em;margin:7px 0 0;font-size:clamp(30px,5vw,46px)}.coach-athlete-select{gap:6px;min-width:260px;display:grid}.coach-athlete-select span{color:#68736b;font-size:12px;font-weight:700}.coach-athlete-select select{color:#182019;min-height:44px;font:inherit;background:#fff;border:1px solid #ced8d0;border-radius:11px;padding:0 38px 0 13px}.coach-review-summary{background:#fff;border:1px solid #dfe5df;border-radius:14px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:16px 20px;display:flex}.coach-review-summary span{color:#637068}.coach-review-summary strong{font-size:24px}.coach-decision-card{background:#fff;border:1px solid #dfe5df;border-radius:18px;padding:28px;box-shadow:0 8px 30px #21372a0f}.coach-decision-card.keep{background:radial-gradient(circle at 92% 5%,#5fcd4429,#0000 30%),#fff}.coach-decision-card.adjust{background:radial-gradient(circle at 92% 5%,#f4ae2d30,#0000 30%),#fff}.coach-card-heading,.coach-card-heading>div{align-items:center;display:flex}.coach-card-heading{justify-content:space-between;gap:16px}.coach-card-heading>div{gap:11px}.coach-card-heading>span{color:#758078;font-size:12px}.coach-decision-icon{color:#fff;border-radius:10px;place-items:center;width:36px;height:36px;font-size:19px;font-weight:800;display:grid}.coach-decision-icon.keep{background:#28a956}.coach-decision-icon.adjust{background:#e59a22}.coach-decision-icon.insufficient{background:#7b8780}.coach-decision-badge{border-radius:999px;margin-top:24px;padding:6px 11px;font-size:12px;font-weight:800;display:inline-flex}.coach-decision-badge.keep{color:#16763b;background:#e5f7e8}.coach-decision-badge.adjust{color:#995c08;background:#fff0d7}.coach-decision-badge.insufficient{color:#576159;background:#edf0ee}.coach-decision-card h2{letter-spacing:-.025em;max-width:760px;margin:14px 0 0;font-size:27px;line-height:1.25}.coach-decision-target{background:#f7f9f7e0;border:1px solid #e1e7e2;border-radius:13px;gap:4px;margin-top:24px;padding:18px;display:grid}.coach-decision-target span,.coach-decision-reasons>strong{color:#68736b;text-transform:uppercase;letter-spacing:.05em;font-size:12px}.coach-decision-target strong{font-size:18px}.coach-decision-target p{color:#6b756e;margin:0}.coach-decision-reasons{margin-top:24px}.coach-decision-reasons ul{gap:9px;margin:12px 0 0;padding-left:21px;display:grid}.coach-decision-reasons li{line-height:1.45}.coach-decision-note{color:#6d776f;border-top:1px solid #e4e9e5;margin:24px 0 0;padding-top:17px;font-size:13px}.coach-empty-state{flex-direction:column;justify-content:center;min-height:180px;display:flex}.coach-empty-state strong{font-size:20px}.coach-empty-state p{color:#69746c;max-width:620px;margin:8px 0 0;line-height:1.55}@media (width<=720px){.coach-topbar{padding:0 16px}.coach-dashboard-content{width:min(100% - 24px,960px);padding-top:28px}.coach-dashboard-heading{flex-direction:column;align-items:stretch}.coach-athlete-select{min-width:0}.coach-decision-card{padding:20px}.coach-card-heading{align-items:flex-start}.coach-card-heading>span{text-align:right}.coach-decision-card h2{font-size:23px}}.coach-overview-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:16px;margin-bottom:16px;display:grid}.coach-overview-card,.coach-week-card{background:#fff;border:1px solid #dfe5df;border-radius:18px;box-shadow:0 8px 30px #21372a0f}.coach-overview-card{padding:24px}.coach-section-heading{align-items:center;gap:10px;display:flex}.coach-section-icon{color:#fff;border-radius:10px;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.coach-section-icon.green{background:#29a856}.coach-section-icon.purple{background:#7467cf}.coach-section-icon.blue{background:#3b86c6}.coach-readiness-score{align-items:baseline;gap:4px;margin-top:20px;display:flex}.coach-readiness-score strong{font-size:44px;line-height:1}.coach-readiness-score span,.coach-readiness>p{color:#69746c}.coach-readiness>p{margin:7px 0 0}.coach-readiness-metrics{grid-template-columns:1fr 1fr;gap:10px;margin-top:20px;display:grid}.coach-readiness-metrics span{color:#6c766f;background:#f5f8f5;border-radius:11px;gap:3px;padding:11px;font-size:12px;display:grid}.coach-readiness-metrics b{color:#1c251e;font-size:14px}.coach-plan-summary h2{margin:20px 0 8px;font-size:22px;line-height:1.25}.coach-plan-summary>p{color:#68736b;margin:0;line-height:1.5}.coach-goal-line{border-top:1px solid #e4e9e5;gap:4px;margin-top:20px;padding-top:16px;display:grid}.coach-goal-line span,.coach-goal-line small{color:#6c766f;font-size:12px}.coach-decision-card{margin-bottom:16px}.coach-week-card{padding:24px}.coach-week-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;display:flex}.coach-week-heading>span{color:#6c766f;font-size:13px}.coach-session-list{gap:8px;display:grid}.coach-session-row{background:#fafcfa;border:1px solid #e4e9e5;border-radius:13px;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px;display:grid}.coach-session-date{text-align:center;gap:2px;display:grid}.coach-session-date strong{color:#278c4b;text-transform:capitalize}.coach-session-date span,.coach-session-copy span,.coach-session-metrics{color:#707a73;font-size:12px}.coach-session-copy{gap:4px;display:grid}.coach-session-metrics{text-align:right;white-space:nowrap}.coach-small-empty{color:#69746c;background:#f5f8f5;border-radius:12px;margin-top:20px;padding:22px}@media (width<=720px){.coach-overview-grid{grid-template-columns:1fr}.coach-week-heading{flex-direction:column;align-items:flex-start}.coach-session-row{grid-template-columns:54px minmax(0,1fr)}.coach-session-metrics{text-align:left;grid-column:2}}.coach-decision-card.empty .coach-empty-state{min-height:110px}.coach-report-section{margin-top:28px}.coach-section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:16px;display:flex}.coach-section-heading>div{gap:5px;display:grid}.coach-section-heading span{color:#087b76;letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;font-weight:800}.coach-section-heading h2{color:#153536;margin:0;font-size:clamp(1.35rem,2.2vw,1.8rem)}.coach-section-heading small{color:#728585;font-weight:700}.coach-report-list{gap:10px;display:grid}.coach-report-card{background:#fff;border:1px solid #dce8e5;border-radius:20px;overflow:hidden;box-shadow:0 8px 24px #1036360d}.coach-report-card.opened{border-color:#9bc9c2}.coach-report-card-main{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:58px minmax(190px,1fr) minmax(250px,auto) auto 24px;align-items:center;gap:18px;padding:17px 20px;display:grid}.coach-report-card-main:hover{background:#f7fbfa}.coach-report-date{color:#0c736f;background:#edf6f3;border-radius:15px;place-items:center;min-height:54px;display:grid}.coach-report-date strong{font-size:1.25rem;line-height:1}.coach-report-date span{text-transform:uppercase;font-size:.72rem}.coach-report-title{gap:5px;display:grid}.coach-report-title strong{color:#193536;font-size:.98rem}.coach-report-title span{color:#7a8d8c;font-size:.82rem}.coach-report-metrics{flex-wrap:wrap;gap:8px;display:flex}.coach-report-metrics span{color:#526b69;background:#f1f5f4;border-radius:999px;padding:7px 10px;font-size:.78rem;font-weight:700}.coach-report-status{text-align:center;border-radius:999px;min-width:116px;padding:8px 11px;font-size:.75rem;font-weight:800}.coach-report-status.review{color:#a35b00;background:#fff0d9}.coach-report-status.feedback{color:#627175;background:#eef1f3}.coach-report-status.published{color:#2d7540;background:#e5f6e9}.coach-report-status.draft{color:#66528d;background:#f1edfa}.coach-report-chevron{color:#0b7772;font-size:1.3rem;font-weight:500}.coach-report-details{border-top:1px solid #edf2f1;padding:0 20px 22px 96px}.coach-report-detail-grid{grid-template-columns:repeat(6,minmax(90px,1fr));gap:10px;padding:18px 0;display:grid}.coach-report-detail-grid>div{background:#f5f8f7;border-radius:13px;gap:5px;padding:12px;display:grid}.coach-report-detail-grid span,.coach-report-text-grid span{color:#788b89;text-transform:uppercase;font-size:.72rem;font-weight:700}.coach-report-detail-grid strong{color:#213d3d;font-size:.86rem}.coach-report-text-grid{grid-template-columns:1fr 1.5fr;gap:12px;display:grid}.coach-report-text-grid section{border:1px solid #e1ebe9;border-radius:15px;padding:16px}.coach-report-text-grid p{color:#425b59;white-space:pre-line;max-height:230px;margin:9px 0 0;font-size:.88rem;line-height:1.55;overflow:auto}.coach-report-warning{color:#a3472d;background:#fff0eb;border-radius:13px;margin:12px 0 0;padding:12px 15px;font-weight:700}.coach-empty-card{color:#738684;text-align:center;border:1px dashed #c9d9d6;border-radius:18px;padding:24px}@media (width<=1000px){.coach-report-card-main{grid-template-columns:52px 1fr auto 22px}.coach-report-metrics{grid-column:2/-1}.coach-report-detail-grid{grid-template-columns:repeat(3,1fr)}.coach-report-details{padding-left:20px}}@media (width<=680px){.coach-report-card-main{grid-template-columns:48px 1fr 22px;gap:12px;padding:14px}.coach-report-status{grid-column:2/3;justify-self:start}.coach-report-chevron{grid-area:1/3}.coach-report-metrics{grid-column:1/-1}.coach-report-details{padding:0 14px 16px}.coach-report-detail-grid{grid-template-columns:repeat(2,1fr)}.coach-report-text-grid{grid-template-columns:1fr}}.coach-review-form{background:#8091a00f;border:1px solid #8091a04d;border-radius:16px;margin-top:24px;padding:24px}.coach-review-form h3{margin:0 0 12px}.coach-review-form fieldset{border:0;gap:18px;min-width:0;margin:20px 0;padding:0;display:grid}.coach-review-form label{gap:8px;min-width:0;display:grid}.coach-review-form textarea,.coach-review-form select{box-sizing:border-box;width:100%;font:inherit;color:#172b3a;background:#fff;border:1px solid #718096;border-radius:10px;padding:12px}.coach-review-form textarea{resize:vertical;line-height:1.6}.coach-review-rating{max-width:220px}.coach-review-hint{opacity:.8;line-height:1.6}.coach-review-message{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.coach-review-actions{flex-wrap:wrap;gap:12px;display:flex}.coach-review-actions button{color:#172b3a;font:inherit;cursor:pointer;background:#fff;border:1px solid #718096;border-radius:10px;padding:12px 18px}.coach-review-actions .coach-review-publish{color:#fff;background:#166047;border-color:#166047}.coach-review-actions button:disabled{opacity:.5;cursor:not-allowed}.coach-review-form :focus-visible{outline-offset:3px;outline:3px solid #369bd6}.coach-review-error{color:#c13c3c}@media (width<=600px){.coach-review-form{padding:16px}.coach-review-actions button{width:100%}}.coach-report-section{scroll-margin-top:24px}.coach-review-summary-button{width:100%;font:inherit;text-align:left;cursor:pointer}.coach-review-summary-button:disabled{cursor:wait}.coach-report-filters{flex-wrap:wrap;gap:8px;margin:18px 0 12px;display:flex}.coach-report-filters button,.coach-report-more{color:#263c34;font:inherit;cursor:pointer;background:#fff;border:1px solid #d9e3df;border-radius:12px;padding:10px 14px}.coach-report-filters button{align-items:center;gap:8px;display:inline-flex}.coach-report-filters button[aria-pressed=true]{color:#126b4b;background:#e9f6ee;border-color:#18835d}.coach-report-filters button span{font-size:.85em;font-weight:700}.coach-report-count{color:#61736d;margin:0 0 14px;font-size:14px}.coach-report-more{margin:18px auto 0;display:block}.coach-report-filters button:focus-visible,.coach-report-more:focus-visible,.coach-review-summary-button:focus-visible{outline-offset:3px;outline:3px solid #18835d}.coach-overview-content{width:min(1200px,100% - 48px)}.coach-overview-intro{color:#637068;margin:12px 0 0}.coach-workspace-nav{align-items:center;gap:12px;display:flex}.coach-workspace-nav button,.coach-overview-refresh,.coach-overview-open,.coach-overview-pagination button{color:#263c34;min-height:44px;font:inherit;cursor:pointer;background:#fff;border:1px solid #ced8d0;border-radius:11px;padding:10px 14px}.coach-overview-open{color:#126b4b;background:#e9f6ee;border-color:#b9dcc8}.coach-overview-list{gap:18px;display:grid}.coach-overview-athlete{background:#fff;border:1px solid #dfe5df;border-radius:18px;padding:24px;box-shadow:0 8px 30px #21372a0a}.coach-overview-athlete-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.coach-overview-athlete-heading h2{overflow-wrap:anywhere;margin:0;font-size:24px}.coach-overview-data{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0;display:grid}.coach-overview-data>div{background:#f4f7f4;border-radius:12px;min-width:0;padding:14px}.coach-overview-data dt{color:#637068;font-size:13px}.coach-overview-data dd{margin:8px 0 0;font-size:26px;font-weight:750}.coach-overview-data .coach-overview-date{font-size:16px;line-height:1.5}.coach-overview-data small{color:#637068;margin-top:8px;font-size:12px;line-height:1.5;display:block}.coach-overview-data .coach-overview-pending{background:#fff3dd}.coach-overview-pending dd{color:#99600d}.coach-overview-timezone{color:#637068;margin:12px 0 0;font-size:12px}.coach-overview-pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;display:flex}.coach-overview-pagination button:disabled,.coach-overview-refresh:disabled{opacity:.55;cursor:default}.coach-workspace-nav button:focus-visible,.coach-overview-refresh:focus-visible,.coach-overview-open:focus-visible,.coach-overview-pagination button:focus-visible{outline-offset:3px;outline:3px solid #18835d}@media (width<=900px){.coach-overview-data{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.coach-overview-content{width:calc(100% - 24px)}.coach-overview-athlete{padding:16px}.coach-overview-athlete-heading{flex-direction:column;align-items:flex-start}.coach-overview-athlete-heading h2{font-size:22px}.coach-workspace-nav{flex-wrap:wrap;justify-content:flex-end;gap:6px}.coach-workspace-nav button{padding:8px;font-size:13px}}
