*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--primary:#c8102e;--primary-dark:#a00d24;--primary-light:#ff1744;--accent:#ff3d00;--secondary:#0a0a0a;--secondary-light:#1a1a1a;--surface:#111;--surface-light:#1e1e1e;--text:#fff;--text-muted:#999;--gradient-1:linear-gradient(135deg, #c8102e 0%, #8b0000 50%, #0a0a0a 100%);--gradient-2:linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);--gradient-accent:linear-gradient(135deg, #c8102e, #ff3d00);--glow:0 0 20px #c8102e4d;--card:#1a1a1a;--card-hover:#222;--border:#2a2a2a;--border-light:#333;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:"JetBrains Mono", "Fira Code", monospace;--radius:10px;--radius-sm:6px;--shadow:0 2px 8px #0006;--shadow-lg:0 8px 24px #00000080;--sidebar-width:220px}body{font-family:var(--font);background:var(--secondary);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:var(--primary-light);text-decoration:none}a:hover{color:var(--primary)}.app{min-height:100vh}.app-with-sidebar{display:flex}.app-with-sidebar .main-content{margin-left:var(--sidebar-width);flex:1}.main-content{width:100%;max-width:1400px;padding:28px 32px}.app-loading{background:var(--secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100vh;display:flex}.app-loading h1{color:var(--text);letter-spacing:4px;font-size:36px}.app-loading h1 span{color:var(--primary)}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:36px;height:36px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading{text-align:center;color:var(--text-muted);padding:60px;font-size:16px}.splash-screen{z-index:9999;background:var(--secondary);background-image:radial-gradient(#c8102e1f 0%,#0000 70%);justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:fixed;inset:0}.splash-fade{opacity:0;pointer-events:none}.splash-content{text-align:center;animation:.6s ease-out splashIn}@keyframes splashIn{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.splash-logo{filter:drop-shadow(0 0 40px #c8102e66);width:180px;height:auto;margin-bottom:24px;animation:1.5s ease-in-out infinite alternate splashPulse}@keyframes splashPulse{0%{filter:drop-shadow(0 0 20px #c8102e4d)}to{filter:drop-shadow(0 0 50px #c8102e99)}}.splash-title{letter-spacing:6px;color:var(--text);margin-bottom:4px;font-size:28px;font-weight:900}.splash-sub{letter-spacing:4px;color:var(--primary-light);text-transform:uppercase;margin-bottom:24px;font-size:14px;font-weight:700}.splash-bar{background:var(--border);border-radius:3px;width:200px;height:3px;margin:0 auto;overflow:hidden}.splash-bar-fill{background:var(--gradient-accent);border-radius:3px;width:100%;height:100%;animation:1.8s ease-in-out splashLoad}@keyframes splashLoad{0%{width:0}to{width:100%}}.sidebar{width:var(--sidebar-width);background:var(--gradient-2);border-right:1px solid var(--border);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-top{flex:1;padding:20px 12px}.sidebar-logo{align-items:center;gap:8px;margin-bottom:24px;padding:8px 12px;text-decoration:none;display:flex}.bucs-logo-icon{border-radius:8px;flex-shrink:0;width:38px;height:38px}.logo-full-bucs{line-height:1.15}.logo-bucs-title{letter-spacing:3px;color:var(--primary-light);font-size:16px;font-weight:900;display:block}.logo-bucs-sub{letter-spacing:1.5px;color:var(--text-muted);text-transform:uppercase;font-size:8px;font-weight:700;display:block}.sidebar-links{flex-direction:column;gap:2px;display:flex}.sidebar-link{border-radius:var(--radius-sm);color:var(--text-muted);align-items:center;gap:10px;padding:10px 14px;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:flex}.sidebar-link:hover{color:var(--text);background:#ffffff0f}.sidebar-link.active{color:var(--text);background:var(--gradient-accent);box-shadow:var(--glow)}.sl-icon{text-align:center;width:20px;font-size:16px}.sidebar-bottom{border-top:1px solid var(--border);padding:12px}.theme-switcher{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.theme-btn{border-radius:var(--radius-sm);color:var(--text-muted);font-size:11px;font-weight:600;font-family:var(--font);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:8px 10px;transition:all .15s;display:flex}.theme-btn:hover{color:var(--text);background:#ffffff0f}.theme-btn.active{border-color:var(--primary);color:var(--text);background:#c8102e1a}.theme-dot{border-radius:50%;flex-shrink:0;width:14px;height:14px;box-shadow:0 0 6px #0000004d}.sidebar-user{align-items:center;gap:10px;padding:8px 4px;display:flex}.sidebar-avatar{background:var(--gradient-accent);width:32px;height:32px;color:var(--text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:800;display:flex}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.sidebar-signout{color:var(--text-muted);cursor:pointer;font-size:11px;font-family:var(--font);background:0 0;border:none;padding:0}.sidebar-signout:hover{color:var(--primary-light)}.auth-page{background:var(--secondary);background-image:var(--gradient-1);background-size:cover;justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:420px;box-shadow:var(--shadow-lg), var(--glow);padding:40px}.auth-logo{text-align:center;margin-bottom:32px}.auth-logo-img{filter:drop-shadow(0 0 20px #c8102e4d);width:100px;height:auto;margin-bottom:16px}.auth-logo h1{letter-spacing:3px;color:var(--text);font-size:28px}.auth-logo h1 span{color:var(--primary)}.auth-logo p{color:var(--text-muted);margin-top:4px;font-size:14px}.auth-switch{text-align:center;color:var(--text-muted);margin-top:20px;font-size:14px}.auth-switch a{color:var(--primary-light)}.role-toggle{gap:8px;display:flex}.role-btn{border:2px solid var(--border);background:var(--surface-light);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);flex:1;padding:10px;font-size:14px;font-weight:600;transition:all .15s}.role-btn.active{border-color:var(--primary);color:var(--primary-light);background:#c8102e26}.form-group{margin-bottom:16px}.form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-size:11px;font-weight:700;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:14px;font-family:var(--font);background:var(--surface-light);color:var(--text);padding:10px 12px;transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #c8102e33}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted);opacity:.5}.form-card{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);max-width:500px;box-shadow:var(--shadow);padding:32px}.error-msg{color:var(--primary-light);border-radius:var(--radius-sm);background:#c8102e26;border:1px solid #c8102e4d;margin-bottom:16px;padding:10px 14px;font-size:14px}.btn{border-radius:var(--radius-sm);font-size:14px;font-weight:700;font-family:var(--font);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 20px;text-decoration:none;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--gradient-accent);color:var(--text);box-shadow:var(--glow)}.btn-primary:hover:not(:disabled){filter:brightness(1.15);color:var(--text)}.btn-secondary{background:var(--surface-light);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--card-hover);border-color:var(--border-light)}.btn-full{width:100%}.btn-sm{padding:6px 14px;font-size:12px}.btn-icon{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:4px;font-size:18px;line-height:1}.btn-icon:hover{color:var(--text)}.btn-delete:hover{color:var(--primary)}.link{color:var(--primary-light);font-size:14px;font-weight:500}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.page-header h1{letter-spacing:-.5px;font-size:28px}.header-actions{gap:8px;display:flex}.section-header{justify-content:space-between;align-items:center;margin:24px 0 12px;display:flex}.section-header h2{font-size:18px}.back-link{color:var(--text-muted);margin-bottom:12px;font-size:14px;display:inline-block}.back-link:hover{color:var(--primary-light)}.empty-state{color:var(--text-muted);padding:12px 0;font-size:14px}.empty-state a{color:var(--primary-light)}.empty-state-big{text-align:center;padding:80px 20px}.empty-state-big h2{margin-bottom:8px;font-size:24px}.empty-state-big p{color:var(--text-muted);margin-bottom:20px}.bucs-hero-compact{background:var(--gradient-1);border-radius:var(--radius);border:1px solid #c8102e4d;flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:12px;padding:16px 20px;display:flex}.bucs-hero-title-sm{letter-spacing:3px;white-space:nowrap;font-size:20px;font-weight:900}.bucs-hero-title-sm span{color:var(--text-muted);font-size:14px}.bucs-hero-stats-compact{gap:16px;display:flex}.bhs{text-align:center}.bhs-n{background:var(--gradient-accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:20px;font-weight:900;line-height:1;display:block}.bhs-l{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:9px;font-weight:700}.bucs-actions-compact{gap:6px;margin-left:auto;display:flex}.dash-metric-bar{align-items:center;gap:8px;margin-bottom:12px;display:flex}.bucs-select{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:12px;font-family:var(--font);background:var(--surface-light);color:var(--text);padding:5px 10px}.bucs-select:focus{border-color:var(--primary);outline:none}.dash-trio{grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.dash-trio-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.dash-trio-card h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;font-size:12px;font-weight:700}.dt-lb-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:4px 0;display:flex}.dt-lb-row:last-child{border-bottom:none}.dt-lb-rank{text-align:center;width:26px;font-size:12px;font-weight:800}.dt-lb-name{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;font-weight:600;overflow:hidden}.dt-lb-val{font-weight:800;font-family:var(--mono);color:var(--primary-light);white-space:nowrap;font-size:12px}.dash-bottom{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.dash-bottom-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.dash-bottom-card h3{font-size:12px;font-weight:700}.bucs-section-header{justify-content:space-between;align-items:center;gap:6px;margin-bottom:8px;display:flex}.dr-row{border-bottom:1px solid var(--border);grid-template-columns:1fr 1fr auto auto;align-items:center;gap:6px;padding:3px 0;font-size:11px;display:grid}.dr-row:last-child{border-bottom:none}.dr-name{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.dr-metric{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dr-val{color:var(--primary-light);font-weight:800;font-family:var(--mono)}.dr-date{color:var(--text-muted)}.dro-row{color:var(--text);align-items:center;gap:6px;padding:3px 0;font-size:12px;display:flex}.dro-row:hover{opacity:.8}.dro-name{white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.dro-pos{color:var(--text-muted);font-size:10px}.dp-row{border-bottom:1px solid var(--border);color:var(--text);justify-content:space-between;align-items:center;padding:4px 0;font-size:12px;display:flex}.dp-row:last-child{border-bottom:none}.dp-row:hover{opacity:.8}.dp-name{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.dp-meta{color:var(--text-muted);font-size:10px}.athlete-avatar{background:var(--gradient-accent);width:36px;height:36px;color:var(--text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}@media (width<=900px){.dash-trio,.dash-bottom{grid-template-columns:1fr}.bucs-hero-compact{flex-direction:column;align-items:flex-start}.bucs-actions-compact{margin-left:0}}.list-filters{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.sort-select{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font);background:var(--surface-light);color:var(--text);padding:8px 12px}.sort-select:focus{border-color:var(--primary);outline:none}.list-table{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.list-header{background:var(--surface);text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);gap:12px;padding:10px 16px;font-size:10px;font-weight:700;display:grid}.list-header-programs{grid-template-columns:1fr 160px 70px 70px 100px 40px}.list-header-athletes{grid-template-columns:40px 1fr 140px 120px 50px 100px 40px}.list-row{border-bottom:1px solid var(--border);color:var(--text);align-items:center;gap:12px;padding:12px 16px;text-decoration:none;transition:background .1s;display:grid}.list-row:hover{color:var(--text);background:#ffffff08}.list-row:last-child{border-bottom:none}.list-row-programs{grid-template-columns:1fr 160px 70px 70px 100px 40px}.list-row-athletes{grid-template-columns:40px 1fr 140px 120px 50px 100px 40px}.list-cell-primary{min-width:0}.list-cell-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.list-cell-desc{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.list-cell-tags{flex-wrap:wrap;gap:4px;display:flex}.list-cell-stat{font-weight:700;font-family:var(--mono);text-align:center;font-size:14px}.list-cell-date{color:var(--text-muted);font-size:12px}.list-cell-phone{color:var(--text-muted);font-size:13px}.list-cell-actions{justify-content:flex-end;display:flex}.list-cell-avatar{align-items:center;display:flex}.athlete-img-sm{object-fit:cover;border-radius:50%;width:32px;height:32px}.program-tag{color:var(--text-muted);background:#ffffff14;border-radius:20px;padding:2px 10px;font-size:11px;font-weight:600}.form-row-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.pe-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.pe-header h1{margin-bottom:4px;font-size:28px}.pe-desc{color:var(--text-muted);font-size:14px}.pe-actions{align-items:center;gap:12px;display:flex}.week-jump-nav{z-index:50;background:var(--secondary);border-bottom:1px solid var(--border);gap:4px;margin-bottom:20px;padding:8px 0;display:flex;position:sticky;top:0}.week-jump-btn{border:2px solid var(--border);background:var(--card);width:36px;height:36px;color:var(--text-muted);cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font);border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex}.week-jump-btn.filled{border-color:var(--primary);color:var(--text)}.week-jump-btn.active{background:var(--gradient-accent);color:var(--text);box-shadow:var(--glow);border-color:#0000}.week-jump-btn:hover{border-color:var(--primary);transform:scale(1.1)}.pe-weeks{flex-direction:column;gap:8px;display:flex}.pe-week{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);transition:all .2s;overflow:hidden}.pe-week-expanded{border-color:var(--primary);box-shadow:var(--glow)}.pe-week-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:14px 20px;transition:background .15s;display:flex}.pe-week-header:hover{background:#ffffff08}.pe-week-header-left{align-items:center;gap:12px;display:flex}.pe-week-chevron{color:var(--text-muted);font-size:12px;transition:transform .2s;display:inline-block}.pe-week-chevron.open{transform:rotate(90deg)}.pe-week-title{letter-spacing:.5px;font-size:16px;font-weight:800}.pe-week-badge{color:var(--text-muted);background:#ffffff0f;border-radius:20px;padding:2px 10px;font-size:12px}.pe-week-empty-tag{color:var(--text-muted);font-size:11px;font-style:italic}.pe-week-header-right{gap:6px;display:flex}.pe-week-body{border-top:1px solid var(--border);padding:0 20px 20px}.cycle-wrapper{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.cycle-wrapper.cycle-expanded{border-color:var(--primary);box-shadow:var(--glow)}.cycle-summary-bar{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:12px 16px;transition:background .15s;display:flex}.cycle-summary-bar:hover{background:#ffffff08}.csb-left{align-items:center;gap:10px;display:flex}.csb-chevron{color:var(--text-muted);font-size:11px;transition:transform .2s;display:inline-block}.csb-chevron.open{transform:rotate(90deg)}.csb-name{font-size:16px;font-weight:800}.csb-meta{color:var(--text-muted);font-size:12px}.csb-right{align-items:center;gap:6px;display:flex}.cycle-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;overflow:hidden}.cycle-header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.cycle-header-left{flex:1;align-items:center;gap:10px;display:flex}.cycle-header-right{align-items:center;gap:8px;display:flex}.cycle-name-input{font-size:16px;font-weight:800;font-family:var(--font);color:var(--text);background:0 0;border:none;min-width:150px;padding:4px 8px}.cycle-name-input:focus{background:var(--surface-light);border-radius:var(--radius-sm);outline:none}.cycle-meta{color:var(--text-muted);white-space:nowrap;font-size:12px}.cycle-grid-wrapper{padding:0 16px 8px;overflow-x:auto}.cycle-grid{border-radius:var(--radius-sm);border:1px solid var(--border);gap:0;min-width:500px;display:grid;overflow:hidden}.cg-header{background:var(--surface);color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border);padding:8px 10px;font-size:10px;font-weight:700}.cg-ex-col{z-index:2;position:sticky;left:0}.cg-exercise{background:var(--surface-light);border-bottom:1px solid var(--border);z-index:1;align-items:center;gap:6px;min-height:70px;padding:6px 10px;display:flex;position:sticky;left:0}.cg-ex-info{flex-direction:column;gap:2px;min-width:0;display:flex}.cg-ex-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.cg-ex-preset{position:relative}.cg-preset-btn{color:var(--text-muted);font-size:10px;font-family:var(--font);cursor:pointer;background:0 0;border:none;padding:2px 0}.cg-preset-btn:hover{color:var(--primary-light)}.cg-cell{border-bottom:1px solid var(--border);border-right:1px solid #ffffff08;flex-direction:column;gap:2px;padding:4px 6px;display:flex}.cg-cell-sr{align-items:center;gap:3px;display:flex}.cg-input-sm{border:1px solid var(--border);width:36px;font-size:13px;font-family:var(--mono);text-align:center;background:var(--surface);color:var(--text);border-radius:3px;padding:4px 5px;font-weight:700}.cg-input-sm:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 1px #c8102e33}.cg-input-wt{width:100%;font-size:11px;font-family:var(--mono);color:var(--primary-light);background:0 0;border:1px solid #0000;border-radius:3px;padding:3px 5px}.cg-input-wt:focus{border-color:var(--border);background:var(--surface);outline:none}.cg-input-wt::placeholder{color:#ffffff26}.cg-input-notes{width:100%;color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:3px;padding:2px 5px;font-size:10px}.cg-input-notes:focus{border-color:var(--border);background:var(--surface);outline:none}.cg-input-notes::placeholder{color:#ffffff1a}.cg-remove{border-bottom:1px solid var(--border);justify-content:center;align-items:center;display:flex}.ex-sheet{background:var(--surface-light);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:10px;overflow:hidden}.ex-sheet-top{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:8px 12px;display:flex}.ex-sheet-name{font-size:14px;font-weight:700}.ex-name-dropdown{align-items:center;gap:4px;display:flex;position:relative}.ex-name-btn{font-size:14px;font-weight:700;font-family:var(--font);color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:4px;padding:2px 0;display:flex}.ex-name-btn:hover{color:var(--primary-light)}.ex-name-arrow{color:var(--text-muted);font-size:10px}.ex-sheet-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ex-sheet-preset{align-items:center;gap:4px;display:flex;position:relative}.ex-sheet-preset-btn{color:var(--text-muted);font-size:11px;font-family:var(--font);cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.ex-sheet-preset-btn:hover{color:var(--primary-light)}.ex-sheet-add-preset{color:var(--primary-light);font-size:10px;font-family:var(--font);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-weight:700}.ex-sheet-add-preset:hover{text-decoration:underline}.inline-preset-form{background:var(--surface);border-bottom:1px solid var(--border);padding:8px 12px}.ipf-row{gap:6px;margin-bottom:6px;display:flex}.ipf-name{border:1px solid var(--border);font-size:13px;font-family:var(--font);background:var(--surface-light);color:var(--text);border-radius:3px;flex:1;padding:5px 8px;font-weight:600}.ipf-tags{border:1px solid var(--border);width:140px;font-size:11px;font-family:var(--font);background:var(--surface-light);color:var(--text-muted);border-radius:3px;padding:5px 8px}.ipf-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);grid-template-columns:50px 50px 50px 50px;gap:4px;font-size:9px;font-weight:700;display:grid}.ipf-line{grid-template-columns:50px 50px 50px 50px auto;gap:4px;margin-bottom:2px;display:grid}.ipf-line input{border:1px solid var(--border);font-size:12px;font-family:var(--mono);background:var(--surface-light);color:var(--text);text-align:center;border-radius:3px;padding:4px 6px}.ipf-line input:focus{border-color:var(--primary);outline:none}.tag-chips{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.tag-add-row{align-items:center;gap:6px;display:flex}.tag-add-row select,.tag-add-row input{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font);background:var(--surface-light);color:var(--text);padding:6px 8px}.ex-sheet-scroll{overflow-x:auto}.ex-sheet-table{border-collapse:collapse;width:100%;min-width:400px}.ex-sheet-corner{background:var(--surface);width:30px}.ex-sheet-wk-th{background:var(--primary-dark);color:var(--text);text-align:center;letter-spacing:1px;text-transform:uppercase;border-left:2px solid var(--surface);padding:6px 4px;font-size:11px;font-weight:800}.ex-sheet-wk-th:first-of-type{border-left:none}.ex-sheet-sub{color:var(--text-muted);text-align:center;letter-spacing:.5px;text-transform:uppercase;border-bottom:1px solid var(--border);background:#c8102e26;padding:3px 2px;font-size:9px;font-weight:700}.ex-sheet-sub-pct{color:var(--primary-light)}.ex-sheet-sub-wt{border-right:2px solid var(--border);font-weight:800}.ex-sheet-sub-wt:last-child{border-right:none}.ex-sheet-row-label{background:var(--surface)}.ex-sheet-row-num{background:var(--surface);color:var(--text-muted);text-align:center;border-right:1px solid var(--border);width:30px;padding:0 4px;font-size:10px;font-weight:700}.ex-sheet-data-row:hover{background:#ffffff05}.ex-sheet-td{border-bottom:1px solid #ffffff0a;padding:1px}.ex-sheet-td-wt{border-right:2px solid var(--border)}.ex-sheet-td-wt:last-child{border-right:none}.es-input{width:100%;font-family:var(--mono);text-align:center;color:var(--text);background:0 0;border:none;padding:5px 4px;font-size:13px;font-weight:700}.es-input:focus{background:#c8102e14;outline:none}.es-input::placeholder{color:#ffffff1f}.es-pct{color:var(--primary-light);font-size:12px}.es-wt{color:var(--text-muted);font-size:12px}.ex-sheet-td-pct .es-input::placeholder{color:#c8102e40}.ex-sheet-add-row td{padding:0}.egl-add-line{border:1px dashed var(--border);width:100%;color:var(--text-muted);cursor:pointer;font-size:11px;font-family:var(--font);background:0 0;border-radius:0;padding:4px;display:block}.egl-add-line:hover{color:var(--primary-light);background:#c8102e0d}.new-cycle-form{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-top:16px;padding:20px}.new-cycle-form h3{margin-bottom:12px}.ncf-fields{flex-wrap:wrap;gap:16px;display:flex}.ncf-week-pills{gap:4px;display:flex}.ncf-pill{border:2px solid var(--border);background:var(--surface-light);width:36px;height:36px;color:var(--text-muted);cursor:pointer;font-size:14px;font-weight:700;font-family:var(--font);border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex}.ncf-pill.active{background:var(--gradient-accent);color:var(--text);box-shadow:var(--glow);border-color:#0000}.ncf-pill:hover{border-color:var(--primary)}.sp-scroll{margin:0 -32px;padding:0 32px;overflow:auto visible}.sp-days{gap:8px;min-width:max-content;padding:0 0 16px;display:flex}.sp-day{background:var(--surface-light);border:1px solid var(--border);border-radius:var(--radius-sm);flex-shrink:0;width:340px;min-width:340px;padding:6px}.sp-day-header{text-transform:uppercase;letter-spacing:1.5px;color:var(--primary-light);border-bottom:1px solid var(--border);margin-bottom:4px;padding:4px 6px;font-size:11px;font-weight:800}.sp-day-content .block-card{margin-bottom:4px}.sp-day-content .block-header,.sp-day-content .block-body{padding:4px 8px}.sp-day-content .block-type-badge{padding:1px 5px;font-size:8px}.sp-day-content .block-label-input{padding:2px 4px;font-size:11px}.sp-day-content .block-note-input{padding:4px 6px;font-size:11px}.sp-day-content .ex-sheet{margin-bottom:4px}.sp-day-content .ex-sheet-top{padding:3px 6px}.sp-day-content .ex-sheet-name,.sp-day-content .ex-name-btn{font-size:12px}.sp-day-content .ex-sheet-preset-btn,.sp-day-content .ex-sheet-add-preset{font-size:9px}.sp-day-content .ex-sheet-scroll{overflow-x:visible}.sp-day-content .es-input{padding:2px 1px;font-size:10px}.sp-day-content .es-pct,.sp-day-content .es-wt{font-size:9px}.sp-day-content .ex-sheet-wk-th{letter-spacing:0;padding:2px 1px;font-size:8px}.sp-day-content .ex-sheet-sub{padding:1px;font-size:7px}.sp-day-content .ex-sheet-row-num{width:18px;padding:0 2px;font-size:8px}.sp-day-content .ex-sheet-corner{width:18px}.sp-day-content .egl-add-line{padding:2px;font-size:9px}.sp-day-content .btn-add-exercise{padding:4px 8px;font-size:10px}.sp-day-content .add-block-btn{padding:6px;font-size:10px}.sp-day-content .exercise-reorder .reorder-btn{font-size:8px}.pv-cycle{margin-bottom:24px}.pv-cycle-title{margin-bottom:8px;font-size:16px;font-weight:800}.pv-cycle-title span{color:var(--text-muted);font-size:12px;font-weight:600}.pv-days-scroll{overflow-x:auto}.pv-days{gap:8px;display:grid}.pv-day{background:var(--surface-light);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px}.pv-day-title{text-transform:uppercase;letter-spacing:1px;color:var(--primary-light);border-bottom:1px solid var(--border);margin-bottom:6px;padding-bottom:4px;font-size:11px;font-weight:800}.pv-block{margin-bottom:6px}.pv-note{color:var(--text-muted);border-left:2px solid #f59e0b;padding:2px 6px;font-size:11px;font-style:italic}.pv-test{color:#a78bfa;border-left:2px solid #8b5cf6;padding:2px 6px;font-size:11px}.pv-block-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px;font-size:10px;font-weight:700}.pv-exercise{border-bottom:1px solid #ffffff0a;margin-bottom:4px;padding:3px 0}.pv-ex-name{margin-bottom:2px;font-size:12px;font-weight:700}.pv-ex-weeks{flex-wrap:wrap;gap:6px;display:flex}.pv-ex-wk{align-items:baseline;gap:3px;display:flex}.pv-wk-label{color:var(--text-muted);font-size:9px;font-weight:700}.pv-wk-line{font-size:11px;font-family:var(--mono);color:var(--text);background:#ffffff0d;border-radius:2px;padding:0 4px}.note-top-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.note-saved-area{position:relative}.note-saved-btn{color:var(--text-muted);font-size:11px;font-family:var(--font);cursor:pointer;background:0 0;border:none;padding:2px 0}.note-saved-btn:hover{color:var(--primary-light)}.note-title-input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:14px;font-weight:700;font-family:var(--font);background:var(--surface);color:var(--text);margin-bottom:4px;padding:6px 8px}.note-title-input:focus{border-color:var(--primary);outline:none}.note-title-input::placeholder{color:var(--text-muted);font-weight:400}.note-save-row{justify-content:flex-end;margin-top:4px;display:flex}.note-save-btn{cursor:pointer;opacity:.5;background:0 0;border:none;padding:2px 4px;font-size:18px;transition:opacity .15s}.note-save-btn:hover{opacity:1}.notes-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;display:grid}.note-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);border-left:4px solid #f59e0b;padding:16px}.note-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.note-card-header h3{font-size:15px}.note-card-content{color:var(--text-muted);white-space:pre-wrap;max-height:120px;font-size:13px;line-height:1.5;overflow:hidden}.note-card-date{color:var(--text-muted);margin-top:8px;font-size:11px}.blocks-empty{text-align:center;color:var(--text-muted);padding:40px 20px}.block-card{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:16px;overflow:hidden}.block-note{border-left:4px solid #f59e0b}.block-training{border-left:4px solid var(--primary)}.block-test{border-left:4px solid #8b5cf6}.block-header{background:var(--surface-light);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.block-header-left{flex:1;align-items:center;gap:10px;display:flex}.block-reorder{flex-direction:column;gap:2px;display:flex}.block-type-badge{text-transform:uppercase;letter-spacing:1px;border-radius:4px;flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:800}.block-note .block-type-badge{color:#f59e0b;background:#f59e0b33}.block-training .block-type-badge{color:var(--primary-light);background:#c8102e33}.block-test .block-type-badge{color:#a78bfa;background:#8b5cf633}.block-label-input{font-size:14px;font-weight:600;font-family:var(--font);min-width:100px;color:var(--text);background:0 0;border:none;flex:1;padding:4px 8px}.block-label-input:focus{background:var(--surface);border-radius:var(--radius-sm);outline:none}.block-label-input::placeholder{color:var(--text-muted);font-weight:400}.block-test-name{font-size:14px;font-weight:700}.block-body{padding:12px 16px}.block-note-input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:14px;font-family:var(--font);resize:vertical;background:var(--surface);color:var(--text);padding:10px 12px;line-height:1.5}.block-note-input:focus{border-color:var(--primary);outline:none}.block-test-info{gap:20px;margin-bottom:8px;display:flex}.block-test-detail{color:var(--text-muted);font-size:13px}.block-test-detail strong{color:var(--text)}.add-block-area{margin-top:8px}.add-block-btn{border:2px dashed var(--border);border-radius:var(--radius);width:100%;color:var(--text-muted);font-size:15px;font-weight:700;font-family:var(--font);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:16px;transition:all .15s;display:flex}.add-block-btn:hover{border-color:var(--primary);color:var(--primary-light);box-shadow:var(--glow)}.add-block-options{flex-wrap:wrap;gap:12px;display:flex}.block-option{border:2px solid var(--border);border-radius:var(--radius);background:var(--card);cursor:pointer;min-width:140px;font-family:var(--font);text-align:center;color:var(--text);flex-direction:column;flex:1;align-items:center;gap:6px;padding:20px 16px;transition:all .15s;display:flex}.block-option:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.block-option-icon{font-size:24px}.block-option-label{font-size:14px;font-weight:700}.block-option-desc{color:var(--text-muted);font-size:11px}.block-option-note:hover{border-color:#f59e0b}.block-option-training:hover{border-color:var(--primary)}.block-option-test:hover{border-color:#8b5cf6}.block-option-cancel{color:var(--text-muted);font-size:13px;font-family:var(--font);cursor:pointer;background:0 0;border:none;align-self:center;padding:8px 16px}.athlete-blocks{flex-direction:column;gap:12px;display:flex}.athlete-block{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);padding:16px}.athlete-block-note{border-left:4px solid #f59e0b}.athlete-block-training{border-left:4px solid var(--primary)}.athlete-block-test{border-left:4px solid #8b5cf6}.ab-type-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:6px;font-size:10px;font-weight:800}.ab-note-content{white-space:pre-wrap;font-size:14px;line-height:1.6}.ab-test-name{margin-bottom:4px;font-size:18px;font-weight:800}.ab-test-instructions{color:var(--text-muted);margin-bottom:8px;font-size:13px;font-style:italic}.ab-test-metric{color:var(--text-muted);margin-bottom:12px;font-size:13px}.ab-test-input{align-items:center;gap:8px;display:flex}.ab-test-input input{border:2px solid var(--border);border-radius:var(--radius-sm);width:120px;font-size:16px;font-family:var(--mono);text-align:center;background:var(--surface);color:var(--text);padding:8px 12px;font-weight:700}.ab-test-input input:focus{border-color:#8b5cf6;outline:none}.ab-test-result{margin-top:4px}.ab-test-result-value{color:#a78bfa;font-size:24px;font-weight:800;font-family:var(--mono)}.ab-test-result-date{color:var(--text-muted);margin-left:8px;font-size:12px}.ex-lines-list{flex-direction:column;gap:12px;margin-bottom:8px;display:flex}.ex-lines-card{background:var(--surface-light);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}.ex-lines-header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.ex-lines-left{align-items:center;gap:8px;display:flex}.ex-lines-name{font-size:15px;font-weight:700}.ex-header-right{align-items:center;gap:8px;display:flex}.ex-preset-area{position:relative}.ex-preset-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-light);color:var(--text-muted);font-size:12px;font-family:var(--font);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:5px 12px;font-weight:600;transition:all .15s;display:flex}.ex-preset-btn:hover{border-color:var(--primary);color:var(--text)}.ex-preset-change{color:var(--primary-light);font-size:10px}.el-preset-option-lines{color:var(--text-muted);font-size:11px;font-family:var(--mono);margin-top:2px}.el-preset-clear{border-top:1px solid var(--border);font-weight:600;color:var(--primary-light)!important}.ex-lines-body{padding:8px 16px 12px}.ex-line-header-row{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);align-items:center;gap:8px;padding:0 0 4px;font-size:10px;font-weight:700;display:flex}.ex-line-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:4px 0;display:flex}.ex-line-row:last-of-type{border-bottom:none}.el-preset-col{flex-shrink:0;width:150px;position:relative}.el-sets-col{flex-shrink:0;width:56px}.el-x-col{text-align:center;flex-shrink:0;width:14px}.el-reps-col{flex-shrink:0;width:56px}.el-weight-col{flex-shrink:0;width:100px}.el-notes-col{flex:1;min-width:80px}.el-action-col{flex-shrink:0;width:28px}.el-sets-col input,.el-reps-col input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:14px;font-family:var(--mono);text-align:center;background:var(--surface);color:var(--text);padding:6px 8px;font-weight:600}.el-weight-col input,.el-notes-col input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:13px;font-family:var(--font);background:var(--surface);color:var(--text);padding:6px 8px}.el-sets-col input:focus,.el-reps-col input:focus,.el-weight-col input:focus,.el-notes-col input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #c8102e26}.el-remove-btn{font-size:14px}.cell-x{color:var(--text-muted);font-size:12px;font-weight:600}.el-preset-btn{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:12px;font-family:var(--font);background:var(--surface);cursor:pointer;text-align:left;color:var(--text-muted);justify-content:space-between;align-items:center;padding:6px 10px;font-weight:600;transition:border-color .15s;display:flex}.el-preset-btn:hover{border-color:var(--primary)}.el-preset-arrow{color:var(--text-muted);font-size:10px}.el-preset-dropdown{z-index:50;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:220px;box-shadow:var(--shadow-lg);margin-top:4px;position:absolute;top:100%;left:0;overflow:hidden}.el-preset-search{border:none;border-bottom:1px solid var(--border);width:100%;font-size:13px;font-family:var(--font);background:var(--surface);color:var(--text);outline:none;padding:8px 10px}.el-preset-list{max-height:200px;overflow-y:auto}.el-preset-option{cursor:pointer;width:100%;font-family:var(--font);text-align:left;color:var(--text);background:0 0;border:none;justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;display:flex}.el-preset-option:hover{background:#ffffff0f}.el-preset-option-name{font-weight:600}.el-preset-option-val{color:var(--text-muted);font-size:12px;font-family:var(--mono)}.el-preset-empty{text-align:center;color:var(--text-muted);padding:12px;font-size:13px}.ex-add-line-btn{border:2px dashed var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-muted);font-size:13px;font-weight:600;font-family:var(--font);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:4px;margin-top:6px;padding:8px;transition:all .15s;display:flex}.ex-add-line-btn:hover{border-color:var(--primary);color:var(--primary-light)}.exercise-reorder{flex-direction:column;gap:2px;display:flex}.reorder-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0;font-size:10px;line-height:1}.reorder-btn:hover:not(:disabled){color:var(--primary-light)}.reorder-btn:disabled{opacity:.2;cursor:default}.preset-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.preset-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:all .2s}.preset-card:hover{border-color:var(--primary)}.preset-card-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.preset-card-header h3{font-size:15px}.preset-card-lines{margin-bottom:8px}.plp-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);grid-template-columns:40px 50px 50px 50px;gap:4px;padding:0 0 2px;font-size:9px;font-weight:700;display:grid}.preset-line-preview{border-bottom:1px solid var(--border);grid-template-columns:40px 50px 50px 50px;gap:4px;padding:2px 0;font-size:13px;display:grid}.preset-line-preview:last-child{border-bottom:none}.plp-pct{font-family:var(--mono);color:var(--primary-light);font-weight:700}.plp-val{font-family:var(--mono);text-align:center;font-weight:700}.plp-wt{font-family:var(--mono);color:var(--text-muted);font-weight:600}.preset-card-tags{flex-wrap:wrap;gap:4px;display:flex}.preset-form-lines{flex-direction:column;gap:4px;display:flex}.pfl-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);grid-template-columns:60px 60px 60px 60px 28px;gap:6px;padding:0 0 4px;font-size:10px;font-weight:700;display:grid}.pfl-row{grid-template-columns:60px 60px 60px 60px 28px;gap:6px;display:grid}.pfl-row input{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-family:var(--mono);background:var(--surface);color:var(--text);text-align:center;padding:6px 8px}.pfl-row input:focus{border-color:var(--primary);outline:none}.pfl-pct{color:var(--primary-light)}.pfl-pct::placeholder{color:#c8102e4d}.preview-modal{max-width:800px;max-height:90vh}.preview-body{flex-direction:column;gap:20px;display:flex}.preview-week-title{color:var(--primary-light);border-bottom:2px solid var(--border);letter-spacing:.5px;margin-bottom:10px;padding-bottom:6px;font-size:18px;font-weight:800}.preview-day{margin-bottom:14px;margin-left:8px}.preview-day-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;font-size:14px;font-weight:700}.preview-block{margin-bottom:8px;margin-left:8px}.preview-note{color:var(--text-muted);border-left:3px solid #f59e0b;padding:6px 12px;font-size:13px;font-style:italic}.preview-test{color:#a78bfa;border-left:3px solid #8b5cf6;padding:6px 12px;font-size:13px}.preview-training-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;font-size:12px;font-weight:700}.preview-exercise{border-bottom:1px solid var(--border);align-items:baseline;gap:12px;padding:3px 0;display:flex}.preview-ex-name{flex-shrink:0;min-width:160px;font-size:14px;font-weight:700}.preview-ex-lines{flex-wrap:wrap;gap:6px;display:flex}.preview-ex-line{font-size:13px;font-family:var(--mono);color:var(--text-muted);background:#ffffff0d;border-radius:4px;padding:1px 8px}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:520px;max-height:80vh;box-shadow:var(--shadow-lg), var(--glow);padding:24px;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-header h2{font-size:20px}.picker-search input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);margin-bottom:12px;padding:10px 12px;font-size:15px}.picker-search input:focus{border-color:var(--primary);outline:none}.picker-categories{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.picker-cat{border:1px solid var(--border);background:var(--surface-light);cursor:pointer;color:var(--text-muted);border-radius:20px;padding:5px 12px;font-size:12px;font-weight:600}.picker-cat.active{background:var(--gradient-accent);color:var(--text);border-color:#0000}.picker-list{max-height:300px;overflow-y:auto}.picker-item{cursor:pointer;border-radius:var(--radius-sm);text-align:left;width:100%;font-size:14px;font-family:var(--font);color:var(--text);background:0 0;border:none;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.picker-item:hover{background:#ffffff0f}.picker-item-name{font-weight:600}.picker-item-cat{color:var(--text-muted);font-size:12px}.picker-empty{text-align:center;color:var(--text-muted);padding:20px}.picker-create-new{border-top:2px dashed var(--border);margin-top:4px}.picker-create-new .picker-item-name{color:var(--primary-light);font-weight:700}.exercise-filters{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:20px;display:flex}.search-input{border:1px solid var(--border);border-radius:var(--radius-sm);width:260px;font-size:14px;font-family:var(--font);background:var(--surface-light);color:var(--text);padding:10px 14px}.search-input:focus{border-color:var(--primary);outline:none}.filter-tags{flex-wrap:wrap;gap:6px;display:flex}.filter-tag{border:1px solid var(--border);background:var(--surface-light);cursor:pointer;color:var(--text-muted);border-radius:20px;padding:6px 14px;font-size:13px;font-weight:500}.filter-tag.active{background:var(--text);color:var(--secondary);border-color:var(--text)}.exercise-table{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}.table-header{background:var(--surface);text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);grid-template-columns:1fr 140px 1fr 80px;padding:12px 16px;font-size:11px;font-weight:700;display:grid}.table-row{border-bottom:1px solid var(--border);grid-template-columns:1fr 140px 1fr 80px;align-items:center;padding:12px 16px;display:grid}.table-row:hover{background:#ffffff08}.cat-badge{color:var(--text-muted);background:#ffffff14;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600}.col-actions{gap:8px;display:flex}.table-empty{text-align:center;color:var(--text-muted);padding:24px}.csv-modal{max-width:720px}.csv-hint{color:var(--text-muted);margin-bottom:16px;font-size:14px;line-height:1.6}.csv-hint strong{color:var(--text)}.csv-upload-actions{margin-bottom:16px}.csv-paste{margin-top:8px}.csv-paste label{color:var(--text-muted);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.csv-paste textarea{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:13px;font-family:var(--mono);resize:vertical;background:var(--surface);color:var(--text);padding:10px 12px}.csv-paste textarea:focus{border-color:var(--primary);outline:none}.csv-bulk{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);flex-direction:column;gap:8px;margin-bottom:16px;padding:12px;display:flex}.csv-bulk-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.csv-bulk-row label{color:var(--text-muted);white-space:nowrap;font-size:13px;font-weight:600}.csv-bulk-row select,.csv-bulk-row input{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font);background:var(--surface-light);min-width:120px;color:var(--text);flex:1;padding:6px 10px}.csv-table-wrapper{border:1px solid var(--border);border-radius:var(--radius);max-height:340px;margin-bottom:12px;overflow-y:auto}.csv-table{border-collapse:collapse;width:100%;font-size:13px}.csv-table th{background:var(--surface);color:var(--text-muted);text-align:left;text-transform:uppercase;z-index:1;padding:8px 10px;font-size:11px;font-weight:700;position:sticky;top:0}.csv-table td{border-bottom:1px solid var(--border);padding:6px 8px}.csv-row-disabled{opacity:.4}.csv-cell-input,.csv-cell-select{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:13px;font-family:var(--font);background:var(--surface);color:var(--text);padding:4px 6px}.csv-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.csv-count{color:var(--text-muted);font-size:13px;font-weight:600}.athlete-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.athlete-card{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);text-align:center;transition:all .2s;position:relative;overflow:hidden}.athlete-card:hover{border-color:var(--primary);box-shadow:var(--glow)}.athlete-card-link{color:var(--text);padding:24px 16px;display:block}.athlete-card-link:hover{color:var(--text)}.athlete-avatar-lg{background:var(--gradient-accent);width:56px;height:56px;color:var(--text);box-shadow:var(--glow);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 12px;font-size:22px;font-weight:700;display:flex}.athlete-card h3{font-size:16px}.athlete-card p{color:var(--text-muted);font-size:13px}.athlete-card .btn-delete{position:absolute;top:8px;right:8px}.archived-banner{color:#f59e0b;border-radius:var(--radius-sm);background:#ffa5001a;border:1px solid #ffa5004d;margin-bottom:16px;padding:10px 16px;font-size:13px;font-weight:600}.athlete-header{align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.athlete-avatar-xl{background:var(--gradient-accent);width:72px;height:72px;color:var(--text);box-shadow:var(--glow);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:30px;font-weight:700;display:flex}.athlete-img-xl{object-fit:cover;width:72px;height:72px;box-shadow:var(--glow);border-radius:50%;flex-shrink:0}.athlete-header-info{flex:1}.athlete-header-actions{flex-shrink:0}.athlete-meta-row{color:var(--text-muted);flex-wrap:wrap;gap:16px;margin-top:4px;font-size:13px;display:flex}.athlete-email-lg{color:var(--text-muted);font-size:14px}.stats-full-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-bottom:16px;display:grid}.stat-full-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.sfc-header{justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.sfc-name{margin-bottom:4px;font-size:15px;font-weight:700}.sfc-values{align-items:flex-end;gap:20px;margin-bottom:10px;display:flex}.sfc-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:10px;font-weight:700}.sfc-val{background:var(--gradient-accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:28px;font-weight:900;line-height:1.1}.sfc-val span{font-size:14px}.sfc-val-sm{color:var(--text-muted);font-size:18px;font-weight:700}.sfc-date{color:var(--text-muted);font-size:11px}.sfc-count{color:var(--text-muted);align-self:flex-end;font-size:11px}.sfc-history{border-top:1px solid var(--border);padding-top:8px}.sfc-history-row{align-items:center;gap:8px;padding:2px 0;font-size:12px;display:flex}.sfc-h-val{font-weight:700;font-family:var(--mono);min-width:80px}.sfc-h-date{color:var(--text-muted)}.sfc-h-tag{color:var(--text-muted);font-style:italic}.toggle-label{color:var(--text-muted);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:flex}.toggle-label input{accent-color:var(--primary)}.max-cards{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:16px;display:grid}.max-card{background:var(--card);border-radius:var(--radius);text-align:center;border:1px solid var(--border);padding:20px;position:relative;overflow:hidden}.max-card:before{content:"";background:var(--gradient-accent);height:3px;position:absolute;top:0;left:0;right:0}.max-card-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:11px;font-weight:700}.max-card-value{background:var(--gradient-accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:8px 0 4px;font-size:28px;font-weight:900}.max-card-date{color:var(--text-muted);font-size:12px}.max-history-table{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}.max-history-row{border-bottom:1px solid var(--border);grid-template-columns:1fr auto auto auto 32px;align-items:center;gap:12px;padding:10px 16px;font-size:14px;display:grid}.mh-exercise{font-weight:600}.mh-value{color:var(--primary-light);font-weight:700;font-family:var(--mono)}.mh-date{color:var(--text-muted);font-size:13px}.mh-tag{color:var(--text-muted);font-size:12px}.ap-program-list{flex-direction:column;gap:8px;display:flex}.ap-program-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.ap-program-previous{opacity:.8;border-style:dashed}.ap-program-info{cursor:pointer;align-items:center;gap:10px;padding:12px 16px;transition:background .1s;display:flex}.ap-program-info:hover{background:#ffffff08}.ap-program-name{font-size:14px;font-weight:700}.ap-program-meta{color:var(--text-muted);font-size:12px}.ap-program-actions{gap:6px;padding:0 16px 8px;display:flex}.pv-inline{border-top:1px solid var(--border);padding:12px 16px}.pv-cycle-tabs,.pv-day-tabs{gap:4px;margin-bottom:8px;display:flex}.pv-tab{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-light);color:var(--text-muted);cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font);padding:5px 12px}.pv-tab.active{background:var(--gradient-accent);color:var(--text);border-color:#0000}.pv-tab-day.active{background:var(--surface);color:var(--text);border-color:var(--text)}.pv-inline-block{margin-bottom:8px}.pv-inline-note{border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:#f59e0b0d;border-left:3px solid #f59e0b;padding:6px 10px}.pv-note-title{margin-bottom:2px;font-size:13px;font-weight:700}.pv-note-content{color:var(--text-muted);white-space:pre-wrap;font-size:12px}.pv-inline-test{color:#a78bfa;border-left:3px solid #8b5cf6;padding:6px 10px;font-size:12px}.pv-block-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:4px;font-size:10px;font-weight:700}.pv-inline-exercise{border-bottom:1px solid #ffffff0a;padding:4px 0}.pv-ie-name{margin-bottom:2px;font-size:13px;font-weight:700}.pv-ie-weeks{flex-wrap:wrap;gap:8px;display:flex}.pv-ie-week{align-items:baseline;gap:3px;display:flex}.pv-ie-wk-label{color:var(--text-muted);font-size:9px;font-weight:700}.pv-ie-line{font-size:12px;font-family:var(--mono);color:var(--text-muted);background:#ffffff0a;border-radius:2px;padding:0 4px}.assigned-programs{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}.assigned-program-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.assign-list{flex-direction:column;display:flex}.assign-item{cursor:pointer;width:100%;font-family:var(--font);border-radius:var(--radius-sm);color:var(--text);background:0 0;border:none;justify-content:space-between;align-items:center;padding:12px 16px;font-size:14px;display:flex}.assign-item:hover{background:#ffffff0f}.builder-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.builder-title{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.builder-title h1{font-size:24px}.save-status{color:var(--text-muted);font-size:13px}.section-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);border-bottom:1px solid var(--border);margin:20px 0 8px;padding-bottom:8px;font-size:12px;font-weight:700}.grid-empty{text-align:center;color:var(--text-muted);padding:20px;font-size:14px}.btn-add-exercise{margin:8px 0 16px}.day-tabs{flex-wrap:wrap;gap:4px;margin-bottom:20px;display:flex}.day-tab{border:1px solid var(--border);background:var(--card);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:600;transition:all .15s;display:flex}.day-tab:hover{border-color:var(--primary);color:var(--text)}.day-tab.active{background:var(--gradient-accent);color:var(--text);box-shadow:var(--glow);border-color:#0000}.day-tab-label{outline:none}.day-tab-remove{opacity:.6;cursor:pointer;font-size:16px}.day-tab-remove:hover{opacity:1}.day-tab-add{color:var(--text-muted);background:0 0;border-style:dashed}.day-tab-add:hover{border-color:var(--primary);color:var(--primary-light)}.athlete-view h1{margin-bottom:16px;font-size:24px}.max-cards-sm{flex-wrap:wrap;gap:12px;margin-bottom:24px;display:flex}.max-card-sm{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);text-align:center;min-width:100px;padding:12px 20px;position:relative;overflow:hidden}.max-card-sm:before{content:"";background:var(--gradient-accent);height:3px;position:absolute;top:0;left:0;right:0}.max-card-sm .max-card-label{font-size:11px}.max-card-sm .max-card-value{font-size:22px;font-weight:800}.program-selector{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.selector-btn{border:1px solid var(--border);background:var(--card);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-family:var(--font);color:var(--text-muted);padding:8px 16px}.selector-btn.active{background:var(--gradient-accent);color:var(--text);border-color:#0000}.athlete-program h2{margin-bottom:12px;font-size:20px}.week-nav{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.week-btn{border:1px solid var(--border);background:var(--card);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font);color:var(--text-muted);padding:6px 12px}.week-btn.active{background:var(--gradient-accent);color:var(--text);border-color:#0000}.day-nav{gap:6px;margin-bottom:16px;display:flex}.day-btn{border:1px solid var(--border);background:var(--card);border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:600;font-family:var(--font);color:var(--text-muted);padding:8px 16px}.day-btn.active{background:var(--surface-light);color:var(--text);border-color:var(--text)}.athlete-exercises{flex-direction:column;gap:10px;display:flex}.athlete-exercise-card{background:var(--surface-light);border-radius:var(--radius);border:1px solid var(--border);border-left:4px solid var(--primary);padding:16px}.aec-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.aec-name{font-size:16px;font-weight:700}.aec-section{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:11px}.aec-lines{flex-direction:column;gap:4px;display:flex}.aec-line{align-items:baseline;gap:8px;display:flex}.aec-line .aec-setsreps{font-size:18px;font-weight:800;font-family:var(--mono)}.aec-line .aec-weight{color:var(--text-muted);font-size:13px;font-weight:600}.aec-line-note{color:var(--text-muted);font-size:12px;font-style:italic}.aec-prescription{font-size:20px;font-weight:800}.aec-rest{color:var(--text-muted)}.weeks-visual{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.week-dot{border:2px solid var(--border);cursor:pointer;width:36px;height:36px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:600;transition:all .15s;display:flex}.week-dot.active{background:var(--gradient-accent);color:var(--text);border-color:#0000}.week-dot:hover{border-color:var(--primary)}.sidebar-divider{background:var(--border);height:1px;margin:8px 0}.metrics-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.metric-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:all .2s}.metric-card:hover{border-color:var(--primary)}.metric-card-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.metric-card-top h3{font-size:16px}.metric-card-details{flex-wrap:wrap;gap:8px;display:flex}.metric-unit{background:var(--gradient-accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:14px;font-weight:800}.metric-direction,.metric-category{color:var(--text-muted);background:#ffffff0f;border-radius:4px;padding:2px 8px;font-size:12px}.metric-entries{color:var(--primary-light);background:#c8102e1a;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600}.metric-card-discovered{border-style:dashed;border-color:#ffb8004d}.metric-discovered-tag{color:#ffb800;margin-top:8px;font-size:11px;font-style:italic}.lb-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:24px;display:flex}.lb-filter-group{flex-direction:column;gap:4px;display:flex}.lb-filter-group label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:10px;font-weight:700}.lb-filter-group select,.lb-filter-group input{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font);background:var(--surface-light);color:var(--text);min-width:150px;padding:8px 12px}.lb-filter-group select:focus,.lb-filter-group input:focus{border-color:var(--primary);outline:none}.lb-table{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.lb-header{background:var(--surface);text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);grid-template-columns:50px 1fr 1fr auto 100px;gap:12px;padding:12px 16px;font-size:11px;font-weight:700;display:grid}.lb-row{border-bottom:1px solid var(--border);grid-template-columns:50px 1fr 1fr auto 100px;align-items:center;gap:12px;padding:10px 16px;font-size:14px;display:grid}.lb-row:last-child{border-bottom:none}.lb-top3{background:#c8102e0a}.lb-rank{font-weight:800}.lb-medal{border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:900;display:inline-flex}.lb-gold{color:#000;background:linear-gradient(135deg,gold,orange);box-shadow:0 0 8px #ffd70066}.lb-silver{color:#000;background:linear-gradient(135deg,silver,#a0a0a0)}.lb-bronze{color:#fff;background:linear-gradient(135deg,#cd7f32,sienna)}.lb-athlete{font-weight:600}.lb-result{color:var(--primary-light);font-weight:800;font-family:var(--mono)}.lb-date{color:var(--text-muted);font-size:13px}.lb-positions{flex-wrap:wrap;gap:4px;display:flex}.stats-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:20px;display:flex}.stats-summary{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px;display:grid}.ss-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:16px}.ss-card-best{border-color:var(--primary)}.ss-card-best:before{content:"";background:var(--gradient-accent);border-radius:var(--radius) var(--radius) 0 0;height:3px;margin:-16px -16px 12px;display:block}.ss-val{background:var(--gradient-accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:24px;font-weight:900}.ss-val span{font-size:12px}.ss-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-top:2px;font-size:10px;font-weight:700}.stats-tabs{flex-wrap:wrap;gap:4px;margin-bottom:20px;display:flex}.stats-tab{border:1px solid var(--border);background:var(--card);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font);color:var(--text-muted);padding:8px 18px;transition:all .15s}.stats-tab:hover{border-color:var(--primary);color:var(--text)}.stats-tab.active{background:var(--gradient-accent);color:var(--text);box-shadow:var(--glow);border-color:#0000}.stats-chart-section h3{margin-bottom:12px;font-size:16px}.stats-chart{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:20px 12px}.stats-chart-legend{color:var(--text-muted);flex-wrap:wrap;gap:16px;font-size:12px;display:flex}.scl-item{align-items:center;gap:8px;display:flex}.scl-date{font-weight:700}.scl-val{font-family:var(--mono)}.scl-count{color:var(--text-muted)}.alerts-list{flex-direction:column;gap:8px;display:flex}.alert-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.alert-high{border-left:4px solid #ef4444}.alert-medium{border-left:4px solid #ffb800}.alert-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;font-weight:900;display:flex}.alert-high .alert-icon{color:#ef4444;background:#ef444426}.alert-medium .alert-icon{color:#ffb800;background:#ffb80026}.alert-body{flex:1}.alert-top{align-items:center;gap:8px;margin-bottom:2px;display:flex}.alert-athlete{font-size:14px;font-weight:700}.alert-type{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);background:#ffffff0f;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:700}.alert-metric{color:var(--primary-light);font-size:13px;font-weight:600}.alert-msg{color:var(--text-muted);font-size:13px}.corr-result{flex-direction:column;align-self:flex-end;display:flex}.corr-r{font-size:24px;font-weight:900;font-family:var(--mono)}.corr-label{color:var(--text-muted);font-size:11px}.phases-list{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.phase-row{border-radius:var(--radius-sm);background:#ffffff08;align-items:center;gap:12px;padding:8px 12px;display:flex}.phase-name{min-width:120px;font-size:14px;font-weight:700}.phase-dates{color:var(--text-muted);flex:1;font-size:12px}.phase-form{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.phase-form input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-light);color:var(--text);font-size:13px;font-family:var(--font);padding:6px 10px}.cf-formula{color:var(--primary-light);font-size:12px;font-family:var(--mono);margin-left:8px}.cf-desc{color:var(--text-muted);margin-top:2px;font-size:11px;display:block}.cf-form{margin-top:8px}.stats-overview-grid{grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:16px;display:grid}.so-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.so-card h3{color:var(--text-muted);margin-bottom:12px;font-size:14px;font-weight:700}.so-card-wide{grid-column:span 2}.so-lb-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:6px 0;display:flex}.so-lb-row:last-child{border-bottom:none}.so-lb-rank{text-align:center;width:30px;font-weight:800}.so-lb-name{flex:1;font-size:13px;font-weight:600}.so-lb-val{font-weight:800;font-family:var(--mono);color:var(--primary-light);font-size:14px}@media (width<=768px){.so-card-wide{grid-column:span 1}.stats-overview-grid{grid-template-columns:1fr}}.settings-section{margin-bottom:32px}.settings-section h2{margin-bottom:8px;font-size:20px}.settings-desc{color:var(--text-muted);margin-bottom:12px;font-size:14px}.settings-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.positions-add{gap:8px;margin-bottom:16px;display:flex}.positions-add input{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:var(--font);background:var(--surface-light);color:var(--text);flex:1;padding:10px 12px}.positions-add input:focus{border-color:var(--primary);outline:none}.positions-list{flex-wrap:wrap;gap:8px;display:flex}.position-chip{border:1px solid var(--border);background:#ffffff14;border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;display:flex}.position-chip .btn-delete{font-size:14px}.positions-select{flex-wrap:wrap;gap:6px;display:flex}.position-select-btn{border:1px solid var(--border);background:var(--surface-light);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font);color:var(--text-muted);border-radius:20px;padding:6px 14px;transition:all .15s}.position-select-btn.active{background:var(--gradient-accent);color:var(--text);box-shadow:var(--glow);border-color:#0000}.position-select-btn:hover{border-color:var(--primary)}.athlete-positions-edit{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.athlete-positions-edit .position-select-btn{padding:3px 10px;font-size:11px}.cf-variables{margin-bottom:8px}.cf-var-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-size:11px;font-weight:600;display:block}.cf-var-list{flex-wrap:wrap;gap:6px;display:flex}.cf-var-chip{border:1px solid var(--border);cursor:pointer;font-size:12px;font-family:var(--mono);background:var(--surface-light);color:var(--primary-light);white-space:nowrap;border-radius:14px;align-items:center;gap:4px;padding:4px 10px;font-weight:600;transition:all .15s;display:inline-flex}.cf-var-chip:hover{border-color:var(--primary);background:#c8102e26}.cf-var-unit{color:var(--text-muted);font-size:10px;font-weight:400}.cycle-survey-toggles{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 16px;display:flex}.cst-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:11px;font-weight:600}.cst-toggle{border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--surface-light);color:var(--text-muted);border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;transition:all .15s;display:flex}.cst-toggle input{display:none}.cst-toggle.active{border-color:var(--primary);color:var(--text);background:#c8102e26}.cst-name{font-weight:600}.cst-maps{color:var(--text-muted);font-size:10px}.cst-toggle.active .cst-maps{color:var(--primary-light)}.csb-surveys{color:var(--primary-light);background:#c8102e26;border-radius:10px;margin-left:6px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-block}.survey-settings-h3{margin-bottom:8px;font-size:14px;font-weight:700}.survey-mapping-grid{flex-direction:column;gap:8px;display:flex}.sm-row{align-items:center;gap:8px;display:flex}.sm-label{flex-shrink:0;width:140px;font-size:13px;font-weight:600}.sm-arrow{color:var(--text-muted);font-size:14px}.sm-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-light);color:var(--text);font-size:13px;font-family:var(--font);padding:4px 8px}.survey-weights{flex-direction:column;gap:6px;display:flex}.sw-row{align-items:center;gap:8px;display:flex}.sw-label{flex-shrink:0;width:110px;font-size:13px;font-weight:500}.sw-slider{accent-color:var(--primary);flex:1;height:4px}.sw-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-light);width:60px;color:var(--text);font-size:12px;font-family:var(--mono);text-align:center;padding:4px 6px}.sw-pct{color:var(--text-muted);font-size:12px;font-family:var(--mono);text-align:right;width:36px}.sw-total{border-top:1px solid var(--border);margin-top:4px;padding-top:6px;font-size:13px;font-weight:700}.survey-thresholds-grid{flex-wrap:wrap;gap:16px;display:flex}.st-item{align-items:center;gap:6px;display:flex}.st-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.st-item label{font-size:13px;font-weight:500}.st-item input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-light);width:60px;color:var(--text);font-size:13px;font-family:var(--mono);text-align:center;padding:4px 6px}.st-auto{color:var(--text-muted);font-size:12px;font-style:italic}.survey-flags-grid{flex-direction:column;gap:6px;display:flex}.sf-row{align-items:center;gap:8px;display:flex}.sf-label{flex-shrink:0;width:200px;font-size:13px}.sf-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-light);width:60px;color:var(--text);font-size:13px;font-family:var(--mono);text-align:center;padding:4px 6px}.survey-label-group{margin-bottom:16px}.survey-label-group:last-child{margin-bottom:0}.slg-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-size:12px;font-weight:600}.slg-maps{color:var(--primary-light);font-size:10px}.slg-row{align-items:center;gap:8px;margin-bottom:4px;display:flex}.slg-key{color:var(--text-muted);width:110px;font-size:11px;font-family:var(--mono);flex-shrink:0}.slg-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-light);color:var(--text);font-size:12px;font-family:var(--font);flex:1;padding:4px 8px}.survey-overview-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.survey-ov-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.survey-green{border-left:3px solid #22c55e}.survey-yellow{border-left:3px solid #ffb800}.survey-red{border-left:3px solid #ef4444}.survey-none{border-left:3px solid var(--border);opacity:.6}.sov-name{font-size:14px;font-weight:700}.sov-pos{color:var(--text-muted);margin-bottom:6px;font-size:11px}.sov-score{font-size:28px;font-weight:800;font-family:var(--mono)}.sov-status{letter-spacing:1px;text-transform:uppercase;font-size:11px;font-weight:700}.sov-flags{color:var(--text-muted);margin-top:4px;font-size:11px}.sov-none{color:var(--text-muted);font-size:12px;font-style:italic}.sov-risk{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.sov-risk-tag{color:#ef4444;background:#ef444426;border-radius:8px;padding:2px 6px;font-size:10px}.sov-restriction{color:#ffb800;background:#ffb80026;border-radius:8px;padding:2px 6px;font-size:10px}.sov-load{color:var(--text-muted);margin-top:6px;font-size:11px}.sov-avail{color:var(--primary-light);margin-top:2px;font-size:11px;font-weight:600}.survey-athlete-grid{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.survey-ath-chip{border:1px solid var(--border);cursor:pointer;background:var(--surface-light);color:var(--text-muted);border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.survey-ath-chip input{display:none}.survey-ath-chip.active{border-color:var(--primary);color:var(--text);background:#c8102e26}.survey-entry-area{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.survey-entries{flex-direction:column;gap:16px;display:flex}.survey-entry-row{border-bottom:1px solid var(--border);padding-bottom:12px}.survey-entry-row:last-child{border-bottom:none;padding-bottom:0}.ser-name{margin-bottom:8px;font-size:14px;font-weight:700}.ser-inputs{flex-wrap:wrap;gap:12px;display:flex}.ser-field label{color:var(--text-muted);margin-bottom:4px;font-size:11px;display:block}.ser-scale{gap:3px;display:flex}.ser-scale-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-light);width:30px;height:30px;color:var(--text-muted);cursor:pointer;font-size:12px;font-weight:700;font-family:var(--mono);transition:all .1s}.ser-scale-btn.active{background:var(--gradient-accent);color:var(--text);border-color:#0000}.ser-num-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-light);width:80px;color:var(--text);font-size:13px;font-family:var(--mono);padding:6px 8px}.ser-bool{gap:4px;display:flex}.ser-bool-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-light);color:var(--text-muted);cursor:pointer;padding:6px 14px;font-size:12px;font-weight:600;transition:all .1s}.ser-bool-btn.active-yes{color:#22c55e;background:#22c55e33;border-color:#22c55e}.ser-bool-btn.active-no{color:#ef4444;background:#ef444433;border-color:#ef4444}@media (width<=768px){.sidebar{display:none}.app-with-sidebar .main-content{margin-left:0}.main-content{padding:16px}.dash-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(3,1fr)}.table-header,.table-row{grid-template-columns:1fr 100px 60px}.col-desc{display:none}.max-history-row{grid-template-columns:1fr auto auto 32px}.mh-tag{display:none}.builder-title h1{font-size:18px}}@media (width<=480px){.stats-grid{grid-template-columns:1fr}.stat-card{padding:16px}.stat-number{font-size:28px}}
