@keyframes spin{to{transform:rotate(360deg)}}*{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:#f8fafc;min-height:100vh}.app{min-height:100vh;padding:0}.upload-container{max-width:680px;margin:30px auto;padding:0 1.5rem}.upload-card{background:#fff;border-radius:16px;padding:1.25rem 2.5rem;box-shadow:0 1px 3px #0000000a,0 4px 12px #0000000f;border:1px solid #e5e7eb}.upload-header{text-align:center;margin-bottom:1.25rem}.upload-header-icon{width:56px;height:56px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:14px;display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem;color:#fff}.upload-header h1{color:#111827;font-size:1.625rem;font-weight:600;margin-bottom:.5rem;letter-spacing:-.02em}.upload-header p{color:#6b7280;font-size:.9375rem;line-height:1.5}.upload-dropzones{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:1.5rem}.dropzone-container{display:flex;flex-direction:column}.dropzone-label{display:flex;align-items:center;gap:.5rem;margin-bottom:.625rem}.dropzone-label-icon{width:20px;height:20px;color:#6b7280}.dropzone-label h3{color:#374151;font-size:.875rem;font-weight:500;margin:0}.dropzone-label .optional-tag{font-size:.75rem;color:#9ca3af;font-weight:400}.dropzone{border:2px dashed #d1d5db;border-radius:12px;padding:2rem 1.5rem;text-align:center;cursor:pointer;transition:all .2s ease;background:#fafafa;min-height:140px;display:flex;align-items:center;justify-content:center}.dropzone:hover{border-color:#6366f1;background:#f5f3ff}.dropzone-active{border-color:#6366f1;background:#ede9fe;border-style:solid}.dropzone-has-file{border-color:#10b981;background:#ecfdf5;border-style:solid}.dropzone-has-file:hover{border-color:#059669;background:#d1fae5}.dropzone-content{width:100%;display:flex;flex-direction:column;align-items:center}.dropzone-icon{width:40px;height:40px;color:#9ca3af;margin-bottom:.875rem;transition:color .2s ease}.dropzone:hover .dropzone-icon{color:#6366f1}.dropzone-has-file .dropzone-icon{color:#10b981}.dropzone-text{color:#374151;font-size:.9375rem;font-weight:500;margin-bottom:.375rem}.dropzone-text span{color:#6366f1}.dropzone-hint{color:#9ca3af;font-size:.8125rem}.file-info{display:flex;align-items:center;gap:.75rem}.file-icon-wrapper{width:40px;height:40px;background:#10b981;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.file-details{text-align:left;min-width:0}.file-name{color:#111827;font-weight:500;font-size:.875rem;margin:0 0 .125rem;word-break:break-word}.file-meta{color:#6b7280;font-size:.75rem;margin:0}.logo-preview-wrapper{display:flex;align-items:center;gap:1rem}.logo-preview{max-width:80px;max-height:60px;object-fit:contain;border-radius:6px;border:1px solid #e5e7eb}.error-message{display:flex;align-items:center;gap:.75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:.875rem 1rem;color:#dc2626;margin-bottom:1.5rem;font-size:.875rem}.error-message svg{flex-shrink:0}.upload-actions{text-align:center}.process-button{background:#6366f1;color:#fff;border:none;padding:.75rem 2rem;font-size:.9375rem;font-weight:500;border-radius:10px;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem}.process-button:hover:not(:disabled){background:#4f46e5}.process-button:disabled{opacity:.5;cursor:not-allowed}.process-button svg{width:18px;height:18px}body.dark-mode .upload-card{background:#1e293b;border-color:#334155}body.dark-mode .upload-header h1{color:#f1f5f9}body.dark-mode .upload-header p{color:#94a3b8}body.dark-mode .dropzone-label h3{color:#e2e8f0}body.dark-mode .dropzone-label .optional-tag{color:#64748b}body.dark-mode .dropzone-label-icon{color:#94a3b8}body.dark-mode .dropzone{background:#0f172a;border-color:#475569}body.dark-mode .dropzone:hover{background:#1e1b4b;border-color:#6366f1}body.dark-mode .dropzone-has-file{background:#064e3b;border-color:#10b981}body.dark-mode .dropzone-icon{color:#64748b}body.dark-mode .dropzone:hover .dropzone-icon{color:#818cf8}body.dark-mode .dropzone-text{color:#e2e8f0}body.dark-mode .dropzone-hint{color:#64748b}body.dark-mode .file-name{color:#f1f5f9}body.dark-mode .file-meta{color:#94a3b8}body.dark-mode .logo-preview{border-color:#475569}body.dark-mode .error-message{background:#450a0a;border-color:#7f1d1d;color:#fca5a5}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.help-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.help-dialog{background:#fff;border-radius:16px;width:100%;max-width:600px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 50px #0003;animation:dialogSlideIn .2s ease-out}@keyframes dialogSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.help-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb}.help-dialog-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#111827}.help-dialog-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:8px;color:#6b7280;cursor:pointer;transition:all .15s ease}.help-dialog-close:hover{background:#f3f4f6;color:#374151}.help-dialog-content{flex:1;overflow-y:auto;padding:1.5rem}.help-section{margin-bottom:1.5rem}.help-section:last-child{margin-bottom:0}.help-section h3{font-size:.9375rem;font-weight:600;color:#111827;margin:0 0 .625rem}.help-section p{font-size:.875rem;color:#4b5563;line-height:1.6;margin:0 0 .5rem}.help-section ul{margin:0;padding-left:1.25rem}.help-section li{font-size:.875rem;color:#4b5563;line-height:1.6;margin-bottom:.375rem}.help-section li:last-child{margin-bottom:0}.help-icon-list{display:flex;flex-direction:column;gap:.75rem}.help-icon-item{display:flex;align-items:flex-start;gap:.75rem}.help-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#f3f4f6;border-radius:8px;color:#6366f1;flex-shrink:0}.help-icon-item span:last-child{font-size:.875rem;color:#4b5563;line-height:1.5;padding-top:.25rem}.help-dialog-footer{padding:1rem 1.5rem;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end}.help-dialog-btn{padding:.625rem 1.5rem;background:#6366f1;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s ease}.help-dialog-btn:hover{background:#4f46e5}body.dark-mode .help-dialog{background:#1e293b}body.dark-mode .help-dialog-header{border-bottom-color:#334155}body.dark-mode .help-dialog-header h2{color:#f1f5f9}body.dark-mode .help-dialog-close{color:#94a3b8}body.dark-mode .help-dialog-close:hover{background:#334155;color:#e2e8f0}body.dark-mode .help-section h3{color:#f1f5f9}body.dark-mode .help-section p,body.dark-mode .help-section li,body.dark-mode .help-icon-item span:last-child{color:#94a3b8}body.dark-mode .help-icon{background:#334155;color:#818cf8}body.dark-mode .help-dialog-footer{border-top-color:#334155}.dashboard-container{max-width:1400px;margin:0 auto;background:#fff;border-radius:16px;padding:2rem;box-shadow:0 20px 60px #0000004d}.dashboard-modern{min-height:100vh;background:#f8fafc}.dashboard-modern .dashboard-content{max-width:1600px;margin:0 auto;padding:1.5rem 2rem 2rem}.top-toolbar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 2rem;background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:100}.toolbar-left{display:flex;align-items:center;gap:.75rem}.toolbar-logo{height:36px;max-width:160px;object-fit:contain}.toolbar-title-container{position:relative}.toolbar-title-container.has-menu{cursor:pointer}.toolbar-title{display:flex;align-items:center;gap:.25rem;font-size:1.125rem;font-weight:600;color:#111827;letter-spacing:-.01em}.toolbar-title-arrow{display:flex;align-items:center;opacity:.5;transition:opacity .15s ease}.toolbar-title-container.has-menu:hover .toolbar-title-arrow{opacity:1}.toolbar-dashboard-menu{position:absolute;top:100%;left:0;padding-top:.25rem;z-index:100}.toolbar-dashboard-menu button{display:block;width:100%;padding:.5rem 1rem;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:.875rem;text-align:left;cursor:pointer;transition:background .15s ease;box-shadow:0 4px 12px #0000001a;white-space:nowrap}.toolbar-dashboard-menu button:hover{background:#f3f4f6}.toolbar-nav{display:flex;align-items:center;gap:.25rem;background:#f3f4f6;padding:.25rem;border-radius:8px}.toolbar-nav-item{padding:.5rem 1rem;border:none;background:transparent;color:#6b7280;font-size:.875rem;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.toolbar-nav-item:hover{color:#374151;background:#ffffff80}.toolbar-nav-item.active{background:#fff;color:#111827;box-shadow:0 1px 3px #00000014}.toolbar-right{display:flex;align-items:center;gap:.25rem}.toolbar-date-range{font-size:.8125rem;color:#6b7280;padding:.375rem .75rem;background:#f3f4f6;border-radius:6px;margin-right:.5rem;white-space:nowrap}.toolbar-icon-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;border-radius:8px;color:#6b7280;cursor:pointer;transition:all .15s ease;position:relative}.toolbar-icon-btn:hover{background:#f3f4f6;color:#374151}.toolbar-icon-btn.active{background:#eff6ff;color:#3b82f6}.toolbar-icon-btn .filter-indicator{position:absolute;top:8px;right:8px;width:8px;height:8px;background:#3b82f6;border-radius:50%;border:2px solid white}.toolbar-divider{width:1px;height:24px;background:#e5e7eb;margin:0 .5rem}.toolbar-export-container{position:relative}.toolbar-export-menu{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 10px 25px #0000001a;min-width:180px;overflow:hidden;z-index:200}.toolbar-export-menu button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;border:none;background:transparent;color:#374151;font-size:.875rem;cursor:pointer;transition:background .15s ease;text-align:left}.toolbar-export-menu button:hover{background:#f9fafb}.toolbar-export-menu button svg{color:#6b7280}.filter-panel{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;background:#fff;border-bottom:1px solid transparent}.filter-panel.open{max-height:400px;border-bottom-color:#e5e7eb}.filter-panel .date-range-filter,.filter-panel .instructor-filter{max-width:1600px;margin:0 auto;padding:1.25rem 2rem;border:none;border-radius:0;background:transparent}.filter-panel .date-range-filter h3,.filter-panel .instructor-filter h3{color:#374151;font-size:1rem;font-weight:600;margin-bottom:1rem}body.dark-mode,body.dark-mode .dashboard-modern{background:#0f172a}body.dark-mode .top-toolbar{background:#1e293b;border-bottom-color:#334155}body.dark-mode .toolbar-title{color:#f1f5f9}body.dark-mode .toolbar-dashboard-menu button{background:#1e293b;border-color:#334155;color:#e2e8f0}body.dark-mode .toolbar-dashboard-menu button:hover{background:#334155}body.dark-mode .toolbar-date-range{background:#334155;color:#94a3b8}body.dark-mode .toolbar-icon-btn{color:#94a3b8}body.dark-mode .toolbar-icon-btn:hover{background:#334155;color:#e2e8f0}body.dark-mode .toolbar-icon-btn.active{background:#1e3a5f;color:#60a5fa}body.dark-mode .toolbar-divider,body.dark-mode .toolbar-nav{background:#334155}body.dark-mode .toolbar-nav-item{color:#94a3b8}body.dark-mode .toolbar-nav-item:hover{color:#e2e8f0;background:#ffffff1a}body.dark-mode .toolbar-nav-item.active{background:#475569;color:#f1f5f9;box-shadow:none}body.dark-mode .toolbar-export-menu{background:#1e293b;border-color:#334155}body.dark-mode .toolbar-export-menu button{color:#e2e8f0}body.dark-mode .toolbar-export-menu button:hover{background:#334155}body.dark-mode .filter-panel{background:#1e293b;border-bottom-color:transparent}body.dark-mode .filter-panel.open{border-bottom-color:#334155}body.dark-mode .filter-panel .date-range-filter h3,body.dark-mode .filter-panel .instructor-filter h3{color:#e2e8f0}.dashboard-header{text-align:center;padding-bottom:2rem;border-bottom:2px solid #eee;margin-bottom:2rem;position:relative}.logo-container{margin-bottom:1.5rem}.company-logo{max-width:200px;max-height:100px;object-fit:contain}.date-range h2{color:#333;font-size:1.8rem;margin-bottom:.5rem}.date-range-text{color:#667eea;font-size:1.3rem;font-weight:600}.date-range-note{color:#999;font-size:1rem;font-style:italic}.reset-button{position:absolute;top:0;right:0;background:#f5f5f5;color:#333;border:2px solid #ddd;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .3s ease}.reset-button:hover{background:#667eea;color:#fff;border-color:#667eea}.summary-metrics-card{display:flex;justify-content:space-between;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem 2rem;margin-bottom:2rem}.summary-metric{display:flex;flex-direction:column;align-items:flex-start}.summary-metric .metric-value{font-size:2.25rem;font-weight:700;color:#111827;line-height:1.2}.summary-metric .metric-label{font-size:.875rem;font-weight:500;color:#6b7280;margin-top:.25rem}body.dark-mode .summary-metrics-card{background:#1e293b;border-color:#334155}body.dark-mode .summary-metric .metric-value{color:#f1f5f9}body.dark-mode .summary-metric .metric-label{color:#94a3b8}.charts-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:2rem}.chart-container{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px #0000000d;border:1px solid #e5e7eb}.chart-title{color:#333;font-size:1.3rem;margin-bottom:1rem;text-align:center}.chart-empty{text-align:center;color:#999;padding:4rem 2rem;font-size:1.1rem}.chart-placeholder{background:#fff;border-radius:12px;padding:3rem;box-shadow:0 1px 3px #0000000d;border:1px solid #e5e7eb;text-align:center;grid-column:1 / -1}.chart-placeholder h3{color:#374151;font-size:1.25rem;margin-bottom:.5rem}.chart-placeholder p{color:#6b7280;font-size:.9375rem}.charts-grid-row{display:grid;grid-template-columns:1fr 1fr;gap:2rem;grid-column:1 / -1}@media (max-width: 1200px){.charts-grid-row{grid-template-columns:1fr}}.chart-scrollable{display:flex;flex-direction:column}.chart-header-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.chart-header-row .chart-title{margin-bottom:.25rem}.chart-header-row .chart-subtitle{margin-bottom:0}.chart-toggle-btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;padding:.375rem .75rem;font-size:.8125rem;color:#374151;cursor:pointer;white-space:nowrap;transition:all .15s ease}.chart-toggle-btn:hover{background:#e5e7eb;border-color:#9ca3af}.chart-scroll-area{flex:1;overflow-y:auto;border-radius:8px}.chart-scroll-area::-webkit-scrollbar{width:8px}.chart-scroll-area::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.chart-scroll-area::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.chart-scroll-area::-webkit-scrollbar-thumb:hover{background:#94a3b8}body.dark-mode .chart-placeholder{background:#1e293b;border-color:#334155}body.dark-mode .chart-placeholder h3{color:#f1f5f9}body.dark-mode .chart-placeholder p{color:#94a3b8}.chart-subtitle{text-align:center;color:#666;font-size:.9rem;margin-top:-.5rem;margin-bottom:1rem}.scrollable-chart-wrapper{max-height:400px;overflow-y:auto;overflow-x:hidden;border:1px solid #e0e0e0;border-radius:8px;padding-right:5px}.scrollable-chart-wrapper::-webkit-scrollbar{width:8px}.scrollable-chart-wrapper::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.scrollable-chart-wrapper::-webkit-scrollbar-thumb{background:#667eea;border-radius:4px}.scrollable-chart-wrapper::-webkit-scrollbar-thumb:hover{background:#5568d8}.instructor-detail-table{margin-top:2rem;padding:1.5rem;background:#fff;border:2px solid #667eea;border-radius:8px}.instructor-detail-table h4{display:flex;justify-content:space-between;align-items:center;color:#333;font-size:1.1rem;margin-bottom:.5rem}.close-detail-btn{padding:.4rem 1rem;background:#f5f5f5;color:#666;border:2px solid #ddd;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .3s ease}.close-detail-btn:hover{background:#ff6b6b;color:#fff;border-color:#ff6b6b}.detail-summary{color:#666;font-size:.9rem;margin-bottom:1rem}.table-wrapper{max-height:300px;overflow-y:auto}.instructor-detail-table table{width:100%;border-collapse:collapse}.instructor-detail-table th,.instructor-detail-table td{padding:.75rem;text-align:left;border-bottom:1px solid #eee}.instructor-detail-table th{background:#667eea;color:#fff;font-weight:600;position:sticky;top:0}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s ease}.sortable-header:hover{background:#5568d8}.heatmap-wrapper{overflow-x:auto;margin:1rem 0}.heatmap-table{width:100%;border-collapse:collapse;font-size:.85rem}.heatmap-header-cell{background:#667eea;color:#fff;font-weight:600;padding:.5rem;text-align:center;min-width:50px}.heatmap-time-cell{background:#f5f5f5;font-weight:600;padding:.4rem .6rem;text-align:right;white-space:nowrap;font-size:.8rem}.heatmap-cell{padding:.4rem;text-align:center;font-size:.8rem;font-weight:500;border:1px solid #fff;min-width:45px;transition:transform .1s ease}.heatmap-cell:hover{transform:scale(1.1);z-index:1;box-shadow:0 2px 8px #0003}.heatmap-legend{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;font-size:.85rem;color:#666}.legend-scale{display:flex;gap:2px}.legend-scale div{width:30px;height:16px;border-radius:2px}.heatmap-cell-clickable{cursor:pointer}.heatmap-cell-selected{outline:3px solid #ff7300;outline-offset:-2px}.heatmap-detail-table{margin-top:2rem;padding:1.5rem;background:#fff;border:2px solid #667eea;border-radius:8px}.heatmap-detail-table h4{display:flex;justify-content:space-between;align-items:center;color:#333;font-size:1.1rem;margin-bottom:.5rem}.heatmap-detail-table table{width:100%;border-collapse:collapse}.heatmap-detail-table th,.heatmap-detail-table td{padding:.75rem;text-align:left;border-bottom:1px solid #eee}.heatmap-detail-table th{background:#667eea;color:#fff;font-weight:600;position:sticky;top:0}.heatmap-detail-table tr:hover{background:#f5f5f5}.heatmap-detail-table td:last-child{text-align:center;font-weight:600}.instructor-detail-table tr:hover{background:#f5f5f5}.instructor-detail-table td:last-child{text-align:center;font-weight:600}.no-data{text-align:center;padding:4rem 2rem}.no-data h2{color:#333;font-size:2rem;margin-bottom:1rem}.no-data p{color:#666;font-size:1.1rem}@media (max-width: 768px){.app{padding:1rem}.upload-container,.dashboard-container{padding:1.5rem}.upload-header h1{font-size:2rem}.upload-dropzones,.charts-section{grid-template-columns:1fr}.summary-metrics-card{flex-wrap:wrap;gap:1.5rem;padding:1.25rem 1.5rem}.summary-metric{flex:1 1 40%;min-width:120px}.summary-metric .metric-value{font-size:1.75rem}.reset-button{position:static;display:block;margin:1rem auto 0}.dashboard-header{padding-bottom:1rem}}.filters-row{display:grid;grid-template-columns:1fr 1fr auto;gap:1.5rem;margin-bottom:2rem;align-items:start}.export-button-container{position:relative}.export-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 10px #667eea4d;white-space:nowrap}.export-button:hover{transform:translateY(-2px);box-shadow:0 6px 15px #667eea80}.export-menu{position:absolute;top:100%;right:0;margin-top:.5rem;background:#fff;border:2px solid #667eea;border-radius:8px;box-shadow:0 4px 15px #00000026;z-index:100;overflow:hidden}.export-menu button{display:block;width:100%;padding:.75rem 1.5rem;background:#fff;border:none;text-align:left;font-size:.95rem;cursor:pointer;transition:background .2s ease;white-space:nowrap}.export-menu button:hover{background:#f0f0ff}.export-menu button:not(:last-child){border-bottom:1px solid #eee}.chart-controls{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1rem}.chart-controls label{font-weight:600;color:#333}.chart-controls select{padding:.5rem 1rem;border:2px solid #ddd;border-radius:6px;font-size:.95rem;cursor:pointer;transition:border-color .3s ease}.chart-controls select:focus{outline:none;border-color:#667eea}.date-presets{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:1rem}.preset-button{padding:.375rem .625rem;background:#fff;border:1px solid #e5e7eb;border-radius:6px;font-size:.75rem;font-weight:500;color:#4b5563;cursor:pointer;transition:all .15s ease}.preset-button:hover{background:#6366f1;color:#fff;border-color:#6366f1}.header-actions{display:flex;align-items:center;gap:1rem}.dark-mode-toggle{background:#f5f5f5;border:2px solid #ddd;border-radius:8px;padding:.5rem .75rem;font-size:1.2rem;cursor:pointer;transition:all .3s ease}.dark-mode-toggle:hover{background:#667eea;border-color:#667eea}body.dark-mode{background:linear-gradient(135deg,#1a1a2e,#16213e)}body.dark-mode .upload-container,body.dark-mode .dashboard-container{background:#1e1e2f;color:#e0e0e0}body.dark-mode .date-range-filter,body.dark-mode .instructor-filter{background:#252538;border-color:#667eea}body.dark-mode .date-range-filter h3,body.dark-mode .instructor-filter h3{color:#a0a0ff}body.dark-mode .filter-input-group label{color:silver}body.dark-mode .filter-input-group input[type=date],body.dark-mode .instructor-select,body.dark-mode .chart-controls select{background:#1e1e2f;border-color:#444;color:#e0e0e0}body.dark-mode .preset-button{background:#2a2a40;border-color:#444;color:silver}body.dark-mode .preset-button:hover{background:#667eea;color:#fff}body.dark-mode .secondary-button{background:#2a2a40;border-color:#444;color:silver}body.dark-mode .secondary-button:hover{background:#667eea;color:#fff}body.dark-mode .reset-filter-button{background:#2a2a40;border-color:#444;color:silver}body.dark-mode .reset-filter-button:hover:not(:disabled){background:#ff6b6b;color:#fff}body.dark-mode .filter-status{background:#2a2a50;color:silver}body.dark-mode .chart-container{background:#1e293b;border-color:#334155}body.dark-mode .chart-title{color:#e0e0e0}body.dark-mode .chart-subtitle{color:#a0a0a0}body.dark-mode .chart-toggle-btn{background:#334155;border-color:#475569;color:#e2e8f0}body.dark-mode .chart-toggle-btn:hover{background:#475569;border-color:#64748b}body.dark-mode .chart-scroll-area::-webkit-scrollbar-track{background:#1e293b}body.dark-mode .chart-scroll-area::-webkit-scrollbar-thumb{background:#475569}body.dark-mode .chart-scroll-area::-webkit-scrollbar-thumb:hover{background:#64748b}body.dark-mode .instructor-detail-table,body.dark-mode .heatmap-detail-table{background:#1e1e2f;border-color:#667eea}body.dark-mode .instructor-detail-table h4,body.dark-mode .heatmap-detail-table h4{color:#e0e0e0}body.dark-mode .detail-summary{color:#a0a0a0}body.dark-mode .instructor-detail-table th,body.dark-mode .heatmap-detail-table th{background:#667eea}body.dark-mode .instructor-detail-table td,body.dark-mode .heatmap-detail-table td{border-color:#333;color:silver}body.dark-mode .instructor-detail-table tr:hover,body.dark-mode .heatmap-detail-table tr:hover{background:#2a2a40}body.dark-mode .close-detail-btn{background:#2a2a40;border-color:#444;color:silver}body.dark-mode .heatmap-time-cell{background:#2a2a40;color:silver}body.dark-mode .heatmap-legend{color:#a0a0a0}body.dark-mode .export-menu{background:#252538;border-color:#667eea}body.dark-mode .export-menu button{background:#252538;color:#e0e0e0}body.dark-mode .export-menu button:hover{background:#2a2a50}body.dark-mode .export-menu button:not(:last-child){border-color:#333}body.dark-mode .reset-button{background:#2a2a40;border-color:#444;color:silver}body.dark-mode .reset-button:hover{background:#667eea;color:#fff;border-color:#667eea}body.dark-mode .dark-mode-toggle{background:#2a2a40;border-color:#444}body.dark-mode .dark-mode-toggle:hover{background:#667eea}body.dark-mode .dashboard-header{border-color:#333}body.dark-mode .date-range h2{color:#e0e0e0}body.dark-mode .scrollable-chart-wrapper{border-color:#444}body.dark-mode .scrollable-chart-wrapper::-webkit-scrollbar-track{background:#2a2a40}body.dark-mode .scrollable-chart-wrapper::-webkit-scrollbar-thumb{background:#667eea}.peak-hours-charts{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.peak-hours-section h4{text-align:center;color:#333;font-size:1rem;margin-bottom:.5rem}.insights-recommendations{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1rem}.recommendation-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.4rem .8rem;border-radius:20px;font-size:.85rem;font-weight:500}.comparison-instructor-selector{margin-bottom:1rem}.instructor-chips{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.instructor-chip{padding:.35rem .7rem;background:#f5f5f5;border:2px solid #ddd;border-radius:20px;font-size:.8rem;cursor:pointer;transition:all .2s ease}.instructor-chip:hover{border-color:#667eea;background:#f0f0ff}.instructor-chip.selected{color:#fff}.more-instructors{padding:.35rem .7rem;color:#666;font-size:.8rem;font-style:italic}.comparison-charts{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.comparison-section h4{text-align:center;color:#333;font-size:1rem;margin-bottom:.5rem}.comparison-placeholder{text-align:center;color:#666;padding:3rem;background:#f9f9f9;border-radius:8px;border:2px dashed #ddd}.comparison-table-wrapper{max-height:280px;overflow-y:auto}.comparison-table{width:100%;border-collapse:collapse;font-size:.85rem}.comparison-table th,.comparison-table td{padding:.5rem;text-align:left;border-bottom:1px solid #eee}.comparison-table th{background:#667eea;color:#fff;font-weight:600;position:sticky;top:0}.comparison-table tr{border-left:4px solid transparent}.underperforming-table{margin-top:1rem;max-height:200px;overflow-y:auto}.underperforming-table table{width:100%;border-collapse:collapse;font-size:.85rem}.underperforming-table th,.underperforming-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #eee}.underperforming-table th{background:#667eea;color:#fff;font-weight:600;position:sticky;top:0}.underperforming-table tr:hover{background:#f5f5f5}body.dark-mode .peak-hours-section h4,body.dark-mode .comparison-section h4{color:#e0e0e0}body.dark-mode .recommendation-badge{background:linear-gradient(135deg,#667eea,#764ba2)}body.dark-mode .instructor-chip{background:#2a2a40;border-color:#444;color:silver}body.dark-mode .instructor-chip:hover{background:#3a3a50;border-color:#667eea}body.dark-mode .comparison-placeholder{background:#252538;border-color:#444;color:#a0a0a0}body.dark-mode .comparison-table td,body.dark-mode .underperforming-table td{border-color:#333;color:silver}body.dark-mode .comparison-table tr:hover,body.dark-mode .underperforming-table tr:hover{background:#2a2a40}body.dark-mode .more-instructors{color:#a0a0a0}@media (max-width: 900px){.peak-hours-charts,.comparison-charts{grid-template-columns:1fr}}.date-range-filter{background:#fff;border:2px solid #667eea;border-radius:12px;padding:1.5rem}.date-range-filter h3{color:#667eea;font-size:1.2rem;margin-bottom:1rem}.filter-controls{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-end}.filter-controls-vertical{display:flex;flex-direction:column;gap:1rem;max-width:400px}.filter-dates-row{display:flex;gap:.75rem;align-items:flex-end}.filter-dates-row .filter-input-group{flex:0 0 auto}.filter-input-group{display:flex;flex-direction:column;gap:.35rem}.filter-input-group label{color:#6b7280;font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.filter-input-group input[type=date]{padding:.5rem .75rem;border:1px solid #e5e7eb;border-radius:6px;font-size:.875rem;color:#374151;background:#f9fafb;transition:all .15s ease;width:145px}.filter-input-group input[type=date]:hover{border-color:#d1d5db}.filter-input-group input[type=date]:focus{outline:none;border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f11a}.filter-actions{display:flex;gap:.5rem}.apply-button,.reset-filter-button{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s ease}.apply-button{background:#6366f1;color:#fff}.apply-button:hover{background:#4f46e5}.reset-filter-button{background:transparent;color:#6b7280;border:1px solid #e5e7eb}.reset-filter-button:hover:not(:disabled){background:#f3f4f6;color:#374151;border-color:#d1d5db}.reset-filter-button:disabled{opacity:.4;cursor:not-allowed}.filter-status{margin-top:.75rem;padding:.5rem .75rem;background:#f0f9ff;border-left:3px solid #6366f1;border-radius:4px;color:#374151;font-size:.8125rem;font-weight:500}@media (max-width: 768px){.filters-row{grid-template-columns:1fr}.export-button-container{justify-self:stretch}.export-button{width:100%}.export-menu{left:0;right:0}.filter-controls{flex-direction:column;align-items:stretch}.filter-dates-row{flex-direction:column}.filter-input-group{width:100%}.filter-actions,.filter-buttons-row{flex-direction:column}.apply-button,.reset-filter-button,.secondary-button{width:100%}}.instructor-filter{background:#fff;border:2px solid #667eea;border-radius:12px;padding:1.5rem}.instructor-filter h3{color:#667eea;font-size:1.2rem;margin-bottom:1rem}.filter-buttons-row{display:flex;flex-wrap:wrap;gap:.5rem}.instructor-select{width:100%;padding:.25rem;border:2px solid #ddd;border-radius:8px;font-size:.9rem;font-family:inherit;background:#fafafa;transition:border-color .3s ease;cursor:pointer;line-height:1.2}.instructor-select:focus{outline:none;border-color:#667eea;background:#fff}.instructor-select option{padding:.15rem .5rem;cursor:pointer}.instructor-select option:hover,.instructor-select option:checked{background:#667eea;color:#fff}.secondary-button{padding:.5rem .875rem;background:#fff;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s ease}.secondary-button:hover{background:#f3f4f6;color:#374151;border-color:#d1d5db}@media print{body{background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.app{padding:0!important}.dashboard-container{max-width:100%!important;box-shadow:none!important;padding:1rem!important}.filters-row,.export-button-container,.reset-button,.dark-mode-toggle,.header-actions,.chart-controls,.close-detail-btn,.instructor-detail-table,.heatmap-detail-table{display:none!important}.charts-section{display:block!important;page-break-inside:auto}.chart-container{page-break-inside:avoid;break-inside:avoid;margin-bottom:1.5rem;box-shadow:none!important;border:1px solid #ddd}.summary-metrics-card{display:flex!important;gap:1rem!important;margin-bottom:1.5rem;border:1px solid #ddd}.recharts-wrapper{page-break-inside:avoid}.chart-title,.chart-subtitle{color:#333!important}.table-wrapper{max-height:none!important;overflow:visible!important}@page{margin:.5in;size:letter portrait}}body.printing .filters-row,body.printing .export-button-container,body.printing .reset-button,body.printing .dark-mode-toggle,body.printing .header-actions{opacity:.3}
