.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:30px}.summary-card{background-color:#1a1a1a;border-radius:8px;padding:24px;display:flex;align-items:center;gap:20px;border:1px solid #2a2a2a;transition:transform .2s,box-shadow .2s}.summary-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.summary-card.scheduled{border-left:4px solid #f59e0b}.summary-card.scheduled .card-icon{color:#f59e0b}.summary-card.completed{border-left:4px solid #10b981}.summary-card.completed .card-icon{color:#10b981}.summary-card.missed{border-left:4px solid #ef4444}.summary-card.missed .card-icon{color:#ef4444}.summary-card.compliance{border-left:4px solid #3b82f6}.summary-card.compliance .card-icon{color:#3b82f6}.card-icon{display:flex;align-items:center;justify-content:center;opacity:.9}.card-content{flex:1}.card-content h3{font-size:32px;font-weight:700;color:#fff;margin:0 0 8px}.card-content p{font-size:14px;color:#999;margin:0}@media (max-width: 768px){.summary-cards{grid-template-columns:1fr}}.calendar-container{background-color:#1a1a1a;border-radius:8px;padding:20px;border:1px solid #2a2a2a}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.calendar-header h3{color:#fff;font-size:20px;font-weight:600}.calendar-controls{display:flex;align-items:center;gap:20px}.nav-button{background-color:#2a2a2a;border:1px solid #3a3a3a;color:#d3bc8d;padding:8px 16px;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:13px;transition:all .2s}.nav-button:hover{background-color:#3a3a3a;border-color:#d3bc8d}.current-month{color:#fff;font-size:16px;font-weight:500;text-align:center;line-height:1.4}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:20px}.weekday-header{text-align:center;color:#999;font-size:14px;font-weight:600;padding:10px}.calendar-day{aspect-ratio:1;padding:8px;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;border:2px solid transparent;position:relative}.calendar-day.empty{background-color:transparent;cursor:default}.calendar-day.no-data{background-color:#2a2a2a;color:#666}.calendar-day.high-compliance{background-color:#2d5f2e;color:#fff}.calendar-day.good-compliance{background-color:#4a7c4e;color:#fff}.calendar-day.medium-compliance{background-color:#b8860b;color:#fff}.calendar-day.low-compliance{background-color:#d97706;color:#fff}.calendar-day.very-low-compliance{background-color:#991b1b;color:#fff}.calendar-day.future-date{background-color:#1a1a1a;border-color:#3a3a3a;opacity:.6;cursor:default}.calendar-day.today{border-color:#d3bc8d;box-shadow:0 0 0 2px #d3bc8d4d}.calendar-day.selected{border-color:#fff;box-shadow:0 0 0 2px #ffffff4d}.calendar-day:not(.empty):hover{transform:scale(1.05);box-shadow:0 4px 12px #0000004d}.day-number{font-size:16px;font-weight:600;margin-bottom:4px}.day-stats{font-size:11px;display:flex;align-items:baseline;gap:2px}.day-stats .completed{font-weight:700;color:#90ee90}.day-stats .walkins{color:#87ceeb;font-size:10px;font-weight:600}.day-stats .total{opacity:.8}.calendar-legend{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;padding-top:15px;border-top:1px solid #2a2a2a}.legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#999}.legend-color{width:20px;height:20px;border-radius:3px}.legend-color.high-compliance{background-color:#2d5f2e}.legend-color.good-compliance{background-color:#4a7c4e}.legend-color.medium-compliance{background-color:#b8860b}.legend-color.low-compliance{background-color:#d97706}.legend-color.very-low-compliance{background-color:#991b1b}@media (max-width: 768px){.calendar-controls{flex-direction:column;gap:10px}.calendar-grid{gap:4px}.calendar-day{padding:4px}.day-number{font-size:12px}.day-stats{font-size:9px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000d9;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.modal-content{background-color:#1a1a1a;border:2px solid #d3bc8d;border-radius:12px;max-width:900px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 10px 40px #00000080}.modal-header h2{color:#d3bc8d;font-size:24px;font-weight:600;margin:0}.close-button{background:none;border:none;color:#d3bc8d;cursor:pointer;padding:4px;display:flex;align-items:center;transition:color .2s}.close-button:hover{color:#fff}.detail-section{margin-bottom:32px}.detail-section:last-child{margin-bottom:0}.detail-section h3{color:#fff;font-size:18px;font-weight:600;margin:0 0 16px;padding-bottom:12px;border-bottom:2px solid #2a2a2a}.completed-section h3{border-bottom-color:#4ade80}.unscheduled-section h3{border-bottom-color:#60a5fa}.noshow-section h3{border-bottom-color:#f44}.bullpen-section h3{border-bottom-color:#fbbf24}.athlete-item{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:6px;padding:12px 16px;margin-bottom:8px;transition:all .2s}.athlete-item:hover{border-color:#d3bc8d;background-color:#1a1a1a}.athlete-item:last-child{margin-bottom:0}.athlete-name{color:#d3bc8d;font-size:16px;font-weight:600;margin-bottom:6px}.athlete-details{display:flex;flex-direction:column;gap:4px}.scheduled-info,.test-info{color:#888;font-size:13px}.scheduled-info{color:#aaa}.test-info{color:#4ade80}.bullpen-info{color:#fbbf24}.missing-info{color:#f44;font-weight:600}.athlete-item.compliant{border-left:3px solid #4ade80}.athlete-item.non-compliant{border-left:3px solid #ff4444}.athlete-item.clickable{cursor:pointer;transition:background-color .2s}.athlete-item.clickable:hover{background-color:#1a1a1a}.test-metrics{margin-top:12px;padding-top:12px;border-top:1px solid #3a3a3a;display:flex;flex-direction:column;gap:8px}.metric-item{display:flex;align-items:center;gap:12px;padding:8px 12px;background-color:#1a1a1a;border-radius:4px;font-size:13px}.metric-name{flex:1;color:#d3bc8d;font-weight:500}.metric-value{color:#4ade80;font-weight:600;font-size:14px}.metric-source{color:#888;font-size:11px}.badge{display:inline-block;padding:3px 8px;margin-left:8px;border-radius:12px;font-size:11px;font-weight:600;vertical-align:middle}.mocap-badge{background-color:#9333ea;color:#fff}.lane-badge{background-color:#3b82f6;color:#fff}.bullpen-subsection{margin-top:15px;padding-top:15px;border-top:1px dashed #3a3a3a}.bullpen-subsection:first-child{margin-top:0;padding-top:0;border-top:none}.bullpen-subsection h4{font-size:14px;margin:0 0 10px;color:#d3bc8d;font-weight:600}.no-activity{text-align:center;padding:48px 20px;color:#666;font-size:16px;font-style:italic}@media (max-width: 768px){.modal-content{max-width:100%;max-height:90vh}.modal-header h2{font-size:18px}.detail-section h3{font-size:16px}}.priority-alerts{background-color:#991b1b;border-radius:8px;overflow:hidden;border:1px solid #7f1d1d}.alerts-header{background-color:#7f1d1d;padding:16px 20px}.alerts-header h3{color:#fff;font-size:18px;font-weight:600;margin:0 0 6px;display:flex;align-items:center;gap:10px}.alerts-subtitle{color:#fffc;font-size:12px;margin:0;font-weight:400}.alerts-list{padding:10px}.alert-item{background-color:#1a1a1a;border-radius:4px;padding:12px 16px;margin-bottom:8px;display:flex;align-items:center;gap:16px}.alert-item:last-child{margin-bottom:0}.alert-number{background-color:#991b1b;color:#fff;width:28px;height:28px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.alert-content{flex:1;display:flex;flex-direction:column;gap:4px}.alert-details{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.compliance-badge{background:#dc2626;color:#fff;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:700}.alert-reason{color:#fca5a5;font-size:13px}.no-alerts{padding:20px;text-align:center}.no-alerts p{color:#4ade80;font-size:14px;margin:0}@media (max-width: 768px){.alert-item{padding:10px 12px}.athlete-name{font-size:14px}.missed-test{font-size:12px}}.forms-tracker{background-color:#1a1a1a;border-radius:8px;overflow:hidden;border:1px solid #2a2a2a}.forms-header{background-color:#10b981;padding:16px 20px}.forms-header h3{color:#fff;font-size:18px;font-weight:600;margin:0 0 6px}.forms-subtitle{color:#ffffffe6;font-size:12px;margin:0;font-weight:400}.forms-list{padding:10px;max-height:400px;overflow-y:auto}.form-item{background-color:#242424;border-radius:4px;padding:12px 16px;margin-bottom:8px;display:flex;align-items:center;gap:12px;transition:all .2s}.form-item:last-child{margin-bottom:0}.form-item:hover{background-color:#2a2a2a}.form-item.incomplete{border-left:3px solid #ef4444}.form-item.complete{border-left:3px solid #10b981;opacity:.7}.form-status-icon{flex-shrink:0}.form-content{flex:1;display:flex;flex-direction:column;gap:2px}.form-content .athlete-name{color:#fff;font-size:14px;font-weight:600}.form-content .coach-name{color:#999;font-size:12px}.form-status-text{color:#d3bc8d;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-icon.complete{color:#10b981}.status-icon.incomplete{color:#ef4444}@media (max-width: 768px){.table-header,.table-row{grid-template-columns:40px 1fr 80px;padding:10px 12px}.table-cell{font-size:13px}}.testing-queue{background-color:#1a1a1a;border-radius:8px;overflow:hidden;border:1px solid #2a2a2a}.queue-header{background-color:#f59e0b;padding:16px 20px}.queue-header h3{color:#fff;font-size:18px;font-weight:600;margin:0 0 6px;display:flex;align-items:center;gap:10px}.queue-subtitle{color:#ffffffe6;font-size:12px;margin:0;font-weight:400}.queue-content{padding:10px;max-height:400px;overflow-y:auto}.queue-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#999;text-align:center;gap:12px}.queue-empty p{margin:0;font-size:14px}.queue-list{display:flex;flex-direction:column;gap:12px}.queue-item{background-color:#242424;border-radius:4px;padding:12px 16px;display:flex;align-items:center;gap:12px;transition:background-color .2s}.queue-item:hover{background-color:#2a2a2a}.queue-time{background-color:#f59e0b;color:#fff;padding:6px 10px;border-radius:4px;font-weight:700;font-size:13px;flex-shrink:0;min-width:70px;text-align:center}.queue-status{padding:4px 10px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0;text-align:center;min-width:85px}.queue-status.scheduled{background-color:#d3bc8d33;border:1px solid #d3bc8d;color:#d3bc8d}.queue-status.complete{background-color:#10b98133;border:1px solid #10b981;color:#10b981}.queue-info{flex:1;display:flex;flex-direction:column;gap:4px}.athlete-name{color:#fff;font-weight:600;font-size:15px}.test-type{color:#999;font-size:13px}@media (max-width: 768px){.queue-item{padding:10px 12px}.athlete-name{font-size:14px}.test-type{font-size:12px}}.activity-feed{background-color:#1a1a1a;border-radius:8px;overflow:hidden;border:1px solid #2a2a2a}.feed-header{background-color:#3b82f6;padding:16px 20px}.feed-header h3{color:#fff;font-size:18px;font-weight:600;margin:0 0 6px;display:flex;align-items:center;gap:10px}.feed-subtitle{color:#ffffffe6;font-size:12px;margin:0;font-weight:400}.feed-table{overflow-x:auto}.feed-table-header{display:grid;grid-template-columns:2fr 1fr 80px 80px 80px 100px 120px;background-color:#2a2a2a;padding:12px 20px;font-weight:600;color:#d3bc8d;font-size:13px;min-width:800px}.feed-row{display:grid;grid-template-columns:2fr 1fr 80px 80px 80px 100px 120px;padding:14px 20px;border-bottom:1px solid #2a2a2a;transition:background-color .2s;min-width:800px}.feed-empty{padding:40px;text-align:center;color:#666;font-size:14px}.feed-row:hover{background-color:#242424}.feed-row:last-child{border-bottom:none}.feed-cell{display:flex;align-items:center;color:#fff;font-size:13px}.feed-cell.athlete{font-weight:600}.feed-cell.date{color:#999;font-size:12px}.feed-cell.check{justify-content:center;font-size:16px;font-weight:700;color:#10b981}.feed-cell.count{justify-content:center;font-weight:700;color:#d3bc8d}.feed-cell.status{justify-content:flex-start}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-badge.compliant{background-color:#10b98133;border:1px solid #10b981;color:#10b981}.status-badge.incomplete{background-color:#ef444433;border:1px solid #ef4444;color:#ef4444}@media (max-width: 768px){.feed-table{overflow-x:scroll}}.dashboard{padding:20px;max-width:1800px;margin:0 auto}.dashboard-tabs{display:flex;gap:10px;margin-bottom:30px;background-color:#1a1a1a;padding:8px;border-radius:8px;border:1px solid #2a2a2a;width:fit-content}.tab-button{background-color:transparent;border:none;color:#999;padding:12px 24px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.tab-button:hover{color:#d3bc8d;background-color:#2a2a2a}.tab-button.active{background-color:#d3bc8d;color:#0f0f0f;font-weight:600}.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-bottom:20px}.calendar-section{grid-column:1}.sidebar-section{grid-column:2}.queue-section{grid-column:1}.forms-section{grid-column:2}.activity-section{margin-top:20px}@media (max-width: 1200px){.dashboard-grid{grid-template-columns:1fr}.calendar-section,.sidebar-section,.queue-section,.forms-section{grid-column:1}}@media (max-width: 768px){.dashboard{padding:10px}.dashboard-tabs{width:100%}.tab-button{flex:1;padding:10px 12px;font-size:13px}}.shoulder-visualization{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;padding:20px;margin-bottom:20px}.shoulder-header{margin-bottom:20px}.shoulder-header h4{color:#fff;font-size:18px;font-weight:600;margin-bottom:15px}.date-selector{display:flex;gap:8px;flex-wrap:wrap}.date-btn{background-color:#1a1a1a;border:1px solid #2a2a2a;border-radius:4px;padding:6px 12px;color:#999;font-size:13px;cursor:pointer;transition:all .2s}.date-btn:hover{border-color:#d3bc8d;color:#d3bc8d}.date-btn.active{background-color:#d3bc8d;border-color:#d3bc8d;color:#000;font-weight:600}.shoulder-display{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:30px;margin-bottom:20px}.shoulder-side{text-align:center}.shoulder-side h5{color:#d3bc8d;font-size:16px;font-weight:600;margin-bottom:15px}.shoulder-diagram{background-color:#1a1a1a;border:1px solid #2a2a2a;border-radius:8px;padding:20px;display:flex;flex-direction:column;align-items:center;gap:20px}.shoulder-diagram svg{max-width:100%;height:auto}.shoulder-metrics{width:100%;display:flex;flex-direction:column;gap:10px}.metric-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background-color:#0f0f0f;border-radius:4px}.metric-row.ratio{border-top:2px solid #2a2a2a;margin-top:5px;font-weight:600}.metric-label{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.metric-label.er{color:#10b981}.metric-label.ir{color:#ef4444}.metric-value{color:#fff;font-size:15px;font-weight:600}.shoulder-notes{padding:15px;background-color:#d3bc8d1a;border:1px solid rgba(211,188,141,.3);border-radius:6px}.shoulder-notes p{color:#d3bc8d;font-size:13px;margin:5px 0}.shoulder-notes p strong{font-weight:700}.shoulder-viz-empty{text-align:center;padding:40px 20px;color:#666;font-style:italic}.athlete-profiles-container{padding:20px;height:100%}.profiles-header{margin-bottom:30px}.profiles-header h2{color:#fff;font-size:28px;font-weight:600;margin-bottom:8px}.profiles-header .subtitle{color:#999;font-size:14px}.profiles-layout{display:grid;grid-template-columns:350px 1fr;gap:20px;height:calc(100vh - 150px)}.athletes-list{background-color:#1a1a1a;border-radius:8px;border:1px solid #2a2a2a;padding:20px;overflow-y:auto}.search-box{display:flex;align-items:center;gap:10px;background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:6px;padding:10px 14px;margin-bottom:20px}.search-box svg{color:#999}.search-box input{flex:1;background:none;border:none;color:#fff;font-size:14px;outline:none}.search-box input::placeholder{color:#666}.filter-controls{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;padding:15px;background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:6px}.filter-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#ccc;transition:color .2s}.filter-checkbox:hover{color:#fff}.filter-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#d3bc8d}.filter-checkbox input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.filter-checkbox.override{margin-top:5px;padding-top:10px;border-top:1px solid #2a2a2a;color:#d3bc8d;font-weight:600}.filter-checkbox.override:hover{color:#e5d5a8}.filter-description{margin-top:10px;padding-top:10px;border-top:1px solid #2a2a2a;font-size:12px;color:#888;font-style:italic;text-align:center}.athlete-cards{display:flex;flex-direction:column;gap:12px}.athlete-card{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:6px;padding:16px;cursor:pointer;transition:all .2s}.athlete-card:hover,.athlete-card.selected{border-color:#d3bc8d;background-color:#1a1a1a}.athlete-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.athlete-card-header h3{color:#fff;font-size:16px;font-weight:600;margin:0}.compliance-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;background-color:#2a2a2a;color:#d3bc8d}.compliance-badge.good{background-color:#10b98126;color:#10b981}.compliance-badge.warning{background-color:#f59e0b26;color:#f59e0b}.compliance-badge.poor{background-color:#ef444426;color:#ef4444}.athlete-card-coach{color:#888;font-size:12px;margin-bottom:8px}.athlete-card-stats{display:flex;gap:16px;margin-bottom:12px}.athlete-card-stats .stat{display:flex;align-items:center;gap:6px;color:#999;font-size:13px}.athlete-card-stats .stat svg{color:#d3bc8d}.athlete-card-footer{padding-top:12px;border-top:1px solid #2a2a2a}.date-range{color:#666;font-size:12px}.loading-state,.no-results{text-align:center;color:#999;padding:40px 20px}.athlete-detail{background-color:#1a1a1a;border-radius:8px;border:1px solid #2a2a2a;padding:30px;overflow-y:auto}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#666;gap:16px}.loading-spinner{width:48px;height:48px;border:4px solid #2a2a2a;border-top-color:#d3bc8d;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state svg{opacity:.3}.detail-header{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #2a2a2a}.header-top{margin-bottom:15px}.detail-header h2{color:#fff;font-size:22px;font-weight:600;margin-bottom:6px}.athlete-metadata{display:flex;gap:16px;margin-top:6px}.metadata-item{color:#999;font-size:14px}.metadata-item strong{color:#d3bc8d;margin-right:4px}.missing-data{color:#666;font-style:italic;font-size:13px}.header-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.stat-box{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:6px}.stat-box.highlighted{background-color:#1a1a1a;border-color:#d3bc8d}.stat-box.missing{background-color:#0a0a0a;border-color:#1a1a1a;border-style:dashed}.stat-label{color:#999;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.stat-value{color:#d3bc8d;font-size:20px;font-weight:700}.detail-sections{display:flex;flex-direction:column;gap:30px}.section h3{color:#fff;font-size:18px;font-weight:600;margin-bottom:20px;display:flex;align-items:center;gap:10px}.section h3 svg{color:#d3bc8d}.no-data{color:#666;font-style:italic;text-align:center;padding:40px}.charts-container{display:flex;flex-direction:column;gap:30px}.chart-wrapper{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:6px;padding:20px}.chart-title{color:#fff;font-size:16px;font-weight:600;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #2a2a2a}.tests-timeline{display:flex;flex-direction:column;gap:16px}.timeline-item{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:16px;background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:6px;transition:all .2s}.timeline-item:hover{border-color:#3a3a3a}.timeline-date{color:#999;font-size:13px;font-weight:600;display:flex;align-items:center}.timeline-content{display:flex;flex-direction:column;gap:6px}.test-name{color:#fff;font-size:15px;font-weight:600}.test-value{color:#d3bc8d;font-size:18px;font-weight:700}.test-source{color:#666;font-size:12px}.comprehensive-section{grid-column:1 / -1;margin-bottom:30px}.pitch-density-chart{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;padding:30px;display:flex;flex-direction:column;align-items:center}.pitch-density-chart .chart-title{color:#fff;font-size:20px;font-weight:600;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #2a2a2a;width:100%;text-align:center}.pitch-type-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:30px;padding-top:20px;border-top:1px solid #2a2a2a;justify-content:center}.pitch-type-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:#1a1a1a;border-radius:4px}.pitch-type-item .color-box{width:16px;height:16px;border-radius:3px}.pitch-type-item span{color:#fff;font-size:13px;font-weight:500}.compliance-section{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;padding:20px;margin-bottom:20px}.compliance-section .section-title{color:#fff;font-size:18px;font-weight:600;margin-bottom:20px;display:flex;align-items:center;gap:10px}.compliance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:20px}.compliance-card{background-color:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;padding:15px;text-align:center}.compliance-label{display:block;color:#999;font-size:12px;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.compliance-value{display:block;color:#fff;font-size:28px;font-weight:700}.compliance-value.good{color:#4ade80}.compliance-value.warning{color:#facc15}.compliance-value.poor{color:#ef4444}.compliance-table-container{overflow-x:auto}.compliance-table{width:100%;border-collapse:collapse;font-size:13px}.compliance-table thead th{background-color:#1a1a1a;color:#d3bc8d;font-weight:600;padding:12px 8px;text-align:center;border-bottom:2px solid #2a2a2a}.compliance-table .sub-header th{background-color:#0f0f0f;color:#999;font-size:11px;font-weight:500;padding:8px;text-transform:uppercase;letter-spacing:.5px}.compliance-table tbody td{padding:12px 8px;border-bottom:1px solid #2a2a2a;text-align:center;color:#ccc}.compliance-table tbody td.test-name{text-align:left;font-weight:600;color:#fff}.compliance-table tbody td.compliance-percent{font-weight:600;font-size:14px}.compliance-table tbody td.compliance-percent.good{color:#4ade80}.compliance-table tbody td.compliance-percent.warning{color:#facc15}.compliance-table tbody td.compliance-percent.poor{color:#ef4444}.upcoming-section{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;padding:20px;margin-bottom:20px}.upcoming-section .section-title{color:#fff;font-size:18px;font-weight:600;margin-bottom:15px;display:flex;align-items:center;gap:10px}.weekly-compliance{background:#0000004d;border:1px solid rgba(197,179,88,.3);border-radius:8px;padding:16px;margin-bottom:20px}.compliance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.compliance-header h4{margin:0;color:#c5b358;font-size:16px;font-weight:600}.week-range{color:#fff9;font-size:13px}.schedule-summary{margin-bottom:16px}.summary-badge{display:inline-flex;align-items:center;gap:12px;padding:12px 20px;border-radius:8px;border:2px solid}.summary-badge.good{background:#22c55e26;border-color:#22c55e}.summary-badge.warning{background:#eab30826;border-color:#eab308}.summary-badge.poor{background:#ef444426;border-color:#ef4444}.badge-label{color:#ffffffb3;font-size:13px}.badge-percent{color:#fffc;font-size:16px;font-weight:600}.schedule-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.schedule-item{background:#0000004d;border:1px solid;border-radius:6px;padding:10px;display:flex;flex-direction:column;gap:6px;transition:all .2s}.schedule-item.complete{border-color:#22c55e;background:#22c55e1a}.schedule-item.partial{border-color:#eab308;background:#eab3081a}.schedule-item.missing{border-color:#ef4444;background:#ef44441a}.schedule-item-name{color:#ffffffe6;font-size:13px;font-weight:600}.schedule-item-count{display:flex;align-items:baseline;gap:4px;font-size:18px;font-weight:700}.schedule-item-count .scheduled{color:#fff}.schedule-item-count .separator{color:#fff6;font-size:16px}.schedule-item-count .expected{color:#fff9;font-size:16px}.schedule-item-status{font-size:16px;align-self:flex-end}.schedule-item.complete .schedule-item-status{color:#22c55e}.schedule-item.partial .schedule-item-status{color:#eab308}.schedule-item.missing .schedule-item-status{color:#ef4444}.appointments-list{display:flex;flex-direction:column;gap:12px}.appointment-card{background-color:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;padding:12px 16px;display:flex;align-items:center;gap:16px;transition:all .2s}.appointment-card:hover{border-color:#d3bc8d;background-color:#242424}.appointment-date{background-color:#d3bc8d;color:#000;border-radius:4px;padding:8px 12px;text-align:center;min-width:60px;flex-shrink:0}.date-day{font-size:20px;font-weight:700;line-height:1}.date-month{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.appointment-info{flex:1}.appointment-type{color:#fff;font-size:15px;font-weight:600;margin-bottom:4px}.appointment-time{color:#999;font-size:13px}.appointment-calendar{color:#d3bc8d;font-size:12px;padding:4px 8px;background-color:#d3bc8d1a;border-radius:4px;flex-shrink:0}.body-comp-section{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;padding:20px;margin-bottom:20px}.body-comp-section .section-title{color:#fff;font-size:18px;font-weight:600;margin-bottom:20px}.body-comp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px}.comp-stat{background-color:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;padding:12px 16px;display:flex;flex-direction:column;gap:6px}.comp-label{color:#999;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.comp-value{color:#d3bc8d;font-size:18px;font-weight:700}.comp-history{margin-top:20px;padding-top:20px;border-top:1px solid #2a2a2a}.comp-history h4{color:#fff;font-size:16px;font-weight:600;margin-bottom:15px}.comp-date{margin-top:15px;color:#666;font-size:12px;text-align:center;font-style:italic}.readiness-section{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;padding:20px;margin-bottom:20px}.readiness-section .section-title{color:#fff;font-size:18px;font-weight:600;margin-bottom:20px}.readiness-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:25px}.readiness-card{background-color:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;padding:15px;display:flex;flex-direction:column;gap:8px}.readiness-label{color:#999;font-size:13px;text-transform:uppercase;letter-spacing:.5px}.readiness-value{color:#d3bc8d;font-size:24px;font-weight:700}.readiness-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.readiness-chart-container{background-color:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;padding:15px}.readiness-chart-container h4{color:#fff;font-size:14px;font-weight:600;margin-bottom:10px}.latest-tests-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:15px;margin-bottom:25px;padding:20px;background-color:#1a1a1a;border:1px solid #2a2a2a;border-radius:8px}.test-summary-card{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:6px;padding:15px}.test-summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.test-summary-name{color:#999;font-size:12px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.test-summary-change{font-size:11px;font-weight:700;padding:2px 6px;border-radius:3px}.test-summary-change.positive{color:#10b981;background-color:#10b9811a}.test-summary-change.negative{color:#ef4444;background-color:#ef44441a}.test-summary-value{color:#d3bc8d;font-size:28px;font-weight:700;margin-bottom:5px}.test-summary-date{color:#666;font-size:11px}.force-test-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:20px}@media (max-width: 1200px){.profiles-layout{grid-template-columns:300px 1fr}}@media (max-width: 900px){.profiles-layout{grid-template-columns:1fr;height:auto}.athletes-list{max-height:400px}}.compliance-schedule-dashboard{display:grid;grid-template-columns:1.2fr .8fr;gap:20px;margin-bottom:20px}.compliance-panel,.schedule-panel{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;padding:20px}.panel-title{color:#fff;font-size:16px;font-weight:600;margin-bottom:15px;display:flex;align-items:center;gap:8px}.compliance-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.compliance-panel-header .panel-title{margin-bottom:0}.compliance-toggle{display:flex;gap:0;border-radius:6px;overflow:hidden;border:1px solid #333}.compliance-toggle button{background:#1a1a1a;color:#888;border:none;padding:5px 12px;font-size:12px;cursor:pointer;transition:all .2s}.compliance-toggle button.active{background:#d3bc8d;color:#000;font-weight:600}.compliance-toggle button:hover:not(.active){background:#2a2a2a;color:#ccc}.compliance-summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:15px}.summary-card{background-color:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;padding:10px;display:flex;flex-direction:column;gap:4px;text-align:center}.summary-card-label{color:#999;font-size:10px;text-transform:uppercase;letter-spacing:.5px}.summary-card-value{color:#fff;font-size:22px;font-weight:700}.summary-card-value.good{color:#10b981}.summary-card-value.warning{color:#f59e0b}.summary-card-value.poor{color:#ef4444}.compliance-table-wrapper{overflow-x:auto}.compliance-table-compact{width:100%;border-collapse:collapse;font-size:12px}.compliance-table-compact thead{background-color:#1a1a1a}.compliance-table-compact th{padding:8px 6px;text-align:left;color:#999;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid #2a2a2a}.compliance-table-compact .sub-header th{font-size:10px;padding:4px 6px;color:#666}.compliance-table-compact tbody tr{border-bottom:1px solid #1a1a1a}.compliance-table-compact tbody tr:hover{background-color:#d3bc8d0d}.compliance-table-compact td{padding:8px 6px;color:#ccc}.test-name-col{color:#fff!important;font-weight:500}.freq-col{color:#999;font-size:11px}.percent-col{font-weight:600}.percent-col.good{color:#10b981}.percent-col.warning{color:#f59e0b}.percent-col.poor{color:#ef4444}.schedule-week-range{color:#d3bc8d;font-size:12px;font-weight:500;margin-bottom:12px;text-align:center}.schedule-summary-badge{background-color:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;padding:12px;display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.badge-label{color:#999;font-size:11px;text-transform:uppercase;letter-spacing:.5px}.badge-value{color:#fff;font-size:20px;font-weight:700}.badge-value.good{color:#10b981}.badge-value.warning{color:#f59e0b}.badge-value.poor{color:#ef4444}.badge-percent{color:#d3bc8d;font-size:14px;font-weight:600}.schedule-tests-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:15px}.schedule-test-card{background-color:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;padding:10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.schedule-test-card.complete{border-color:#10b981;background-color:#10b9810d}.schedule-test-card.missing{border-color:#ef4444;background-color:#ef44440d}.schedule-test-card.partial{border-color:#f59e0b;background-color:#f59e0b0d}.schedule-test-name{color:#fff;font-size:12px;font-weight:500;flex:1}.schedule-test-count{color:#d3bc8d;font-size:14px;font-weight:600}.schedule-test-icon{font-size:14px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%}.schedule-test-card.complete .schedule-test-icon{color:#10b981;background-color:#10b98133}.schedule-test-card.missing .schedule-test-icon{color:#ef4444;background-color:#ef444433}.schedule-test-card.partial .schedule-test-icon{color:#f59e0b;background-color:#f59e0b33}.upcoming-appointments,.recent-appointments{border-top:1px solid #2a2a2a;padding-top:15px;margin-top:10px}.recent-appointments{border-top:1px solid #1a1a1a;margin-top:15px;padding-top:12px}.appointments-header{color:#999;font-size:12px;font-weight:600;margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}.appointments-list-compact{display:flex;flex-direction:column;gap:6px}.appointment-row{display:flex;align-items:center;gap:10px;font-size:11px;padding:6px;border-radius:4px;background-color:#1a1a1a}.appointment-row.upcoming{border-left:2px solid #d3bc8d}.appointment-row.upcoming .appt-date{color:#d3bc8d;font-weight:600}.appointment-row.upcoming .appt-type{color:#fff}.appointment-row.recent{opacity:.6;border-left:2px solid #666}.appointment-row.recent .appt-date{color:#999;font-weight:500}.appointment-row.recent .appt-type{color:#ccc}.appt-date{min-width:55px}.appt-time{color:#999;min-width:50px}.appt-type{flex:1}.no-appointments{padding:15px;text-align:center;border-top:1px solid #2a2a2a;margin-top:10px}@media (max-width: 1400px){.compliance-schedule-dashboard{grid-template-columns:1fr 1fr}}@media (max-width: 1000px){.compliance-schedule-dashboard{grid-template-columns:1fr}.schedule-tests-grid{grid-template-columns:repeat(3,1fr)}}.subjective-testing{padding:30px;height:100%;overflow-y:auto}.subjective-header{margin-bottom:30px}.subjective-header h1{font-size:28px;font-weight:600;color:#fff;margin-bottom:8px}.subjective-header .subtitle{color:#888;font-size:14px}.subjective-content{display:flex;gap:20px;height:calc(100% - 100px)}.search-container{position:relative;display:flex;align-items:center}.athlete-list{flex:1;overflow-y:auto;margin-top:15px;background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px}.athlete-list-item{padding:12px 16px;cursor:pointer;border-bottom:1px solid #2a2a2a;transition:background-color .2s;color:#ccc;display:flex;flex-direction:column;gap:4px}.athlete-list-item.active{background-color:#1e3a5f;color:#4a9eff}.athlete-name{font-size:14px;font-weight:500}.athlete-name .phone-tag{font-size:11px;color:#888;margin-left:4px;font-weight:400}.name-variants{font-size:10px;color:#666;font-style:italic;margin-top:2px}.athlete-meta{display:flex;gap:8px;font-size:11px;color:#888}.last-submission{color:#d4af37}.submission-count{color:#666}.no-athletes{padding:30px;text-align:center;color:#666}.no-athletes .hint{font-size:12px;color:#888;margin-top:8px;font-family:Courier New,monospace}.subjective-main{flex:1;overflow-y:auto}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#666}.empty-state h3{margin-top:20px;font-size:24px;font-weight:600}.empty-state p{color:#888;margin-top:8px}.empty-state .hint{font-size:12px;color:#888;margin-top:8px;font-family:Courier New,monospace}.athlete-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #2a2a2a}.athlete-header h2{font-size:24px;font-weight:600;color:#fff}.timeframe-selector{display:flex;gap:8px}.timeframe-selector button{padding:8px 16px;background-color:#1a1a1a;border:1px solid #333;border-radius:6px;color:#999;cursor:pointer;transition:all .2s}.timeframe-selector button:hover{background-color:#252525;border-color:#444}.timeframe-selector button.active{background-color:#1e3a5f;border-color:#4a9eff;color:#4a9eff}.readiness-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.emotion-wheel-card{grid-column:span 2}.emotion-details{margin-top:20px;padding:15px;background:#1a1a1a;border-radius:6px}.emotion-details h4{font-size:14px;font-weight:600;color:#fff;margin-bottom:10px}.emotion-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #2a2a2a}.emotion-item:last-child{border-bottom:none}.emotion-name{color:#ccc;font-size:14px}.emotion-count{color:#4a9eff;font-weight:600;font-size:14px}.readiness-card{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;padding:20px}.readiness-card.full-width{grid-column:1 / -1}.card-header{display:flex;align-items:center;gap:10px;margin-bottom:20px}.card-header h3{font-size:16px;font-weight:600;color:#fff}.card-header svg{color:#4a9eff}.chart-container{min-height:200px;display:flex;align-items:center;justify-content:center}.no-data,.coming-soon{color:#666;font-style:italic}.responses-table{overflow-x:auto}.responses-table table{width:100%;border-collapse:collapse}.responses-table th{text-align:left;padding:12px;background-color:#1a1a1a;border-bottom:2px solid #333;color:#ccc;font-weight:600;font-size:14px}.responses-table td{padding:12px;border-bottom:1px solid #2a2a2a;color:#888;font-size:14px}.responses-table tr:hover{background-color:#1a1a1a}.emotion-wheel-container{min-height:400px;display:flex;align-items:center;justify-content:center}.athlete-comparison{padding:30px;height:100%;overflow-y:auto}.comparison-header{margin-bottom:30px}.comparison-header h1{display:flex;align-items:center;gap:15px;font-size:28px;font-weight:600;color:#fff;margin-bottom:8px}.comparison-selectors{display:flex;align-items:center;gap:30px;margin-bottom:30px}.athlete-selector{flex:1}.athlete-selector label{display:block;margin-bottom:8px;font-weight:600;color:#ccc}.autocomplete-wrapper{position:relative}.athlete-selector input{width:100%;padding:12px;background-color:#1a1a1a;border:1px solid #333;border-radius:6px;color:#fff;font-size:14px}.athlete-selector input:focus{outline:none;border-color:#4a9eff}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background-color:#1a1a1a;border:1px solid #333;border-radius:6px;max-height:200px;overflow-y:auto;z-index:1000}.autocomplete-item{padding:10px 12px;cursor:pointer;color:#ccc;transition:background-color .2s}.autocomplete-item:hover{background-color:#252525}.vs-divider{font-size:24px;font-weight:700;color:#4a9eff;margin-top:28px}.test-selectors{display:flex;gap:20px;margin-bottom:30px}.selector-group select{width:100%;padding:12px;background-color:#1a1a1a;border:1px solid #333;border-radius:6px;color:#fff;font-size:14px;cursor:pointer}.empty-comparison{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px;color:#666}.empty-comparison h3{margin-top:20px;font-size:24px;font-weight:600}.comparison-charts{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.chart-section{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;padding:20px}.chart-section.full-width{grid-column:1 / -1}.chart-section h3{font-size:16px;font-weight:600;color:#fff;margin-bottom:20px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.stat-card{display:flex;flex-direction:column;padding:15px;background-color:#1a1a1a;border:1px solid #333;border-radius:6px;text-align:center}.stat-label{font-size:12px;color:#888;margin-bottom:8px}.stat-value{font-size:28px;font-weight:600;color:#10b981}.stat-value.positive{color:#10b981}.stat-value.negative{color:#ef4444}.stat-detail{font-size:12px;color:#666;margin-top:4px}.correlations{padding:30px;height:100%;overflow-y:auto}.correlations-header{margin-bottom:30px}.correlations-header h1{display:flex;align-items:center;gap:15px;font-size:28px;font-weight:600;color:#fff;margin-bottom:8px}.correlations-header .subtitle{color:#888;font-size:14px}.correlations-tabs{display:flex;gap:10px;margin-bottom:30px;border-bottom:2px solid #2a2a2a}.correlations-tabs button{padding:12px 24px;background:none;border:none;color:#888;font-size:16px;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}.correlations-tabs button.active{color:#4a9eff;border-bottom-color:#4a9eff}.correlations-tabs button:hover{color:#fff}.vald-correlation-section{display:grid;grid-template-columns:350px 1fr;gap:30px}.correlation-filters{background:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;padding:20px;height:fit-content}.correlation-filters h3{font-size:18px;font-weight:600;color:#fff;margin-bottom:20px}.filter-row{margin-bottom:20px}.filter-group{margin-bottom:15px}.filter-group label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#ccc;margin-bottom:8px}.info-btn{background:none;border:none;color:#4a9eff;cursor:help;padding:0;display:inline-flex;align-items:center}.info-btn:hover{color:#6bb6ff}.metric-select-wrapper{position:relative}.filter-group select{width:100%;padding:10px;background:#1a1a1a;border:1px solid #333;border-radius:6px;color:#fff;font-size:14px;cursor:pointer}.filter-group select:focus{outline:none;border-color:#4a9eff}.date-range-group{margin:20px 0;padding:15px;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px}.date-range-group h4{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#d3bc8d;margin-bottom:12px}.date-inputs{display:flex;flex-direction:column;gap:10px}.date-input-group{display:flex;flex-direction:column;gap:5px}.date-input-group label{font-size:12px;color:#999;font-weight:500}.date-input-group input[type=date]{padding:8px;background:#0f0f0f;border:1px solid #2a2a2a;border-radius:4px;color:#fff;font-size:14px;cursor:pointer}.date-input-group input[type=date]:focus{outline:none;border-color:#4a9eff}.date-input-group input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1);cursor:pointer}.clear-dates-btn{margin-top:10px;padding:6px 12px;background:#333;border:1px solid #444;border-radius:4px;color:#ccc;font-size:12px;cursor:pointer;transition:all .2s}.clear-dates-btn:hover{background:#444;color:#fff}.generate-btn{width:100%;padding:12px;background:#4a9eff;color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s;margin-top:10px}.generate-btn:hover:not(:disabled){background:#3a8eef}.generate-btn:disabled{background:#666;cursor:not-allowed}.info-note{display:flex;align-items:flex-start;gap:10px;padding:12px;background:#4a9eff1a;border:1px solid rgba(74,158,255,.3);border-radius:6px;margin-top:15px}.info-note svg{flex-shrink:0;margin-top:2px;color:#4a9eff}.info-note p{margin:0;font-size:13px;line-height:1.5;color:#ccc}.correlation-plot{background:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;padding:30px}.correlation-plot h3{font-size:20px;font-weight:600;color:#fff;margin-bottom:15px}.correlation-stats-top{display:flex;gap:30px;align-items:center;margin-bottom:20px;padding:15px;background:#1a1a1a;border-radius:6px}.correlation-stats-top span{color:#ccc;font-size:14px}.correlation-stats-top strong{color:#fff}.interpretation{padding:4px 12px;border-radius:12px;font-weight:600;font-size:13px}.interpretation.strong{background:#10b98133;color:#10b981}.interpretation.moderate{background:#fbbf2433;color:#fbbf24}.interpretation.weak{background:#ef444433;color:#ef4444}.plot-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:500px;color:#666}.plot-placeholder h3{margin-top:20px;font-size:24px;font-weight:600}.plot-placeholder p{text-align:center;max-width:400px}.plot-placeholder .hint{margin-top:10px;font-size:14px;color:#4a9eff}.custom-tooltip{background:#1a1a1a;border:1px solid #333;padding:12px;border-radius:6px}.custom-tooltip p{margin:4px 0;color:#ccc;font-size:13px}.custom-tooltip .date{color:#888;font-size:12px;margin-top:8px}.mocap-correlation-section{background:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;padding:30px}.mocap-correlation-section h3{font-size:20px;font-weight:600;color:#fff;margin-bottom:10px}.mocap-note{color:#888;font-size:14px;margin-bottom:30px}.mocap-filters{display:flex;gap:20px;align-items:flex-end;margin-bottom:30px;padding:20px;background:#1a1a1a;border-radius:6px}.mocap-filters .filter-group{min-width:220px}.mocap-filters .filter-group label{display:block;color:#fff;font-size:14px;font-weight:600;margin-bottom:8px}.mocap-filters .filter-group select{width:100%;background:#0f0f0f;border:1px solid #555;color:#fff;font-size:14px;padding:10px 12px;border-radius:6px;cursor:pointer}.mocap-filters .filter-group select:focus{outline:none;border-color:#4a9eff}.mocap-filters .generate-btn{flex-shrink:0;width:180px;height:42px;padding:0}.range-slider-container{display:flex;flex-direction:column;gap:8px}.range-slider{width:100%;height:6px;border-radius:3px;background:#333;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#4a9eff;cursor:pointer;transition:background .2s}.range-slider::-webkit-slider-thumb:hover{background:#6bb6ff}.range-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#4a9eff;cursor:pointer;border:none;transition:background .2s}.range-slider::-moz-range-thumb:hover{background:#6bb6ff}.mocap-data-summary{margin-top:20px;padding:15px 20px;background:#4a9eff1a;border:1px solid rgba(74,158,255,.3);border-radius:6px}.mocap-data-summary p{margin:0;color:#ccc;font-size:14px;line-height:1.5}.mocap-data-summary strong{color:#4a9eff;font-weight:600}.mocap-summaries{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.summary-card{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;padding:20px;min-height:200px}.summary-card h4{font-size:16px;font-weight:600;color:#fff;margin-bottom:15px}.placeholder-text{color:#666;font-style:italic;text-align:center;padding:40px 0}.summary-stats{padding:10px 0}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #2a2a2a}.stat-row:last-child{border-bottom:none}.stat-label{color:#888;font-size:14px}.stat-value{color:#4a9eff;font-size:18px;font-weight:600}.mocap-tables{display:flex;flex-direction:column;gap:30px;margin-top:20px}.mocap-table-container{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:8px;padding:20px}.mocap-table-container h4{font-size:18px;font-weight:600;color:#fff;margin-bottom:15px}.mocap-summary-table{width:100%;border-collapse:collapse}.mocap-summary-table thead{background:#0f0f0f}.mocap-summary-table th{padding:12px 16px;text-align:left;font-size:13px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #2a2a2a}.mocap-summary-table tbody tr{border-bottom:1px solid #2a2a2a;transition:background .2s}.mocap-summary-table tbody tr:hover{background:#0f0f0f}.mocap-summary-table tbody tr:last-child{border-bottom:none}.mocap-summary-table td{padding:12px 16px;font-size:14px;color:#ccc}.mocap-summary-table td:first-child{color:#fff;font-weight:500}.mocap-summary-table td:not(:first-child){color:#4a9eff;font-weight:600}.mocap-placeholder{min-height:300px;display:flex;align-items:center;justify-content:center}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#1a1a1a;border:1px solid #333;border-radius:12px;max-width:600px;width:90%;max-height:80vh;overflow-y:auto;animation:slideUp .3s}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #2a2a2a}.modal-header h3{font-size:20px;font-weight:600;color:#fff;margin:0}.modal-close{background:none;border:none;color:#888;font-size:32px;line-height:1;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-close:hover{background:#2a2a2a;color:#fff}.modal-body{padding:24px}.definition-section{margin-bottom:20px}.definition-section:last-child{margin-bottom:0}.definition-section h4{font-size:14px;font-weight:600;color:#4a9eff;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.definition-section p{font-size:15px;line-height:1.6;color:#ccc;margin:0}.modal-footer{padding:16px 24px;border-top:1px solid #2a2a2a;display:flex;justify-content:flex-end}.modal-btn{padding:10px 20px;background:#4a9eff;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.modal-btn:hover{background:#3a8eef}.readiness-assessment{padding:30px;height:100%;overflow-y:auto}.assessment-header{margin-bottom:30px}.assessment-header h1{display:flex;align-items:center;gap:15px;font-size:28px;font-weight:600;color:#fff;margin-bottom:8px}.assessment-selectors{display:flex;gap:20px;margin-bottom:30px}.empty-assessment{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px;color:#666}.empty-assessment h3{margin-top:20px;font-size:24px;font-weight:600}.traffic-light-section{margin-bottom:30px}.traffic-light-section h3{font-size:20px;font-weight:600;color:#fff;margin-bottom:20px}.zones-container{display:flex;gap:20px}.zone{flex:1;display:flex;align-items:center;gap:15px;padding:20px;background-color:#0f0f0f;border:2px solid #2a2a2a;border-radius:8px;opacity:.5;transition:all .3s}.zone.active{opacity:1;border-color:currentColor}.green-zone.active{border-color:#4ade80}.yellow-zone.active{border-color:#fbbf24}.red-zone.active{border-color:#f87171}.zone-indicator{width:40px;height:40px;border-radius:50%;flex-shrink:0}.green-zone .zone-indicator{background-color:#4ade80;box-shadow:0 0 20px #4ade8080}.yellow-zone .zone-indicator{background-color:#fbbf24;box-shadow:0 0 20px #fbbf2480}.red-zone .zone-indicator{background-color:#f87171;box-shadow:0 0 20px #f8717180}.zone-content h4{font-size:14px;font-weight:600;color:#fff;margin-bottom:4px}.zone-content p{font-size:12px;color:#ccc;margin-bottom:4px}.zone-content small{font-size:11px;color:#888}.metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.metric-card{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;padding:20px}.metric-card.full-width{grid-column:1 / -1}.metric-card h4{font-size:16px;font-weight:600;color:#fff;margin-bottom:15px}.chart-placeholder,.metrics-table{min-height:200px;display:flex;align-items:center;justify-content:center;color:#666;font-style:italic}.autocomplete-wrapper{position:relative;width:100%}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:#1a1a1a;border:1px solid #333;border-radius:6px;margin-top:4px;max-height:300px;overflow-y:auto;z-index:1000;box-shadow:0 4px 12px #0000004d}.autocomplete-item{padding:12px;cursor:pointer;transition:background .2s;color:#fff;font-size:14px}.autocomplete-item:hover{background:#2a2a2a}.comparison-stats,.grip-stats{margin-top:15px;padding:15px;background:#1a1a1a;border-radius:6px}.comparison-stats p{margin:8px 0;color:#ccc;font-size:14px}.grip-stats{display:flex;gap:15px;justify-content:space-around}.stat-box{text-align:center}.stat-value{font-size:24px;font-weight:600;color:#4a9eff;margin-bottom:5px}.stat-label{font-size:12px;color:#888}.trend-indicator{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;font-size:16px;font-weight:600}.metrics-table{min-height:auto;display:block}.metrics-table table{width:100%;border-collapse:collapse}.metrics-table th,.metrics-table td{padding:12px;text-align:left;border-bottom:1px solid #2a2a2a;color:#ccc}.metrics-table th{font-weight:600;color:#fff;background:#1a1a1a}.metrics-table tr:hover{background:#1a1a1a}.no-data{text-align:center;color:#666;font-style:italic;padding:40px}.body-composition{padding:30px;height:100%;overflow-y:auto}.body-comp-header{margin-bottom:30px}.body-comp-header h1{display:flex;align-items:center;gap:15px;font-size:28px;font-weight:600;color:#fff;margin-bottom:8px}.body-comp-layout{display:flex;gap:20px;height:calc(100% - 100px)}.athlete-selector-sidebar{width:280px;flex-shrink:0;display:flex;flex-direction:column}.search-container{position:relative;display:flex;align-items:center;margin-bottom:15px}.search-container svg{position:absolute;left:12px;color:#666}.athlete-search{width:100%;padding:12px 12px 12px 36px;background-color:#1a1a1a;border:1px solid #333;border-radius:6px;color:#fff;font-size:14px}.athlete-search:focus{outline:none;border-color:#4a9eff}.athlete-list{flex:1;overflow-y:auto;background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px}.athlete-list-item{display:flex;flex-direction:column;align-items:flex-start;padding:12px 16px;cursor:pointer;border-bottom:1px solid #2a2a2a;transition:background-color .2s;color:#ccc}.athlete-list-item .athlete-name{font-weight:600;color:#fff;margin-bottom:4px}.athlete-list-item .athlete-meta{font-size:11px;color:#888}.athlete-list-item:hover{background-color:#1a1a1a}.athlete-list-item.active{background-color:#1e3a5f}.athlete-list-item.active .athlete-name{color:#4a9eff}.athlete-list-item.active .athlete-meta{color:#6bb6ff}.no-athletes{display:flex;align-items:center;justify-content:center;padding:40px 20px;color:#666;font-style:italic}.no-athletes p{margin:0}.body-comp-main{flex:1;overflow-y:auto}.body-comp-selectors{display:flex;gap:20px;margin-bottom:30px;align-items:end}.selector-group{flex:1}.selector-group label{display:block;margin-bottom:8px;font-weight:600;color:#ccc}.selector-group input,.selector-group select{width:100%;padding:12px;background-color:#1a1a1a;border:1px solid #333;border-radius:6px;color:#fff;font-size:14px}.selector-group select{cursor:pointer}.timeframe-toggle{display:flex;gap:5px;background-color:#1a1a1a;border:1px solid #333;border-radius:6px;padding:4px}.timeframe-toggle button{padding:8px 16px;background:none;border:none;color:#999;border-radius:4px;cursor:pointer;transition:all .2s}.timeframe-toggle button.active{background-color:#4a9eff;color:#fff}.empty-body-comp{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px;color:#666}.empty-body-comp h3{margin-top:20px;font-size:24px;font-weight:600}.empty-body-comp .hint{font-size:12px;color:#888;margin-top:8px;font-family:Courier New,monospace}.body-comp-content{display:grid;gap:20px}.body-comp-chart,.metrics-summary,.measurements-history{background-color:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;padding:20px}.body-comp-chart h3,.metrics-summary h3,.measurements-history h3{font-size:18px;font-weight:600;color:#fff;margin-bottom:20px}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.summary-card{display:flex;flex-direction:column;padding:15px;background-color:#1a1a1a;border:1px solid #333;border-radius:6px}.summary-card .label{font-size:12px;color:#888;margin-bottom:8px}.summary-card .value{font-size:28px;font-weight:600;color:#10b981}.summary-card .unit{font-size:14px;color:#666;margin-top:4px}.history-table{overflow-x:auto}.history-table table{width:100%;border-collapse:collapse}.history-table th{text-align:left;padding:12px;background-color:#1a1a1a;border-bottom:2px solid #333;color:#ccc;font-weight:600;font-size:14px}.history-table td{padding:12px;border-bottom:1px solid #2a2a2a;color:#888;font-size:14px}.history-table tr:hover{background-color:#1a1a1a}.coach-grouping{padding:30px;max-width:1400px;margin:0 auto}.cg-header h1{color:#d3bc8d;font-size:28px;display:flex;align-items:center;gap:12px;margin-bottom:4px}.cg-subtitle{color:#888;font-size:14px;margin-bottom:4px}.cg-compliance-note{font-size:12px;color:#666;margin-bottom:24px}.cg-loading{text-align:center;color:#888;padding:60px 0;font-size:16px}.cg-summary-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.cg-summary-card{background:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;padding:16px;text-align:center}.cg-summary-label{display:block;color:#888;font-size:12px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.cg-summary-value{display:block;color:#fff;font-size:28px;font-weight:700}.cg-summary-value.good{color:#10b981}.cg-summary-value.warning{color:#f59e0b}.cg-summary-value.poor{color:#ef4444}.cg-sort-controls{display:flex;align-items:center;gap:8px;margin-bottom:16px;color:#888;font-size:13px}.cg-sort-controls button{background:#1a1a1a;border:1px solid #333;color:#888;padding:5px 12px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s}.cg-sort-controls button.active{background:#d3bc8d;color:#000;border-color:#d3bc8d;font-weight:600}.cg-sort-controls button:hover:not(.active){background:#2a2a2a;color:#ccc}.cg-coach-list{display:flex;flex-direction:column;gap:8px}.cg-coach-card{background:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;overflow:hidden;transition:border-color .2s}.cg-coach-card:hover{border-color:#444}.cg-coach-card.unassigned{opacity:.6}.cg-coach-header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;cursor:pointer}.cg-coach-header:hover{background:#1a1a1a}.cg-coach-name h3{color:#d3bc8d;font-size:16px;font-weight:600;margin:0 0 2px}.cg-athlete-count{color:#666;font-size:12px}.cg-coach-metrics{display:flex;align-items:center;gap:24px}.cg-metric{text-align:center;min-width:80px}.cg-metric-label{display:flex;align-items:center;justify-content:center;gap:4px;color:#666;font-size:10px;text-transform:uppercase;letter-spacing:.3px;margin-bottom:2px}.cg-metric-value{color:#fff;font-size:18px;font-weight:700}.cg-metric-value.good{color:#10b981}.cg-metric-value.warning{color:#f59e0b}.cg-metric-value.poor{color:#ef4444}.cg-metric-value.positive{color:#10b981}.cg-metric-value.negative{color:#ef4444}.cg-expand-icon{color:#666;display:flex;align-items:center}.cg-athletes-table{border-top:1px solid #2a2a2a;padding:0}.cg-athletes-table table{width:100%;border-collapse:collapse;font-size:13px}.cg-athletes-table thead th{background:#1a1a1a;color:#888;text-align:left;padding:8px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid #2a2a2a}.cg-athletes-table tbody tr{border-bottom:1px solid #1a1a1a}.cg-athletes-table tbody tr:hover{background:#1a1a1a}.cg-athletes-table tbody td{padding:8px 12px;color:#ccc}.cg-athletes-table td.good{color:#10b981;font-weight:600}.cg-athletes-table td.warning{color:#f59e0b;font-weight:600}.cg-athletes-table td.poor{color:#ef4444;font-weight:600}.cg-athletes-table td.positive{color:#10b981}.cg-athletes-table td.negative{color:#ef4444}.athlete-name-cell{font-weight:500;color:#fff!important}.date-cell{color:#666!important;font-size:12px}.cg-unauthorized-section{margin-top:32px;background:#0f0f0f;border:1px solid #3a2020;border-radius:8px;overflow:hidden}.cg-unauthorized-header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;cursor:pointer;background:#1a1010}.cg-unauthorized-header:hover{background:#221515}.cg-unauthorized-title{display:flex;align-items:center;gap:10px;color:#f59e0b}.cg-unauthorized-title h2{font-size:16px;font-weight:600;margin:0}.cg-unauthorized-count{background:#3a2020;color:#ef4444;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:600}.cg-unauthorized-content{padding:16px 20px;border-top:1px solid #2a1a1a}.cg-unauthorized-desc{color:#888;font-size:13px;margin-bottom:16px}.cg-unauthorized-group{margin-bottom:20px}.cg-unauthorized-group-title{font-size:14px;font-weight:600;margin-bottom:8px;padding:6px 12px;border-radius:4px}.cg-unauthorized-group-title.danger{color:#ef4444;background:#1a0808;border-left:3px solid #ef4444}.cg-unauthorized-group-title.warning{color:#f59e0b;background:#1a1408;border-left:3px solid #f59e0b}.cg-more-text{color:#666;font-size:12px;text-align:center;padding:8px}@media (max-width: 1200px){.cg-summary-row{grid-template-columns:repeat(2,1fr)}.cg-coach-metrics{gap:12px}.cg-metric{min-width:60px}}@media (max-width: 768px){.cg-coach-header{flex-direction:column;align-items:flex-start;gap:10px}.cg-athletes-table{overflow-x:auto}}.sidebar{position:fixed;left:0;top:0;width:250px;height:100vh;background-color:#2a2a2a;border-right:1px solid #3a3a3a;display:flex;flex-direction:column;z-index:100}.sidebar-header{padding:20px;background-color:#0f0f0f;border-bottom:1px solid #3a3a3a}.sidebar-header h2{font-size:16px;font-weight:600;color:#fff}.sidebar-nav{display:flex;flex-direction:column;padding:10px 0}.nav-item{display:flex;align-items:center;gap:12px;padding:15px 20px;background:none;border:none;color:#999;cursor:pointer;transition:all .2s;font-size:14px;text-align:left}.nav-item:hover{background-color:#3a3a3a;color:#d3bc8d}.nav-item.active{background-color:#d3bc8d;color:#0f0f0f;font-weight:600}.nav-item.active:hover{background-color:#e0ca9f}@media (max-width: 768px){.sidebar{width:60px}.sidebar-header h2,.nav-item span{display:none}}.login-container{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0a0a0a,#1a1a1a);z-index:9999}.login-box{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:12px;padding:40px;width:100%;max-width:400px;box-shadow:0 8px 32px #0006}.login-box.shake{animation:shake .5s}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.login-header{text-align:center;margin-bottom:30px}.login-header h1{color:#fff;font-size:24px;font-weight:600;margin-bottom:8px}.login-header p{color:#999;font-size:14px}.input-group{margin-bottom:20px}.input-group input{width:100%;padding:14px;background:#0f0f0f;border:1px solid #2a2a2a;border-radius:8px;color:#fff;font-size:16px;transition:all .3s;box-sizing:border-box}.input-group input:focus{outline:none;border-color:#d3bc8d;box-shadow:0 0 0 3px #d3bc8d1a}.input-group input.error{border-color:#ef4444;animation:shake .3s}.error-message{display:block;color:#ef4444;font-size:12px;margin-top:8px;margin-left:4px}.login-button{width:100%;padding:14px;background:linear-gradient(135deg,#d3bc8d,#c5af7f);border:none;border-radius:8px;color:#000;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s}.login-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #d3bc8d66}.login-button:active{transform:translateY(0)}.login-footer{margin-top:30px;text-align:center;opacity:.3}.login-footer svg{color:#d3bc8d}.app{display:flex;min-height:100vh;background-color:#000}.main-content{flex:1;margin-left:250px;padding:20px}@media (max-width: 768px){.main-content{margin-left:0;padding:10px}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#000;color:#fff}#root{min-height:100vh}*{scrollbar-width:thin;scrollbar-color:#d4af37 #0a0a0a}*::-webkit-scrollbar{width:12px;height:12px}*::-webkit-scrollbar-track{background:#0a0a0a;border-radius:6px}*::-webkit-scrollbar-thumb{background:#d4af37;border-radius:6px;border:2px solid #0a0a0a}*::-webkit-scrollbar-thumb:hover{background:#f0c75e}*::-webkit-scrollbar-thumb:active{background:#b8941f}*::-webkit-scrollbar-horizontal{height:12px}
