:root{--ink:#172c29;--green:#146a54;--paper:#f5f7f3;--line:#dbe3dc;--muted:#60756c}*{box-sizing:border-box}body{color:var(--ink);background:var(--paper);margin:0;font-family:Arial,Helvetica,sans-serif;font-size:15px}button,a,textarea{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px 14px}button:hover{border-color:var(--green);background:#edf4ee}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #82bbff}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:20px;height:90px;padding:0 34px;display:flex}.brand{color:var(--ink);align-items:center;gap:12px;font-size:20px;font-weight:700;text-decoration:none;display:flex}.brandmark{background:var(--green);color:#fff;letter-spacing:-5px;border-radius:14px;place-items:center;width:46px;height:46px;padding-right:5px;font-size:29px;display:grid}.brand small{letter-spacing:3px;color:var(--muted);margin-top:5px;font-size:10px;display:block}.topactions{gap:8px;display:flex}.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover{background:#0b4d3c}.eyebrow{letter-spacing:2px;color:var(--green);font-size:11px;font-weight:700}h1{letter-spacing:-1.5px;margin:10px 0 20px;font-size:36px;line-height:1.14}h2{letter-spacing:-.6px;font-size:22px}h3{margin-top:24px;font-size:14px}.login{max-width:780px;margin:100px auto;padding:30px}.login h1{letter-spacing:-3px;font-size:60px}.login p{max-width:540px;font-size:18px;line-height:1.7}.login .primary{margin:20px 0 5px;padding:15px 35px}.muted,small{color:var(--muted);line-height:1.5}.athletes{border-right:1px solid var(--line);background:#f9fbf8;flex-shrink:0;width:265px;padding:30px 18px}.athlete{text-align:left;background:0 0;border-color:#0000;align-items:center;gap:9px;width:100%;margin:10px 0;padding:12px 8px;display:flex}.athlete b,.athlete small{display:block}.athlete small{font-size:11px}.avatar{background:#dcebe1;border-radius:50%;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid}.selected{outline:2px solid var(--green);background:#edf5ee}.badge{color:#fff;background:#dc6544;border-radius:20px;margin-left:5px;padding:2px 7px;font-size:12px;display:inline-block}.training{flex:1;min-width:0;padding:34px}.sectionhead{justify-content:space-between;align-items:center;gap:12px;display:flex}.weeknav{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.weeknav span{text-align:center;min-width:85px}.days{grid-template-columns:repeat(7,minmax(120px,1fr));gap:10px;margin-top:28px;padding:3px 3px 12px;display:grid;overflow-x:auto}.day{border:1px solid var(--line);background:#f9fbf8;border-radius:12px;flex-direction:column;gap:16px;min-height:210px;padding:12px 8px;display:flex}.dayheading{text-align:center;flex-direction:column;gap:7px;display:flex}.dayheading strong{text-transform:uppercase;color:var(--muted);font-size:11px}.dayworkouts{flex-direction:column;align-items:stretch;gap:12px;display:flex}.dayworkouts .session{overflow-wrap:anywhere;width:100%;min-width:0;padding:10px 8px}.dayworkouts .empty{text-align:center;padding:12px 0}.session{text-align:left;background:#fff;border-left:4px solid #bd9146;flex:1;min-width:200px;padding:12px 16px}.session small,.session b,.session>span:not(.badge){display:block}.session small{text-transform:capitalize;font-size:11px}.session b{margin:6px 0}.completed{border-left-color:var(--green)}.chosen{border-left-color:#4779aa}.removed{opacity:.6}.empty{color:#87978c;font-size:13px}.detail{border:1px solid var(--line);background:#fff;border-radius:14px;margin-top:24px;padding:26px}.detail-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;display:grid}.conversation{min-width:0}.status{text-transform:capitalize;background:#e4efe7;border-radius:6px;padding:5px 8px;font-size:12px}.readiness{background:#eaf4ed;border-radius:10px;flex-direction:column;gap:6px;padding:14px;display:flex}.readiness span{font-size:13px;line-height:1.5}.prescription{border-bottom:1px solid var(--line);padding-bottom:10px}ol{padding-left:22px}li{padding:5px 0}li span{color:var(--muted);font-size:13px;line-height:1.5;display:block}.metrics{grid-template-columns:1fr 1fr;gap:15px;display:grid}.metrics dt{color:var(--muted);font-size:12px}.metrics dd{margin:4px 0;font-size:18px}.message{background:#f3f5f1;border-radius:10px;margin:12px 0;padding:13px}.message.mine{background:#eaf3ed}.message b{font-size:13px}.message p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}.message small{font-size:10px}textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:100px;color:var(--ink);border-radius:9px;margin:8px 0;padding:12px;display:block}form label{font-size:13px;font-weight:700}.notice{background:#fff0db;justify-content:space-between;gap:10px;padding:16px 34px;display:flex}.invite-panel{border:1px solid var(--line);background:#fff;border-radius:12px;margin-bottom:25px;padding:24px}.invite-code{overflow-wrap:anywhere;background:#edf4ee;margin:15px 0;padding:16px}.invite-code small{margin-top:10px;display:block}footer{color:var(--muted);border-top:1px solid var(--line);padding:18px 34px;font-size:11px}.active{background:#e1eee4}@media (max-width:1200px){.athletes{width:210px}.training{padding:24px}.sectionhead{flex-wrap:wrap}}@media (max-width:950px){.workspace{flex-wrap:wrap}.athletes{border-right:0;border-bottom:1px solid var(--line);width:100%;padding:15px}.athlete{width:auto;display:inline-flex}.athletes h2{display:none}.detail-columns{grid-template-columns:1fr;gap:16px}.training{width:100%;min-width:0}.topbar{flex-wrap:wrap;height:auto;padding:15px}.brand{font-size:17px}.login{margin:30px auto}.login h1{font-size:43px}.topactions button{padding:8px;font-size:12px}.session{min-width:150px}}.coach-login{gap:16px;max-width:360px;display:grid}.coach-login label{gap:6px;display:grid}.coach-login input{width:100%;font:inherit;color:inherit;background:0 0;border:1px solid #74818b;border-radius:8px;padding:12px}.invitation-shell{max-width:600px;margin:0 auto;padding:48px 20px 32px;font-size:16px;line-height:1.6}.invitation-brand{align-items:center;gap:12px;margin-bottom:28px;font-size:20px;font-weight:700;display:flex}.invitation-brand small{letter-spacing:2.5px;margin-top:1px;font-size:10px;display:block}.invitation-card{border:1px solid var(--line);background:#fff;border-radius:22px;padding:36px;box-shadow:0 8px 32px #172c2906}.invitation-card p{margin:0 0 20px}.invitation-card .eyebrow{margin-bottom:12px}.invitation-card h1{letter-spacing:-1px;margin:0 0 18px;font-size:clamp(28px,7vw,36px);line-height:1.12}.invitation-intro{color:var(--muted)}.invitation-open{text-align:center;border-radius:10px;justify-content:center;align-items:center;gap:10px;min-height:50px;padding:12px 16px;font-weight:700;text-decoration:none;display:flex}.invitation-fallback{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.invitation-fallback h2{letter-spacing:-.3px;margin:0 0 8px;font-size:18px}.invitation-fallback p{color:var(--muted);margin-bottom:14px;font-size:14px}.invitation-code{border:1px solid var(--line);background:var(--paper);text-align:center;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;border-radius:10px;padding:14px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(13px,3.8vw,18px);display:block}.invitation-copy{width:100%;min-height:44px;margin-top:10px;font-weight:700}.invitation-fallback .invitation-copy-status{min-height:21px;color:var(--green);text-align:center;margin:6px 0 0}.invitation-card .invitation-help{color:var(--muted);margin:20px 0;font-size:14px}.invitation-card .invitation-note{border-top:1px solid var(--line);color:var(--muted);margin-bottom:0;padding-top:18px;font-size:12px;line-height:1.7}.invitation-footer{text-align:center;color:var(--muted);margin:20px 0 0;font-size:12px}@media (max-width:480px){.invitation-shell{padding:24px 16px}.invitation-brand{margin-bottom:20px}.invitation-card{border-radius:18px;padding:24px 20px}}.conversation{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;align-self:start;height:min(760px,100dvh - 180px);display:flex;position:sticky;top:16px;overflow:hidden}.conversation-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;gap:12px;padding:16px;display:flex}.conversation-heading h3{margin:0}.conversation-heading p{color:var(--muted);margin:6px 0 0;font-size:13px}.conversation-history{overflow-wrap:anywhere;flex:1;min-height:0;padding:16px;overflow-y:auto}.conversation form{border-top:1px solid var(--line);flex:none;padding:12px 16px}.conversation textarea{min-height:76px;max-height:160px}.conversation form [role=status]:empty{display:none}.weekly-chat-actions{flex-wrap:wrap;gap:10px;margin:16px 0;display:flex}.unread-filter-notice{border:1px solid var(--line);background:var(--green-soft,#e7f2ed);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding:14px 16px;display:flex}.weekly-detail .conversation{max-width:860px;margin-inline:auto}.conversation-history .message{border-radius:18px 18px 18px 4px;width:fit-content;max-width:85%}.conversation-history .message.mine{background:var(--green-soft,#e7f2ed);border-radius:18px 18px 4px;margin-left:auto}.conversation-history .message p{overflow-wrap:anywhere}input,select,textarea,.coach-login input{font-size:16px}.training{padding:20px 24px}.week-header{z-index:2;background:var(--paper);padding-bottom:10px;position:sticky;top:0}.week-header h1{margin:4px 0;font-size:24px}.weekly-chat-actions{margin:8px 0}.sync-caption{margin:6px 0;font-size:12px}.days{gap:8px;max-height:230px;margin-top:8px}.day{gap:6px;min-height:120px;padding:8px;overflow:hidden}.dayheading{flex-direction:row;justify-content:center;align-items:baseline;gap:8px}.dayheading span{font-size:20px}.dayworkouts{gap:6px;min-height:0;overflow-y:auto}.dayworkouts .session{flex:none;padding:6px}.session b{margin:3px 0;font-size:13px}.review-open{height:var(--review-height,100dvh);flex-direction:column;display:flex;overflow:hidden}.review-open .week-header{flex:none}.review-open .sync-caption{display:none}.review-open .detail{flex-direction:column;flex:1;min-height:0;margin-top:8px;padding:12px;display:flex;overflow:hidden}.review-open .detail h2{margin:4px 0;font-size:18px}.review-open .detail>p{margin:4px 0 8px;font-size:12px}.review-open .detail-columns{flex:1;gap:20px;min-height:0}.session-summary{min-height:0;overflow-y:auto}.session-summary>summary{cursor:pointer;padding:10px 0;font-weight:700}.conversation{align-self:stretch;height:100%;min-height:0;position:static}.weekly-detail .conversation{flex:1;width:100%}.conversation-heading{padding:10px 12px}.conversation form{padding:8px 12px}.conversation textarea{height:48px;min-height:48px;margin:4px 0}.conversation-history{overscroll-behavior:contain}@media (max-width:950px){.training{padding:8px}.week-header .sectionhead{flex-wrap:nowrap}.week-header h1{font-size:16px}.week-header .eyebrow,.review-open .week-header .sectionhead>div:first-child{display:none}.weeknav{flex-wrap:nowrap;gap:4px}.weeknav button{min-height:36px;padding:6px 10px}.weekly-chat-actions{margin:4px 0}.weekly-chat-actions button{padding:6px 10px}.days{grid-template-columns:repeat(7,142px);max-height:235px;padding-bottom:6px}.day{min-height:100px}.dayworkouts .session small,.dayworkouts .session>span:not(.badge){display:none}.review-open .detail{margin-top:0;padding:8px}.review-open .detail-columns{flex-direction:column;gap:6px;display:flex}.session-summary{flex:none;max-height:35%}.conversation{flex:1}.conversation-heading p{margin-top:2px}.conversation form{padding-bottom:max(8px, env(safe-area-inset-bottom))}.unread-filter-notice{margin:4px 0;padding:6px;font-size:12px}}@media (max-width:950px) and (max-height:550px){.review-open .days{max-height:100px}.review-open .day{min-height:70px}.review-open .conversation-heading,.review-open .detail>p{display:none}}.review-open .detail-columns{grid-template-rows:minmax(0,1fr)}.review-open .conversation{height:auto}@media (min-width:951px){.review-open .days{max-height:250px}}@media (max-width:950px){.review-open.short-viewport .days{max-height:80px}.review-open.short-viewport .day{min-height:65px}.review-open.short-viewport .conversation-heading,.review-open.short-viewport .detail>p,.review-open.short-viewport .session-summary,.review-open.short-viewport .detail>h2{display:none}.review-open.short-viewport .week-header{grid-template-columns:1fr auto;gap:4px;display:grid}.review-open.short-viewport .week-header .days{grid-column:1/-1}.review-open.short-viewport .weeknav button:last-child{display:none}.review-open.short-viewport .weekly-chat-actions button{font-size:12px}.review-open.short-viewport .weekly-chat-actions{margin:0}.review-open.short-viewport .conversation form label{display:none}.review-open.short-viewport .conversation form{padding:4px 8px}.review-open.short-viewport .conversation textarea{height:36px;min-height:36px}}.days{grid-template-rows:minmax(0,1fr)}.workspace{min-height:0;display:block}.topbar{gap:16px;height:auto;min-height:72px;padding:12px 24px}.athlete-picker{align-items:center;gap:8px;min-width:0;margin-left:auto;display:flex}.athlete-picker>span{color:var(--muted);font-size:12px}.athlete-picker select{font:inherit;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:9px;width:220px;max-width:100%;padding:10px;font-size:16px}.athlete-picker select:focus-visible{outline-offset:3px;outline:3px solid #82bbff}@media (max-width:950px){.topbar{grid-template-columns:auto minmax(0,1fr);gap:8px;padding:10px 8px;display:grid}.brand{gap:7px;font-size:14px}.brandmark{border-radius:9px;width:32px;height:32px;font-size:23px}.brand small{letter-spacing:2px;margin-top:2px;font-size:8px}.athlete-picker{justify-content:end;width:100%}.athlete-picker>span{display:none}.athlete-picker select{width:100%;padding:8px}.topactions{flex-wrap:wrap;grid-column:1/-1;gap:6px}.topactions button{min-height:36px}.sync-caption{margin:6px 0}}.brand-logo{border-radius:11px;flex-shrink:0;width:46px;height:46px;display:block}@media (max-width:950px){.topbar .brand-logo{border-radius:8px;width:34px;height:34px}}.topbar{z-index:10;position:sticky;top:0}.training{scroll-margin-top:var(--menu-height,72px)}.week-header{top:var(--menu-height,72px)}.review-open .week-header{position:static}.invite-form{gap:12px;max-width:640px;display:grid}.invite-form label{font-size:17px;font-weight:700}.invite-form input{width:100%;min-width:0;min-height:52px;color:var(--ink);font:inherit;background:#f8fbf9;border:2px solid #8caaa0;border-radius:10px;padding:14px 16px;font-size:18px}.invite-form input:focus-visible{outline-offset:2px;border-color:var(--green);outline:3px solid #82bbff}.invite-form button{justify-self:start}.planned-chat-button{place-self:start}.invite-code{border-radius:12px}.invite-code p{margin:0 0 12px}.invite-recipient{overflow-wrap:anywhere}.invite-code-value,.invite-code-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.invite-code-value code{overflow-wrap:anywhere;min-width:0;font-size:17px}.invite-code-actions{margin-top:12px}.invite-code-actions:first-child{margin-top:0}.mobile-account-menu,.mobile-role,.mobile-week-strip,.mobile-workout-title,.review-tabs{display:none}@media (max-width:950px){.topbar{grid-template-columns:34px minmax(0,1fr) auto;min-height:60px;padding:6px 8px}.topbar .brand>span{display:none}.athlete-picker{flex-direction:column;align-items:stretch;gap:2px;display:flex}.athlete-picker select{min-height:40px;padding:6px}.mobile-role{color:var(--muted);padding-left:7px;font-size:10px;display:block}.topactions{flex-wrap:nowrap;grid-column:auto;gap:4px}.topactions .desktop-account-action,.unread-label{display:none}.topactions>button{justify-content:center;align-items:center;gap:2px;min-width:40px;min-height:40px;display:flex}.mobile-account-menu{display:block;position:relative}.mobile-account-menu>summary{cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:9px;place-items:center;min-width:40px;height:40px;font-size:24px;list-style:none;display:grid}.mobile-account-menu>summary::-webkit-details-marker{display:none}.mobile-account-menu>div{border:1px solid var(--line);background:#fff;border-radius:12px;gap:8px;min-width:150px;padding:8px;display:grid;position:absolute;top:46px;right:0;box-shadow:0 8px 24px #172c2920}.has-review>footer{display:none}.review-open{padding:0 6px 6px}.review-open .week-header,.review-open.short-viewport .week-header{padding:4px 0;display:block}.mobile-week-strip{align-items:center;gap:4px;display:flex}.mobile-week-strip>button{min-height:44px;padding:8px}.week-strip-days{flex:1;gap:3px;min-width:0;display:flex;overflow-x:auto}.week-strip-days button{flex-direction:column;flex:1 0 38px;align-items:center;gap:1px;padding:4px;font-size:16px;display:flex}.week-strip-days small{font-size:10px}.week-strip-days [aria-pressed=true]{background:var(--green);color:#fff;border-color:var(--green)}.day-dot{height:7px;font-size:7px;line-height:7px}.day-dot.unread{color:#d95738}.review-open.week-collapsed .week-header>:not(.mobile-week-strip){display:none}.review-open.week-expanded .days{max-height:180px}.review-open.week-expanded .day{min-height:120px}.review-open.composer-focused .week-header{display:none}.review-open .detail{border-radius:12px;padding:8px}.review-open .detail>h2,.review-open .detail>p,.workout-context>.status{display:none}.mobile-workout-title{flex-direction:column;gap:2px;min-width:0;display:flex}.mobile-workout-title strong{font-size:16px}.mobile-workout-title span{color:var(--muted);font-size:12px}.workout-context{flex:none;margin-bottom:6px}.workout-context>button{min-width:40px;min-height:40px;padding:4px}.review-tabs{background:#e8efeb;border-radius:10px;flex:none;gap:4px;margin-bottom:8px;padding:3px;display:flex}.review-tabs button{background:0 0;border:0;flex:1;min-height:40px;padding:6px}.review-tabs [aria-selected=true]{background:#fff;font-weight:700;box-shadow:0 1px 4px #172c2918}.review-open .detail-columns{flex:1;min-height:0;overflow:hidden}.review-open .session-summary,.review-open.short-viewport .session-summary{overscroll-behavior:contain;flex:1;min-height:0;max-height:none;display:block;overflow-y:auto}.session-summary>summary,.review-open.tab-chat .session-summary,.review-open.tab-details .detail-columns>.conversation{display:none}.review-open .conversation{border:0;border-radius:0;flex:1;min-height:0}.review-open .conversation-heading{display:none}.conversation-history{padding:8px}.review-open .conversation form{padding:8px 0 max(4px, env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px;display:grid}.conversation form label{clip-path:inset(50%);width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.review-open .conversation textarea{resize:none;field-sizing:content;border-radius:18px;height:44px;min-height:44px;max-height:120px;margin:0;padding:10px}.conversation form .sectionhead{flex-direction:column;gap:2px;display:flex}.conversation form .sectionhead button{min-height:44px;padding:10px}.conversation form [role=status]{grid-column:1/-1;margin:0;font-size:12px}.weekly-detail>.sectionhead{flex:none}}.mobile-send-arrow{display:none}@media (max-width:950px){.desktop-send-label{display:none}.mobile-send-arrow{font-size:24px;line-height:1;display:inline}.conversation form .sectionhead button{border-radius:50%;width:44px}.review-open .conversation textarea{height:auto}}
