@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap";
:root{--bg:#f4f6fa;--paper:#fff;--ink:#15243d;--muted:#68768c;--line:#e1e6f0;--green:#315de6;--green-dark:#14243e;--lime:#ff8a58;--soft:#edf2ff;--amber:#a16a24;--red:#b65342;--radius:14px;--shadow:0 5px 28px #1f382b09}*{box-sizing:border-box}body{color:var(--ink);background:var(--bg);margin:0;font:14px/1.55 DM Sans,system-ui,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #8a99b7}button svg,a svg{flex-shrink:0}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{letter-spacing:-.035em;font-family:Manrope,DM Sans,system-ui,sans-serif;font-weight:650}h1{font-size:32px;line-height:1.25}h2{font-size:22px}h3{font-size:17px}small{font-size:12px}.muted{color:var(--muted)}.eyebrow{letter-spacing:.15em;text-transform:uppercase;font-size:10px;font-weight:700}.small{font-size:12px}.flex{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.stack{flex-direction:column;gap:18px;display:flex}.spacer{flex:1}.text-link{color:var(--green);background:0 0;border:0;align-items:center;gap:7px;padding:8px 0;font-size:12px;font-weight:650;text-decoration:none;display:inline-flex}.icon-button{border:1px solid var(--line);background:var(--paper);width:38px;height:38px;color:var(--ink);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.button{border:1px solid var(--line);min-height:42px;color:var(--ink);white-space:nowrap;background:#fff;border-radius:9px;justify-content:center;align-items:center;gap:9px;padding:10px 17px;font-size:12px;font-weight:650;text-decoration:none;display:inline-flex}.button:hover,.icon-button:hover{background:#eceff5}.button.primary{background:var(--green);border-color:var(--green);color:#fff}.button.light{background:var(--lime);border-color:var(--lime);color:#1e2f50}.button.ghost{background:0 0}.button.danger{color:var(--red)}.button.full{width:100%}.badge{letter-spacing:.025em;background:var(--soft);color:#365ac1;white-space:nowrap;border-radius:5px;align-items:center;gap:5px;padding:4px 7px;font-size:10px;font-weight:650;display:inline-flex}.badge.amber{color:#91622a;background:#fbf0dc}.badge.neutral{color:#5f739b;background:#edf0f5}.badge.blue{color:#607e99;background:#eaf1f6}.badge.outline{border:1px solid var(--line);color:var(--muted);background:0 0}.dot{background:#6579a1;border-radius:50%;width:6px;height:6px}.sidebar{border-right:1px solid var(--line);z-index:20;background:#fff;flex-direction:column;width:222px;padding:35px 20px 20px;display:flex;position:fixed;top:0;bottom:0;left:0}.brand{letter-spacing:-1.5px;color:#14243e;align-items:center;gap:11px;padding:0 13px;font-family:Manrope,sans-serif;font-size:28px;font-weight:800;text-decoration:none;display:flex}.brand-mark{justify-content:center;align-items:center;width:33px;height:33px;display:flex}.brand-sub{color:#7a8bad;letter-spacing:.13em;text-transform:uppercase;padding:6px 15px 0;font-size:9px}.nav-label{letter-spacing:.15em;color:#8998b6;margin:49px 15px 15px;font-size:9px;font-weight:650}.nav{flex-direction:column;gap:7px;display:flex}.nav button{color:#6377a0;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:12px;padding:13px 15px;font-size:12px;display:flex}.nav button.active{color:#273d68;background:#e5e9f1;font-weight:650}.nav button:hover{background:#f0f2f6}.nav .count{background:#fff;border-radius:4px;margin-left:auto;padding:0 6px;font-size:10px}.sidebar-bottom{margin-top:auto}.race-sidebar{border:1px solid var(--line);color:var(--green);background:#fbfcfd;border-radius:11px;margin:20px 0;padding:15px 13px}.race-sidebar .small{font-size:11px}.race-track{background:#dce2ed;border-radius:9px;height:4px;margin-top:14px;overflow:hidden}.race-track>span{background:#7788ab;height:100%;display:block}.user-box{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:14px;padding:20px 9px 0;display:flex}.avatar{color:#4f6081;background:#e0e5ee;border-radius:50%;justify-content:center;align-items:center;width:33px;height:33px;font-size:12px;font-weight:700;display:flex}.user-box strong{font-size:12px;display:block}.user-box small{color:#7a8bad;font-size:10px}.main{max-width:1760px;margin-left:222px;padding:0 38px 40px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:80px;margin-bottom:30px;display:flex}.breadcrumb{color:#7f8fb0;align-items:center;gap:10px;font-size:11px;display:flex}.breadcrumb span:last-child{color:#586a8f}.top-actions{align-items:center;gap:14px;display:flex}.top-date{color:#61759e;font-size:11px}.topbar .icon-button{background:0 0;border-color:#0000}.mobile-brand{display:none}.page-heading{justify-content:space-between;align-items:flex-start;margin:0 0 27px;display:flex}.page-heading .eyebrow{color:#7587ab;margin-bottom:8px}.page-heading p{color:#6d80a5;margin-top:8px;font-size:12px}.page-actions{gap:8px;margin-top:19px;display:flex}.preview-strip{color:#6b7ea4;align-items:center;gap:7px;margin:-15px 0 20px;font-size:10px;display:flex}.preview-strip button{color:var(--green);background:0 0;border:0;font-size:10px;text-decoration:underline}.coach-grid{grid-template-columns:minmax(0,1fr) 310px;gap:22px;display:grid}.card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff}.card-pad{padding:22px}.card-title{justify-content:space-between;align-items:center;margin-bottom:19px;display:flex}.card-title h3{letter-spacing:-.025em;font-size:15px}.card-title .subtitle{color:var(--muted);margin-top:4px;font-size:11px}.coach-hero{background:var(--green-dark);color:#fff;border-radius:var(--radius);min-height:254px;padding:26px 29px 25px;position:relative;overflow:hidden}.coach-hero .eyebrow{color:#adb7cc;z-index:1;align-items:center;gap:7px;display:flex;position:relative}.coach-hero h2{z-index:1;letter-spacing:-.025em;max-width:470px;margin:15px 0 13px;font-size:28px;font-weight:550;line-height:1.35;position:relative}.coach-hero p{color:#bac5dc;z-index:1;max-width:480px;font-size:12px;line-height:1.9;position:relative}.hero-bottom{z-index:1;justify-content:space-between;align-items:center;gap:10px;margin-top:22px;display:flex;position:relative}.hero-bottom small{color:#a1adc6;align-items:center;gap:6px;font-size:10px;display:flex}.contour{opacity:.16;width:350px;height:350px;position:absolute;top:-35px;right:-72px}.metric-row{grid-template-columns:repeat(3,1fr);margin:20px 0 0;display:grid}.metric{border-right:1px solid var(--line);padding:1px 20px}.metric:first-child{padding-left:2px}.metric:last-child{border:0}.metric .label{color:#7587aa;align-items:center;gap:7px;font-size:10px;display:flex}.metric .value{letter-spacing:-.06em;color:#22365d;margin:5px 0;font-family:Manrope,sans-serif;font-size:27px;font-weight:650}.metric .value span{color:#7587aa;letter-spacing:0;margin-left:4px;font-size:12px;font-weight:400}.metric .caption{color:#7c8dae;font-size:10px}.session-card{padding:22px}.session-card .top{justify-content:space-between;align-items:center;display:flex}.session-card .session-date{color:#7f8fb0;margin:13px 0 4px;font-size:10px}.session-card h3{margin-bottom:9px;font-size:24px}.session-distance{letter-spacing:-.06em;margin:14px 0;font-family:Manrope,sans-serif;font-size:41px;line-height:1.2}.session-distance span{letter-spacing:0;color:#7f90b1;margin-left:4px;font-family:DM Sans,sans-serif;font-size:14px}.session-description{color:#6c7fa5;font-size:11px;line-height:1.8}.session-detail-row{color:#6579a1;gap:17px;margin:17px 0 22px;font-size:10px;display:flex}.session-detail-row span{align-items:center;gap:5px;display:flex}.week-card{margin-top:24px;padding:22px 22px 17px}.week-grid{grid-template-columns:repeat(7,1fr);gap:8px;margin-top:20px;display:grid}.week-day{border:1px solid var(--line);text-align:center;min-height:125px;color:var(--ink);background:#fff;border-radius:9px;flex-direction:column;align-items:center;padding:13px 4px;display:flex;position:relative}.week-day:hover{border-color:#8191b1}.week-day .day-name{letter-spacing:.06em;text-transform:uppercase;color:#8191b2;font-size:9px}.week-day .day-date{margin:5px 0 14px;font-family:Manrope;font-size:16px}.week-day .day-type{color:#5d7199;margin:7px 0 1px;font-size:9px}.week-day .day-km{color:#546689;font-size:10px;font-weight:600}.week-day.rest{color:#8c9bb8;background:#f8f9fb}.week-footer{color:#7788ab;border-top:1px solid var(--line);justify-content:space-between;margin-top:18px;padding-top:14px;font-size:10px;display:flex}.week-footer strong{color:#4a5a7a;font-weight:600}.focus-card{background:#e9ecf3;border-color:#dde3ee;margin-top:22px;padding:22px}.focus-icon{color:#5b6e94;background:#d3dae9;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.focus-card h3{margin:13px 0 7px;font-size:15px}.focus-card p{color:#6b7ea4;font-size:11px;line-height:1.8}.focus-list{flex-direction:column;gap:11px;margin:16px 0 0;padding:0;list-style:none;display:flex}.focus-list li{color:#5e7299;align-items:center;gap:8px;font-size:10px;display:flex}.review-card{margin-top:22px;padding:23px}.review-top{align-items:center;gap:10px;margin:17px 0;display:flex}.activity-icon{color:#546689;background:#e9ecf2;border-radius:9px;justify-content:center;align-items:center;width:35px;height:35px;display:flex}.review-top h4{font-size:13px}.review-top p{color:#7d8eb0;margin-top:2px;font-size:10px}.review-card .summary{color:#6579a0;font-size:12px;line-height:1.9}.review-stats{border-top:1px solid var(--line);gap:29px;margin-top:17px;padding-top:16px;display:flex}.review-stats strong{font-size:16px;font-weight:550}.review-stats small{color:#7f8fb0;margin-top:2px;font-size:9px;display:block}.journey-card{margin-top:22px;padding:22px}.journey-step{gap:12px;margin-left:4px;padding:0 0 20px;display:flex;position:relative}.journey-step:last-child{padding-bottom:0}.journey-step:before{content:"";background:#dde2ed;width:1px;position:absolute;top:11px;bottom:0;left:4px}.journey-step:last-child:before{display:none}.journey-step .point{background:#d3dae9;border-radius:50%;flex-shrink:0;width:9px;height:9px;margin-top:5px;position:relative}.journey-step strong{font-size:11px;font-weight:550}.journey-step p{color:#8191b1;margin-top:2px;font-size:10px}.two-columns{grid-template-columns:minmax(0,1fr) 320px;gap:22px;display:grid}.notice{color:#897443;background:#fdf9ee;border:1px solid #e9dfc6;border-radius:10px;gap:10px;padding:15px;font-size:12px;line-height:1.75;display:flex}.notice svg{flex-shrink:0;margin-top:2px}.notice.green{color:#536487;background:#ebeef3;border-color:#d9dfec}.empty{text-align:center;color:#6b7ea5;padding:40px}.empty svg{margin-bottom:12px}.empty h3{color:var(--ink);margin-bottom:7px}.toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px;display:flex}.segmented{border:1px solid var(--line);background:#eceff5;border-radius:9px;gap:3px;padding:4px;display:inline-flex}.segmented button{color:#6c7fa5;background:0 0;border:0;border-radius:6px;padding:7px 14px;font-size:11px}.segmented button.active{color:#273d69;background:#fff;box-shadow:0 1px 4px #15243d10}.search{border:1px solid var(--line);color:#8292b2;background:#fff;border-radius:9px;align-items:center;gap:9px;padding:9px 12px;display:flex}.search input{width:180px;color:var(--ink);background:0 0;border:0;outline:none;font-size:12px}.activity-table{border-collapse:collapse;width:100%}.activity-table th{text-align:left;text-transform:uppercase;letter-spacing:.07em;color:#7a8bad;border-bottom:1px solid var(--line);background:#f9fafb;padding:16px 20px;font-size:9px;font-weight:550}.activity-table td{border-bottom:1px solid var(--line);padding:18px 20px;font-size:12px}.activity-table tr:last-child td{border-bottom:0}.activity-table tbody tr{cursor:pointer}.activity-table tbody tr:hover{background:#f7f8fb}.activity-table .activity-title{align-items:center;gap:12px;display:flex}.activity-table .activity-title strong{font-size:12px;font-weight:550}.activity-table small{color:#7e8fb0;margin-top:3px;font-size:10px;display:block}.table-wrap{border-radius:var(--radius);overflow-x:auto}.field{flex-direction:column;gap:7px;display:flex}.field label,.field-label{color:#586b90;font-size:11px;font-weight:550}.field input,.field select,.field textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fafbfc;border-radius:8px;min-height:43px;padding:11px 12px}.field textarea{resize:vertical;min-height:84px}.field input[type=range]{accent-color:#526385;background:0 0;border:0;min-height:20px;padding:0}.form-grid{grid-template-columns:1fr 1fr;gap:17px;display:grid}.full-span{grid-column:1/-1}.form-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:9px;margin-top:25px;padding-top:20px;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background:#12223c90;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:17px;width:min(640px,100%);max-height:90vh;overflow:auto;box-shadow:0 24px 100px #111a2d30}.modal.wide{width:min(940px,100%)}.modal-header{border-bottom:1px solid var(--line);z-index:2;background:#fff;border-radius:17px 17px 0 0;justify-content:space-between;align-items:center;gap:14px;padding:24px 27px 19px;display:flex;position:sticky;top:0}.modal-header h2{font-size:22px}.modal-body{padding:25px 27px}.modal-body>.stack{gap:20px}.toast{color:#fff;z-index:150;background:#20395f;border-radius:11px;align-items:center;gap:10px;max-width:90vw;padding:13px 21px;font-size:12px;display:flex;position:fixed;bottom:25px;left:calc(50% + 90px);transform:translate(-50%);box-shadow:0 5px 25px #15213925}.toast.error{background:#834c3e}.session-block{border-bottom:1px solid var(--line);padding:16px 0}.session-block:last-child{border:0}.session-block .eyebrow{color:#6f81a6;margin-bottom:7px;font-size:9px}.session-block p{color:#526385;font-size:13px;line-height:1.8}.big-stats{grid-template-columns:repeat(3,1fr);gap:12px;padding:20px 0;display:grid}.big-stat{background:#f1f3f7;border-radius:10px;padding:16px}.big-stat strong{letter-spacing:-.05em;font-family:Manrope;font-size:25px;font-weight:600;display:block}.big-stat small{color:#6d80a5;font-size:10px}.exercise-grid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.exercise{padding:21px}.exercise .number{color:#919fbc;margin-bottom:14px;font-family:Manrope;font-size:11px}.exercise h3{margin:10px 0 5px}.exercise p{color:#6f82a7;min-height:42px;margin:10px 0 16px;font-size:12px}.exercise footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding-top:13px;display:flex}.exercise-meta{color:#55678b;font-size:11px}.exercise .button{min-height:36px;padding:7px 12px;font-size:10px}.setting-section{border-bottom:1px solid var(--line);margin-bottom:23px;padding-bottom:23px}.setting-section:last-child{border:0;margin:0}.setting-section h3{margin-bottom:13px}.integration{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex}.integration:last-child{border:0}.integration strong{font-size:12px;font-weight:600}.integration p{color:#7a8bae;margin-top:3px;font-size:11px}.chart{width:100%;height:240px;margin-top:20px}.chart-caption{color:#7d8eaf;margin-top:12px;font-size:10px}.progress-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.progress-metrics{grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:22px;display:grid}.progress-metrics .card{padding:22px}.progress-metrics .value{letter-spacing:-.04em;margin:10px 0 4px;font-family:Manrope;font-size:29px}.proposal{background:#fffcf2;border:1px solid #dfd8c4;border-radius:11px;margin-top:20px;padding:20px}.proposal h3{margin:12px 0 9px;font-size:16px}.proposal p{color:#8f8062;font-size:12px;line-height:1.8}.diff{background:#fff;border:1px solid #e8e2d2;border-radius:8px;margin:13px 0;padding:12px;font-size:12px}.diff-row{align-items:center;gap:10px;padding:5px 0;display:flex}.diff del{color:#9b8f7b}.diff ins{color:#4b5b7b;text-decoration:none}.calendar-card{padding:23px}.fc{--fc-border-color:#e0e5ee;--fc-button-bg-color:#315de6;--fc-button-border-color:#315de6;--fc-button-active-bg-color:#14243e;--fc-button-hover-bg-color:#14243e;--fc-today-bg-color:#eceff5;font-family:DM Sans,sans-serif}.fc .fc-toolbar-title{font-family:Manrope;font-size:19px;font-weight:550}.fc .fc-button{border-radius:6px;padding:7px 12px;font-size:11px;box-shadow:none!important}.fc .fc-col-header-cell-cushion{text-transform:uppercase;letter-spacing:.06em;color:#7485aa;padding:13px 0;font-size:10px;font-weight:500}.fc .fc-daygrid-day-number{color:#7284a8;padding:10px;font-size:11px}.fc .fc-daygrid-day{min-height:110px}.fc-event{cursor:pointer!important;border:0!important;border-radius:4px!important;padding:4px 5px!important;font-size:10px!important}.fc .fc-daygrid-event-dot{display:none}.fc .fc-daygrid-day-events{margin:4px 5px 8px!important}.fc-theme-standard .fc-scrollgrid{border-radius:8px;overflow:hidden}.calendar-legend{color:#6f81a6;flex-wrap:wrap;gap:18px;margin-top:20px;font-size:10px;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.legend-item i{border-radius:50%;width:7px;height:7px}.calendar-help{color:#7889ac;margin-top:13px;font-size:10px}.schedule-list{margin-top:20px}.schedule-item{border:0;border-bottom:1px solid var(--line);text-align:left;width:100%;color:var(--ink);background:#fff;align-items:center;gap:14px;padding:15px 0;display:flex}.schedule-item:last-child{border:0}.schedule-item small{color:#7789ac;margin-top:3px;font-size:10px;display:block}.schedule-item strong{font-size:12px}.surgery-dates{grid-template-columns:1fr 1fr;gap:11px;display:grid}.surgery-dates div{background:#f1f3f7;border-radius:8px;padding:12px}.surgery-dates small{color:#7587ab;font-size:10px;display:block}.surgery-dates strong{font-size:12px;font-weight:550}.offline{text-align:center;color:#8d713b;background:#fff4df;border-bottom:1px solid #eee0bd;padding:9px 20px;font-size:11px}.loading{color:#7083a8;justify-content:center;align-items:center;gap:12px;padding:80px;display:flex}.spin{animation:1.5s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.bottom-nav{display:none}.login-screen{background:#fff;grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.login-story{color:#fff;background:#14243e;flex-direction:column;justify-content:center;padding:65px 10%;display:flex;position:relative;overflow:hidden}.login-story .brand{color:#c3cde0;padding:0;position:absolute;top:50px}.login-story h1{max-width:500px;margin:25px 0;font-size:55px;line-height:1.2}.login-story p{color:#a9b4cb;max-width:420px;font-size:15px;line-height:1.9}.login-form{justify-content:center;align-items:center;padding:50px;display:flex}.login-form-inner{width:365px}.login-form h2{margin:13px 0;font-size:30px}.login-form p{color:#7486aa;margin:15px 0 28px;font-size:13px}.login-form .button{min-height:50px;font-size:13px}.login-foot{line-height:1.8;margin-top:22px!important;font-size:10px!important}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.step-number{color:#57698d;background:#e7ebf2;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:11px;display:flex}.observation{color:#5b6e94;gap:10px;font-size:12px;line-height:1.8;display:flex}.checkbox-label{color:#5f739a;align-items:flex-start;gap:9px;font-size:12px;display:flex}.checkbox-label input{accent-color:var(--green);margin-top:3px}.source-note{color:#7d8eb0;font-size:10px;line-height:1.8}.privacy-box{background:#f2f4f7;border-radius:9px;padding:14px}.metric-mini{color:#7587ab;gap:7px;font-size:11px;display:flex}.progress-bar{background:#e7ebf2;border-radius:9px;height:6px;overflow:hidden}.progress-bar span{background:#7082a7;height:100%;display:block}.range-output{color:#404e69;font-size:13px;font-weight:600}.checkin-hint{color:#7485aa;margin-bottom:20px;font-size:11px;line-height:1.8}.hero-icon{align-items:center;gap:8px;display:flex}.phase-banner{background:#e8ebf2;border-radius:10px;justify-content:space-between;align-items:center;gap:14px;margin-bottom:21px;padding:17px 20px;display:flex}.phase-banner p{color:#687ca3;margin-top:3px;font-size:11px}.phase-banner strong{font-size:12px}.detail-grid{grid-template-columns:1.5fr 1fr;gap:25px;display:grid}.section-separator{border-top:1px solid var(--line);margin-top:25px;padding-top:22px}@media (min-width:1550px){.main{padding-left:55px;padding-right:55px}.coach-grid{grid-template-columns:minmax(0,1fr) 340px}.coach-hero{min-height:270px}.coach-hero h2{font-size:31px}}@media (max-width:1200px){.sidebar{width:190px;padding-left:12px;padding-right:12px}.main{margin-left:190px;padding:0 24px 35px}.coach-grid{grid-template-columns:minmax(0,1fr) 280px;gap:17px}.coach-hero{min-height:275px;padding:25px}.coach-hero h2{max-width:360px;font-size:25px}.coach-hero p{max-width:360px}.week-grid{gap:4px}.week-day{padding-left:1px;padding-right:1px}.card-pad,.week-card,.review-card,.focus-card,.session-card,.journey-card{padding:19px}.hero-bottom small{display:none}.two-columns{grid-template-columns:minmax(0,1fr) 280px}}@media (max-width:1000px){.sidebar{width:172px;padding:28px 10px 15px}.brand{padding-left:10px;font-size:26px}.brand-sub{padding-left:12px;font-size:8px}.nav button{padding:12px 10px}.main{margin-left:172px;padding:0 22px 30px}.coach-grid{grid-template-columns:1fr}.coach-aside{grid-template-columns:1fr 1fr;gap:18px;display:grid}.coach-aside .session-card{grid-row:span 2}.coach-aside .focus-card,.coach-aside .journey-card{margin-top:0}.coach-hero{min-height:auto}.coach-hero h2{max-width:75%;font-size:29px}.coach-hero p{max-width:75%}.hero-bottom small{display:flex}.two-columns{grid-template-columns:1fr}.two-columns>aside{grid-template-columns:1fr 1fr;gap:18px;display:grid}.top-date{display:none}.page-actions{margin-top:10px}.page-heading h1{font-size:29px}.progress-metrics{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){body{font-size:13px}.sidebar{display:none}.main{margin-left:0;padding:0 19px 98px}.topbar{height:67px;margin-bottom:24px}.breadcrumb{display:none}.mobile-brand{letter-spacing:-1px;padding:0;font-size:24px;display:flex}.mobile-brand .brand-mark{width:26px}.top-actions{gap:2px}.topbar .avatar{display:none}.page-heading{gap:10px;margin-bottom:23px}.page-heading h1{font-size:27px}.page-heading .eyebrow{font-size:9px}.page-heading p{font-size:11px;line-height:1.7}.page-actions .button{gap:0;padding:10px;font-size:0}.page-actions .button svg{width:17px}.preview-strip{align-items:flex-start;margin-top:-9px;margin-bottom:18px;font-size:9px;line-height:1.7}.coach-hero{min-height:285px;padding:23px}.coach-hero h2{max-width:92%;margin-top:18px;font-size:27px}.coach-hero p{max-width:95%;font-size:11px}.hero-bottom small{display:none}.contour{opacity:.12;right:-145px}.metric-row{margin:22px 0 0}.metric{padding:0 13px}.metric .label{gap:4px;font-size:9px}.metric .label svg{width:12px}.metric .value{margin:7px 0;font-size:24px}.metric .caption{font-size:9px}.metric .value span{font-size:10px}.week-card{margin-top:23px;padding:18px 13px 16px}.week-card .card-title{padding:0 4px}.week-grid{gap:4px;margin-top:16px}.week-day{border-radius:7px;min-height:111px;padding-top:10px}.week-day .day-date{margin-bottom:11px;font-size:14px}.week-day .day-name{font-size:8px}.week-day .day-type{white-space:nowrap;font-size:8px}.week-day .day-km{font-size:9px}.week-day svg{width:14px;height:14px}.week-footer{gap:8px;margin-top:15px;padding-top:12px;font-size:9px}.coach-aside{grid-template-columns:1fr}.coach-aside .session-card{grid-row:auto}.coach-aside .focus-card,.coach-aside .journey-card{margin:0}.session-card{padding:23px}.session-distance{margin:10px 0}.session-card .button.full{width:auto}.review-card{padding:20px}.bottom-nav{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);z-index:25;padding:8px 10px calc(9px + env(safe-area-inset-bottom));background:#ffffffed;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{color:#7f90b1;background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;min-width:54px;min-height:44px;padding:4px;font-size:8px;display:flex}.bottom-nav button.active{color:#3b475f}.bottom-nav button.active svg{box-sizing:content-box;background:#e2e6ef;border-radius:6px;margin:-4px;padding:4px}.toolbar{flex-wrap:wrap;align-items:stretch}.search{flex:1}.search input{width:100%}.activity-table th,.activity-table td{padding:14px 13px}.activity-table .hide-mobile{display:none}.activity-table .activity-title{gap:8px}.activity-table .activity-title strong{font-size:11px}.activity-icon{flex-shrink:0;width:30px;height:30px}.activity-table td{font-size:11px}.modal-overlay{align-items:flex-end;padding:12px}.modal{border-radius:17px 17px 12px 12px;max-height:92vh}.modal-header{padding:20px}.modal-header h2{font-size:20px}.modal-body{padding:20px}.form-grid{gap:14px}.field label{font-size:10px}.field input,.field select,.field textarea{font-size:13px}.detail-grid{grid-template-columns:1fr}.big-stats{gap:8px}.big-stat{padding:12px}.big-stat strong{font-size:23px}.toast{width:max-content;max-width:90vw;font-size:11px;bottom:87px;left:50%}.exercise-grid{grid-template-columns:1fr}.exercise p{min-height:auto}.progress-grid{grid-template-columns:1fr}.progress-metrics{gap:11px}.progress-metrics .card{padding:17px}.progress-metrics .value{font-size:27px}.chart{height:220px}.two-columns>aside{grid-template-columns:1fr}.calendar-card{padding:16px 10px}.fc .fc-toolbar{flex-wrap:wrap;gap:8px}.fc .fc-toolbar-title{font-size:16px}.fc .fc-button{padding:6px 8px;font-size:10px}.fc .fc-col-header-cell-cushion{font-size:9px}.fc .fc-daygrid-day-number{padding:7px;font-size:10px}.fc-event{padding:3px!important;font-size:8px!important}.fc .fc-daygrid-day-events{margin:2px!important}.calendar-legend{gap:12px;font-size:9px}.login-screen{grid-template-columns:1fr}.login-story{min-height:310px;padding:100px 30px 40px}.login-story .brand{top:30px}.login-story h1{margin:10px 0 18px;font-size:35px}.login-story p{font-size:12px}.login-form{padding:35px 25px 70px}.surgery-dates{grid-template-columns:1fr 1fr}.topbar .icon-button{min-width:40px;min-height:44px}.card-title .text-link{font-size:10px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.fc .fc-daygrid-event{white-space:normal}.fc .fc-event-main{overflow:hidden}.fc .fc-dayGridWeek-view .fc-daygrid-day-frame{min-height:190px}.fc .fc-dayGridWeek-view .fc-daygrid-event{min-height:44px;line-height:1.5;padding:8px 6px!important}.fc .fc-dayGridMonth-view .fc-daygrid-day-frame{min-height:100px}.fc .fc-col-header-cell-cushion{white-space:normal}.muted,.page-heading p,.session-description,.review-card .summary,.focus-card p,.exercise p,.field label,.source-note,.checkin-hint{color:#516283}.metric .label,.metric .caption,.week-footer,.journey-step p,.session-card .session-date,.session-detail-row,.preview-strip,.top-date,.activity-table small,.chart-caption{color:#526385}.nav button,.week-day .day-name,.week-day .day-type{color:#55678a}@media (max-width:1200px){.two-columns{grid-template-columns:1fr}.two-columns>aside{grid-template-columns:1fr 1fr;gap:20px;display:grid}.two-columns>aside>.journey-card{margin-top:0}}@media (max-width:760px){.two-columns>aside{grid-template-columns:1fr}.fc .fc-dayGridWeek-view .fc-daygrid-event{padding:5px 3px!important;font-size:9px!important}.fc .fc-dayGridWeek-view .fc-daygrid-day-frame{min-height:170px}}.mobile-calendar{display:none}.mobile-month{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:20px;display:grid}.month-weekday{text-align:center;color:#667aa2;padding:5px;font-size:10px}.mobile-month button{border:1px solid var(--line);color:#4a5978;background:#fff;border-radius:7px;flex-direction:column;align-items:center;gap:2px;min-height:62px;padding:6px 2px;display:flex}.mobile-month button.outside{opacity:.4}.mobile-month button>span{font-size:12px}.mobile-month button small{height:11px;font-size:8px}.mobile-month button>div{gap:2px;display:flex}.mobile-month i{border-radius:50%;width:3px;height:3px;display:block}.agenda-day{border-top:1px solid var(--line);gap:13px;padding:15px 0;display:flex}.agenda-date{flex-direction:column;align-items:center;min-width:30px;padding-top:5px;display:flex}.agenda-date small{color:#6a7da3;text-transform:uppercase;font-size:9px}.agenda-date strong{margin-top:3px;font-family:Manrope;font-size:21px;font-weight:500}.agenda-sessions{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.agenda-session{border:1px solid var(--line);text-align:left;color:#42506b;background:#f8f9fb;border-radius:9px;align-items:center;gap:10px;width:100%;padding:12px 10px;display:flex}.agenda-session>span:nth-child(2){flex:1}.agenda-session strong,.agenda-rest strong{font-size:11px;font-weight:550;display:block}.agenda-session small,.agenda-rest small{color:#5e7299;margin-top:3px;font-size:10px;display:block}.agenda-rest{color:#62769e;padding:12px 5px}.agenda-session .activity-icon{width:30px;height:30px}.agenda-session .activity-icon svg{width:15px}.agenda-session .activity-icon+span{min-width:0}.agenda-session .activity-icon+span strong{overflow-wrap:anywhere}@media (max-width:760px){.desktop-calendar{display:none}.mobile-calendar{display:block}.calendar-card{padding:19px 16px}.calendar-help{line-height:1.8}.preview-strip button{white-space:nowrap}.phase-banner{flex-direction:column;align-items:flex-start;gap:8px}.coach-grid>section,.coach-aside{display:contents}.coach-grid{gap:20px}.coach-hero{order:1}.coach-grid .session-card{order:2}.coach-grid .metric-row{order:3;margin:0}.coach-grid .week-card{order:4;margin:0}.coach-grid .proposal{order:5;margin:0}.coach-grid .review-card{order:6;margin:0}.coach-grid .focus-card{order:7;margin:0}.coach-grid .journey-card{order:8;margin:0}}:root{--bg:#f4f6fa;--ink:#15243d;--muted:#66758d;--line:#e1e6f0;--green:#315de6;--green-dark:#14243e;--lime:#ff8a58;--soft:#edf2ff}h1{letter-spacing:-.045em;font-weight:750}.brand{font-weight:800}.nav button.active{color:#2452cf;background:#eaf0ff;box-shadow:inset 3px 0 #315de6}.nav button.active svg{color:#315de6}.coach-hero{background:#14243e}.coach-hero h2{letter-spacing:-.035em;font-weight:700}.coach-hero p{color:#c4cee0}.button.primary{background:#315de6;border-color:#315de6}.button.primary:hover{background:#2249c1}.button.light{color:#18263e;background:#ff8a58;border-color:#ff8a58}.button.light:hover{background:#ffa073}.metric .value,.session-distance,.big-stat strong,.progress-metrics .value{font-variant-numeric:tabular-nums;color:#15243d;font-weight:750}.focus-card{background:#edf2ff;border-color:#dfe7fb}.focus-icon{color:#315de6;background:#dce6ff}.focus-list li{color:#60718d}.focus-list svg{color:#315de6}.week-day.selected{background:#f0f4ff;border-color:#315de6}.week-day .day-km{color:#3155aa}.journey-step.active .point{background:#ff8651;box-shadow:0 0 0 4px #fff0e8}.journey-step.active strong{color:#20395f}.badge{color:#3153ac;background:#edf2ff}.session-card{border-top:3px solid #315de6}.race-sidebar{background:#f5f7fe}.progress-bar span{background:#315de6}.fc{--fc-button-bg-color:#315de6;--fc-button-border-color:#315de6;--fc-button-active-bg-color:#2144b2;--fc-button-hover-bg-color:#2144b2;--fc-today-bg-color:#edf2ff}.bottom-nav button.active{color:#315de6}.bottom-nav button.active svg{background:#e7edff}.mobile-month button.selected{background:#edf2ff;border-color:#315de6}.activity-icon{color:#315de6;background:#edf2ff}.field input[type=range],.checkbox-label input{accent-color:#315de6}.race-banner{isolation:isolate;color:#fff;background:#142943;border-radius:18px;min-height:258px;margin:0 0 24px;padding:28px 32px;position:relative;overflow:hidden;box-shadow:0 9px 25px #172f5512}.race-banner:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,#142943 0% 19%,#142943e0 34%,#14294300 57%);position:absolute;inset:0}.harbour-art{object-fit:contain;pointer-events:none;width:76%;height:100%;position:absolute;bottom:0;right:0}.race-banner-copy{z-index:2;width:360px;max-width:60%;position:relative}.race-bib{letter-spacing:.14em;color:#e4ecfb;align-items:center;gap:8px;font-size:9px;font-weight:700;display:flex}.race-bib>svg{color:#ffa779}.bib-distance{color:#bdd0eb;white-space:nowrap;border:1px solid #617693;border-radius:4px;margin-left:5px;padding:4px 7px;font-size:8px}.race-banner h2{letter-spacing:-.05em;margin:17px 0 10px;font-size:36px;font-weight:800;line-height:1.13}.race-banner h2 span{color:#ff9c70}.race-banner-copy>p{color:#c1cfe3;font-size:11px}.race-banner-meta{color:#c6d5ed;align-items:center;gap:11px;margin-top:23px;font-size:10px;display:flex}.race-banner-meta strong{color:#fff;font-size:13px}.race-banner-meta i{background:#728dab;border-radius:50%;width:3px;height:3px}.race-banner-caption{z-index:2;letter-spacing:.2em;color:#b9cee9;font-size:8px;position:absolute;bottom:15px;right:24px}.coach-hero{color:var(--ink);box-shadow:var(--shadow);background:#fff;border:1px solid #dce5f6;min-height:0;padding:24px 27px}.coach-hero .eyebrow{color:#315de6}.coach-hero .eyebrow>svg{box-sizing:content-box;background:#edf2ff;border-radius:9px;padding:7px}.coach-hero h2{color:#15243d;max-width:100%;margin:12px 0 11px;font-size:24px}.coach-hero p{color:#526385;max-width:100%;font-size:12px;line-height:1.85}.coach-hero .contour{opacity:.08;top:12px;right:-95px}.hero-bottom{margin-top:19px}.hero-bottom small{color:#617394}.hero-bottom .button.light{color:#3153ac;background:#edf2ff;border-color:#dce5ff}.hero-bottom .button.light:hover{background:#e0e9ff}.metric-row{gap:10px;margin-top:16px}.metric{isolation:isolate;background:#edf2ff;border:1px solid #e0e7f6;border-radius:12px;padding:14px;position:relative;overflow:hidden}.metric:first-child{padding:14px}.metric:last-child{background:#fff1e8;border:1px solid #f4dfd2;padding:14px}.metric:nth-child(2){background:#fff}.metric:after{content:"";z-index:-1;border:1px solid #315de612;border-radius:50%;width:88px;height:88px;position:absolute;bottom:-40px;right:-47px;transform:rotate(-25deg)scaleX(.7);box-shadow:0 0 0 10px #315de608,0 0 0 20px #315de605}.metric .value{margin:7px 0 4px;font-size:28px}.metric .label{font-size:9px}.metric .caption{font-size:9px;line-height:1.6}.week-day{transition:transform .18s,border-color .18s,box-shadow .18s;overflow:hidden}.week-day:hover{border-color:#9aafe5;transform:translateY(-3px);box-shadow:0 5px 12px #172f5510}.week-day>svg{box-sizing:content-box;color:#315de6;background:#eaf0ff;border-radius:50%;padding:7px}.week-day.kind-long{background:#fff8f2;border-color:#f4e3d5}.week-day.kind-long>svg{color:#ad562e;background:#ffe5d4}.week-day.kind-strength>svg{color:#6559a5;background:#e8e7fb}.week-day.kind-badminton>svg{color:#327ca5;background:#e5f3fc}.week-day.kind-rest{background:#f8f9fb}.week-day.kind-rest>svg{color:#8b98ad;background:#eef1f5}.week-day.selected:before{content:"";background:#315de6;height:3px;position:absolute;inset:0 0 auto}.session-card{background:linear-gradient(160deg,#fff 55%,#f4f7ff);border-top:0;padding-top:23px;position:relative;overflow:hidden}.session-card:before{content:"";background:linear-gradient(90deg,#315de6 0% 68%,#ff9467 68% 84%,#dce6fb 84%);height:4px;position:absolute;top:0;left:0;right:0}.session-flow{background:#eef3ff;border:1px solid #e0e8fa;border-radius:10px;margin:18px 0 22px;padding:14px 11px 11px}.flow-label{letter-spacing:.11em;color:#637da9;font-size:8px;font-weight:700}.session-flow ol{margin:12px 0 0;padding:0;list-style:none;display:flex}.session-flow li{color:#536b90;flex-direction:column;flex:1;align-items:center;gap:7px;font-size:9px;display:flex;position:relative}.session-flow li:not(:last-child):after{content:"";border-top:2px dotted #afc1e7;width:calc(100% - 36px);position:absolute;top:15px;left:calc(50% + 18px)}.flow-point{color:#6280b8;z-index:1;background:#fff;border:1px solid #dbe5fa;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.flow-point.main-point{color:#fff;background:#315de6;border-color:#315de6;box-shadow:0 0 0 4px #dce6ff}.journey-ribbon{width:100%;height:78px;margin:-5px 0 19px;display:block}.journey-card .card-title{margin-bottom:12px}.journey-step{padding-bottom:18px}.run-trace{margin-top:18px}.run-trace>div{letter-spacing:.08em;color:#6c80a1;justify-content:space-between;font-size:8px;display:flex}.run-trace>div span:last-child{letter-spacing:0}.run-trace svg{width:100%;height:75px;margin-top:7px;display:block;overflow:visible}.strength-heading{isolation:isolate;background:#edf2ff;border:1px solid #dce6fb;border-radius:16px;flex-direction:column;align-items:flex-start;gap:18px;min-height:204px;padding:26px 29px 22px;display:flex;position:relative;overflow:hidden}.strength-heading>div:first-of-type{z-index:1;max-width:68%;position:relative}.strength-heading .segmented{z-index:1;background:#dfe8fa;position:relative}.strength-heading h2{font-size:26px}.strength-art{z-index:-1;width:270px;position:absolute;bottom:15px;right:12px}.exercise{position:relative;overflow:hidden}.exercise:before{content:"";background:linear-gradient(90deg,#315de6 0% 35%,#e4ebfb 35%);height:3px;position:absolute;top:0;left:0;right:0}.exercise:nth-child(2n):before{background:linear-gradient(90deg,#ff9467 0% 35%,#fff0e7 35%)}.exercise .number{color:#3153ac;letter-spacing:.08em;font-weight:650}.progress-metrics .card{isolation:isolate;position:relative;overflow:hidden}.progress-metrics .card:after{content:"";z-index:-1;border:8px solid #edf2ff;border-radius:50%;width:90px;height:90px;position:absolute;bottom:-30px;right:-24px;transform:scaleX(.65)rotate(30deg);box-shadow:0 0 0 2px #dce6fb,0 0 0 12px #f2f6ff}.progress-metrics .card:nth-child(2n):after{border-color:#fff1e8;box-shadow:0 0 0 2px #ffe1d1,0 0 0 12px #fff7f2}@media (min-width:1550px){.race-banner{min-height:280px;padding:31px 36px}.race-banner h2{font-size:42px}.race-banner-copy{width:410px}.harbour-art{width:72%}.coach-hero{min-height:0}.coach-hero h2{font-size:27px}}@media (max-width:1200px){.race-banner{padding:25px}.race-banner h2{font-size:33px}.harbour-art{width:80%}.race-banner-copy{max-width:60%}.metric,.metric:first-child,.metric:last-child{padding:11px}.metric .value{font-size:24px}.metric .value span{font-size:10px}.metric .label{gap:4px;font-size:8px}.metric-row{gap:7px}.coach-hero h2{font-size:23px}.coach-hero p{max-width:100%}.session-flow{padding-left:7px;padding-right:7px}}@media (max-width:1000px){.race-banner{min-height:245px}.race-banner h2{font-size:31px}.harbour-art{opacity:.95;width:90%;right:-75px}.race-banner:before{background:linear-gradient(90deg,#142943 0%,#142943ed 29%,#14294300 65%)}.race-banner-copy{max-width:70%}.strength-heading>div:first-of-type{max-width:65%}.strength-art{width:240px;right:-15px}.coach-hero{min-height:0}.coach-hero h2,.coach-hero p{max-width:100%}}@media (max-width:760px){.race-banner{border-radius:15px;min-height:360px;margin-bottom:20px;padding:22px 23px 0}.race-banner:before{background:linear-gradient(#142943 0% 30%,#14294300 65%)}.race-banner-copy{width:100%;max-width:none}.race-banner h2{margin:15px 0 8px;font-size:32px}.race-banner-copy>p{font-size:10px}.race-banner-meta{gap:8px;margin-top:15px;font-size:9px}.harbour-art{opacity:1;width:calc(100% + 80px);height:190px;bottom:-3px;right:-45px}.race-banner-caption{font-size:7px;bottom:10px;right:15px}.race-bib{font-size:8px}.bib-distance{font-size:7px}.coach-hero{min-height:0;padding:22px}.coach-hero h2{max-width:100%;margin-top:14px;font-size:24px}.coach-hero p{max-width:100%;font-size:11px}.metric-row{gap:6px}.metric,.metric:first-child,.metric:last-child{padding:12px 9px}.metric .label{flex-wrap:wrap;gap:4px;font-size:8px}.metric .label svg{display:none}.metric .value{white-space:nowrap;letter-spacing:-.06em;font-size:23px}.metric .value span{margin-left:2px;font-size:9px}.metric .caption{font-size:8px}.week-day>svg{padding:5px}.week-day .day-date{margin-bottom:8px}.week-day .day-type{margin-top:6px}.week-grid{gap:3px}.week-day{min-height:125px}.session-flow{max-width:100%;padding:14px}.session-flow ol{margin-top:15px}.session-flow li{font-size:10px}.session-card .button.full{width:100%}.strength-heading{gap:16px;min-height:300px;padding:22px 21px 105px}.strength-heading>div:first-of-type{max-width:100%}.strength-heading h2{font-size:24px}.strength-art{width:190px;bottom:-7px;right:-12px}.strength-heading .segmented{align-self:flex-start}.run-trace svg{height:65px}}@media (prefers-reduced-motion:reduce){.week-day{transition:none}.week-day:hover{transform:none}}
