@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.border{border-style:var(--tw-border-style);border-width:1px}.lowercase{text-transform:lowercase}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{color-scheme:dark;--bg:#0e0d17;--surface:#191725;--surface-raised:#211c32;--surface-muted:#14121e;--surface-selected:#31243e;--text-primary:#f6f3fc;--text-muted:#b7afc8;--text-subtle:#91899e;--border-subtle:#353042;--border-strong:#77618f;--keyline:#826397;--brand-primary:#bf9bff;--action:#ffbc95;--active:#d3f78b;--success:#9cdebe;--danger:#ffbc95;--info-swim:#90ddec;--radius-sm:14px;--radius-md:17px;--radius-lg:20px;--radius-xl:25px;--focus-ring:#90ddec;color:var(--text-primary);background:var(--bg);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);min-width:320px;margin:0;overflow-x:hidden}button,input,textarea,select{font:inherit}button{cursor:pointer;min-height:44px;color:inherit}button:disabled{cursor:not-allowed;opacity:.52}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.045em;margin-bottom:8px;font-size:1.875rem;font-weight:650;line-height:1.12}h2{letter-spacing:-.025em;margin-bottom:0;font-size:1.05rem}.muted,small{color:var(--text-muted)}.muted{line-height:1.55}.eyebrow{color:var(--brand-primary);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.6875rem;font-weight:750;line-height:1.55}.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}.app-icon,.icon{flex:none;width:20px;height:20px}.brand-illustration{object-fit:contain;flex:none;max-width:100%;display:block}.brand-illustration--micro{width:24px;height:24px}.brand-illustration--small{width:44px;height:44px}.brand-illustration--medium{width:72px;height:72px}.app-shell,.auth-shell,.prototype-shell{width:min(100%,430px);min-height:100dvh;padding:12px 16px calc(92px + env(safe-area-inset-bottom));background:var(--bg);margin:auto;overflow-x:clip}.auth-shell{padding-bottom:max(16px,env(safe-area-inset-bottom));place-items:center;display:grid}.screen-content,.roster,.settings-page,.templates-page,.template-list,.history-sheet,.item-edit-form,.structured-editor,.editor-item,.athlete-week,.athlete-key-sessions,.athlete-workout-detail,.athlete-status,.workout-feedback,.feedback-sheet form{gap:16px;display:grid}.app-header{border-bottom:1px solid #ffffff0a;justify-content:space-between;align-items:center;gap:12px;min-height:56px;margin-bottom:16px;padding-bottom:12px;display:flex}.brand-logo-link{color:inherit;text-decoration:none}.wordmark{color:var(--text-primary);letter-spacing:.14em;align-items:center;gap:9px;margin:0;font-size:1rem;font-weight:900;display:inline-flex}.brand-mark{object-fit:contain;flex:none;width:30px;height:30px}.auth-card,.intervals-card,.invite-form,.share-card,.link-card,.planning-form,.empty-week,.athlete-status,.publish-card,.simple-view article,.template-card,.empty-templates,.progress-summary,.next-race,.volume-list,.race-list,.metrics-grid article{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface)}.auth-card{border-color:var(--keyline);gap:18px;width:min(100%,402px);padding:24px 20px;display:grid}.intervals-card{gap:12px;padding:18px;display:grid}.intervals-card h2,.intervals-card p{margin:0}.auth-card form,.invite-form,.choice-stack,.planning-form,.successor-form{gap:12px;display:grid}.auth-result{align-content:center}.auth-result>p{color:var(--text-muted);margin:0;line-height:1.55}.auth-links,.auth-footnote{color:var(--text-muted);justify-content:space-between;align-items:center;gap:12px;margin:0;font-size:.875rem;display:flex}.auth-links a,.auth-footnote a{color:var(--brand-primary);font-weight:750}.auth-link-button{justify-content:center;align-items:center;text-decoration:none;display:flex}.role-choice{border:0;gap:8px;margin:0;padding:0;display:grid}.role-choice legend{color:var(--text-primary);padding:0;font-size:.85rem;font-weight:700}.role-choice>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.role-choice button{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);min-height:44px;color:var(--text-primary);background:var(--surface-muted);font-weight:750}.role-choice button.selected{border-color:var(--brand-primary);background:var(--surface-raised)}.delivery-state{color:var(--text-muted);font-size:.75rem;line-height:1.45}.auth-card label,.invite-form label,.share-card label,.planning-form label,.item-edit-form label,.structured-editor label{gap:6px;font-size:.85rem;font-weight:700;display:grid}input,textarea,select,.planning-form select,.roster-search input{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;min-height:44px;color:var(--text-primary);background:var(--surface-muted);padding:10px 12px}textarea{resize:vertical;min-height:76px}.primary-button,.athlete-primary-action,.danger-button{color:#1b102a;background:linear-gradient(104deg,#c29af2,var(--brand-primary));border:0;border-radius:14px;width:100%;min-height:52px;padding:12px 16px;font-size:.875rem;font-weight:750}.danger-button{background:var(--danger)}.secondary-button,.athlete-secondary-action,.item-actions button,.link-actions button,.choice-stack>button:not(.primary-button),.bottom-sheet>button:not(.primary-button):not(.danger-button){border:1px solid var(--border-subtle);border-radius:var(--radius-sm);min-height:44px;color:var(--text-primary);background:0 0;padding:9px 12px;font-weight:700}.text-button,.back-button{min-height:44px;color:var(--info-swim);background:0 0;border:0;align-items:center;padding:0;font-size:.8125rem;font-weight:750;text-decoration:none;display:inline-flex}.back-button--icon{border:1px solid var(--border-subtle);width:44px;color:var(--text-primary);background:var(--surface);border-radius:15px;place-items:center;display:grid}.back-button--icon .app-icon{transform:rotate(180deg)}.form-error{color:var(--danger);font-size:.85rem;line-height:1.5}.dialog-actions{justify-content:end;gap:8px;display:flex}.confirmation-dialog{border-radius:var(--radius-md);width:min(100% - 32px,420px);max-height:82dvh;color:var(--text-primary);background:#211b2c;border:1px solid #665174;padding:20px;box-shadow:0 24px 60px #0009}.confirmation-dialog::backdrop{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#07060dba}.roster-heading{justify-content:space-between;align-items:center;gap:12px;min-height:52px;display:flex}.roster-heading-copy{min-width:0;display:grid}.add-athlete-button{border:1px solid var(--keyline);width:44px;min-height:44px;color:var(--text-primary);background:var(--surface);border-radius:50%;place-items:center;display:grid}.roster-overview{gap:22px;padding:12px 0 8px;display:grid}.roster-overview__copy h1{margin:10px 0 12px}.roster-overview__copy>p:last-child{max-width:390px;color:var(--text-muted);margin-bottom:0;font-size:.8125rem;line-height:1.65}.roster-overview__stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.roster-overview__stats>div{border:1px solid var(--border-subtle);background:var(--surface);border-radius:16px;gap:10px;min-height:96px;padding:13px 10px;display:grid}.roster-overview__stats dt{color:var(--text-muted);font-size:.65rem;line-height:1.35}.roster-overview__stats dd{letter-spacing:-.055em;margin:0;font-size:1.875rem;font-weight:600;line-height:1}.roster-section-heading,.section-heading{justify-content:space-between;align-items:center;gap:12px;margin-top:2px;display:flex}.roster-section-heading h2{font-size:1rem}.roster-section-heading span{color:var(--text-muted);font-size:.75rem}.roster-search input{font-size:.8125rem}.roster-filters{scrollbar-width:none;gap:8px;margin-inline:-1px;padding-bottom:2px;display:flex;overflow-x:auto}.roster-filters::-webkit-scrollbar{display:none}.roster-filters button{border:1px solid var(--border-subtle);min-height:44px;color:var(--text-muted);white-space:nowrap;background:0 0;border-radius:999px;flex:none;padding:8px 11px;font-size:.6875rem;font-weight:700}.roster-filters button.active{border-color:var(--keyline);color:var(--text-primary);background:var(--surface-selected)}.roster-filters button span{color:#211c32;background:var(--active);border-radius:999px;place-items:center;min-width:18px;margin-left:5px;font-size:.66rem;display:inline-grid}.roster-list{gap:0;display:grid}.athlete-card{width:100%;color:inherit;text-align:left;border-bottom:1px solid #ffffff14;grid-template-columns:minmax(0,1fr);gap:10px;padding:14px 0;text-decoration:none;display:grid}.athlete-card:hover{color:inherit}.athlete-card-heading,.athlete-identity,.athlete-calendar-count{align-items:center;gap:12px;display:flex}.athlete-card-heading{justify-content:space-between}.athlete-identity,.athlete-identity>div{min-width:0}.athlete-avatar{border:1px solid var(--keyline);color:#e4c8ff;letter-spacing:.04em;background:#443151;border-radius:14px;flex:none;place-items:center;width:40px;height:40px;font-size:.72rem;font-weight:850;display:grid}.athlete-card h2{margin:0;font-size:.875rem;font-weight:650;line-height:1.25}.athlete-card-heading p{color:var(--text-muted);margin:4px 0 0;font-size:.75rem}.plan-state{border:1px solid var(--border-subtle);max-width:132px;color:var(--text-muted);background:var(--surface);text-align:right;border-radius:999px;flex:none;padding:5px 8px;font-size:.625rem;font-weight:800}.attention-chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.attention-chips li{color:#c5bdcf;background:#ffffff05;border:1px solid #ffffff14;border-radius:9px;align-items:center;gap:5px;min-height:28px;padding:4px 7px;font-size:.72rem;display:inline-flex}.attention-chips li span{color:var(--action)}.athlete-calendar-count{min-height:32px;color:var(--text-muted);justify-content:space-between;margin:0;padding-top:2px;font-size:.6875rem;font-weight:750}.athlete-calendar-count .app-icon{width:19px;color:var(--action)}.empty-roster{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface);gap:12px;padding:20px;display:grid}.coach-bottom-nav,.bottom-nav{z-index:12;width:min(100%,430px);min-height:calc(76px + env(safe-area-inset-bottom));padding:0 10px env(safe-area-inset-bottom);border-top:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#14121edb;grid-template-columns:repeat(2,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.coach-bottom-nav--with-week{grid-template-columns:repeat(3,1fr)}.athlete-nav{grid-template-columns:repeat(4,1fr)}.coach-bottom-nav a,.bottom-nav button{min-height:60px;color:var(--text-muted);background:0 0;border:0;border-radius:0;align-content:center;place-items:center;gap:4px;padding:6px 4px;font-size:.6875rem;font-weight:750;text-decoration:none;display:grid;position:relative}.coach-bottom-nav a.active:before,.bottom-nav button.active:before{background:var(--brand-primary);content:"";border-radius:0 0 4px 4px;width:24px;height:3px;position:absolute;top:0}.coach-bottom-nav__brand{display:none}.coach-week-header{gap:8px;min-height:60px;padding-bottom:10px}.coach-week-header__context{background:0 0;border:0;flex:1;align-items:center;gap:9px;min-width:0;padding:0;display:flex}.coach-week-header__context .athlete-avatar{width:40px;height:40px}.coach-week-header__context>div{min-width:0}.coach-week-header__context strong,.coach-week-header__context p{text-overflow:ellipsis;white-space:nowrap;margin:0;display:block;overflow:hidden}.coach-week-header__context strong{font-size:.8125rem}.coach-week-header__context p{color:var(--text-muted);margin-top:2px;font-size:.6875rem}.coach-week-header__context .status-label{display:none}.week-header-actions{justify-content:flex-end;align-items:center;display:flex}.week-actions,.account-menu{flex:none;position:relative}.week-actions__trigger,.profile-button,.link-actions__trigger{border:1px solid var(--border-subtle);width:44px;min-height:44px;color:var(--text-primary);background:var(--surface);border-radius:15px;place-items:center;display:grid}.profile-button>span{display:none}.week-actions__menu,.account-menu__panel,.link-actions__menu{z-index:40;border-radius:var(--radius-md);background:#211b2c;border:1px solid #665174;min-width:206px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 14px 28px #0006}.account-menu__panel{min-width:164px}.week-actions__menu button,.account-menu__panel button,.link-actions__menu button{border-radius:var(--radius-sm);min-height:44px;color:var(--text-primary);text-align:left;background:0 0;border:0;padding:8px 10px}.week-actions__menu button:hover,.account-menu__panel button:hover,.link-actions__menu button:hover{background:var(--surface-selected)}.coach-week-navigation,.athlete-week-navigation{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:10px;display:grid}.coach-week-navigation>div,.athlete-week-navigation>div{text-align:center;min-width:0}.coach-week-navigation h1,.athlete-week-navigation h1{letter-spacing:-.025em;font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:1.125rem;font-weight:650;line-height:1.18}.coach-week-navigation__button,.athlete-week-navigation__button{border:1px solid var(--border-subtle);width:44px;height:44px;color:var(--text-primary);background:var(--surface);border-radius:15px;place-items:center;padding:0;display:grid}.coach-week-navigation__button--previous .app-icon,.athlete-week-navigation__button--previous .app-icon{transform:rotate(180deg)}.coach-week-intro{gap:9px;padding:2px 0 4px;display:grid}.coach-week-intro>div{color:var(--text-muted);justify-content:space-between;align-items:center;gap:12px;font-size:.75rem;display:flex}.coach-week-intro>div>span{border:1px solid var(--keyline);color:#d9befb;background:var(--surface-selected);border-radius:999px;flex:none;padding:6px 10px;font-size:.6875rem}.coach-week-intro>div p{text-align:right;margin:0}.week-map{gap:10px;display:grid}.week-cells{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.day-cell{text-align:left;border:1px solid var(--border-subtle);min-width:0;min-height:151px;color:var(--text-primary);background:var(--surface);border-radius:15px;grid-template-columns:1fr 28px;align-content:start;align-items:center;padding:12px 9px;display:grid;position:relative;overflow:hidden}.day-cell:before{content:"";background:#f4f3fc57;width:24px;height:2px;position:absolute;top:0;left:14px}.day-cell-date{font-size:.75rem;font-weight:800;color:var(--text-primary)!important}.day-cell-weekday{color:var(--text-muted);letter-spacing:.065em;margin-top:-2px;font-size:.625rem}.day-cell-sport-icon{width:27px;height:27px;color:var(--info-swim);grid-area:1/2/3}.day-cell strong{grid-column:1/-1;min-height:2.2em;margin:9px 0 8px;font-size:.75rem;line-height:1.2}.day-cell-volume{color:var(--text-primary);letter-spacing:-.03em;grid-column:1/-1;font-size:1.04rem;font-weight:650}.day-cell-detail{-webkit-line-clamp:2;color:var(--text-muted);-webkit-box-orient:vertical;grid-column:1/-1;margin-top:4px;font-size:.625rem;line-height:1.25;display:-webkit-box;overflow:hidden}.day-cell em{width:fit-content;color:var(--text-muted);grid-column:1/-1;margin-top:auto;padding-top:8px;font-size:.625rem;font-style:normal}.total-cell{background:#2c2040;border:1px solid #755595;border-radius:15px;align-content:start;gap:8px;min-height:151px;padding:12px;display:grid}.total-cell .brand-illustration,.total-cell .app-icon{width:28px;height:28px;color:var(--brand-primary)}.total-cell strong{font-size:.875rem}.total-cell span{color:var(--text-muted);font-size:.75rem}.total-cell small{color:var(--active);font-size:.75rem;font-weight:750}.coach-week-insight{color:#d3bcae;background:#2c231f;border:1px solid #604637;border-radius:16px;gap:11px;padding:16px;display:flex}.coach-week-insight .app-icon{color:var(--action);margin-top:1px}.coach-week-insight p{margin:0;font-size:.8125rem;line-height:1.6}.coach-week-insight strong{color:#ffcfab;font-weight:650}.lifecycle-actions,.draft-context,.change-request-status,.coach-feedback-context,.athlete-calendar-context,.resolution{border:1px solid var(--keyline);border-radius:var(--radius-md);background:var(--surface-selected);gap:10px;padding:14px;display:grid}.lifecycle-actions--sticky{z-index:2;bottom:calc(10px + env(safe-area-inset-bottom));position:sticky}.planning-form fieldset,.structured-editor fieldset{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);gap:10px;min-width:0;padding:10px;display:grid}.structured-editor legend{padding:0 5px;font-size:.875rem;font-weight:800}.editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.editor-item,.day-items article{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-muted);padding:10px}.item-actions{flex-wrap:wrap;gap:7px;display:flex}.sheet-backdrop{z-index:30;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#07060dba;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.bottom-sheet,.athlete-sheet,.day-sheet{width:min(100%,430px);max-height:88dvh;padding:20px 16px calc(20px + env(safe-area-inset-bottom));background:#211b2c;border:1px solid #665174;border-radius:25px 25px 0 0;gap:12px;display:grid;overflow-y:auto;box-shadow:0 -18px 42px #0000008c}.day-sheet header,.athlete-sheet header{justify-content:space-between;align-items:center;gap:10px;display:flex}.day-sheet header button,.athlete-sheet header button{border:1px solid var(--border-subtle);width:44px;min-height:44px;color:var(--text-primary);background:0 0;border-radius:14px;place-items:center;font-size:1.4rem;display:grid}.sheet-handle{background:#77618f;border-radius:999px;width:38px;height:4px;margin:0 auto 2px;display:block}.sheet-context{color:var(--text-muted);font-size:.8125rem;line-height:1.6}.command-sheet__header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.command-sheet__header h2,.command-sheet__status h3,.command-diff__group h3{margin:0}.command-sheet__header button{border:1px solid var(--border-subtle);width:44px;min-height:44px;color:var(--text-primary);background:0 0;border-radius:14px;flex:none;place-items:center;font-size:1.4rem;display:grid}.command-sheet__form textarea{resize:vertical;min-height:120px}.voice-recorder{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-muted);gap:8px;padding:12px;display:grid}.voice-recorder p,.voice-recorder__hint{color:var(--text-muted);margin:0;font-size:.8125rem;line-height:1.45}.voice-recorder__transcript{gap:8px;display:grid}.voice-recorder__transcript textarea{min-height:96px}.command-sheet__status,.command-diff{gap:12px;display:grid}.command-sheet__status{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-muted);padding:14px}.command-sheet__status p,.command-diff__notice,.command-diff__group p{color:var(--text-muted);margin:0;font-size:.875rem;line-height:1.5}.command-diff__notice{border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface-muted);padding:12px}.command-diff__group{gap:8px;display:grid}.command-diff__group article{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-muted);gap:4px;padding:12px;display:grid}.command-diff__group article>span{color:var(--text-muted);font-size:.75rem}.settings-page{gap:14px}.settings-page__heading{gap:9px;padding:6px 0 2px;display:grid}.settings-page__heading h1{margin:0}.profile-summary{border:1px solid var(--border-subtle);background:var(--surface);border-radius:18px;align-items:center;gap:15px;padding:18px;display:flex}.profile-summary__avatar{background:#53396b;border-radius:16px;place-items:center;width:50px;height:50px;display:grid}.profile-summary>div{gap:5px;display:grid}.profile-summary small{font-size:.75rem}.settings-group{border:1px solid var(--border-subtle);background:var(--surface);border-radius:18px;padding:18px 16px 2px}.settings-group--principle{padding-bottom:18px}.settings-group--principle>p:last-child{color:var(--text-muted);margin:10px 0 0;font-size:.8125rem;line-height:1.65}.settings-link{border-bottom:1px solid var(--border-subtle);color:inherit;grid-template-columns:20px minmax(0,1fr) 20px;align-items:center;gap:12px;padding:14px 0;text-decoration:none;display:grid}.settings-link:last-child{border-bottom:0}.settings-link--button{width:100%;color:inherit;text-align:left;background:0 0;border-width:0 0 1px}.settings-link--button:last-child{border-bottom:0}.settings-link span{gap:3px;min-width:0;display:grid}.settings-link strong{font-size:.875rem}.settings-link small{font-size:.72rem;line-height:1.3}.link-list{gap:0;display:grid}.link-card{background:0 0;border-width:0 0 1px;border-radius:0;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;display:flex}.link-card>div:first-child{min-width:0}.link-card strong,.link-card small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.link-card small,.link-card p{color:var(--text-muted);margin:3px 0 0;font-size:.75rem}.link-actions{align-items:center;gap:8px;display:flex;position:relative}.link-actions>button:not(.link-actions__trigger){min-height:36px;color:var(--info-swim)}.link-actions__trigger{border-radius:50%;width:40px;min-height:40px}.invite-form,.share-card{gap:14px;padding:16px;display:grid}.template-list{gap:12px;display:grid}.template-card{justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.template-card h2{font-size:.95rem}.template-card p{color:var(--text-muted);margin:5px 0 0;font-size:.78rem}.template-card button{border:1px solid var(--border-subtle);min-height:40px;color:var(--text-primary);background:0 0;border-radius:10px;padding:7px 10px;font-size:.75rem}.empty-templates,.empty-week{padding:18px}.athlete-week-navigation h1{font-size:1.3rem}.athlete-week-map{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.athlete-day,.athlete-key-session,.athlete-workout-row{border:1px solid var(--border-subtle);min-height:142px;color:var(--text-primary);text-align:left;background:var(--surface);border-radius:15px;align-content:start;gap:6px;padding:12px 10px;display:grid;position:relative;overflow:hidden}.athlete-day:before,.athlete-key-session:before,.athlete-workout-row:before{content:"";background:#f4f3fc57;width:24px;height:2px;position:absolute;top:0;left:14px}.athlete-day[data-sport=swim]:before,.athlete-key-session[data-sport=swim]:before,.athlete-workout-row[data-sport=swim]:before{background:var(--info-swim)}.athlete-day[data-sport=bike]:before,.athlete-key-session[data-sport=bike]:before,.athlete-workout-row[data-sport=bike]:before{background:var(--action)}.athlete-day[data-sport=run]:before,.athlete-key-session[data-sport=run]:before,.athlete-workout-row[data-sport=run]:before{background:var(--success)}.athlete-day[data-sport=core]:before,.athlete-key-session[data-sport=core]:before,.athlete-workout-row[data-sport=core]:before{background:var(--brand-primary)}.athlete-day:hover,.athlete-key-session:hover,.athlete-workout-row:hover{border-color:var(--brand-primary);background:var(--surface-selected)}.athlete-day>span{color:var(--text-primary);font-size:.75rem;font-weight:800}.athlete-day>strong{min-height:2.2em;font-size:.8rem;line-height:1.16}.athlete-day>small,.athlete-key-session small,.athlete-workout-row small{color:var(--text-muted);font-size:.68rem}.athlete-day--today{border-color:var(--active);background:var(--success)}@supports (color:color-mix(in lab,red,red)){.athlete-day--today{background:color-mix(in srgb,var(--success) 10%,var(--surface))}}.athlete-day--today{box-shadow:inset 0 0 0 1px var(--active)}@supports (color:color-mix(in lab,red,red)){.athlete-day--today{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--active) 42%,transparent)}}.athlete-day em,.athlete-changed{color:#211c32;background:var(--active);border-radius:999px;width:fit-content;margin-top:auto;padding:3px 6px;font-size:.62rem;font-style:normal;font-weight:800}.athlete-changed{width:auto;color:var(--danger);background:#ffe3e2;border:1px solid #ffd1d0;margin:0}.athlete-total{background:#2c2040;border:1px solid #755595;border-radius:15px;gap:6px;min-height:142px;padding:12px;display:grid}.athlete-total .brand-illustration,.athlete-total .app-icon{width:28px;color:var(--brand-primary)}.athlete-total span{color:var(--text-muted);font-size:.75rem}.athlete-total strong{color:var(--active);font-variant-numeric:tabular-nums;font-size:1rem}.athlete-key-sessions h2{margin-bottom:0}.sport-indicator{min-width:0;color:var(--text-muted);align-items:center;gap:6px;font-size:.72rem;display:inline-flex}.athlete-sheet{width:100%;max-height:none;position:static;transform:none}.athlete-workout-detail{z-index:32;width:min(100%,430px);min-height:100dvh;padding:16px 16px calc(32px + env(safe-area-inset-bottom));background:var(--bg);margin:auto;position:fixed;inset:0;overflow-y:auto}.athlete-workout-heading{align-items:center;gap:12px;display:flex}.athlete-workout-heading>div{min-width:0}.athlete-workout-heading h1{margin:0}.athlete-purpose{margin:0;font-size:1.05rem;line-height:1.45}.athlete-volume{color:var(--active);margin:0;font-size:1.15rem;font-weight:800}.athlete-workout-detail section,.athlete-workout-detail .athlete-brick{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface);padding:14px}.athlete-steps{gap:10px;margin:0;padding-left:22px;display:grid}.athlete-steps li p{color:var(--text-muted);margin:4px 0 0}.athlete-brick{color:var(--active)}.athlete-back{border:1px solid var(--border-subtle);min-width:44px;color:var(--text-primary);background:var(--surface);border-radius:12px;padding:8px 12px}.feedback-sheet fieldset{border:1px solid var(--border-subtle);border-radius:12px;gap:8px;min-width:0;margin:0;display:grid}.feedback-sheet legend{padding:0 5px;font-weight:700}.rpe-options{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.rpe-options label,.choice-stack label{align-items:center;gap:6px;min-height:44px;display:flex}.rpe-options input,.choice-stack input{width:20px;min-height:20px}.success-message{color:var(--success);font-weight:800}.pull-to-refresh{z-index:50;top:max(8px,env(safe-area-inset-top));border:1px solid var(--keyline);min-height:44px;color:var(--text-primary);background:var(--surface);opacity:0;pointer-events:none;border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 7px;transition:opacity .18s;display:inline-flex;position:fixed;left:50%;transform:translate(-50%)}.pull-to-refresh--pulling,.pull-to-refresh--armed,.pull-to-refresh--refreshing{opacity:1}.pull-to-refresh__orb{border:2px solid var(--brand-primary);border-top-color:var(--info-swim);border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.pull-to-refresh__orb span{background:var(--action);border-radius:50%;width:8px;height:8px}.pull-to-refresh--refreshing .pull-to-refresh__orb{animation:.76s linear infinite pull-to-refresh-spin}.pull-to-refresh__label{white-space:nowrap;font-size:.74rem;font-weight:800}@keyframes pull-to-refresh-spin{to{transform:rotate(360deg)}}@media(min-width:600px){.app-shell,.prototype-shell{width:min(100% - 64px,1120px);max-width:none;padding:22px 32px calc(96px + env(safe-area-inset-bottom))}.auth-shell{width:min(100% - 48px,640px);max-width:none;padding:32px 24px}.auth-card{width:min(100%,520px)}.roster-overview{gap:26px}.roster-overview__copy h1{font-size:2.5rem}.roster-overview__stats>div{min-height:122px;padding:18px}.roster-overview__stats dt{font-size:.78rem}.roster-overview__stats dd{font-size:2.4rem}.roster-list,.template-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}.athlete-card{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface);min-height:160px;padding:16px}.athlete-calendar-count{margin-top:auto}.week-cells,.athlete-week-map{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.day-cell,.athlete-day{min-height:158px}.athlete-key-sessions{grid-template-columns:repeat(2,minmax(0,1fr))}.athlete-key-sessions h2,.athlete-key-sessions>p{grid-column:1/-1}.sheet-backdrop{align-items:center;padding:24px}.bottom-sheet,.athlete-sheet,.day-sheet{border-radius:var(--radius-xl);width:min(100%,560px);max-height:min(82dvh,760px);padding:24px}.athlete-workout-detail{border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:min(100% - 48px,900px);min-height:auto;inset:24px;box-shadow:0 24px 60px #0000008c}}@media(min-width:1000px){:root{--desktop-rail-width:220px}.app-shell{width:calc(100% - var(--desktop-rail-width));max-width:none;min-height:100dvh;margin:0 0 0 var(--desktop-rail-width);padding:22px clamp(40px,4vw,64px) 48px}.auth-shell{width:min(100% - 64px,640px);margin:auto}.app-shell .app-header,.app-shell .screen-content,.app-shell .athlete-week{width:min(100%,1440px);margin-inline:auto}.coach-bottom-nav{z-index:20;width:var(--desktop-rail-width);border:0;border-right:1px solid var(--border-subtle);-webkit-backdrop-filter:none;backdrop-filter:none;background:#14111e;flex-direction:column;gap:9px;min-height:100dvh;padding:35px 16px 25px;display:flex;position:fixed;inset:0 auto 0 0;transform:none}.coach-bottom-nav__brand{margin:0 10px 40px;display:block}.coach-bottom-nav a{border-radius:12px;grid-template-columns:22px minmax(0,1fr);align-content:center;place-items:center start;gap:14px;width:100%;min-height:52px;padding:8px 12px;font-size:.875rem}.coach-bottom-nav a.active{background:#2e233c}.coach-bottom-nav a.active:before,.app-shell:has(.coach-bottom-nav) .app-header .brand-logo-link{display:none}.roster-list,.template-list{grid-template-columns:repeat(3,minmax(0,1fr))}.roster-overview{max-width:760px}.screen-content:has(.week-map){grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:14px 22px;display:grid}.screen-content:has(.week-map)>.coach-week-navigation,.screen-content:has(.week-map)>.coach-week-intro,.screen-content:has(.week-map)>.empty-week,.screen-content:has(.week-map)>[role=status],.screen-content:has(.week-map)>[role=alert]{grid-column:1/-1}.screen-content:has(.week-map)>.week-map{grid-column:1}.screen-content:has(.week-map)>.coach-week-insight,.screen-content:has(.week-map)>.lifecycle-actions,.screen-content:has(.week-map)>.coach-feedback-context{grid-column:2}.screen-content:has(.week-map) .week-cells{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.screen-content:has(.week-map) .day-cell{min-height:167px;padding:15px}.screen-content:has(.week-map) .lifecycle-actions--sticky{top:32px;bottom:auto}.app-shell:has(.athlete-week) .app-header{z-index:20;width:var(--desktop-rail-width);border-right:1px solid var(--border-subtle);background:#14111e;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:28px;min-height:100dvh;margin:0;padding:35px 16px 25px;display:flex;position:fixed;inset:0 auto 0 0}.app-shell:has(.athlete-week) .app-header .account-menu{width:100%}.app-shell:has(.athlete-week) .app-header .profile-button{border-radius:var(--radius-sm);grid-template-columns:20px minmax(0,1fr);justify-content:start;gap:10px;width:100%;padding:0 12px;font-size:.8125rem}.app-shell:has(.athlete-week) .app-header .profile-button>span{display:inline}.app-shell:has(.athlete-week) .athlete-week{grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:14px 22px;display:grid}.app-shell:has(.athlete-week) .athlete-week>.athlete-week-navigation,.app-shell:has(.athlete-week) .athlete-week>.athlete-changed{grid-column:1/-1}.app-shell:has(.athlete-week) .athlete-week-map{grid-column:1}.app-shell:has(.athlete-week) .athlete-key-sessions{grid-column:2;grid-template-columns:1fr}.app-shell:has(.athlete-week) .athlete-key-sessions h2,.app-shell:has(.athlete-week) .athlete-key-sessions>p{grid-column:auto}.sheet-backdrop{padding-left:calc(var(--desktop-rail-width) + 24px)}.bottom-sheet,.athlete-sheet,.day-sheet{width:min(100%,680px)}.athlete-workout-detail{left:var(--desktop-rail-width);width:calc(100% - var(--desktop-rail-width) - 64px);max-width:1100px;padding:32px clamp(24px,4vw,56px) 48px}}@font-face{font-family:Manrope;src:url(/assets/fonts/Manrope-Variable.woff2)format("woff2");font-display:swap;font-weight:400 800}:root{color-scheme:light;--bg:#eef1f6;--surface:#fff;--surface-raised:#f8faff;--surface-muted:#f8faff;--surface-selected:#e0e9ff;--text-primary:#141925;--text-muted:#59677f;--text-subtle:#6f7e96;--border-subtle:#d6ddea;--border-strong:#b4c2da;--keyline:#d6ddea;--brand-primary:#365cf5;--action:#ef5b60;--active:#246c55;--success:#246c55;--danger:#a63144;--info-swim:#237da7;--focus-ring:#365cf5;--radius-sm:14px;--radius-md:21px;--radius-lg:24px;--radius-xl:30px;color:var(--text-primary);background:var(--bg);font-family:Manrope,ui-sans-serif,system-ui,sans-serif}html,body{background:var(--bg)}body{color:var(--text-primary)}h1,h2,h3{font-weight:800}h1{letter-spacing:-.06em}.eyebrow{color:var(--brand-primary);font-weight:800}.app-shell,.auth-shell,.prototype-shell{width:min(100%,1000px);min-height:100dvh;padding:16px 20px calc(96px + env(safe-area-inset-bottom));background:var(--bg)}.auth-shell{width:min(100%,560px)}.app-header,.roster-heading{border-bottom:1px solid var(--border-subtle);min-height:66px;margin-bottom:12px;padding-bottom:12px}.wordmark{color:var(--text-primary);letter-spacing:-.045em;font-weight:800}.brand-mark{width:31px;height:31px}.auth-card,.intervals-card,.invite-form,.share-card,.link-card,.planning-form,.empty-week,.athlete-status,.publish-card,.simple-view article,.template-card,.empty-templates,.progress-summary,.next-race,.volume-list,.race-list,.metrics-grid article,.empty-roster,.profile-summary,.settings-group,.coach-feedback-context,.athlete-calendar-context,.resolution,.lifecycle-actions,.draft-context,.change-request-status,.editor-item,.day-items article,.voice-recorder,.command-sheet__status,.command-diff__group article{background:linear-gradient(135deg,#fff,#f7f9fd);border-color:#fff;box-shadow:0 3px #1729550a,0 9px 20px #2434540a}.auth-card{border-color:#b4c2da;border-radius:24px;padding:30px}.auth-card .wordmark{margin-bottom:5px}.auth-card h1{font-size:clamp(2rem,6vw,3.2rem)}.auth-card label,.invite-form label,.share-card label,.planning-form label,.item-edit-form label,.structured-editor label{color:var(--text-primary);font-weight:750}input,textarea,select,.planning-form select,.roster-search input{border-color:var(--border-subtle);color:var(--text-primary);background:var(--surface);border-radius:14px}input:hover,textarea:hover,select:hover{border-color:#9aabd0}.primary-button,.athlete-primary-action{color:#fff;background:var(--brand-primary);border-radius:999px;box-shadow:0 5px 10px #365cf52e}.primary-button:hover,.athlete-primary-action:hover{background:#2444bf}.danger-button{color:#fff;background:var(--danger);border-radius:999px}.secondary-button,.athlete-secondary-action,.item-actions button,.link-actions button,.choice-stack>button:not(.primary-button),.bottom-sheet>button:not(.primary-button):not(.danger-button){border-color:var(--border-strong);color:#31445f;background:#fff;border-radius:999px}.text-button,.back-button{color:var(--brand-primary)}.form-error{color:var(--danger)}.confirmation-dialog,.week-actions__menu,.account-menu__panel,.link-actions__menu{color:var(--text-primary);background:linear-gradient(135deg,#fff,#edf2fb);border-color:#fff;box-shadow:0 24px 60px #17295533}.confirmation-dialog::backdrop,.sheet-backdrop{background:#14192561}.roster-overview{gap:20px;padding-top:14px}.roster-overview__copy h1{max-width:600px;font-size:clamp(2rem,6vw,4rem);line-height:.98}.roster-overview__greeting-accent{color:var(--brand-primary)}.roster-overview__stats{gap:10px}.roster-overview__stats>div{background:linear-gradient(135deg,#fff,#f7f9fd);border-color:#fff;border-radius:21px;min-height:104px;box-shadow:0 3px #1729550a,0 9px 20px #2434540a}.roster-overview__stat--attention{background:linear-gradient(135deg,#fff2ef,#ffe3e2)!important;border-color:#ffd6d4!important}.roster-overview__stat--attention dd{color:var(--danger)}.roster-overview__stat--plan dd{color:var(--brand-primary)}.add-athlete-button,.week-actions__trigger,.profile-button,.link-actions__trigger,.coach-week-navigation__button,.athlete-week-navigation__button,.back-button--icon{color:var(--text-primary);background:linear-gradient(140deg,#fff,#e6ebf3);border-color:#fff;border-radius:50%;box-shadow:0 3px #1729550a,0 9px 20px #2434540a}.roster-filters button{border-color:var(--border-subtle);color:var(--text-muted);background:#fff}.roster-filters button.active{color:#fff;background:#172039;border-color:#172039}.roster-filters button span{color:#fff;background:var(--brand-primary)}.roster-list{gap:14px}.athlete-card{background:linear-gradient(135deg,#fff,#f7f9fd 72%,#e7edf7);border:1px solid #fff;border-radius:24px;gap:12px;min-height:204px;padding:18px;box-shadow:0 3px #1729550a,0 9px 20px #2434540a}.athlete-avatar,.profile-summary__avatar{color:#244188;background:linear-gradient(130deg,#cadbff,#a1baff);border-color:#fff;border-radius:50%}.athlete-card h2{font-weight:800}.plan-state{color:#2b4caa;background:#e2eaff;border-color:#bdcdf5}.plan-state.published{color:var(--success);background:#e5f2eb;border-color:#b5d3c3}.plan-state.due{color:var(--danger);background:#ffe3e2;border-color:#ffd1d0}.attention-chips li{color:#485875;background:#fff;border-color:#e1e7f0}.attention-chips li span,.athlete-calendar-count .app-icon{color:var(--action)}.coach-bottom-nav,.bottom-nav{background:#f9fbfff0;border-color:#fff;box-shadow:0 -5px 25px #1835640d}.coach-bottom-nav a,.bottom-nav button{color:var(--text-muted);border-radius:17px}.coach-bottom-nav a.active,.bottom-nav button.active{color:#2b4cc6;background:#e3ebff}.coach-bottom-nav a.active:before,.bottom-nav button.active:before{display:none}.coach-week-intro>div>span{color:#2b4caa;background:#e2eaff;border-color:#bdcdf5}.week-cells{gap:12px}.day-cell,.total-cell,.athlete-day,.athlete-total,.athlete-key-session{color:var(--text-primary);background:linear-gradient(135deg,#fff,#f9fbff 60%,#e9eef7);border-color:#fff;border-radius:21px;box-shadow:0 3px #1729550a,0 9px 20px #2434540a}.day-cell:hover,.day-cell[aria-pressed=true]{border-color:var(--brand-primary);background:#e0e9ff}.day-cell:before{background:#b8c6dd}.day-cell[data-sport=swim]:before{background:#237da7}.day-cell[data-sport=bike]:before{background:#ef8d55}.day-cell[data-sport=run]:before{background:#246c55}.day-cell[data-sport=core]:before{background:#365cf5}.day-cell[data-sport=bike] .day-cell-sport-icon{color:#cb6c27}.day-cell[data-sport=run] .day-cell-sport-icon{color:#246c55}.day-cell[data-sport=core] .day-cell-sport-icon{color:#365cf5}.total-cell{background:linear-gradient(135deg,#c9daff,#9db8ff);border-color:#c8d7ff}.total-cell strong,.total-cell span,.total-cell small{color:#1e3d98}.coach-week-insight{color:#774353;background:linear-gradient(130deg,#fff0ec,#ffe1e1);border-color:#ffd1d0;box-shadow:0 3px #1729550a,0 9px 20px #2434540a}.coach-week-insight .app-icon,.coach-week-insight strong{color:#84283e}.planning-form fieldset,.structured-editor fieldset{border-color:var(--border-subtle);background:#fff}.bottom-sheet,.athlete-sheet,.day-sheet{width:min(100%,560px);color:var(--text-primary);background:linear-gradient(135deg,#f9fbff,#e3ebfc);border-color:#fff;border-radius:30px 30px 0 0;box-shadow:0 -18px 42px #17295538}.sheet-handle{background:#9aabd0}.day-sheet header button,.athlete-sheet header button,.command-sheet__header button{color:var(--text-primary);background:#fff;border-color:#fff}.command-diff__notice{border-left-color:var(--brand-primary);background:#e0e9ff}.command-diff__group--added h3{color:var(--success)}.command-diff__group--changed h3{color:var(--brand-primary)}.command-diff__group--removed h3,.command-diff__group--blocked h3{color:var(--danger)}.settings-page__heading,.templates-page>div,.screen-content>.section-heading{padding-top:8px}.profile-summary{background:linear-gradient(120deg,#dbe7ff,#b8cdff);border-radius:24px}.settings-group{border-radius:24px}.settings-link{border-color:var(--border-subtle);color:var(--text-primary)}.settings-link:hover{color:var(--brand-primary)}.link-card,.template-card{border-radius:24px}.success-message{color:var(--success);background:#e5f2eb;border-color:#b5d3c3}@media(min-width:600px){.app-shell,.prototype-shell{width:min(100%,1200px);padding-inline:32px}.roster-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.week-cells,.athlete-week-map{grid-template-columns:repeat(4,minmax(0,1fr))}.sheet-backdrop{align-items:center;padding:24px}.bottom-sheet,.athlete-sheet,.day-sheet{border-radius:30px}}@media(min-width:1000px){.app-shell,.prototype-shell{width:min(100%,1520px);min-height:100dvh;margin-left:224px;padding:28px 48px 48px}.auth-shell{width:min(100%,700px);margin:auto}.coach-bottom-nav,.bottom-nav{background:linear-gradient(150deg,#fff,#e7edf8);border:0;border-right:1px solid #fff;flex-direction:column;width:224px;height:100dvh;min-height:100dvh;padding:34px 16px 24px;display:flex;top:0;bottom:auto;left:0;transform:none}.coach-bottom-nav__brand{margin:0 12px 42px;display:block}.coach-bottom-nav a,.bottom-nav button{justify-content:flex-start;align-items:center;gap:14px;min-height:54px;padding:0 17px;font-size:.8125rem;display:flex}.coach-bottom-nav a.active,.bottom-nav button.active{color:#fff;background:var(--brand-primary);box-shadow:0 5px 10px #365cf526}.roster-list{grid-template-columns:repeat(3,minmax(0,1fr))}.athlete-card{min-height:272px}.week-map{grid-template-columns:minmax(0,1fr) 278px;align-items:start;gap:18px}.week-cells{grid-template-columns:repeat(2,minmax(0,1fr))}.coach-week-insight{min-height:150px}}@media(min-width:1320px){.week-cells{grid-template-columns:repeat(4,minmax(0,1fr))}.app-shell{padding-inline:48px}.screen-content:has(.week-map) .week-cells{grid-template-columns:repeat(4,minmax(0,1fr))}.screen-content:has(.week-map) .day-cell{min-height:190px}}@media(max-width:359px){.app-shell,.prototype-shell{padding-inline:14px}.roster-overview__stats>div{padding:11px 8px}.roster-overview__stats dt{font-size:.6rem}.day-cell{padding:11px 8px}}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media(min-width:1000px){.app-shell:has(.athlete-week) .app-header{background:linear-gradient(150deg,#fff,#e7edf8);border-right-color:#fff}.app-shell:has(.athlete-week) .app-header .profile-button{color:var(--text-primary);background:#fff}.app-shell:has(.athlete-week) .athlete-week{grid-template-columns:minmax(0,1fr) 278px}.app-shell:has(.athlete-week) .athlete-workout-detail{background:linear-gradient(135deg,#f9fbff,#e3ebfc);border-color:#fff;box-shadow:0 24px 60px #17295533}:root{--desktop-rail-width:224px}.app-shell,.prototype-shell{width:calc(100% - var(--desktop-rail-width));min-width:0;max-width:1520px;margin-left:var(--desktop-rail-width)}.app-shell .screen-content{min-width:0}}@media(min-width:1000px)and (max-width:1319px){.app-shell,.prototype-shell{padding-inline:32px}.screen-content:has(.week-map){grid-template-columns:minmax(0,1fr)}.screen-content:has(.week-map)>.coach-week-insight,.screen-content:has(.week-map)>.lifecycle-actions,.screen-content:has(.week-map)>.coach-feedback-context{grid-column:1}.screen-content:has(.week-map) .lifecycle-actions--sticky{position:static}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
