:root{font-family:ui-sans-serif,system-ui,sans-serif;background:#fff;color:#111}body{margin:0}main{min-height:100vh;display:grid;grid-template-columns:1fr 380px;grid-gap:7vw;gap:7vw;align-items:start;max-width:1080px;margin:auto;padding:5rem 2rem;box-sizing:border-box}h1{font-size:clamp(3rem,6vw,5.5rem);line-height:1;margin:1rem 0;letter-spacing:-.05em}.eyebrow,.status,dt{color:#666;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.integration,form{border-top:1px solid #ddd;padding-top:1.5rem;display:grid;grid-gap:1rem;gap:1rem}.auth{grid-gap:2rem;gap:2rem}.auth,label{display:grid}label{grid-gap:.4rem;gap:.4rem;color:#555}button,input,select{padding:.75rem;border-radius:.5rem;border:1px solid #bbb;background:white;color:#111;font:inherit}button{background:#111;color:#fff;cursor:pointer;width:-moz-fit-content;width:fit-content}.language button,button.secondary{background:white;color:#111}.language{display:flex;gap:.5rem;justify-content:flex-end}dl{display:flex;gap:3rem}dd{margin:.4rem 0 0}[role=alert]{color:#9b1c1c}.authenticated{display:block;max-width:1180px}.authenticated .hero h1{font-size:2rem}.workspace{margin-top:2rem}.tabs{display:flex;gap:.5rem;border-bottom:1px solid #ddd;padding-bottom:1rem}.tabs .active{background:#111}.chat{max-width:720px}.timeline{display:flex;flex-direction:column;gap:.75rem;padding:1rem 0;max-height:60vh;overflow-y:auto}.bubble{max-width:75%;padding:.75rem 1rem;border-radius:1rem;background:#f0f0f0}.bubble.other{align-self:flex-start}.bubble.own{align-self:flex-end;background:#111;color:#fff}.bubble.system{align-self:stretch;max-width:none;border:1px solid #ccc;background:#fafafa;display:grid;grid-gap:.25rem;gap:.25rem}.bubble p{margin:.25rem 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.bubble small{opacity:.7}textarea{min-height:4rem;padding:.75rem;border:1px solid #bbb;border-radius:.5rem;font:inherit;resize:vertical}.composer{margin-top:1rem}.wecom-reply{border-top:1px solid #bbb;margin-top:.75rem;padding-top:.75rem;display:grid;grid-gap:.5rem;gap:.5rem}.wecom-reply button{background:#fff;color:#111}.coach-dashboard{display:grid;grid-template-columns:minmax(230px,32%) 1fr;min-height:65vh;border:1px solid #ddd;margin-top:2rem}.coach-dashboard aside{border-right:1px solid #ddd;padding:1rem}.conversation{width:100%;background:white;color:#111;border:0;border-bottom:1px solid #eee;border-radius:0;display:grid;grid-template-columns:1fr auto;text-align:left}.conversation small{grid-column:1;color:#666}.conversation b{grid-column:2;grid-row:1/3;border-radius:1rem;background:#111;color:white;padding:.2rem .5rem;align-self:center}.dialog{padding:1.5rem;min-width:0}.mobile-back{display:none}.empty{color:#666;padding:2rem 0}@media (max-width:760px){main{grid-template-columns:1fr;padding-top:2rem}}@media (max-width:640px){.authenticated{padding:1rem}.coach-dashboard{display:block;border:0}.coach-dashboard.has-selection aside,.coach-dashboard:not(.has-selection) .dialog{display:none}.coach-dashboard aside{border:0;padding:0}.dialog{padding:0}.mobile-back{display:block}.bubble{max-width:86%}.tabs{overflow-x:auto}}.overview{margin-top:1.5rem}.overview>header{display:flex;justify-content:space-between;gap:1rem}.overview h2{margin:.25rem 0}.overview-counters{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:.75rem;gap:.75rem;margin:1.5rem 0}.overview-counters div{border:1px solid #ddd;border-radius:.75rem;padding:1rem;display:grid;grid-gap:.25rem;gap:.25rem}.overview-counters strong{font-size:1.7rem}.overview-counters span{color:#666}.athlete-cards{display:grid;grid-gap:1rem;gap:1rem}.athlete-card{border:1px solid #ddd;border-left:4px solid #aaa;border-radius:.75rem;padding:1.25rem}.athlete-card[data-status=ACCESS_LOST],.athlete-card[data-status=ERROR]{border-left-color:#a33}.athlete-card[data-status=NEVER_SYNCED],.athlete-card[data-status=STALE]{border-left-color:#a76b12}.athlete-card[data-status=READY]{border-left-color:#397555}.athlete-card>header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.athlete-card h3{margin:.25rem 0}.athlete-card small,.athlete-card time{color:#666}.status-badge{border-radius:2rem;padding:.4rem .7rem;background:#eee;white-space:nowrap;font-size:.85rem}.status-access_lost,.status-error{background:#f8e8e8;color:#7c2424}.status-ready{background:#e7f3eb;color:#275c3d}.status-never_synced,.status-stale{background:#f8f0df;color:#76521c}.card-summaries,.operational-fields{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1rem;gap:1rem}.operational-fields{margin:1.25rem 0}.operational-fields div{min-width:0}.operational-fields dd{overflow-wrap:anywhere}.card-summaries section{background:#f7f7f7;border-radius:.5rem;padding:.8rem}.card-summaries h4,.card-summaries p{margin:.25rem 0}.athlete-card footer{display:flex;gap:.5rem;margin-top:1rem}@media (max-width:640px){.overview-counters{grid-template-columns:repeat(2,1fr)}.athlete-card>header{display:grid}.card-summaries,.operational-fields{grid-template-columns:1fr;gap:.5rem}.athlete-card footer{align-items:stretch;flex-direction:column}.athlete-card footer button{width:100%}}.athlete-portal{position:fixed;inset:0;background:#f5f8f6;color:#1e2924;display:grid;grid-template-rows:auto 1fr auto;z-index:10}.portal-header{padding:max(12px,env(safe-area-inset-top)) 16px 10px;background:rgba(255,255,255,.94);border-bottom:1px solid #dce5df;display:flex;justify-content:space-between;align-items:center}.portal-header h1{font-size:1.4rem;margin:3px 0;letter-spacing:0}.portal-header small{color:#668074}.profile-button{min-width:44px;min-height:44px;background:#fff;color:#294638}.portal-content{min-height:0;overflow:auto;padding:0 12px}.athlete-chat{max-width:680px;margin:auto;display:flex;flex-direction:column;min-height:100%}.athlete-chat>h2{font-size:1rem;color:#668074}.bottom-nav{padding:6px 4px max(6px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid #dce5df;display:grid;grid-template-columns:repeat(5,1fr)}.bottom-nav button{min-width:0;min-height:48px;padding:4px 2px;border:0;color:#697b72;background:transparent;font-size:.9rem;width:100%}.bottom-nav button[aria-current=page]{color:#246747;font-weight:700}.bottom-nav button:disabled{opacity:.4}.system-card{align-self:stretch;max-width:none;background:#fff;border:1px solid #dce5df;border-radius:12px;padding:12px;display:grid;grid-gap:5px;gap:5px}.system-card span,.system-card time{color:#62746b}.system-card button{min-height:44px;justify-self:start}.bubble footer{display:flex;justify-content:flex-end;gap:6px;opacity:.65;font-size:.75rem}.reply-preview{display:block;border-left:2px solid;padding-left:6px;opacity:.7}.reply-action{min-height:44px;margin-top:4px}.date-separator{align-self:center;color:#708078;font-size:.78rem;background:#e9efeb;padding:4px 10px;border-radius:14px}.timeline-wrap{position:relative;min-height:0}.new-messages{bottom:12px;display:block;margin:-58px auto 12px;min-height:44px;background:#246747;z-index:3}.mobile-composer,.new-messages{position:-webkit-sticky;position:sticky}.mobile-composer{bottom:0;grid-template-columns:auto 1fr auto;background:#fff;border:1px solid #dce5df;border-radius:14px 14px 0 0;padding:8px;gap:6px;z-index:2}.mobile-composer textarea{min-height:44px;max-height:120px;resize:none;font-size:16px;box-sizing:border-box}.mobile-composer button{min-height:44px}.mobile-composer .attach{background:#fff;color:#246747;min-width:44px}.composer-reply,.file-previews,.mobile-composer [role=alert]{grid-column:1/-1}.composer-reply{display:flex;justify-content:space-between;align-items:center;border-left:3px solid #397555;padding-left:8px}.file-previews{display:flex;gap:7px;overflow-x:auto}.file-preview{position:relative;min-width:72px;min-height:60px;border:1px solid #ddd;border-radius:8px;padding:4px}.file-preview img{width:68px;height:56px;object-fit:cover}.file-preview button{position:absolute;top:0;right:0;min-height:32px;padding:2px 8px}.image-button{padding:0;background:transparent;border:0}.image-button img{display:block;max-width:240px;max-height:280px;border-radius:8px}.file-card{background:#fff;color:#222;min-height:44px}.media-dialog{width:100vw;height:100vh;max-width:none;max-height:none;border:0;background:#111;box-sizing:border-box}.media-dialog img{width:100%;height:calc(100% - 60px);object-fit:contain}.portal-placeholder{text-align:center;padding:20vh 20px}.portal-placeholder h2{font-size:1.5rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:360px){.bottom-nav button{font-size:.8rem}.portal-content{padding-inline:6px}.bubble{max-width:88%}}.coach-brief{margin:1rem 0;padding:1rem;border:1px solid #d7c98c;border-radius:.75rem;background:#fffdf4}.coach-brief article{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.75rem;gap:.75rem;margin-top:1rem}.coach-brief article section{padding:.75rem;background:white;border-radius:.5rem}.coach-brief h5,.coach-brief p{margin:.3rem 0}.coach-brief small{color:#666}.ai-warning{font-weight:700;color:#76521c}.brief-review{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}@media(max-width:640px){.coach-brief article{grid-template-columns:1fr}}.athlete-page{display:block;max-width:560px;margin:auto;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom))}.activation,.intake-block,.intake-home{display:grid;grid-gap:12px;gap:12px;max-width:560px;margin:auto}.activation h1,.intake-block h2,.intake-home h2{font-size:1.4rem;letter-spacing:0;margin:4px 0}.activation input,.activation select,.intake-block input,.intake-block select,.intake-block textarea{font-size:16px;min-height:44px;box-sizing:border-box;width:100%}.activation button,.coach-intake button,.intake-block button,.intake-home button{min-height:44px}.activation form,.intake-block form{border:0;padding:0}.positioning{color:#446a56;margin:0}.wizard-steps{display:flex;gap:6px;padding:0;margin:0;list-style:none;flex-wrap:wrap;font-size:.8rem;color:#697b72}.wizard-steps li[aria-current=step]{color:#246747;font-weight:700}.wizard-nav{display:flex;gap:8px;justify-content:space-between}.checkbox{display:flex;gap:10px;align-items:flex-start;color:#1e2924}.checkbox input{width:22px;height:22px;min-height:22px;margin-top:2px;flex:none}.consent-document{max-height:50vh;overflow:auto;border:1px solid #dce5df;border-radius:12px;padding:12px;background:#fff}.consent-document pre{white-space:pre-wrap;font:inherit;margin:0}.draft-notice{color:#76521c}.sport-row,.window-row{display:grid;grid-gap:6px;gap:6px;padding:8px 0;border-bottom:1px solid #eef2ef}fieldset{border:1px solid #dce5df;border-radius:12px;padding:10px 12px;display:grid;grid-gap:8px;gap:8px;margin:0}legend{color:#446a56;padding:0 4px}.banner{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#fff;border:1px solid #dce5df;border-left:4px solid #246747;border-radius:12px;padding:10px 12px}.consent-banner{border-left-color:#a76b12}.checklist{list-style:none;padding:0;margin:0;display:grid;grid-gap:8px;gap:8px}.checklist li{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#fff;border:1px solid #dce5df;border-left:4px solid #aaa;border-radius:12px;padding:10px 12px}.checklist li[data-status=DONE]{border-left-color:#397555}.checklist li[data-status=PENDING]{border-left-color:#a76b12}.checklist li>div{display:grid}.checklist small,.muted{color:#62746b}.plain-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:6px;gap:6px}.coach-intake{margin:1rem 0;padding:1rem;border:1px solid #ddd;border-radius:.75rem;display:grid;grid-gap:.5rem;gap:.5rem}.coach-intake h4,.coach-intake h5,.coach-intake p{margin:.2rem 0}.coach-intake .checklist li{padding:6px 10px}.health-answer{border:1px solid #ddd;border-left:4px solid #aaa;border-radius:.5rem;padding:.6rem .8rem}.health-answer[data-positive=true]{border-left-color:#a33}.issued-link code{overflow-wrap:anywhere}.goals,.main-goal{display:grid;grid-gap:12px;gap:12px}.main-goal h2{font-size:1.4rem;margin:4px 0}.goal-card{display:grid;grid-gap:6px;gap:6px;background:#fff;border:1px solid #dce5df;border-left:4px solid #246747;border-radius:12px;padding:12px}.goal-card[data-source=SYSTEM_TEMPORARY]{border-left-color:#a76b12}.goal-card p,.goal-card small{margin:0;color:#62746b}.goal-card strong{color:#1e2924}.goal-list{list-style:none;padding:0;margin:0}.goal-list,.goal-list li{display:grid;grid-gap:8px;gap:8px}.goal-list li{background:#fff;border:1px solid #dce5df;border-left:4px solid #397555;border-radius:12px;padding:10px 12px}.goal-list li[data-source=SYSTEM_TEMPORARY]{border-left-color:#a76b12}.goal-list li>div{display:grid;grid-gap:2px;gap:2px}.goal-actions{display:flex;flex-wrap:wrap;gap:6px}.goal-actions button{min-height:44px;min-width:44px}.goals input,.goals select,.goals textarea{font-size:16px;min-height:44px;box-sizing:border-box;width:100%}.goals button,.main-goal button{min-height:44px}.goals form{display:grid;grid-gap:10px;gap:10px;border:0;padding:0}.goals label{display:grid;grid-gap:4px;gap:4px}.pending-note,.temporary-note{color:#76521c}.pending-task{border-left-color:#a76b12}.coach-goals{display:grid;grid-gap:.5rem;gap:.5rem}.coach-goals .goal-list li{display:grid;grid-gap:6px;gap:6px}.coach-goals button{min-height:36px}.coach-goal-form{display:grid;grid-gap:8px;gap:8px;border:0;padding:0}.athlete-status,.morning{display:grid;grid-gap:12px;gap:12px}.morning-window{display:grid;grid-gap:6px;gap:6px}.morning-window input{font-size:16px;min-height:44px}.morning-form{display:grid;grid-gap:10px;gap:10px}.hrv-form input,.morning-form input,.morning-form select,.morning-form textarea{font-size:16px;min-height:44px;box-sizing:border-box;width:100%}.athlete-status button,.morning-form button,.morning-window button,.scale-option{min-height:44px}.scale-option{display:flex;align-items:center;gap:10px;padding:4px 0}.scale-option input{width:22px;height:22px}.morning-summary{display:grid;grid-gap:6px;gap:6px;background:#fff;border:1px solid #dce5df;border-left:4px solid #397555;border-radius:12px;padding:12px}.morning-summary[data-red-flag=true]{border-left-color:#a33}.stop-text{color:#7a1f1f;font-weight:600;margin:0}.readiness{color:#446a56}.readiness[data-state=ready]{color:#246747;font-weight:600}.hrv-form{display:grid;grid-gap:8px;gap:8px}.markers li{display:grid;grid-gap:6px;gap:6px}.coach-morning{display:grid;grid-gap:.5rem;gap:.5rem}.morning-table{border-collapse:collapse;font-size:.9rem}.morning-table td,.morning-table th{border:1px solid #ddd;padding:4px 6px;text-align:left}.morning-table tr[data-red-flag=true] td{background:#fbeeee}.portal-logout{min-height:44px}.session-bar{display:flex;justify-content:flex-end;padding:8px 16px}.session-bar button{min-height:44px}.session-list{list-style:none;padding:0;margin:8px 0}.session-list li{padding:6px 0;border-bottom:1px solid #e3e9e5}.post-workout{display:grid;grid-gap:12px;gap:12px}.post-workout button{min-height:44px}.post-workout-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:8px;gap:8px}.post-workout-list li{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px;align-items:center;background:#fff;border:1px solid #dce5df;border-left:4px solid #397555;border-radius:12px;padding:10px 12px}.post-workout-list li[data-report-state=RECEIVED]{border-left-color:#246747}.post-workout-list li>div{display:grid;grid-gap:2px;gap:2px;min-width:0}.post-workout-list small{color:#62746b}.post-workout-fact,.post-workout-report{display:grid;grid-gap:8px;gap:8px;background:#fff;border:1px solid #dce5df;border-radius:12px;padding:12px}.post-workout-fact li{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:space-between}.post-workout-picker{display:grid;grid-gap:8px;gap:8px;border-top:1px solid #dce5df;padding-top:8px}.rpe-scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:6px;gap:6px}.rpe-option{display:grid;justify-items:center;grid-gap:2px;gap:2px;min-height:44px;border:1px solid #dce5df;border-radius:8px;padding:4px}.rpe-option input{width:22px;height:22px}.rpe-hint{display:flex;justify-content:space-between;color:#62746b}.post-workout-photo{margin:0}.post-workout-photo img{max-width:100%;border-radius:8px}.coach-post-workout{display:grid;grid-gap:.5rem;gap:.5rem}.pw-table td{vertical-align:top}.pw-photo{max-width:160px;display:block;margin-top:4px}.coach-notifications,.notification-history,.notification-queue,.notification-settings,.template-reviews{display:grid;grid-gap:12px;gap:12px;max-width:760px;min-width:0}.coach-notifications button,.external-message-actions button,.external-wechat-form button,.message-copy-actions button,.notification-history button,.notification-queue button,.notification-settings button,.template-reviews button{min-height:44px}.external-message-actions input,.external-message-actions select,.external-wechat-form input,.external-wechat-form textarea,.notification-history textarea,.notification-queue input,.notification-queue select,.notification-queue textarea,.notification-settings input,.notification-settings select,.template-reviews input,.template-reviews select{font-size:16px;min-height:44px;box-sizing:border-box;width:100%}.notification-counters{color:#62746b;margin:0;overflow-wrap:anywhere}.notification-filters{display:flex;flex-wrap:wrap;gap:8px}.notification-filters label{flex:1 1 140px;min-width:0}.notification-filters select{font-size:16px;min-height:44px;width:100%;box-sizing:border-box}.notification-group{display:grid;grid-gap:8px;gap:8px}.notification-group h3{margin:8px 0 0;font-size:1rem}.notification-card{display:grid;grid-gap:6px;gap:6px;background:#fff;border:1px solid #dce5df;border-left:4px solid #aaa;border-radius:12px;padding:12px;min-width:0}.notification-card[data-state=READY]{border-left-color:#246747}.notification-card[data-state=COPIED]{border-left-color:#397555}.notification-card[data-state=DRAFT]{border-left-color:#a76b12}.notification-card blockquote,.notification-card p{margin:0;overflow-wrap:anywhere}.notification-card blockquote{white-space:pre-wrap;border-left:2px solid #dce5df;padding-left:8px}.notification-card [role=note]{color:#76521c}.notification-admission{color:#446a56}.external-message-actions,.message-copy-actions,.notification-actions,.notification-menu{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.copy-panel,.notification-dialog{display:grid;grid-gap:8px;gap:8px;background:#fff;border:1px solid #dce5df;border-left:4px solid #246747;border-radius:12px;padding:12px;min-width:0}.copy-panel textarea{font-size:16px;min-height:6rem;box-sizing:border-box;width:100%}.notification-dialog{border-top:1px solid #dce5df}.coach-only{display:grid;grid-gap:6px;gap:6px;border:1px solid #dce5df;border-left:4px solid #a33;border-radius:12px;padding:12px}.bootstrap-preview li,.coach-only li,.notification-history li,.template-reviews li{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;min-width:0;overflow-wrap:anywhere}.bootstrap-preview{border:1px solid #dce5df;border-radius:12px;padding:12px}.bootstrap-preview,.external-wechat-form{display:grid;grid-gap:8px;gap:8px}.external-mark{display:block;opacity:.75}.external-translation{opacity:.8}.week-plan{display:grid;grid-gap:12px;gap:12px;max-width:560px;margin:auto}.week-plan h2{font-size:1.4rem;margin:4px 0}.week-plan button{min-height:44px}.week-plan li{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px;align-items:center;background:#fff;border:1px solid #dce5df;border-left:4px solid #397555;border-radius:12px;padding:10px 12px;min-width:0}.week-plan li[data-cancelled=true]{border-left-color:#aaa;color:#697b72}.link-unavailable{margin:8px 12px 0;color:#62746b}@media (max-width:640px){.copy-panel button,.notification-actions button,.notification-dialog button,.notification-menu button{width:100%}.week-plan li{grid-template-columns:1fr}}[data-focused=true]{outline:2px solid #397555;outline-offset:2px}.snapshot-preview{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:8px 12px;border-left:3px solid #397555;background:#f6f8f7}.chat-focus-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.chat-focus-bar button{min-height:44px}