@import "https://fonts.googleapis.com/css2?family=Archivo:wght@400;600;700;800&display=swap";@media print{body *{visibility:hidden}.dsr-page__export,.dsr-page__export *{visibility:visible}.dsr-page__new,.dsr-page__list{display:none!important}.dsr-page__export{width:100%;box-shadow:none;border:none;position:absolute;top:0;left:0}.dsr-page__export-header-actions,.dsr-page__export-header button{display:none!important}.dsr-page__export-week,.dsr-page__export-day{break-inside:avoid}}:root{--color-bg:#f5f3ef;--color-bg-athlete:oklch(94% .006 75);--color-surface:#f5f3ef;--color-surface-subtle:#ede9e1;--color-surface-subtlest:#f2e6dc;--color-border:#1f2a2e29;--color-border-light:#1f2a2e1a;--color-border-input:#1f2a2e38;--color-text:#1f2a2e;--color-text-strong:#1f2a2e;--color-text-secondary:#3a4a4a;--color-text-tertiary:#485757;--color-text-quaternary:#5a6868;--color-accent:#1f7a3e;--color-accent-hover:#175f30;--color-accent-contrast:#f5f3ef;--color-accent-bg:#1f7a3e;--color-accent-fg:#f5f3ef;--color-accent-rgb:31, 122, 62;--color-cat-0-dot:#c9962c;--color-cat-0-bg:#f5e9ce;--color-cat-0-fg:#6e4e12;--color-cat-1-dot:#1f7a3e;--color-cat-1-bg:#dcede1;--color-cat-1-fg:#175f30;--color-cat-2-dot:#8e4227;--color-cat-2-bg:#f2e6dc;--color-cat-2-fg:#6e3520;--color-cat-3-dot:#8e4258;--color-cat-3-bg:#ede3e6;--color-cat-3-fg:#5c2a38;--color-cat-4-dot:#6e7440;--color-cat-4-bg:#e7e8dc;--color-cat-4-fg:#4a4e28;--color-discipline-lead-bg:#dcede1;--color-discipline-lead-fg:#175f30;--color-discipline-boulder-bg:#f5e9ce;--color-discipline-boulder-fg:#6e4e12;--color-discipline-speed-bg:#f2e6dc;--color-discipline-speed-fg:#6e3520;--color-daytype-training-bg:#ede9e1;--color-daytype-training-fg:#1f2a2e;--color-daytype-competition-bg:#1f7a3e;--color-daytype-competition-fg:#f5f3ef;--color-daytype-rest-bg:#ede9e1;--color-daytype-rest-fg:var(--color-text-tertiary);--color-daytype-independent-bg:#ede9e1;--color-daytype-independent-fg:var(--color-text-tertiary);--color-warn-bg:#f2e6dc;--color-warn-border:#8e4227;--color-warn-fg:#8e4227;--color-load-light-bg:#dcede1;--color-load-light-fg:#175f30;--color-load-medium-bg:#f5e9ce;--color-load-medium-fg:#6e4e12;--color-load-high-bg:#f2e6dc;--color-load-high-fg:#8e4227;--color-session-competition-border:oklch(82% .09 85);--radius-sm:8px;--radius-md:10px;--radius-lg:10px;--radius-xl:12px;--radius-pill:999px;--font-family:"Archivo", -apple-system, system-ui, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-family);color:var(--color-text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#14181a;--color-bg-athlete:oklch(20% .006 75);--color-surface:#1a1e1f;--color-surface-subtle:#232827;--color-surface-subtlest:#262220;--color-border:#f0efe924;--color-border-light:#f0efe917;--color-border-input:#f0efe93d;--color-text:#eeeee7;--color-text-strong:#f7f6f1;--color-text-secondary:#c3c9c5;--color-text-tertiary:#93a09b;--color-text-quaternary:#798581;--color-accent:#5ccb86;--color-accent-hover:#7fd9a0;--color-accent-contrast:#05210f;--color-accent-bg:#5ccb86;--color-accent-fg:#05210f;--color-accent-rgb:92, 203, 134;--color-cat-0-dot:#d9a940;--color-cat-0-bg:#3a2c14;--color-cat-0-fg:#f0c987;--color-cat-1-dot:#5ccb86;--color-cat-1-bg:#12301c;--color-cat-1-fg:#8fd8a8;--color-cat-2-dot:#d9805a;--color-cat-2-bg:#3a2318;--color-cat-2-fg:#e8ab8f;--color-cat-3-dot:#d97a99;--color-cat-3-bg:#2f1b21;--color-cat-3-fg:#e2a9b7;--color-cat-4-dot:#a8b063;--color-cat-4-bg:#2a2c1a;--color-cat-4-fg:#c7cc94;--color-discipline-lead-bg:#12301c;--color-discipline-lead-fg:#8fd8a8;--color-discipline-boulder-bg:#3a2c14;--color-discipline-boulder-fg:#f0c987;--color-discipline-speed-bg:#3a2318;--color-discipline-speed-fg:#e8ab8f;--color-daytype-training-bg:#232827;--color-daytype-training-fg:#eeeee7;--color-daytype-competition-bg:#2e9e58;--color-daytype-competition-fg:#05210f;--color-daytype-rest-bg:#232827;--color-daytype-rest-fg:#93a09b;--color-daytype-independent-bg:#232827;--color-daytype-independent-fg:#93a09b;--color-warn-bg:#3a2318;--color-warn-border:#d9805a;--color-warn-fg:#e8ab8f;--color-load-light-bg:#12301c;--color-load-light-fg:#8fd8a8;--color-load-medium-bg:#3a2c14;--color-load-medium-fg:#f0c987;--color-load-high-bg:#3a2318;--color-load-high-fg:#e8ab8f}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#14181a;--color-bg-athlete:oklch(20% .006 75);--color-surface:#1a1e1f;--color-surface-subtle:#232827;--color-surface-subtlest:#262220;--color-border:#f0efe924;--color-border-light:#f0efe917;--color-border-input:#f0efe93d;--color-text:#eeeee7;--color-text-strong:#f7f6f1;--color-text-secondary:#c3c9c5;--color-text-tertiary:#93a09b;--color-text-quaternary:#798581;--color-accent:#5ccb86;--color-accent-hover:#7fd9a0;--color-accent-contrast:#05210f;--color-accent-bg:#5ccb86;--color-accent-fg:#05210f;--color-accent-rgb:92, 203, 134;--color-cat-0-dot:#d9a940;--color-cat-0-bg:#3a2c14;--color-cat-0-fg:#f0c987;--color-cat-1-dot:#5ccb86;--color-cat-1-bg:#12301c;--color-cat-1-fg:#8fd8a8;--color-cat-2-dot:#d9805a;--color-cat-2-bg:#3a2318;--color-cat-2-fg:#e8ab8f;--color-cat-3-dot:#d97a99;--color-cat-3-bg:#2f1b21;--color-cat-3-fg:#e2a9b7;--color-cat-4-dot:#a8b063;--color-cat-4-bg:#2a2c1a;--color-cat-4-fg:#c7cc94;--color-discipline-lead-bg:#12301c;--color-discipline-lead-fg:#8fd8a8;--color-discipline-boulder-bg:#3a2c14;--color-discipline-boulder-fg:#f0c987;--color-discipline-speed-bg:#3a2318;--color-discipline-speed-fg:#e8ab8f;--color-daytype-training-bg:#232827;--color-daytype-training-fg:#eeeee7;--color-daytype-competition-bg:#2e9e58;--color-daytype-competition-fg:#05210f;--color-daytype-rest-bg:#232827;--color-daytype-rest-fg:#93a09b;--color-daytype-independent-bg:#232827;--color-daytype-independent-fg:#93a09b;--color-warn-bg:#3a2318;--color-warn-border:#d9805a;--color-warn-fg:#e8ab8f;--color-load-light-bg:#12301c;--color-load-light-fg:#8fd8a8;--color-load-medium-bg:#3a2c14;--color-load-medium-fg:#f0c987;--color-load-high-bg:#3a2318;--color-load-high-fg:#e8ab8f}*{box-sizing:border-box}body{background:var(--color-bg);font-family:var(--font-family);margin:0}#root{min-height:100svh}h1,h2,h3{font-family:var(--font-family);letter-spacing:-.01em;color:var(--color-text);margin:0;font-weight:800}p{margin:0}input,select,textarea,button{font-family:inherit}.pill{border-radius:var(--radius-md);cursor:pointer;border:1px solid var(--color-border-input);color:var(--color-text);white-space:nowrap;background:0 0;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:800;display:inline-flex}.pill--active{border-color:var(--color-text);background:var(--color-text);color:var(--color-bg)}.pill--accent{background:var(--color-accent-bg);color:var(--color-accent-fg)}.pill--small{padding:4px 9px;font-size:11.5px}.discipline-badge{border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;align-items:center;padding:2px 7px;font-size:10.5px;font-weight:800;display:inline-flex}.discipline-badge--lead{background:var(--color-discipline-lead-bg);color:var(--color-discipline-lead-fg)}.discipline-badge--boulder{background:var(--color-discipline-boulder-bg);color:var(--color-discipline-boulder-fg)}.discipline-badge--speed{background:var(--color-discipline-speed-bg);color:var(--color-discipline-speed-fg)}.availability-dot{vertical-align:middle;background:var(--color-warn-border);border-radius:50%;width:7px;height:7px;margin-left:2px;display:inline-block}.availability-dot--injured{background:var(--color-warn-fg)}.has-tooltip{position:relative}.has-tooltip:after{content:attr(data-tooltip);border-radius:var(--radius-sm);background:var(--color-text);width:max-content;max-width:240px;color:var(--color-surface);text-align:left;white-space:normal;z-index:30;opacity:0;visibility:hidden;pointer-events:none;padding:7px 10px;font-size:11.5px;font-weight:500;line-height:1.4;transition:opacity .12s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.has-tooltip:hover:after,.has-tooltip:focus-visible:after{opacity:1;visibility:visible}.field-label{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px;font-size:10.5px;font-weight:800;display:block}.field-input{box-sizing:border-box;border:1px solid var(--color-border-input);border-radius:var(--radius-md);width:100%;color:var(--color-text);background:var(--color-surface);padding:7px 9px;font-size:13px}.auto-badge{background:var(--color-surface-subtle);color:var(--color-text-quaternary);border-radius:5px;padding:1px 6px;font-size:9px;font-weight:700}.coach-home__kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-tertiary);font-size:11px;font-weight:800}.coach-home__plan-chip{border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;border:1px solid #0000;padding:4px 10px;font-size:11.5px;font-weight:700}.coach-home__plan-chip--draft{border:1px dashed var(--color-border-input);color:var(--color-text-secondary);background:0 0}.coach-home__plan-chip--published{background:var(--color-daytype-training-bg);color:var(--color-daytype-training-fg)}.coach-home__plan-chip--current{border-color:currentColor}.week-home{flex-direction:column;gap:24px;max-width:1440px;margin:0 auto;padding:28px 32px 40px;display:flex}.week-home__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.week-home__head h1{letter-spacing:-.02em;margin:0;font-size:38px;font-weight:800}.week-home__week-nav{align-items:center;gap:2px;margin-left:-10px;display:flex}.week-home__arrow{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none}.week-home__arrow:hover{background:var(--color-surface-subtle)}.week-home__kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);font-size:12px;font-weight:700}.week-home__segmented{border:1px solid var(--color-border);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.week-home__segmented button{min-height:40px;color:var(--color-text);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:0 16px;font-size:13.5px;font-weight:700}.week-home__segmented button.is-active{background:var(--color-text);color:var(--color-bg)}.week-home__empty,.week-home__muted{color:var(--color-text-tertiary);margin:0;font-size:13px}.week-home__top{flex-wrap:wrap;align-items:stretch;gap:20px;display:flex}.week-home__today{box-sizing:border-box;background:var(--color-text);max-width:440px;color:var(--color-bg);border-radius:14px;flex-direction:column;flex:340px;gap:10px;padding:20px;display:flex}.week-home__today-kicker{letter-spacing:.08em;text-transform:uppercase;opacity:.8;font-size:11px;font-weight:700}.week-home__today-main{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.week-home__today-main strong{font-size:30px;font-weight:800}.week-home__today-name{font-size:16px;font-weight:700}.week-home__today-trainer,.week-home__today-meta{opacity:.85;font-size:13.5px}.week-home__today-actions{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.week-home__today-actions button{border:1px solid color-mix(in srgb, var(--color-bg) 40%, transparent);border-radius:var(--radius-md);min-height:44px;color:var(--color-bg);cursor:pointer;background:0 0;padding:0 16px;font-size:13.5px;font-weight:600}.week-home__today-actions button.is-primary{border-color:var(--color-bg);background:var(--color-bg);color:var(--color-text);font-weight:700}.week-home__todos{flex-direction:column;flex:999 520px;gap:10px;min-width:0;display:flex}.week-home__todos h2,.week-home__board-section h2{letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:10px;margin:0;font-size:13px;font-weight:800;display:flex}.week-home__count{border-radius:var(--radius-pill);background:var(--color-text);color:var(--color-bg);letter-spacing:0;padding:1px 8px;font-size:12px}.week-home__all-good{background:var(--color-cat-1-bg);color:var(--color-cat-1-fg);border-radius:12px;margin:0;padding:16px;font-size:14px;font-weight:600}.week-home__todo-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;display:grid}.week-home__todo{border:1px solid var(--color-border);background:var(--color-surface-subtle);border-radius:12px;flex-direction:column;gap:5px;padding:14px 16px;display:flex}.week-home__todo strong{font-size:14.5px;line-height:1.3}.week-home__todo-kind{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);font-size:11px;font-weight:700}.week-home__todo-detail{color:var(--color-text-secondary);font-size:13px;line-height:1.4}.week-home__todo button{border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-bg);min-height:36px;color:var(--color-text);cursor:pointer;align-self:flex-start;margin-top:4px;padding:0 12px;font-size:13px;font-weight:600}.week-home__todo--warn{border-color:var(--color-cat-0-dot);background:var(--color-cat-0-bg)}.week-home__todo--warn .week-home__todo-kind{color:var(--color-cat-0-fg)}.week-home__todo--alert{border-color:var(--color-cat-2-dot);background:var(--color-cat-2-bg)}.week-home__todo--alert .week-home__todo-kind{color:var(--color-cat-2-fg)}.week-home__board-section{flex-direction:column;gap:12px;display:flex}.week-home__unassigned ul{color:var(--color-text-secondary);margin:6px 0 0;padding-left:18px;font-size:13px}.week-home__unassigned-toggle{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:6px 0;font-size:12.5px;text-decoration:underline}.week-board{border:1px solid var(--color-border-light);background:var(--color-surface-subtle);border-radius:14px;overflow-x:auto}.week-board__row{border-top:1px solid var(--color-border-light);grid-template-columns:220px repeat(7,minmax(110px,1fr));min-width:1000px;display:grid}.week-board__row--head{border-top:none}.week-board__corner,.week-board__band-label{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);padding:12px 16px;font-size:11px;font-weight:700}.week-board__band-label{grid-column:1;padding:8px 16px}.week-board__day-head{flex-direction:column;gap:2px;padding:10px;font-size:12px;display:flex}.week-board__day-head b{letter-spacing:.06em;text-transform:uppercase;font-weight:800}.week-board__day-head.is-today{background:var(--color-text);color:var(--color-bg)}.week-board__band{background:var(--color-cat-4-bg);color:var(--color-cat-4-fg);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;grid-row:1;align-self:center;margin:6px 4px;padding:3px 10px;font-size:12px;font-weight:700;overflow:hidden}.week-board__band--competition{background:var(--color-cat-2-bg);color:var(--color-cat-2-fg)}.week-board__band--phase{background:var(--color-cat-1-bg);color:var(--color-cat-1-fg)}.week-board__row-head{flex-direction:column;gap:6px;padding:12px 16px;display:flex}.week-board__name{font-size:14.5px;font-weight:800}.week-board__meta{color:var(--color-text-tertiary);font-size:12.5px}.week-board__row-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.week-board__row-actions button{border:1px solid var(--color-border-input);border-radius:var(--radius-md);min-height:32px;color:var(--color-text);cursor:pointer;background:0 0;padding:0 10px;font-size:12.5px;font-weight:600}.week-board__row-actions button.is-primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-contrast)}.week-board__strip{display:none}.week-board__slot{padding:8px 4px}.week-board__slot.is-today{background:color-mix(in srgb, var(--color-text) 5%, transparent)}.week-board__cell{box-sizing:border-box;text-align:left;border-radius:10px;flex-direction:column;gap:4px;width:100%;min-height:92px;padding:9px 10px;font-size:12px;display:flex}button.week-board__cell{cursor:pointer}.week-board__cell--session{border:1px solid var(--color-border-light);background:var(--color-surface-subtlest);color:var(--color-text)}.week-board__cell--session:hover,.week-board__cell--empty:hover{border-color:var(--color-border-input)}.week-board__cell-top{align-items:baseline;gap:6px;display:flex}.week-board__cell-top b,.week-board__cell--empty b{font-size:15px;font-weight:800}.week-board__cell-top span{color:var(--color-text-secondary);font-size:11.5px;font-weight:700}.week-board__cell-detail{color:var(--color-text-secondary)}.week-board__cell-foot{color:var(--color-text-tertiary);flex-wrap:wrap;align-items:center;gap:6px;margin-top:auto;font-size:11px;font-weight:600;display:flex}.week-board__load{border-radius:var(--radius-pill);background:var(--color-surface-subtle);color:var(--color-text-secondary);padding:1px 7px;font-weight:700}.week-board__load--high{background:var(--color-cat-2-bg);color:var(--color-cat-2-fg)}.week-board__load--medium{background:var(--color-cat-0-bg);color:var(--color-cat-0-fg)}.week-board__load--light{background:var(--color-cat-1-bg);color:var(--color-cat-1-fg)}.week-board__cell--empty{border:1px dashed var(--color-border-input);color:var(--color-text-tertiary);background:0 0}.week-board__cell--empty.is-timed{border-color:var(--color-cat-0-dot);color:var(--color-cat-0-fg)}.week-board__cell--rest,.week-board__cell--plain{color:var(--color-text-tertiary);justify-content:center;align-items:center;font-weight:600}.week-board__cell--rest{background:var(--color-bg)}@media (width<=640px){.week-home{gap:18px;padding:20px 16px 32px}.week-home__head h1{font-size:28px}.week-home__today{max-width:none}.week-board{overflow:visible}.week-board__row{grid-template-columns:1fr;min-width:0}.week-board__row--head,.week-board__row--band,.week-board__slot{display:none}.week-board__strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:4px;display:grid}.week-board__strip-day{background:var(--color-bg);border-radius:6px;height:22px}.week-board__strip-day--session{background:var(--color-cat-2-dot)}.week-board__strip-day--empty{border:1px dashed var(--color-border-input);background:0 0}.week-board__strip-day--independent{background:var(--color-surface-subtlest)}.week-board__strip-day.is-today{box-shadow:0 0 0 2px var(--color-text)}.week-home__board-section>.week-home__muted{display:none}}.week-editor{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);max-width:1290px;box-shadow:none;margin:40px auto;padding:24px}.week-editor__header{border-bottom:1px solid var(--color-border);flex-direction:column;gap:14px;margin-bottom:20px;padding-bottom:16px;display:flex}.week-editor__context{flex-direction:column;gap:4px;display:flex}.week-editor__week-label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary);font-size:11.5px;font-weight:700}.week-editor__title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.week-editor__title{color:var(--color-text-strong);margin:0;font-size:26px;font-weight:700}.week-editor__meta{color:var(--color-text-tertiary);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.week-editor__year-entry{border-radius:var(--radius-pill);background:var(--color-surface-subtle);color:var(--color-text-secondary);padding:2px 8px;font-size:12px;font-weight:600}.week-editor__year-entry--phase{background:var(--color-daytype-training-bg);color:var(--color-daytype-training-fg)}.week-editor__year-entry--competition{background:var(--color-warn-bg);color:var(--color-warn-fg)}.week-editor__live-hint{color:var(--color-text-tertiary);margin:4px 0 0;font-size:12.5px}.week-editor__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.save-status{color:var(--color-text-tertiary);font-size:12px;font-weight:600}.save-status--saved{color:var(--color-accent)}.save-status--error{color:var(--color-warn-fg)}.page-loading{color:var(--color-text-tertiary);padding:40px 24px;font-size:14px}.week-editor__print-for{width:auto;max-width:200px}.week-editor__week-nav{flex:100%;align-items:center;gap:4px;min-width:0;display:flex}.week-editor__header .week-editor__nav-arrow{width:26px;height:26px;color:var(--color-text);opacity:.4;cursor:pointer;background:0 0;border:none;border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.week-editor__header .week-editor__nav-arrow:disabled{opacity:.2;cursor:not-allowed}.week-editor__status{border-radius:var(--radius-pill);letter-spacing:.08em;text-transform:uppercase;border:1px solid #0000;padding:3px 8px;font-size:10.5px;font-weight:800;display:inline-block}.week-editor__status--draft{border-color:var(--color-border-input);color:var(--color-text);background:0 0}.week-editor__status--published{background:var(--color-text);color:var(--color-bg)}.week-editor__status--missing{background:var(--color-accent);color:var(--color-accent-contrast)}.week-editor__status--unassigned{background:var(--color-surface-subtle);color:var(--color-text-tertiary)}.week-editor__publish-warning{color:var(--color-warn-fg);flex-basis:100%;font-size:12px}.week-editor__header button{border-radius:var(--radius-md);border:1px solid var(--color-border-input);cursor:pointer;color:var(--color-text);background:0 0;padding:8px 14px;font-size:12.5px;font-weight:600}.week-editor__header button:hover:not(:disabled){background:var(--color-surface-subtle)}.week-editor__header .week-editor__primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-contrast)}.week-editor__header .week-editor__primary:hover:not(:disabled){background:var(--color-accent);filter:brightness(1.08)}.week-editor__header button:disabled{opacity:.5;cursor:not-allowed}.week-editor__header .week-editor__delete{border:1px solid var(--color-warn-border);color:var(--color-warn-fg);background:0 0;margin-left:auto}.week-editor__header .week-editor__delete:hover:not(:disabled){background:var(--color-warn-bg)}.week-editor__strip-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.week-editor__strip-label{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);font-size:12px;font-weight:700}.week-editor__rest-empty{border-radius:var(--radius-md);border:1px solid var(--color-accent);min-height:36px;color:var(--color-accent);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:700;display:inline-flex}.week-editor__day-scroll{margin:0 -4px;padding:4px;overflow-x:auto}.week-editor__day-row{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;min-width:760px;display:grid}.day-select-card{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-bg);min-width:0;color:var(--color-text);flex-direction:column;display:flex;overflow:hidden}.day-select-card.is-empty{border-style:dashed}.day-select-card--rest,.day-select-card--independent{background:var(--color-surface-subtle);color:var(--color-text-secondary)}.day-select-card.is-active{border-color:var(--color-text);background:var(--color-text);color:var(--color-bg)}.day-select-card__select{color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;gap:3px;padding:10px 12px 8px;font-family:inherit;display:flex}.day-select-card__top{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.day-select-card__label{font-size:14px;font-weight:800}.day-select-card__date{opacity:.8;font-size:12px}.day-select-card__type-name{font-size:13px;font-weight:700}.day-select-card__summary{opacity:.85;min-height:30px;font-size:11.5px}.day-select-card__types{border-top:1px solid var(--color-border-light);grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;padding:4px;display:grid}.day-select-card.is-active .day-select-card__types{border-top-color:color-mix(in srgb, var(--color-bg) 25%, transparent)}.day-select-card__type-btn{height:32px;color:inherit;opacity:.7;cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;display:flex}.day-select-card__type-btn:hover:not(:disabled){opacity:1;background:color-mix(in srgb, currentColor 12%, transparent)}.day-select-card__type-btn.is-on{opacity:1;background:var(--color-accent);color:var(--color-accent-contrast)}.day-select-card__type-btn--rest.is-on,.day-select-card__type-btn--independent.is-on{background:var(--color-text-secondary);color:var(--color-bg)}.day-select-card.is-active .day-select-card__type-btn.is-on{background:var(--color-bg);color:var(--color-text)}.week-editor__type-legend{color:var(--color-text-secondary);flex-wrap:wrap;gap:6px 16px;margin:8px 0 16px;font-size:12px;display:flex}.week-editor__type-legend span{align-items:center;gap:6px;display:inline-flex}.day-type-notice{border-radius:var(--radius-xl);background:var(--color-text);color:var(--color-bg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-bottom:16px;padding:10px 14px;font-size:14px;display:flex}.day-type-notice__actions{gap:8px;display:flex}.day-type-notice button{border:1px solid var(--color-bg);min-height:34px;color:var(--color-bg);cursor:pointer;background:0 0;border-radius:8px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:700}.day-type-notice .day-type-notice__close{border-color:#0000}.day-type-segments{border:1px solid var(--color-border-input);border-radius:var(--radius-md);flex-wrap:wrap;gap:2px;padding:3px;display:flex}.day-type-segments button{min-height:34px;color:var(--color-text);cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:6px;padding:0 10px;font-family:inherit;font-size:13px;font-weight:700;display:inline-flex}.day-type-segments button.is-on{background:var(--color-text);color:var(--color-bg)}.day-type-segments--large{background:var(--color-surface-subtle);border-radius:var(--radius-xl);border:none;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.day-type-segments--large button{flex-direction:column;justify-content:center;gap:3px;min-height:52px;padding:0 4px;font-size:11px}.day-off-panel{border-radius:var(--radius-xl);background:var(--color-surface-subtle);color:var(--color-text-secondary);align-items:flex-start;gap:14px;padding:18px;display:flex}.day-off-panel strong{color:var(--color-text);margin-bottom:4px;font-size:15px;display:block}.day-off-panel p{margin:0;font-size:14px}.day-card{border-top:1px solid var(--color-border);padding-top:18px}.day-card__header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.day-card__header h3{font-size:14px}.day-card__badge{background:var(--color-surface-subtle);color:var(--color-text-quaternary);border-radius:5px;padding:1px 6px;font-size:9px;font-weight:700}.day-card__type-pills,.day-card__discipline-pills{gap:6px;display:flex}.day-card__discipline-pills{margin-bottom:14px}.day-card__fields{flex-wrap:wrap;gap:14px;margin-bottom:16px;display:flex}.day-card__field{flex:1;min-width:140px}.day-card__field-heading{align-items:baseline;gap:6px;display:flex}.day-card__notes{margin-top:16px}.day-card__session-coaches{margin-top:12px}.day-card__session-coaches-toggle{border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-secondary);cursor:pointer;border:none;padding:5px 12px;font-size:11.5px}.day-card__session-coaches h4{color:var(--color-text-tertiary);margin:10px 0 4px;font-size:12.5px;font-weight:700}.day-card textarea.field-input{resize:vertical;min-height:48px}.block-overrides{margin:6px 8px 0}.block-overrides__toggle{border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-secondary);cursor:pointer;border:none;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.block-overrides__count-badge{background:var(--color-accent);min-width:16px;height:16px;color:var(--color-accent-contrast);border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;display:inline-flex}.block-overrides__panel{border-radius:var(--radius-md);background:var(--color-surface-subtle);margin-top:8px;padding:10px}.block-overrides__hint{color:var(--color-text-tertiary);margin:0 0 8px;font-size:11.5px}.block-overrides__pills{flex-wrap:wrap;gap:6px;display:flex}.pill--focused{outline:2px solid var(--color-accent);outline-offset:1px}.block-overrides__form{border-top:1px solid var(--color-border);margin-top:10px;padding-top:10px}.block-overrides__form-fields{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.block-overrides__field--wide{grid-column:span 2}.block-overrides__form-actions{gap:8px;margin-top:8px;display:flex}.block-overrides__form-actions button{border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;border:none;padding:5px 12px;font-size:11.5px;font-weight:600}@media (width<=560px){.block-overrides__form-fields{grid-template-columns:1fr 1fr}}.exercise-combobox{flex:1.6;min-width:100px;position:relative}.exercise-combobox input{box-sizing:border-box;border:1px solid var(--color-border-input);border-radius:var(--radius-sm);width:100%;padding:6px 8px;font-size:12.5px}.exercise-combobox__list{z-index:20;background:var(--color-surface);border:1px solid var(--color-text);border-radius:var(--radius-sm);max-height:260px;box-shadow:none;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto}.exercise-combobox__group{padding:0}.exercise-combobox__group-label{color:var(--color-text-quaternary);text-transform:uppercase;letter-spacing:.3px;padding:4px 10px 2px;font-size:10px;font-weight:700;display:block}.exercise-combobox__group ul{margin:0;padding:0;list-style:none}.exercise-combobox__list .exercise-combobox__option{text-align:left;width:100%;color:var(--color-text);cursor:pointer;background:0 0;border:none;border-radius:0;height:auto;padding:6px 10px;font-size:12.5px;display:block}.exercise-combobox__list .exercise-combobox__option.is-highlighted,.exercise-combobox__list .exercise-combobox__option:hover{background:var(--color-surface-subtle)}@media (width<=900px){.exercise-combobox{flex:auto}}@media (width<=560px){.exercise-combobox{box-sizing:border-box;width:100%;min-height:40px;font-size:16px}}.my-week{background:var(--color-bg-athlete);max-width:480px;min-height:100svh;margin:0 auto;padding:0 16px 60px}.my-week__greeting{padding:20px 2px 0}.my-week__greeting-hello{color:var(--color-text);margin:0;font-size:19px;font-weight:700}.my-week__greeting-sub{color:var(--color-text-tertiary);margin:2px 0 0;font-size:12.5px}.my-week__sticky-bar{z-index:10;background:var(--color-bg-athlete);padding-top:20px;position:sticky;top:0}.my-week__header{justify-content:space-between;align-items:center;padding:2px 2px 18px;display:flex}.my-week__nav-arrow{width:30px;height:30px;color:var(--color-text);opacity:.4;cursor:pointer;background:0 0;border:none;border-radius:15px;justify-content:center;align-items:center;display:flex}.my-week__week-label{color:var(--color-text-secondary);letter-spacing:-.2px;font-size:15px;font-weight:590}.my-week__empty{color:var(--color-text-tertiary);padding:20px 2px;font-size:14px}.my-week__empty p{margin:0}.my-week__days{flex-direction:column;gap:18px;display:flex}.my-week__day{flex-direction:column;gap:10px;scroll-margin-top:130px;display:flex}.my-week__day-header{align-items:baseline;gap:8px;padding:0 2px;display:flex}.my-week__day-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.4px;font-size:13px;font-weight:700}.my-week__day-date{color:var(--color-text-quaternary);font-size:13px}.my-week__today-badge{color:var(--color-accent);background:var(--color-surface-subtle);border-radius:var(--radius-sm);letter-spacing:.2px;padding:2px 8px;font-size:11px;font-weight:700}.my-week__rest-card{background:var(--color-surface-subtlest);border:1px solid var(--color-border);border-radius:var(--radius-xl);color:var(--color-text-tertiary);padding:12px 14px;font-size:14px}.session-card{background:var(--color-surface-subtlest);border-radius:var(--radius-xl);border:1px solid var(--color-border-light);overflow:hidden}.session-card--competition{border-color:var(--color-session-competition-border)}.session-card__summary{cursor:pointer;flex-direction:column;gap:10px;padding:14px 14px 12px;display:flex}.session-card__summary-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.session-card__time{color:var(--color-text-strong);font-size:16px;font-weight:650}.session-card__meta-line{color:var(--color-text-tertiary);margin-top:3px;font-size:13.5px}.session-card__source{color:var(--color-bg);background:var(--color-text);border-radius:var(--radius-pill);white-space:nowrap;margin-left:auto;padding:3px 9px;font-size:11px;font-weight:700}.session-card--individual{border:1px dashed var(--color-accent);background:var(--color-cat-1-bg)}.session-card--individual .session-card__source{background:var(--color-accent);color:var(--color-accent-contrast)}.session-card__wettkampf-badge{color:var(--color-daytype-competition-fg);background:var(--color-daytype-competition-bg);border-radius:var(--radius-sm);letter-spacing:.3px;white-space:nowrap;padding:4px 9px;font-size:11px;font-weight:700}.session-card__chevron{width:22px;height:22px;color:var(--color-text-quaternary);flex-shrink:0;justify-content:center;align-items:center;transition:transform .15s;display:flex}.session-card__chevron.is-expanded{transform:rotate(180deg)}.session-card__tags{flex-wrap:wrap;gap:6px;display:flex}.session-card__load-badge{border-radius:var(--radius-md);padding:4px 9px;font-size:12px;font-weight:700}.session-card__load-badge--light{background:var(--color-load-light-bg);color:var(--color-load-light-fg)}.session-card__load-badge--medium{background:var(--color-load-medium-bg);color:var(--color-load-medium-fg)}.session-card__load-badge--high{background:var(--color-load-high-bg);color:var(--color-load-high-fg)}.session-card__tag{border-radius:var(--radius-md);align-items:center;gap:5px;padding:4px 9px 4px 7px;font-size:12px;font-weight:600;display:flex}.session-card__tag-dot{border-radius:3px;width:6px;height:6px}.session-card__tag--c0{background:var(--color-cat-0-bg);color:var(--color-cat-0-fg)}.session-card__tag--c0 .session-card__tag-dot{background:var(--color-cat-0-dot)}.session-card__tag--c1{background:var(--color-cat-1-bg);color:var(--color-cat-1-fg)}.session-card__tag--c1 .session-card__tag-dot{background:var(--color-cat-1-dot)}.session-card__tag--c2{background:var(--color-cat-2-bg);color:var(--color-cat-2-fg)}.session-card__tag--c2 .session-card__tag-dot{background:var(--color-cat-2-dot)}.session-card__tag--c3{background:var(--color-cat-3-bg);color:var(--color-cat-3-fg)}.session-card__tag--c3 .session-card__tag-dot{background:var(--color-cat-3-dot)}.session-card__tag--c4{background:var(--color-cat-4-bg);color:var(--color-cat-4-fg)}.session-card__tag--c4 .session-card__tag-dot{background:var(--color-cat-4-dot)}.session-card__total-duration{color:var(--color-text-tertiary);font-weight:500}.session-card__feedback-cta{align-items:center;gap:10px;padding:0 14px 12px;font-size:12.5px;display:flex}.session-card__feedback-button{border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:none;padding:7px 14px;font-size:12.5px;font-weight:600}.session-card__feedback-done{color:var(--color-accent);font-weight:600}.session-card__feedback-link{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px;text-decoration:underline}.session-card__upcoming-note{color:var(--color-text-quaternary);font-size:12.5px;font-style:italic}.session-card__no-blocks-hint{color:var(--color-text-quaternary);margin:0;font-size:12.5px;font-style:italic}.session-card__details{border-top:1px solid var(--color-border-light);flex-direction:column;gap:14px;padding:4px 14px 16px;display:flex}.session-card__blocks{flex-direction:column;padding-top:12px;display:flex}.session-card__blocks-heading{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:8px;font-size:12px;font-weight:700}.session-card__block{gap:10px;display:flex}.session-card__block-timeline{flex-direction:column;flex-shrink:0;align-items:center;width:10px;display:flex}.session-card__block-dot{background:var(--color-text-quaternary);border-radius:4px;width:8px;height:8px;margin-top:6px}.session-card__block-dot--c0{background:var(--color-cat-0-dot)}.session-card__block-dot--c1{background:var(--color-cat-1-dot)}.session-card__block-dot--c2{background:var(--color-cat-2-dot)}.session-card__block-dot--c3{background:var(--color-cat-3-dot)}.session-card__block-dot--c4{background:var(--color-cat-4-dot)}.session-card__block-line{background:var(--color-border-light);flex:1;width:1.5px}.session-card__block-body{flex:1;padding-bottom:12px}.session-card__block-category{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.3px;font-size:10.5px;font-weight:700}.session-card__block-name-row{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.session-card__block-name{color:var(--color-text-strong);font-size:14.5px;font-weight:650}.session-card__block-description{color:var(--color-text-secondary);margin:3px 0 0;font-size:12.5px;line-height:1.4}.session-card__block-dose{color:var(--color-text-secondary);margin:5px 0 0;font-size:13px;font-weight:600}.session-card__notes{flex-direction:column;gap:10px;display:flex}.session-card__note p{color:var(--color-text-secondary);margin:0;font-size:13px}.session-card__note-label{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:2px;font-size:10.5px;font-weight:700;display:block}.session-card__no-blocks{color:var(--color-text-tertiary);padding-top:12px;font-size:13.5px}.feedback-form{border-top:1px solid var(--color-border-light);flex-direction:column;gap:14px;padding-top:12px;display:flex}.feedback-form__section{flex-direction:column;gap:6px;display:flex}.feedback-form__status-pills{gap:6px;display:flex}.feedback-form__status-pill{text-align:center;border-radius:var(--radius-lg);cursor:pointer;background:var(--color-surface-subtle);color:var(--color-text-secondary);border:1px solid var(--color-border-input);flex:1;padding:9px 0;font-size:13.5px;font-weight:600}.feedback-form__status-pill.is-active{background:var(--color-accent);color:var(--color-accent-contrast);border-color:var(--color-accent)}.feedback-form__rpe-header{justify-content:space-between;align-items:center;display:flex}.feedback-form__rpe-value{color:var(--color-accent);font-size:14px;font-weight:700}.feedback-form__rpe-slider{width:100%;accent-color:var(--color-accent)}.feedback-form__rpe-scale{color:var(--color-text-quaternary);justify-content:space-between;font-size:10.5px;display:flex}.feedback-form__warn-toggle{border-radius:var(--radius-lg);cursor:pointer;background:var(--color-surface-subtle);border:1px solid var(--color-border-input);color:var(--color-text-secondary);text-align:left;align-items:center;gap:8px;padding:10px 12px;font-size:13.5px;font-weight:600;display:flex}.feedback-form__warn-toggle.is-active{background:var(--color-warn-bg);border-color:var(--color-warn-border);color:var(--color-warn-fg)}.feedback-form__warn-icon{background:var(--color-border);width:20px;height:20px;color:var(--color-text-tertiary);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:flex}.feedback-form__warn-toggle.is-active .feedback-form__warn-icon{background:var(--color-warn-border);color:#fff}.feedback-form__submit{border-radius:var(--radius-lg);cursor:pointer;background:var(--color-accent);color:var(--color-accent-contrast);border:none;padding:12px 0;font-size:14.5px;font-weight:650}.feedback-form__submit.is-saved{background:var(--color-daytype-training-bg);color:var(--color-daytype-training-fg)}.feedback-form__submit:disabled{opacity:.6;cursor:not-allowed}.group-switcher{border-bottom:1px solid var(--color-border);flex-direction:column;gap:8px;margin-bottom:16px;padding-bottom:14px;display:flex}.group-switcher__label{color:var(--color-text-tertiary);text-transform:uppercase;font-size:11px;font-weight:700}.group-switcher__head{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.group-switcher__legend{color:var(--color-text-tertiary);gap:12px;font-size:11.5px;display:flex}.group-switcher__sublabel{color:var(--color-text-tertiary);font-size:11px;font-weight:600}.group-switcher__pills{flex-wrap:wrap;gap:6px;display:flex}.week-grid-scroll{overflow-x:auto}.week-grid{border:1px solid var(--color-border);border-radius:4px;width:max-content;min-width:100%;overflow:hidden}.week-grid__row{display:flex}.week-grid__label-cell{background:var(--color-surface-subtle);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);width:130px;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.2px;flex-shrink:0;align-items:center;padding:5px 8px;font-size:11px;font-weight:700;display:flex}.week-grid__label-cell--header{background:var(--color-surface-subtlest)}.week-grid__label-cell--c0{background:var(--color-cat-0-bg);color:var(--color-cat-0-fg)}.week-grid__label-cell--c1{background:var(--color-cat-1-bg);color:var(--color-cat-1-fg)}.week-grid__label-cell--c2{background:var(--color-cat-2-bg);color:var(--color-cat-2-fg)}.week-grid__label-cell--c3{background:var(--color-cat-3-bg);color:var(--color-cat-3-fg)}.week-grid__label-cell--c4{background:var(--color-cat-4-bg);color:var(--color-cat-4-fg)}.week-grid__cell{background:var(--color-surface);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);flex:1;align-items:center;min-width:92px;min-height:30px;padding:0;display:flex}.week-grid__cell--header{background:var(--color-surface-subtlest);flex-direction:column;align-items:flex-start;gap:2px;padding:6px 8px}.week-grid__day-label{color:var(--color-text-strong);font-size:12px;font-weight:700}.week-grid__day-date{color:var(--color-text-tertiary);font-size:10.5px}.week-grid__day-type{border-radius:5px;padding:1px 6px;font-size:9px;font-weight:700}.week-grid__day-type--training{background:var(--color-daytype-training-bg);color:var(--color-daytype-training-fg)}.week-grid__day-type--competition{background:var(--color-daytype-competition-bg);color:var(--color-daytype-competition-fg)}.week-grid__day-type--rest,.week-grid__day-type--independent{background:var(--color-daytype-rest-bg);color:var(--color-daytype-rest-fg)}.week-grid__cell-content{width:100%;padding:4px 8px}.week-grid__cell-meta{color:var(--color-text-quaternary);font-size:9.5px;display:block}.week-grid__input{box-sizing:border-box;width:100%;color:var(--color-text);text-overflow:ellipsis;background:0 0;border:none;outline:none;padding:6px 8px;font-size:11.5px;overflow:hidden}.week-grid__input--time{min-width:76px}.week-grid__cell-content .week-grid__input{padding:0}.week-grid__input:focus{background:var(--color-surface-subtle);outline:2px solid var(--color-accent);outline-offset:-1px}.week-grid__placeholder{color:var(--color-text-quaternary);padding:6px 8px;font-size:11.5px}.week-grid__add-block{width:100%;height:100%;min-height:30px;color:var(--color-text-quaternary);cursor:pointer;text-align:left;background:0 0;border:none;padding:6px 8px;font-size:15px;font-weight:700}.week-grid__add-block:hover,.week-grid__add-block:focus-visible{background:var(--color-surface-subtle);color:var(--color-accent)}.coach-nav{border-bottom:1px solid var(--color-border);background:var(--color-surface)}.coach-nav__inner{flex-wrap:wrap;align-items:center;gap:10px 28px;max-width:1376px;min-height:60px;margin:0 auto;padding:0 28px;display:flex}.coach-nav__brand{color:var(--color-text);white-space:nowrap;align-items:center;gap:8px;font-size:15px;font-weight:800;text-decoration:none;display:inline-flex}.coach-nav__brand-mark{display:block}.coach-nav__brand-dot{color:var(--color-accent)}.coach-nav__links{flex-wrap:wrap;flex:1;align-self:stretch;align-items:stretch;gap:4px 20px;display:flex}.coach-nav__link{color:var(--color-text-tertiary);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;padding:0;font-size:13px;font-weight:800;text-decoration:none;display:flex}.coach-nav__link:hover{color:var(--color-text)}.coach-nav__link.is-active{color:var(--color-text);border-bottom-color:var(--color-accent)}.coach-nav__actions{align-items:center;gap:8px;margin-left:auto;display:flex}.coach-nav__today{border-radius:var(--radius-md);color:var(--color-accent-contrast);background:var(--color-accent);cursor:pointer;white-space:nowrap;border:none;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:800}.coach-nav__today:hover:not(:disabled){background:var(--color-accent-hover)}.coach-nav__today:disabled{opacity:.5;cursor:default}.theme-toggle{border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-surface);width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:flex}.theme-toggle:hover{background:var(--color-surface-subtle);color:var(--color-text)}.coach-nav__burger{border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;gap:4px;width:32px;height:32px;margin-left:auto;padding:0;display:none}.coach-nav__burger span{background:var(--color-text);border-radius:1px;height:2px;display:block}@media (width<=767px){.coach-nav__burger{display:flex}.coach-nav__inner{padding:10px 20px}.coach-nav__links{flex-direction:column;align-items:stretch;gap:2px;width:100%;display:none}.coach-nav__links.is-open{display:flex}.coach-nav__link{border-bottom:none;border-left:2px solid #0000;padding:10px 4px}.coach-nav__link.is-active{border-left-color:var(--color-accent);padding-left:10px}.coach-nav__actions{order:-1;margin-left:0}.coach-nav__link--account{margin-left:0}}.coach-nav__link--account{margin-left:auto}.year-page{--year-phase-bg:var(--color-cat-1-bg);--year-phase-fg:var(--color-cat-1-fg);--year-phase-dot:var(--color-cat-1-dot);--year-competition-bg:var(--color-cat-2-dot);--year-competition-fg:var(--color-surface-subtle);--year-competition-dot:var(--color-cat-2-dot);--year-training_camp-bg:var(--color-cat-0-bg);--year-training_camp-fg:var(--color-cat-0-fg);--year-training_camp-dot:var(--color-cat-0-dot);--year-vacation-bg:var(--color-cat-4-bg);--year-vacation-fg:var(--color-cat-4-fg);--year-vacation-dot:var(--color-cat-4-dot);flex-direction:column;gap:20px;max-width:1440px;margin:0 auto;padding:28px 32px 40px;display:flex}.year-page__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.year-page__kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);font-size:12px;font-weight:700}.year-page__title{align-items:center;gap:4px;margin-left:-10px;display:flex}.year-page__title h1{letter-spacing:-.02em;margin:0;font-size:38px;font-weight:800}.year-page__arrow{border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none}.year-page__arrow:hover{background:var(--color-surface-subtle)}.year-page__controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.year-page__type{border:1px solid var(--color-border-input);border-radius:var(--radius-pill);min-height:40px;color:var(--color-text);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.year-page__type.is-off{opacity:.45}.year-page__swatch{border-radius:3px;flex-shrink:0;width:12px;height:12px;display:inline-block}.year-page__type--phase .year-page__swatch,.year-page__swatch--phase{background:var(--year-phase-dot)}.year-page__type--competition .year-page__swatch,.year-page__swatch--competition{background:var(--year-competition-dot)}.year-page__type--training_camp .year-page__swatch,.year-page__swatch--training_camp{background:var(--year-training_camp-dot)}.year-page__type--vacation .year-page__swatch,.year-page__swatch--vacation{background:var(--year-vacation-dot)}.year-page__primary,.year-page__secondary{border-radius:var(--radius-md);cursor:pointer;min-height:44px;padding:0 18px;font-size:13.5px;font-weight:700}.year-page__primary{border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-accent-contrast)}.year-page__secondary{border:1px solid var(--color-border-input);color:var(--color-text);background:0 0;font-weight:600}.year-page__muted{color:var(--color-text-tertiary);margin:0;font-size:13.5px}.year-board{border:1px solid var(--color-border-light);background:var(--color-surface-subtle);border-radius:14px;overflow-x:auto}.year-board__inner{min-width:1240px;position:relative}.year-board__head,.year-board__lane{display:grid}.year-board__head{border-bottom:1px solid var(--color-border-light)}.year-board__corner{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);grid-row:1/span 2;align-self:end;padding:10px 16px;font-size:11px;font-weight:700}.year-board__month{border-left:1px solid var(--color-border-light);letter-spacing:.06em;text-transform:uppercase;grid-row:1;padding:8px 6px 2px;font-size:12px;font-weight:800}.year-board__week{text-align:center;color:var(--color-text-tertiary);padding:2px 0 8px;font-size:9.5px;font-weight:600}.year-board__week.is-today{color:var(--color-accent);font-weight:800}.year-board__lane{border-bottom:1px solid var(--color-border-light);grid-auto-rows:30px;row-gap:4px;padding:10px 0}.year-board__lane:last-child{border-bottom:none}.year-board__lane-head{flex-direction:column;grid-column:1;align-items:flex-start;gap:3px;padding:2px 16px;display:flex}.year-board__lane-name{font-size:14px;font-weight:800}.year-board__lane-meta{color:var(--color-text-tertiary);font-size:12px}.year-board__lane-add{color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:2px 0;font-size:12px;font-weight:600}.year-board__phase-bg{background:color-mix(in srgb, var(--year-phase-dot) 8%, transparent);border-left:2px solid color-mix(in srgb, var(--year-phase-dot) 30%, transparent)}.year-board__entry{z-index:1;text-align:left;white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;min-width:0;height:30px;padding:0 8px;font-size:12px;font-weight:700;display:flex;position:relative;overflow:visible}.year-board__entry span{overflow:visible}.year-board__entry.is-clipped,.year-board__entry.is-clipped span{text-overflow:ellipsis;overflow:hidden}.year-board__entry.is-selected{box-shadow:0 0 0 2px var(--color-text)}.year-board__entry--phase{background:var(--year-phase-bg);border-color:var(--year-phase-dot);color:var(--year-phase-fg)}.year-board__entry--competition{background:var(--year-competition-bg);color:var(--year-competition-fg)}.year-board__entry--training_camp{background:var(--year-training_camp-bg);border-color:var(--year-training_camp-dot);color:var(--year-training_camp-fg)}.year-board__entry--vacation{background:var(--year-vacation-bg);border-color:var(--year-vacation-dot);color:var(--year-vacation-fg)}.year-board__plans-label{color:var(--color-text-tertiary);grid-column:1;align-self:center;padding:0 16px;font-size:11px;font-weight:600}.year-board__plan{box-sizing:border-box;background:var(--color-bg);cursor:pointer;border:1px solid #0000;border-radius:3px;align-self:center;height:12px;margin:0 1px;padding:0;display:inline-block}.year-board__plan--published{background:var(--color-text);border-color:var(--color-text)}.year-board__plan--draft{border-color:var(--color-text);background:0 0}.year-board__plan:hover{outline:2px solid var(--color-accent)}.year-board__today{background:var(--color-accent);opacity:.8;z-index:2;pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.year-board__today-label{z-index:2;background:var(--color-accent);color:var(--color-accent-contrast);pointer-events:none;border-radius:4px;padding:1px 6px;font-size:10.5px;font-weight:700;position:absolute;bottom:4px}.year-page__legend{color:var(--color-text-tertiary);flex-wrap:wrap;gap:18px;font-size:12px;display:flex}.year-page__legend span{align-items:center;gap:6px;display:inline-flex}.year-page__legend .year-board__plan{cursor:default;width:14px;height:10px}.year-page__bottom{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.year-page__detail{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-surface-subtle);border-radius:14px;flex-direction:column;flex:340px;gap:12px;max-width:460px;padding:20px;display:flex}.year-page__detail h2{margin:0;font-size:24px;font-weight:800}.year-page__badge{border-radius:var(--radius-pill);align-self:flex-start;padding:3px 10px;font-size:12px;font-weight:700}.year-page__badge--phase{background:var(--year-phase-bg);color:var(--year-phase-fg)}.year-page__badge--competition{background:var(--color-cat-2-bg);color:var(--color-cat-2-fg)}.year-page__badge--training_camp{background:var(--year-training_camp-bg);color:var(--year-training_camp-fg)}.year-page__badge--vacation{background:var(--year-vacation-bg);color:var(--year-vacation-fg)}.year-page__facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.year-page__facts div{border-radius:var(--radius-md);background:var(--color-bg);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.year-page__facts span{color:var(--color-text-tertiary);font-size:11px}.year-page__note{border-radius:10px;margin:0;padding:12px 14px;font-size:13px;line-height:1.45}.year-page__note--alert{background:var(--color-cat-2-bg);color:var(--color-cat-2-fg)}.year-page__note--warn{background:var(--color-cat-0-bg);color:var(--color-cat-0-fg)}.year-page__actions{flex-wrap:wrap;gap:8px;display:flex}.year-page__actions .year-page__primary{flex:1}.year-page__upcoming,.year-page__hints{flex-direction:column;flex:300px;gap:10px;display:flex}.year-page__upcoming h2,.year-page__hints h2,.year-list__month h2{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:13px;font-weight:800}.year-page__upcoming ul,.year-list ul{border:1px solid var(--color-border-light);background:var(--color-surface-subtle);border-radius:12px;margin:0;padding:0;list-style:none}.year-page__upcoming li+li,.year-list li+li{border-top:1px solid var(--color-border-light)}.year-page__upcoming button,.year-list li button{width:100%;min-height:60px;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;padding:8px 16px;display:flex}.year-page__upcoming-text{color:var(--color-text-tertiary);flex-direction:column;flex:1;gap:2px;font-size:12.5px;display:flex}.year-page__upcoming-text b{color:var(--color-text);font-size:14px}.year-page__countdown{white-space:nowrap;color:var(--color-text-secondary);font-size:12.5px;font-weight:700}.year-page__hint{border:1px solid var(--color-border);background:var(--color-surface-subtle);color:var(--color-text);text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px;font-size:13px;display:flex}.year-page__hint b{font-size:14px}.year-page__hint-kind{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);font-size:11px;font-weight:700}.year-page__hint--alert{border-color:var(--color-cat-2-dot);background:var(--color-cat-2-bg)}.year-page__hint--alert .year-page__hint-kind{color:var(--color-cat-2-fg)}.year-page__hint--warn{border-color:var(--color-cat-0-dot);background:var(--color-cat-0-bg)}.year-page__hint--warn .year-page__hint-kind{color:var(--color-cat-0-fg)}.year-list{flex-direction:column;gap:18px;max-width:720px;display:flex}.year-list__month{flex-direction:column;gap:8px;display:flex}.year-list__date{width:48px;color:var(--color-text-tertiary);flex-direction:column;align-items:center;font-size:11px;font-weight:700;display:flex}.year-list__date b{color:var(--color-text);font-size:17px}.year-list__past{min-height:40px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:13px;font-weight:600;text-decoration:underline}.year-entry{flex-direction:column;gap:16px;display:flex}.year-entry__fieldset{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.year-entry__types{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.year-entry__type{border:1px solid var(--color-border-input);min-height:48px;color:var(--color-text);cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:10px;padding:0 14px;font-size:14px;font-weight:600;display:flex}.year-entry__type.is-active{border-width:2px;border-color:var(--color-text);font-weight:700}.year-entry__swatch{border-radius:3px;width:12px;height:12px}.year-entry__type--phase .year-entry__swatch{background:var(--color-cat-1-dot)}.year-entry__type--competition .year-entry__swatch{background:var(--color-cat-2-dot)}.year-entry__type--training_camp .year-entry__swatch{background:var(--color-cat-0-dot)}.year-entry__type--vacation .year-entry__swatch{background:var(--color-cat-4-dot)}.year-entry__field{flex-direction:column;gap:6px;display:flex}.year-entry__dates{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.year-entry__hint{color:var(--color-text-tertiary);margin:-8px 0 0;font-size:12.5px}.year-entry__chips{flex-wrap:wrap;gap:6px;display:flex}.year-entry__conflict{border:1px solid var(--color-cat-2-dot);background:var(--color-cat-2-bg);color:var(--color-cat-2-fg);border-radius:10px;flex-direction:column;gap:4px;padding:12px 14px;font-size:12.5px;display:flex}.year-entry__affected{color:var(--color-warn-fg);margin:0;font-size:12.5px}.year-entry__footer{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.year-entry__spacer{flex:1}.year-entry__error{color:var(--color-warn-fg);flex-basis:100%;margin:0;font-size:12.5px}.year-entry__delete{min-height:44px;color:var(--color-warn-fg);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:600;text-decoration:underline}.year-entry__cancel,.year-entry__save{border-radius:var(--radius-md);cursor:pointer;min-height:44px;padding:0 18px;font-size:13.5px;font-weight:700}.year-entry__cancel{border:1px solid var(--color-border-input);color:var(--color-text);background:0 0}.year-entry__save{background:var(--color-accent);color:var(--color-accent-contrast);border:none}.year-entry__save:disabled{opacity:.5;cursor:not-allowed}@media (width<=640px){.year-page{gap:16px;padding:20px 16px 32px}.year-page__title h1{font-size:28px}.year-page__detail{max-width:none}}.week-grid__auto-badge{background:var(--color-surface-subtle);color:var(--color-text-quaternary);border-radius:5px;padding:1px 5px;font-size:8.5px;font-weight:700}.groups-page{flex-wrap:wrap;align-items:flex-start;gap:32px;max-width:1440px;margin:0 auto;padding:32px;display:flex}.groups-page__rail{flex-direction:column;flex:210px;gap:2px;max-width:240px;display:flex}.groups-page__rail-label{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);padding:16px 12px 6px;font-size:11px;font-weight:700}.groups-page__rail-label:first-child{padding-top:0}.groups-page__rail-item{border-radius:var(--radius-md);min-height:44px;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:0 12px;font-size:14px;font-weight:600;display:flex}.groups-page__rail-item:hover{background:var(--color-surface-subtle)}.groups-page__rail-item.is-active{background:var(--color-text);color:var(--color-bg)}.groups-page__rail-name{flex:1}.groups-page__rail-count{opacity:.75;font-size:12px}.groups-page__rail-actions{border-top:1px solid var(--color-border-light);flex-direction:column;gap:8px;margin-top:16px;padding-top:16px;display:flex}.groups-page__dashed{border:1px dashed var(--color-border-input);border-radius:var(--radius-md);min-height:44px;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;padding:0 12px;font-size:13.5px;font-weight:600}.groups-page__link{min-height:44px;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;padding:0 12px;font-size:13.5px;font-weight:600}.groups-page__link:hover{color:var(--color-accent)}.groups-page__new-group{flex-direction:column;gap:6px;display:flex}.groups-page__new-group button{border-radius:var(--radius-md);background:var(--color-accent);min-height:40px;color:var(--color-accent-contrast);cursor:pointer;border:none;font-size:13px;font-weight:700}.groups-page__new-group button:disabled{opacity:.5;cursor:not-allowed}.groups-page__main{flex:999 640px;min-width:0}.groups-page__section{flex-direction:column;gap:18px;display:flex}.groups-page__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.groups-page__head h1{letter-spacing:-.02em;margin:2px 0 0;font-size:36px;font-weight:800}.groups-page__kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);font-size:11px;font-weight:700}.groups-page__title-row,.groups-page__athlete-title{align-items:center;gap:8px;display:flex}.groups-page__athlete-title{align-items:flex-end}.groups-page__rename{min-height:48px;font-size:22px;font-weight:700}.groups-page__icon-button{border-radius:var(--radius-md);width:44px;height:44px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.groups-page__icon-button:hover{background:var(--color-surface-subtle)}.groups-page__meta{color:var(--color-text-tertiary);margin:4px 0 0;font-size:13.5px;line-height:1.45}.groups-page__actions{flex-wrap:wrap;gap:8px;display:flex}.groups-page__primary,.groups-page__secondary{border-radius:var(--radius-md);cursor:pointer;min-height:44px;padding:0 16px;font-size:13.5px;font-weight:700}.groups-page__primary{border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-accent-contrast)}.groups-page__primary:hover{background:var(--color-accent-hover)}.groups-page__secondary{border:1px solid var(--color-border-input);color:var(--color-text);background:0 0;font-weight:600}.groups-page__secondary:hover{background:var(--color-surface-subtle)}.groups-page__notice{background:var(--color-surface-subtle);color:var(--color-text-secondary);border-radius:10px;margin:0;padding:14px 16px;font-size:13.5px;line-height:1.45}.groups-page__tabs{border-bottom:1px solid var(--color-border-light);flex-wrap:wrap;gap:4px;display:flex}.groups-page__tab{min-height:44px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:0 16px;font-size:14px;font-weight:700}.groups-page__tab.is-active{border-bottom-color:var(--color-accent);color:var(--color-text)}.groups-page__tab-body{flex-direction:column;gap:14px;display:flex}.groups-page__empty,.groups-page__empty-box{color:var(--color-text-tertiary);font-size:14px}.groups-page__empty-box{border:1px dashed var(--color-border-input);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:40px 24px;display:flex}.groups-page__empty-box strong{color:var(--color-text);font-size:15px}.groups-page__consent-alert{border:1px solid var(--color-cat-0-dot);background:var(--color-cat-0-bg);color:var(--color-cat-0-fg);border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;display:flex}.groups-page__consent-alert div{flex-direction:column;flex:280px;gap:2px;font-size:13px;display:flex}.groups-page__consent-alert strong{font-size:14px}.groups-page__consent-alert button{border-radius:var(--radius-md);min-height:40px;color:inherit;cursor:pointer;background:0 0;border:1px solid;padding:0 14px;font-size:13px;font-weight:700}.groups-page__roster{border:1px solid var(--color-border-light);background:var(--color-surface-subtle);border-radius:12px;overflow:hidden}.groups-page__roster-head,.groups-page__roster-row{grid-template-columns:minmax(0,2fr) minmax(0,.8fr) minmax(0,2fr) minmax(0,1.2fr);align-items:center;gap:8px;padding:0 16px;display:grid}.groups-page__roster-head{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);padding-top:12px;padding-bottom:10px;font-size:11px;font-weight:700}.groups-page__roster-row{border:none;border-top:1px solid var(--color-border-light);width:100%;min-height:58px;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;font-size:14px}.groups-page__roster-row:hover{background:var(--color-bg)}.groups-page__roster-name{flex-direction:column;align-items:flex-start;gap:3px;padding:8px 0;font-weight:700;display:flex}.groups-page__also{border:1px solid var(--color-border-input);border-radius:var(--radius-pill);color:var(--color-text-secondary);padding:1px 8px;font-size:11.5px;font-weight:600}.groups-page__roster-year,.groups-page__muted{color:var(--color-text-tertiary);font-size:13px}.groups-page__availability{flex-direction:column;align-items:flex-start;gap:3px;padding:8px 0;display:inline-flex}.groups-page__availability-badge{border-radius:var(--radius-pill);background:var(--color-cat-0-bg);color:var(--color-cat-0-fg);padding:2px 8px;font-size:12px;font-weight:700}.groups-page__availability-badge--injured{background:var(--color-cat-2-bg);color:var(--color-cat-2-fg)}.groups-page__consent{color:var(--color-cat-0-fg);align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.groups-page__consent:before{content:"";background:var(--color-cat-0-dot);border-radius:50%;width:8px;height:8px}.groups-page__consent.is-ok{color:var(--color-accent)}.groups-page__consent.is-ok:before{background:var(--color-accent)}.groups-page__consent.is-loading:before{display:none}.groups-page__danger{border-top:1px solid var(--color-border-light);flex-direction:column;gap:6px;padding-top:14px;display:flex}.groups-page__confirm{flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;display:flex}.groups-page__danger-link,.groups-page__neutral-link{min-height:36px;color:var(--color-warn-fg);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:13px;font-weight:600;text-decoration:underline}.groups-page__neutral-link{color:var(--color-text-secondary)}.groups-page__candidates{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.groups-page__candidates li{border-bottom:1px solid var(--color-border-light);align-items:center;gap:12px;min-height:56px;display:flex}.groups-page__candidates li>span{flex-direction:column;flex:1;gap:2px;display:flex}.groups-page__candidates button,.athlete-groups__add button{border:1px solid var(--color-border-input);border-radius:var(--radius-md);min-height:40px;color:var(--color-text);cursor:pointer;background:0 0;padding:0 14px;font-size:13px;font-weight:600}.groups-page__candidates button:disabled,.athlete-groups__add button:disabled{opacity:.5;cursor:not-allowed}.groups-page__tiles{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.groups-page__tile{background:var(--color-surface-subtle);border-radius:10px;flex-direction:column;gap:4px;padding:14px;display:flex}.groups-page__tile span{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);font-size:11px;font-weight:700}.groups-page__tile strong{font-size:16px}.groups-page__tile small{color:var(--color-text-secondary);font-size:12.5px}.groups-page__tile.is-warn{background:var(--color-cat-2-bg);color:var(--color-cat-2-fg)}.groups-page__tile.is-alert{background:var(--color-cat-0-bg);color:var(--color-cat-0-fg)}.groups-page__tile.is-warn span,.groups-page__tile.is-warn small,.groups-page__tile.is-alert span,.groups-page__tile.is-alert small{color:inherit}.groups-page__detail-section{border-top:1px solid var(--color-border-light);flex-direction:column;gap:10px;padding-top:18px;display:flex}.groups-page__detail-section h2,.groups-page__detail-section h3{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:13px;font-weight:800}.athlete-groups{flex-direction:column;gap:10px;max-width:640px;display:flex}.athlete-groups__list{border:1px solid var(--color-border-light);background:var(--color-surface-subtle);border-radius:12px;margin:0;padding:0;list-style:none}.athlete-groups__row{border-top:1px solid var(--color-border-light);align-items:center;gap:10px;min-height:56px;padding:0 8px 0 16px;display:flex}.athlete-groups__row:first-child{border-top:none}.athlete-groups__name{flex:1;font-size:14px;font-weight:700}.athlete-groups__primary{border-radius:var(--radius-pill);background:var(--color-text);color:var(--color-bg);padding:3px 10px;font-size:11.5px;font-weight:700}.athlete-groups__make-primary{min-height:40px;color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0 10px;font-size:13px;font-weight:600}.athlete-groups__remove{border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-warn-fg);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.athlete-groups__remove:hover{background:var(--color-bg)}.athlete-groups__add{flex-wrap:wrap;gap:8px;display:flex}.athlete-groups__add .field-input{flex:220px;min-height:44px}.athlete-groups__empty,.athlete-groups__hint{color:var(--color-text-tertiary);margin:0;font-size:12.5px}.athlete-profile-form__groups{border:none;flex-direction:column;gap:8px;margin:0 0 14px;padding:0;display:flex}.athlete-profile-form__chips{flex-wrap:wrap;gap:6px;display:flex}.pill--person{border:1px solid var(--color-border-input);background:0 0}.pill--person.pill--active{border-color:var(--color-text);background:var(--color-text);color:var(--color-bg)}@media (width<=640px){.groups-page{gap:16px;padding:20px 16px}.groups-page__rail{flex-direction:row;flex:100%;align-items:center;gap:6px;max-width:none;padding-bottom:4px;overflow-x:auto}.groups-page__rail-label{display:none}.groups-page__rail-item{border:1px solid var(--color-border-input);border-radius:var(--radius-pill);flex-shrink:0;min-height:36px;font-size:13px}.groups-page__rail-actions{border:none;flex-direction:row;flex-shrink:0;margin:0;padding:0}.groups-page__rail-actions>*{white-space:nowrap;flex-shrink:0}.groups-page__head h1{font-size:28px}.groups-page__actions{width:100%}.groups-page__actions>button{flex:auto}.groups-page__roster-head{display:none}.groups-page__roster-row{grid-template-columns:minmax(0,1fr) auto}.groups-page__roster-year{display:none}.groups-page__roster-row>span:nth-child(3){grid-column:1}.groups-page__roster-row>.groups-page__consent{grid-area:1/2}}.exercise-library{flex-direction:column;gap:20px;max-width:1440px;margin:0 auto;padding:32px;display:flex}.exercise-library__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.exercise-library h1{letter-spacing:-.02em;margin:0 0 4px;font-size:36px;font-weight:800}.exercise-library__hint{color:var(--color-text-tertiary);margin:0;font-size:14px}.exercise-library__header-actions{flex-wrap:wrap;gap:8px;display:flex}.exercise-library__primary,.exercise-library__secondary{border-radius:var(--radius-md);cursor:pointer;min-height:44px;padding:0 18px;font-size:13.5px;font-weight:700}.exercise-library__primary{border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-accent-contrast)}.exercise-library__primary:hover:not(:disabled){background:var(--color-accent-hover)}.exercise-library__secondary{border:1px solid var(--color-border-input);color:var(--color-text);background:0 0;font-weight:600}.exercise-library__secondary:hover:not(:disabled){background:var(--color-surface-subtle)}.exercise-library__primary:disabled,.exercise-library__secondary:disabled{opacity:.5;cursor:not-allowed}.exercise-library__toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.exercise-library__search-input{flex:280px;max-width:440px;min-height:44px}.exercise-library__segmented{border:1px solid var(--color-border);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.exercise-library__segmented button{min-height:36px;color:var(--color-text);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:0 14px;font-size:13px;font-weight:600}.exercise-library__segmented button.is-active{background:var(--color-text);color:var(--color-bg)}.exercise-library__toggle{border:1px solid var(--color-border-input);border-radius:var(--radius-md);min-height:44px;color:var(--color-text);cursor:pointer;background:0 0;padding:0 14px;font-size:13px;font-weight:600}.exercise-library__toggle.is-active{border-color:var(--color-cat-2-dot);background:var(--color-cat-2-bg);color:var(--color-cat-2-fg)}.exercise-library__count{color:var(--color-text-tertiary);margin-left:auto;font-size:13px}.exercise-library__layout{flex-wrap:wrap;align-items:flex-start;gap:28px;display:flex}.exercise-library__rail{flex-direction:column;flex:190px;gap:2px;max-width:220px;display:flex}.exercise-library__rail-item{border-radius:var(--radius-md);min-height:40px;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:0 12px;font-size:14px;font-weight:600;display:flex}.exercise-library__rail-item:hover{background:var(--color-surface-subtle)}.exercise-library__rail-item.is-active{background:var(--color-text);color:var(--color-bg)}.exercise-library__rail-label{flex:1}.exercise-library__rail-count{opacity:.75;font-size:12px}.exercise-library__dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block}.exercise-library__groups{flex-direction:column;flex:999 480px;gap:28px;min-width:0;display:flex}.exercise-library__group{flex-direction:column;gap:12px;display:flex}.exercise-library__group-title{letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:10px;margin:0;font-size:13px;font-weight:800;display:flex}.exercise-library__group-count{letter-spacing:0;color:var(--color-text-tertiary);font-weight:600}.exercise-library__cards{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;display:grid}.exercise-card{border:1px solid var(--color-border-light);background:var(--color-surface-subtle);min-height:110px;color:var(--color-text);text-align:left;cursor:pointer;border-radius:10px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.exercise-card:hover{border-color:var(--color-border-input)}.exercise-card.is-selected{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.exercise-card.is-archived{opacity:.7}.exercise-card__top{align-items:flex-start;gap:8px;display:flex}.exercise-card__name{flex:1;font-size:15px;font-weight:700;line-height:1.3}.exercise-card__archived{border-radius:var(--radius-pill);border:1px solid var(--color-border-input);color:var(--color-text-tertiary);padding:2px 7px;font-size:10.5px;font-weight:700}.exercise-card__description{-webkit-line-clamp:2;color:var(--color-text-secondary);-webkit-box-orient:vertical;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}.exercise-library__missing{color:var(--color-cat-2-fg);font-size:12.5px;font-weight:600}.exercise-card__meta{color:var(--color-text-tertiary);flex-wrap:wrap;align-items:flex-end;gap:4px 10px;margin-top:auto;font-size:12px;display:flex}.exercise-card__dose{color:var(--color-text);font-weight:700}.exercise-card__usage{white-space:nowrap;margin-left:auto}.exercise-library__empty{border:1px dashed var(--color-border-input);text-align:center;color:var(--color-text-tertiary);border-radius:12px;padding:40px 20px;font-size:14px}.exercise-detail{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-surface-subtle);border-radius:14px;flex-direction:column;flex:320px;gap:20px;max-width:380px;padding:22px;display:flex}.exercise-detail--empty p{color:var(--color-text-tertiary);margin:0;font-size:13.5px}.exercise-detail__head{flex-direction:column;gap:8px;display:flex}.exercise-detail__category{border-radius:var(--radius-pill);align-self:flex-start;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.exercise-detail__name{margin:0;font-size:22px;font-weight:800;line-height:1.2}.exercise-detail__usage{color:var(--color-text-tertiary);font-size:13px}.exercise-detail__section{flex-direction:column;gap:8px;display:flex}.exercise-detail__label{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);font-size:11px;font-weight:700}.exercise-detail__stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.exercise-detail__stats div{border-radius:var(--radius-md);background:var(--color-bg);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.exercise-detail__stats span{color:var(--color-text-tertiary);font-size:11px}.exercise-detail__stats b{font-size:16px}.exercise-library__athlete-preview{background:var(--color-bg-athlete);border-radius:10px;gap:12px;padding:14px;display:flex}.exercise-library__athlete-preview .exercise-library__dot{margin-top:5px}.exercise-library__athlete-preview p{color:var(--color-text-secondary);margin:4px 0 0;font-size:13px;line-height:1.45}.exercise-library__athlete-preview-name{font-size:15px;font-weight:700}.exercise-library__athlete-preview .exercise-library__athlete-preview-dose{font-weight:700}.exercise-detail__actions{gap:8px;display:flex}.exercise-detail__actions .exercise-library__primary{flex:1}.exercise-detail__danger{border-top:1px solid var(--color-border-light);flex-direction:column;gap:6px;padding-top:14px;display:flex}.exercise-detail__confirm{gap:16px;display:flex}.exercise-detail__link{min-height:32px;color:var(--color-warn-fg);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:13px;font-weight:600;text-decoration:underline}.exercise-detail__link--neutral{color:var(--color-text-secondary)}.exercise-detail__danger-hint{color:var(--color-text-tertiary);margin:0;font-size:12px;line-height:1.4}.exercise-editor{flex-direction:column;gap:24px;display:flex}.exercise-editor__section{flex-direction:column;gap:12px;display:flex}.exercise-editor__heading{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:12.5px;font-weight:800}.exercise-editor__field{flex-direction:column;gap:6px;display:flex}.exercise-editor__fieldset{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.exercise-editor__hint{color:var(--color-text-tertiary);margin:0;font-size:12.5px}.exercise-editor__chips{flex-wrap:wrap;gap:8px;display:flex}.exercise-editor__category{border:1px solid var(--color-border-input);border-radius:var(--radius-pill);min-height:40px;color:var(--color-text);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.exercise-editor__category.is-active{font-weight:700}.exercise-editor__preview{flex-direction:column;gap:6px;display:flex}.exercise-editor__grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.exercise-editor__footer{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.exercise-editor__error{color:var(--color-warn-fg);flex-basis:100%;margin:0;font-size:12.5px}.exercise-editor__cancel,.exercise-editor__save{border-radius:var(--radius-md);cursor:pointer;min-height:44px;padding:0 18px;font-size:13.5px;font-weight:700}.exercise-editor__cancel{border:1px solid var(--color-border-input);color:var(--color-text);background:0 0}.exercise-editor__save{background:var(--color-accent);color:var(--color-accent-contrast);border:none}.exercise-editor__save:disabled{opacity:.5;cursor:not-allowed}.exercise-library__climbing-toggle{border:1px solid var(--color-border-input);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;background:0 0;align-self:flex-start;align-items:center;gap:6px;padding:8px 12px;font-size:12.5px;font-weight:700;display:inline-flex}.exercise-library__climbing-toggle-chevron{border-bottom:1.5px solid;border-right:1.5px solid;width:7px;height:7px;transition:transform .15s;transform:rotate(-45deg)}.exercise-library__climbing-toggle.is-open .exercise-library__climbing-toggle-chevron{transform:rotate(45deg)}.category-manager{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.category-manager__row{border-radius:var(--radius-md);background:var(--color-surface-subtle);align-items:center;gap:8px;min-height:52px;padding:0 6px;display:flex}.category-manager__move{flex-direction:column;display:flex}.category-manager__move button,.category-manager__delete{border-radius:var(--radius-sm);width:32px;height:22px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.category-manager__delete{width:40px;height:40px}.category-manager__move button:hover:not(:disabled),.category-manager__delete:hover:not(:disabled){background:var(--color-bg)}.category-manager__move button:disabled,.category-manager__delete:disabled{opacity:.35;cursor:not-allowed}.category-manager__name{background:0 0;border-color:#0000;flex:1;min-width:0;font-weight:600}.category-manager__name:focus{border-color:var(--color-border-input);background:var(--color-bg)}.category-manager__count{color:var(--color-text-tertiary);white-space:nowrap;font-size:12.5px}.category-manager__confirm{gap:6px;display:flex}.category-manager__confirm button{border:1px solid var(--color-border-input);border-radius:var(--radius-md);min-height:36px;color:var(--color-text);cursor:pointer;background:0 0;padding:0 10px;font-size:12px;font-weight:600}.category-manager__confirm .category-manager__confirm-yes{border-color:var(--color-warn-border);color:var(--color-warn-fg)}.category-manager__new{gap:8px;margin-top:8px;display:flex}.category-manager__new .field-input{flex:1;min-height:44px}.category-manager__new button{border-radius:var(--radius-md);background:var(--color-accent);min-height:44px;color:var(--color-accent-contrast);cursor:pointer;border:none;padding:0 16px;font-size:13px;font-weight:700}.category-manager__new button:disabled{opacity:.5;cursor:not-allowed}@media (width<=640px){.exercise-library{gap:14px;padding:20px 16px}.exercise-library h1{font-size:28px}.exercise-library__header-actions{width:100%}.exercise-library__header-actions button{flex:1}.exercise-library__search-input{max-width:none}.exercise-library__count{margin-left:0}.exercise-library__layout{gap:16px}.exercise-library__rail{flex-direction:row;flex:100%;gap:6px;max-width:none;padding-bottom:4px;overflow-x:auto}.exercise-library__rail-item{border:1px solid var(--color-border-input);border-radius:var(--radius-pill);flex-shrink:0;min-height:36px;font-size:13px}.exercise-library__rail-label{flex:none}.exercise-library__cards{grid-template-columns:1fr}}.template-editor{flex-direction:column;gap:8px;display:flex}.template-editor__row{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);grid-template-columns:140px 1fr 1fr;align-items:center;gap:10px;padding:8px 10px;display:grid}.template-editor__weekday{color:var(--color-text-secondary);align-items:center;gap:8px;font-size:12.5px;font-weight:600;display:flex}.template-editor__save{border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:none;align-self:flex-start;margin-top:10px;padding:9px 16px;font-size:13px;font-weight:600}.template-editor__save.is-saved{background:var(--color-daytype-training-bg);color:var(--color-daytype-training-fg)}.template-editor__save:disabled{opacity:.6;cursor:not-allowed}.coach-handover{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);margin-bottom:20px;padding:14px 16px}.coach-handover h3{margin-bottom:8px;font-size:13px}.coach-handover__current{color:var(--color-text-secondary);margin-bottom:8px;font-size:12.5px}.coach-handover__upcoming{flex-direction:column;gap:4px;margin:0 0 12px;padding:0;list-style:none;display:flex}.coach-handover__upcoming li{border-radius:var(--radius-sm);background:var(--color-accent-bg);color:var(--color-accent-fg);padding:6px 10px;font-size:12px}.coach-handover__form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.coach-handover__field{min-width:160px}.coach-handover__form button[type=submit]{border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:none;padding:8px 14px;font-size:12.5px;font-weight:600}.coach-handover__form button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.coach-handover [role=alert]{color:var(--color-warn-fg);margin-top:8px;font-size:12px}.coach-team-management{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);margin-bottom:24px;padding:14px 16px}.coach-team-management__list{flex-direction:column;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.coach-team-management__list li{border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:8px 12px;font-size:12.5px;display:flex}.coach-team-management__email{color:var(--color-text-quaternary);font-size:11.5px}.coach-team-management__form{flex-wrap:wrap;gap:8px;display:flex}.coach-team-management__form input{flex:1;min-width:160px}.coach-team-management__form button{border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:none;padding:8px 14px;font-size:12.5px;font-weight:600}.coach-team-management__form button:disabled{opacity:.5;cursor:not-allowed}.coach-team-management__success{margin-top:8px;font-size:12px}.coach-management{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);margin-bottom:24px;padding:14px 16px}.coach-management h3{margin-bottom:8px;font-size:13px}.coach-management__empty{color:var(--color-text-quaternary);margin-bottom:10px;font-size:12px}.coach-management__list{flex-direction:column;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.coach-management__list li{border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:8px 12px;font-size:12.5px;display:flex}.coach-management__list li button{border-radius:var(--radius-sm);background:var(--color-warn-bg);color:var(--color-warn-fg);cursor:pointer;border:none;padding:4px 10px;font-size:11px;font-weight:600}.coach-management__add{gap:8px;display:flex}.coach-management__add select{flex:1}.coach-management__add button{border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:none;padding:8px 14px;font-size:12.5px;font-weight:600}.coach-management__add button:disabled{opacity:.5;cursor:not-allowed}.coach-management [role=alert]{color:var(--color-warn-fg);margin-top:8px;font-size:12px}.coach-management__reset-password-toggle{border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-secondary);cursor:pointer;border:none;margin-top:12px;padding:5px 12px;font-size:11.5px}.coach-management__reset-password-form{border-top:1px solid var(--color-border-light);flex-direction:column;gap:8px;max-width:360px;margin-top:12px;padding-top:12px;display:flex}.coach-management__reset-password-form [role=alert]{margin-top:0}.coach-management__reset-password-hint{border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-secondary);margin:0;padding:8px 10px;font-size:12px}.coach-management__reset-password-row{flex-wrap:wrap;gap:6px;display:flex}.coach-management__reset-password-row input{flex:140px;min-width:0}.coach-management__reset-password-row button{border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;border:none;padding:7px 10px;font-size:11.5px}.coach-management__reset-password-row button:disabled{opacity:.5;cursor:default}.coach-management__reset-password-done{color:var(--color-text-secondary);font-size:12px}.coach-management__reset-password-actions{gap:8px;display:flex}.coach-management__reset-password-actions button[type=submit]{border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:none;padding:7px 14px;font-size:12.5px;font-weight:600}.coach-management__reset-password-actions button[type=button]{border-radius:var(--radius-md);background:var(--color-surface-subtle);color:var(--color-text-secondary);cursor:pointer;border:none;padding:7px 14px;font-size:12.5px}.feedback-form__consent-hint{border-radius:var(--radius-lg);background:var(--color-surface-subtle);color:var(--color-text-tertiary);padding:10px 12px;font-size:12px;line-height:1.4}.feedback-form__consent-hint a{color:var(--color-accent);font-weight:600}.consent-management{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);margin-bottom:24px;padding:14px 16px}.consent-management h3{margin-bottom:8px;font-size:13px}.consent-management h4{margin-bottom:10px;font-size:12.5px}.consent-management__list{flex-direction:column;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.consent-management__empty{color:var(--color-text-quaternary);font-size:12px}.consent-management__list li{border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.consent-management__list li.is-revoked{opacity:.7}.consent-management__row-main{justify-content:space-between;align-items:center;font-size:12.5px;font-weight:600;display:flex}.consent-management__status{background:var(--color-daytype-training-bg);color:var(--color-daytype-training-fg);border-radius:5px;padding:1px 8px;font-size:10.5px;font-weight:700}.is-revoked .consent-management__status{background:var(--color-daytype-rest-bg);color:var(--color-daytype-rest-fg)}.consent-management__row-meta{color:var(--color-text-tertiary);font-size:11px}.consent-management__row-actions{gap:8px;display:flex}.consent-management__row-actions button{border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-secondary);cursor:pointer;border:none;padding:4px 10px;font-size:11px}.consent-management__form{border-top:1px solid var(--color-border);padding-top:14px}.consent-management__type-pills{gap:6px;margin-bottom:12px;display:flex}.consent-management__form-fields{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px;display:grid}.consent-management__form [role=alert]{color:var(--color-warn-fg);margin-bottom:10px;font-size:12px}.consent-management__form button[type=submit]{border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:none;padding:9px 16px;font-size:13px;font-weight:600}.consent-management__form button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.athlete-history__search{flex-direction:column;gap:4px;max-width:320px;margin-bottom:14px;display:flex}.athlete-history__empty{color:var(--color-text-quaternary);font-size:12.5px}.athlete-history__entries{flex-direction:column;gap:8px;max-height:420px;display:flex;overflow-y:auto}.athlete-history__entry{border-radius:var(--radius-sm);background:var(--color-surface-subtle);padding:8px 10px}.athlete-history__entry-date{color:var(--color-text-tertiary);margin-bottom:4px;font-size:11px;font-weight:700}.athlete-history__entry-blocks{flex-direction:column;gap:2px;display:flex}.athlete-history__block{align-items:baseline;gap:6px;font-size:12.5px;display:flex}.athlete-history__block-category{color:var(--color-text-quaternary);text-transform:uppercase;letter-spacing:.3px;flex-shrink:0;font-size:10.5px;font-weight:700}.athlete-history__feedback{color:var(--color-text-tertiary);gap:8px;margin-top:6px;font-size:11.5px;display:flex}.athlete-history__feedback-pain{color:var(--color-warn-fg);font-weight:600}.athlete-history__feedback-note{font-style:italic}.dsr-page{max-width:1320px;margin:0 auto;padding:28px 28px 64px}.dsr-page__header h1{font-size:36px;line-height:1}.dsr-page__hint{color:var(--color-text-tertiary);max-width:62ch;margin-top:8px;font-size:13.5px}.dsr-page h3{letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border);margin-bottom:4px;padding-bottom:6px;font-size:11px;font-weight:800}.dsr-page__new h3{color:var(--color-text-tertiary)}.dsr-page h4{margin:14px 0 6px;font-size:12.5px}.dsr-page__layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:28px;margin-top:24px;display:grid}.dsr-page__list{margin-top:28px}.dsr-page__list:first-child{margin-top:0}.dsr-page__new,.dsr-page__export{border:1px solid var(--color-border);padding:18px}.dsr-page__export{margin-top:24px}.dsr-page__new-fields{flex-direction:column;gap:12px;margin:12px 0 14px;display:flex}.dsr-page__type-pills{grid-template-columns:1fr 1fr;gap:6px;margin-top:4px;display:grid}.dsr-page__new [role=alert]{color:var(--color-warn-fg);margin-bottom:10px;font-size:12px}.dsr-page__new>button{border-radius:var(--radius-md);background:var(--color-accent);width:100%;color:var(--color-accent-contrast);cursor:pointer;border:none;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:800}.dsr-page__new>button:hover:not(:disabled){background:var(--color-accent-hover)}.dsr-page__empty{color:var(--color-text-quaternary);font-size:12.5px}.dsr-page__item{border-bottom:1px solid var(--color-border-light);padding:16px 0}.dsr-page__item.is-resolved{opacity:.75}.dsr-page__item-main{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:4px;display:flex}.dsr-page__item-type{color:var(--color-text-strong);font-size:13px;font-weight:700}.dsr-page__item-athlete{color:var(--color-text-secondary);font-size:12.5px}.dsr-page__age-badge{background:var(--color-daytype-training-bg);color:var(--color-daytype-training-fg);border-radius:5px;padding:2px 8px;font-size:10.5px;font-weight:700}.dsr-page__age-badge.is-due-soon{background:var(--color-daytype-competition-bg);color:var(--color-daytype-competition-fg)}.dsr-page__age-badge.is-overdue{background:var(--color-warn-bg);color:var(--color-warn-fg)}.dsr-page__item-meta{color:var(--color-text-tertiary);margin-bottom:8px;font-size:11px}.dsr-page__item-actions{gap:8px;display:flex}.dsr-page__item-actions button{border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-secondary);cursor:pointer;border:none;padding:5px 12px;font-size:11.5px}.dsr-page__resolve-form{border-top:1px solid var(--color-border-light);flex-direction:column;gap:10px;margin-top:12px;padding-top:12px;display:flex}.dsr-page__erasure-warning{border-radius:var(--radius-md);background:var(--color-warn-bg);color:var(--color-warn-fg);padding:10px 12px;font-size:12px}.dsr-page__erasure-confirm{color:var(--color-warn-fg);align-items:center;gap:8px;font-size:12.5px;display:flex}.dsr-page__resolve-hint{border-radius:var(--radius-md);background:var(--color-surface-subtle);color:var(--color-text-secondary);padding:10px 12px;font-size:12px}.dsr-page__resolve-rectification{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px}.dsr-page__resolve-rectification .dsr-page__resolve-hint{background:0 0;margin-bottom:10px;padding:0}.dsr-page__resolve-form [role=alert]{color:var(--color-warn-fg);font-size:12px}.dsr-page__resolve-actions{gap:8px;display:flex}.dsr-page__resolve-actions button:first-child{border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:none;padding:8px 14px;font-size:12.5px;font-weight:600}.dsr-page__resolve-actions button:first-child:disabled{opacity:.5;cursor:not-allowed}.dsr-page__resolve-actions button:last-child{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;padding:8px 14px;font-size:12.5px}.dsr-page__export-header{justify-content:space-between;align-items:center;display:flex}.dsr-page__export-header-actions{gap:8px;display:flex}.dsr-page__export-header button{border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-secondary);cursor:pointer;border:none;padding:5px 12px;font-size:11.5px}.dsr-page__export-body ul{color:var(--color-text-secondary);margin:0 0 10px;padding-left:18px;font-size:12px}.dsr-page__export-body li{margin-bottom:4px}.dsr-page__export-athlete{border-bottom:1px solid var(--color-border);margin-bottom:14px;padding-bottom:14px}.dsr-page__export-athlete h4{margin-bottom:8px;font-size:15px}.dsr-page__export-meta{flex-wrap:wrap;gap:4px 24px;margin:0;display:flex}.dsr-page__export-meta>div{flex-direction:column;gap:2px;display:flex}.dsr-page__export-meta dt{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.3px;font-size:10.5px;font-weight:700}.dsr-page__export-meta dd{color:var(--color-text);margin:0;font-size:12.5px}.dsr-page__export-section{margin-bottom:18px}.dsr-page__export-section h4{margin-bottom:8px;font-size:13.5px}.dsr-page__export-week{border:1px solid var(--color-border);border-radius:var(--radius-md);break-inside:avoid;margin-bottom:12px;padding:10px 12px}.dsr-page__export-week-header{margin-bottom:8px;font-size:12.5px;font-weight:700}.dsr-page__export-day{border-top:1px solid var(--color-border-light);padding:6px 0}.dsr-page__export-day:first-of-type{border-top:none;padding-top:0}.dsr-page__export-day-header{color:var(--color-text-secondary);font-size:12px}.dsr-page__export-day-note{color:var(--color-text-tertiary);margin:4px 0 0;font-size:11.5px;font-style:italic}.dsr-page__export-blocks{margin-top:4px!important;margin-bottom:0!important}.athlete-profile-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:none;margin-bottom:20px;padding:20px}.athlete-profile-form__fields{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px;display:grid}.athlete-profile-form__field--wide{grid-column:span 2}.athlete-profile-form [role=alert]{color:var(--color-warn-fg);margin-bottom:10px;font-size:12px}.athlete-profile-form button[type=submit]{border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:none;padding:9px 16px;font-size:13px;font-weight:600}.account-page{max-width:500px;margin:40px auto;padding:0 20px 60px}.account-page__header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.account-page__header h2{font-size:20px}.account-page__back{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;padding:6px 14px;font-size:12.5px;font-weight:600}.account-page__back:hover{background:var(--color-surface-subtle);color:var(--color-text)}.account-settings{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:none;flex-direction:column;gap:14px;padding:20px;display:flex}.account-settings__readonly{color:var(--color-text-secondary);font-size:13px}.account-settings__saved{color:var(--color-text-secondary);font-size:12.5px}.account-settings [role=alert]{color:var(--color-warn-fg);font-size:12px}.language-switcher{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:none;flex-direction:column;gap:8px;margin-top:16px;padding:20px;display:flex}.change-password{margin-top:16px}.change-password__title{margin:0;font-size:14px}.language-switcher__options{gap:6px;display:flex}.account-settings button[type=submit]{border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:none;align-self:flex-start;padding:9px 16px;font-size:13px;font-weight:600}.account-page__connect{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:24px;padding:16px}.account-page__connect h3{margin:0 0 4px;font-size:14px}.account-page__connect p{color:var(--color-text-tertiary);margin:0 0 8px;font-size:13px}.account-page__connect a{color:var(--color-accent);font-size:13px;font-weight:600}.account-page__logout{border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-warn-fg);cursor:pointer;align-self:flex-start;margin-top:16px;padding:9px 16px;font-size:13px;font-weight:600}.my-week__toolbar{justify-content:space-between;padding:12px 16px 0;display:flex}.my-week__toolbar-right{align-items:center;gap:8px;display:flex}.my-week__nearest-plan{border:1px solid var(--color-accent);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-accent);cursor:pointer;margin-top:12px;padding:8px 14px;font-size:13px;font-weight:600}.my-week__nearest-plan:hover{background:var(--color-accent);color:var(--color-accent-contrast)}.my-week__today-button{border:1px solid var(--color-accent);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-accent);cursor:pointer;padding:6px 14px;font-size:12.5px;font-weight:600}.my-week__today-button:hover{background:var(--color-accent);color:var(--color-accent-contrast)}.my-week__account-link{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;padding:6px 14px;font-size:12.5px;font-weight:600}.my-week__account-link:hover{background:var(--color-surface-subtle);color:var(--color-text)}.auth-page{max-width:420px;margin:64px auto;padding:0 20px 60px}.auth-page--wide{max-width:640px;margin-top:40px}.auth-page__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:none;flex-direction:column;gap:16px;padding:24px 22px;display:flex}.auth-page__card h1{margin:0;font-size:20px}.auth-page__brand{color:var(--color-text);align-items:center;gap:12px;margin:0;font-size:22px;font-weight:800;display:flex}.auth-page__brand-dot{color:var(--color-accent)}.auth-page__card form{flex-direction:column;gap:14px;display:flex}.auth-page__field{flex-direction:column;display:flex}.auth-page__card [role=alert]{color:var(--color-warn-fg);font-size:12px}.auth-page__card button[type=submit]{border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:none;align-self:flex-start;padding:9px 16px;font-size:13px;font-weight:600}.auth-page__links{flex-direction:column;gap:6px;font-size:13px;display:flex}.auth-page__links a{color:var(--color-accent);font-weight:600}.login-page{box-sizing:border-box;grid-template-columns:minmax(0,1fr) minmax(0,420px);align-items:center;gap:64px;max-width:1040px;min-height:100svh;margin:0 auto;padding:48px 24px;display:grid}.login-page__intro{flex-direction:column;align-items:flex-start;gap:14px;display:flex}.login-page__logo{width:88px;height:88px;display:block}.login-page__brand{letter-spacing:-.02em;color:var(--color-text);margin:4px 0 0;font-size:44px;font-weight:800;line-height:1}.login-page__brand-dot{color:var(--color-accent)}.login-page__claim{color:var(--color-text-secondary);margin:0;font-size:18px;line-height:1.4}.login-page__points{color:var(--color-text-secondary);flex-direction:column;gap:10px;margin:14px 0 0;padding:0;font-size:15px;list-style:none;display:flex}.login-page__points li{align-items:center;gap:10px;display:flex}.login-page__points li:before{content:"";background:var(--color-accent);border-radius:50%;flex:none;width:8px;height:8px}.login-page__card{gap:22px;padding:32px 28px 24px}.login-page__card h1{font-size:24px}.login-page__hint{color:var(--color-text-tertiary);margin:6px 0 0;font-size:14px}.login-page__card form{gap:16px}.login-page__card .field-input{min-height:48px;padding:0 14px;font-size:15px}.login-page__label-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.login-page__label-row a{color:var(--color-accent);font-size:12.5px;font-weight:600}.login-page__card button[type=submit]{width:100%;min-height:48px;margin-top:4px;font-size:15px;font-weight:700}.login-page__error{background:var(--color-warn-bg);color:var(--color-warn-fg);border-radius:12px;margin:0;padding:10px 14px;font-size:13.5px}.login-page__footer{border-top:1px solid var(--color-border-light);text-align:center;margin:0;padding-top:14px;font-size:12.5px}.login-page__footer a{color:var(--color-text-tertiary)}@media (width<=860px){.login-page{grid-template-columns:minmax(0,1fr);align-content:center;gap:28px;max-width:460px;padding:32px 16px}.login-page__intro{text-align:center;align-items:center;gap:10px}.login-page__logo{width:64px;height:64px}.login-page__brand{font-size:34px}.login-page__claim{font-size:16px}.login-page__points{display:none}.login-page__card{padding:26px 20px 20px}}.privacy-notice__todo{border:1px solid var(--color-warn-border);border-radius:var(--radius-md);background:var(--color-warn-bg);color:var(--color-warn-fg);padding:10px 12px;font-size:12.5px;font-weight:600}.privacy-notice section{margin-bottom:20px}.privacy-notice h2{margin-bottom:6px;font-size:15px}.consent-management__privacy-link{color:var(--color-text-tertiary);margin:-6px 0 4px;font-size:11.5px}.day-print-page{max-width:760px;margin:0 auto;padding:24px 20px 60px}.day-print-page__toolbar{gap:8px;margin-bottom:20px;display:flex}.day-print-page__toolbar button{background:var(--glass-button-bg);background-image:var(--glass-grain);min-height:40px;box-shadow:var(--glass-button-shadow);color:var(--color-text);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:8px;padding:0 18px;font-family:inherit;font-size:13.5px;font-weight:700;display:inline-flex}.day-print-page__toolbar button:hover:not(:disabled){background-color:var(--glass-button-hover)}.day-print-page__toolbar button.is-primary{background-color:var(--color-accent);box-shadow:none;color:var(--color-accent-contrast)}.day-print-page__toolbar button.is-primary:hover:not(:disabled){background-color:var(--color-accent-hover)}.day-print-page__toolbar button:disabled{opacity:.5;cursor:default}.day-print-sheet{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:32px 36px}.day-print-sheet__header{border-bottom:2px solid var(--color-text-strong);margin-bottom:20px;padding-bottom:14px}.day-print-sheet__title{color:var(--color-text-strong);font-size:26px;font-weight:800}.day-print-sheet__date-row{color:var(--color-text-secondary);align-items:center;gap:10px;margin-top:6px;font-size:15px;display:flex}.day-print-sheet__day-type{text-transform:uppercase;letter-spacing:.3px;border:1px solid var(--color-text-strong);color:var(--color-text-strong);border-radius:5px;padding:2px 7px;font-size:11px;font-weight:700}.day-print-sheet__meta{flex-wrap:wrap;gap:10px 28px;margin-bottom:16px;display:flex}.day-print-sheet__meta-item{color:var(--color-text);flex-direction:column;gap:1px;font-size:14px;display:flex}.day-print-sheet__meta-label{text-transform:uppercase;letter-spacing:.3px;color:var(--color-text-tertiary);font-size:10px;font-weight:700}.day-print-sheet__other-notes{color:var(--color-text-secondary);margin:0 0 18px;font-style:italic}.day-print-sheet__blocks{flex-direction:column;margin-top:8px;display:flex}.day-print-sheet__empty{color:var(--color-text-quaternary)}.day-print-sheet__block{break-inside:avoid;gap:12px;display:flex}.day-print-sheet__block-marker{flex-direction:column;flex-shrink:0;align-items:center;width:12px;display:flex}.day-print-sheet__block-dot{border:2px solid var(--color-text-quaternary);background:var(--color-surface);border-radius:50%;flex-shrink:0;width:11px;height:11px;margin-top:3px}.day-print-sheet__block-dot--c0{border-color:var(--color-cat-0-dot)}.day-print-sheet__block-dot--c1{border-color:var(--color-cat-1-dot)}.day-print-sheet__block-dot--c2{border-color:var(--color-cat-2-dot)}.day-print-sheet__block-dot--c3{border-color:var(--color-cat-3-dot)}.day-print-sheet__block-dot--c4{border-color:var(--color-cat-4-dot)}.day-print-sheet__block-line{background:var(--color-border-light);flex:1;width:2px;margin:2px 0}.day-print-sheet__block-body{flex:1;min-width:0;padding-bottom:18px}.day-print-sheet__block-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.day-print-sheet__block-time{font-variant-numeric:tabular-nums;color:var(--color-text-tertiary);font-size:13px}.day-print-sheet__block-name{color:var(--color-text-strong);font-size:16px;font-weight:700}.day-print-sheet__block-category{text-transform:uppercase;letter-spacing:.2px;color:var(--color-text-tertiary);font-size:11px;font-weight:700}.day-print-sheet__block-stats{color:var(--color-text-secondary);margin-top:2px;font-size:12.5px}.day-print-sheet__block-description{color:var(--color-text-secondary);margin:4px 0 0;font-size:13.5px;line-height:1.45}.day-print-sheet__notes{border-top:1px solid var(--color-border);margin-top:12px;padding-top:14px}.day-print-sheet__notes p{margin:3px 0 0}.day-print-sheet__footer{color:var(--color-text-quaternary);margin-top:28px;font-size:10.5px}@media print{@page{margin:16mm}body *{visibility:hidden}.day-print-sheet,.day-print-sheet *{visibility:visible}.day-print-page{max-width:none;margin:0;padding:0}.day-print-sheet{border:none;width:100%;padding:0;position:absolute;top:0;left:0}}.coach-nav__ai-chat{border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);background:var(--color-surface);cursor:pointer;white-space:nowrap;margin-right:8px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:800}.coach-nav__ai-chat:hover{background:var(--color-surface-subtle)}.coach-nav__ai-chat.is-active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.ai-chat__backdrop{z-index:90;background:#1f2a2e59;position:fixed;inset:0}.ai-chat__panel{background:var(--color-surface);border-left:1px solid var(--color-border);z-index:91;flex-direction:column;width:min(420px,100vw);display:flex;position:fixed;top:0;bottom:0;right:0}.ai-chat__header{border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.ai-chat__title{color:var(--color-text);margin:0;font-size:15px;font-weight:800}.ai-chat__header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.ai-chat__icon-button{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;padding:6px 10px;font-family:inherit;font-size:12px;font-weight:700}.ai-chat__icon-button:hover{background:var(--color-surface-subtle)}.ai-chat__transcript{flex-direction:column;flex:1;gap:12px;padding:16px 20px;display:flex;overflow-y:auto}.ai-chat__notice,.ai-chat__empty{color:var(--color-text-tertiary);margin:0;font-size:13px}.ai-chat__message{border-radius:var(--radius-md);white-space:pre-wrap;max-width:90%;padding:10px 14px;font-size:14px;line-height:1.5}.ai-chat__message--user{background:var(--color-accent);color:var(--color-accent-contrast);align-self:flex-end}.ai-chat__message--assistant{border:1px solid var(--color-border-light);background:var(--color-surface-subtle);color:var(--color-text);align-self:flex-start}.ai-chat__tool-status{color:var(--color-text-tertiary);margin:0;font-size:12px;font-style:italic}.ai-chat__tool-card{border:1px solid var(--color-warn-border);border-radius:var(--radius-md);background:var(--color-warn-bg);flex-direction:column;gap:6px;padding:12px 14px;display:flex}.ai-chat__tool-card-title{color:var(--color-warn-fg);margin:0;font-size:12px;font-weight:700}.ai-chat__tool-card-name{color:var(--color-text);margin:0;font-size:13px;font-weight:800}.ai-chat__tool-card-input{border:1px solid var(--color-border-light);border-radius:var(--radius-sm);background:var(--color-surface);max-height:160px;margin:0;padding:8px;font-size:12px;overflow:auto}.ai-chat__tool-card-actions{gap:8px;display:flex}.ai-chat__tool-card-approve,.ai-chat__tool-card-reject{border-radius:var(--radius-sm);cursor:pointer;border:none;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:800}.ai-chat__tool-card-approve{background:var(--color-accent);color:var(--color-accent-contrast)}.ai-chat__tool-card-approve:hover{background:var(--color-accent-hover)}.ai-chat__tool-card-reject{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary)}.ai-chat__error{color:var(--color-warn-fg);margin:0;font-size:13px}.ai-chat__composer{border-top:1px solid var(--color-border-light);gap:8px;padding:14px 20px;display:flex}.ai-chat__input{resize:none;border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);flex:1;padding:10px 12px;font-family:inherit;font-size:14px}.ai-chat__send{border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:none;padding:0 18px;font-family:inherit;font-size:13px;font-weight:800}.ai-chat__send:hover:not(:disabled){background:var(--color-accent-hover)}.ai-chat__send:disabled{opacity:.5;cursor:default}.ai-chat__settings{flex-direction:column;gap:16px;padding:20px;display:flex;overflow-y:auto}.ai-chat__settings-notice{color:var(--color-text-tertiary);margin:0;font-size:12px}.ai-chat__settings-field{color:var(--color-text-secondary);flex-direction:column;gap:6px;font-size:13px;font-weight:700;display:flex}.ai-chat__settings-field select,.ai-chat__settings-field input{border:1px solid var(--color-border-input);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);padding:8px 10px;font-family:inherit;font-size:13px}.ai-chat__settings-key-row{gap:8px;display:flex}.ai-chat__settings-key-row input{flex:1}.ai-chat__settings-key-row button{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;white-space:nowrap;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:700}.ai-chat__history{flex:1;padding:12px 20px;overflow-y:auto}.ai-chat__history-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ai-chat__history-item{border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-surface);align-items:center;gap:6px;display:flex}.ai-chat__history-item.is-active{border-color:var(--color-accent)}.ai-chat__history-item-select{cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;padding:10px 12px;display:flex}.ai-chat__history-item-title{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;font-weight:700;overflow:hidden}.ai-chat__history-item-date{color:var(--color-text-tertiary);font-size:11px}.ai-chat__history-item-actions{flex-direction:column;gap:2px;padding-right:8px;display:flex}.ai-chat__history-item-actions button{border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;border:none;padding:3px 8px;font-family:inherit;font-size:10.5px}@media (width<=640px){.ai-chat__panel{width:100vw}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.plan-status-dot{vertical-align:1px;box-sizing:border-box;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.plan-status-dot--published{background:currentColor}.plan-status-dot--draft{border:1.5px solid}.plan-status-dot--none{background:var(--color-cat-0-dot)}.category-chip{border-radius:var(--radius-pill);white-space:nowrap;padding:2px 8px;font-size:11px;font-weight:700}.category-chip--c0{background:var(--color-cat-0-bg);color:var(--color-cat-0-fg)}.category-chip--c1{background:var(--color-cat-1-bg);color:var(--color-cat-1-fg)}.category-chip--c2{background:var(--color-cat-2-bg);color:var(--color-cat-2-fg)}.category-chip--c3{background:var(--color-cat-3-bg);color:var(--color-cat-3-fg)}.category-chip--c4{background:var(--color-cat-4-bg);color:var(--color-cat-4-fg)}.sheet-backdrop{z-index:200;background:#1f2a2e73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.sheet{background:var(--color-bg);width:100%;max-width:560px;max-height:85vh;color:var(--color-text);border-radius:var(--radius-lg);outline:none;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 12px 40px #1f2a2e40}.sheet__header{padding:16px 20px 4px}.sheet__grabber{display:none}.sheet__title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.sheet__kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-tertiary);font-size:11px;font-weight:800}.sheet__title{margin:2px 0 0;font-size:22px;font-weight:800;line-height:1.15}.sheet__close{background:var(--color-surface-subtle);width:44px;height:44px;color:var(--color-text);cursor:pointer;border:none;border-radius:22px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sheet__body{flex-direction:column;flex:1;gap:10px;padding:12px 20px 20px;display:flex;overflow-y:auto}.sheet__body>*{flex-shrink:0}.sheet__footer{border-top:1px solid var(--color-border);padding:12px 20px 16px}.sheet__search{box-sizing:border-box;width:100%;min-height:46px;font-size:16px}.sheet__section-heading{letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-tertiary);margin:10px 0 0;font-size:11px;font-weight:800}.sheet__hint{color:var(--color-text-tertiary);margin:0;font-size:13px}.sheet__primary-action,.sheet__secondary-action{border-radius:var(--radius-md);cursor:pointer;width:100%;min-height:48px;font-family:inherit;font-size:15px;font-weight:700}.sheet__primary-action{background:var(--color-accent);color:var(--color-accent-contrast);border:none}.sheet__secondary-action{background:var(--color-surface-subtle);color:var(--color-text);border:none}@media (width<=640px){.sheet-backdrop{align-items:flex-end;padding:0}.sheet{border-radius:20px 20px 0 0;max-width:none;max-height:92vh}.sheet__header{padding:8px 16px 4px}.sheet__grabber{background:var(--color-border-input);border-radius:3px;width:40px;height:5px;margin:0 auto 10px;display:block}.sheet__body{padding:12px 16px 16px}.sheet__footer{padding:12px 16px calc(16px + env(safe-area-inset-bottom))}}.target-picker__list,.exercise-picker__list{margin:0;padding:0;list-style:none}.target-picker__row{border-radius:var(--radius-md);width:100%;min-height:56px;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;padding:6px 12px;font-family:inherit;display:flex}.target-picker__row:hover{background:var(--color-surface-subtle)}.target-picker__row.is-current{background:var(--color-cat-1-bg);box-shadow:inset 0 0 0 2px var(--color-accent)}.target-picker__text,.exercise-picker__text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.target-picker__name{font-size:15px;font-weight:800}.target-picker__meta{color:var(--color-text-secondary);font-size:12.5px}.target-picker__show-all{border:1px dashed var(--color-border-input);border-radius:var(--radius-md);min-height:46px;color:var(--color-text);cursor:pointer;background:0 0;font-family:inherit;font-size:14px;font-weight:700}.exercise-picker__filters{gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.exercise-picker__filters .pill{flex-shrink:0;min-height:36px}.exercise-picker__row{border-bottom:1px solid var(--color-border-light);align-items:center;gap:10px;padding:8px 0;display:flex}.exercise-picker__name{font-size:15px;font-weight:700}.exercise-picker__meta{color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px;display:flex}.exercise-picker__add{border:1.5px solid var(--color-accent);width:44px;height:44px;color:var(--color-accent);cursor:pointer;background:0 0;border-radius:22px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.exercise-picker__add--primary{background:var(--color-accent);color:var(--color-accent-contrast)}.exercise-picker__add.is-added{border-color:var(--color-text);background:var(--color-text);color:var(--color-bg)}.exercise-picker__add:disabled{opacity:.6;cursor:progress}.exercise-picker__row.is-added .exercise-picker__name{color:var(--color-accent)}.exercise-picker__footer{flex-wrap:wrap;gap:8px;display:flex}.exercise-picker__footer .sheet__secondary-action{flex:220px;width:auto}.exercise-picker__done{border-radius:var(--radius-md);background:var(--color-accent);min-height:48px;color:var(--color-accent-contrast);cursor:pointer;border:none;flex:160px;padding:0 16px;font-family:inherit;font-size:15px;font-weight:700}.block-sheet__field{flex-direction:column;gap:6px;display:flex}.block-sheet__field .field-input,.block-sheet__field .exercise-combobox input{box-sizing:border-box;min-height:46px;font-size:16px}.block-sheet__steppers{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.block-sheet__description{resize:vertical;font-size:16px}.block-sheet__move{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.block-sheet__move .field-label{flex-basis:100%}.block-sheet__move .pill{min-height:40px}.block-sheet__footer{gap:10px;display:flex}.block-sheet__delete{border-radius:var(--radius-md);border:1px solid var(--color-warn-border);min-width:50px;height:50px;color:var(--color-warn-fg);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0 12px;font-family:inherit;font-size:13px;font-weight:700;display:flex}.block-sheet__delete.is-confirming{background:var(--color-warn-bg)}.stepper{border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:6px;padding:10px;display:flex}.stepper__label{letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-tertiary);font-size:11px;font-weight:800}.stepper__controls{justify-content:space-between;align-items:center;display:flex}.stepper__button{background:var(--color-surface-subtle);width:44px;height:44px;color:var(--color-text);cursor:pointer;border:none;border-radius:22px;justify-content:center;align-items:center;display:flex}.stepper__button:disabled{opacity:.4;cursor:default}.stepper__value{align-items:baseline;gap:3px;font-size:26px;font-weight:800;display:flex}.stepper__unit{color:var(--color-text-tertiary);font-size:12px;font-weight:600}.week-plan-header{border-bottom:1px solid var(--color-border-light);flex-direction:column;gap:6px;padding-bottom:10px;display:flex}.week-plan-header__top{align-items:center;gap:8px;display:flex}.week-plan-header__back{width:44px;height:44px;color:var(--color-text);justify-content:center;align-items:center;margin-left:-10px;display:flex}.week-plan-header__target{min-width:0;min-height:44px;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:6px;padding:0;font-family:inherit;display:flex}.week-plan-header__target-text{flex-direction:column;min-width:0;display:flex}.week-plan-header__target-name{text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:800;line-height:1.15;overflow:hidden}.week-plan-header__target-meta{color:var(--color-text-tertiary);font-size:12px}.week-plan-header__menu{border:1px solid var(--color-border);background:var(--color-bg);width:44px;height:44px;color:var(--color-text);cursor:pointer;border-radius:22px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.week-plan-header__week{justify-content:space-between;align-items:center;gap:8px;display:flex}.week-plan-header__week-nav{align-items:center;margin-left:-10px;display:flex}.week-plan-header__arrow{width:36px;height:36px;color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.week-plan-header__arrow:disabled{opacity:.4}.week-plan-header__week-label{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-size:11px;font-weight:800}.week-start{max-width:640px;margin:0 auto;padding:24px 28px 64px}.week-start__body{flex-direction:column;gap:16px;padding-top:24px;display:flex}.week-start__title{margin:0;font-size:30px;line-height:1.1}.week-start__lead{color:var(--color-text-secondary);margin:0;font-size:14px;line-height:1.45}.week-start__error{color:var(--color-warn-fg);margin:0;font-size:13px}.week-start__options{flex-direction:column;gap:10px;display:flex}.week-start__option{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);width:100%;color:var(--color-text);text-align:left;cursor:pointer;align-items:center;gap:14px;padding:16px;font-family:inherit;display:flex}.week-start__option:hover:not(:disabled){border-color:var(--color-accent)}.week-start__option:disabled{opacity:.6;cursor:wait}.week-start__option--primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-contrast)}.week-start__option-icon{border-radius:var(--radius-md);background:var(--color-surface-subtle);width:44px;height:44px;color:var(--color-text);flex-shrink:0;justify-content:center;align-items:center;display:flex}.week-start__option--primary .week-start__option-icon{color:inherit;background:#f5f3ef29}.week-start__option-text{flex-direction:column;gap:3px;display:flex}.week-start__option-kicker{letter-spacing:.12em;text-transform:uppercase;opacity:.85;font-size:11px;font-weight:800}.week-start__option-title{font-size:16px;font-weight:800}.week-start__option-desc{opacity:.85;font-size:13px;line-height:1.4}.week-start__option-group{flex-direction:column;gap:8px;display:flex}.week-start__weeks{flex-wrap:wrap;gap:6px;padding:0 4px;display:flex}.week-start__year-hint{border-radius:var(--radius-md);background:var(--color-surface-subtle);color:var(--color-text-secondary);padding:14px;font-size:13px;line-height:1.45}.week-start__year-hint-label{letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:800;display:block}.week-start__year-hint ul{margin:0;padding-left:18px}@media (width<=640px){.week-start{padding:12px 16px 32px}.week-start__title{font-size:26px}}.mobile-week-editor{padding:12px 16px 0;padding-bottom:calc(96px + env(safe-area-inset-bottom));flex-direction:column;gap:12px;display:flex}.mobile-week-editor__days{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.mobile-day{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg);height:62px;color:var(--color-text);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;font-family:inherit;display:flex}.mobile-day.is-competition{background:var(--color-cat-1-bg);border-color:var(--color-accent);color:var(--color-cat-1-fg)}.mobile-day.is-active{background:var(--color-text);border-color:var(--color-text);color:var(--color-bg)}.mobile-day__weekday{font-size:11px;font-weight:700}.mobile-day__date{font-size:16px;font-weight:800}.mobile-day__dot{box-sizing:border-box;border-radius:3px;width:6px;height:6px}.mobile-day__dot.is-filled{background:var(--color-accent)}.mobile-day__dot.is-empty{background:var(--color-cat-0-dot)}.mobile-day__dot.is-off{opacity:.6;border:1px solid}.mobile-day__dot.is-competition{background:currentColor}.mobile-day.is-active .mobile-day__dot.is-filled{background:var(--color-bg)}.mobile-week-editor__message{color:var(--color-text-secondary);margin:0;font-size:13px}.mobile-week-editor__tabs{background:var(--color-surface-subtle);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));padding:3px;display:grid}.mobile-week-editor__tabs button{height:38px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;font-family:inherit;font-size:13.5px;font-weight:600}.mobile-week-editor__tabs button.is-active{background:var(--color-bg);color:var(--color-text);font-weight:700;box-shadow:0 1px 2px #1f2a2e1f}.mobile-week-editor__day-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.mobile-week-editor__day-title{margin:0;font-size:24px;line-height:1.1}.mobile-week-editor__day-meta{min-height:32px;color:var(--color-text-secondary);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-family:inherit;font-size:13px;display:flex}.mobile-week-editor__content{flex-direction:column;gap:10px;display:flex}.mobile-week-editor__empty,.mobile-week-editor__notes{color:var(--color-text-tertiary);margin:0;font-size:14px}.mobile-week-editor__notes{white-space:pre-line}.mobile-week-editor__blocks{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.mobile-block-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);align-items:stretch;display:flex;overflow:hidden}.mobile-block-card__handle{background:var(--color-surface-subtle);width:34px;color:var(--color-text-quaternary);cursor:grab;touch-action:none;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.mobile-block-card__body{min-width:0;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;gap:6px;padding:11px 12px;font-family:inherit;display:flex}.mobile-block-card__top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.mobile-block-card__name{font-size:15px;font-weight:800;line-height:1.2}.mobile-block-card__name.is-placeholder{color:var(--color-warn-fg)}.mobile-block-card__minutes{color:var(--color-text-secondary);white-space:nowrap;font-size:13px;font-weight:700}.mobile-block-card__meta{color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.mobile-block-card__overrides{color:var(--color-accent);font-size:11px;font-weight:700}.mobile-week-editor__total{color:var(--color-text-tertiary);justify-content:space-between;margin:0;font-size:12.5px;display:flex}.mobile-week-editor__action-bar{z-index:50;padding:12px 16px calc(14px + env(safe-area-inset-bottom));background:var(--color-bg);border-top:1px solid var(--color-border);position:fixed;bottom:0;left:0;right:0}.mobile-week-editor__action-warning{color:var(--color-warn-fg);margin:0 0 8px;font-size:12.5px}.mobile-week-editor__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.mobile-week-editor__add,.mobile-week-editor__publish,.mobile-week-editor__published{border-radius:var(--radius-md);justify-content:center;align-items:center;gap:8px;height:50px;font-family:inherit;font-size:15px;font-weight:700;display:flex}.mobile-week-editor__add{border:1.5px solid var(--color-accent);background:var(--color-bg);color:var(--color-accent);cursor:pointer}.mobile-week-editor__add:disabled{opacity:.4;cursor:default}.mobile-week-editor__publish{background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:none}.mobile-week-editor__published{background:var(--color-surface-subtle);color:var(--color-text-secondary)}.mobile-week-editor__menu{flex-direction:column;gap:8px;display:flex}.mobile-week-editor__menu-item{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);min-height:50px;color:var(--color-text);text-align:left;cursor:pointer;padding:0 16px;font-family:inherit;font-size:15px;font-weight:600}.mobile-week-editor__menu-item--danger{border-color:var(--color-warn-border);color:var(--color-warn-fg)}.sheet .day-card{background:0 0;border:none;margin:0;padding:0}.sheet .day-card__type-pills,.sheet .day-card__discipline-pills{flex-wrap:wrap}.sheet .field-input,.sheet input,.sheet select,.sheet textarea{font-size:16px}.connect{flex-direction:column;gap:20px;max-width:860px;margin:0 auto;padding:32px 28px 64px;display:flex}.connect h1{margin:6px 0 0;font-size:40px;line-height:1}.connect__lead{max-width:620px;color:var(--color-text-secondary);margin:0;font-size:15px;line-height:1.5}.connect__card{border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:12px;min-width:0;padding:20px;display:flex}.connect__card h2,.connect__card h3{margin:0;font-size:18px}.connect__card p{color:var(--color-text-secondary);margin:0;font-size:14px;line-height:1.45}.connect__card--primary{border-color:var(--color-accent);background:var(--color-cat-1-bg)}.connect__card-head{flex-direction:column;gap:4px;display:flex}.connect__primary-button,.connect__secondary-button{border-radius:var(--radius-md);align-self:flex-start;align-items:center;gap:8px;min-height:48px;padding:0 20px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}.connect__primary-button{background:var(--color-accent);color:var(--color-accent-contrast)}.connect__primary-button:hover{background:var(--color-accent-hover);color:var(--color-accent-contrast)}.connect__secondary-button{border:1.5px solid var(--color-accent);min-height:42px;color:var(--color-accent)}.connect__steps{flex-direction:column;gap:6px;margin:0;padding-left:20px;font-size:14px;line-height:1.45;display:flex}.connect__card .connect__note{font-size:13px}.connect__primary-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;display:flex}.connect__primary-row .connect__card-head{flex:320px}.connect__primary-row .connect__primary-button{align-self:center}.connect__details summary{cursor:pointer;color:var(--color-accent);font-size:13.5px;font-weight:700}.connect__details[open]{flex-direction:column;gap:10px;display:flex}.connect__copy{flex-direction:column;gap:4px;min-width:0;display:flex}.connect__copy-label{letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-tertiary);font-size:11px;font-weight:800}.connect__copy-row{align-items:stretch;gap:6px;min-width:0;display:flex}.connect__copy-value{border:1px solid var(--color-border-input);border-radius:var(--radius-sm);background:var(--color-bg);white-space:nowrap;-webkit-user-select:all;user-select:all;flex:1;min-width:0;padding:10px 12px;font-size:13px;overflow-x:auto}.connect__copy-button{border:1px solid var(--color-border-input);border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text);cursor:pointer;flex-shrink:0;padding:0 14px;font-family:inherit;font-size:13px;font-weight:700}.connect__examples{flex-direction:column;gap:6px;margin:0;padding-left:18px;font-size:14px;line-height:1.45;display:flex}.connect__section-title{letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-tertiary);margin:12px 0 10px;font-size:11px;font-weight:800}.connect__grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}@media (width<=640px){.connect{padding:20px 16px 48px}.connect h1{font-size:30px}.connect__primary-button{justify-content:center;align-self:stretch}}.day-workspace{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.day-workspace__plan{border:1px solid var(--color-border-light);border-radius:16px;flex-direction:column;flex:3 520px;gap:16px;min-width:0;padding:20px;display:flex}.day-workspace__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.day-workspace__heading{flex-direction:column;gap:6px;min-width:0;display:flex}.day-workspace__title{letter-spacing:-.01em;margin:0;font-size:22px;font-weight:800}.day-workspace__meta{color:var(--color-text-secondary);flex-wrap:wrap;gap:4px 14px;margin:0;font-size:14px;display:flex}.day-workspace__other{color:var(--color-text-secondary);margin:0;font-size:14px}.day-workspace__secondary,.day-workspace__add{border-radius:var(--radius-md);border:1px solid var(--color-border-input);min-height:40px;color:var(--color-text);cursor:pointer;background:0 0;padding:0 14px;font-family:inherit;font-size:14px;font-weight:600}.day-workspace__add{border-style:dashed;border-color:var(--color-accent);color:var(--color-accent);align-self:flex-start}.day-workspace__blocks{flex-direction:column;gap:10px;display:flex}.day-workspace__empty{color:var(--color-text-tertiary);margin:0}.day-workspace__notes{border-top:1px solid var(--color-border-light);flex-direction:column;gap:4px;padding-top:12px;display:flex}.day-workspace__notes p{white-space:pre-line;margin:0;font-size:14px}.day-workspace__label,.attendance-detail__label{letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-tertiary);font-size:12px;font-weight:700}.mobile-block-card__top .mobile-block-card__name{flex:1;min-width:0}.mobile-block-card__index{min-width:18px;color:var(--color-text-tertiary);flex-shrink:0;font-size:13px;font-weight:700}.attendance-panel{min-width:0}.attendance-panel--inline{border:1px solid var(--color-border-light);border-radius:16px;flex:2 420px;max-width:620px;overflow:hidden}.attendance-panel__head{border-bottom:1px solid var(--color-border-light);flex-direction:column;gap:12px;padding:18px 20px;display:flex}.attendance-panel--sheet .attendance-panel__head{padding:4px 0 14px}.attendance-panel__title-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.attendance-panel__title{margin:0;font-size:20px;font-weight:800}.attendance-panel__feedback-count{color:var(--color-text-secondary);font-size:13px}.attendance-panel__count{color:var(--color-text-secondary);margin:0;font-size:15px}.attendance-panel__count strong{color:var(--color-text)}.attendance-panel__bar{border-radius:var(--radius-pill);background:var(--color-surface-subtle);height:8px;display:flex;overflow:hidden}.attendance-panel__bar span{height:100%;display:block}.attendance-panel__bar .is-present{background:var(--color-accent)}.attendance-panel__bar .is-excused{background:var(--color-cat-0-dot)}.attendance-panel__bar .is-absent{background:var(--color-cat-2-dot)}.attendance-panel__tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.attendance-panel__mark-open{border-radius:var(--radius-md);border:1px solid var(--color-accent);min-height:38px;color:var(--color-accent);cursor:pointer;background:0 0;padding:0 12px;font-family:inherit;font-size:13px;font-weight:700}.attendance-panel__mark-open:disabled{border-color:var(--color-border-input);color:var(--color-text-tertiary);cursor:default}.attendance-panel__list{margin:0;padding:0;list-style:none}.attendance-panel__empty{color:var(--color-text-tertiary);margin:0;padding:20px}.attendance-row{border-bottom:1px solid var(--color-border-light);padding:10px 20px}.attendance-panel--sheet .attendance-row{padding:10px 0}.attendance-row.is-open{background:var(--color-surface-subtle)}.attendance-row__main{align-items:center;gap:12px;display:flex}.attendance-row__avatar{box-sizing:border-box;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;font-weight:800;display:flex}.attendance-row__avatar--present{background:var(--color-accent);color:var(--color-accent-contrast)}.attendance-row__avatar--excused{background:var(--color-cat-0-bg);color:var(--color-cat-0-fg)}.attendance-row__avatar--absent{background:var(--color-cat-2-bg);color:var(--color-cat-2-fg)}.attendance-row__avatar--open{border:1.5px dashed var(--color-text-tertiary);color:var(--color-text-secondary)}.attendance-row__person{min-width:0;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;gap:4px;padding:4px 0;font-family:inherit;display:flex}.attendance-row__name-line{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.attendance-row__name{font-size:15px;font-weight:700}.attendance-row__summary{color:var(--color-text-tertiary);font-size:13px}.attendance-chip{border-radius:var(--radius-pill);align-items:center;height:22px;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.attendance-chip--warn{background:var(--color-cat-2-bg);color:var(--color-cat-2-fg)}.attendance-chip--variant{background:var(--color-cat-1-bg);color:var(--color-cat-1-fg)}.attendance-toggle{border-radius:var(--radius-md);background:var(--color-surface-subtle);flex-shrink:0;gap:2px;padding:3px;display:flex}.attendance-row.is-open .attendance-toggle{background:var(--color-bg)}.attendance-toggle__option{min-width:50px;height:36px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:0 9px;font-family:inherit;font-size:13px;font-weight:700}.attendance-toggle__option--present.is-active{background:var(--color-accent);color:var(--color-accent-contrast)}.attendance-toggle__option--excused.is-active{background:var(--color-cat-0-bg);color:var(--color-cat-0-fg);box-shadow:inset 0 0 0 1.5px var(--color-cat-0-dot)}.attendance-toggle__option--absent.is-active{background:var(--color-cat-2-bg);color:var(--color-cat-2-fg);box-shadow:inset 0 0 0 1.5px var(--color-cat-2-dot)}.attendance-toggle--large{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.attendance-toggle--large .attendance-toggle__option{height:48px;font-size:14px}.attendance-detail{flex-direction:column;gap:12px;margin:12px 0 4px 52px;display:flex}.attendance-sheet{flex-direction:column;gap:16px;display:flex}.attendance-sheet .attendance-detail{margin:0}.attendance-detail__line{color:var(--color-text-secondary);margin:0;font-size:14px}.attendance-detail__line--warn strong{color:var(--color-cat-2-fg)}.attendance-detail__line--variant strong{color:var(--color-cat-1-fg)}.attendance-detail__feedback{border-radius:var(--radius-md);background:var(--color-surface-subtle);flex-direction:column;gap:4px;padding:10px 12px;display:flex}.attendance-row.is-open .attendance-detail__feedback{background:var(--color-bg)}.attendance-detail__feedback-line{font-size:14px;font-weight:700}.attendance-detail__quote{color:var(--color-text-secondary);font-size:14px}.attendance-detail__notes{flex-direction:column;gap:8px;display:flex}.attendance-detail__notes-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.attendance-detail__private{color:var(--color-text-tertiary);font-size:12px}.attendance-detail__empty{color:var(--color-text-tertiary);margin:0;font-size:14px}.attendance-detail__more{color:var(--color-accent);font-size:13px;font-weight:700}.coach-note{border-radius:var(--radius-xl);border:1px solid var(--color-border-light);background:var(--color-bg);flex-direction:column;gap:4px;padding:10px 12px;display:flex}.coach-note.is-pinned{border-color:var(--color-cat-0-dot);background:var(--color-cat-0-bg)}.coach-note__meta{color:var(--color-text-tertiary);flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:12px;display:flex}.coach-note.is-pinned .coach-note__meta{color:var(--color-cat-0-fg)}.coach-note__athlete,.coach-note__author{color:var(--color-text);font-size:13px;font-weight:700}.coach-note__pin{border-radius:var(--radius-pill);background:var(--color-cat-0-dot);color:var(--color-bg);padding:1px 8px;font-weight:700}.coach-note__body{white-space:pre-line;margin:0;font-size:14px;line-height:1.45}.coach-note__actions{gap:12px;display:flex}.coach-note__actions button{color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:2px 0;font-family:inherit;font-size:12.5px;font-weight:700}.coach-note__actions .coach-note__delete{color:var(--color-warn-fg)}.coach-note-composer{flex-direction:column;gap:8px;display:flex}.coach-note-composer__label{font-size:13px;font-weight:700}.coach-note-composer__input{resize:vertical;min-height:64px}.coach-note-composer__hint{color:var(--color-text-tertiary);margin:0;font-size:12px}.coach-note-composer__row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.coach-note-composer__pin{min-height:36px;color:var(--color-text-secondary);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.coach-note-composer__pin input{width:18px;height:18px;accent-color:var(--color-accent)}.coach-note-composer__save{border-radius:var(--radius-md);background:var(--color-accent);min-height:40px;color:var(--color-accent-contrast);cursor:pointer;border:none;padding:0 16px;font-family:inherit;font-size:14px;font-weight:700}.coach-note-composer__save:disabled{opacity:.5;cursor:default}.coach-note-composer__error{color:var(--color-warn-fg);margin:0;font-size:13px}@media (width<=520px){.attendance-row__main{flex-wrap:wrap}.attendance-row__person{flex-basis:calc(100% - 52px)}.attendance-toggle{margin-left:52px}.attendance-detail{margin-left:0}}.evaluation-page{flex-direction:column;gap:20px;max-width:1440px;margin:0 auto;padding:28px 32px 40px;display:flex}.evaluation-page__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.evaluation-page__title{flex-direction:column;gap:6px;display:flex}.evaluation-page__title h1{letter-spacing:-.02em;margin:0;font-size:32px;font-weight:800}.evaluation-page__groups{flex-wrap:wrap;gap:6px;display:flex}.evaluation-tabs{border-bottom:1px solid var(--color-border-light);flex-wrap:wrap;gap:4px 24px;display:flex}.evaluation-tabs__tab{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:10px 0;font-family:inherit;font-size:15px;font-weight:600}.evaluation-tabs__tab span{color:var(--color-text-tertiary);margin-left:6px;font-weight:500}.evaluation-tabs__tab.is-active{color:var(--color-text);box-shadow:inset 0 -3px 0 var(--color-accent);font-weight:800}.evaluation-page__period{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.evaluation-page__period .exercise-library__segmented{flex-wrap:wrap}.evaluation-muted{color:var(--color-text-tertiary);margin:0;font-size:13px}.evaluation-empty{border:1px dashed var(--color-border-input);text-align:center;color:var(--color-text-secondary);border-radius:16px;margin:0;padding:28px}.evaluation-split{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.evaluation-split__main{flex:999 600px;min-width:0}.evaluation-split__side{flex-direction:column;flex:340px;gap:16px;min-width:0;max-width:520px;display:flex}.evaluation-card{border:1px solid var(--color-border-light);border-radius:16px;flex-direction:column;gap:16px;min-width:0;padding:20px;display:flex}.evaluation-card--flush{gap:0;padding:0;overflow:hidden}.evaluation-card__pad{padding:14px 16px 10px}.evaluation-card__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.evaluation-card__title{margin:0;font-size:20px;font-weight:800}.evaluation-card__subtitle{margin:0;font-size:16px;font-weight:800}.evaluation-private{color:var(--color-text-tertiary);margin:0;font-size:12px;font-weight:700}.evaluation-link,.evaluation-small-button{cursor:pointer;font-family:inherit;font-size:13px;font-weight:700}.evaluation-link{color:var(--color-accent);background:0 0;border:none;padding:0}.evaluation-small-button{border-radius:var(--radius-md);border:1px solid var(--color-border-input);min-height:34px;color:var(--color-text);background:0 0;padding:0 12px}.evaluation-filters{flex-wrap:wrap;align-items:flex-end;gap:10px 16px;display:flex}.evaluation-filters__field{color:var(--color-text-secondary);flex-direction:column;gap:4px;font-size:12px;font-weight:700;display:flex}.evaluation-kpis{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.evaluation-kpi{border:1px solid var(--color-border-light);border-radius:var(--radius-xl);flex-direction:column;gap:4px;padding:14px 16px;display:flex}.evaluation-kpi__label{color:var(--color-text-secondary);font-size:13px;font-weight:700}.evaluation-kpi__value{font-size:28px;font-weight:800;line-height:1.1}.evaluation-kpi__sub{color:var(--color-text-tertiary);font-size:13px}.evaluation-facts{border-top:1px solid var(--color-border-light);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;padding-top:16px;display:grid}.evaluation-facts div{flex-direction:column;gap:2px;display:flex}.evaluation-facts span{color:var(--color-text-secondary);font-size:13px}.evaluation-facts strong{font-size:20px}.evaluation-avatar{background:var(--color-surface-subtle);width:36px;height:36px;color:var(--color-text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:flex}.evaluation-avatar--large{background:var(--color-accent);width:56px;height:56px;color:var(--color-accent-contrast);font-size:18px}.evaluation-people{margin:0;padding:0;list-style:none}.evaluation-people li{border-top:1px solid var(--color-border-light)}.evaluation-people button,.evaluation-roster__item{width:100%;min-height:52px;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;padding:8px 16px;font-family:inherit;display:flex}.evaluation-people__text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.evaluation-people__text strong{font-size:14px}.evaluation-people__text span{color:var(--color-text-secondary);font-size:13px}.attendance-chip--gold{background:var(--color-cat-0-bg);color:var(--color-cat-0-fg)}.season-chart{flex-direction:column;gap:10px;display:flex}.season-chart__scroll{overflow-x:auto}.season-chart__grid{grid-template-columns:92px minmax(0,1fr);align-items:center;gap:6px 10px;display:grid}.season-chart__lane-label{color:var(--color-text-tertiary);font-size:12px;font-weight:700}.season-chart__lane-label--top{align-self:start;padding-top:2px}.season-chart__lane,.season-chart__bars,.season-chart__attendance,.season-chart__dots,.season-chart__months{display:grid}.season-chart__lane{height:24px}.season-chart__band{white-space:nowrap;text-overflow:ellipsis;background:var(--color-surface-subtle);color:var(--color-text-secondary);border-radius:6px;grid-row:1;margin-right:2px;padding:0 6px;font-size:12px;font-weight:700;line-height:24px;overflow:hidden}.season-chart__band--phase{background:var(--color-cat-1-bg);color:var(--color-cat-1-fg)}.season-chart__band--competition{background:var(--color-cat-2-bg);color:var(--color-cat-2-fg)}.season-chart__band--training_camp{background:var(--color-cat-0-bg);color:var(--color-cat-0-fg)}.season-chart__band--vacation{background:var(--color-cat-4-bg);color:var(--color-cat-4-fg)}.season-chart__bars{border-bottom:1px solid var(--color-border-input);background:linear-gradient(var(--color-border-light) 1px, transparent 1px) 0 0 / 100% 40px;align-items:end;gap:3px;height:160px}.season-chart__bar{background:var(--color-accent);border-radius:3px 3px 0 0;height:0;display:block}.season-chart__bar.is-highlight{background:var(--color-cat-2-dot)}.season-chart__attendance{gap:3px;height:12px}.season-chart__att{border-radius:2px;display:block}.season-chart__att.is-present{background:var(--color-accent)}.season-chart__att.is-partial{background:var(--color-cat-0-dot)}.season-chart__att.is-absent{background:var(--color-cat-2-dot)}.season-chart__att.is-none{box-shadow:inset 0 0 0 1px var(--color-border-light)}.season-chart__dots{align-items:center;gap:3px;height:14px}.season-chart__dot{background:var(--color-cat-0-dot);border-radius:50%;justify-self:center;width:0;height:0;display:block}.season-chart__months{color:var(--color-text-tertiary);font-size:12px}.season-chart__month{border-left:1px solid var(--color-border-input);white-space:nowrap;grid-row:1;padding-left:4px}.season-chart__legend{color:var(--color-text-secondary);flex-wrap:wrap;gap:6px 18px;font-size:12px;display:flex}.season-chart__legend span{align-items:center;gap:6px;display:inline-flex}.season-chart__key{border-radius:2px;width:10px;height:10px;display:inline-block}.season-chart__key--bar{background:var(--color-accent)}.season-chart__key--none{border:1px dashed var(--color-text-tertiary);box-sizing:border-box}.season-chart__key--dot{background:var(--color-cat-0-dot);border-radius:50%;width:8px;height:8px}.journal-kind{border-radius:var(--radius-pill);align-items:center;height:22px;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.journal-kind--note{background:var(--color-cat-1-bg);color:var(--color-cat-1-fg)}.journal-kind--feedback{background:var(--color-surface-subtle);color:var(--color-text-secondary)}.journal-kind--variant{background:var(--color-cat-4-bg);color:var(--color-cat-4-fg)}.journal-entry{border:1px solid var(--color-border-light);border-radius:var(--radius-xl);background:var(--color-bg);flex-direction:column;gap:6px;min-width:0;padding:10px 12px;display:flex}.journal-entry__meta{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.journal-entry__athlete{color:var(--color-text);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:14px;font-weight:800}button.journal-entry__athlete:hover{color:var(--color-accent)}.journal-entry__line,.journal-entry__context{margin:0;font-size:14px}.journal-entry__line{font-weight:700}.journal-entry__quote{color:var(--color-text-secondary);font-size:14px}.journal-entry__context{color:var(--color-text-tertiary);font-size:12.5px}.evaluation-journal{flex-direction:column;gap:20px;display:flex}.evaluation-timeline__state{align-items:center;gap:12px;display:flex}.evaluation-timeline{gap:24px;padding-bottom:4px;display:flex;overflow-x:auto}.evaluation-timeline__year{flex-direction:column;gap:6px;min-width:max-content;display:flex}.evaluation-timeline__year-label{color:var(--color-text-secondary);font-size:13px;font-weight:800}.evaluation-timeline__months{gap:4px;display:grid}.evaluation-timeline__month{height:72px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:6px 2px 4px;font-family:inherit;font-size:12px;font-weight:700;display:flex}.evaluation-timeline__month.is-active{border-color:var(--color-accent);background:var(--color-cat-1-bg);color:var(--color-cat-1-fg)}.evaluation-timeline__bar-wrap{flex:1;justify-content:center;align-items:flex-end;width:100%;display:flex}.evaluation-timeline__bar{background:var(--color-accent);border-radius:3px;width:60%;max-width:22px;display:block}.evaluation-timeline__bar.is-empty{background:var(--color-border-input)}.evaluation-split--filters>.evaluation-filters-panel{flex:260px;max-width:320px}.evaluation-filters-panel{gap:18px}.evaluation-filters-panel>summary{cursor:pointer;font-size:15px;font-weight:800}.evaluation-filters-panel[open]>summary{margin-bottom:4px}.evaluation-filters-panel__body{flex-direction:column;gap:18px;display:flex}.evaluation-filters-panel__search{flex-direction:column;gap:6px;font-size:13px;font-weight:700;display:flex}.evaluation-filters-panel__group{border:none;flex-direction:column;gap:2px;margin:0;padding:0;display:flex}.evaluation-filters-panel__group legend{margin-bottom:6px;padding:0;font-size:13px;font-weight:700}.evaluation-option{min-height:36px;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:0 10px;font-family:inherit;font-size:14px;font-weight:600;display:flex}.evaluation-option.is-active{border-color:var(--color-accent);background:var(--color-cat-1-bg)}.evaluation-option.is-off{opacity:.55}.evaluation-option__label{flex:1;min-width:0}.evaluation-option__count{color:var(--color-text-tertiary);font-weight:500}.evaluation-option__swatch{border-radius:3px;width:12px;height:12px;padding:0}.evaluation-option__swatch.journal-kind--note{background:var(--color-cat-1-dot)}.evaluation-option__swatch.journal-kind--feedback{background:var(--color-text-tertiary)}.evaluation-option__swatch.journal-kind--variant{background:var(--color-cat-4-dot)}.evaluation-feed{flex-direction:column;gap:14px;display:flex}.evaluation-feed__month{flex-direction:column;gap:10px;display:flex}.evaluation-feed__month-title{border-bottom:1px solid var(--color-border-light);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary);margin:0;padding-bottom:6px;font-size:14px;font-weight:800}.evaluation-feed__month-title span{letter-spacing:0;text-transform:none;color:var(--color-text-tertiary);margin-left:8px;font-weight:500}.evaluation-feed__row{grid-template-columns:56px minmax(0,1fr);align-items:start;gap:12px;display:grid}.evaluation-feed__date{color:var(--color-text-tertiary);flex-direction:column;padding-top:10px;font-size:13px;display:flex}.evaluation-feed__date strong{color:var(--color-text);font-size:16px}.evaluation-split--roster>.evaluation-roster{flex:240px;max-width:290px}.evaluation-roster__list{margin:0;padding:0 6px 8px;list-style:none}.evaluation-roster__item{border-radius:10px;padding:6px 10px}.evaluation-roster__item.is-active{background:var(--color-cat-1-bg)}.evaluation-person{flex-direction:column;gap:20px;display:flex}.evaluation-person__head{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.evaluation-person__title{flex-direction:column;flex:240px;gap:6px;display:flex}.evaluation-person__title h2{margin:0;font-size:24px;font-weight:800}.evaluation-person__chips{color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:13px;display:flex}.evaluation-person__note-link{align-items:center;text-decoration:none;display:inline-flex}@media (width<=760px){.evaluation-split--filters>.evaluation-filters-panel,.evaluation-split--roster>.evaluation-roster{max-width:none}.evaluation-roster__list{gap:4px;display:flex;overflow-x:auto}.evaluation-roster__item{white-space:nowrap;width:auto}.evaluation-page{padding:20px 16px 32px}.evaluation-page__title h1{font-size:26px}}.day-workspace__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mobile-week-editor__day-types{margin:0 0 12px}.mobile-week-editor__empty-days{border-radius:var(--radius-xl);background:var(--color-cat-1-bg);color:var(--color-cat-1-fg);justify-content:space-between;align-items:center;gap:10px;margin:0 0 12px;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.mobile-week-editor__empty-days button{border-radius:var(--radius-md);background:var(--color-accent);min-height:40px;color:var(--color-accent-contrast);cursor:pointer;border:none;flex-shrink:0;padding:0 12px;font-family:inherit;font-size:13px;font-weight:700}.template-strip{gap:3px;width:100%;height:7px;display:flex}.template-strip span{border-radius:2px;flex:1}.template-picker__list,.template-library__cards{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.template-option{border:1px solid var(--color-border-light);border-radius:var(--radius-xl);width:100%;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;flex-direction:column;align-items:flex-start;gap:8px;padding:12px 14px;font-family:inherit;display:flex}.template-option.is-selected{border-color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent)}.template-option.is-archived{opacity:.6}.template-option__top{justify-content:space-between;align-items:baseline;gap:8px;width:100%;display:flex}.template-option__name{font-size:15px;font-weight:800}.template-option__meta{color:var(--color-text-secondary);font-size:13px}.template-option__usage{color:var(--color-text-tertiary);font-size:12px}.template-picker__footer{flex-direction:column;gap:8px;display:flex}.template-picker__footer .exercise-picker__done{flex:none}.template-preview{border:1px solid var(--color-border-light);border-radius:var(--radius-xl);background:var(--color-surface-subtle);flex-direction:column;gap:10px;padding:14px;display:flex}.template-preview__name{font-size:17px}.template-preview__desc{color:var(--color-text-secondary);margin:0;font-size:14px}.template-preview__blocks{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.template-preview__blocks li{align-items:center;gap:10px;font-size:14px;display:flex}.template-preview__dot{border-radius:3px;flex-shrink:0;width:10px;height:10px}.template-preview__block-name{flex:1;min-width:0}.template-preview__dose{color:var(--color-text-tertiary)}.template-preview__minutes{color:var(--color-text-secondary);flex-shrink:0;font-size:13px;font-weight:700}.template-preview__mode{border-top:1px solid var(--color-border-light);flex-direction:column;gap:8px;padding-top:10px;display:flex}.template-preview__mode-label{font-size:13px;font-weight:700}.template-preview__modes{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.template-preview__modes button{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px}.template-preview__modes button span{opacity:.85;font-size:12px;font-weight:500}.template-preview__after{color:var(--color-text-secondary);margin:0;font-size:13px}.template-form{flex-direction:column;gap:14px;display:flex}.template-form__field{flex-direction:column;gap:6px;display:flex}.template-form__fieldset{border:none;margin:0;padding:0}.template-form__chips{flex-wrap:wrap;gap:6px;display:flex}.template-form__summary{border:1px solid var(--color-border-light);border-radius:var(--radius-xl);background:var(--color-surface-subtle);flex-direction:column;gap:8px;padding:12px 14px;font-size:14px;display:flex}.template-form__summary ol{color:var(--color-text-secondary);margin:0;padding-left:20px;line-height:1.6}.template-form__hint{color:var(--color-text-tertiary);margin:0;font-size:12.5px}.template-editor__blocks,.template-detail__blocks{flex-direction:column;gap:8px;margin:0 0 4px;padding:0;list-style:none;display:flex}.template-editor__block,.template-detail__blocks li{border:1px solid var(--color-border-light);border-radius:var(--radius-md);align-items:center;gap:10px;padding:8px 10px;display:flex}.template-editor__block-body{min-width:0;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;gap:4px;padding:2px 0;font-family:inherit;display:flex}.template-editor__block-name{font-size:15px;font-weight:700}.template-editor__block-meta{color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.template-editor__chip{border-radius:var(--radius-pill);align-items:center;height:20px;padding:0 8px;font-size:11.5px;font-weight:700;display:inline-flex}.template-editor__block-actions{gap:2px;display:flex}.template-editor__block-actions button{width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;font-size:15px}.template-editor__block-actions button:hover:not(:disabled){background:var(--color-surface-subtle)}.template-editor__block-actions button:disabled{opacity:.3;cursor:default}.template-library{flex-direction:column;gap:16px;display:flex}.template-library__new{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.past-day__preview{margin-top:8px}.past-day__preview .exercise-picker__done{flex:none}.template-library__layout{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.template-library__cards{flex:380px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;min-width:0;margin:0;display:grid}.template-library__cards>li{flex-direction:column;display:flex}.template-option--card{flex:1 0 auto;padding:14px 16px}.template-detail{border:1px solid var(--color-border-light);border-radius:16px;flex-direction:column;flex:420px;gap:14px;min-width:0;max-width:620px;padding:20px;display:flex}.template-library__cards .template-detail{max-width:none;margin-top:8px}.template-detail__head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.template-detail__head h2{margin:0;font-size:22px;font-weight:800}.template-detail__archived{border-radius:var(--radius-pill);background:var(--color-surface-subtle);color:var(--color-text-secondary);padding:2px 8px;font-size:12px;font-weight:700}.template-detail__desc{color:var(--color-text-secondary);margin:0;font-size:15px;line-height:1.45}.template-detail__byline{color:var(--color-text-tertiary);font-size:13px}.template-detail__facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.template-detail__facts div{border:1px solid var(--color-border-light);border-radius:var(--radius-xl);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.template-detail__facts span{color:var(--color-text-secondary);font-size:12px;font-weight:700}.template-detail__facts strong{font-size:20px}.template-detail__block{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.template-detail__actions{flex-wrap:wrap;gap:8px;display:flex}.day-workspace__add-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.day-workspace__template-button{border-radius:var(--radius-md);border:1px solid var(--color-accent);min-height:40px;color:var(--color-accent);cursor:pointer;background:0 0;padding:0 14px;font-family:inherit;font-size:14px;font-weight:700}.day-workspace__link{min-height:40px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0 6px;font-family:inherit;font-size:13.5px;font-weight:600;text-decoration:underline}.day-workspace__template{border-radius:var(--radius-pill);background:var(--color-cat-1-bg);height:22px;color:var(--color-cat-1-fg);align-self:flex-start;align-items:center;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.exercise-library__tabs{margin-bottom:16px}:root{--glass-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0.13 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--glass-bg:#ffffff94;--glass-bg-strong:#ffffffad;--glass-border:#1f2a2e12;--glass-shadow:0 8px 24px #112a1e0a;--glass-blur:blur(20px) saturate(1.05);--glass-spot-1:#7be4951a;--glass-spot-2:#3fd0a00f;--glass-spot-3:#1f7a3e0a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--glass-bg:#1e242280;--glass-bg-strong:#1e2422ad;--glass-border:#ffffff12;--glass-shadow:0 8px 24px #0000004d;--glass-spot-1:#2e9e5814;--glass-spot-2:#1f7a3e0f;--glass-spot-3:#3fd0a008}}:root[data-theme=dark]{--glass-bg:#1e242280;--glass-bg-strong:#1e2422ad;--glass-border:#ffffff12;--glass-shadow:0 8px 24px #0000004d;--glass-spot-1:#2e9e5814;--glass-spot-2:#1f7a3e0f;--glass-spot-3:#3fd0a008}.app-glass{isolation:isolate;min-height:100svh;position:relative}.app-glass:before{content:"";z-index:-1;background:radial-gradient(circle at 10% 6%, var(--glass-spot-1), transparent 42%), radial-gradient(circle at 92% 14%, var(--glass-spot-2), transparent 38%), radial-gradient(circle at 70% 96%, var(--glass-spot-3), transparent 46%), var(--color-bg);position:fixed;inset:0}.app-glass .coach-nav,.app-glass .week-home__todo,.app-glass .week-board,.app-glass .week-home__segmented{background:var(--glass-bg);background-image:var(--glass-grain);border-color:var(--glass-border);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.app-glass .coach-nav{background:var(--glass-bg-strong);background-image:var(--glass-grain)}.app-glass .week-home__todo--warn{background:color-mix(in srgb, var(--color-cat-0-bg) 72%, transparent);background-image:var(--glass-grain);border-color:color-mix(in srgb, var(--color-cat-0-dot) 55%, var(--glass-border))}.app-glass .week-home__todo--alert{background:color-mix(in srgb, var(--color-cat-2-bg) 72%, transparent);background-image:var(--glass-grain);border-color:color-mix(in srgb, var(--color-cat-2-dot) 55%, var(--glass-border))}.app-glass .week-home__todo button{background:var(--glass-bg-strong);background-image:var(--glass-grain)}.app-glass .week-home__today{background:color-mix(in srgb, var(--color-text) 84%, transparent);background-image:var(--glass-grain);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid #ffffff0f;box-shadow:0 8px 24px #112a1e1f}@media (prefers-reduced-transparency:reduce){.app-glass .coach-nav,.app-glass .week-home__todo,.app-glass .week-board,.app-glass .week-home__segmented{background:var(--color-surface);-webkit-backdrop-filter:none;backdrop-filter:none}}@media print{.app-glass:before{display:none}}:root{--glass-bg-subtle:#ffffff5c;--glass-solid-surface:#f5f3ef;--glass-solid-surface-subtle:#ede9e1;--glass-button-bg:#ffffff61;--glass-button-hover:#ffffff9e;--glass-button-shadow:0 0 0 1px #1f2a2e12;--glass-primary-bg:#1f7a3ed6;--glass-primary-shadow:none;--glass-card-shadow:0 8px 24px #112a1e0a;--glass-pill-blur:blur(16px) saturate(1.05)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--glass-bg-subtle:#ffffff0b;--glass-solid-surface:#1a1e1f;--glass-solid-surface-subtle:#232827;--glass-button-bg:#ffffff12;--glass-button-hover:#ffffff21;--glass-button-shadow:0 0 0 1px #ffffff14;--glass-primary-bg:#5ccb86db;--glass-primary-shadow:none;--glass-card-shadow:0 8px 24px #0000004d}}:root[data-theme=dark]{--glass-bg-subtle:#ffffff0b;--glass-solid-surface:#1a1e1f;--glass-solid-surface-subtle:#232827;--glass-button-bg:#ffffff12;--glass-button-hover:#ffffff21;--glass-button-shadow:0 0 0 1px #ffffff14;--glass-primary-bg:#5ccb86db;--glass-primary-shadow:none;--glass-card-shadow:0 8px 24px #0000004d}.app-glass{--color-surface:var(--glass-bg);--color-surface-subtle:var(--glass-bg-subtle)}.app-glass .has-tooltip:after{color:var(--color-bg)}.app-glass :where(.week-editor,.week-grid,.day-select-card,.year-board,.year-board__plan,.year-page__detail,.year-page__upcoming ul,.year-list ul,.year-page__hint,.groups-page__roster,.athlete-groups__list,.exercise-card,.exercise-detail,.template-editor__row,.template-preview,.template-form__summary,.coach-handover,.coach-team-management,.coach-team-management__list li,.coach-management,.coach-management__list li,.consent-management,.consent-management__list li,.athlete-profile-form,.ai-chat__history-item,.week-plan-header__menu,.mobile-day,.mobile-block-card,.coach-note,.journal-entry){border-color:var(--glass-border);box-shadow:var(--glass-card-shadow);background-image:var(--glass-grain);border-radius:18px}.app-glass :is(.coach-nav__ai-chat,.week-board__row-actions button:not(.is-primary),.week-editor__header button:not(.week-editor__primary),.year-page__secondary,.year-entry__cancel,.groups-page__secondary,.groups-page__candidates button,.athlete-groups__add button,.exercise-library__secondary,.exercise-editor__cancel,.category-manager__confirm button,.day-workspace__secondary,.day-workspace__add,.evaluation-small-button,.block-overrides__toggle,.block-overrides__form-actions button,.coach-management__reset-password-row button,.coach-management__reset-password-actions button[type=button],.consent-management__row-actions button,.dsr-page__item-actions button,.dsr-page__resolve-actions button:last-child,.dsr-page__export-header button,.ai-chat__icon-button,.ai-chat__settings-key-row button,.ai-chat__history-item-actions button,.stepper__button,.mobile-week-editor__add,.mobile-week-editor__published,.connect__copy-button){background:var(--glass-button-bg);background-image:var(--glass-grain);box-shadow:var(--glass-button-shadow);-webkit-backdrop-filter:var(--glass-pill-blur);backdrop-filter:var(--glass-pill-blur);border-color:#0000;border-radius:999px}.app-glass :is(.coach-nav__ai-chat,.week-board__row-actions button:not(.is-primary),.week-editor__header button:not(.week-editor__primary),.year-page__secondary,.year-entry__cancel,.groups-page__secondary,.groups-page__candidates button,.athlete-groups__add button,.exercise-library__secondary,.exercise-editor__cancel,.category-manager__confirm button,.day-workspace__secondary,.day-workspace__add,.evaluation-small-button,.block-overrides__toggle,.block-overrides__form-actions button,.coach-management__reset-password-row button,.coach-management__reset-password-actions button[type=button],.consent-management__row-actions button,.dsr-page__item-actions button,.dsr-page__resolve-actions button:last-child,.dsr-page__export-header button,.ai-chat__icon-button,.ai-chat__settings-key-row button,.ai-chat__history-item-actions button,.stepper__button,.mobile-week-editor__add,.mobile-week-editor__published,.connect__copy-button):hover:not(:disabled){background:var(--glass-button-hover);background-image:var(--glass-grain)}.app-glass :is(.coach-nav__today,.week-board__row-actions button.is-primary,.week-editor__header .week-editor__primary,.year-page__primary,.year-entry__save,.groups-page__new-group button,.groups-page__primary,.exercise-library__primary,.exercise-editor__save,.category-manager__new button,.template-editor__save,.coach-handover__form button[type=submit],.coach-team-management__form button,.coach-management__add button,.coach-management__reset-password-actions button[type=submit],.consent-management__form button[type=submit],.dsr-page__new>button,.dsr-page__resolve-actions button:first-child,.athlete-profile-form button[type=submit],.ai-chat__send,.sheet__primary-action,.exercise-picker__add--primary,.exercise-picker__done,.mobile-week-editor__publish,.mobile-week-editor__empty-days button,.connect__primary-button,.coach-note-composer__save){border-color:#0000;border-radius:999px}.app-glass :is(.coach-nav__today,.week-board__row-actions button.is-primary,.week-editor__header .week-editor__primary,.year-page__primary,.year-entry__save,.groups-page__new-group button,.groups-page__primary,.exercise-library__primary,.exercise-editor__save,.category-manager__new button,.template-editor__save,.coach-handover__form button[type=submit],.coach-team-management__form button,.coach-management__add button,.coach-management__reset-password-actions button[type=submit],.consent-management__form button[type=submit],.dsr-page__new>button,.dsr-page__resolve-actions button:first-child,.athlete-profile-form button[type=submit],.ai-chat__send,.sheet__primary-action,.exercise-picker__add--primary,.exercise-picker__done,.mobile-week-editor__publish,.mobile-week-editor__empty-days button,.connect__primary-button,.coach-note-composer__save):not(:disabled){background:var(--glass-primary-bg);background-image:var(--glass-grain);box-shadow:var(--glass-primary-shadow);-webkit-backdrop-filter:var(--glass-pill-blur);backdrop-filter:var(--glass-pill-blur)}.app-glass :is(.coach-nav__today,.week-board__row-actions button.is-primary,.week-editor__header .week-editor__primary,.year-page__primary,.year-entry__save,.groups-page__new-group button,.groups-page__primary,.exercise-library__primary,.exercise-editor__save,.category-manager__new button,.template-editor__save,.coach-handover__form button[type=submit],.coach-team-management__form button,.coach-management__add button,.coach-management__reset-password-actions button[type=submit],.consent-management__form button[type=submit],.dsr-page__new>button,.dsr-page__resolve-actions button:first-child,.athlete-profile-form button[type=submit],.ai-chat__send,.sheet__primary-action,.exercise-picker__add--primary,.exercise-picker__done,.mobile-week-editor__publish,.mobile-week-editor__empty-days button,.connect__primary-button,.coach-note-composer__save):hover:not(:disabled){background:var(--color-accent-hover);background-image:var(--glass-grain)}.app-glass .mobile-week-editor__action-bar{background:var(--glass-bg-strong);background-image:var(--glass-grain);border-top-color:var(--glass-border);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}@media (prefers-reduced-transparency:reduce){.app-glass{--color-surface:var(--glass-solid-surface);--color-surface-subtle:var(--glass-solid-surface-subtle)}.app-glass .mobile-week-editor__action-bar{background:var(--color-bg);-webkit-backdrop-filter:none;backdrop-filter:none}}.app-glass .ai-chat__panel{background:var(--glass-bg-strong);background-image:var(--glass-grain);-webkit-backdrop-filter:blur(24px)saturate(1.4);backdrop-filter:blur(24px)saturate(1.4)}.app-glass .exercise-combobox__list{background:var(--glass-solid-surface)}.app-glass .coach-nav{z-index:60;border:1px solid var(--glass-border);background:var(--glass-bg);background-image:var(--glass-grain);box-shadow:var(--glass-card-shadow);border-radius:24px;margin:12px 16px 0;position:sticky;top:12px}.app-glass .week-home__segmented{background:var(--glass-button-bg);background-image:var(--glass-grain);box-shadow:var(--glass-button-shadow);border-color:#0000;border-radius:999px}.app-glass .week-home__segmented button,.app-glass .week-home__todo button,.app-glass .week-home__today-actions button{border-radius:999px}.app-glass .week-home__todo button{background:var(--glass-button-bg);background-image:var(--glass-grain);box-shadow:var(--glass-button-shadow);border-color:#0000}.app-glass .week-home__todo,.app-glass .week-board,.app-glass .week-home__today{border-radius:20px}.app-glass .week-home__todo,.app-glass .week-board{box-shadow:var(--glass-card-shadow)}@media (width<=767px){.app-glass .coach-nav{border-radius:20px;margin:8px 8px 0;top:8px}}.app-glass .week-board{background:var(--glass-bg);background-image:var(--glass-grain);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--color-text) 22%, transparent) transparent;border-color:#0000;padding:6px}.app-glass .week-board__row{border-top-color:var(--glass-border)}.app-glass .week-board__row--head{border-top-color:#0000}.app-glass .week-board__day-head{border-radius:14px;margin:4px}.app-glass .week-board__day-head.is-today{background:var(--glass-primary-bg);background-image:var(--glass-grain);color:var(--color-accent-contrast);box-shadow:var(--glass-primary-shadow)}.app-glass .week-board__slot.is-today{background:color-mix(in srgb, var(--color-accent) 7%, transparent);border-radius:18px}.app-glass .week-board__cell{border-radius:16px}.app-glass .week-board__cell--session{background:var(--glass-button-bg);background-image:var(--glass-grain);box-shadow:var(--glass-button-shadow);border-color:#0000}.app-glass .week-board__cell--empty{border-color:color-mix(in srgb, var(--color-text) 18%, transparent);background:var(--glass-bg-subtle)}.app-glass .week-board__cell--empty.is-timed{border-color:var(--color-cat-0-dot)}.app-glass .week-board__cell--session:hover,.app-glass .week-board__cell--empty:hover{background:var(--glass-button-hover);background-image:var(--glass-grain)}.app-glass .week-board__cell--rest{background:var(--glass-bg-subtle)}.app-glass .week-board__band{border-radius:999px}.app-glass .week-editor__status--draft{background:var(--glass-button-bg);background-image:var(--glass-grain);box-shadow:var(--glass-button-shadow);border-color:#0000}:root{--glass-subtlest:#f2e6dc8c}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--glass-subtlest:#2622208c}}:root[data-theme=dark]{--glass-subtlest:#2622208c}.app-glass{--color-surface-subtlest:var(--glass-subtlest)}.app-glass .my-week{background:0 0}.app-glass .my-week__sticky-bar{background:var(--glass-bg);background-image:var(--glass-grain);box-shadow:var(--glass-card-shadow);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:22px;margin-top:8px;padding:12px 14px 0;top:8px}.app-glass :where(.session-card,.my-week__rest-card,.auth-page__card,.account-settings,.exercise-library__athlete-preview){border-color:var(--glass-border);box-shadow:var(--glass-card-shadow);background-image:var(--glass-grain);border-radius:20px}.app-glass .session-card--competition{border-color:var(--color-session-competition-border)}.app-glass :where(.my-week__today-button,.my-week__account-link,.my-week__nearest-plan,.account-page__back,.account-page__logout,.theme-toggle,.language-switcher,.pill:not(.pill--active,.pill--accent),.feedback-form__status-pill:not(.is-active),.feedback-form__warn-toggle:not(.is-active)){background:var(--glass-button-bg);background-image:var(--glass-grain);box-shadow:var(--glass-button-shadow);border-color:#0000;border-radius:999px}.app-glass :where(.pill--active,.pill--accent,.feedback-form__status-pill,.feedback-form__warn-toggle){border-radius:999px}.app-glass :is(.session-card__feedback-button,.feedback-form__submit:not(.is-saved),.auth-page__card button[type=submit],.account-settings button[type=submit]){border-color:#0000;border-radius:999px}.app-glass :is(.session-card__feedback-button,.feedback-form__submit:not(.is-saved),.auth-page__card button[type=submit],.account-settings button[type=submit]):not(:disabled){background:var(--glass-primary-bg);background-image:var(--glass-grain)}.app-glass .field-input{background:var(--glass-button-bg);background-image:var(--glass-grain);border-radius:12px}.app-glass :where(.exercise-library__segmented,.mobile-week-editor__tabs){background:var(--glass-button-bg);background-image:var(--glass-grain);box-shadow:var(--glass-button-shadow);border-color:#0000;border-radius:999px}.app-glass .exercise-library__segmented button,.app-glass .mobile-week-editor__tabs button{border-radius:999px}@media (prefers-reduced-transparency:reduce){.app-glass .my-week__sticky-bar{background:var(--color-bg-athlete);-webkit-backdrop-filter:none;backdrop-filter:none}}.app-glass .year-page__upcoming ul,.app-glass .year-list ul,.app-glass .coach-team-management__list li,.app-glass .coach-management__list li,.app-glass .consent-management__list li{border-color:var(--glass-border);box-shadow:var(--glass-card-shadow);background-image:var(--glass-grain);border-radius:18px}.app-glass .year-board{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--color-text) 22%, transparent) transparent}.app-glass .year-board__entry{border-radius:10px}@media (width<=767px){.app-glass .coach-nav__inner{gap:10px}.app-glass .coach-nav__actions{order:1;margin-left:auto}.app-glass .coach-nav__burger{background:var(--glass-button-bg);background-image:var(--glass-grain);width:40px;height:40px;box-shadow:var(--glass-button-shadow);border-radius:999px;order:2;align-items:center;margin-left:0}.app-glass .coach-nav__burger span{width:18px}.app-glass .coach-nav__links.is-open{background:color-mix(in srgb, var(--glass-solid-surface) 94%, transparent);background-image:var(--glass-grain);box-shadow:var(--glass-card-shadow);border-radius:20px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);left:0;right:0}.app-glass .coach-nav__link,.app-glass .coach-nav__link.is-active,.app-glass .coach-nav__link--account{border:none;border-radius:14px;min-height:44px;margin:0;padding:0 14px}.app-glass .coach-nav__link:hover{background:var(--glass-button-bg)}.app-glass .coach-nav__link.is-active{background:var(--glass-button-bg);background-image:var(--glass-grain);box-shadow:var(--glass-button-shadow);color:var(--color-accent)}}@media (width<=519px){.app-glass .coach-nav__burger{order:1;margin-left:auto}.app-glass .coach-nav__actions{order:2;width:100%;margin-left:0}.app-glass .coach-nav__links.is-open{grid-template-columns:1fr}}.app-glass :where(.day-select-card:not(.is-active),.mobile-day:not(.is-active),.mobile-block-card,.coach-note,.journal-entry,.week-start__option:not(.week-start__option--primary),.connect__copy-value),.app-glass .year-page__facts div,.app-glass .exercise-detail__stats div{background-color:var(--glass-button-bg);background-image:var(--glass-grain)}.app-glass .day-select-card.is-active{background-image:var(--glass-grain)}.app-glass .day-select-card__types{border-top-color:var(--glass-border)}.admin-header{z-index:60;border:1px solid var(--glass-border);background:var(--glass-bg);background-image:var(--glass-grain);max-width:1080px;box-shadow:var(--glass-card-shadow);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:24px;justify-content:space-between;align-items:center;gap:12px;margin:12px auto 0;padding:10px 14px 10px 18px;display:flex;position:sticky;top:12px}.admin-header__brand{color:var(--color-text);align-items:center;gap:8px;font-size:15px;font-weight:800;text-decoration:none;display:inline-flex}.admin-header__brand-dot{color:var(--color-accent)}.admin-header__badge{background:var(--color-text);color:var(--color-bg);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;margin-left:4px;padding:3px 10px;font-size:10.5px;font-weight:800}.admin-header__logout,.admin-page__secondary{background:var(--glass-button-bg);background-image:var(--glass-grain);min-height:38px;box-shadow:var(--glass-button-shadow);color:var(--color-text);cursor:pointer;white-space:nowrap;border:none;border-radius:999px;padding:0 16px;font-family:inherit;font-size:13px;font-weight:700}.admin-header__logout:hover,.admin-page__secondary:hover:not(:disabled){background-color:var(--glass-button-hover)}.admin-page__primary,.admin-page__danger{background:var(--color-accent);min-height:40px;color:var(--color-accent-contrast);cursor:pointer;white-space:nowrap;border:none;border-radius:999px;padding:0 18px;font-family:inherit;font-size:13.5px;font-weight:700}.admin-page__primary:hover:not(:disabled){background:var(--color-accent-hover)}.admin-page__danger{background:var(--color-warn-border);color:#fff}.admin-page__ghost-danger{min-height:38px;color:var(--color-warn-fg);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:700}.admin-page__ghost-danger:hover:not(:disabled){background:var(--color-warn-bg)}.admin-page :is(button:disabled){opacity:.45;cursor:default}.admin-page{flex-direction:column;gap:24px;max-width:1080px;margin:0 auto;padding:28px 24px 64px;display:flex}.admin-page__back{color:var(--color-text-secondary);align-self:flex-start;font-size:13px;font-weight:700;text-decoration:none}.admin-page__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.admin-page__head h1{font-size:34px;line-height:1.1}.admin-page__kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-tertiary);margin:0 0 6px;font-size:11px;font-weight:700}.admin-page__subtitle{color:var(--color-text-secondary);margin:6px 0 0;font-size:15px}.admin-page__rename{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-page__rename .field-input{flex:280px;min-height:48px;font-size:20px;font-weight:800}.admin-page__stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.admin-stat{border:1px solid var(--glass-border);background:var(--glass-bg);background-image:var(--glass-grain);box-shadow:var(--glass-card-shadow);border-radius:20px;flex-direction:column;gap:4px;padding:18px 20px;display:flex}.admin-stat__value{color:var(--color-text);font-size:30px;font-weight:800;line-height:1.1}.admin-stat__label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary);font-size:12px;font-weight:700}.admin-page__notice{background:var(--color-cat-1-bg);color:var(--color-cat-1-fg);border-radius:14px;margin:0;padding:12px 16px;font-size:14px;font-weight:600}.admin-page__muted{color:var(--color-text-tertiary);margin:0;font-size:13.5px}.admin-page__section{flex-direction:column;gap:14px;display:flex}.admin-page__section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-page__section-head h2{font-size:18px}.admin-page__search{border-radius:999px;max-width:280px;min-height:40px;padding:0 16px}.admin-club-list,.admin-coach-list{border:1px solid var(--glass-border);background:var(--glass-bg);background-image:var(--glass-grain);box-shadow:var(--glass-card-shadow);border-radius:22px;flex-direction:column;gap:4px;margin:0;padding:6px;list-style:none;display:flex}.admin-club-list__row,.admin-coach-list__row{color:var(--color-text);border-radius:16px;align-items:center;gap:14px;padding:12px 14px;text-decoration:none;display:flex}a.admin-club-list__row:hover{background:var(--glass-button-bg)}.admin-club-list__avatar{background:var(--color-cat-1-bg);width:40px;height:40px;color:var(--color-cat-1-fg);border-radius:14px;flex:none;place-items:center;font-size:14px;font-weight:800;display:grid}.admin-club-list__main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.admin-club-list__name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:800;overflow:hidden}.admin-club-list__meta{color:var(--color-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.admin-club-list__counts{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.admin-club-list__counts span{background:var(--glass-button-bg);box-shadow:var(--glass-button-shadow);color:var(--color-text-secondary);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.admin-club-list__counts span.is-warning{background:var(--color-warn-bg);color:var(--color-warn-fg)}.admin-club-list__chevron{color:var(--color-text-quaternary);font-size:22px}.admin-coach-list__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.admin-coach-list__confirm{max-width:320px;color:var(--color-warn-fg);font-size:12.5px}.admin-coach-list__message{color:var(--color-cat-1-fg);font-size:12.5px;font-weight:600}.admin-add-coach{border:1px dashed color-mix(in srgb, var(--color-text) 18%, transparent);background:var(--glass-bg-subtle);border-radius:22px;flex-direction:column;gap:12px;padding:20px;display:flex}.admin-add-coach h3{font-size:15px}.admin-add-coach__fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.admin-form{flex-direction:column;gap:14px;display:flex}.admin-form__field{flex-direction:column;display:flex}.admin-form__field .field-input,.admin-add-coach .field-input{min-height:44px;padding:0 14px;font-size:14.5px}.admin-form__hint{color:var(--color-text-tertiary);margin:4px 0 0;font-size:13px}.admin-form__error{background:var(--color-warn-bg);color:var(--color-warn-fg);border-radius:12px;margin:0;padding:10px 14px;font-size:13.5px}@media (width<=720px){.admin-header{margin:8px 8px 0;top:8px}.admin-page{padding:20px 16px 48px}.admin-page__head h1{font-size:28px}.admin-page__search{width:100%;max-width:none}.admin-club-list__row,.admin-coach-list__row{flex-wrap:wrap}.admin-club-list__counts,.admin-coach-list__actions{justify-content:flex-start;width:100%;padding-left:54px}.admin-club-list__chevron{display:none}.admin-add-coach__fields{grid-template-columns:minmax(0,1fr)}}
