*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--w: #ffffff;--b: #000000;--g: #f0f0f0;--mg: #888888;--acc: #FF3B00;--border: #e8e8e8}html{scroll-behavior:smooth}body{background:var(--w);color:var(--b);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}a{text-decoration:none;color:inherit}.consent-dialog{position:fixed;bottom:16px;left:16px;right:16px;z-index:1000;max-width:760px;max-height:calc(100vh - 32px);overflow-y:auto;margin:0 auto;background:#000;color:#fff;border-radius:12px;padding:16px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:16px;box-shadow:0 8px 32px #0000004d}.consent-body{flex:1 1 320px;min-width:0}.consent-title{font-weight:900;font-size:14px;margin-bottom:4px;padding-right:24px}.consent-text{font-size:12px;line-height:1.5;color:#bbb;margin:0 0 6px}.consent-status{color:#fff;font-weight:700}.consent-link{color:#fff;text-decoration:underline}.consent-actions{display:flex;gap:8px;flex-shrink:0}.consent-btn{min-width:140px;background:#fff;color:#000;border:1px solid #fff;border-radius:6px;padding:10px 16px;font-size:12px;font-weight:800;cursor:pointer}.consent-btn:hover,.consent-btn:focus-visible{background:#ddd}.consent-close{position:absolute;top:8px;right:10px;background:transparent;color:#fff;border:none;font-size:20px;line-height:1;cursor:pointer;padding:4px}.privacy-settings-link{background:none;border:none;padding:0;font-family:inherit;cursor:pointer;text-decoration:underline}.app-root{display:flex;min-height:100vh;background:#fff}.app-content{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.sidebar{width:220px;flex-shrink:0;background:#f4f4f4;border-right:1.5px solid #e8e8e8;display:flex;flex-direction:column;min-height:100vh}.sb-logo{padding:20px 20px 16px;font-size:17px;font-weight:900;letter-spacing:-.5px;border-bottom:1px solid #e8e8e8;flex-shrink:0}.sb-section{padding:16px 12px 8px;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#bbb}.sb-item{display:flex;align-items:center;gap:10px;padding:9px 12px;font-size:12px;color:#888;cursor:pointer;border-radius:6px;margin:1px 8px;transition:all .12s;text-decoration:none}.sb-item.active{background:#fff;color:#000;font-weight:700;box-shadow:0 1px 4px #00000014}.sb-item:hover:not(.active){background:#0000000a;color:#000}.sb-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sb-badge{margin-left:auto;background:var(--acc);color:#fff;font-size:9px;font-weight:800;padding:2px 6px;border-radius:100px}.sb-spacer{flex:1}.sb-bottom{padding:12px 8px;border-top:1px solid #e8e8e8}.sb-user{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;cursor:pointer}.sb-user:hover{background:#0000000a}.sb-av{width:28px;height:28px;border-radius:50%;background:#000;display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:800;flex-shrink:0}.sb-uname{font-size:12px;font-weight:700}.sb-urole{font-size:10px;color:#888}.ath-sb-bottom{padding:12px 16px;border-top:1px solid #e8e8e8;display:flex;align-items:center;gap:10px}.ath-sb-user-text{flex:1;min-width:0;overflow:hidden}.sync-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1.5px solid #e8e8e8;background:#fff;color:#666;font-size:11px;font-weight:700;white-space:nowrap;flex-shrink:0}.sync-pill--offline,.sync-pill--waiting,.sync-pill--syncing{border-color:#000;background:#000;color:#fff}.sync-pill-dot{width:7px;height:7px;border-radius:50%;background:#1a9c46;flex-shrink:0}.sync-pill--offline .sync-pill-dot,.sync-pill--waiting .sync-pill-dot{background:var(--acc)}.sync-pill--waiting{white-space:normal;max-width:calc(100% - 24px);border-radius:14px}.sync-pill--syncing .sync-pill-dot{background:#fff}.sync-pill-count{white-space:nowrap;flex-shrink:0;background:var(--acc);color:#fff;border-radius:999px;padding:1px 6px;font-size:10px}.sync-pill--sidebar{align-self:flex-start;margin:0 12px 10px}.sync-pill--page,.mnav,.mnav-backdrop{display:none}.mnav-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.topbar{padding:16px 24px;border-bottom:1px solid #e8e8e8;display:flex;align-items:center;justify-content:space-between;background:#fff;flex-shrink:0}.tb-title{font-size:18px;font-weight:900;letter-spacing:-.5px}.tb-sub{font-size:11px;color:#888;margin-top:2px}.tb-right{display:flex;gap:8px;align-items:center}.tb-btn{background:#000;color:#fff;border:none;padding:8px 18px;border-radius:4px;font-size:12px;font-weight:700;cursor:pointer;letter-spacing:.02em;font-family:inherit;transition:background .15s}.tb-btn:hover{background:#222}.tb-btn-ghost{background:#fff;color:#000;border:1.5px solid #e8e8e8;padding:8px 14px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:border-color .15s}.tb-btn-ghost:hover{border-color:#000}.tb-btn-acc{background:var(--acc)}.tb-btn-acc:hover{background:#e03400}.tb-search{background:#f4f4f4;border:1px solid #e8e8e8;border-radius:4px;padding:7px 12px;font-size:12px;color:#888;width:200px;font-family:inherit}.tb-search:focus{outline:none;border-color:#000;color:#000}.tb-notif{width:32px;height:32px;border-radius:50%;background:#f4f4f4;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;border:1.5px solid #e8e8e8;padding:0;color:inherit;font:inherit}.tb-notif:focus-visible{outline:2px solid #000;outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.notif-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;background:var(--acc);border-radius:50%;border:1.5px solid #fff}.page-content{padding:24px;background:#fff;flex:1;overflow-y:auto}.wf-label{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#888;margin-bottom:6px}.wf-val{font-size:28px;font-weight:900;letter-spacing:-1px}.wf-sub{font-size:11px;color:#888;margin-top:2px}.wf-g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wf-g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.wf-g4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.wf-row{display:flex;gap:12px;align-items:flex-start}.wf-col{display:flex;flex-direction:column;gap:12px}.wf-card{background:#fff;border:1.5px solid #e8e8e8;border-radius:8px;padding:16px}.wf-card-dark{background:#000;color:#fff;border-color:#000}.wf-card-acc{background:#fff5f3;border-color:#ffd0c8}.stat-card{padding:16px;background:#fff;border:1.5px solid #e8e8e8;border-radius:8px}.wf-tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:100px;font-size:10px;font-weight:700;white-space:nowrap}.tag-r{background:#ffeeed;color:#c20}.tag-b{background:#eef3ff;color:#25c}.tag-g{background:#efe;color:#171}.tag-o{background:#fff5ee;color:#c60}.tag-k{background:#000;color:#fff}.tag-purple{background:#f0e8ff;color:#51c}.tag-muted{background:#e8e8e8;color:#888}.wf-divider{height:1px;background:#e8e8e8;margin:12px 0}.avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;flex-shrink:0}.avatar-sm{width:28px;height:28px;font-size:10px}.avatar-md{width:32px;height:32px;font-size:11px}.avatar-lg{width:40px;height:40px;font-size:14px}.avatar-xl{width:64px;height:64px;font-size:22px}.progress-bar{height:4px;background:#e8e8e8;border-radius:4px;overflow:hidden;width:80px}.progress-fill{height:4px;background:#000;border-radius:4px}.wf-table{width:100%;border-collapse:collapse;font-size:12px}.wf-table thead th{text-align:left;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#888;padding:8px 12px;border-bottom:1.5px solid #e8e8e8}.wf-table tbody td{padding:10px 12px;border-bottom:1px solid #e8e8e8;vertical-align:middle}.wf-table tbody tr:hover td{background:#f4f4f4}.cal-header{display:grid;grid-template-columns:72px repeat(7,1fr);gap:2px;margin-bottom:4px}.cal-header span{font-size:10px;font-weight:700;text-align:center;padding:6px 4px;letter-spacing:.04em;text-transform:uppercase;color:#888}.cal-header span.cal-today-h{color:var(--acc);font-weight:900}.cal-header span.cal-weekend{color:#bbb}.cal-row{display:grid;grid-template-columns:72px repeat(7,1fr);gap:2px;margin-bottom:2px}.cal-time{font-size:10px;color:#bbb;display:flex;align-items:center;justify-content:flex-end;padding-right:8px}.cal-cell{min-height:48px;border:1px solid #e8e8e8;border-radius:4px;position:relative;background:#fafafa}.cal-cell.cal-today{border-color:#ff3b0040;background:#fffaf9}.ses{position:absolute;inset:3px;border-radius:3px;padding:4px 6px;font-size:9px;font-weight:700;overflow:hidden;line-height:1.3;white-space:pre-line}.ses-r{background:#ffe8e3;color:#c30;border-left:2px solid var(--acc)}.ses-b{background:#e8eeff;color:#24c;border-left:2px solid #2244CC}.ses-g{background:#e8ffe8;color:#171;border-left:2px solid #117711}.ses-p{background:#f0e8ff;color:#51c;border-left:2px solid #5511CC}.sheet-header{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr 1fr 80px;gap:1px;background:#e8e8e8;border-radius:6px 6px 0 0;overflow:hidden}.sh-cell{background:#fff;padding:8px 12px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#888}.sh-cell.sh-ex{background:#000;color:#fff}.sheet-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr 1fr 80px;gap:1px;background:#e8e8e8;margin-bottom:1px}.sheet-table-wrap>.sheet-row:last-child{margin-bottom:0}.sr-cell{background:#fff;padding:10px 12px;font-size:12px;display:flex;align-items:center;gap:8px}.sr-cell.sr-ex-name{font-weight:700}.sr-val{background:#f4f4f4;border:none;border-radius:3px;padding:4px 8px;font-size:11px;width:100%;color:#000;font-family:inherit;text-align:center}.rpe-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:2px;flex-shrink:0}.add-ex-btn{border:1.5px dashed #d0d0d0;border-radius:6px;padding:12px;text-align:center;font-size:12px;color:#bbb;cursor:pointer;margin-top:1px;transition:all .15s}.add-ex-btn:hover{border-color:#000;color:#000}.ex-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.ex-card{border:1.5px solid #e8e8e8;border-radius:8px;overflow:hidden;cursor:pointer;transition:all .15s}.ex-card:hover{border-color:#000;transform:translateY(-2px)}.ex-thumb{height:80px;background:#f4f4f4;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #e8e8e8}.ex-info{padding:10px 12px}.ex-name{font-size:12px;font-weight:800;margin-bottom:4px}.ex-tags{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.ex-tags .wf-tag{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis}.ex-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.filter-chip{cursor:pointer;border:none;font-family:inherit}.filter-chip:focus-visible{outline:2px solid #000;outline-offset:2px}.ex-filter-fields{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.ex-filter-field{display:flex;flex-direction:column;gap:4px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#888}.ex-filter-field :is(select,input){min-width:180px;padding:6px 10px;border:1.5px solid #e8e8e8;border-radius:6px;font-size:12px;font-family:inherit;background:#fff;color:#000}.ex-card-tag{cursor:pointer;border:none;font-family:inherit}.ex-card-tag:hover{color:#000}.ex-filter-clear{align-self:flex-end}.profile-header{background:#f4f4f4;padding:24px;border-bottom:1px solid #e8e8e8;display:flex;gap:20px;align-items:center}.profile-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}.pm-item{font-size:11px;color:#888}.wf-tabs{display:flex;gap:0;border-bottom:1.5px solid #e8e8e8;padding:0 24px;background:#fff}.wf-tab{padding:12px 16px;font-size:12px;font-weight:600;color:#888;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1.5px;transition:all .12s;white-space:nowrap}.wf-tab.active{color:#000;border-bottom-color:#000;font-weight:800}.wf-tab:hover:not(.active){color:#444}.chart-area{padding:16px;background:#f4f4f4;border-radius:6px}.chart-bars{display:flex;gap:4px;align-items:flex-end;height:80px}.bar-wrap{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.wf-bar{width:100%;border-radius:3px 3px 0 0;background:#000}.wf-bar-acc{background:var(--acc)}.bar-label{font-size:8px;color:#bbb}.chat-layout{display:grid;grid-template-columns:260px 1fr;height:calc(100vh - 57px);overflow:hidden}.chat-list{border-right:1.5px solid #e8e8e8;overflow-y:auto;display:flex;flex-direction:column}.chat-search{padding:12px;border-bottom:1px solid #e8e8e8;flex-shrink:0}.chat-search input{width:100%;background:#f4f4f4;border:none;padding:7px 10px;border-radius:4px;font-size:11px;color:#888;font-family:inherit}.chat-item{padding:12px 16px;border-bottom:1px solid #e8e8e8;cursor:pointer;display:flex;gap:10px;align-items:flex-start;transition:background .12s}.chat-item:hover{background:#f4f4f4}.chat-item.active{background:#f8f8f8}.ci-name{font-size:12px;font-weight:700;margin-bottom:2px}.ci-preview{font-size:11px;color:#888;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.ci-time{font-size:10px;color:#bbb;flex-shrink:0}.ci-unread{width:8px;height:8px;background:var(--acc);border-radius:50%;margin-top:4px;flex-shrink:0}.chat-main{display:flex;flex-direction:column;overflow:hidden}.chat-topbar{padding:12px 20px;border-bottom:1px solid #e8e8e8;display:flex;align-items:center;gap:12px;flex-shrink:0;background:#fff}.chat-messages{flex:1;padding:20px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;background:#fafafa}.msg-wrap{display:flex;gap:8px;align-items:flex-end}.msg-wrap.me{flex-direction:row-reverse}.msg-av2{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;color:#fff;flex-shrink:0}.bubble{max-width:360px;padding:10px 14px;border-radius:12px;font-size:12px;line-height:1.5}.bubble-in{background:#fff;border:1px solid #e8e8e8;border-radius:4px 12px 12px}.bubble-out{background:#000;color:#fff;border-radius:12px 4px 12px 12px}.chat-day-sep{text-align:center;font-size:10px;color:#bbb;margin:4px 0}.chat-input-wrap{padding:12px 16px;border-top:1px solid #e8e8e8;display:flex;gap:8px;align-items:center;background:#fff;flex-shrink:0}.chat-input-box{flex:1;background:#f4f4f4;border:1px solid #e8e8e8;border-radius:4px;padding:10px 14px;font-size:12px;color:#888;font-family:inherit}.chat-input-box:focus{outline:none;border-color:#000;color:#000}.chat-send{background:#000;color:#fff;border:none;padding:10px 20px;border-radius:4px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}.notif-list{display:flex;flex-direction:column;gap:2px}.notif-item{display:flex;gap:12px;padding:12px 16px;border-radius:6px;align-items:flex-start;cursor:pointer;transition:background .12s}.notif-item:hover{background:#f4f4f4}.notif-item.unread{background:#fffaf9}.notif-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.notif-title{font-size:12px;font-weight:700;margin-bottom:2px}.notif-sub{font-size:11px;color:#888;line-height:1.4}.notif-time{font-size:10px;color:#bbb;flex-shrink:0;margin-left:auto}.settings-layout{display:grid;grid-template-columns:200px 1fr;min-height:calc(100vh - 57px)}.settings-nav{border-right:1px solid #e8e8e8;padding:16px 0}.sn-item{padding:9px 20px;font-size:12px;color:#888;cursor:pointer;transition:all .12s}.sn-item.active{color:#000;font-weight:700;border-right:2px solid #000}.sn-item:hover:not(.active){background:#f4f4f4;color:#000}.sn-item-danger{color:var(--acc)!important}.settings-content{padding:24px}.data-rights-panel{background:#fff3f0;border:1px solid var(--acc);border-radius:8px;padding:16px;margin:12px 0 16px;max-width:640px}.data-rights-title{font-size:14px;font-weight:800;margin-bottom:10px;overflow-wrap:anywhere}.data-rights-subtitle{font-size:12px;font-weight:700;margin:12px 0 6px}.data-rights-text{font-size:13px;line-height:1.5;color:#444;margin:0 0 10px;max-width:640px;overflow-wrap:anywhere}.data-rights-list{margin:0 0 10px;padding-left:18px;font-size:13px;line-height:1.5;color:#222;max-width:640px}.data-rights-list li{margin-bottom:4px}.data-rights-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.data-rights-actions button:disabled{opacity:.4;cursor:not-allowed}.data-rights-check{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.5;color:#222;margin:10px 0;max-width:640px;cursor:pointer;overflow-wrap:anywhere}.data-rights-check input{margin-top:3px;flex-shrink:0}.data-rights-error{font-size:12px;color:var(--acc);font-weight:700;margin:8px 0}.data-rights-link{background:none;border:none;padding:0;font:inherit;font-size:12px;color:#000;text-decoration:underline;cursor:pointer;text-align:left}.data-rights-code{max-width:160px;font-size:18px;letter-spacing:4px;font-variant-numeric:tabular-nums}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid #e8e8e8}.setting-row:last-of-type{border:none}.setting-info h4{font-size:13px;font-weight:700;margin-bottom:3px}.setting-info p{font-size:11px;color:#888;line-height:1.4;max-width:380px}.wf-toggle{width:36px;height:20px;background:#000;border-radius:10px;position:relative;cursor:pointer;flex-shrink:0;transition:background .2s}.wf-toggle:after{content:"";position:absolute;right:3px;top:3px;width:14px;height:14px;background:#fff;border-radius:50%;transition:all .2s}.wf-toggle.off{background:#d0d0d0}.wf-toggle.off:after{right:auto;left:3px}.invite-box{border:1.5px dashed #d0d0d0;border-radius:8px;padding:24px;text-align:center;background:#f4f4f4}.invite-box h3{font-size:15px;font-weight:800;margin-bottom:8px}.invite-box p{font-size:12px;color:#888;margin-bottom:16px;line-height:1.5}.invite-link-row{background:#fff;border:1.5px solid #e8e8e8;border-radius:4px;padding:10px 14px;font-size:11px;color:#888;font-family:monospace;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;overflow:hidden}.invite-link-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-welcome{margin-bottom:20px}.dash-welcome-name{font-size:22px;font-weight:900;letter-spacing:-.5px}.dash-welcome-date{font-size:12px;color:#888;margin-top:2px}.dash-stats-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px;margin-bottom:20px}.stat-card-action{padding:16px;background:#fff;border:1.5px solid #e8e8e8;border-radius:8px;cursor:pointer;transition:all .15s}.stat-card-action:hover{border-color:#000}.stat-card-action.wf-card-dark{background:#000;border-color:#000}.as-ex-row{display:grid;grid-template-columns:2fr 56px 56px 72px 64px 44px}.as-set-tick{width:28px;height:28px;padding:0;border:none;border-radius:50%;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center}.as-set-tick:focus-visible{outline:2px solid var(--acc);outline-offset:1px}.as-add-set{display:block;width:100%;min-height:40px;padding:8px 12px;border:none;border-top:1px dashed #ccc;background:#fff;font:inherit;font-size:11px;font-weight:700;text-align:left;cursor:pointer}.as-add-set:hover{background:#f9f9f9}.as-add-set:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}.profile-actions{display:flex;gap:8px}.profile-overview-grid{display:grid;grid-template-columns:1fr 320px;gap:16px}.analytics-tables{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.ath-week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.page-content.groups-layout{display:flex;gap:24px;align-items:flex-start}.groups-list{width:240px;flex-shrink:0}.ath-dash-grid{display:grid;grid-template-columns:300px 1fr;gap:16px;margin-bottom:20px}.stat-card-action .stat-cta{font-size:10px;font-weight:700;color:var(--acc);margin-top:6px;letter-spacing:.03em}.invite-banner{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#f4f4f4;border:1.5px solid #e8e8e8;border-radius:8px;margin-bottom:16px}.invite-banner-icon{width:28px;height:28px;background:#000;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex-shrink:0}.invite-banner-text{font-size:12px;font-weight:700;flex-shrink:0}.invite-banner-link{flex:1;font-size:11px;color:#888;font-family:monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-row{display:flex;gap:8px;align-items:center}.invite-form,.invite-email{flex:1}.invite-name--first{width:110px}.invite-name--last{width:120px}.sheet-progress-wrap{display:flex;align-items:center;gap:12px;padding:12px 0;margin-bottom:16px}.sheet-progress-bar{flex:1;height:6px;background:#e8e8e8;border-radius:6px;overflow:hidden}.sheet-progress-fill{height:6px;background:#000;border-radius:6px;transition:width .3s}.sheet-progress-fill.complete{background:#171}.sheet-progress-label{font-size:11px;font-weight:700;color:#888;flex-shrink:0}.rpe-pill{display:inline-flex;align-items:center;justify-content:center;width:32px;height:22px;border-radius:4px;font-size:11px;font-weight:800;background:#f4f4f4;color:#000}.rpe-pill.rpe-high{background:#ffeeed;color:#c20}.rpe-pill.rpe-mid{background:#fff5ee;color:#c60}.rpe-pill.rpe-low{background:#efe;color:#171}.notif-filter-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.notif-date-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#bbb;padding:12px 0 6px}.notif-date-label:first-child{padding-top:0}.ex-thumb-push{background:#fff0ed}.ex-thumb-pull{background:#eef3ff}.ex-thumb-legs{background:#efe}.ex-subtitle{font-size:10px;color:#888;margin-bottom:4px}.wellness-row{display:flex;align-items:center;gap:10px;font-size:12px}.wellness-label{width:64px;flex-shrink:0;color:#888}.wellness-track{flex:1;height:6px;background:#e8e8e8;border-radius:6px;overflow:hidden}.wellness-fill{height:6px;border-radius:6px;transition:width .3s}.wellness-val{width:32px;text-align:right;font-weight:700;flex-shrink:0}.cal-athlete-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.cal-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:100px;font-size:11px;font-weight:600;cursor:pointer;border:1.5px solid #e8e8e8;background:#fff;transition:all .12s}.cal-chip.active{background:#000;color:#fff;border-color:#000}.cal-chip:hover:not(.active){border-color:#000}.cal-chip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.auth-page{min-height:100vh;background:#f0f0f0;display:flex;align-items:center;justify-content:center;padding:40px 24px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.auth-frame{width:100%;max-width:440px;background:#fff;border:1.5px solid #000;border-radius:12px;padding:40px;box-shadow:0 8px 40px #0000001a}.auth-logo{font-size:24px;font-weight:900;letter-spacing:-.5px;margin-bottom:8px}.auth-sub{font-size:14px;color:#888;margin-bottom:32px;line-height:1.5}.loading-screen{text-align:center}.loading-screen-spinner{width:28px;height:28px;margin:8px auto 16px;border:3px solid #ddd;border-top-color:#111;border-radius:50%;animation:loading-screen-spin .9s linear infinite}.loading-screen-hint{margin:0 0 16px;font-size:13px;line-height:1.5;color:#555}@keyframes loading-screen-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.loading-screen-spinner{animation-duration:3s}}.form-group{margin-bottom:16px}.form-label{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#888;margin-bottom:6px;display:block}.form-input{width:100%;border:1.5px solid #e8e8e8;border-radius:4px;padding:10px 14px;font-size:14px;color:#000;font-family:inherit;transition:border-color .15s}.form-input:focus{outline:none;border-color:#000}.form-input:-webkit-autofill,.form-input:-webkit-autofill:hover,.form-input:-webkit-autofill:focus{-webkit-text-fill-color:#000;-webkit-box-shadow:0 0 0 1000px #fff inset;box-shadow:0 0 0 1000px #fff inset;caret-color:#000;font-family:inherit;font-size:14px;transition:background-color 9999s ease-in-out 0s}.form-btn{width:100%;background:#000;color:#fff;border:none;padding:13px;border-radius:4px;font-size:14px;font-weight:800;cursor:pointer;margin-top:8px;letter-spacing:.02em;font-family:inherit;transition:background .15s}.form-btn:hover{background:#222}.form-btn-acc{background:var(--acc)}.form-btn-acc:hover{background:#e03400}.form-btn-ghost{width:100%;background:#fff;color:#000;border:1.5px solid #e8e8e8;padding:11px;border-radius:4px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:border-color .15s}.form-btn-ghost:hover{border-color:#000}.form-link{text-align:center;font-size:12px;color:#888;margin-top:16px}.form-link a{color:#000;font-weight:700}.form-divider{display:flex;align-items:center;gap:12px;margin:20px 0;font-size:11px;color:#bbb}.form-divider:before,.form-divider:after{content:"";flex:1;height:1px;background:#e8e8e8}.legal-title{font-size:18px;font-weight:900;letter-spacing:-.3px;line-height:1.3;margin:8px 0}.legal-fields{margin:20px 0 16px;padding-top:16px;border-top:1px solid #e8e8e8;display:flex;flex-direction:column;gap:12px}.legal-check{display:flex;align-items:flex-start;gap:10px}.legal-check-input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:#000;cursor:pointer}.legal-check-input:focus-visible,.legal-link:focus-visible,.legal-retry:focus-visible{outline:2px solid var(--acc);outline-offset:2px}.legal-check-body{min-width:0;flex:1}.legal-check-label{display:block;font-size:13px;line-height:1.5;color:#000;cursor:pointer}.legal-tag{font-weight:700}.legal-link,.legal-info a{color:#000;font-weight:700;text-decoration:underline}.legal-question{display:flex;flex-direction:column;gap:6px}.legal-question .legal-check-label{cursor:default}.legal-select{appearance:auto;background:#fff;font-size:13px}.legal-hint,.legal-info,.legal-note{font-size:12px;line-height:1.5;color:#555;margin:0}.legal-hint{margin-top:8px}.legal-note{margin-top:12px}.legal-error{font-size:12px;line-height:1.5;color:#b42800;margin:4px 0 0}.auth-frame>.legal-error{margin:0 0 12px}.legal-retry{background:none;border:none;padding:0;font:inherit;font-weight:700;color:inherit;text-decoration:underline;cursor:pointer}.legal-logout{margin-top:12px}.legal-button-link{display:block;text-align:center;text-decoration:none}.form-btn:disabled{background:#c9c9c9;color:#fff;cursor:not-allowed}.legal-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}.onboard-steps{display:flex;gap:8px;margin-bottom:28px}.os-step{flex:1;height:3px;border-radius:3px;background:#e8e8e8}.os-step.done{background:#000}.os-step.active{background:var(--acc)}.ath-cal{display:grid;grid-template-columns:200px 1fr 220px;gap:0;height:100%;min-height:0}.ath-cal-left{border-right:1px solid #e8e8e8;padding:16px 12px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.ath-cal-left-field{display:flex;flex-direction:column;gap:4px}.ath-cal-left-label{font-size:9px;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:.06em}.ath-cal-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:10px;font-size:10px;font-weight:600;background:#f4f4f4;color:#000;border:1px solid #e8e8e8}.ath-cal-health{display:flex;flex-direction:column;gap:6px}.ath-cal-competition-box{padding:8px;border-radius:4px;border:1px solid #e8e8e8;background:#f4f4f4;font-size:10px;color:#000;display:flex;flex-direction:column;gap:4px}.ath-cal-grid{display:flex;flex-direction:column;min-height:0}.ath-cal-nav{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid #e8e8e8;flex-shrink:0}.ath-cal-nav-center{display:flex;flex-direction:column;align-items:center;gap:2px}.ath-cal-nav-week{font-size:12px;font-weight:700;color:#000}.ath-cal-nav-range{font-size:10px;color:#888}.ath-cal-days{display:grid;grid-template-columns:repeat(7,1fr);flex:1;overflow-y:auto}.ath-cal-day{border-right:1px solid #e8e8e8;display:flex;flex-direction:column;min-height:280px;background:#fff}.ath-cal-day:last-child{border-right:none}.ath-cal-day.is-today .ath-cal-day-header{background:var(--acc);color:#fff}.ath-cal-day.is-today .ath-cal-day-name,.ath-cal-day.is-today .ath-cal-day-date{color:#fff}.ath-cal-day.is-today{background:#fff8f5}.ath-cal-day.is-weekend{background:#fafafa}.ath-cal-day-header{padding:6px 8px 4px;border-bottom:1px solid #e8e8e8;display:flex;flex-direction:column;gap:1px;flex-shrink:0}.ath-cal-day-name{font-size:9px;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:.06em}.ath-cal-day-date{font-size:16px;font-weight:700;color:#000;line-height:1}.ath-cal-day-context{display:flex;flex-direction:column;gap:2px;padding:4px 8px 0;flex-shrink:0}.ath-cal-dm{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:3px;font-size:9px;font-weight:700;line-height:1.3}.ath-cal-dm.dm-far{background:#e8f5e9;color:#2e7d32}.ath-cal-dm.dm-near{background:#fff3e0;color:#e65100}.ath-cal-dm.dm-match{background:#ffebee;color:#c62828}.ath-cal-dm.dm-after{background:#e3f2fd;color:#1565c0}.ath-cal-phase{display:inline-flex;align-items:center;padding:2px 6px;border-radius:3px;font-size:9px;font-weight:600;background:#f4f4f4;color:#000;border:1px solid #e8e8e8}.ath-cal-trainings{display:flex;flex-direction:column;gap:4px;padding:6px 6px 4px;flex:1}.ath-cal-training{display:flex;align-items:center;gap:5px;padding:4px 6px;border-radius:3px;border:1px solid #e8e8e8;background:#fff;cursor:pointer;transition:border-color .12s}.ath-cal-training:hover{border-color:#bbb}.ath-cal-training-emoji{font-size:14px;line-height:1;flex-shrink:0}.ath-cal-training-name{font-size:10px;font-weight:600;color:#000;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ath-cal-training-time{font-size:9px;color:#888;flex-shrink:0}.ath-cal-training-rpe{font-size:9px;font-weight:700;padding:1px 4px;border-radius:2px;flex-shrink:0}.rpe-low{background:#e8f5e9;color:#2e7d32}.rpe-mid{background:#fff3e0;color:#e65100}.rpe-high{background:#ffebee;color:#c62828}.rpe-none{background:#f4f4f4;color:#888}.ath-cal-add-btn{display:flex;align-items:center;justify-content:center;gap:4px;padding:4px 6px;border-radius:3px;border:1px dashed #e8e8e8;background:transparent;font-size:10px;color:#888;cursor:pointer;transition:border-color .12s,color .12s;width:100%;text-align:center}.ath-cal-add-btn:hover{border-color:var(--acc);color:var(--acc)}.ath-cal-competition-marker{display:flex;align-items:center;gap:4px;padding:3px 6px;background:#ffebee;border-top:2px solid #C62828;font-size:9px;font-weight:700;color:#c62828;flex-shrink:0}.ath-cal-monitoring{display:flex;align-items:center;gap:4px;padding:4px 6px;border-top:1px solid #e8e8e8;flex-shrink:0;flex-wrap:wrap}.ath-cal-mon-item{display:flex;flex-direction:column;align-items:center;gap:1px;flex:1;min-width:20px}.ath-cal-mon-icon{font-size:12px;line-height:1}.ath-cal-mon-icon.no-data{opacity:.3}.ath-cal-mon-value{font-size:8px;font-weight:700;color:#000;line-height:1}.ath-cal-mon-value.alert-green{color:#4caf50}.ath-cal-mon-value.alert-yellow{color:#ff9800}.ath-cal-mon-value.alert-red{color:#f44336}.ath-cal-mon-value.no-data{color:#ccc}@keyframes pulse-alert{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.ath-cal-mon-item.alert-pulse{animation:pulse-alert 2s ease-in-out infinite}.ath-cal-right{border-left:1px solid #e8e8e8;padding:16px 12px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.ath-cal-right-title{font-size:10px;font-weight:700;color:#000;text-transform:uppercase;letter-spacing:.06em;margin-bottom:-8px}.ath-cal-summary-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.ath-cal-summary-label{font-size:10px;color:#888;flex:1}.ath-cal-summary-val{font-size:11px;font-weight:700;color:#000}.ath-cal-alert-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.ath-cal-alert-dot.green{background:#4caf50}.ath-cal-alert-dot.yellow{background:#ff9800}.ath-cal-alert-dot.red{background:#f44336}.ath-cal-vs-week{display:flex;flex-direction:column;gap:6px}.ath-cal-vs-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.ath-cal-vs-val{font-size:11px;font-weight:700;color:#888}.ath-cal-vs-val.positive{color:#2e7d32}.ath-cal-vs-val.negative{color:#c62828}.ath-cal-popover{position:absolute;z-index:100;background:#fff;border:1.5px solid #e8e8e8;border-radius:6px;box-shadow:0 8px 24px #0000001f;padding:12px;min-width:200px;max-width:260px;display:flex;flex-direction:column;gap:8px}.ath-cal-popover:before{content:"";position:absolute;top:-7px;left:20px;width:12px;height:12px;background:#fff;border-left:1.5px solid #e8e8e8;border-top:1.5px solid #e8e8e8;transform:rotate(45deg)}.ath-cal-popover-header{font-size:11px;font-weight:700;color:#000;padding-bottom:6px;border-bottom:1px solid #e8e8e8;display:flex;align-items:center;gap:6px}.ath-cal-popover-header.alert-green{color:#2e7d32}.ath-cal-popover-header.alert-yellow{color:#e65100}.ath-cal-popover-header.alert-red{color:#c62828}.ath-cal-popover-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:10px;color:#888}.ath-cal-popover-row strong{color:#000;font-weight:700}.ath-cal-sparkline{display:flex;align-items:flex-end;gap:2px;height:24px;padding:0}.ath-cal-sparkline-bar{flex:1;min-height:2px;border-radius:1px;background:#e8e8e8}.ath-cal-sparkline-bar.active{background:var(--acc)}.ath-cal-popover-link{font-size:10px;font-weight:600;color:var(--acc);text-decoration:none;cursor:pointer}.ath-cal-popover-link:hover{text-decoration:underline}.ath-cal-popover-timestamp{font-size:9px;color:#bbb}.ath-cal-action-bar{padding:10px 12px;border-top:1px solid #e8e8e8;background:#fff;display:flex;flex-direction:column;gap:8px;flex-shrink:0}.ath-cal-action-title{font-size:10px;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:.06em}.ath-cal-action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ath-cal-action-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;border-radius:4px;border:1px solid #e8e8e8;background:#fff;font-size:10px;font-weight:600;color:#000;cursor:pointer;transition:border-color .12s,background .12s;text-align:center}.ath-cal-action-btn:hover{border-color:#bbb;background:#fafafa}.ath-cal-action-btn.completed{border-color:#4caf50;background:#e8f5e9;color:#2e7d32}.ath-cal-action-progress{height:4px;border-radius:2px;background:#e8e8e8;overflow:hidden}.ath-cal-action-progress-fill{height:100%;border-radius:2px;background:var(--acc);transition:width .3s ease}.ath-cal-multi{display:flex;flex-direction:column;gap:0}.ath-cal-multi-header{display:grid;grid-template-columns:80px repeat(7,1fr) 120px;border-bottom:2px solid #e8e8e8;padding:6px 0}.ath-cal-multi-header>*{font-size:9px;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:.06em;padding:0 6px}.ath-cal-multi-row{display:grid;grid-template-columns:80px repeat(7,1fr) 120px;border-bottom:1px solid #e8e8e8;min-height:48px}.ath-cal-multi-row:last-child{border-bottom:none}.ath-cal-multi-meta{padding:8px 6px;display:flex;flex-direction:column;gap:2px;border-right:1px solid #e8e8e8;font-size:10px;font-weight:600;color:#000}.ath-cal-multi-day{padding:6px 4px;display:flex;flex-direction:column;align-items:center;gap:3px;border-right:1px solid #f4f4f4}.ath-cal-multi-day:last-of-type{border-right:none}.ath-cal-multi-emoji{font-size:14px;line-height:1}.ath-cal-multi-rpe{font-size:8px;font-weight:700;padding:1px 4px;border-radius:2px}.ath-cal-multi-summary{padding:8px;border-left:1px solid #e8e8e8;display:flex;flex-direction:column;gap:3px;font-size:10px;color:#888}.ath-cal-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid #e8e8e8;background:#fff}.ath-cal-topbar-left{display:flex;align-items:center;gap:16px}.ath-cal-topbar-right{display:flex;gap:8px}.ath-cal-athlete-info{display:flex;align-items:center;gap:8px}.ath-cal-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:800;flex-shrink:0}.ath-cal-athlete-name{font-size:14px;font-weight:800}.ath-cal-title{font-size:18px;font-weight:900;letter-spacing:-.5px;margin:0}.ath-cal-multiweek-toggle{background:#fff;color:#000;border:1.5px solid #e8e8e8;padding:6px 14px;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;transition:border-color .15s}.ath-cal-multiweek-toggle:hover{border-color:#000}.ath-cal-multiweek-toggle.active{background:#000;color:#fff;border-color:#000}.ath-cal-nav-btn{background:#fff;color:#000;border:1.5px solid #e8e8e8;padding:6px 12px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:border-color .15s}.ath-cal-nav-btn:hover{border-color:#000}.ath-cal-nav-btn:disabled{opacity:.3;cursor:not-allowed}.ath-cal-nav-btn.today-btn{font-size:11px}.ath-cal-no-trainings{font-size:11px;color:#ccc;text-align:center;padding:12px 4px}.athlete-calendar-v2,.trainer-calendar-v2{--t-hero: 28px;--t-h1: 28px;--t-h2: 18px;--t-h3: 14px;--t-body: 13px;--t-sm: 12px;--t-xs: 11px;--t-caps: 10px;--t-num: 20px;--t-num-sm: 14px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--bg: #ffffff;--bg-soft: #fafafa;--bg-sunken: #f4f4f4;--fg: #0b0b0b;--fg-muted: #6b6b6b;--fg-faint: #9a9a9a;--border: #ececec;--border-strong: #d6d6d6;--ok: #1f8b5f;--amber: #c47a20;--red: #b8372b;--info: #2a5fc4;--okres-przyg: #5B8DB8;--okres-przedstart: #C6843C;--okres-start: #A63D2A;--okres-roztren: #4A8B6B;--blok-gpp: #6B8CAE;--blok-aku: #B89538;--blok-int: #B05E2E;--blok-tap: #7E5E9B;--blok-reg: #5D8F73;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;color:var(--fg);background:var(--bg);height:100vh;display:flex;flex-direction:column;overflow:hidden}.athlete-calendar-v2 *,.athlete-calendar-v2 *:before,.athlete-calendar-v2 *:after,.trainer-calendar-v2 *,.trainer-calendar-v2 *:before,.trainer-calendar-v2 *:after{box-sizing:border-box}.athlete-calendar-v2 :focus-visible,.trainer-calendar-v2 :focus-visible{outline:2px solid var(--acc);outline-offset:1px}@media(prefers-reduced-motion:reduce){.athlete-calendar-v2 *,.athlete-calendar-v2 *:before,.athlete-calendar-v2 *:after,.trainer-calendar-v2 *,.trainer-calendar-v2 *:before,.trainer-calendar-v2 *:after{transition-duration:0ms!important;animation-duration:0ms!important}}.athlete-calendar-v2 .cal2-header{height:56px;flex-shrink:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--s-5);border-bottom:1px solid var(--border);background:var(--bg)}.athlete-calendar-v2 .cal2-header-left{display:flex;align-items:center;gap:var(--s-2)}.athlete-calendar-v2 .cal2-header-center{display:flex;flex-direction:column;align-items:center;line-height:1}.athlete-calendar-v2 .cal2-header-right{display:flex;justify-content:flex-end;align-items:center}.athlete-calendar-v2 .cal2-week-title{font-size:var(--t-h1);font-weight:900;letter-spacing:-.03em;line-height:1}.athlete-calendar-v2 .cal2-week-range{font-size:var(--t-xs);color:var(--fg-faint);letter-spacing:.02em;margin-top:4px}.athlete-calendar-v2 .cal2-icon-btn{width:32px;height:32px;border:1px solid var(--border);background:var(--bg);border-radius:4px;font-size:18px;line-height:1;color:var(--fg);cursor:pointer;transition:background .15s cubic-bezier(.2,0,0,1),border-color .15s cubic-bezier(.2,0,0,1)}.athlete-calendar-v2 .cal2-icon-btn:hover{background:var(--bg-soft);border-color:var(--border-strong)}.athlete-calendar-v2 .cal2-icon-btn:active{transform:scale(.98)}.athlete-calendar-v2 .cal2-today-btn{height:32px;padding:0 var(--s-3);border:1px solid var(--border);background:var(--bg);border-radius:4px;font-size:var(--t-sm);font-weight:600;color:var(--fg);cursor:pointer;transition:background .15s cubic-bezier(.2,0,0,1)}.athlete-calendar-v2 .cal2-today-btn:hover{background:var(--bg-soft)}.athlete-calendar-v2 .cal2-seg{display:inline-flex;border:1px solid var(--border);border-radius:4px;overflow:hidden;height:32px}.athlete-calendar-v2 .cal2-seg-btn{padding:0 var(--s-3);height:100%;border:none;background:var(--bg);color:var(--fg-muted);font-size:var(--t-sm);font-weight:600;cursor:pointer;transition:background .15s,color .15s}.athlete-calendar-v2 .cal2-seg-btn:hover{background:var(--bg-soft);color:var(--fg)}.athlete-calendar-v2 .cal2-seg-btn.is-active{background:var(--fg);color:var(--bg)}.athlete-calendar-v2 .cal2-left-rail{width:240px;flex-shrink:0;background:var(--bg-soft);border-right:1px solid var(--border);overflow-y:auto}.athlete-calendar-v2 .cal2-rail-section{padding:var(--s-4);border-bottom:1px solid var(--border);position:relative}.athlete-calendar-v2 .cal2-rail-section:last-child{border-bottom:none}.athlete-calendar-v2 .cal2-caps{font-size:var(--t-caps);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:var(--s-2)}.athlete-calendar-v2 .cal2-rail-value{font-size:var(--t-body);font-weight:700;color:var(--fg);letter-spacing:-.01em}.athlete-calendar-v2 .cal2-rail-subvalue{font-size:var(--t-xs);color:var(--fg-muted);margin-top:3px;font-variant-numeric:tabular-nums}.athlete-calendar-v2 .cal2-rail-chip-row{display:flex;align-items:center;gap:var(--s-2)}.athlete-calendar-v2 .cal2-rail-section.has-chip{padding-left:20px}.athlete-calendar-v2 .cal2-rail-section.has-chip:before{content:"";position:absolute;left:0;top:var(--s-4);bottom:var(--s-4);width:3px;background:var(--rail-chip-color, var(--border-strong))}.athlete-calendar-v2 .cal2-color-chip{display:inline-block;width:24px;height:10px;border-radius:2px;flex-shrink:0}.athlete-calendar-v2 .cal2-dot-sm{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.athlete-calendar-v2 .cal2-day-cell{flex:1 1 0;min-width:140px;min-height:100%;border-right:1px solid var(--border);background:var(--bg);display:flex;flex-direction:column;cursor:pointer;position:relative;transition:background .15s cubic-bezier(.2,0,0,1)}.athlete-calendar-v2 .cal2-day-cell:last-child{border-right:none}.athlete-calendar-v2 .cal2-day-cell:hover{background:var(--bg-soft)}.athlete-calendar-v2 .cal2-day-cell:before{content:"";display:block;height:4px;width:100%;background:var(--cell-phase, transparent);flex-shrink:0}.athlete-calendar-v2 .cal2-day-cell.is-today{background:#fff8f4}.athlete-calendar-v2 .cal2-day-cell.is-today:before{background:var(--acc);height:5px}.athlete-calendar-v2 .cal2-day-cell.is-today:hover{background:#fff1e8}.athlete-calendar-v2 .cal2-day-cell.is-empty{flex:0 0 48px;min-width:48px;background:var(--bg-soft)}.athlete-calendar-v2 .cal2-day-cell.is-empty:hover{background:var(--bg-sunken)}.athlete-calendar-v2 .cal2-day-cell.is-empty .cal2-day-header{flex-direction:column;gap:2px;align-items:center;justify-content:center;height:44px}.athlete-calendar-v2 .cal2-day-cell.is-empty .cal2-empty-vlabel{margin-top:auto;margin-bottom:var(--s-4);writing-mode:vertical-rl;transform:rotate(180deg);font-size:var(--t-xs);color:var(--fg-faint);letter-spacing:.1em;text-transform:uppercase;text-align:center}.athlete-calendar-v2 .cal2-day-header{display:flex;justify-content:space-between;align-items:baseline;height:44px;padding:0 var(--s-3);background:var(--bg-soft);border-bottom:1px solid var(--border);flex-shrink:0}.athlete-calendar-v2 .cal2-day-cell.is-today .cal2-day-header{background:#ffede2;border-bottom-color:#ff3b0040}.athlete-calendar-v2 .cal2-day-name{letter-spacing:.1em;color:var(--fg-muted);font-size:var(--t-xs);font-weight:700;text-transform:uppercase}.athlete-calendar-v2 .cal2-day-cell.is-today .cal2-day-name{color:var(--acc);font-weight:800}.athlete-calendar-v2 .cal2-day-num{font-size:18px;font-weight:800;color:var(--fg);letter-spacing:-.02em}.athlete-calendar-v2 .cal2-day-cell.is-today .cal2-day-num{color:var(--acc)}.athlete-calendar-v2 .cal2-today-chip{position:absolute;top:8px;right:8px;font-size:9px;font-weight:800;letter-spacing:.1em;color:var(--acc);text-transform:uppercase}.athlete-calendar-v2 .cal2-day-body{padding:var(--s-3);display:flex;flex-direction:column;flex:1;gap:var(--s-2)}.athlete-calendar-v2 .cal2-pill-row{display:flex;gap:var(--s-1);align-items:center}.athlete-calendar-v2 .cal2-pill{display:inline-flex;align-items:center;height:18px;padding:0 var(--s-2);border-radius:2px;font-size:10px;font-weight:800;letter-spacing:.05em;line-height:1;text-transform:uppercase}.athlete-calendar-v2 .cal2-pill-dm{background:#1a1a1a;color:#fff;font-variant-numeric:tabular-nums}.athlete-calendar-v2 .cal2-pill-dm.is-match{background:var(--acc);color:#fff}.athlete-calendar-v2 .cal2-pill-blok{background:var(--bg-sunken);color:var(--fg);padding-left:10px;position:relative;overflow:hidden}.athlete-calendar-v2 .cal2-pill-blok:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--pill-blok-color, var(--border-strong))}.athlete-calendar-v2 .cal2-sessions{display:flex;flex-direction:column;gap:var(--s-1);flex:1}.athlete-calendar-v2 .cal2-session-card{border:1px solid var(--border);border-left:4px solid var(--session-color, var(--border-strong));border-radius:3px;padding:8px 10px;background:var(--bg);transition:border-color .15s,box-shadow .15s,transform .15s}.athlete-calendar-v2 .cal2-session-card:hover{border-color:var(--border-strong);border-left-color:var(--session-color, var(--border-strong));box-shadow:0 1px 2px #0000000f}.athlete-calendar-v2 .cal2-session-title{display:flex;align-items:center;gap:6px;font-size:var(--t-body);font-weight:700;color:var(--fg);letter-spacing:-.01em}.athlete-calendar-v2 .cal2-session-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0}.athlete-calendar-v2 .cal2-session-meta{font-size:var(--t-xs);color:var(--fg-muted);margin-top:3px;font-variant-numeric:tabular-nums}.athlete-calendar-v2 .cal2-empty-day{font-size:var(--t-xs);color:var(--fg-faint);text-align:center;padding:var(--s-3) 0;font-style:italic}.athlete-calendar-v2 .cal2-wellness-row{margin-top:auto;padding-top:var(--s-2);border-top:1px solid var(--border)}.athlete-calendar-v2 .cal2-wellness-dots{display:flex;gap:var(--s-2);align-items:center;height:20px;justify-content:flex-start}.athlete-calendar-v2 .cal2-wellness-dot{width:8px;height:8px;border-radius:50%;border:none;padding:0;cursor:pointer;transition:transform .15s}.athlete-calendar-v2 .cal2-wellness-dot:hover{transform:scale(1.4)}.athlete-calendar-v2 .cal2-week-grid{flex:1;display:flex;overflow:auto;background:var(--bg)}.athlete-calendar-v2 .cal2-right-rail{width:300px;flex-shrink:0;background:var(--bg);border-left:1px solid var(--border);overflow-y:auto}.athlete-calendar-v2 .cal2-sum-row{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--border)}.athlete-calendar-v2 .cal2-sum-row:last-child{border-bottom:none}.athlete-calendar-v2 .cal2-sum-label{font-size:var(--t-xs);color:var(--fg-muted);letter-spacing:.02em}.athlete-calendar-v2 .cal2-sum-value{font-size:var(--t-num);font-weight:700;color:var(--fg);font-variant-numeric:tabular-nums;letter-spacing:-.02em;display:inline-flex;align-items:baseline;gap:4px;line-height:1}.athlete-calendar-v2 .cal2-sum-value.is-wow{font-size:var(--t-num-sm)}.athlete-calendar-v2 .cal2-sum-warn{font-size:13px}.athlete-calendar-v2 .cal2-flags-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.athlete-calendar-v2 .cal2-flag-group{border-bottom:1px solid var(--border)}.athlete-calendar-v2 .cal2-flag-group:last-child{border-bottom:none}.athlete-calendar-v2 .cal2-flag-group-header{display:flex;align-items:center;justify-content:space-between;padding:10px 0;cursor:pointer;-webkit-user-select:none;user-select:none}.athlete-calendar-v2 .cal2-flag-group-header:hover{color:var(--acc)}.athlete-calendar-v2 .cal2-flag-group-title{font-size:var(--t-sm);font-weight:700;color:var(--fg);letter-spacing:.02em}.athlete-calendar-v2 .cal2-flag-group-count{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-xs);color:var(--fg-muted);font-variant-numeric:tabular-nums}.athlete-calendar-v2 .cal2-flag-group-dots{display:inline-flex;gap:3px}.athlete-calendar-v2 .cal2-flag-group-dot{width:6px;height:6px;border-radius:50%;background:var(--border-strong)}.athlete-calendar-v2 .cal2-flag-group-dot.is-yellow{background:var(--amber)}.athlete-calendar-v2 .cal2-flag-group-dot.is-red{background:var(--red)}.athlete-calendar-v2 .cal2-flag-group-chev{color:var(--fg-faint);font-size:10px;transition:transform .15s}.athlete-calendar-v2 .cal2-flag-group.is-open .cal2-flag-group-chev{transform:rotate(90deg)}.athlete-calendar-v2 .cal2-flag-items{list-style:none;padding:0 0 var(--s-2) var(--s-3);margin:0;display:flex;flex-direction:column;gap:2px}.athlete-calendar-v2 .cal2-flag-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:3px;font-size:var(--t-sm);color:var(--fg);cursor:pointer;transition:background .15s;border-left:2px solid transparent}.athlete-calendar-v2 .cal2-flag-item:hover{background:var(--bg-soft)}.athlete-calendar-v2 .cal2-flag-item.is-yellow{border-left-color:var(--amber)}.athlete-calendar-v2 .cal2-flag-item.is-red{border-left-color:var(--red)}.athlete-calendar-v2 .cal2-flag-metric{font-weight:600}.athlete-calendar-v2 .cal2-flag-value{color:var(--fg-muted);font-variant-numeric:tabular-nums}.athlete-calendar-v2 .cal2-flag-showall{background:none;border:none;color:var(--fg-muted);font-size:var(--t-xs);cursor:pointer;padding:var(--s-2) 0 0 0;text-decoration:underline;font-family:inherit}.athlete-calendar-v2 .cal2-flag-showall:hover{color:var(--fg)}.athlete-calendar-v2 .cal2-drawer-backdrop{position:fixed;inset:0;background:#0b0b0b52;z-index:40;animation:cal2-fade-in .15s cubic-bezier(.2,0,0,1)}.athlete-calendar-v2 .cal2-drawer{position:fixed;top:0;right:0;width:480px;max-width:100vw;height:100vh;background:var(--bg);border-left:1px solid var(--border);box-shadow:-8px 0 24px #00000014;z-index:41;display:flex;flex-direction:column;animation:cal2-slide-in .2s cubic-bezier(.2,0,0,1)}@keyframes cal2-fade-in{0%{opacity:0}to{opacity:1}}@keyframes cal2-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.athlete-calendar-v2 .cal2-drawer-header{height:64px;flex-shrink:0;padding:0 var(--s-5);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.athlete-calendar-v2 .cal2-drawer-title{display:flex;flex-direction:column;gap:4px}.athlete-calendar-v2 .cal2-drawer-date{font-size:var(--t-h2);font-weight:800;letter-spacing:-.01em}.athlete-calendar-v2 .cal2-drawer-pills{display:flex;gap:var(--s-1)}.athlete-calendar-v2 .cal2-drawer-body{flex:1;overflow-y:auto;padding:var(--s-5)}.athlete-calendar-v2 .cal2-drawer-section{margin-bottom:var(--s-5)}.athlete-calendar-v2 .cal2-drawer-section:last-child{margin-bottom:0}.athlete-calendar-v2 .cal2-drawer-section-title{font-size:var(--t-caps);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-muted);margin:0 0 var(--s-3) 0}.athlete-calendar-v2 .cal2-drawer-row{display:flex;justify-content:space-between;align-items:center;height:36px;font-size:var(--t-body);border-bottom:1px solid var(--border)}.athlete-calendar-v2 .cal2-drawer-row:last-child{border-bottom:none}.athlete-calendar-v2 .cal2-drawer-label{color:var(--fg-muted)}.athlete-calendar-v2 .cal2-drawer-value{font-size:var(--t-num);font-weight:600;color:var(--fg)}.athlete-calendar-v2 .cal2-drawer-empty{font-size:var(--t-sm);color:var(--fg-faint);padding:var(--s-2) 0}.athlete-calendar-v2 .cal2-drawer-subtext{font-size:var(--t-sm);color:var(--fg-muted);margin-top:4px}.athlete-calendar-v2 .cal2-multiweek{flex:1;overflow:auto;padding:var(--s-5)}.athlete-calendar-v2 .cal2-mw-table{width:100%;border-collapse:collapse;font-size:var(--t-body)}.athlete-calendar-v2 .cal2-mw-table th,.athlete-calendar-v2 .cal2-mw-table td{padding:0 var(--s-3);height:40px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.athlete-calendar-v2 .cal2-mw-table th{height:32px;background:var(--bg-sunken);font-size:var(--t-caps);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-muted)}.athlete-calendar-v2 .cal2-mw-table .num{text-align:right;font-variant-numeric:tabular-nums}.athlete-calendar-v2 .cal2-mw-table tbody tr{cursor:pointer;transition:background .15s}.athlete-calendar-v2 .cal2-mw-table tbody tr:hover{background:var(--bg-soft)}.athlete-calendar-v2 .cal2-mw-table tr.is-current{background:#ff3b000a;box-shadow:inset 2px 0 0 var(--acc)}.athlete-calendar-v2 .cal2-mw-label{margin-left:var(--s-2);font-size:var(--t-sm);color:var(--fg)}.athlete-calendar-v2 .cal2-mw-rpe{display:inline-flex;flex-direction:column;align-items:flex-end;gap:4px}.athlete-calendar-v2 .cal2-mw-bar{display:block;width:64px;height:6px;background:var(--border);border-radius:1px;overflow:hidden}.athlete-calendar-v2 .cal2-mw-bar-fill{display:block;height:100%;background:var(--fg);opacity:.5}.athlete-calendar-v2 .cal2-body{flex:1;display:flex;min-height:0;overflow:hidden}.trainer-calendar-v2{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;color:var(--fg);background:var(--bg);display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.trainer-calendar-v2 .tc2-header{container:tc2-header / inline-size;min-height:56px;flex-shrink:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);padding:var(--s-2) var(--s-5);border-bottom:1px solid var(--border);background:var(--bg)}.trainer-calendar-v2 .tc2-header-left,.trainer-calendar-v2 .tc2-header-right{display:flex;align-items:center;gap:var(--s-2)}.trainer-calendar-v2 .tc2-header-left{flex:0 0 auto}.trainer-calendar-v2 .tc2-header-right{flex:0 1 auto;flex-wrap:wrap;justify-content:flex-end;min-width:0;margin-left:auto}.trainer-calendar-v2 .tc2-header-center{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;line-height:1}.trainer-calendar-v2 .tc2-header button{white-space:nowrap}.trainer-calendar-v2 .tc2-title{font-size:var(--t-lg);font-weight:800;letter-spacing:-.02em;line-height:1.1;max-width:100%;overflow-wrap:anywhere}.trainer-calendar-v2 .tc2-title-sub{font-size:9px;color:var(--fg-faint);letter-spacing:.06em;margin-top:3px;text-transform:uppercase;font-weight:600;opacity:.6}.trainer-calendar-v2 .tc2-icon-btn,.trainer-calendar-v2 .tc2-ghost-btn{height:32px;padding:0 var(--s-3);border:1px solid var(--border);background:var(--bg);border-radius:4px;font-size:var(--t-sm);font-weight:600;color:var(--fg);cursor:pointer;transition:background .15s cubic-bezier(.2,0,0,1),border-color .15s cubic-bezier(.2,0,0,1)}.trainer-calendar-v2 .tc2-icon-btn{width:32px;padding:0;font-size:18px}.trainer-calendar-v2 .tc2-icon-btn:hover,.trainer-calendar-v2 .tc2-ghost-btn:hover{background:var(--bg-soft);border-color:var(--border-strong)}.trainer-calendar-v2 .tc2-primary-btn{height:32px;padding:0 var(--s-4);border:1px solid var(--fg);background:var(--fg);color:var(--bg);border-radius:4px;font-size:var(--t-sm);font-weight:700;cursor:pointer;letter-spacing:-.01em;transition:background .15s}.trainer-calendar-v2 .tc2-primary-btn:hover{background:#000}.trainer-calendar-v2 .tc2-seg{display:inline-flex;flex-shrink:0;max-width:100%;border:1px solid var(--border);border-radius:4px;overflow:hidden;height:32px}.trainer-calendar-v2 .tc2-seg-btn{padding:0 var(--s-3);height:100%;border:none;background:var(--bg);color:var(--fg-muted);font-size:var(--t-sm);font-weight:600;cursor:pointer;transition:background .15s,color .15s}.trainer-calendar-v2 .tc2-seg-btn:hover{background:var(--bg-soft);color:var(--fg)}.trainer-calendar-v2 .tc2-seg-btn.is-active{background:var(--fg);color:var(--bg)}@container tc2-header (max-width: 1010px){.trainer-calendar-v2 .tc2-header-right{flex-basis:100%;justify-content:flex-start}.trainer-calendar-v2 .tc2-primary-btn{margin-left:auto}}@container tc2-header (max-width: 620px){.trainer-calendar-v2 .tc2-header-left,.trainer-calendar-v2 .tc2-header-right{display:contents}.trainer-calendar-v2 .tc2-header-center{order:-1;flex-basis:100%}.trainer-calendar-v2 .tc2-seg,.trainer-calendar-v2 .tc2-primary-btn{flex:1 1 auto}.trainer-calendar-v2 .tc2-seg-btn{flex:1 1 auto;padding-inline:var(--s-1)}.trainer-calendar-v2 .tc2-primary-btn{margin-left:0}}@media(max-width:640px){.trainer-calendar-v2 .tc2-header,.trainer-calendar-v2 .tc2-filter{padding-inline:var(--s-3)}}.trainer-calendar-v2 .tc2-filter{flex-shrink:0;padding:var(--s-3) var(--s-5);border-bottom:1px solid var(--border);background:var(--bg-soft);display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap}.trainer-calendar-v2 .tc2-filter-label{font-size:var(--t-caps);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-faint);margin-right:2px}.trainer-calendar-v2 .tc2-filter select{max-width:100%}.trainer-calendar-v2 .tc2-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;height:26px;padding:0 var(--s-3);border:1px solid var(--border);border-radius:13px;background:var(--bg);font-size:var(--t-sm);font-weight:600;color:var(--fg-muted);cursor:pointer;transition:all .15s cubic-bezier(.2,0,0,1)}.trainer-calendar-v2 .tc2-chip:hover{border-color:var(--border-strong);color:var(--fg)}.trainer-calendar-v2 .tc2-chip.is-active{background:var(--fg);border-color:var(--fg);color:var(--bg)}.trainer-calendar-v2 .tc2-chip-dot{width:8px;height:8px;border-radius:50%;background:var(--chip-athlete-color, var(--border-strong));flex-shrink:0}.trainer-calendar-v2 .tc2-chip.is-active .tc2-chip-dot{background:currentColor}.trainer-calendar-v2 .tc2-chip-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trainer-calendar-v2 .tc2-body{container:tc2-body / inline-size;flex:1;overflow:auto;padding:var(--s-4) var(--s-5)}.trainer-calendar-v2 .tc2-week-label{font-size:var(--t-caps);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-faint);margin:0 0 var(--s-2) 72px;padding-bottom:var(--s-1)}.trainer-calendar-v2 .tc2-grid-header{display:grid;grid-template-columns:72px repeat(7,minmax(0,1fr));border-bottom:1px solid var(--border);background:var(--bg-soft)}.trainer-calendar-v2 .tc2-grid-header span{font-size:var(--t-xs);font-weight:700;text-align:center;padding:var(--s-2) var(--s-1);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);border-right:1px solid var(--border)}.trainer-calendar-v2 .tc2-grid-header span:last-child{border-right:none}.trainer-calendar-v2 .tc2-grid-header span.is-today{color:var(--acc);font-weight:900;background:#ffede2;box-shadow:inset 0 3px 0 var(--acc)}.trainer-calendar-v2 .tc2-grid-header span.is-weekend{color:var(--fg-faint)}.trainer-calendar-v2 .tc2-grid-row{display:grid;grid-template-columns:72px repeat(7,minmax(0,1fr));border-bottom:1px solid var(--border)}.trainer-calendar-v2 .tc2-grid-row:last-child{border-bottom:none}.trainer-calendar-v2 .tc2-time{font-size:var(--t-xs);color:var(--fg-faint);display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:1px;min-width:0;padding:6px 6px 4px 2px;border-right:1px solid var(--border);font-variant-numeric:tabular-nums;line-height:1.3;text-align:right}.trainer-calendar-v2 .tc2-time-label{font-weight:700;color:var(--fg-muted)}.trainer-calendar-v2 .tc2-time-label,.trainer-calendar-v2 .tc2-time-sub{max-width:100%;white-space:nowrap}.trainer-calendar-v2 .tc2-cell{display:flex;flex-direction:column;gap:2px;padding:2px;min-width:0;min-height:52px;border-right:1px solid var(--border);position:relative;background:var(--bg);transition:background .15s}.trainer-calendar-v2 .tc2-cell:last-child{border-right:none}.trainer-calendar-v2 .tc2-cell:hover{background:var(--bg-soft)}.trainer-calendar-v2 .tc2-cell.is-today{background:#fff8f4}.trainer-calendar-v2 .tc2-cell.is-today:hover{background:#fff1e8}.trainer-calendar-v2 .tc2-session{position:absolute;inset:2px;border-radius:3px;padding:4px 6px 4px 8px;font-size:var(--t-xs);font-weight:700;overflow:hidden;line-height:1.3;background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--session-athlete-color, var(--border-strong));color:var(--fg);cursor:pointer;transition:box-shadow .15s,border-color .15s}.trainer-calendar-v2 .tc2-session:hover{box-shadow:0 2px 4px #00000014;border-color:var(--border-strong)}.trainer-calendar-v2 .tc2-session-meta{font-size:10px;font-weight:500;color:var(--fg-muted);margin-top:2px}.trainer-calendar-v2 .tc2-session-name,.trainer-calendar-v2 .tc2-session-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trainer-calendar-v2 .tc2-week{margin-bottom:var(--s-5)}.trainer-calendar-v2 .tc2-week:last-child{margin-bottom:0}.trainer-calendar-v2 .tc2-session.ses-r{--session-athlete-color: var(--acc)}.trainer-calendar-v2 .tc2-session.ses-b{--session-athlete-color: #2a5fc4}.trainer-calendar-v2 .tc2-session.ses-g{--session-athlete-color: #1f8b5f}.trainer-calendar-v2 .tc2-session.ses-p{--session-athlete-color: #7e5e9b}.trainer-calendar-v2 .tc2-session-wrap{position:relative;flex:0 0 auto;min-width:0}.trainer-calendar-v2 .tc2-session-wrap .tc2-session{position:relative;inset:unset;min-height:40px}.trainer-calendar-v2 .tc2-more-btn{flex:0 0 auto;min-height:24px;padding:2px 6px;border:1px dashed var(--border-strong);border-radius:3px;background:var(--bg);color:var(--fg-muted);font:inherit;font-size:var(--t-xs);font-weight:700;cursor:pointer}.trainer-calendar-v2 .tc2-more-btn:hover{color:var(--fg);border-style:solid}@media(hover:none){.trainer-calendar-v2 .tc2-more-btn{min-height:40px}}.trainer-calendar-v2 .tc2-popover{position:absolute;left:calc(100% + 6px);top:0;z-index:50;min-width:220px;background:var(--bg);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 16px #0000001f;font-size:var(--t-xs);pointer-events:none;animation:tc2-pop-in .12s ease-out}@keyframes tc2-pop-in{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.trainer-calendar-v2 .tc2-popover-header{padding:8px 10px;border-left:3px solid var(--border-strong);border-radius:6px 6px 0 0;border-bottom:1px solid var(--border);font-weight:800}.trainer-calendar-v2 .tc2-popover-body{padding:6px 10px 8px;display:flex;flex-direction:column;gap:4px}.trainer-calendar-v2 .tc2-popover-row{display:flex;justify-content:space-between;gap:12px}.trainer-calendar-v2 .tc2-popover-label{color:var(--fg-muted);font-weight:500}.trainer-calendar-v2 .tc2-popover-status{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.trainer-calendar-v2 .tc2-status-completed{color:#1f8b5f}.trainer-calendar-v2 .tc2-status-in_progress{color:var(--acc)}.trainer-calendar-v2 .tc2-status-cancelled{color:var(--fg-muted)}.trainer-calendar-v2 .tc2-month-title{font-size:var(--t-lg);font-weight:900;margin-bottom:var(--s-3)}.trainer-calendar-v2 .tc2-month-header{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:4px}.trainer-calendar-v2 .tc2-month-header span{text-align:center;font-size:var(--t-xs);font-weight:700;color:var(--fg-muted);padding:4px 0}.trainer-calendar-v2 .tc2-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:6px;overflow:hidden}.trainer-calendar-v2 .tc2-month-day{background:var(--bg);min-height:72px;padding:4px 6px;cursor:pointer;transition:background .1s}.trainer-calendar-v2 .tc2-month-day:hover{background:var(--bg-hover, #fafafa)}.trainer-calendar-v2 .tc2-month-day.is-outside{opacity:.35}.trainer-calendar-v2 .tc2-month-day.is-today .tc2-month-day-num{background:var(--acc);color:#fff;border-radius:50%;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center}.trainer-calendar-v2 .tc2-month-day-num{font-size:var(--t-xs);font-weight:700;display:block;margin-bottom:2px}.trainer-calendar-v2 .tc2-month-dots{display:flex;flex-wrap:wrap;gap:3px;margin-top:2px}.trainer-calendar-v2 .tc2-month-dot{width:7px;height:7px;border-radius:50%}.trainer-calendar-v2 .tc2-month-dot-more{font-size:9px;font-weight:700;color:var(--fg-muted);line-height:7px}.tc2-modal-overlay{position:fixed;inset:0;z-index:100;background:#00000059;display:flex;align-items:center;justify-content:center;animation:tc2-fade-in .12s ease-out}@keyframes tc2-fade-in{0%{opacity:0}to{opacity:1}}.tc2-modal{background:var(--bg);border-radius:10px;box-shadow:0 8px 32px #0000002e;width:100%;max-width:460px;max-height:90vh;overflow-y:auto;animation:tc2-slide-up .15s ease-out}@keyframes tc2-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.tc2-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.tc2-modal-header h3{font-size:var(--t-lg);font-weight:800;margin:0}.tc2-modal-close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--fg-muted);padding:0 4px;line-height:1}.tc2-modal-close:hover{color:var(--fg)}.tc2-modal-body{padding:20px;display:flex;flex-direction:column;gap:14px}.tc2-field{display:flex;flex-direction:column;gap:4px;flex:1}.tc2-field>span{font-size:var(--t-xs);font-weight:700;color:var(--fg-muted)}.tc2-field input,.tc2-field select,.tc2-field textarea{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:var(--t-sm);font-family:inherit;background:var(--bg);color:var(--fg);transition:border-color .12s}.tc2-field input:focus,.tc2-field select:focus,.tc2-field textarea:focus{outline:none;border-color:var(--fg)}.tc2-field-row{display:flex;gap:12px}.tc2-field>.tc2-field-hint{font-weight:400;color:var(--mg)}.tc2-form-error{margin:0 20px 14px;padding:10px 12px;border:1px solid var(--acc);border-radius:6px;font-size:var(--t-sm);color:var(--acc)}.tc2-action-error{scroll-margin:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;padding:10px 12px;border:1px solid var(--acc);border-radius:6px;font-size:var(--t-sm);color:var(--acc)}.tc2-action-error-close{flex:none;background:none;border:0;padding:0 4px;font-size:var(--t-md, 16px);line-height:1;color:inherit;cursor:pointer}.tc2-modal-footer{display:flex;align-items:center;gap:8px;padding:14px 20px;border-top:1px solid var(--border)}.tc2-btn-danger{background:none;border:1px solid #d32f2f;color:#d32f2f;border-radius:6px;padding:7px 14px;font-size:var(--t-sm);font-weight:700;cursor:pointer}.tc2-btn-danger:hover{background:#d32f2f;color:#fff}.trainer-calendar-v2 .tc2-dup-btn{margin-left:12px;font-size:11px;padding:2px 8px;opacity:0;transition:opacity .15s}.trainer-calendar-v2 .tc2-week-label:hover .tc2-dup-btn{opacity:1}.trainer-calendar-v2 .tc2-cell,.trainer-calendar-v2 .tc2-month-day{user-select:none;-webkit-user-select:none}.trainer-calendar-v2 .tc2-month-day{position:relative}.trainer-calendar-v2 .tc2-add-session-btn{position:absolute;top:2px;right:2px;z-index:2;width:20px;height:20px;padding:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--fg-muted);font-size:14px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s}.trainer-calendar-v2 .tc2-cell:hover .tc2-add-session-btn,.trainer-calendar-v2 .tc2-month-day:hover .tc2-add-session-btn,.trainer-calendar-v2 .tc2-add-session-btn:focus-visible{opacity:1}.trainer-calendar-v2 .tc2-add-session-btn:hover{color:var(--acc);border-color:var(--acc)}@media(hover:none){.trainer-calendar-v2 .tc2-add-session-btn{opacity:1;width:24px;height:24px;font-size:16px}.trainer-calendar-v2 .tc2-cell.has-session .tc2-add-session-btn{display:none}}.trainer-calendar-v2 .tc2-cell.is-drag-over{background:#ff3b000f;outline:2px dashed var(--acc);outline-offset:-2px;border-radius:4px}.trainer-calendar-v2 .tc2-session-wrap[draggable=true]{cursor:grab}.trainer-calendar-v2 .tc2-session-wrap[draggable=true]:active{cursor:grabbing}@container tc2-body (max-width: 720px){.trainer-calendar-v2 .tc2-week{display:grid;grid-template-columns:52px repeat(3,minmax(0,1fr));grid-template-rows:auto auto repeat(7,auto);grid-auto-flow:column}.trainer-calendar-v2 .tc2-week-label{grid-column:1 / -1;grid-row:1;margin-left:0}.trainer-calendar-v2 .tc2-grid-header,.trainer-calendar-v2 .tc2-grid-row{display:contents}.trainer-calendar-v2 .tc2-grid-header span{display:flex;align-items:center;justify-content:center;padding:var(--s-1) 2px;background:var(--bg-soft);border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.trainer-calendar-v2 .tc2-grid-header span:last-child{border-right:1px solid var(--border)}.trainer-calendar-v2 .tc2-grid-header span.is-today{box-shadow:inset 3px 0 0 var(--acc)}.trainer-calendar-v2 .tc2-time{flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:6px var(--s-1);text-align:center;background:var(--bg-soft);border-bottom:1px solid var(--border)}.trainer-calendar-v2 .tc2-cell{min-height:48px;border-bottom:1px solid var(--border)}.trainer-calendar-v2 .tc2-cell:last-child{border-right:1px solid var(--border)}.trainer-calendar-v2 .tc2-grid-row:last-child .tc2-time,.trainer-calendar-v2 .tc2-grid-row:last-child .tc2-cell{border-right:none}.trainer-calendar-v2 .tc2-month-day{min-height:80px}.trainer-calendar-v2 .tc2-month-day .tc2-add-session-btn{top:auto;bottom:2px}}@media(hover:none){@container tc2-body (max-width: 720px){.trainer-calendar-v2 .tc2-cell .tc2-add-session-btn{inset:0;margin:auto;width:40px;height:40px}}}.tc2-undo-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;background:var(--b);color:var(--w);padding:10px 20px;border-radius:8px;font-size:var(--t-sm);font-weight:600;box-shadow:0 4px 16px #0003;z-index:9999;animation:tc2-toast-in .2s ease}.tc2-undo-toast button{background:none;border:1px solid rgba(255,255,255,.3);color:var(--acc);font-weight:700;padding:4px 12px;border-radius:4px;cursor:pointer;font-size:var(--t-sm)}.tc2-undo-toast button:hover{background:#ffffff1a}@keyframes tc2-toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tc2-status-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--border);margin-bottom:4px}.tc2-status-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:4px;background:var(--bg-hover, #f4f4f4)}.tc2-status-badge.tc2-status-completed{color:#1f8b5f;background:#e8f5e9}.tc2-status-badge.tc2-status-cancelled{color:#888;background:#f0f0f0}.tc2-status-badge.tc2-status-in_progress{color:var(--acc);background:#fff3e0}.tc2-status-btn{font-size:12px;font-weight:700;padding:4px 10px;border-radius:5px;border:1px solid var(--border);background:var(--bg);cursor:pointer;transition:all .1s}.tc2-status-btn:hover{background:var(--bg-hover, #f4f4f4)}.tc2-status-btn-complete{color:#1f8b5f;border-color:#1f8b5f}.tc2-status-btn-complete:hover{background:#1f8b5f;color:#fff}.tc2-status-btn-cancel{color:#888}.athlete-calendar-v2 .cal2-trend-wrap{position:relative;display:inline-flex;align-items:center;justify-content:flex-end;width:40px;margin-right:10px;color:#c4c4c4;cursor:default;outline:none;opacity:.9;transition:color .15s,opacity .15s}.athlete-calendar-v2 .cal2-trend-wrap:hover,.athlete-calendar-v2 .cal2-trend-wrap:focus-visible{color:var(--fg-muted);opacity:1}.athlete-sessions-panel{padding:16px 20px;border-top:1px solid var(--border);margin-top:12px}.athlete-sessions-panel h3{font-size:var(--t-base);font-weight:800;margin:0 0 12px}.athlete-sessions-list{display:flex;flex-direction:column;gap:8px}.athlete-session-card{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--border);border-radius:6px;font-size:var(--t-sm);border-left:3px solid var(--acc)}.athlete-session-card.athlete-session-completed{border-left-color:#1f8b5f;opacity:.7}.athlete-session-card.athlete-session-cancelled{border-left-color:#888;opacity:.5}.athlete-session-date{font-weight:700;font-size:var(--t-xs);color:var(--fg-muted);min-width:80px}.athlete-session-info{flex:1;display:flex;align-items:center;gap:8px}.athlete-session-time{font-size:var(--t-xs);color:var(--fg-muted)}.athlete-session-status{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.athlete-session-status-completed{color:#1f8b5f}.athlete-session-status-cancelled{color:#888}.athlete-session-status-in_progress{color:var(--acc)}.athlete-session-action{font-size:11px;font-weight:700;padding:4px 10px;border-radius:5px;border:1px solid var(--border);background:var(--bg);cursor:pointer;margin-left:4px;transition:all .1s}.athlete-session-action:hover{background:var(--bg-hover, #f4f4f4)}.athlete-session-action-complete{color:#1f8b5f;border-color:#1f8b5f}.athlete-session-action-complete:hover{background:#1f8b5f;color:#fff}.cal2-trend-popover{z-index:100;width:240px;background:#fff;border:1px solid #d6d6d6;border-radius:6px;box-shadow:0 6px 20px #0000001f;padding:10px 12px;animation:cal2-pop-in .1s cubic-bezier(.2,0,0,1);pointer-events:none;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;color:#0b0b0b}@keyframes cal2-pop-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.cal2-trend-popover .cal2-trend-title{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--t-caps);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-muted);font-weight:700;margin-bottom:6px}.cal2-trend-popover .cal2-trend-current{font-size:var(--t-num-sm);color:var(--fg);font-weight:700;font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:-.01em}.cal2-trend-popover .cal2-trend-unit{font-size:10px;color:var(--fg-muted);margin-left:1px;font-weight:500}.cal2-trend-popover .cal2-trend-chart{display:block;width:100%;height:auto}.cal2-trend-popover .cal2-trend-xlabels{display:flex;justify-content:space-between;font-size:10px;color:var(--fg-faint);margin-top:2px;font-variant-numeric:tabular-nums}.cal2-trend-popover .cal2-trend-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.cal2-trend-popover .cal2-trend-stats>div{display:flex;flex-direction:column;gap:1px}.cal2-trend-popover .cal2-trend-stat-label{font-size:9px;color:var(--fg-faint);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.cal2-trend-popover .cal2-trend-stat-value{font-size:var(--t-sm);color:var(--fg);font-weight:600;font-variant-numeric:tabular-nums}.cal2-trend-popover .cal2-trend-empty{font-size:var(--t-xs);color:var(--fg-faint);padding:8px 0;font-style:italic}.sb-bell-wrapper{position:relative}.sb-bell-btn{background:none;border:none;cursor:pointer;padding:6px 8px;display:flex;align-items:center;gap:6px;color:var(--b);border-radius:6px}.sb-bell-btn:hover{background:#e8e8e8}.notif-dropdown{position:absolute;bottom:40px;left:0;width:340px;max-height:440px;background:var(--w);border:1px solid #e8e8e8;border-radius:10px;box-shadow:0 8px 24px #0000001f;z-index:100;display:flex;flex-direction:column;overflow:hidden}.notif-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #e8e8e8}.notif-dropdown-title{font-weight:700;font-size:13px}.notif-dropdown-mark-all{background:none;border:none;color:var(--acc);font-size:11px;cursor:pointer;font-weight:600}.notif-dropdown-list{flex:1;overflow-y:auto}.notif-dropdown-empty{text-align:center;padding:32px 14px;color:var(--mg);font-size:12px}.notif-dropdown-item{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;cursor:pointer;position:relative}.notif-dropdown-item:hover{background:#f8f8f8}.notif-dropdown-item.unread{background:#fafafa}.notif-dropdown-icon{width:28px;height:28px;border-radius:50%;background:var(--g);display:flex;align-items:center;justify-content:center;flex-shrink:0}.notif-dropdown-content{flex:1;min-width:0}.notif-dropdown-item-title{font-size:12px;font-weight:600}.notif-dropdown-item-body{font-size:11px;color:var(--mg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-dropdown-time{font-size:10px;color:var(--mg);white-space:nowrap;flex-shrink:0}.notif-dropdown-dot{width:7px;height:7px;border-radius:50%;background:var(--acc);position:absolute;right:14px;top:50%;transform:translateY(-50%)}.notif-dropdown-footer{text-align:center;padding:10px;font-size:11px;font-weight:600;color:var(--acc);cursor:pointer;border-top:1px solid #e8e8e8}.notif-dropdown-footer:hover{background:#fafafa}@media(max-width:1024px){.sidebar{width:60px;overflow:hidden}.sb-logo{padding:16px 0;text-align:center;font-size:14px}.sb-logo .logo-wordmark,.sb-section{display:none}.sb-item{justify-content:center;padding:10px 0}.sb-item span:not(.sb-icon,.sb-badge,.sr-only){display:none}.sb-icon{margin-right:0}.sb-badge{position:absolute;top:2px;right:6px}.sb-item{position:relative}.sync-pill--sidebar{align-self:center;margin:0 0 8px;padding:6px}.sync-pill--sidebar .sync-pill-label,.sync-pill--sidebar .sync-pill-count{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.sb-bottom{padding:8px 0;display:flex;flex-direction:column;align-items:center;gap:2px}.sb-user{padding:8px 0;justify-content:center}.sb-user>div:not(.sb-av){display:none}.sb-bottom .sb-bell-btn{margin-left:0!important}.sb-bottom .sb-item span:not(.sb-icon){display:none}.ath-sb-bottom{flex-direction:column;padding:8px 0;gap:4px}.ath-sb-user-text{display:none}.dash-stats-grid{grid-template-columns:1fr 1fr}.cal-header,.cal-week{grid-template-columns:repeat(7,1fr)}.cal-time,.cal2-left-rail,.cal2-right-rail{display:none}.cal2-main-area{grid-column:1 / -1}.chat-layout{grid-template-columns:200px 1fr}.settings-layout{grid-template-columns:160px 1fr}.sheet-table-wrap{overflow-x:auto}.ath-profile-layout{grid-template-columns:200px 1fr}.ath-profile-sidebar-right{display:none}.wf-g4,.wf-g3{grid-template-columns:1fr 1fr}.lib-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.page-content{padding:16px}}@media(max-width:640px){.sidebar{display:none}:root{--mnav-h: 56px;--mnav-space: calc(var(--mnav-h) + env(safe-area-inset-bottom, 0px))}.app-shell{padding-bottom:var(--mnav-space)}.mnav{display:block;position:fixed;left:0;right:0;bottom:0;z-index:30;background:#fff;border-top:1.5px solid #e8e8e8;padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}.mnav-list{display:flex;list-style:none;height:var(--mnav-h)}.mnav-slot{flex:1 1 0;min-width:0;display:flex}.mnav-item{flex:1;min-width:44px;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0;border:none;background:none;font-family:inherit;font-size:10px;font-weight:600;line-height:1.2;letter-spacing:-.1px;color:#767676;cursor:pointer;text-decoration:none;-webkit-tap-highlight-color:transparent;position:relative}.mnav-item.active{color:#000;font-weight:800}.mnav-item.active:before{content:"";position:absolute;top:-1.5px;left:50%;width:28px;height:3px;margin-left:-14px;background:var(--acc)}.mnav-item:focus-visible,.mnav-sheet-item:focus-visible,.mnav-sheet-close:focus-visible{outline:2px solid #000;outline-offset:-2px;border-radius:6px}.mnav-icon{position:relative;display:flex}.mnav-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mnav-badge{position:absolute;top:-5px;left:13px;min-width:16px;height:16px;padding:0 4px;border-radius:100px;background:var(--acc);color:#fff;font-size:9px;font-weight:800;line-height:16px;text-align:center;box-shadow:0 0 0 2px #fff}.mnav-badge--dot{min-width:8px;width:8px;height:8px;padding:0;top:-2px;left:17px}.mnav-backdrop{display:flex;align-items:flex-end;position:fixed;inset:0;z-index:60;background:#0006;animation:mnav-fade-in .15s ease-out}.mnav-sheet{width:100%;max-height:calc(100% - 48px);display:flex;flex-direction:column;background:#fff;border-radius:16px 16px 0 0;padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);animation:mnav-slide-up .2s cubic-bezier(.2,0,0,1)}.mnav-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:10px 8px 10px 20px;border-bottom:1px solid #e8e8e8;flex-shrink:0}.mnav-sheet-brand{font-size:17px;font-weight:900;letter-spacing:-.5px;min-width:0}.mnav-sheet-close{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:#000;cursor:pointer;flex-shrink:0}.mnav-sheet-user{display:flex;align-items:center;gap:10px;padding:12px 20px;border-bottom:1px solid #e8e8e8;flex-shrink:0}.mnav-sheet-user-text{min-width:0}.mnav-sheet-uname{font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mnav-sheet-nav{overflow-y:auto;padding:6px 0;min-height:0}.mnav-sheet-list{list-style:none}.mnav-sheet-item{width:100%;min-height:48px;display:flex;align-items:center;gap:14px;padding:0 20px;border:none;background:none;font-family:inherit;font-size:15px;font-weight:500;color:#000;text-align:left;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.mnav-sheet-item.active{font-weight:800;box-shadow:inset 3px 0 0 var(--acc);background:#f4f4f4}.mnav-sheet-icon{display:flex;color:#767676;flex-shrink:0}.mnav-sheet-item.active .mnav-sheet-icon{color:#000}.mnav-sheet-label{flex:1;min-width:0}.mnav-sheet-badge{background:var(--acc);color:#fff;font-size:11px;font-weight:800;padding:2px 8px;border-radius:100px;flex-shrink:0}.mnav-sheet-logout{border-top:1px solid #e8e8e8;min-height:56px;font-weight:700;flex-shrink:0}.mnav-sheet-logout .mnav-sheet-icon{color:#000}.sync-pill--page{display:inline-flex;align-self:flex-start;height:26px;margin:8px 12px 12px}.sync-pill--page.sync-pill--waiting{height:auto;min-height:26px}.sync-pill--page.sync-pill--offline,.sync-pill--page.sync-pill--waiting,.sync-pill--page.sync-pill--syncing{position:sticky;bottom:calc(var(--mnav-space) + 12px);z-index:20}.chat-layout{height:calc(100vh - 46px - var(--mnav-space))}.app-shell .tc2-undo-toast{bottom:calc(var(--mnav-space) + 16px)}body:has(.mnav) .app-toaster,body:has(.mnav) [data-testid=cookie-consent-banner]{bottom:calc(var(--mnav-space) + 16px)!important}.app-root{flex-direction:column;flex:1;min-height:0}.page-content{padding:12px}.page-title{font-size:20px}.dash-stats-grid{grid-template-columns:1fr}.dash-cols{flex-direction:column}.wf-g2,.wf-g3,.wf-g4{grid-template-columns:1fr}.cal-header,.cal-week{grid-template-columns:repeat(7,minmax(80px,1fr));min-width:560px}.cal-wrap{overflow-x:auto}.cal2-week-row,.cal2-header-row{grid-template-columns:repeat(7,minmax(70px,1fr));min-width:490px}.cal2-scroll-area{overflow-x:auto}.chat-layout{grid-template-columns:1fr;grid-template-rows:240px 1fr}.chat-list{border-right:none;border-bottom:1.5px solid #e8e8e8}.settings-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}.settings-nav{border-right:none;border-bottom:1px solid #e8e8e8;display:flex;overflow-x:auto;padding:8px 0}.sn-item{white-space:nowrap;padding:6px 12px}.sn-item.active{border-right:none;border-bottom:2px solid #000}.ath-table-wrap{overflow-x:auto}.ath-profile-layout{grid-template-columns:1fr}.sheet-table-wrap{overflow-x:auto}.sheet-header,.sheet-row{grid-template-columns:2fr 1fr 1fr 1fr 1fr 1fr 60px;min-width:520px}.lib-grid{grid-template-columns:1fr}.notify-item{padding:10px 12px}.wf-val{font-size:22px}.os-steps{gap:4px}.ath-dash-grid{grid-template-columns:minmax(0,1fr)}.topbar{flex-wrap:wrap;gap:8px 12px}.tb-right{flex-wrap:wrap;min-width:0}.tb-search{flex:1 1 120px;width:auto;min-width:0}.profile-overview-grid,.analytics-tables,.ath-week-grid{grid-template-columns:minmax(0,1fr)}.ath-week-grid>.wf-card{min-height:0!important}.profile-header{flex-wrap:wrap;padding:16px 12px}.profile-actions{flex-wrap:wrap}.page-content.groups-layout{flex-direction:column;align-items:stretch}.groups-list{width:auto}.groups-layout .wf-card,.monitor-grid-wrap{overflow-x:auto}.monitor-grid-wrap>div{min-width:560px}.as-ex-row{grid-template-columns:minmax(0,1fr) 36px 48px 64px 44px 44px}.invite-row{flex-wrap:wrap}.invite-row .invite-banner-link{flex:1 0 100%;order:1}.invite-row>.tb-btn,.invite-row>.tb-btn-ghost,.invite-row>span{order:2}.invite-form{flex:1 1 100%}.invite-form .invite-name{flex:1 1 0;width:auto;min-width:0}.invite-form .invite-email,.invite-form .tb-btn{flex:1 1 100%}.wf-tabs{overflow-x:auto;padding:0 4px}.dash-sessions,.dash-sessions tbody{display:block}.dash-sessions thead{display:none}.dash-sessions tbody tr{display:grid;grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"time athlete status" "time title action";gap:4px 10px;align-items:center;padding:10px 12px;border-bottom:1px solid #e8e8e8}.dash-sessions tbody tr:last-child{border-bottom:none}.dash-sessions tbody td{display:block;padding:0;border-bottom:none;min-width:0}.dash-sessions-time{grid-area:time}.dash-sessions-athlete{grid-area:athlete;font-weight:700;overflow-wrap:anywhere}.dash-sessions-title{grid-area:title;color:#888;overflow-wrap:anywhere}.dash-sessions-status{grid-area:status;justify-self:end}.dash-sessions-action{grid-area:action;justify-self:end}.dash-sessions-action:empty{display:none}.ex-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ex-filter-row--scroll{flex-wrap:nowrap;overflow-x:auto;margin-left:-12px;margin-right:-12px;padding:0 12px 4px}.ex-filter-row--scroll .filter-chip{flex-shrink:0}.ex-filter-field,.ex-filter-field :is(select,input){width:100%}.phone-tap .filter-chip{padding:0 14px;font-size:12px}.phone-tap .ex-fav-btn{width:40px!important;height:40px!important;line-height:40px!important}.ex-card-tag{display:none!important}.phone-tap :is(button,select,a.tb-btn,a.tb-btn-ghost,.wf-tab,.sn-item),.phone-tap input:not([type=checkbox],[type=radio],[type=range],[type=file]){min-height:40px}.phone-tap :is(.wf-tab,.sn-item){display:flex;align-items:center}.phone-tap .tb-notif{width:40px;height:40px}}.ex-form-tag-remove{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;margin:-6px -8px -6px 0;padding:0;background:none;border:none;border-radius:4px;cursor:pointer;font:inherit;font-size:14px;line-height:1;color:inherit}.ex-form-tag-remove:focus-visible{outline:2px solid var(--acc);outline-offset:1px}@media(max-width:640px){.ex-form-tag-remove{min-width:40px;min-height:40px;margin:-14px -12px -14px -4px}}.ex-detail{max-width:1000px}.ex-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 20px 14px}.ex-title{font-size:24px;font-weight:900;letter-spacing:-.01em}.ex-badges{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.ex-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:5px 11px;border-radius:999px}.ex-badge.cat{background:#eaf0ff;color:#3b6fed}.ex-badge.diff{background:#f1f2f5;color:#6c7280}.ex-actions{display:flex;gap:8px;flex-shrink:0}.ex-actbtn{width:38px;height:38px;border-radius:11px;border:1px solid var(--border);background:#fff;display:grid;place-items:center;cursor:pointer;font-size:15px;transition:border-color .12s,color .12s}.ex-actbtn:hover{border-color:#000}.ex-actbtn.active{color:var(--acc);border-color:var(--acc)}.ex-tabs{display:flex;gap:4px;border-top:1px solid var(--border);padding:0 8px}.ex-tab{font-size:13px;font-weight:800;padding:13px 14px;color:#9aa0aa;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer}.ex-tab.on{color:#000;border-bottom-color:var(--acc)}.ex-row{display:flex;gap:14px;align-items:stretch}.ex-pad{padding:20px}.ex-media-card{flex:0 0 300px;overflow:hidden;padding:0}.ex-media{background:linear-gradient(135deg,#f3f5f8,#e9edf3);border-radius:14px;display:grid;place-items:center;position:relative;overflow:hidden;height:100%}.ex-media img{width:100%;height:100%;object-fit:cover}.ex-glyph{font-size:64px;font-weight:900;color:#cdd3dc}.ex-media-hint{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:11px;font-weight:700;letter-spacing:.08em;color:#aab0ba;text-transform:uppercase}.ex-videoflag{position:absolute;top:12px;right:12px;background:#15181e;color:#fff;font-size:10px;font-weight:800;padding:4px 9px;border-radius:7px;letter-spacing:.05em;text-transform:uppercase}.ex-lbl{font-size:11px;font-weight:800;letter-spacing:.1em;color:#9aa0aa;text-transform:uppercase;margin-bottom:8px}.ex-mchips{display:flex;flex-wrap:wrap;gap:8px}.ex-mchip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:999px;background:#f5f6f8;color:#2b2f36}.ex-dot{width:9px;height:9px;border-radius:50%}.ex-body{font-size:14px;line-height:1.65;color:#3a3f47}.ex-steps{list-style:none;counter-reset:step;display:flex;flex-direction:column;gap:12px;padding:0;margin:0}.ex-steps li{counter-increment:step;display:flex;gap:12px;font-size:14px;line-height:1.55;color:#3a3f47}.ex-steps li:before{content:counter(step);flex:0 0 26px;height:26px;border-radius:8px;background:#fff1ec;color:var(--acc);font-weight:800;font-size:13px;display:grid;place-items:center}.ex-tag{display:inline-block;font-size:11px;font-weight:700;padding:5px 11px;border-radius:8px;background:#000;color:#fff}.ex-gallery{display:flex;flex-wrap:wrap;gap:8px}.ex-gallery img{width:120px;height:120px;object-fit:cover;border-radius:10px;border:1px solid var(--border);cursor:pointer}.ex-video-card{display:flex;align-items:center;gap:12px;padding:18px;border:1px dashed #cfd5de;border-radius:12px;color:#8b9099;font-size:13px;font-weight:600}.ex-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.ex-overlay.dark{background:#000c;cursor:pointer}.ex-dialog{background:var(--w);border-radius:12px;padding:24px;max-width:400px;width:90%}@media(max-width:640px){.ex-overview{flex-direction:column}.ex-media-card{flex-basis:auto}.ex-media{min-height:200px}}@keyframes mnav-fade-in{0%{opacity:0}to{opacity:1}}@keyframes mnav-slide-up{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){.mnav-backdrop,.mnav-sheet{animation:none}}.ath-progress-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.ath-progress-grid>*{min-width:0}.ath-progress-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.ath-progress-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.ath-progress-measurements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ath-progress-pr{background:#000;color:#fff;border-radius:10px;padding:16px 20px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:12px}.ath-measure-backdrop{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000}.ath-measure-form{width:100%;max-width:400px;max-height:100%;overflow-y:auto;padding:24px;box-sizing:border-box}.ath-measure-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}@media(max-width:1024px){.ath-progress-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.ath-progress-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
