:root{--accent: #5460CC;--accent-hover: #4A55BF;--accent-bg: #f2f3fb;--accent-border: #ced1f2;--accent-dim: #99a1e3;--on-accent: #FFFFFF;--chrome: #0E0F11;--chrome-2: #161719;--chrome-3: #1E2023;--chrome-border: #2A2C30;--chrome-text: #E8E9EA;--chrome-sub: rgba(232,233,234,.6);--chrome-label: rgba(232,233,234,.22);--bg: #F5F6F7;--white: #FFFFFF;--surface: #FAFBFC;--surface-2: #EEF0F2;--border: #E2E4E8;--border-strong: #D2D5DB;--text: #14161A;--text-2: #4A4E57;--text-3: #686C75;--text-4: #9CA1AB;--ok: #2A7049;--ok-bg: #EAF3EE;--ok-bd: #BEDDCB;--miss: #B23B3B;--miss-bg: #F8ECEC;--miss-bd: #E8C7C7;--warn: #8A5F00;--warn-bg: #FFF7E0;--warn-bd: #EED9AE;--data-good: var(--ok);--data-mid: var(--warn);--data-bad: var(--miss);--data-slower: #C27C14;--type-recovery: #22d3ee;--type-easy: #4ade80;--type-tempo: #fbbf24;--type-long: #a78bfa;--type-interval: #f87171;--type-race: #fde047;--type-swim: #38bdf8;--type-bike: #34d399;--type-brick: #fb923c;--type-strength: #94a3b8;--int-1: #DCE6F2;--int-1-text: #2E5589;--int-2: #BBD0E6;--int-2-text: #22436B;--int-3: #8FB0D2;--int-3-text: #1B3A5C;--int-4: #4A73A3;--int-4-text: #FFFFFF;--int-5: #2E5589;--int-5-text: #FFFFFF;--int-cross: #3A7F8A;--int-cross-text: #FFFFFF;--int-neutral: #E4E7EC;--int-neutral-text: #5B6472;--sans: "Geist", -apple-system, BlinkMacSystemFont, sans-serif;--fs-display: 28px;--fs-title: 22px;--fs-body: 15px;--fs-secondary: 13px;--fs-label: 11px;--fs-input: 16px;--fw-regular: 400;--fw-semibold: 600;--fw-bold: 700;--ls-label: .06em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--btn-py: 13px;--btn-px: 20px;--btn-fs: 15px;--radius: 10px;--radius-sm: 7px;--radius-xs: 4px;--radius-pill: 999px;--border-w: 1px;--focus-w: 2px;--shadow-sm: 0 1px 2px rgba(20,22,26,.05), 0 0 0 1px rgba(226,228,232,.9);--shadow: 0 1px 3px rgba(20,22,26,.06), 0 0 0 1px rgba(226,228,232,.8);--shadow-lg: 0 4px 16px rgba(20,22,26,.1), 0 0 0 1px rgba(226,228,232,.7);--dur-fast: .12s;--dur: .2s;--ease-sheet: cubic-bezier(.32, .72, 0, 1);--z-tabbar: 100;--z-sheet: 200;--z-sheet-2: 210;--z-drawer: 300;--z-toast: 400;--tap-min: 44px}:root{--sidebar-item: rgba(255,255,255,.06);--sidebar-item-active: rgba(255,255,255,.12);--sidebar-text: rgba(232,233,234,.78);--sidebar-text-muted: rgba(232,233,234,.55);--sidebar-w: 240px;--header-h: 56px;--shadow-card: 0 1px 2px rgba(20,22,26,.04);--shadow-card-hover: 0 4px 12px rgba(20,22,26,.08)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;-webkit-text-size-adjust:100%}body{min-height:100%;font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;font-size:var(--fs-body);font-variant-numeric:tabular-nums}b,strong{font-weight:600}button{font:inherit;cursor:pointer;border:none;background:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}#root{height:100dvh}.coach-layout{display:flex;height:100dvh;overflow:hidden}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--chrome);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;flex-shrink:0}.brand-lockup{display:flex;flex-direction:column;align-items:center;width:max-content}.brand-lockup-mark{display:block;flex-shrink:0}.brand-lockup-word{display:block;width:auto;aspect-ratio:4956.3 / 752.5}.sidebar-brand{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:20px 16px 16px;border-bottom:1px solid rgba(255,255,255,.07)}.sidebar-lockup{gap:8px;color:var(--chrome-text)}.sidebar-lockup .brand-lockup-mark{width:30px;height:24px}.sidebar-lockup .brand-lockup-word{height:8px}.sidebar-brand-sub{font-size:var(--fs-label);color:var(--sidebar-text-muted);line-height:1.3}.sidebar-nav{padding:12px 8px;flex:1}.sidebar-nav-label{font-size:var(--fs-label);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--sidebar-text-muted);padding:8px 8px 4px}.sidebar-nav-item{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:var(--radius-sm);cursor:pointer;color:var(--sidebar-text);font-size:var(--fs-secondary);font-weight:400;transition:background .12s,color .12s;width:100%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-nav-item:hover{background:var(--sidebar-item);color:var(--white)}.sidebar-nav-item.active{background:var(--sidebar-item-active);color:var(--white)}.sidebar-pending-chip{flex-shrink:0;margin-left:4px;font-size:var(--fs-label);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--sidebar-text-muted);border:1px solid rgba(232,233,234,.25);line-height:1.5}.sidebar-footer{padding:12px 8px;border-top:1px solid rgba(255,255,255,.07)}.sidebar-user{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:var(--radius-sm);margin-bottom:4px}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-size:var(--fs-secondary);font-weight:600;color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:var(--fs-label);color:var(--sidebar-text-muted)}.sidebar-logout{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:var(--radius-sm);color:var(--sidebar-text-muted);font-size:var(--fs-secondary);width:100%;text-align:left;transition:background .12s,color .12s}.sidebar-logout:hover{background:var(--sidebar-item);color:var(--miss)}.coach-main{flex:1;overflow-y:auto;background:var(--bg);min-width:0}.mobile-header{display:none;align-items:center;gap:12px;padding:0 16px;height:var(--header-h);background:var(--chrome);color:var(--white);position:sticky;top:0;z-index:10;flex-shrink:0}.mobile-header-title{font-size:var(--fs-body);font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 767px){.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:60;transform:translate(-100%);visibility:hidden;transition:transform .2s ease,visibility 0s linear .2s}.sidebar.sidebar--open{transform:none;visibility:visible;transition:transform .2s ease;box-shadow:8px 0 24px #00000040}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#0e0f1173}.mobile-header{display:flex}}@media (min-width: 768px){.drawer-backdrop{display:none}}@media (prefers-reduced-motion: reduce){.sidebar,.sidebar.sidebar--open{transition:none}}.mobile-menu-btn{width:44px;height:44px;margin-left:-12px;display:flex;align-items:center;justify-content:center;color:var(--white);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0}.mobile-menu-btn:focus-visible{outline:2px solid var(--white);outline-offset:-4px}.mobile-header .sidebar-badge{margin-left:0}.page{max-width:1440px;margin:0 auto;padding:32px 32px 40px}.page-header{margin-bottom:24px}.page-title{font-size:var(--fs-display);font-weight:700;color:var(--text);letter-spacing:-.02em;line-height:1.15}.page-subtitle{font-size:var(--fs-secondary);color:var(--text-3);margin-top:4px}@media (max-width: 767px){.page{padding:20px 16px}}.login-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--chrome-2) 0%,var(--chrome) 60%);padding:20px}.login-stage{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center}.login-lockup{gap:20px;margin-bottom:16px;color:var(--chrome-text)}.login-lockup .brand-lockup-mark{width:80px;height:63px}.login-lockup .brand-lockup-word{height:16px}.login-brand-role{font-size:var(--fs-label);font-weight:600;color:var(--chrome-sub);letter-spacing:var(--ls-label);text-transform:uppercase;margin-bottom:32px}.login-card{background:var(--white);border-radius:var(--radius);padding:32px;width:100%;box-shadow:0 8px 32px #0000003d,0 2px 8px #0000001f}.login-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:8px}.login-error{text-align:center}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ws-header{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;padding:0 0 16px;margin-bottom:0}.ws-identity{min-width:0}.ws-facts{margin-left:32px;display:flex;align-items:center;flex-wrap:wrap;gap:8px 0}.ws-fact{padding:0 20px;border-left:1px solid var(--border);min-width:0}.ws-fact:first-child{border-left:none;padding-left:0}.ws-fact-label{font-size:var(--fs-label);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-3)}.ws-fact-value{font-size:var(--fs-body);font-weight:600;color:var(--text);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.ws-fact-value--warn{color:var(--warn)}.ws-fact-value--loading{opacity:.45}.ws-header-name{font-size:var(--fs-display);font-weight:700;color:var(--text);letter-spacing:-.02em;display:flex;align-items:center;gap:12px;line-height:1.15}.ws-header-email{font-size:var(--fs-secondary);color:var(--text-3);margin-top:2px}.tag{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-secondary);font-weight:600;background:var(--bg);color:var(--text-2);border:1px solid var(--border)}.tag.sport{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-border)}.tag.active{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-bd)}.tag.pending{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-bd)}.tag.health-fit{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-bd)}.tag.health-almost{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-bd)}.tag.health-not_yet{background:var(--miss-bg);color:var(--miss);border-color:var(--miss-bd)}.tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:24px}.tab-btn{padding:12px 20px;font-size:var(--fs-body);font-weight:600;color:var(--text-3);border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;background:none;border-top:none;border-left:none;border-right:none;transition:color .15s,border-color .15s}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-btn:hover:not(.active){color:var(--text)}.status-chip{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-secondary);font-weight:600}.status-chip.completed{background:var(--ok-bg);color:var(--ok)}.status-chip.missed{background:var(--miss-bg);color:var(--miss)}.status-chip.planned{background:var(--bg);color:var(--text-2);border:1px solid var(--border)}.plan-weeks{display:flex;flex-direction:column;gap:8px}.week-accordion{overflow:hidden}.week-header{display:flex;align-items:center;gap:12px;padding:16px 20px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s;width:100%;text-align:left;color:inherit}.week-header:hover{background:var(--surface)}.week-archive{background:var(--bg)}.week-archive-title{color:var(--text-3);font-weight:600}.week-kw{font-size:var(--fs-body);font-weight:600;color:var(--text);flex:1;font-variant-numeric:tabular-nums}.week-meta{font-size:var(--fs-secondary);color:var(--text-3)}.week-current-badge{background:var(--accent);color:var(--white);font-size:var(--fs-label);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase}.week-chevron{font-size:var(--fs-secondary);color:var(--text-3);transition:transform .2s;flex-shrink:0}.week-chevron.open{transform:rotate(180deg)}.week-sessions{border-top:1px solid var(--surface-2)}.session-row{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--surface-2);transition:background .1s}.session-row:last-child{border-bottom:none}.session-row:hover{background:var(--surface)}.session-row-day{width:48px;flex-shrink:0}.session-row-day-label{font-size:var(--fs-label);font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:var(--ls-label)}.session-row-day-date{font-size:var(--fs-label);color:var(--text-3);font-weight:400;font-variant-numeric:tabular-nums}.session-row-strip{width:3px;height:36px;border-radius:2px;flex-shrink:0}.session-row-body{flex:1;min-width:0}.session-row-title{font-size:var(--fs-body);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-row-meta{font-size:var(--fs-secondary);color:var(--text-3);margin-top:1px}.session-row-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.type-badge{display:inline-flex;align-items:center;font-size:var(--fs-secondary);font-weight:600;background:color-mix(in srgb,var(--tc, var(--text-4)) 16%,var(--white));color:var(--text-2)}.type-badge--recovery{--tc: var(--type-recovery)}.type-badge--easy{--tc: var(--type-easy)}.type-badge--tempo{--tc: var(--type-tempo)}.type-badge--long{--tc: var(--type-long)}.type-badge--interval{--tc: var(--type-interval)}.type-badge--race{--tc: var(--type-race)}.type-badge--swim{--tc: var(--type-swim)}.type-badge--bike{--tc: var(--type-bike)}.type-badge--brick{--tc: var(--type-brick)}.type-badge--strength{--tc: var(--type-strength)}html.splash-dark,html.splash-dark body{background:var(--chrome)}.splash{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;background:var(--chrome);z-index:1000}.splash--done .splash-line,.splash--done .splash-label{display:none}.splash--done .splash-fill,.splash--done .splash-word{opacity:1;animation:none;transform:none}.splash--done .splash-sheen{animation:none}.splash--done{pointer-events:none;transition:opacity .2s ease-out}.splash--leaving{opacity:0}.splash-lockup{display:flex;flex-direction:column;align-items:center;gap:20px}.splash-mark{display:block;width:80px;height:63px;overflow:visible}.splash-word{display:block;height:16px;width:auto;aspect-ratio:4956.3 / 752.5;color:var(--chrome-text);opacity:0;animation:splash-rise .87s ease-out 1755ms forwards}.splash-line{stroke-dasharray:100;stroke-dashoffset:100;animation:splash-draw 1.62s cubic-bezier(.45,.05,.35,1) forwards,splash-out .5s ease 2.25s forwards}.splash-fill{opacity:0;animation:splash-in .87s ease-out 1245ms forwards}.splash-sheen{animation:splash-sheen 1.8s ease-in-out 3s infinite}.splash-label{font-size:var(--fs-secondary);color:var(--chrome-sub);opacity:0;animation:splash-in .3s ease 3s forwards}@keyframes splash-draw{to{stroke-dashoffset:0}}@keyframes splash-out{to{opacity:0}}@keyframes splash-in{to{opacity:1}}@keyframes splash-rise{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes splash-sheen{0%{transform:translateY(0)}50%,to{transform:translateY(-92px)}}@media (prefers-reduced-motion: reduce){.splash-line{display:none}.splash-fill,.splash-word,.splash-label{opacity:1;animation:none}.splash-sheen{animation:none}}.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100dvh;gap:16px;padding:24px;text-align:center}.error-screen p{font-size:var(--fs-body);color:var(--miss);max-width:360px}.error-screen>button{width:100%;max-width:240px}.empty-state{text-align:center;padding:60px 24px;color:var(--text-2)}.empty-state-title{font-size:var(--fs-body);font-weight:600;color:var(--text);margin-bottom:8px;line-height:1.2}.empty-state-text{font-size:var(--fs-body);line-height:1.5;color:var(--text-2)}.session-stats-bar{display:flex;align-items:center;gap:16px;padding:16px 20px;margin-bottom:24px;flex-wrap:wrap}.session-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.session-stat-num{font-size:var(--fs-title);font-weight:700;color:var(--text);line-height:1;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.session-stat-label{font-size:var(--fs-label);color:var(--text-3);text-align:center;font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-label)}.session-stat-divider{width:1px;height:32px;background:var(--border)}.ws-actions{margin-left:auto;align-self:center;display:flex;gap:8px;flex-wrap:wrap}.ws-error{margin:0 0 12px;font-size:var(--fs-secondary);color:var(--miss)}@media (max-width: 480px){.ws-facts{margin-left:0;flex-basis:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ws-fact,.ws-fact:first-child{border-left:none;padding:0}.ws-fact-value{white-space:normal;max-width:none}.ws-actions{margin-left:0;flex-basis:100%}.ws-actions>button{flex:1}.session-stats-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.session-stat-divider{display:none}}.btn-primary,.btn-secondary,.btn-ghost,.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius-sm);font-size:var(--fs-body);text-align:center;white-space:nowrap;cursor:pointer;transition:background var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast),transform var(--dur-fast)}.btn-primary{padding:12px 16px;background:var(--accent);color:var(--on-accent);border:none;font-weight:600;letter-spacing:-.1px;min-height:var(--tap-min)}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{background:var(--border);color:var(--text-3);cursor:not-allowed}.btn-secondary{min-height:var(--tap-min);padding:12px 16px;background:var(--white);color:var(--accent);border:1px solid var(--accent-border);font-weight:600}.btn-secondary:hover{background:var(--accent-bg)}.btn-ghost{min-height:var(--tap-min);padding:12px 16px;background:var(--white);color:var(--text);border:1px solid var(--border);font-weight:400}.btn-ghost:hover{border-color:var(--border-strong);background:var(--surface)}.btn-danger{min-height:var(--tap-min);padding:12px 16px;background:var(--miss-bg);color:var(--miss);border:1px solid var(--miss-bd);font-weight:600}.btn-danger:hover{border-color:var(--miss)}.btn-secondary:disabled,.btn-ghost:disabled,.btn-danger:disabled{opacity:.5;cursor:not-allowed}.btn-sm{width:auto;min-height:32px;padding:8px 12px;font-size:var(--fs-secondary)}.btn-primary.btn-sm{padding:8px 12px}.btn-link{border:0;background:none;padding:0;cursor:pointer;font:inherit;font-size:var(--fs-secondary);font-weight:600;color:var(--accent);white-space:nowrap}.btn-link:hover{color:var(--accent-hover)}.btn-link:disabled{opacity:.5;cursor:default}.btn-link--muted{color:var(--text-3);font-weight:400}.btn-icon{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:var(--fs-secondary);color:var(--text-3);background:none;border:none;cursor:pointer;flex-shrink:0;transition:background var(--dur-fast),color var(--dur-fast)}.btn-icon:hover{background:var(--surface-2);color:var(--text)}.btn-icon.danger:hover{background:var(--miss-bg);color:var(--miss)}.week-accordion,.session-stats-bar,.invite-panel,.ctx-panel,.perf-card,.proposal-card,.gc-card,.week-recap--pinned,.ov-card,.wk,.an-card,.act-card,.attention-empty,.an-grid>.an-section,.pg{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.act-card:hover{box-shadow:var(--shadow-card-hover)}.tag,.status-chip,.type-badge,.invite-panel-badge,.ctx-rpe-badge,.act-review-rpe-badge,.proposal-badge,.proposal-waiting-chip,.optional-badge,.ov-tag,.week-current-badge,.sidebar-pending-chip{padding:2px 8px;border-radius:var(--radius-pill)}.modal-close-btn,.ov-x,.consistency-banner-close{width:32px;height:32px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:var(--radius-sm);background:none;color:var(--text-3);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.modal-close-btn:hover,.ov-x:hover,.consistency-banner-close:hover{background:var(--surface-2);color:var(--text)}.ov-x--sm{width:28px;height:28px}.login-error,.form-error,.invite-panel-error,.perf-error{padding:8px 12px;border:1px solid var(--miss-bd);border-radius:var(--radius-sm);background:var(--miss-bg);color:var(--miss);font-size:var(--fs-secondary)}.btn-block{width:100%}.btn-primary:active:not(:disabled),.btn-secondary:active:not(:disabled),.btn-ghost:active:not(:disabled),.btn-danger:active:not(:disabled),.btn-icon:active,.modal-close-btn:active,.ov-x:active{transform:translateY(1px)}@keyframes coach-fade-in{0%{opacity:0}to{opacity:1}}@keyframes coach-rise-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@keyframes coach-slide-in{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.modal-overlay,.panel-overlay{animation:coach-fade-in var(--dur) ease-out}.modal-box{animation:coach-rise-in var(--dur) var(--ease-sheet)}.session-panel,.import-panel{animation:coach-slide-in var(--dur) var(--ease-sheet)}@media (prefers-reduced-motion: reduce){.modal-overlay,.panel-overlay,.modal-box,.session-panel,.import-panel{animation:none}.btn-primary:active,.btn-secondary:active,.btn-ghost:active,.btn-danger:active,.btn-icon:active,.modal-close-btn:active,.ov-x:active{transform:none}}.session-row-actions{display:flex;gap:2px;align-items:center}.session-row-actions .btn-icon{width:32px;height:32px;color:var(--text-3)}.session-row-actions .btn-icon:hover,.session-row-actions .btn-icon:focus-visible{color:var(--text)}.session-row-actions .btn-icon.danger:hover,.session-row-actions .btn-icon.danger:focus-visible{color:var(--miss)}.session-row-delete-confirm{display:flex;align-items:center;gap:8px;font-size:var(--fs-secondary);color:var(--miss);font-weight:600;flex-shrink:0}.add-session-btn{display:block;width:100%;padding:12px 16px;text-align:left;font-size:var(--fs-secondary);font-weight:600;color:var(--accent);background:none;border:1px dashed var(--border);border-radius:var(--radius-sm);cursor:pointer;margin-top:8px;transition:background .12s,border-color .12s}.add-session-btn:hover{background:var(--accent-bg);border-color:var(--accent)}.section-label{font-size:var(--fs-label);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-3);margin-bottom:12px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.modal-box{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:520px;max-height:90dvh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0}.modal-title{font-size:var(--fs-title);font-weight:700;color:var(--text);letter-spacing:-.01em;line-height:1.2}.modal-body{padding:16px 24px 24px}.modal-footer{display:flex;gap:8px;justify-content:flex-end;padding-top:16px;margin-top:8px;border-top:1px solid var(--surface-2)}.modal-footer>button,.panel-footer>button{width:auto;min-height:var(--tap-min);padding:12px 16px;font-size:var(--fs-body)}.panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200}.session-panel{position:fixed;right:0;top:0;bottom:0;width:480px;max-width:100%;background:var(--white);border-left:1px solid var(--border);box-shadow:-8px 0 40px #0000001f;z-index:201;display:flex;flex-direction:column;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--surface-2);flex-shrink:0}.panel-title{font-size:var(--fs-title);font-weight:700;color:var(--text);letter-spacing:-.01em;line-height:1.2}.panel-body{flex:1;overflow-y:auto;padding:20px 24px}.panel-footer{display:flex;gap:8px;justify-content:flex-end;padding:16px 24px;border-top:1px solid var(--surface-2);flex-shrink:0;background:var(--white)}.discard-confirm{display:flex;align-items:center;gap:12px;width:100%;justify-content:flex-end;font-size:var(--fs-secondary);color:var(--text-2)}.form-group{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.form-label{font-size:var(--fs-label);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-3)}.form-input,.form-select,.form-textarea{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:12px;font-size:var(--fs-input);width:100%;transition:border-color .12s;font-family:inherit;line-height:1.4}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent)}.form-textarea{resize:vertical;min-height:72px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-inline{display:flex;align-items:center;gap:8px}.form-inline .form-input{flex:1;min-width:0}.form-inline-sep{font-size:var(--fs-secondary);color:var(--text-3);flex-shrink:0}.sidebar-badge{min-width:20px;height:20px;padding:0 8px;margin-left:8px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-secondary);font-weight:600;font-variant-numeric:tabular-nums;background:var(--accent);color:var(--white);flex-shrink:0}.sidebar-badge--urgent{background:var(--miss)}.consistency-banner{padding:12px 16px;border-radius:var(--radius-sm);background:var(--warn-bg);border:1px solid var(--warn-bd);color:var(--text);font-size:var(--fs-secondary);line-height:1.5}.consistency-banner strong{color:var(--warn)}.consistency-banner ul{margin:8px 0 0;padding-left:20px}.consistency-banner-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.replace-plan-confirm{margin:4px 0 16px;padding:12px 16px;border-radius:var(--radius-sm);background:var(--warn-bg);border:1px solid var(--warn-bd);color:var(--text);font-size:var(--fs-secondary);line-height:1.5}.form-check{display:flex;align-items:flex-start;gap:12px;font-size:var(--fs-body);font-weight:600;line-height:1.4;color:var(--text);cursor:pointer}.form-check input[type=checkbox]{width:18px;height:18px;margin:1px 0 0;flex-shrink:0;accent-color:var(--accent)}.form-check-hint{display:block;margin-top:2px;font-size:var(--fs-secondary);font-weight:400;color:var(--text-3)}.form-hint{font-size:var(--fs-secondary);line-height:1.45;color:var(--text-3)}.form-field-error{font-size:var(--fs-secondary);color:var(--miss);margin-top:4px}.modal-text{font-size:var(--fs-body);color:var(--text-2);line-height:1.5;margin:0 0 16px}.modal-text strong{font-weight:600;color:var(--text)}.modal-text-warn{color:var(--warn)}.perf-lock{margin-left:8px;font-size:var(--fs-secondary);color:var(--warn)}.perf-unlock{margin-left:8px}.form-error{margin-top:4px}.import-panel{position:fixed;top:0;right:0;width:min(680px,100vw);height:100dvh;background:var(--white);box-shadow:-4px 0 24px #00000024;display:flex;flex-direction:column;z-index:300;overflow:hidden}.import-hint{font-size:var(--fs-secondary);color:var(--text-2);line-height:1.6;margin-bottom:16px}.import-hint code{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-xs);padding:1px 4px;font-size:var(--fs-secondary)}.import-textarea{width:100%;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:12px;font-size:var(--fs-input);font-family:inherit;line-height:1.6;resize:vertical;min-height:260px;transition:border-color .12s}.import-textarea:focus{outline:none;border-color:var(--accent)}.import-warnings{background:var(--warn-bg);border:1px solid var(--warn-bd);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:16px;display:flex;flex-direction:column;gap:4px}.import-warning-item{font-size:var(--fs-secondary);color:var(--warn);line-height:1.5}.import-table-header{display:grid;grid-template-columns:36px 148px minmax(0,1fr) 144px 72px 28px;gap:8px;align-items:center;padding:0 4px 8px;border-bottom:2px solid var(--border);font-size:var(--fs-label);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-3)}.import-rows{display:flex;flex-direction:column;gap:4px;padding-top:8px;overflow-y:auto;flex:1}.import-row{display:grid;grid-template-columns:36px 148px minmax(0,1fr) 144px 72px 28px;gap:8px;align-items:center;padding:4px;border-radius:var(--radius-xs);background:var(--white);border:1px solid var(--surface-2);transition:background .1s}.import-row:hover{background:var(--bg)}.import-day-label{font-size:var(--fs-label);font-weight:600;color:var(--text-3);text-align:center;text-transform:uppercase;letter-spacing:var(--ls-label)}.import-input-date,.import-input-title,.import-select-type{font-size:var(--fs-input);font-family:inherit;color:var(--text);background:var(--white);border:1px solid var(--border);border-radius:var(--radius-xs);padding:4px 8px;width:100%;min-width:0;transition:border-color .12s}.import-input-date:focus,.import-input-title:focus,.import-select-type:focus{outline:none;border-color:var(--accent)}.import-input-date:disabled,.import-input-title:disabled,.import-select-type:disabled{opacity:.5;cursor:not-allowed}.import-meta-text{font-size:var(--fs-secondary);color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-remove-btn{font-size:var(--fs-secondary);color:var(--text-3);transition:color .1s;padding:2px;line-height:1;display:flex;align-items:center;justify-content:center}.import-remove-btn:hover:not(:disabled){color:var(--miss)}.import-remove-btn:disabled{opacity:.4;cursor:not-allowed}.import-empty{text-align:center;padding:40px 24px;color:var(--text-3);font-size:var(--fs-secondary)}.import-progress{margin-top:16px}.import-progress-bar{height:6px;background:var(--border);border-radius:99px;overflow:hidden}.import-progress-fill{height:100%;background:var(--accent);border-radius:99px;transition:width .2s ease}.import-progress-text{font-size:var(--fs-secondary);color:var(--text-3);margin-top:8px;text-align:center}.session-row-wrapper{display:flex;flex-direction:column}.invite-panel{margin-bottom:24px;overflow:hidden}.invite-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--surface-2)}.invite-panel-title{font-size:var(--fs-body);font-weight:600;color:var(--text)}.invite-panel-badge{font-size:var(--fs-secondary);font-weight:600;color:var(--warn);background:var(--warn-bg)}.invite-panel-body{padding:16px 20px 20px;display:flex;flex-direction:column;gap:12px}.invite-panel-desc{font-size:var(--fs-secondary);color:var(--text-2);line-height:1.5}.invite-link-box{display:flex;align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;overflow:hidden}.invite-link-text{font-size:var(--fs-secondary);color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.btn-copy-link.copied{border-color:var(--ok-bd);color:var(--ok);background:var(--ok-bg)}.inline-field-idle{cursor:text;border-radius:var(--radius-xs);padding:1px 4px;margin:-1px -4px;transition:background .12s}.inline-field-idle:hover{background:var(--accent-bg);outline:1px solid var(--accent-border);outline-offset:0}.inline-field-input{background:var(--white);border:1px solid var(--accent);border-radius:var(--radius-xs);color:var(--text);font:inherit;font-size:inherit;padding:1px 4px;outline:none;line-height:1.4;box-shadow:0 0 0 3px var(--accent-bg)}.inline-field-input:disabled{opacity:.6}.inline-field-error{color:var(--miss);font-size:var(--fs-secondary);font-weight:400}.session-row-title:has(.inline-field-input){overflow:visible;white-space:normal}.plan-workspace{display:flex;gap:0;align-items:flex-start;min-height:0}.plan-workspace-list{flex:1 1 0;min-width:0;padding-right:16px}.plan-workspace-list:only-child{padding-right:0}@media (min-width: 901px) and (max-width: 1599px){.plan-workspace-list{padding-right:0}.plan-workspace-panel.has-selection{position:fixed;top:0;right:0;bottom:0;z-index:40;width:440px;max-height:none;overflow-y:auto;background:var(--white);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);animation:coach-slide-in var(--dur) var(--ease-sheet)}.plan-workspace-panel.has-selection .ctx-panel{border:0;border-radius:0;box-shadow:none}}@media (prefers-reduced-motion: reduce){.plan-workspace-panel.has-selection{animation:none}}.plan-workspace-panel{width:340px;min-width:300px;flex-shrink:0;position:sticky;top:0;max-height:calc(100dvh - var(--header-h) - 32px);overflow-y:auto}@media (max-width: 900px){.plan-workspace{flex-direction:column;align-items:stretch}.plan-workspace-list{padding-right:0}.plan-workspace-panel{display:none}.plan-workspace-panel.has-selection{display:block;position:fixed;top:auto;left:var(--sidebar-w);right:0;bottom:0;z-index:40;width:auto;min-width:0;max-height:62dvh;overflow-y:auto;border-radius:16px 16px 0 0;box-shadow:0 -10px 30px #00000024}.plan-workspace-panel.has-selection .ctx-panel{border-radius:16px 16px 0 0}.plan-workspace-panel .ctx-close-narrow{display:inline-flex}}@media (max-width: 767px){.plan-workspace-panel.has-selection{left:0}.session-row-right .type-badge{display:none}.session-row{padding:12px;gap:12px}}.ctx-close-narrow{display:flex;align-items:center;justify-content:center;margin:8px 8px -8px auto}.plan-layout-switch{margin-left:auto;display:inline-flex;padding:2px;gap:2px;border-radius:var(--radius-sm);background:var(--surface-2)}.plan-layout-switch button{padding:4px 12px;border-radius:var(--radius-xs);font-size:var(--fs-secondary);color:var(--text-2)}.plan-layout-switch button.active{background:var(--white);color:var(--text);font-weight:600;box-shadow:var(--shadow-card)}.pg{overflow:hidden;margin-bottom:24px}.pg-scroll{overflow-x:auto}.pg-table{min-width:720px}.pg-row{display:grid;grid-template-columns:96px repeat(7,minmax(0,1fr)) 120px}.pg-head{background:var(--surface);border-bottom:1px solid var(--border)}.pg-head-cell{padding:8px 12px;font-size:var(--fs-label);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-3)}.pg-head-day{padding:8px;border-left:1px solid var(--surface-2)}.pg-head-sum{border-left:1px solid var(--border)}.pg-week{border-bottom:1px solid var(--border)}.pg-week:last-child{border-bottom:0}.pg-label{padding:12px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.pg-kw{font-size:var(--fs-secondary);font-weight:600;color:var(--text)}.pg-label-btn{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-secondary);font-weight:600;color:var(--text)}.pg-dates{font-size:var(--fs-label);color:var(--text-3);line-height:1.3}.pg-day{position:relative;padding:8px 4px 28px;display:flex;flex-direction:column;gap:8px;min-width:0;min-height:88px;border-left:1px solid var(--surface-2)}.pg-day.is-today{background:var(--accent-bg)}.pg-add{position:absolute;left:4px;right:4px;bottom:4px;height:20px;border:1px dashed transparent;border-radius:var(--radius-xs);font-size:var(--fs-secondary);color:var(--text-4);opacity:0;transition:opacity var(--dur-fast),border-color var(--dur-fast)}.pg-day:hover .pg-add,.pg-add:focus-visible{opacity:1;border-color:var(--border-strong)}.pg-add:hover{color:var(--accent);border-color:var(--accent)}@media (hover: none){.pg-add{opacity:1;border-color:var(--border)}}.pg-sum{padding:12px;display:flex;flex-direction:column;gap:4px;border-left:1px solid var(--border);background:var(--surface)}.pg-sum-num{font-size:var(--fs-secondary);color:var(--text-3);white-space:nowrap}.pg-sum-num b{font-size:var(--fs-body);font-weight:600;color:var(--text)}.pg-sum-sub{font-size:var(--fs-label);color:var(--text-3)}.pg-sum-sub--miss{color:var(--miss)}.pg-bar-fill{background:var(--accent)}.pg-extra{display:flex;flex-direction:column;gap:8px;padding:0 12px 12px 108px}.pg-extra .week-focus,.pg-extra .week-focus-add{border-radius:var(--radius-sm)}.pg-more{width:100%;display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--border);font-size:var(--fs-secondary);font-weight:600;color:var(--accent)}.pg-more:hover{background:var(--surface)}.pg-empty{padding:16px;font-size:var(--fs-secondary);color:var(--text-3)}.pg-tile{position:relative;display:flex;flex-direction:column;gap:2px;padding:8px 8px 8px 12px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:inset 4px 0 0 var(--int, var(--border-strong));cursor:pointer;text-align:left;min-width:0;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.pg-tile:hover{border-color:var(--border-strong);box-shadow:inset 4px 0 0 var(--int, var(--border-strong)),var(--shadow-card-hover)}.pg-tile:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.pg-tile.is-selected{border-color:var(--accent);background:var(--accent-bg)}.pg-tile--today{outline:2px solid var(--accent);outline-offset:1px}.pg-tile--missed{opacity:.7}.pg-tile--missed .pg-tile-title{text-decoration:line-through;color:var(--text-2)}.pg-tile--opt{border-style:dashed}.pg-tile-top{display:flex;align-items:flex-start;justify-content:space-between;gap:4px}.pg-tile-title{font-size:var(--fs-secondary);font-weight:600;color:var(--text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.pg-focus-add{font-size:var(--fs-secondary)}.pg-tile-ok{color:var(--ok);flex-shrink:0;display:inline-flex}.pg-tile-miss{color:var(--miss);flex-shrink:0;display:inline-flex}.pg-tile-meta{font-size:var(--fs-label);color:var(--text-3)}.pg-tile-marks{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:2px}.pg-tile-today{font-size:var(--fs-label);color:var(--accent)}.pg-tile-opt{font-size:var(--fs-label);color:var(--text-3)}.pg-tile-rpe{font-size:var(--fs-label);padding:0 8px;border-radius:var(--radius-pill)}.pg-tile-actions{position:absolute;top:2px;right:2px;display:flex;gap:0;background:var(--white);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);opacity:0;pointer-events:none;transition:opacity var(--dur-fast)}.pg-tile-actions .btn-icon{width:28px;height:28px}.pg-tile:hover .pg-tile-actions,.pg-tile:focus-within .pg-tile-actions{opacity:1;pointer-events:auto}@media (hover: none){.pg-tile-actions{display:none}}.pg-tile--confirm{cursor:default;gap:8px;box-shadow:none;border-color:var(--miss-bd);background:var(--miss-bg)}.pg-tile-confirm{display:flex;gap:4px;flex-wrap:wrap}.pg-past-head{width:100%;display:flex;align-items:center;gap:12px;padding:12px 16px;text-align:left}.pg-past-head:hover{background:var(--surface)}.pg-past-title{font-size:var(--fs-body);font-weight:600;color:var(--text)}.pg-past-meta{flex:1;font-size:var(--fs-secondary);color:var(--text-3)}.pg-past .pg-table{border-top:1px solid var(--border)}.pg-past .pg-week{border-bottom:1px solid var(--border)}.pg-pastline{width:100%;align-items:center;text-align:left;border-bottom:1px solid var(--surface-2)}.pg-pastline:hover{background:var(--surface)}.pg-label--line{flex-direction:row;align-items:center;gap:4px;padding:8px 12px;font-size:var(--fs-secondary);font-weight:600;color:var(--text)}.pg-mark-cell{padding:8px;display:flex;align-items:center}.pg-mark{display:block;width:100%;max-width:56px;height:8px;border-radius:2px;background:var(--int)}.pg-mark--plan{background:none;border:1px solid var(--int)}.pg-mark--missed{background:none;border:1px dashed var(--miss)}.pg-sum--line{flex-direction:row;align-items:center;justify-content:space-between;padding:8px 12px}.pg-count{font-size:var(--fs-label);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;padding:2px 8px;border-radius:var(--radius-pill);background:var(--ok-bg);color:var(--ok)}.pg-count--warn{background:var(--warn-bg);color:var(--warn)}.session-row-wrapper.selected .session-row{border-color:var(--accent);background:var(--accent-bg)}.session-target-summary{display:flex;flex-direction:column;gap:2px;margin-top:4px}.session-target-line{font-size:var(--fs-secondary);color:var(--text-3);line-height:1.4}.ctx-panel{padding:0;overflow:hidden}.ctx-panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:200px;background:var(--white);border-radius:var(--radius);border:1px dashed var(--border);padding:32px 16px}.ctx-empty-arrow{font-size:var(--fs-title);color:var(--text-3)}.ctx-empty-hint{font-size:var(--fs-secondary);color:var(--text-3)}.ctx-header{padding:16px 16px 12px;background:var(--white)}.ctx-header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.ctx-session-title{font-size:var(--fs-title);font-weight:700;color:var(--text);margin-bottom:4px;line-height:1.2;letter-spacing:-.01em}.ctx-session-meta{display:flex;align-items:center;gap:8px;font-size:var(--fs-secondary);color:var(--text-3);flex-wrap:wrap}.ctx-divider{height:1px;background:var(--surface-2);margin:0}.ctx-section{padding:12px 16px;border-top:1px solid var(--surface-2)}.ctx-section:first-of-type{border-top:none}.ctx-section-label{font-size:var(--fs-body);font-weight:600;color:var(--text);margin-bottom:8px}.ctx-description{font-size:var(--fs-body);color:var(--text);line-height:1.55;margin:0}.ctx-empty-note{font-size:var(--fs-secondary);color:var(--text-3)}.ctx-targets{display:flex;flex-direction:column;gap:0}.ctx-target-row{display:flex;align-items:baseline;gap:12px;justify-content:space-between;padding:12px 0;border-top:1px solid var(--surface-2)}.ctx-target-label{font-size:var(--fs-secondary);color:var(--text-3);font-weight:400;flex-shrink:0}.ctx-target-row:first-child{border-top:none;padding-top:0}.ctx-target-value{font-size:var(--fs-body);font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;text-align:right}.ctx-feedback-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.ctx-rpe-badge{display:inline-flex;align-items:center;font-size:var(--fs-secondary);font-weight:600}.ctx-rpe-label{font-size:var(--fs-secondary);color:var(--text-3)}.ctx-athlete-note{font-size:var(--fs-body);color:var(--text);line-height:1.5;padding:8px 12px;background:var(--surface);border-radius:var(--radius-sm);border-left:3px solid var(--border);quotes:none}.ctx-missed-reason{font-size:var(--fs-secondary);color:var(--miss);font-weight:600;margin-bottom:4px}.perf-profile-tab{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}@media (max-width: 1023px){.perf-profile-tab{grid-template-columns:minmax(0,1fr)}}.perf-card{padding:20px}.perf-card-title{font-size:var(--fs-body);font-weight:600;color:var(--text);margin-bottom:16px}.perf-field-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--surface-2)}.perf-field-row:last-of-type{border-bottom:none}.perf-field-label{font-size:var(--fs-body);font-weight:400;color:var(--text);flex:1;display:flex;flex-direction:column;gap:2px}.perf-field-hint{font-size:var(--fs-secondary);font-weight:400;color:var(--text-3)}.perf-field-input-wrap{display:flex;align-items:center;gap:8px}.perf-field-input{width:80px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-xs);font-size:var(--fs-input);font-variant-numeric:tabular-nums;color:var(--text);background:var(--white);text-align:right;outline:none;transition:border-color .15s}.perf-field-input:focus{border-color:var(--accent);background:var(--white)}.perf-field-input.read-only{background:transparent;border-color:transparent;color:var(--text-2);cursor:default}.perf-field-unit{font-size:var(--fs-secondary);color:var(--text-3);min-width:48px}.perf-error{margin-top:12px}.perf-success{margin-top:12px;padding:8px 12px;background:var(--ok-bg);color:var(--ok);border-radius:var(--radius-xs);font-size:var(--fs-secondary);font-weight:400}.perf-actions{display:flex;align-items:center;gap:16px;margin-top:16px;padding-top:16px;border-top:1px solid var(--surface-2)}.perf-last-updated{font-size:var(--fs-secondary);color:var(--text-3)}.perf-zones{display:flex;flex-direction:column;gap:8px}.perf-zone-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--surface-2)}.perf-zone-row:last-of-type{border-bottom:none}.perf-zone-label{font-size:var(--fs-secondary);font-weight:600;color:var(--text);min-width:24px}.perf-zone-name{font-size:var(--fs-secondary);color:var(--text-2);flex:1}.perf-zone-range{font-size:var(--fs-body);font-variant-numeric:tabular-nums;font-weight:600;color:var(--text)}.perf-zone-unit{font-size:var(--fs-secondary);font-weight:400;color:var(--text-3)}.perf-zone-note{font-size:var(--fs-secondary);color:var(--text-3);margin-top:8px;line-height:1.45}.perf-zones-empty{font-size:var(--fs-secondary);color:var(--text-3);padding:8px 0}.act-tab-state{padding:40px 0;text-align:center;color:var(--text-3);font-size:var(--fs-secondary)}.act-list{display:flex;flex-direction:column;gap:12px}.act-card{display:flex;width:100%;text-align:left;padding:16px 20px;cursor:pointer;transition:box-shadow var(--dur-fast),border-color var(--dur-fast);flex-direction:column;gap:8px}.act-card:hover{background:var(--surface);border-color:var(--border-strong)}.act-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.act-card-sport{display:inline-flex;align-items:center;gap:8px;min-width:0}.act-card-date{font-size:var(--fs-secondary);color:var(--text-3);white-space:nowrap}.act-card-name{font-size:var(--fs-body);font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.act-card-stats{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr));max-width:480px}.act-card-stat{display:flex;flex-direction:column;gap:1px}.act-card-stat-val{font-size:var(--fs-body);font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.act-card-stat-val small{font-size:var(--fs-secondary);font-weight:400;color:var(--text-3)}.act-card-stat-lbl{font-size:var(--fs-label);color:var(--text-3);text-transform:uppercase;letter-spacing:var(--ls-label);font-weight:600}.act-card-session{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-secondary);font-weight:400;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-3)}.act-card-session--none{color:var(--text-3);font-weight:400}.act-review-meta{font-size:var(--fs-secondary);color:var(--text-3);margin-top:4px}.act-review-section{padding:16px 0;border-bottom:1px solid var(--surface-2)}.act-review-section:last-child{border-bottom:none}.act-review-comment .ctx-section{padding:0;border-top:none}.session-comment-dot{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:var(--accent)}.session-comment-dot.read{color:var(--text-3)}.session-comment-dot svg{width:14px;height:14px}.act-review-label{font-size:var(--fs-body);font-weight:600;color:var(--text);margin-bottom:12px}.act-review-rows{display:flex;flex-direction:column;gap:8px}.act-review-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.act-review-row-key{font-size:var(--fs-secondary);color:var(--text-3)}.act-review-row-val{font-size:var(--fs-body);font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;text-align:right}.act-review-row-sub{font-weight:400;color:var(--text-3);font-size:var(--fs-secondary)}.act-review-empty{font-size:var(--fs-secondary);color:var(--text-3)}.act-review-strava{display:inline-block;margin-top:12px;font-size:var(--fs-secondary);font-weight:600;color:var(--accent);text-decoration:none}.act-review-strava:hover{text-decoration:underline}.act-review-map-wrap{border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);background:var(--bg)}.act-review-map-wrap--svg{padding:8px}.act-review-map-img,.act-review-map-svg{display:block;width:100%;height:auto}.act-splits{display:flex;flex-direction:column;gap:2px}.act-split-row{display:flex;align-items:center;gap:12px;padding:4px 0}.act-split-row--head{padding-bottom:8px;font-size:var(--fs-label);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-3)}.act-split-row:not(.act-split-row--head)+.act-split-row:not(.act-split-row--head){border-top:1px solid var(--surface-2)}.act-split-km{width:34px;flex-shrink:0;font-size:var(--fs-secondary);font-variant-numeric:tabular-nums;color:var(--text-3)}.act-split-pace{width:52px;flex-shrink:0;font-size:var(--fs-secondary);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.act-split-bar-wrap{flex:1;height:6px;background:var(--surface-2);border-radius:3px;overflow:hidden}.act-split-row--head .act-split-bar-wrap{background:transparent}.act-split-bar{height:100%;background:var(--accent);border-radius:3px}.act-split-hr{width:40px;flex-shrink:0;text-align:right;font-size:var(--fs-secondary);font-variant-numeric:tabular-nums;color:var(--text-3)}.act-review-rpe-badge{display:inline-block;font-size:var(--fs-secondary);font-weight:600}.act-review-quote{margin:0;padding:12px;background:var(--surface);border-radius:var(--radius-sm);border-left:3px solid var(--border);font-size:var(--fs-body);color:var(--text-2);font-style:italic}.act-review-missed{font-size:var(--fs-body);font-weight:600;color:var(--miss);margin:0 0 8px}.error-boundary-fallback{max-width:28rem;margin:4rem auto;padding:1.5rem;text-align:center;font-family:inherit}.error-boundary-fallback h1{font-size:var(--fs-title);margin-bottom:.5rem;font-weight:700;letter-spacing:-.01em;line-height:1.2}.error-boundary-fallback p{opacity:.75;margin-bottom:1.25rem}.error-boundary-fallback button{padding:.6rem 1.25rem;border:none;border-radius:.5rem;background:var(--accent);color:var(--white);font-size:var(--fs-body);cursor:pointer;font-weight:600}.ctx-ai-text{font-size:var(--fs-body);color:var(--text-2);line-height:1.55;display:flex;flex-direction:column;gap:8px}.ctx-ai-text p{margin:0}.ctx-ai-headline{font-weight:600;color:var(--text)}.ctx-ai-meta{margin-top:8px;font-size:var(--fs-secondary);color:var(--text-3)}.ctx-comment-input{width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;font-family:inherit;font-size:var(--fs-input);line-height:1.5;color:var(--text);background:var(--white);resize:vertical;min-height:64px}.ctx-comment-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.ctx-comment-input::placeholder{color:var(--text-3)}.ctx-comment-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}.ctx-comment-status{font-size:var(--fs-secondary);color:var(--text-3);font-variant-numeric:tabular-nums}.ctx-comment-read,.ctx-comment-saved{color:var(--ok);font-weight:600}.ctx-comment-actions{display:flex;align-items:center;gap:12px}.ctx-comment-delete{background:none;border:none;padding:0;font-size:var(--fs-secondary);color:var(--text-3);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.ctx-comment-delete:hover{color:var(--miss)}.ctx-comment-error{font-size:var(--fs-secondary);color:var(--miss);margin-top:8px}.sidebar-push-row{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:var(--radius-sm);color:var(--sidebar-text-muted);font-size:var(--fs-secondary);width:100%;text-align:left;transition:background .12s,color .12s;background:none;border:none;cursor:pointer}.sidebar-push-row:hover{color:var(--sidebar-text)}.sidebar-push-row:disabled{opacity:.5;cursor:default}.proposal-list{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}.proposal-card{padding:20px}.proposal-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.proposal-athlete{font-weight:600;font-size:var(--fs-body)}.proposal-waiting-chip{display:inline-flex;align-items:center;gap:8px;background:var(--accent-bg);color:var(--accent);font-size:var(--fs-secondary);font-weight:600;white-space:nowrap}.proposal-waiting-chip:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.proposal-week{font-size:var(--fs-secondary);color:var(--text-3)}.proposal-muted{font-size:var(--fs-secondary);color:var(--text-2);margin-bottom:8px}.proposal-summary{font-size:var(--fs-body);line-height:1.5;margin-bottom:16px}.proposal-items{display:flex;flex-direction:column;gap:12px}.proposal-item{border-radius:var(--radius-sm);padding:12px;background:var(--surface)}.proposal-item.applied{opacity:.75}.proposal-item.dismissed{opacity:.55}.proposal-item-title{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;font-size:var(--fs-body);font-weight:600}.proposal-item-day{font-size:var(--fs-label);font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:var(--ls-label)}.proposal-badge{font-size:var(--fs-secondary);font-weight:600;background:var(--surface-2);color:var(--text-2)}.proposal-badge.modify{background:var(--warn-bg);color:var(--warn)}.proposal-badge.suggest_remove{background:var(--miss-bg);color:var(--miss)}.proposal-item-diff{font-size:var(--fs-secondary);font-weight:600;margin-top:4px}.proposal-item-reason{font-size:var(--fs-secondary);color:var(--text-2);margin-top:4px;line-height:1.45}.proposal-item-note,.proposal-item-error{font-size:var(--fs-secondary);margin-top:8px;line-height:1.45}.proposal-item-error{color:var(--miss)}.proposal-item-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.proposal-confirm-label{font-size:var(--fs-secondary);color:var(--miss);font-weight:600}.proposal-state-chip{font-size:var(--fs-secondary);font-weight:600;color:var(--text-2)}.proposal-state-chip.applied{color:var(--ok)}.proposal-kept{font-size:var(--fs-secondary);color:var(--text-2);line-height:1.45;margin-bottom:12px}.proposal-kept-label{display:block;font-size:var(--fs-label);font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:var(--ls-label);margin-bottom:2px}.proposal-list--inline{gap:12px;margin:2px 0 8px}.proposal-list--inline .proposal-card{padding:12px 16px}.proposal-list--inline .proposal-summary{font-size:var(--fs-secondary);margin-bottom:12px}.proposal-list--inline .proposal-items:empty{display:none}.proposal-list--inline .proposal-focus{flex-direction:column}.moments-sub{font-size:var(--fs-secondary);color:var(--text-2);margin:0 0 12px}.moment-actions{display:flex;gap:8px;flex-shrink:0;align-items:center;flex-wrap:wrap}.moment-edit{display:flex;flex-direction:column;gap:8px;margin-top:8px}.moment-edit textarea{width:100%;resize:vertical}.moment-error{font-size:var(--fs-secondary);color:var(--miss)}.attention-empty{font-size:var(--fs-secondary);padding:16px 20px}.attention-empty.ok{background:var(--ok-bg);color:var(--ok);box-shadow:none;border:1px solid var(--ok-bd)}.form-textarea--steps{font-size:var(--fs-input);line-height:1.6}.steps-syntax-hint{font-size:var(--fs-secondary);color:var(--text-3);margin-top:4px;line-height:1.5}.steps-derived-hint{font-size:var(--fs-secondary);color:var(--accent);background:var(--accent-bg);border-radius:var(--radius-sm);padding:8px 12px;margin:-8px 0 16px}.steps-problems{font-size:var(--fs-secondary);color:var(--warn);background:var(--warn-bg);border-radius:var(--radius-sm);padding:8px 12px;margin-top:8px;display:grid;gap:4px}.steps-preview{border-radius:var(--radius-sm);padding:12px;margin-top:12px;background:var(--surface)}.steps-preview-chain{font-size:var(--fs-secondary);color:var(--text);margin-bottom:12px;line-height:1.5}.steps-preview-list{display:grid;gap:8px}.steps-preview-step{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--white);border:1px solid var(--surface-2);border-left-width:3px;border-radius:var(--radius-sm);padding:8px 12px;font-size:var(--fs-secondary)}.steps-preview-step--warmup,.steps-preview-step--cooldown{border-left-color:var(--type-easy)}.steps-preview-step--run{border-left-color:var(--type-interval)}.steps-preview-step--run.steps-preview-step--easy-run{border-left-color:var(--type-easy)}.steps-preview-step--recovery{border-left-color:var(--type-recovery)}.steps-preview-step-name{font-weight:600}.steps-preview-step-target{color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums}.steps-preview-repeat{border:1px dashed var(--border);border-radius:var(--radius);padding:24px 8px 8px;position:relative;display:grid;gap:8px}.steps-preview-repeat-badge{position:absolute;top:-1px;left:10px;transform:translateY(-40%);background:var(--text);color:var(--white);font-size:var(--fs-secondary);font-weight:600;border-radius:12px;padding:2px 8px;font-variant-numeric:tabular-nums}.steps-preview-totals{font-size:var(--fs-secondary);color:var(--text-3);margin-top:12px;padding-top:8px;border-top:1px solid var(--surface-2);font-variant-numeric:tabular-nums}.act-segments{display:grid;gap:2px}.act-seg-row{display:grid;grid-template-columns:1fr 56px 52px 56px 48px;gap:8px;padding:8px 12px;border-radius:8px;align-items:baseline;font-size:var(--fs-secondary);color:var(--text-2);font-variant-numeric:tabular-nums}.act-seg-row--head{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-3);padding-bottom:2px;font-weight:600}.act-seg-row.hard{background:var(--bg);border-left:3px solid var(--type-interval);color:var(--text);font-weight:600}.act-seg-row .act-seg-name{font-weight:600;font-size:var(--fs-secondary)}.optional-badge{flex-shrink:0;font-size:var(--fs-secondary);font-weight:600;color:var(--text-3);background:var(--white);border:1px dashed var(--border)}.ctx-comment-reach{font-size:var(--fs-secondary);line-height:1.4;color:var(--text-3);margin-top:8px}.ctx-comment-reach.off{color:var(--warn)}.invite-panel-expiry{font-size:var(--fs-secondary);color:var(--text-3);margin:0}.invite-panel-expiry.expired{color:var(--warn);font-weight:600}.icon-line{display:inline-flex;align-items:center;gap:8px}.week-chevron{display:inline-flex;align-items:center;font-size:var(--fs-secondary);color:var(--text-3)}.sidebar-logout svg,.sidebar-push-row svg{flex-shrink:0}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);color:var(--text-3);font-size:var(--fs-secondary)}.loading-state--sm{flex-direction:row;justify-content:flex-start;gap:var(--space-2);padding:var(--space-2) 0}.loading-spinner--sm{width:14px;height:14px;border-width:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){.loading-spinner{animation-duration:2.4s}}.gc-page{max-width:1360px}.gc{display:flex;flex-direction:column;gap:12px}.gc-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:var(--fs-label);color:var(--text-3)}.gc-legend span{display:flex;align-items:center;gap:8px}.gc-legend-bar{width:10px;height:10px;border-radius:2px;background:var(--accent)}.gc-card{overflow-x:auto}.gc-table{min-width:1120px}.gc-row{display:grid;grid-template-columns:180px 160px 200px 100px 140px minmax(220px,1fr);column-gap:20px;align-items:center;width:100%;box-sizing:border-box;padding:12px 16px;border:0;border-bottom:1px solid var(--surface-2);background:none;text-align:left;font:inherit;color:var(--text);cursor:pointer}.gc-row:hover{background:var(--surface)}.gc-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.gc-row--head{cursor:default;padding-top:8px;padding-bottom:8px;border-bottom:1px solid var(--border);font-size:var(--fs-label);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-3)}.gc-row--head:hover{background:none}.gc-who,.gc-stack{display:flex;flex-direction:column;gap:8px;min-width:0}.gc-who,.gc-stack--tight{gap:2px}.gc-name{font-size:var(--fs-secondary);font-weight:600}.gc-sub{font-size:var(--fs-label);color:var(--text-3)}.gc-val{font-size:var(--fs-secondary)}.gc-val b,.gc-strong{font-weight:600;font-size:var(--fs-secondary)}.gc-ref{color:var(--text-3)}.gc-big{font-size:var(--fs-body);font-weight:600;font-variant-numeric:tabular-nums}.gc-hint{font-size:var(--fs-secondary);line-height:1.45;color:var(--text-2)}.gc-weeks{display:flex;gap:4px}.gc-week{width:16px;height:16px;flex-shrink:0;box-sizing:border-box;border-radius:4px;border:1px solid var(--border-strong);background:var(--white)}.gc-legend .gc-week{width:10px;height:10px;border-radius:3px}.gc-week--ok{background:var(--ok-bg);border-color:var(--ok-bd)}.gc-week--warn{background:var(--warn-bg);border-color:var(--warn-bd)}.gc-week--miss{background:var(--miss-bg);border-color:var(--miss-bd)}.gc-week--sick{background:var(--surface-2);border-color:var(--border-strong)}.gc-week--none{border-style:dashed}.gc-week--current{border:2px solid var(--accent)}.gc-bars{display:flex;align-items:flex-end;gap:4px;height:40px}.gc-bar{position:relative;width:14px;height:40px;flex-shrink:0}.gc-bar-plan{position:absolute;left:0;bottom:0;width:14px;box-sizing:border-box;border:1px dashed var(--text-4);border-radius:3px}.gc-bar-done{position:absolute;left:2px;bottom:0;width:10px;background:var(--accent);border-radius:2px}.gc-foot{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;padding:12px 16px;font-size:var(--fs-secondary);color:var(--text-3)}.gc-foot-label{font-weight:600;color:var(--text-2)}.gc-foot-item{border:0;background:none;padding:0;font:inherit;color:var(--text-3);cursor:pointer}.gc-foot-item:hover{color:var(--accent)}.week-focus,.week-focus-add{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--surface-2);background:var(--accent-bg)}.week-focus-add{width:100%;background:none;border:none;border-bottom:1px solid var(--surface-2);font-size:var(--fs-secondary);font-weight:600;color:var(--accent);cursor:pointer;text-align:left}.week-focus-add:hover{background:var(--accent-bg)}.week-focus.editing{flex-direction:column;align-items:stretch;gap:8px}.week-focus-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.week-focus-label{font-size:var(--fs-label);font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:var(--ls-label)}.week-focus-text{font-size:var(--fs-body);color:var(--text)}.week-focus-result{font-size:var(--fs-secondary);color:var(--text-2);white-space:nowrap}.week-focus-result.ja{color:var(--ok);font-weight:600}.week-focus-result.teilweise{color:var(--warn);font-weight:600}.week-focus-result.nein{color:var(--miss);font-weight:600}.week-focus-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.week-focus-count{margin-left:auto;font-size:var(--fs-secondary);color:var(--text-3);font-variant-numeric:tabular-nums}.week-focus-error{font-size:var(--fs-secondary);color:var(--miss)}.week-focus-hint{font-size:var(--fs-secondary);color:var(--text-3)}.week-focus-remove{color:var(--miss)}@media (max-width: 600px){.week-focus{flex-wrap:wrap;row-gap:4px}.week-focus-main{flex-basis:100%}}.week-recap{border-bottom:1px solid var(--surface-2)}.week-recap--pinned{border-bottom:none;overflow:hidden}.week-recap-head{display:flex;align-items:center;gap:12px;width:100%;padding:12px 20px;border:none;background:none;font:inherit;text-align:left;cursor:pointer}.week-recap-head:hover{background:var(--surface)}.week-recap-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.week-recap-label{font-size:var(--fs-label);font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:var(--ls-label)}.week-recap-headline{font-size:var(--fs-body);font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-recap.open .week-recap-headline{white-space:normal}.week-recap-cta{font-size:var(--fs-secondary);font-weight:600;color:var(--accent);white-space:nowrap}.week-recap-body{display:flex;flex-direction:column;gap:12px;padding:0 20px 16px}.week-recap-rows{margin:0;display:flex;flex-direction:column;gap:4px}.week-recap-row{display:flex;gap:12px;font-size:var(--fs-secondary)}.week-recap-row dt{width:88px;flex-shrink:0;color:var(--text-3)}.week-recap-row dd{margin:0;color:var(--text)}.week-recap-ref{margin-left:8px;color:var(--text-3)}.week-recap-text{display:flex;flex-direction:column;gap:8px;font-size:var(--fs-body);color:var(--text-2);line-height:1.5}.week-recap-text p{margin:0}.week-recap-next{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--surface-2)}.week-recap-meta{font-size:var(--fs-label);color:var(--text-3)}.proposal-focus{display:flex;align-items:flex-start;gap:12px;margin-top:12px;padding:12px 16px;border-radius:var(--radius-sm);background:var(--accent-bg)}.proposal-focus-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.proposal-focus-label{font-size:var(--fs-label);font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:var(--ls-label)}.proposal-focus-text{font-size:var(--fs-body);color:var(--text)}.proposal-focus-existing{font-size:var(--fs-secondary);color:var(--text-2)}.proposal-focus-error{font-size:var(--fs-secondary);color:var(--miss)}@media (max-width: 600px){.proposal-focus{flex-direction:column}}.ov-page{max-width:1440px}.ov-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.ov-layout{display:flex;flex-direction:column;gap:32px}.ov-week{min-width:0;display:flex;flex-direction:column;gap:8px}.ov-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.ov-todo,.ov-side{min-width:0;display:flex;flex-direction:column;gap:8px}.ov-side>.ov-section-head:not(:first-child){margin-top:16px}@media (max-width: 1023px){.ov-cols{grid-template-columns:minmax(0,1fr)}}.ov-groups{display:flex;flex-direction:column;gap:16px}.ov-group{display:flex;flex-direction:column;gap:8px}.ov-group-head{display:flex;align-items:center;gap:8px}.ov-group-label{font-size:var(--fs-secondary);font-weight:600;color:var(--text)}.ov-group-count{font-size:var(--fs-secondary);color:var(--text-3)}.ov-hints{display:flex;flex-direction:column;gap:8px}.ov-hint{font-size:var(--fs-label);color:var(--text-3);padding:0 4px}.ov-h2{font-size:var(--fs-body);font-weight:600;color:var(--text);margin:0}.ov-section-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;min-height:32px}.ov-cards{display:flex;flex-direction:column;gap:8px}.ov-card{padding:16px;display:flex;flex-direction:column;gap:4px}.ov-card--dismissed{opacity:.55}.ov-card-action{align-self:flex-start}.ov-card-head{display:flex;align-items:center;gap:8px}.ov-card-name{flex:1;min-width:0;font-size:var(--fs-secondary);font-weight:600;color:var(--text)}.ov-card-text{font-size:var(--fs-secondary);color:var(--text-2);line-height:1.45;padding-right:8px;overflow-wrap:anywhere}.ov-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--text-4)}.ov-dot--danger{background:var(--miss)}.ov-dot--warning{background:var(--warn)}.ov-dot--accent{background:var(--accent)}.ov-dot--ok{background:var(--ok)}.ov-tag{font-size:var(--fs-label);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-label);white-space:nowrap}.ov-tag--danger{color:var(--miss);background:var(--miss-bg)}.ov-tag--warning{color:var(--warn);background:var(--warn-bg)}.ov-tag--accent{color:var(--accent);background:var(--accent-bg)}.ov-done{font-size:var(--fs-secondary);font-weight:400;color:var(--ok);background:var(--ok-bg);border:1px solid var(--ok-bd);border-radius:var(--radius);padding:12px 16px}.ov-lines{display:flex;flex-direction:column;gap:8px}.ov-line{display:flex;align-items:center;column-gap:8px;row-gap:4px;font-size:var(--fs-secondary);color:var(--text-2);flex-wrap:wrap;line-height:1.45}.ov-line>svg{color:var(--text-3);flex-shrink:0}.ov-line>.ov-dot{margin:0 4px}.ov-line>:nth-child(2){flex:1 1 calc(100% - 22px);min-width:0}.ov-line>:nth-child(3){margin-left:24px}.ov-line>.ov-x{margin-left:auto}.ov-line--tech{color:var(--warn)}.ov-moment-text strong{font-weight:600;color:var(--text)}.wk{position:relative;overflow:visible}.wk-scroll{overflow-x:auto;border-radius:var(--radius)}.wk-table{min-width:920px}.wk-row{display:grid;grid-template-columns:220px repeat(7,minmax(0,1fr)) 136px;border-bottom:1px solid var(--border);min-height:56px}.wk-row:last-child{border-bottom:0}.wk-row--dormant{opacity:.6}.wk-head{min-height:0;background:var(--surface)}.wk-name-head,.wk-sum-head{padding:8px 16px;font-size:var(--fs-label);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-3)}.wk-sum-head{padding:8px 12px;border-left:1px solid var(--border)}.wk-day{padding:8px;font-size:var(--fs-label);font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:var(--ls-label);border-left:1px solid var(--surface-2);white-space:nowrap}.wk-day--today{color:var(--accent);background:var(--accent-bg)}.wk-name{padding:8px 16px;display:flex;align-items:center;gap:8px;min-width:0}.wk-avatar{width:28px;height:28px;flex-shrink:0;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--text-2);font-size:var(--fs-label);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase}.wk-name-text{display:flex;flex-direction:column;gap:2px;min-width:0}.wk-name-btn{border:0;background:none;padding:0;text-align:left;cursor:pointer;font:inherit;font-size:var(--fs-secondary);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wk-name-btn:hover,.wk-name-btn.is-open{color:var(--accent)}.wk-note{font-size:var(--fs-label);color:var(--text-3);line-height:1.3}.wk-note--danger{color:var(--miss)}.wk-note--warn{color:var(--warn)}.wk-note--accent{color:var(--accent)}.wk-cell{padding:8px 4px;display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:0;border-left:1px solid var(--surface-2)}.wk-cell--today{background:var(--accent-bg)}.int-i1{--int: var(--int-1);--int-text: var(--int-1-text)}.int-i2{--int: var(--int-2);--int-text: var(--int-2-text)}.int-i3{--int: var(--int-3);--int-text: var(--int-3-text)}.int-i4{--int: var(--int-4);--int-text: var(--int-4-text)}.int-i5{--int: var(--int-5);--int-text: var(--int-5-text)}.int-cross{--int: var(--int-cross);--int-text: var(--int-cross-text)}.int-neutral{--int: var(--int-neutral);--int-text: var(--int-neutral-text)}.wk-chip{width:100%;display:flex;align-items:center;gap:4px;border-radius:var(--radius-xs);padding:4px 8px;cursor:pointer;font:inherit;font-size:var(--fs-label);font-weight:400;line-height:1.25;text-align:left;white-space:nowrap;background:var(--white);border:1px solid var(--int, var(--border-strong));box-shadow:inset 3px 0 0 var(--int, var(--border-strong));color:var(--text-2)}.wk-chip svg{flex-shrink:0}.wk-chip-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.wk-chip:hover{border-color:var(--accent)}.wk-chip--done{background:var(--int);color:var(--int-text);box-shadow:none}.wk-chip--missed{background:var(--white);border:1px dashed var(--miss);box-shadow:none;color:var(--miss);text-decoration:line-through}.wk-chip--today{outline:2px solid var(--accent);outline-offset:1px;color:var(--text)}.wk-chip--opt{border-style:dotted;color:var(--text-3)}.wk-chip--extra{border:1px dashed var(--text-4);box-shadow:none;color:var(--text-2)}.wk-sum{padding:8px 12px;display:flex;flex-direction:column;justify-content:center;gap:4px;border-left:1px solid var(--border)}.wk-sum-num{font-size:var(--fs-secondary);color:var(--text-3);white-space:nowrap}.wk-sum-num b{color:var(--text);font-weight:600}.wk-sum-sub{font-size:var(--fs-label);color:var(--text-3);white-space:nowrap}.wk-bar{display:block;height:4px;border-radius:2px;background:var(--surface-2);overflow:hidden}.wk-bar-fill{display:block;height:100%;background:var(--text-4)}.wk-bar-fill--ok{background:var(--ok)}.wk-bar-fill--warn{background:var(--warn)}.wk-bar-fill--miss{background:var(--miss)}.wk-foot{display:flex;gap:8px;align-items:center;padding:8px 16px;font-size:var(--fs-label);color:var(--text-3);border-top:1px solid var(--border)}.wk-legend{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:flex-end;font-size:var(--fs-label);color:var(--text-3)}.wk-legend span{display:inline-flex;align-items:center;gap:4px}.wk-legend-sep{width:1px;height:12px;background:var(--border)}.wk-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--int)}.wk-swatch--missed{width:14px;background:none;border:1px dashed var(--miss)}.wk-swatch--today{width:14px;background:none;border:2px solid var(--accent)}.wk-swatch--extra{width:14px;background:none;border:1px dashed var(--text-4)}.wk-card{position:absolute;z-index:30;width:320px;padding:16px 20px;display:flex;flex-direction:column;gap:12px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);animation:coach-rise-in var(--dur) var(--ease-sheet)}@media (prefers-reduced-motion: reduce){.wk-card{animation:none}}.wk-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.wk-card-title{display:flex;flex-direction:column;min-width:0}.wk-card-name{font-size:var(--fs-body);font-weight:600;color:var(--text)}.wk-card-sub{font-size:var(--fs-secondary);color:var(--text-2)}.wk-card-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.wk-card-facts>div{display:flex;flex-direction:column}.wk-card-lbl{font-size:var(--fs-label);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-3)}.wk-card-val{font-size:var(--fs-body);font-weight:600;color:var(--text);white-space:nowrap}.wk-card-weeks{display:flex;flex-direction:column;gap:8px}.wk-card-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.wk-card-h{font-size:var(--fs-secondary);font-weight:600;color:var(--text)}.wk-card-hint{font-size:var(--fs-label);color:var(--text-3)}.wk-card-bars{display:flex;align-items:flex-end;gap:4px;height:48px}.wk-card-bars i{flex:1;background:var(--int-2);border-radius:2px 2px 0 0}.wk-card-bars i.is-now{background:var(--accent)}.wk-card-text{font-size:var(--fs-secondary);color:var(--text-2)}.wk-card-actions{display:flex;gap:8px}.wk-legend span{display:flex;align-items:center;gap:8px}.wk-legend i{width:10px;height:10px;border-radius:3px;border:1px solid var(--border-strong);background:var(--white)}.wk-legend i.wk-chip--done{background:var(--ok-bg);border-color:var(--ok-bd)}.wk-legend i.wk-chip--missed{background:var(--miss-bg);border-color:var(--miss-bd)}.wk-legend i.wk-chip--extra{border-style:dashed;border-color:var(--text-4)}@media (max-width: 900px){.ov-todo{order:-1}}.an-card{padding:20px;display:flex;flex-direction:column;gap:12px}.an-chead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;column-gap:8px;row-gap:2px}.an-title{font-size:var(--fs-body);font-weight:600;color:var(--text);letter-spacing:-.2px}.an-sub{font-size:var(--fs-secondary);color:var(--text-3);font-variant-numeric:tabular-nums}.an-label{font-size:var(--fs-label);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-3)}.an-headline{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.an-big{font-size:var(--fs-display);font-weight:600;letter-spacing:-.5px;color:var(--text);font-variant-numeric:tabular-nums}.an-delta{font-size:var(--fs-secondary);font-weight:600}.an-delta.up{color:var(--ok)}.an-delta.dn{color:var(--warn)}.an-section{border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:8px}.an-section--first{border-top:none;padding-top:0}.an-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.an-grid>.an-section{border-top:1px solid var(--border);padding:20px;gap:12px}@media (max-width: 1023px){.an-grid{grid-template-columns:minmax(0,1fr)}}.an-big.ok,.an-delta.ok{color:var(--ok)}.an-big.warn,.an-delta.warn{color:var(--warn)}.an-big.miss,.an-delta.miss{color:var(--miss)}.an-text{font-size:var(--fs-body);color:var(--text);line-height:1.5}.an-text strong{font-weight:600;font-variant-numeric:tabular-nums}.an-text strong.ok{color:var(--ok)}.an-text strong.warn{color:var(--warn)}.an-text--strong{font-weight:600}.an-text--muted{color:var(--text-3)}.an-text--ok{color:var(--ok)}.an-text--warn{color:var(--warn);font-weight:600}.an-note{font-size:var(--fs-secondary);color:var(--text-3);line-height:1.45}.an-list{margin:0;padding-left:16px;display:grid;gap:2px;font-size:var(--fs-secondary);color:var(--text-2);line-height:1.45}.an-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--surface-2)}.an-row:first-of-type{border-top:none}.an-row-label{font-size:var(--fs-secondary);color:var(--text-3)}.an-row-label b{font-weight:400;color:var(--text)}.an-row-value{font-size:var(--fs-body);font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.an-row-value.ok{color:var(--ok)}.an-row-value.warn{color:var(--warn)}.an-row-unit{font-size:var(--fs-secondary);font-weight:400;color:var(--text-3)}.an-legend{display:flex;gap:16px;font-size:var(--fs-label);color:var(--text-3)}.an-legend span{display:flex;align-items:center;gap:8px}.an-legend i{display:inline-block;width:12px;height:3px;border-radius:2px}.an-legend i.accent{background:var(--accent)}.an-legend i.faint{background:var(--text-3)}.an-chart-wrap{position:relative}.an-ytick{position:absolute;left:2px;font-size:var(--fs-label);color:var(--text-3);pointer-events:none;font-variant-numeric:tabular-nums}.an-ytick--top{top:0}.an-ytick--bottom{bottom:0}.an-axis{display:flex;justify-content:space-between;font-size:var(--fs-label);color:var(--text-3);font-variant-numeric:tabular-nums}.an-axis--grid{display:grid;text-align:center}.an-inset{background:var(--surface);border-radius:var(--radius-sm);padding:8px 12px;display:grid;gap:4px}.an-check{display:flex;align-items:center;gap:8px;font-size:var(--fs-secondary);color:var(--text);margin-top:2px;cursor:pointer}.an-check.saving{cursor:wait}.an-check input{accent-color:var(--accent)}.form-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.form-eyebrow{font-size:var(--fs-body);font-weight:600;color:var(--text)}.form-stand{font-size:var(--fs-label);font-weight:400;color:var(--text-3)}.form-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:12px}.form-tile{display:flex;flex-direction:column;gap:2px;background:var(--surface);border-radius:var(--radius-sm);padding:8px 12px}.form-tile-label{font-size:var(--fs-label);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-3)}.form-tile-value{font-size:var(--fs-body);font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.form-tile-value.is-missing{font-weight:400;color:var(--text-3)}.form-tile-value.ok{color:var(--ok)}.form-tile-value.warn{color:var(--warn)}.form-tile-value.miss{color:var(--miss)}.act-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.act-search{width:240px;padding:8px 12px}.act-filters{display:flex;gap:8px;flex-wrap:wrap}.act-filter{padding:4px 12px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--white);font-size:var(--fs-secondary);color:var(--text-2)}.act-filter:hover{border-color:var(--border-strong);color:var(--text)}.act-filter.active{background:var(--text);border-color:var(--text);color:var(--white);font-weight:600}.act-count{margin-left:auto;font-size:var(--fs-secondary);color:var(--text-3)}.act-table-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow-x:auto}.act-table{min-width:880px}.act-row{width:100%;display:grid;grid-template-columns:104px minmax(0,1.6fr) 84px 84px 96px 56px minmax(0,1.2fr) 112px;gap:12px;align-items:center;padding:8px 16px;border-top:1px solid var(--surface-2);text-align:left;font-size:var(--fs-secondary);color:var(--text);cursor:pointer}.act-row:hover{background:var(--surface)}.act-row.is-selected{background:var(--accent-bg);box-shadow:inset 3px 0 0 var(--accent)}.act-row--head{border-top:0;background:var(--surface);cursor:default}.act-row--head:hover{background:var(--surface)}.act-row--head .act-cell{font-size:var(--fs-label);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-3)}.act-cell{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.act-cell--num{text-align:right}.act-cell--date{display:flex;flex-direction:column}.act-date{font-weight:600}.act-time{font-size:var(--fs-label);color:var(--text-3)}.act-cell--name{display:flex;align-items:center;gap:8px}.act-cell--name svg{flex-shrink:0}.act-name{font-weight:600;overflow:hidden;text-overflow:ellipsis}.act-link{color:var(--text-2)}.act-none{color:var(--text-4)}.act-fit{display:inline-flex;padding:2px 8px;border-radius:var(--radius-pill);font-size:var(--fs-label);font-weight:600;letter-spacing:var(--ls-label);text-transform:uppercase}.act-fit--ok{background:var(--ok-bg);color:var(--ok)}.act-fit--warn{background:var(--warn-bg);color:var(--warn)}.act-fit--neutral{background:var(--surface-2);color:var(--text-3)}.act-empty{padding:16px;font-size:var(--fs-secondary);color:var(--text-3);border-top:1px solid var(--surface-2)}.act-drawer-overlay{display:flex;justify-content:flex-end}.act-drawer{width:600px;max-width:100%;height:100%;overflow-y:auto;background:var(--white);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);animation:coach-slide-in var(--dur) var(--ease-sheet)}.act-drawer .modal-header{position:sticky;top:0;z-index:1;background:var(--white);padding:20px 24px 16px;border-bottom:1px solid var(--border)}@media (prefers-reduced-motion: reduce){.act-drawer{animation:none}}
