:root{--bg: #0b0d12;--card: #121624;--card2: #0f1320;--text: #e7e9ee;--muted: #9aa3b2;--border: rgba(255,255,255,.08);--accent: #ffffff;--team-primary: 96, 165, 250;--team-secondary: 96, 165, 250}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;background:radial-gradient(1200px 600px at 20% 10%,rgba(var(--team-secondary),.06),transparent 55%),radial-gradient(900px 600px at 70% 30%,rgba(var(--team-secondary),.04),transparent 60%),var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}.container{max-width:980px;margin:0 auto;padding:24px}.appHeader{display:flex;align-items:center;gap:12px;padding:14px 24px;background:linear-gradient(180deg,#ffffff08,#ffffff03),var(--card2);border-bottom:2px solid rgba(var(--team-secondary),.3)}.appLayout{display:flex;min-height:calc(100vh - 73px)}.sidebar{width:180px;flex-shrink:0;padding:16px 0;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:2px}.sidebarLink{display:block;padding:9px 20px;font-size:13px;font-weight:500;color:var(--muted);text-decoration:none;transition:background .12s ease,color .12s ease;border-left:3px solid transparent}.sidebarLink:hover{background:#ffffff0a;color:var(--text)}.sidebarLinkActive{color:var(--text);background:rgba(var(--team-secondary),.08);border-left-color:rgba(var(--team-secondary),.7);font-weight:600}.appContent{flex:1;padding:24px;max-width:980px}@media(max-width:768px){.appHeader{flex-wrap:wrap;padding:12px 16px;gap:8px}.appLayout{flex-direction:column;min-height:auto}.sidebar{width:100%;flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border);padding:8px 12px;gap:0}.sidebarLink{white-space:nowrap;padding:8px 14px;border-left:none;border-bottom:3px solid transparent}.sidebarLinkActive{border-left-color:transparent;border-bottom-color:rgba(var(--team-secondary),.7)}.appContent{padding:16px}}.card{background:linear-gradient(180deg,#ffffff08,#ffffff03),var(--card);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:0 10px 30px #00000059}.row{display:flex;gap:12px;flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:8px}.h1{font-size:28px;margin:0 0 6px;letter-spacing:.2px;color:rgba(var(--team-secondary),.95)}.h2{font-size:18px;margin:0 0 10px;color:var(--muted);font-weight:500}.input,.select{background:#00000040;color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 12px;outline:none;min-width:220px;transition:border-color .15s ease}.input:focus,.select:focus{border-color:rgba(var(--team-secondary),.5)}.button{border:1px solid var(--border);background:#ffffff0f;color:var(--text);padding:10px 12px;border-radius:10px;cursor:pointer;transition:transform .02s ease,background .15s ease}.button:hover{background:#ffffff1a}.button:active{transform:translateY(1px)}.buttonPrimary{border-color:rgba(var(--team-secondary),.35);background:rgba(var(--team-secondary),.15);color:rgba(var(--team-secondary),.95)}.badge{padding:4px 10px;border-radius:999px;border:1px solid var(--border);color:var(--muted);font-size:12px}.divider{height:1px;background:rgba(var(--team-secondary),.15);margin:14px 0}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:10px;border-bottom:1px solid var(--border)}.table th{color:rgba(var(--team-secondary),.7);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.6px}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table th.sortable:hover{color:rgba(var(--team-secondary),1)}.small{color:var(--muted);font-size:13px}.right{margin-left:auto}.table{table-layout:fixed}.table th,.table td{overflow:hidden}.cellInput,.cellSelect{width:100%;min-width:0}.table td>.input,.table td>.select,.table td .cellInput,.table td .cellSelect{width:100%;min-width:0}.colFirst{width:14%}.colLast{width:16%}.colJersey{width:10%}.colPos{width:16%}.colMaxes,.colRfid{width:10%}.colInvite,.colActions{width:12%}.buttonSuccess{border-color:#2ecc718c;background:#2ecc712e}.buttonSuccess:hover{background:#2ecc7140}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);font-size:12px;color:var(--muted);background:#ffffff08}.pillSuccess{border-color:#2ecc718c;background:#2ecc7124;color:#e6fff0eb}.pillWarn{border-color:#f1c40f8c;background:#f1c40f24;color:#fff6d2f2}.pillNeutral{border-color:#ffffff1f;background:#ffffff0a;color:#e6e6e6cc}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.pillClickable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .02s ease,background .15s ease}.pillClickable:hover{background:#ffffff0f}.pillClickable:active{transform:translateY(1px)}.pillCode{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;letter-spacing:.6px}select.select{color:#ffffffeb;background:#0a0c10a6;border:1px solid rgba(255,255,255,.1)}select.select option{background:var(--bg);color:#fff}select.select option:disabled{color:#ffffff8c}button:disabled{opacity:.6;cursor:not-allowed}input{font-size:16px}.containerWide{max-width:1120px;margin:0 auto;padding:24px}.dashboardStack{display:flex;flex-direction:column;gap:16px}.statsGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.statCard{background:linear-gradient(180deg,#ffffff0a,#ffffff03),var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:4px}.statValue{font-size:32px;font-weight:800;letter-spacing:-.5px;line-height:1.1;color:rgba(var(--team-secondary),.95)}.statLabel{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:600}.statSub{font-size:12px;color:var(--muted);opacity:.8}.statTrendUp{color:#2ecc71e6}.statTrendDown{color:#e74c3ce6}.colorGreen .statValue{color:#2ecc71f2}.colorYellow .statValue{color:#f1c40ff2}.colorRed .statValue{color:#e74c3cf2}.colorBlue .statValue{color:rgba(var(--team-secondary),.95)}.teamGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.teamCard{cursor:pointer;transition:transform .08s ease,border-color .15s ease}.teamCard:hover{border-color:rgba(var(--team-secondary),.3);transform:translateY(-2px)}.teamCardHeader{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}.teamCardName{font-size:18px;font-weight:700}.teamCardSport{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.teamCardStats{display:flex;gap:16px;margin-bottom:10px;font-size:13px;color:var(--muted)}.progressBar{height:8px;border-radius:99px;background:#ffffff0f;overflow:hidden}.progressFill{height:100%;border-radius:99px;background:rgba(var(--team-secondary),.7);transition:width .5s ease}.progressFillWarn{background:#f1c40fb3}.progressFillDanger{background:#e74c3cb3}.progressLabel{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:4px}.kebabWrap{position:relative}.kebabBtn{background:none;border:none;color:var(--muted);font-size:20px;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1}.kebabBtn:hover{background:#ffffff14;color:var(--text)}.kebabMenu{position:absolute;top:100%;right:0;background:var(--card);border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:4px 0;z-index:10;min-width:140px;box-shadow:0 4px 12px #0000004d}.kebabMenuItem{display:block;width:100%;background:none;border:none;color:var(--text);font-size:13px;padding:6px 12px;text-align:left;cursor:pointer}.kebabMenuItem:hover{background:#ffffff0f}.teamCardArchived{opacity:.5}.archivedToggle{background:none;border:none;color:var(--muted);font-size:13px;cursor:pointer;padding:0;text-decoration:underline}.archivedToggle:hover{color:var(--text)}.dashboardColumns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.sectionTitle{font-size:13px;text-transform:uppercase;letter-spacing:.7px;color:rgba(var(--team-secondary),.7);font-weight:600;margin-bottom:2px}.feedList{display:flex;flex-direction:column;gap:0;max-height:380px;overflow-y:auto}.feedItem{padding:12px 0;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:4px}.feedItem:last-child{border-bottom:none}.feedHeader{display:flex;justify-content:space-between;align-items:center}.feedPlayer{font-weight:600;font-size:14px;color:rgba(var(--team-secondary),.9)}.feedTime{font-size:11px;color:var(--muted)}.feedDetails{font-size:13px;color:var(--muted)}.feedFlag{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#e74c3cf2;margin-top:4px;padding:4px 10px;border-radius:8px;background:#e74c3c14;border:1px solid rgba(231,76,60,.2)}.dueList{display:flex;flex-direction:column;gap:0;max-height:380px;overflow-y:auto}.dueItem{padding:12px 0;border-bottom:1px solid var(--border)}.dueItem:last-child{border-bottom:none}.dueHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.dueName{font-weight:600;font-size:14px}.dueBadge{font-size:11px;padding:2px 8px;border-radius:999px;font-weight:600}.dueBadgeUpcoming{background:rgba(var(--team-secondary),.12);color:rgba(var(--team-secondary),.95);border:1px solid rgba(var(--team-secondary),.25)}.dueBadgeOverdue{background:#e74c3c1f;color:#e74c3cf2;border:1px solid rgba(231,76,60,.25)}.dueMeta{font-size:12px;color:var(--muted);display:flex;gap:12px;margin-bottom:6px}.todayCard{border-color:rgba(var(--team-secondary),.25);background:linear-gradient(180deg,rgba(var(--team-secondary),.06),rgba(var(--team-secondary),.01))}.todayTitle{font-size:20px;font-weight:700;margin-bottom:4px}.exerciseList{display:flex;flex-direction:column;gap:0}.exerciseRow{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}.exerciseRow:last-child{border-bottom:none}.exerciseName{font-weight:600;font-size:14px}.exerciseMeta{font-size:13px;color:var(--muted)}.exerciseProgress{display:flex;align-items:center;gap:8px;font-size:13px}.exerciseProgressBar{width:80px;height:6px;border-radius:99px;background:#ffffff0f;overflow:hidden}.exerciseProgressFill{height:100%;border-radius:99px;background:rgba(var(--team-secondary),.7);transition:width .4s ease}.prGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.prCard{background:linear-gradient(180deg,#ffffff0a,#ffffff03),var(--card);border:1px solid var(--border);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:4px;text-align:center}.prExercise{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600}.prWeight{font-size:28px;font-weight:800;letter-spacing:-.5px;color:#2ecc71f2;line-height:1.1}.prVelocity{font-size:13px;color:var(--muted)}.prDate{font-size:11px;color:var(--muted);opacity:.7}.sessionList{display:flex;flex-direction:column;gap:0;max-height:360px;overflow-y:auto}.sessionRow{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.sessionRow:last-child{border-bottom:none}.sessionPrimary{font-weight:600;font-size:14px}.sessionSecondary{font-size:12px;color:var(--muted)}.sessionVelocity{text-align:right}.sessionVelocityValue{font-weight:700;font-size:16px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:rgba(var(--team-secondary),.95)}.sessionVelocityLabel{font-size:11px;color:var(--muted)}.chartContainer{position:relative;width:100%;height:200px}.chartTabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.chartTab{padding:5px 12px;border-radius:999px;font-size:12px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;transition:background .15s ease}.chartTab:hover{background:#ffffff0f}.chartTabActive{background:rgba(var(--team-secondary),.15);border-color:rgba(var(--team-secondary),.35);color:rgba(var(--team-secondary),.95)}.comparisonRow{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--border)}.comparisonRow:last-child{border-bottom:none}.comparisonExercise{width:120px;font-weight:600;font-size:14px;flex-shrink:0}.comparisonBarWrap{flex:1;display:flex;flex-direction:column;gap:4px}.comparisonBar{height:10px;border-radius:99px;background:#ffffff0f;position:relative;overflow:hidden}.comparisonBarFill{height:100%;border-radius:99px;background:rgba(var(--team-secondary),.6)}.comparisonMeta{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.comparisonPercentile{width:80px;text-align:right;font-weight:700;font-size:15px;flex-shrink:0}.percentileHigh{color:#2ecc71f2}.percentileMid{color:#f1c40ff2}.percentileLow{color:#e74c3cf2}.restCard{text-align:center;padding:32px 18px;border-color:#2ecc7126}.restIcon{font-size:36px;margin-bottom:8px}.exerciseBlock{border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:10px;background:#0000001a}.exerciseBlockHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:8px}.setGroupRow{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.leaderboardTable{width:100%;border-collapse:collapse}.leaderboardTable th,.leaderboardTable td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}.leaderboardTable th{color:rgba(var(--team-secondary),.7);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.6px}.rankCell{font-weight:800;font-size:16px;width:48px;text-align:center}.rankGold{color:#f1c40ff2}.rankSilver{color:#c0c0c0f2}.rankBronze{color:#cd7f32f2}.liveGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.liveCard{background:linear-gradient(180deg,#ffffff0a,#ffffff03),var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:6px}.livePlayerName{font-weight:700;font-size:16px;color:rgba(var(--team-secondary),.95)}.livePlayerMeta{font-size:13px;color:var(--muted)}.liveExercise{font-size:14px;font-weight:600;margin-top:4px}.liveWeight{font-size:22px;font-weight:800;letter-spacing:-.3px}.liveReps{font-size:13px;color:var(--muted)}.liveVelocity{font-size:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:rgba(var(--team-secondary),.95);font-weight:600}.livePulse{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#2ecc71f2;margin-top:4px}.livePulse:before{content:"";width:8px;height:8px;border-radius:50%;background:#2ecc71f2;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.displayMode{position:fixed;inset:0;z-index:100;background:var(--bg);padding:32px;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.displayModeHeader{display:flex;justify-content:space-between;align-items:center}.displayModeTitle{font-size:28px;font-weight:800;letter-spacing:.2px;color:rgba(var(--team-secondary),.95)}.displayModeCount{font-size:16px;color:var(--muted)}.displayModeClose{border:1px solid rgba(255,255,255,.15);background:#ffffff0f;color:var(--text);padding:8px 16px;border-radius:10px;cursor:pointer;font-size:14px}.displayModeGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.displayModeGrid .liveCard{padding:20px}.displayModeGrid .livePlayerName{font-size:22px}.displayModeGrid .liveWeight{font-size:32px}.displayModeGrid .liveVelocity{font-size:20px}.configPanel{display:flex;flex-direction:column;gap:20px}.configSection{display:flex;flex-direction:column;gap:8px}.configSectionTitle{font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:rgba(var(--team-secondary),.7);font-weight:600}.configCheckbox{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.configCheckbox input[type=checkbox]{width:16px;height:16px;accent-color:rgba(var(--team-secondary),.95);cursor:pointer}.configRadio{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.configRadio input[type=radio]{width:16px;height:16px;accent-color:rgba(var(--team-secondary),.95);cursor:pointer}.configRadioGroup{display:flex;gap:16px;flex-wrap:wrap}.hubNav{display:flex;gap:6px;flex-wrap:wrap}.hubTab{padding:8px 16px;border-radius:999px;font-size:13px;font-weight:600;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;transition:background .15s ease;text-decoration:none}.hubTab:hover{background:#ffffff0f}.hubTabActive{background:rgba(var(--team-secondary),.15);border-color:rgba(var(--team-secondary),.35);color:rgba(var(--team-secondary),.95)}.playerCard{background:linear-gradient(180deg,#ffffff0a,#ffffff03),var(--card)}.editToggle{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:#ffffff0a;color:var(--muted);font-size:16px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.editToggle:hover{background:#ffffff1a;color:var(--text)}.metricGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.metricGridItem{display:flex;flex-direction:column;gap:4px}.calMonthGrid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:12px;overflow:hidden}.calMonthDayLabel{padding:8px 0;text-align:center;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);background:#00000026}.calMonthCell{min-height:100px;padding:6px;background:var(--card);display:flex;flex-direction:column;gap:4px;position:relative}.calMonthCellDimmed{opacity:.35}.calMonthCellToday{background:rgba(var(--team-secondary),.06)}.calMonthCellHeader{font-size:13px;font-weight:600;margin-bottom:2px}.calMonthTodayBadge{background:rgba(var(--team-secondary),.8);color:#fff;border-radius:50%;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.calMonthCellBody{display:flex;flex-direction:column;gap:3px;flex:1}.calMonthEvent{display:flex;flex-direction:column;background:rgba(var(--team-secondary),.12);border:1px solid rgba(var(--team-secondary),.25);border-radius:6px;padding:3px 6px;font-size:11px;cursor:pointer;transition:background .15s ease}.calMonthEvent:hover{background:#e74c3c26;border-color:#e74c3c4d}.calMonthAddBtn{margin-top:auto;border:none;background:transparent;color:var(--muted);font-size:16px;cursor:pointer;opacity:0;transition:opacity .15s ease;padding:2px 0}.calMonthCell:hover .calMonthAddBtn{opacity:.5}.calMonthAddBtn:hover{opacity:1!important}.calMonthAddForm{margin-top:auto;padding:4px;border-top:1px solid var(--border)}.templateList{display:flex;flex-direction:column;gap:0}.templateCard{cursor:default;transition:border-color .15s ease}.templateCard:hover{border-color:rgba(var(--team-secondary),.25)}.colPickerOverlay{position:fixed;inset:0;z-index:50;background:#0009;display:flex;align-items:center;justify-content:center}.colPickerPanel{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:24px;width:560px;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #00000080}.colPickerCategory{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:700;margin-top:14px;margin-bottom:6px}.colPickerCategory:first-of-type{margin-top:0}.colPickerGrid{display:flex;flex-wrap:wrap;gap:6px}.colPickerChip{padding:5px 12px;border-radius:999px;font-size:12px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;transition:background .12s ease,border-color .12s ease}.colPickerChip:hover{background:#ffffff0f}.colPickerChipActive{background:rgba(var(--team-secondary),.15);border-color:rgba(var(--team-secondary),.4);color:rgba(var(--team-secondary),.95)}@media(max-width:768px){.statsGrid{grid-template-columns:repeat(2,1fr)}.dashboardColumns{grid-template-columns:1fr}.prGrid{grid-template-columns:repeat(2,1fr)}.teamGrid,.liveGrid,.displayModeGrid{grid-template-columns:1fr}.calMonthGrid{font-size:11px}.calMonthCell{min-height:70px}.metricGrid{grid-template-columns:repeat(2,1fr)}.colPickerPanel{width:90vw}}
