*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{margin:0 auto;max-width:1200px;padding:20px}.card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px;padding:20px}.login-container{animation:gradientShift 15s ease infinite;background:linear-gradient(135deg,#667eea,#764ba2 50%,#f093fb);background-size:400% 400%;overflow:hidden;position:relative}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.login-container:before{animation:float 20s linear infinite;background:radial-gradient(circle,#ffffff1a 1px,#0000 0);background-size:50px 50px;height:200%;left:-50%;top:-50%;width:200%}.login-container:after,.login-container:before{content:"";pointer-events:none;position:absolute}.login-container:after{background:url("data:image/svg+xml;charset=utf-8,%3Csvg width='100' height='100' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3Cpattern id='a' width='100' height='100' patternUnits='userSpaceOnUse'%3E%3Cpath d='M100 0H0v100' fill='none' stroke='rgba(255,255,255,0.05)'/%3E%3C/pattern%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M0 0h100v100H0z'/%3E%3C/svg%3E");bottom:0;left:0;opacity:.3;right:0;top:0}.login-card{animation:slideUp .6s ease-out;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border-radius:24px;box-shadow:0 20px 60px #0000004d,0 0 0 1px #ffffff80;max-width:480px;padding:3rem;position:relative;z-index:1}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{margin-bottom:2.5rem}.login-header .logo{align-items:center;animation:pulse 2s ease-in-out infinite;border-radius:20px;box-shadow:0 10px 30px #667eea4d;display:flex;font-size:2.5rem;height:80px;justify-content:center;margin:0 auto 1.5rem;width:80px}.login-header .logo,.login-header h1{background:linear-gradient(135deg,#667eea,#764ba2)}.login-header h1{-webkit-text-fill-color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.75rem;font-weight:700;line-height:1.3;margin:0 0 .5rem}.login-header .subtitle{color:#6b7280;font-size:.95rem;font-weight:500;margin:0}.form-group{margin-bottom:1.5rem}.form-group label{color:#374151;font-size:.875rem;font-weight:600;letter-spacing:.5px;margin-bottom:.5rem;text-transform:uppercase}.form-control{background:#fff;border:2px solid #e5e7eb;border-radius:12px;box-sizing:border-box;color:#1f2937;font-size:1rem;padding:.875rem 1.25rem;transition:all .3s ease}.form-control:focus{border-color:#667eea;box-shadow:0 0 0 4px #667eea1a;transform:translateY(-1px)}.form-control::placeholder{color:#9ca3af}.form-group:has(.form-control:focus) label{color:#667eea}.form-group:has(input[id=code]){display:flex;flex-direction:column;gap:.75rem}.verification-group{display:flex;gap:.75rem}.verification-group .form-control{flex:1 1}.btn{display:inline-flex;gap:.5rem;justify-content:center;padding:.875rem 1.5rem;white-space:nowrap}.btn-secondary{border:2px solid #e5e7eb;color:#374151}.btn-secondary:hover:not(:disabled){background:#e5e7eb;border-color:#d1d5db;box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.btn-primary{box-shadow:0 4px 15px #667eea66;font-size:1rem;padding:1rem;width:100%}.btn-primary:hover:not(:disabled){box-shadow:0 8px 25px #667eea80}.btn-primary:active:not(:disabled){transform:translateY(0)}.login-btn{margin-top:.5rem}.role-selector{background:#f9fafb;border-radius:12px;display:flex;gap:.75rem;margin-bottom:1.5rem;padding:.5rem}.role-option{background:#fff;border:2px solid #0000;border-radius:8px;color:#6b7280;cursor:pointer;flex:1 1;font-weight:600;padding:.75rem 1rem;text-align:center;transition:all .3s ease}.role-option:hover{border-color:#e5e7eb;color:#374151}.role-option.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;box-shadow:0 4px 12px #667eea4d;color:#fff}.role-option .role-icon{display:block;font-size:1.5rem;margin-bottom:.25rem}.role-option .role-label{font-size:.875rem}.login-info{border-top:1px solid #e5e7eb;margin-top:2rem;padding-top:2rem}.login-info h3{font-weight:600;letter-spacing:.5px;margin:0 0 1rem;text-transform:uppercase}.login-info h3,.login-info li{color:#6b7280;font-size:.875rem}.login-info li{line-height:1.6}.login-info li:before{color:#10b981}@media (max-width:640px){.login-container{padding:1rem}.login-card{border-radius:20px;padding:2rem 1.5rem}.login-header h1{font-size:1.5rem}.login-header .logo{font-size:2rem;height:64px;width:64px}}.btn-primary:disabled:after{animation:spin .6s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;content:"";height:16px;margin-left:.5rem;width:16px}.skeleton-detector{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 20px #00000014;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;margin-bottom:24px;overflow:hidden;padding:24px;position:relative;transition:all .3s ease}.skeleton-detector:before{animation:gradient-shift 3s ease infinite;background:linear-gradient(90deg,#3b82f6,#8b5cf6,#06b6d4);background-size:200% 100%;content:"";height:4px;left:0;position:absolute;right:0;top:0}.detector-header{border-bottom:1px solid #e2e8f0;margin-bottom:24px;padding-bottom:16px}.detector-header h3{align-items:center;color:#1e293b;display:flex;font-size:20px;font-weight:600;gap:10px}.detector-header h3:before{content:"🦴";font-size:24px}.detector-status{align-items:flex-end;flex-direction:column;gap:10px}.status-indicator{align-items:center;box-shadow:0 2px 8px #0000001a;display:flex;font-size:13px;font-weight:600;gap:6px;padding:6px 16px;transition:all .3s ease}.status-indicator.loaded{background-color:#ecfdf5;border:1px solid #a7f3d0;color:#047857}.status-indicator.loaded:before{content:"✅"}.status-indicator.loading{background-color:#fef3c7;border:1px solid #fde68a;color:#92400e;overflow:hidden;position:relative}.status-indicator.loading:before{animation:pulse 1.5s ease-in-out infinite;content:"⏳"}.loading-progress{align-items:center;display:flex;gap:10px;width:120px}.progress-bar{background-color:#e5e7eb;flex:1 1;height:8px}.progress-bar,.progress-fill{border-radius:4px}.progress-text{color:#6b7280;font-size:13px}.detector-error{animation:error-shake .5s ease-in-out;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fca5a5;border-radius:8px;box-shadow:0 2px 10px #ef44441a;color:#b91c1c;gap:10px;margin-bottom:20px;padding:16px}@keyframes error-shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.error-icon{animation:error-pulse 1.5s ease-in-out infinite;font-size:18px}@keyframes error-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.detector-controls{flex-wrap:wrap;gap:16px;margin-bottom:24px}.btn{box-shadow:0 2px 8px #0000001a;gap:8px}.btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000)}.btn:disabled{transform:none!important}.btn:disabled:before{display:none}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626)}.btn-danger:hover:not(:disabled){box-shadow:0 4px 12px #ef44444d;transform:translateY(-2px)}.btn-secondary{background:linear-gradient(135deg,#6b7280,#4b5563)}.btn-secondary:hover:not(:disabled){box-shadow:0 4px 12px #6b72804d;transform:translateY(-2px)}.performance-mode{align-items:center;background-color:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:10px;margin-left:auto;padding:8px 16px}.performance-mode label{color:#475569;font-size:14px;font-weight:600}.performance-mode select{background-color:#fff;border:1px solid #cbd5e1;border-radius:6px;color:#334155;cursor:pointer;font-size:14px;font-weight:500;padding:8px 12px;transition:all .2s ease}.performance-mode select:hover{border-color:#94a3b8}.performance-mode select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.detection-stats{grid-gap:16px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:10px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:24px;padding:20px}.stat-item{background-color:#fff;box-shadow:0 2px 8px #0000000d;gap:6px;overflow:hidden;padding:16px;position:relative;transition:all .3s ease}.stat-item:before{background:linear-gradient(180deg,#3b82f6,#8b5cf6);content:"";height:100%;left:0;position:absolute;top:0;width:4px}.stat-item:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.stat-label{color:#64748b;font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.stat-value{align-items:baseline;color:#1e293b;display:flex;font-size:20px;gap:4px}.stat-value span{color:#64748b;font-size:14px;font-weight:500}.detector-info{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:10px;padding:20px}.detector-info h4{align-items:center;color:#0369a1;display:flex;font-size:16px;font-weight:600;gap:8px;margin:0 0 16px}.detector-info h4:before{content:"💡";font-size:18px}.detector-info ul{color:#0c4a6e;font-size:14px;line-height:1.6}.detector-info li{margin-bottom:8px;position:relative}.detector-info li::marker{color:#0ea5e9}@media (max-width:768px){.skeleton-detector{margin-bottom:16px;padding:16px}.detector-header{flex-direction:column;gap:12px}.detector-header,.detector-status{align-items:flex-start}.loading-progress{width:100%}.detector-controls{flex-direction:column;gap:12px}.btn{justify-content:center;width:100%}.performance-mode{justify-content:space-between;margin-left:0;width:100%}.detection-stats{gap:12px;grid-template-columns:repeat(2,1fr);padding:16px}.stat-item{padding:12px}.stat-value{font-size:18px}.detector-info{padding:16px}}@media (max-width:480px){.skeleton-detector{padding:12px}.detector-header h3{font-size:18px}.detector-header h3:before{font-size:20px}.detection-stats{grid-template-columns:1fr}.stat-value{font-size:16px}}.dark-theme .skeleton-detector{background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid #334155;color:#f1f5f9}.dark-theme .detector-header{border-bottom:1px solid #334155}.dark-theme .detector-header h3{color:#f1f5f9}.dark-theme .status-indicator.loaded{background-color:#064e3b;border:1px solid #047857;color:#6ee7b7}.dark-theme .status-indicator.loading{background-color:#451a03;border:1px solid #92400e;color:#fbbf24}.dark-theme .loading-progress{color:#f1f5f9}.dark-theme .progress-bar{background-color:#374151}.dark-theme .progress-text{color:#d1d5db}.dark-theme .detector-error{background:linear-gradient(135deg,#450a0a,#7f1d1d);border:1px solid #991b1b;color:#fca5a5}.dark-theme .btn-success{background:linear-gradient(135deg,#059669,#047857)}.dark-theme .btn-danger{background:linear-gradient(135deg,#dc2626,#b91c1c)}.dark-theme .btn-secondary{background:linear-gradient(135deg,#4b5563,#374151)}.dark-theme .performance-mode{background-color:#334155;border:1px solid #475569}.dark-theme .performance-mode label{color:#e2e8f0}.dark-theme .performance-mode select{background-color:#1e293b;border:1px solid #475569;color:#f1f5f9}.dark-theme .detection-stats{background:linear-gradient(135deg,#0f172a,#1e293b);border:1px solid #334155}.dark-theme .stat-item{background-color:#1e293b;border:1px solid #334155}.dark-theme .stat-label{color:#94a3b8}.dark-theme .stat-value{color:#f1f5f9}.dark-theme .stat-value span{color:#94a3b8}.dark-theme .detector-info{background:linear-gradient(135deg,#0c4a6e,#075985);border:1px solid #0369a1}.dark-theme .detector-info h4{color:#7dd3fc}.dark-theme .detector-info ul{color:#bae6fd}.dark-theme .detector-info li::marker{color:#38bdf8}.workspace-header{border-bottom:1px solid #eee;margin-bottom:15px;padding-bottom:10px}.workspace-header h3{font-size:18px;margin:0 0 8px}.homework-info{display:flex;flex-direction:column;gap:5px}.homework-title{color:#495057;font-size:14px;font-weight:600}.homework-description{color:#6c757d;font-size:12px;font-style:italic}.student-info{background-color:#f8f9fa;border-left:4px solid #4a6fdc;border-radius:4px;margin-bottom:15px;padding:10px}.skeleton-annotation-workspace{background-color:#f8f9fa;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;gap:15px;padding:20px}.video-container{margin-bottom:15px}.annotation-controls,.video-controls{gap:10px;margin-bottom:15px}.annotation-controls{flex-wrap:wrap}.skeleton-canvas-container{border-radius:4px;margin-bottom:15px}.skeleton-canvas{background-color:#fff}.skeleton-overlay-canvas{display:block}.scoring-controls{display:flex;gap:10px;margin-top:15px}.grid-controls{margin-left:auto}.btn{background-color:#4a6fdc;color:#fff;padding:8px 12px;transition:background-color .2s}.btn:hover{background-color:#3a5fc9}.btn:disabled{background-color:#ccc}.form-control{padding:8px}.course-video-annotation-workspace{background-color:#f8f9fa;border-radius:8px;padding:20px}.workspace-header{border-bottom:2px solid #e0e0e0;margin-bottom:20px;padding-bottom:15px}.workspace-header h3{color:#333;font-size:20px;margin:0}.annotated-badge{background-color:#28a745;border-radius:12px;color:#fff;font-size:12px;font-weight:600;padding:4px 12px}.workspace-content{flex-direction:column;gap:20px}.video-container{box-shadow:0 4px 8px #0000001a}.annotation-video{display:block;width:100%}.annotation-canvas{pointer-events:none}.course-video-annotation-workspace.manual-mode .annotation-canvas{cursor:crosshair;pointer-events:all}.course-video-annotation-workspace.manual-mode .annotation-canvas.dragging{cursor:grabbing!important}.course-video-annotation-workspace.manual-mode .annotation-canvas:hover{cursor:crosshair}.annotation-toolbar{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;gap:15px;padding:15px}.frame-navigation{background-color:#f8f9fa;border-radius:6px;gap:15px;justify-content:space-between;padding:12px}.frame-info,.frame-navigation{align-items:center;display:flex}.frame-info{flex:1 1;flex-direction:column;gap:4px}.frame-info span{color:#333;font-size:14px;font-weight:500}.frame-interval-hint{color:#666!important;font-size:12px!important;font-weight:400!important}.btn-nav{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;box-shadow:0 2px 4px #667eea4d;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .3s ease}.btn-nav:hover:not(:disabled){box-shadow:0 4px 8px #667eea66;transform:translateY(-2px)}.btn-nav:active:not(:disabled){transform:translateY(0)}.btn-nav:disabled{background:#ccc;box-shadow:none;cursor:not-allowed}.annotation-actions{align-items:center;display:flex;gap:10px}.btn{border-radius:6px;padding:10px 20px}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 4px #667eea4d}.btn-primary:hover:not(:disabled){box-shadow:0 4px 8px #667eea66;transform:translateY(-2px)}.btn-primary:disabled{background:#ccc;box-shadow:none}.btn-secondary:hover:not(:disabled){background-color:#5a6268}.btn-secondary:disabled{background-color:#ccc;cursor:not-allowed}.annotations-list{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:15px}.annotations-list h4{color:#333;font-size:16px;margin:0 0 15px}.annotations-list ul{list-style:none;margin:0;padding:0}.annotations-list li{background-color:#f8f9fa;border-radius:4px;color:#666;font-size:14px;margin-bottom:8px;padding:8px 12px}.scoring-panel{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-top:20px;padding:20px}.point-controls{background-color:#f8f9fa;border-radius:6px;flex-direction:column;margin-top:10px;padding:15px}.point-info{border-bottom:1px solid #e0e0e0;display:flex;flex-direction:column;gap:5px;padding-bottom:10px}.point-info strong{color:#333;font-size:14px}.hint-text{color:#666;font-size:12px;font-style:italic}.manual-mode-hint{background-color:#e7f3ff;border-left:3px solid #2196f3;border-radius:4px;color:#1976d2;font-size:13px;margin-top:10px;padding:10px 15px}.App{min-height:100vh}.App,.main-content{display:flex;flex-direction:column}.main-content{background-color:#f8f9fa;flex:1 1}.tab-navigation{background:#fff;border-bottom:1px solid #e8e8e8;box-shadow:0 2px 4px #0000000d;padding:0}.tab-container{display:flex;margin:0 auto;max-width:1400px;padding:0 2rem}.tab-button{align-items:center;border-bottom:3px solid #0000;color:#666;display:flex;font-size:1rem;font-weight:500;gap:.5rem;padding:1.25rem 1.5rem;position:relative;transition:all .2s ease}.tab-button:hover{background:#667eea0d;color:#667eea}.tab-button.active{border-bottom-color:#667eea;color:#667eea;font-weight:600}.tab-icon{font-size:1.2rem}.tab-badge{background:#ff4d4f;border-radius:10px;color:#fff;font-size:.75rem;font-weight:600;margin-left:.25rem;min-width:20px;padding:.15rem .4rem;text-align:center}.tab-content{margin:0 auto;max-width:1400px;padding:2rem;width:100%}.content-panel{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000000d;margin-bottom:2rem;overflow:hidden}.content-panel.full-page{background:#0000;border-radius:0;box-shadow:none;margin:0;padding:0}.content-header{background:#f8f9fa;border-bottom:1px solid #e8e8e8;padding:1.5rem 2rem}.content-header h2{color:#333;font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.content-header p{color:#666;font-size:1rem;margin:0}.content-body{padding:2rem}.btn-back{color:#667eea;font-size:.9rem}.btn-back:hover{color:#5a67d8;text-decoration:underline}.profile-selection-prompt{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000000d;padding:3rem 2rem;text-align:center}.prompt-icon{font-size:3rem;margin-bottom:1rem}.profile-selection-prompt h3{color:#333;font-size:1.5rem;margin:0 0 1rem}.profile-selection-prompt p{color:#666;font-size:1rem;line-height:1.6;margin:0 auto 2rem;max-width:500px}.header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;color:#fff;padding:0;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-stats{background:#fff;border-top:1px solid #e8e8e8;margin:0;padding:0}.header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1400px;padding:1rem 2rem}.header-left h1{font-size:1.8rem;font-weight:600;margin:0}.header-subtitle{font-size:.9rem;margin-top:.25rem;opacity:.9}.header-right{gap:1.5rem}.header-right,.teacher-info{align-items:center;display:flex}.teacher-info{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:30px;font-size:1rem;gap:.75rem;padding:.5rem 1rem}.teacher-avatar{align-items:center;background:#fff3;border-radius:50%;display:flex;font-size:1.5rem;height:40px;justify-content:center;width:40px}.teacher-details{display:flex;flex-direction:column}.teacher-name{font-size:1rem;font-weight:600}.teacher-department{font-size:.8rem;opacity:.8}.logout-btn{background:#ffffff26;border:1px solid #ffffff4d;border-radius:6px;color:#fff;font-weight:500;padding:.5rem 1rem;transition:all .2s ease}.logout-btn:hover{background:#ffffff40;transform:translateY(-1px)}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:2rem}.login-card{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000001a;max-width:500px;padding:2.5rem;width:100%}.login-header{margin-bottom:2rem;text-align:center}.login-header h1{color:#333;font-size:1.8rem;margin-bottom:.5rem}.login-header p{color:#666;font-size:1rem}.login-form{margin-bottom:2rem}.login-btn{font-size:1.1rem;margin-top:1rem;padding:12px;width:100%}.login-info{background:#f8f9fa;border-radius:8px;padding:1.5rem}.login-info h3{color:#333;font-size:1.1rem;margin-bottom:1rem}.login-info ul{list-style:none;margin:0;padding:0}.login-info li{color:#555;padding:.5rem 0 .5rem 1.5rem;position:relative}.login-info li:before{color:#28a745;content:"✓";font-weight:700;left:0;position:absolute}.test-data-section{border-top:1px solid #eaeaea;margin-top:30px;padding-top:20px}.test-data-section h3{color:#6c757d;font-size:16px;margin-bottom:10px}.test-data-section p{color:#6c757d;font-size:14px;margin-bottom:15px}.test-data-btn{background-color:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .3s}.test-data-btn:hover{background-color:#5a6268}.sidebar{background:#fff;border-right:1px solid #e9ecef;overflow-y:auto;padding:1.5rem;width:320px}.student-manager{width:350px}.teacher-overview{border-bottom:1px solid #e9ecef;margin-bottom:2rem;padding-bottom:1.5rem}.teacher-overview h3{color:#495057;font-size:1.2rem;margin:0 0 .5rem}.department{color:#6c757d;font-size:.9rem;margin-bottom:1rem}.stats-grid{grid-template-columns:1fr 1fr}.stat-item{border-radius:8px;padding:1rem}.stat-number{color:#667eea;font-size:1.5rem}.stat-label{color:#6c757d;font-size:.8rem}.filter-section,.search-section{margin-bottom:2rem}.filter-section h3,.search-section h3{color:#495057;font-size:1.1rem;margin-bottom:1rem}.filter-buttons{display:flex;flex-direction:column;gap:.5rem}.filter-btn{background:#fff;border:1px solid #e9ecef;border-radius:6px;color:#495057;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;text-align:left;transition:all .2s ease}.filter-btn.active{background:#667eea;border-color:#667eea;color:#fff}.filter-btn:hover:not(.active){background:#f8f9fa;border-color:#adb5bd}.students-list h3{color:#495057;font-size:1.1rem;margin-bottom:1rem}.student-cards{display:flex;flex-direction:column;gap:.75rem}.student-card{border:2px solid #e9ecef;border-radius:8px;padding:1rem;transition:all .2s ease}.student-card:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea33}.student-card.selected{background:#f0f2ff;border-color:#667eea}.student-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.student-name{font-weight:600}.student-status{border-radius:12px;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.status-annotated{background:#cce5ff;color:#004085}.status-scored{background:#d4edda;color:#155724}.student-info{color:#6c757d;margin-bottom:.5rem}.score-info,.student-info{display:flex;font-size:.8rem;justify-content:space-between}.score-info{margin-top:.5rem}.ai-score{color:#28a745}.teacher-score{color:#007bff}.quick-actions{border-top:1px solid #e9ecef;margin-top:2rem;padding-top:1.5rem}.quick-actions h3{color:#495057;font-size:1.1rem;margin-bottom:1rem}.workspace{flex:1 1;overflow-y:auto;padding:1.5rem}.skeleton-workspace{background:#f8f9fa}.workspace-header{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.workspace-title{color:#495057;font-size:1.5rem;margin:0}.workspace-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.workspace-actions button{border:none;border-radius:4px;cursor:pointer;font-weight:500;padding:8px 16px;transition:all .2s}.mode-toggle{background-color:#6c757d;color:#fff}.mode-toggle.manual{background-color:#17a2b8}.redo-btn,.undo-btn{background-color:#6c757d;color:#fff}.grid-snap-toggle{align-items:center;background-color:#f8f9fa;border:1px solid #ced4da;border-radius:4px;display:flex;padding:5px 10px}.grid-snap-toggle label{align-items:center;cursor:pointer;display:flex;gap:5px;margin:0}.grid-size-select{border:1px solid #ced4da;border-radius:4px;margin-left:10px;padding:2px 5px}.start-annotation-btn{background-color:#28a745;color:#fff}.save-annotation-btn{background-color:#007bff;color:#fff}.workspace-actions button:hover:not(:disabled){opacity:.9}.workspace-content{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}.annotation-section,.skeleton-section,.video-section{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.video-container{margin-bottom:1rem}.video-controls{gap:1rem;margin-top:1rem}.frame-slider{-webkit-appearance:none;background:#e9ecef;border-radius:3px;flex:1 1;height:6px;outline:none}.frame-slider::-webkit-slider-thumb{-webkit-appearance:none;background:#667eea;border-radius:50%;cursor:pointer;height:18px;width:18px}.frame-info{color:#6c757d;font-size:.9rem;min-width:60px}.skeleton-header{margin-bottom:1.5rem}.skeleton-header h3{color:#495057;margin:0 0 .5rem}.control-hint{color:#6c757d;font-size:.9rem;font-style:italic}.skeleton-canvas-container{text-align:center}.skeleton-info h4{color:#495057;margin-bottom:1rem}.skeleton-points{grid-gap:.5rem;gap:.5rem;grid-template-columns:1fr 1fr;max-height:200px}.skeleton-point{border-radius:6px;font-size:.8rem;padding:.5rem}.skeleton-point .point-coords,.skeleton-point .point-type{margin-bottom:.25rem}.annotation-section h3{color:#495057;margin-bottom:1rem}.no-annotations{color:#6c757d;font-style:italic;padding:2rem;text-align:center}.annotation-list{max-height:300px;overflow-y:auto}.annotation-item{background:#f8f9fa;border-radius:6px;margin-bottom:.75rem;padding:1rem}.annotation-header{display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:.5rem}.annotation-frame{color:#495057;font-weight:600}.annotation-time{color:#6c757d}.annotation-preview{color:#495057;font-size:.9rem}.scoring-modal{align-items:flex-start;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding:20px;position:fixed;right:0;top:0;z-index:1000}.scoring-content{background:#fff;border-radius:12px;margin:20px auto;max-height:none;max-width:95vw;overflow:visible;padding:2rem;position:relative;width:95%}.scoring-content h3{background:#fff;border-bottom:2px solid #e9ecef;color:#495057;margin-bottom:1.5rem;padding:1rem 0;position:-webkit-sticky;position:sticky;text-align:center;top:0;z-index:10}.basic-scoring{background:#f8f9fa;border-radius:8px;margin-bottom:2rem;padding:1.5rem}.score-display{gap:1rem}.ai-score,.teacher-score{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:8px;display:flex;justify-content:space-between;padding:1rem}.ai-score label,.teacher-score label{color:#495057;font-weight:600;min-width:120px}.score-value{background:#e8f5e8;color:#28a745;font-size:1.5rem;padding:.5rem 1rem}.motion-scoring{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin:2rem 0;padding:1.5rem}.scoring-actions{background:#fff;border-top:2px solid #e9ecef;bottom:0;gap:1rem;justify-content:center;margin-top:2rem;padding:1.5rem 0;position:-webkit-sticky;position:sticky}.btn{padding:8px 16px;transition:all .3s ease}.btn-primary{background-color:#007bff}.btn-primary:hover{background-color:#0056b3}.btn-primary:disabled,.btn-secondary{background-color:#6c757d}.btn-secondary:hover{background-color:#545b62}.btn-success:hover{background-color:#1e7e34}.btn-info:hover{background-color:#117a8b}.form-group label{color:#495057}.form-control{padding:8px 12px}@media (max-width:1200px){.workspace-content{grid-template-columns:1fr}.sidebar{width:300px}.student-manager{width:320px}}@media (max-width:768px){.main-content{flex-direction:column}.sidebar{order:2;width:100%}.workspace{order:1}.workspace-header{align-items:flex-start;flex-direction:column;gap:1rem}.workspace-actions{justify-content:space-between;width:100%}.header-content{flex-direction:column;gap:1rem;text-align:center}.teacher-info{flex-direction:column;gap:.5rem}}.skeleton-detector{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin:20px 0;padding:20px}.detector-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.detector-header h3{color:#333;margin:0}.detector-status{align-items:center;display:flex}.status-indicator{border-radius:20px;font-size:12px;font-weight:500;padding:6px 12px}.status-indicator.loaded{background:#d4edda;color:#155724}.status-indicator.loading{background:#fff3cd;color:#856404}.detector-error{align-items:center;background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;color:#721c24;display:flex;font-size:14px;margin:15px 0;padding:12px}.detector-controls{display:flex;gap:10px;margin-bottom:20px}.detection-stats{grid-gap:15px;background:#f8f9fa;border-radius:6px;display:grid;gap:15px;grid-template-columns:repeat(3,1fr);margin:20px 0;padding:15px}.stat-label{display:block;margin-bottom:5px}.stat-value{color:#007bff;font-size:18px}.detector-info{background:#e7f3ff;border:1px solid #b3d9ff;border-radius:6px;padding:15px}.detector-info h4{color:#004085;font-size:14px;margin:0 0 10px}.detector-info ul{color:#004085;font-size:13px;margin:0;padding-left:20px}.detector-info li{margin-bottom:5px}.skeleton-canvas-container{display:inline-block;margin-bottom:1.5rem}.skeleton-canvas{border:2px solid #e9ecef;border-radius:8px;display:block}.skeleton-overlay-canvas{border:2px solid #0000;border-radius:8px}.skeleton-points{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));max-height:300px;overflow-y:auto}.skeleton-point{background:#f8f9fa;border:2px solid #0000;border-radius:8px;cursor:pointer;font-size:.85rem;padding:.75rem;transition:all .2s ease}.skeleton-point:hover{background:#e9ecef;border-color:#667eea}.skeleton-point.selected{background:#667eea;border-color:#667eea;color:#fff}.skeleton-point .point-type{display:block;font-weight:600;margin-bottom:.5rem;text-transform:capitalize}.skeleton-point .point-coords{display:block;font-family:monospace;font-size:.8rem;margin-bottom:.5rem}.skeleton-point .point-confidence{color:#28a745;display:block;font-weight:500}.detector-panel{border-top:1px solid #e9ecef;margin-top:1.5rem;padding-top:1.5rem}.btn-danger{background-color:#dc3545}.btn-danger:hover{background-color:#c82333}.btn-success{background-color:#28a745}.btn-success:hover{background-color:#218838}.btn-info{background-color:#17a2b8}.btn-info:hover{background-color:#138496}@media (max-width:1200px){.detection-stats{grid-template-columns:repeat(2,1fr)}.skeleton-points{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media (max-width:768px){.detection-stats{grid-template-columns:1fr}.detector-controls{flex-direction:column}.skeleton-canvas,.skeleton-overlay-canvas{height:auto;width:100%}}.data-export-panel{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-top:1.5rem;padding:1.5rem}.export-header{margin-bottom:2rem;text-align:center}.export-header h3{color:#495057;font-size:1.5rem;margin:0 0 .5rem}.export-header p{color:#6c757d;font-size:1rem;margin:0}.export-config{margin-bottom:2rem}.export-config h4{color:#495057;font-size:1.1rem;margin:0 0 1rem}.config-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.config-item{display:flex;flex-direction:column;gap:.5rem}.config-item label{color:#495057;font-size:.9rem;font-weight:600}.config-item span{color:#667eea;font-weight:600;text-align:center}.export-actions{margin-bottom:2rem}.export-actions h4{color:#495057;font-size:1.1rem;margin:0 0 1rem}.action-buttons{gap:1rem}.export-progress{margin-bottom:2rem;text-align:center}.export-progress h4{color:#495057;font-size:1.1rem;margin:0 0 1rem}.progress-bar{margin-bottom:.5rem}.progress-fill{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:10px}.progress-text{color:#667eea;font-size:1.1rem}.export-log{margin-bottom:2rem}.export-log h4{color:#495057;font-size:1.1rem;margin:0 0 1rem}.log-container{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;max-height:200px;overflow-y:auto;padding:1rem}.log-entry{border-bottom:1px solid #e9ecef;color:#495057;font-family:monospace;font-size:.85rem;padding:.25rem 0}.log-entry:last-child{border-bottom:none}.export-info{background:#f8f9fa;border-radius:8px;padding:1.5rem}.export-info h4{color:#495057;font-size:1.1rem;margin:0 0 1rem;text-align:center}.info-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.info-item{background:#fff;border:1px solid #e9ecef;border-radius:6px;padding:1rem}.info-item h5{color:#667eea;font-size:1rem;margin:0 0 .75rem}.info-item ul{list-style:none;margin:0;padding:0}.info-item li{color:#6c757d;font-size:.9rem;padding:.25rem 0 .25rem 1.5rem;position:relative}.info-item li:before{color:#28a745;content:"✓";font-weight:700;left:0;position:absolute}.export-panel{border-top:1px solid #e9ecef;margin-top:1.5rem;padding-top:1.5rem}.btn-warning{background-color:#ffc107;color:#212529}.btn-warning:hover{background-color:#e0a800}@media (max-width:768px){.config-grid{grid-template-columns:1fr}.action-buttons{flex-direction:column}.info-grid{grid-template-columns:1fr}}.video-upload{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px;padding:20px}.upload-header{margin-bottom:20px;text-align:center}.upload-header h3{color:#333;margin-bottom:8px}.upload-header p{color:#666;font-size:14px}.upload-form{margin:0 auto;max-width:600px}.form-group{margin-bottom:15px}.form-group label{color:#333;display:block;font-weight:500;margin-bottom:5px}.form-control{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:10px 12px;transition:border-color .3s;width:100%}.form-control:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.upload-zone{margin:20px 0}.drop-zone{background:#fafafa;border:2px dashed #ddd;border-radius:8px;cursor:pointer;padding:40px 20px;text-align:center;transition:all .3s}.drop-zone:hover{background:#f0f8ff;border-color:#007bff}.drop-zone.drag-active{background:#e6f3ff;border-color:#007bff;transform:scale(1.02)}.drop-zone.uploading{background:#f0fff0;border-color:#28a745;cursor:not-allowed}.upload-content{color:#666}.upload-icon{font-size:48px;margin-bottom:15px}.upload-content h4{color:#333;margin-bottom:10px}.upload-content p{color:#666;margin-bottom:15px}.upload-hint{color:#999;display:flex;font-size:12px;justify-content:space-around}.upload-hint span{background:#f0f0f0;border-radius:12px;padding:4px 8px}.upload-progress{text-align:center}.progress-circle{display:inline-block;margin-bottom:15px;position:relative}.progress-ring{height:60px;transform:rotate(-90deg);width:60px}.progress-text{color:#007bff;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.upload-error{align-items:center;background:#fff5f5;border:1px solid #fed7d7;border-radius:4px;color:#c53030;display:flex;margin:15px 0;padding:10px}.error-icon{font-size:16px;margin-right:8px}.upload-actions{display:flex;gap:10px;justify-content:center;margin-top:20px}.upload-tips{background:#f8f9fa;border-radius:6px;margin-top:20px;padding:15px}.upload-tips h4{color:#495057;margin-bottom:10px}.upload-tips ul{color:#6c757d;margin:0;padding-left:20px}.upload-tips li{margin-bottom:5px}.student-data-manager{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px;padding:20px}.manager-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.manager-header h3{color:#333;margin:0}.upload-panel{background:#f8f9fa;border-radius:6px;margin-bottom:20px;padding:15px}.search-filter{display:flex;gap:15px;margin-bottom:20px}.status-filter{min-width:150px}.stats-overview{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(4,1fr);margin-bottom:20px}.stat-item{background:#f8f9fa;border-radius:6px;padding:15px;text-align:center}.stat-number{color:#007bff;display:block;font-size:24px;font-weight:700;margin-bottom:5px}.stat-label{font-size:12px}.student-list h4{color:#333;margin-bottom:15px}.no-students{color:#666;padding:40px 20px;text-align:center}.student-item{align-items:center;border:1px solid #eee;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between;margin-bottom:10px;padding:15px;transition:all .3s}.student-item:hover{border-color:#007bff;box-shadow:0 2px 8px #007bff26}.student-item.selected{background:#f0f8ff;border-color:#007bff}.student-info{flex:1 1}.student-name{color:#333;font-weight:500;margin-bottom:5px}.student-id{font-size:12px;margin-bottom:5px}.video-info{align-items:center;color:#666;display:flex;font-size:12px;gap:10px}.video-name{color:#007bff}.video-size{color:#999}.student-status{align-items:center;display:flex;flex-direction:column;gap:5px;margin:0 15px}.status-badge{border-radius:12px;font-size:11px;font-weight:500;padding:4px 8px}.status-pending{background:#fff3cd;color:#856404}.status-annotated{background:#d4edda;color:#155724}.status-scored{background:#cce5ff;color:#004085}.ai-score,.teacher-score{color:#666;font-size:11px}.student-actions{display:flex;gap:8px}.manual-controls{background-color:#f8f9fa;border-radius:8px;margin-top:20px;padding:15px}.manual-controls h4{border-bottom:1px solid #dee2e6;color:#495057;font-size:18px;margin-bottom:15px;margin-top:0;padding-bottom:8px}.history-controls{align-items:center;background-color:#e9ecef;border-radius:4px;margin-bottom:15px;padding:10px}.redo-btn,.undo-btn{background-color:#fff;border:1px solid #ced4da;border-radius:4px;cursor:pointer;padding:6px 12px;transition:all .2s}.redo-btn:hover:not(:disabled),.undo-btn:hover:not(:disabled){background-color:#f8f9fa}.redo-btn:disabled,.undo-btn:disabled{background-color:#e9ecef;color:#6c757d;cursor:not-allowed}.history-info{color:#6c757d;font-size:14px;margin-left:auto}.grid-controls{background-color:#e9ecef;border-radius:4px;margin-bottom:15px;padding:10px}.grid-controls label{cursor:pointer;margin-bottom:10px}.grid-controls label,.grid-size-control{align-items:center;display:flex;gap:8px}.grid-size-control select{border:1px solid #ced4da;border-radius:4px;padding:4px 8px}.point-type-selector{margin-bottom:15px}.point-type-selector label{display:block;font-weight:500;margin-bottom:5px}.point-type-selector select{background-color:#fff;border:1px solid #ced4da;border-radius:4px;padding:8px;width:100%}.delete-point-btn{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 16px;transition:background-color .2s;width:100%}.delete-point-btn:hover:not(:disabled){background-color:#c82333}.delete-point-btn:disabled{background-color:#6c757d;cursor:not-allowed}.selected-point-info{background-color:#e9ecef;border-radius:4px;margin-top:15px;padding:10px}.selected-point-info p{font-size:14px;margin:5px 0}.skeleton-canvas-container{border:1px solid #ddd;border-radius:6px;margin:15px 0;overflow:hidden;position:relative}.skeleton-canvas{background:#000;cursor:crosshair}.skeleton-canvas.manual-mode{cursor:pointer}.skeleton-overlay-canvas{pointer-events:none}@media (max-width:768px){.stats-overview{grid-template-columns:repeat(2,1fr)}.search-filter{flex-direction:column}.control-panel,.student-item{align-items:flex-start;flex-direction:column}.student-item{gap:10px}.student-status{align-self:flex-end}}.motion-performance-scoring{background:#f8f9fa;border-radius:8px;margin-top:20px;padding:20px}.scoring-header h3{color:#2c3e50;margin-bottom:10px;text-align:center}.scoring-header p{color:#7f8c8d}.scoring-actions,.scoring-header p{margin-bottom:20px;text-align:center}.scoring-actions .btn{margin:0 10px}.analysis-progress{margin:20px 0;text-align:center}.progress-bar{background:#e9ecef;border-radius:10px;height:20px;margin-bottom:10px;width:100%}.progress-fill{background:linear-gradient(90deg,#007bff,#28a745);transition:width .3s ease}.progress-text{color:#495057;font-weight:700}.scoring-results{margin-top:20px}.overall-score{background:#fff;box-shadow:0 2px 4px #0000001a;margin-bottom:30px}.overall-score h4{color:#2c3e50;margin-bottom:15px}.score-breakdown{flex-wrap:wrap;gap:20px;justify-content:space-around}.score-item-overall{flex-direction:column;min-width:120px}.score-label{color:#6c757d;margin-bottom:5px}.score-value{border-radius:20px;font-size:24px;min-width:60px;padding:8px 16px;text-align:center}.score-value.ai{background:#e3f2fd;color:#1976d2}.score-value.teacher{background:#f3e5f5;color:#7b1fa2}.score-value.final{background:#e8f5e8;color:#388e3c;font-size:28px}.detailed-scores{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:20px}.score-item{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:15px}.score-header{border-bottom:1px solid #e9ecef;margin-bottom:10px;padding-bottom:10px}.score-name{color:#2c3e50;font-size:16px}.score-display{gap:8px}.ai-score{color:#1976d2}.ai-score,.teacher-score{font-size:14px;font-weight:500}.teacher-score{color:#7b1fa2}.teacher-score-input{border:2px solid #7b1fa2;border-radius:4px;color:#7b1fa2;font-size:14px;padding:4px 8px;width:80px}.teacher-score-input:focus{border-color:#9c27b0;box-shadow:0 0 0 2px #9c27b033}.score-details{gap:5px}.detail-item{color:#6c757d;font-size:13px;padding-left:10px}.teacher-scoring-actions{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-top:20px;padding:20px;text-align:center}.teacher-scoring-actions .btn{margin:0 10px}.scoring-info{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-top:30px;padding:20px}.scoring-info h4{color:#2c3e50;margin-bottom:15px;text-align:center}.scoring-info ul{list-style:none;padding:0}.scoring-info li{background:#f8f9fa;border-left:4px solid #007bff;border-radius:6px;margin-bottom:10px;padding:10px}.scoring-info strong{color:#2c3e50}@media (max-width:768px){.score-breakdown{flex-direction:column;gap:15px}.detailed-scores{grid-template-columns:1fr}.score-header{flex-direction:column;gap:10px}.score-display,.score-header{align-items:flex-start}}.scoring-modal .motion-performance-scoring{background:#0000;margin:0;max-height:none;overflow:visible;padding:0}.scoring-modal .scoring-header{background:#fff;border:1px solid #dee2e6;border-radius:8px;margin-bottom:1rem;padding:1rem}.scoring-modal .scoring-header h3{color:#2c3e50;font-size:1.2rem;margin-bottom:.5rem}.scoring-modal .scoring-header p{color:#6c757d;font-size:.9rem;margin-bottom:1rem}.scoring-modal .scoring-actions{margin-bottom:1rem;text-align:center}.scoring-modal .scoring-actions .btn{font-size:.9rem;margin:0 5px;padding:8px 16px}.scoring-modal .scoring-results{background:#fff;border:1px solid #dee2e6;border-radius:8px;margin-top:1rem;overflow:hidden}.scoring-modal .overall-score{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;margin-bottom:1.5rem;padding:1.5rem}.scoring-modal .overall-score h4{font-size:1.1rem;margin-bottom:1rem;text-align:center}.scoring-modal .score-breakdown{gap:15px;justify-content:center}.scoring-modal .score-item-overall{min-width:100px;text-align:center}.scoring-modal .score-label{font-size:.8rem;margin-bottom:5px;opacity:.9}.scoring-modal .score-value{background:#fff3;border:2px solid #ffffff4d;border-radius:20px;color:#fff;font-size:1.2rem;padding:8px 16px}.scoring-modal .score-value.final{background:#ffffff4d;border-color:#ffffff80;font-size:1.8rem}.scoring-modal .detailed-scores{gap:10px;grid-template-columns:1fr;margin-bottom:1rem;padding:0 1rem}.scoring-modal .score-item{background:#fff;border:1px solid #e9ecef;border-radius:8px;margin-bottom:10px;padding:12px}.scoring-modal .score-header{align-items:center;border-bottom:1px solid #f1f3f4;display:flex;justify-content:space-between;margin-bottom:8px;padding-bottom:8px}.scoring-modal .score-name{color:#2c3e50;font-size:.9rem;font-weight:700}.scoring-modal .score-display{align-items:center;flex-direction:row;gap:8px}.scoring-modal .ai-score,.scoring-modal .teacher-score{background:#f8f9fa;border-radius:4px;color:#495057;font-size:.8rem;padding:4px 8px}.scoring-modal .teacher-score-input{background:#fff;border:2px solid #7b1fa2;border-radius:4px;color:#7b1fa2;font-size:.8rem;padding:4px 8px;text-align:center;width:60px}.scoring-modal .teacher-score-input:focus{border-color:#9c27b0;box-shadow:0 0 0 2px #9c27b033;outline:none}.scoring-modal .score-details{gap:4px;margin-top:8px}.scoring-modal .detail-item{color:#6c757d;font-size:.75rem;line-height:1.3;padding-left:8px}.scoring-modal .teacher-scoring-actions{background:#fff;border:1px solid #dee2e6;border-radius:8px;margin-top:1rem;padding:1rem;text-align:center}.scoring-modal .teacher-scoring-actions .btn{margin:0 5px;padding:8px 16px}.scoring-modal .scoring-info{background:#fff;border:1px solid #dee2e6;border-radius:8px;margin-top:1.5rem;padding:1rem}.scoring-modal .scoring-info h4{color:#2c3e50;font-size:1rem;margin-bottom:1rem;text-align:center}.scoring-modal .scoring-info ul{list-style:none;padding:0}.scoring-modal .scoring-info li{background:#f8f9fa;border-left:4px solid #007bff;border-radius:6px;font-size:.85rem;line-height:1.4;margin-bottom:8px;padding:8px}.scoring-modal .scoring-info strong{color:#2c3e50}@media (max-width:768px){.scoring-modal{padding:10px}.scoring-content{padding:1rem;width:98%}.scoring-modal .score-header{gap:8px}.scoring-modal .score-display,.scoring-modal .score-header{align-items:flex-start;flex-direction:column}.scoring-modal .score-breakdown{flex-direction:column;gap:10px}}.screenshot-preview-section{background:#fff;border:1px solid #dee2e6;border-radius:8px;margin-top:1.5rem;padding:1rem}.screenshot-preview-section h3{color:#2c3e50;font-size:1.2rem;margin-bottom:1rem;text-align:center}.screenshots-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:1rem}.screenshot-item{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;overflow:hidden;transition:transform .2s,box-shadow .2s}.screenshot-item:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.screenshot-thumbnail{cursor:pointer;height:150px;object-fit:cover;transition:opacity .2s;width:100%}.screenshot-thumbnail:hover{opacity:.8}.screenshot-actions{padding:.5rem;text-align:center}.screenshot-actions .btn{font-size:.8rem;padding:4px 12px}@media (max-width:768px){.screenshots-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.screenshot-thumbnail{height:120px}}.admin-layout{background:#f5f7fb;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;height:100vh}.admin-sidebar{background:#111827;color:#e5e7eb;width:220px}.admin-logo{border-bottom:1px solid #374151cc;font-size:18px;font-weight:600;padding:16px 20px}.admin-nav{display:flex;flex-direction:column;gap:4px;padding:12px 8px}.admin-nav-item{background:#0000;border:none;border-radius:6px;color:inherit;cursor:pointer;font-size:14px;margin:0 4px;padding:8px 12px;text-align:left;transition:background .2s ease,color .2s ease}.admin-nav-item:hover{background:#374151e6}.admin-nav-item.active{background:#2563eb;color:#fff}.admin-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:16px 24px}.admin-header h1{font-size:20px;margin:0}.admin-header-subtitle{color:#6b7280;font-size:12px;margin:4px 0 0}.admin-user-info{align-items:flex-end;display:flex;flex-direction:column;font-size:13px}.admin-user-name{font-weight:500}.admin-user-dept{color:#9ca3af}.admin-content{padding:16px 24px}.fitness-data-container{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-top:20px;padding:20px}.fitness-data-tabs{border-bottom:1px solid #eee;display:flex;margin-bottom:20px}.fitness-data-tab{border-bottom:2px solid #0000;color:#666;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .3s}.fitness-data-tab:hover{color:#1890ff}.fitness-data-tab.active{border-bottom-color:#1890ff;color:#1890ff}.fitness-data-table-wrapper{overflow-x:auto}.fitness-data-table{border-collapse:collapse;font-size:14px;width:100%}.fitness-data-table td,.fitness-data-table th{border-bottom:1px solid #f0f0f0;padding:12px 16px;text-align:left}.fitness-data-table th{color:#333;font-weight:600}.fitness-data-table th,.fitness-data-table tr:hover{background-color:#fafafa}.fitness-data-pagination{align-items:center;display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.fitness-data-pagination button{background-color:#fff;border:1px solid #d9d9d9;border-radius:4px;cursor:pointer;padding:5px 12px;transition:all .3s}.fitness-data-pagination button:disabled{border-color:#eee;color:#ccc;cursor:not-allowed}.fitness-data-pagination button:not(:disabled):hover{border-color:#1890ff;color:#1890ff}.fitness-data-loading{color:#999;padding:40px;text-align:center}.fitness-data-error{background-color:#fff1f0;border:1px solid #ffccc7;border-radius:4px;color:#ff4d4f;margin-bottom:20px;padding:20px;text-align:center}.fitness-data-stats{background:#f8f9fa;border-radius:8px;display:flex;gap:20px;margin-bottom:24px;padding:20px}.stat-item{align-items:center;border-right:1px solid #eee;display:flex;flex:1 1;flex-direction:column;padding:0 20px}.stat-item:last-child{border-right:none}.stat-value{color:#1890ff;font-size:24px;margin-bottom:8px}.stat-label{color:#666;font-size:14px}.teacher-course-center{background:#f7f9fc;display:flex;flex-direction:column;height:100%}.tcc-header-bar{align-items:center;background:#fff;border-bottom:1px solid #e8e8e8;display:flex;justify-content:space-between;margin-bottom:20px;padding:20px 24px}.tcc-header-left h2{color:#262626;font-size:20px;font-weight:600;margin:0 0 4px}.tcc-header-subtitle{color:#8c8c8c;font-size:13px;margin:0}.tcc-header-create-btn{font-size:14px;padding:8px 20px}.tcc-layout{display:flex;gap:20px;height:calc(100% - 100px);padding:0 24px 24px}.tcc-layout.creating-course{gap:0}.tcc-layout.creating-course .tcc-courses-grid-container{display:none}.tcc-courses-grid-container{flex:1 1;overflow-y:auto;padding-right:20px;transition:all .3s ease}.tcc-courses-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));padding-bottom:20px}.tcc-course-card-large{background:#fff;border:1px solid #e8e8e8;border-radius:12px;box-shadow:0 2px 4px #0000000a;cursor:pointer;overflow:hidden;transition:all .3s ease}.tcc-course-card-large:hover{border-color:#2f54eb;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.tcc-course-card-large.active{border-color:#2f54eb;box-shadow:0 4px 16px #2f54eb33}.tcc-course-card-cover-wrapper{background:#f0f0f0;overflow:hidden;padding-top:56.25%;position:relative;width:100%}.tcc-course-card-cover{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%}.tcc-course-card-overlay{background:linear-gradient(0deg,#000000b3,#0000);bottom:0;color:#fff;display:flex;font-size:12px;justify-content:space-between;left:0;padding:12px;position:absolute;right:0}.tcc-course-card-annotated-count,.tcc-course-card-video-count{font-weight:500}.tcc-course-card-content{padding:16px}.tcc-course-card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#262626;display:-webkit-box;font-size:16px;font-weight:600;line-height:1.4;margin:0 0 12px;min-height:44px;overflow:hidden;text-overflow:ellipsis}.tcc-course-card-meta{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.tcc-course-card-category{background:#f5f5f5;border-radius:12px;color:#595959;font-size:12px;padding:4px 10px}.tcc-course-card-price{color:#fa8c16;font-size:18px;font-weight:700}.tcc-course-card-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#8c8c8c;display:-webkit-box;font-size:13px;line-height:1.5;margin:8px 0 0;overflow:hidden;text-overflow:ellipsis}.tcc-empty-state{background:#fff;border:2px dashed #e8e8e8;border-radius:12px;grid-column:1/-1;padding:60px 20px;text-align:center}.tcc-drag-upload-area{background:linear-gradient(135deg,#fafafa,#f5f7fa);border:2px dashed #d9d9d9;border-radius:12px;cursor:pointer;margin-top:12px;overflow:hidden;padding:32px 24px;position:relative;text-align:center;transition:all .3s ease}.tcc-drag-upload-area:before{background:linear-gradient(90deg,#0000,#2f54eb1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.tcc-drag-upload-area:hover{background:linear-gradient(135deg,#f0f5ff,#e6f4ff);border-color:#2f54eb;box-shadow:0 4px 12px #2f54eb26;transform:translateY(-2px)}.tcc-drag-upload-area:hover:before{left:100%}.tcc-drag-upload-area.drag-over{background-color:#e6f7ff;border-color:#1890ff;transform:scale(1.02)}.tcc-drag-upload-area.uploading{background-color:#f6ffed;border-color:#52c41a}.tcc-drag-upload-content{align-items:center;display:flex;flex-direction:column;gap:8px;justify-content:center}.tcc-drag-upload-icon{animation:float 3s ease-in-out infinite;color:#2f54eb;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));font-size:56px;margin-bottom:12px}.tcc-drag-upload-text{color:#262626;font-size:16px;font-weight:600;letter-spacing:.3px;margin:0}.tcc-drag-upload-hint{color:#8c8c8c;font-size:14px;margin:4px 0 0}.tcc-drag-upload-button{background:linear-gradient(135deg,#2f54eb,#1890ff);border:none;border-radius:10px;box-shadow:0 4px 12px #2f54eb4d;color:#fff;cursor:pointer;font-size:14px;font-weight:600;letter-spacing:.5px;margin-top:16px;padding:12px 28px;transition:all .3s ease}.tcc-drag-upload-button:hover{background:linear-gradient(135deg,#1d39c4,#096dd9);box-shadow:0 6px 20px #2f54eb66;transform:translateY(-3px)}.tcc-drag-upload-button:active{box-shadow:0 2px 8px #2f54eb4d;transform:translateY(-1px)}.tcc-drag-upload-button:disabled{background-color:#f5f5f5;box-shadow:none;color:#bfbfbf;cursor:not-allowed;transform:none}.tcc-drag-upload-preview{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.tcc-drag-upload-preview-item{border-radius:8px;box-shadow:0 2px 8px #0000001a;height:120px;overflow:hidden;position:relative;width:120px}.tcc-drag-upload-preview-item img{height:100%;object-fit:cover;width:100%}.tcc-drag-upload-preview-item .delete-btn{align-items:center;background-color:#0009;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;height:24px;justify-content:center;position:absolute;right:8px;top:8px;transition:all .3s ease;width:24px}.tcc-drag-upload-preview-item .delete-btn:hover{background-color:#ff4d4f;transform:scale(1.1)}.tcc-drag-upload-progress{background-color:#f0f0f0;border-radius:4px;height:6px;margin-top:12px;overflow:hidden}.tcc-drag-upload-progress-bar{background:linear-gradient(90deg,#1890ff,#36cfc9);border-radius:4px;height:100%;transition:width .3s ease}.tcc-drag-upload-progress-text{color:#8c8c8c;font-size:12px;margin-top:8px;text-align:center}.tcc-empty-state h3{color:#262626;font-size:16px;margin:0 0 8px}.tcc-empty-state p{color:#8c8c8c;font-size:14px;margin:0}.tcc-empty-state-detail{background:#fff;border:2px dashed #e8e8e8;border-radius:12px;padding:80px 20px;text-align:center}.tcc-detail-image-upload{display:flex;flex-direction:column;gap:12px}.tcc-image-preview{align-items:center;background:#fafafa;border:1px solid #e8e8e8;border-radius:8px;display:flex;justify-content:center;min-height:120px;overflow:hidden;padding:12px;position:relative}.tcc-image-preview img{border-radius:6px;box-shadow:0 2px 8px #0000001a;max-height:200px;max-width:100%}.tcc-image-placeholder{align-items:center;color:#8c8c8c;display:flex;flex-direction:column;font-size:14px;gap:8px}.tcc-image-placeholder:before{content:"📷";font-size:24px;opacity:.5}.tcc-upload-controls{display:flex;flex-wrap:wrap;gap:10px}.tcc-upload-controls .btn{border-radius:8px;font-weight:500;padding:8px 16px;transition:all .2s ease}.tcc-upload-controls .btn:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.tcc-upload-error{background-color:#fff2f0;border-left:3px solid #ff4d4f;border-radius:6px;font-size:13px;margin-top:4px;padding:8px 12px}.tcc-empty-state-detail h3{color:#262626;font-size:16px;margin:0 0 8px}.tcc-empty-state-detail p{color:#8c8c8c;font-size:14px;margin:0}.tcc-sidebar{background:#fff;border-right:1px solid #e4e7f0;display:flex;flex-direction:column;width:340px}.tcc-sidebar-header{border-bottom:1px solid #f0f2f5;padding:16px 16px 8px}.tcc-sidebar-header h3{font-size:16px;margin:0}.tcc-sidebar-subtitle{color:#8c8c8c;font-size:12px;margin:4px 0 8px}.tcc-create-btn{width:100%}.tcc-course-list{flex:1 1;overflow-y:auto;padding:8px 12px 12px}.tcc-course-block{margin-bottom:12px}.tcc-course-card{border:1px solid #0000;border-radius:8px;cursor:pointer;display:flex;padding:8px;transition:all .2s ease}.tcc-course-card:hover{background:#f5f7ff}.tcc-course-card.active{background:#f0f5ff;border-color:#2f54eb}.tcc-course-cover{border-radius:6px;height:48px;margin-right:8px;object-fit:cover;width:72px}.tcc-course-info{display:flex;flex:1 1;flex-direction:column;justify-content:center}.tcc-course-title{font-size:14px;font-weight:500;margin-bottom:4px}.tcc-course-meta{color:#8c8c8c;display:flex;font-size:12px;justify-content:space-between}.tcc-course-category{background:#f5f5f5;border-radius:999px;padding:0 8px}.tcc-course-price{color:#fa8c16;font-weight:500}.tcc-video-list{border-left:2px solid #f0f0f0;margin-left:12px;margin-top:4px;padding-left:8px}.tcc-video-item{cursor:pointer;padding:6px 4px;transition:all .2s ease}.tcc-video-item:hover{background:#fafafa}.tcc-video-item.active{background:#f0f5ff}.tcc-video-thumb-wrapper{margin-right:8px;position:relative}.tcc-video-cover{border-radius:4px;height:40px;object-fit:cover;width:60px}.tcc-video-badge{background:#52c41a;border-radius:2px;color:#fff;font-size:10px;left:2px;padding:0 4px;position:absolute;top:2px}.tcc-video-info{flex:1 1}.tcc-video-title{color:#262626;font-size:12px}.tcc-detail{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;max-height:calc(100vh - 180px);overflow-y:auto;padding:20px;transition:all .3s ease;width:480px}.tcc-detail.full-width{margin:0 auto;max-width:1200px;width:100%}.tcc-detail-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.tcc-create-course-header{align-items:center;display:flex;gap:16px;width:100%}.tcc-back-btn{align-items:center;background:none;border:none;color:#595959;cursor:pointer;display:flex;font-size:14px;gap:4px;padding:6px 12px;text-decoration:none;transition:all .2s}.tcc-back-btn:hover{background:#f0f5ff;border-radius:6px;color:#2f54eb}.tcc-create-course-header h3{color:#262626;font-size:20px;font-weight:600;margin:0}.tcc-detail-header h2{font-size:18px;margin:0}.tcc-detail-subtitle{color:#8c8c8c;font-size:12px;margin:4px 0 0}.tcc-detail-body{flex:1 1;overflow-y:auto}.tcc-detail-actions{display:flex;justify-content:flex-end;margin-bottom:8px}.tcc-empty{margin-top:40px}.tcc-section{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e8e8e8;border-radius:12px;box-shadow:0 4px 12px #00000014;margin-bottom:20px;padding:24px;transition:all .3s ease}.tcc-section:hover{box-shadow:0 6px 20px #0000001f;transform:translateY(-2px)}.tcc-section-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.tcc-section h3{align-items:center;color:#262626;display:flex;font-size:18px;font-weight:600;gap:8px;margin:0}.tcc-section h3:before{content:"📚";font-size:20px}.tcc-section-actions{gap:8px}.tcc-form-grid{gap:16px;margin-bottom:20px}.tcc-form-grid,.tcc-form-item{display:flex;flex-direction:column}.tcc-form-item{margin-bottom:0;position:relative}.tcc-form-item label{align-items:center;color:#262626;display:flex;font-size:14px;font-weight:600;gap:6px;margin-bottom:8px}.tcc-form-item label:before{color:#2f54eb;content:"•";font-size:16px;font-weight:700}.tcc-form-item input.form-control,.tcc-form-item textarea.form-control{background-color:#fff;border:2px solid #e8e8e8;border-radius:10px;box-shadow:0 2px 4px #00000005;font-size:14px;padding:12px 16px;transition:all .3s ease}.tcc-form-item input.form-control:focus,.tcc-form-item textarea.form-control:focus{border-color:#2f54eb;box-shadow:0 0 0 4px #2f54eb26,0 4px 12px #0000001a;outline:none;transform:translateY(-1px)}.tcc-form-item input.form-control:hover,.tcc-form-item textarea.form-control:hover{border-color:#2f54eb;box-shadow:0 2px 8px #0000000f}.tcc-form-item input.form-control::placeholder,.tcc-form-item textarea.form-control::placeholder{color:#bfbfbf}.tcc-form-item input.form-control[readonly]{background-color:#f5f5f5;color:#595959;cursor:not-allowed}.tcc-form-item-span-2{grid-column:span 2}.tcc-cover-preview img{border-radius:6px;height:80px;object-fit:cover;width:120px}.tcc-tag{border-radius:999px;display:inline-block;font-size:12px;padding:2px 8px}.tcc-tag-success{background:#f6ffed;color:#52c41a}.tcc-tag-warning{background:#fff7e6;color:#fa8c16}.tcc-form-actions{border-top:1px solid #f0f0f0;display:flex;gap:12px;justify-content:flex-end;margin-top:20px;padding-top:16px}.tcc-form-actions .btn{border-radius:8px;box-shadow:0 2px 4px #0000000d;font-weight:500;padding:10px 20px;transition:all .2s ease}.tcc-form-actions .btn:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.tcc-form-actions .btn-primary{background:linear-gradient(135deg,#2f54eb,#1890ff);border:none;color:#fff}.tcc-form-actions .btn-primary:hover{background:linear-gradient(135deg,#1d39c4,#096dd9)}.tcc-form-actions .btn-secondary{background-color:#f5f5f5;border:1px solid #d9d9d9;color:#595959}.tcc-form-actions .btn-secondary:hover{background-color:#e6f4ff;border-color:#2f54eb;color:#2f54eb}.tcc-section-actions{display:flex;gap:10px}.tcc-section-actions .btn{border-radius:6px;font-size:12px;font-weight:500;padding:6px 12px;transition:all .2s ease}.tcc-section-actions .btn:hover{box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.tcc-header-create-btn{background:linear-gradient(135deg,#2f54eb,#1890ff);border:none;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#fff;font-weight:500;padding:10px 20px;transition:all .2s ease}.tcc-header-create-btn:hover{background:linear-gradient(135deg,#1d39c4,#096dd9);box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.tcc-upload-panel{border-top:1px dashed #f0f0f0;margin-top:12px;padding-top:8px}.tcc-upload-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.tcc-upload-title{color:#595959;font-size:12px}.tcc-upload-percent{color:#2f54eb;font-size:12px;font-weight:500}.tcc-upload-bar-wrapper{width:100%}.tcc-upload-bar-bg{background:linear-gradient(90deg,#f0f0f0,#f5f5f5 50%,#fafafa);border-radius:999px;height:8px;overflow:hidden;position:relative;width:100%}.tcc-upload-bar-fill{background:linear-gradient(90deg,#2f54eb,#52c41a);border-radius:999px;bottom:0;left:0;position:absolute;top:0;transition:width .25s ease-out;width:0}.tcc-upload-bar-fill.error{background:linear-gradient(90deg,#ff4d4f,#fa8c16)}.tcc-upload-status{align-items:center;display:flex;justify-content:space-between;margin-top:4px}.tcc-upload-status-text{color:#8c8c8c;font-size:11px}.tcc-upload-error{color:#ff4d4f;font-size:11px}.tcc-video-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.tcc-video-card{background:#fafafa;border:1px solid #e8e8e8;border-radius:8px;cursor:pointer;overflow:hidden;transition:all .2s}.tcc-video-card:hover{border-color:#2f54eb;box-shadow:0 2px 8px #2f54eb26;transform:translateY(-2px)}.tcc-video-card.active{background:#f0f5ff;border-color:#2f54eb;box-shadow:0 2px 8px #2f54eb33}.tcc-video-card-thumb{background:#f0f0f0;overflow:hidden;padding-top:56.25%;position:relative;width:100%}.tcc-video-card-thumb img{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%}.tcc-video-card-badge{background:#52c41a;font-size:10px;font-weight:500;left:6px;top:6px}.tcc-video-card-badge,.tcc-video-card-duration{border-radius:4px;color:#fff;padding:2px 6px;position:absolute}.tcc-video-card-duration{background:#000000b3;bottom:6px;font-size:11px;right:6px}.tcc-video-card-title{color:#262626;font-size:13px;font-weight:500;overflow:hidden;padding:10px;text-overflow:ellipsis;white-space:nowrap}.tcc-no-videos{color:#8c8c8c;font-size:14px;grid-column:1/-1;padding:40px 20px;text-align:center}.tcc-loading{align-items:center;color:#8c8c8c;display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.tcc-loading-spinner{animation:spin 1s linear infinite;border:4px solid #f0f0f0;border-radius:50%;border-top-color:#2f54eb;height:40px;margin-bottom:16px;width:40px}.tcc-error{align-items:center;background-color:#fff2f0;border-radius:8px;color:#ff4d4f;display:flex;flex-direction:column;justify-content:center;margin:20px;padding:60px 20px}.tcc-error-icon{font-size:48px;margin-bottom:16px}.tcc-empty{align-items:center;color:#8c8c8c;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.tcc-empty-icon{font-size:48px;margin-bottom:16px;opacity:.6}.tcc-empty-title{color:#595959;font-size:16px;font-weight:500;margin-bottom:8px}.tcc-empty-description{color:#8c8c8c;font-size:14px;line-height:1.5;max-width:400px}.tcc-chapters-list{display:flex;flex-direction:column;gap:16px}.tcc-chapter-item{background:#fff;border:1px solid #e8e8e8;border-radius:8px;overflow:hidden}.tcc-chapter-header{align-items:center;background:#fafafa;border-bottom:1px solid #e8e8e8;cursor:pointer;display:flex;gap:12px;padding:16px;transition:all .2s;-webkit-user-select:none;user-select:none}.tcc-chapter-header:hover{background:#f0f5ff}.tcc-chapter-header.expanded{background:#e6f7ff;border-bottom-color:#2f54eb}.tcc-chapter-expand-icon{align-items:center;color:#595959;display:inline-flex;font-size:12px;height:20px;justify-content:center;transition:transform .2s;width:20px}.tcc-chapter-header.expanded .tcc-chapter-expand-icon{transform:rotate(0deg)}.tcc-chapter-title-input{flex:1 1;font-size:15px;font-weight:500;max-width:300px}.tcc-chapter-video-count{color:#8c8c8c;font-size:13px;margin-left:auto}.tcc-video-list{display:flex;flex-direction:column;gap:8px;padding:12px}.tcc-video-item{align-items:center;background:#fafafa;border:1px solid #e8e8e8;border-radius:6px;display:flex;justify-content:space-between;padding:12px;transition:all .2s}.tcc-video-item:hover{background:#f0f5ff;border-color:#2f54eb}.tcc-video-item-info{align-items:center;display:flex;flex:1 1;gap:12px}.tcc-video-item-index{align-items:center;background:#2f54eb;border-radius:50%;color:#fff;display:flex;font-size:12px;font-weight:500;height:24px;justify-content:center;width:24px}.tcc-video-title-input{flex:1 1;max-width:400px}.tcc-video-uploaded-badge{color:#52c41a;font-size:12px;font-weight:500}.tcc-add-video-form,.tcc-video-item-actions{display:flex;gap:8px}.tcc-add-video-form{background:#f0f5ff;border-top:1px solid #e8e8e8;padding:12px}.tcc-add-video-actions{display:flex;gap:8px}.radar-chart{align-items:center;display:flex;justify-content:center;margin:20px 0}.radar-chart svg{height:auto;max-width:100%}.course-report-modal{background:#00000080;bottom:0;display:flex;flex-direction:column;left:0;overflow:hidden;position:fixed;right:0;top:0;z-index:1000}.course-report-header{align-items:center;background:#fff;border-bottom:1px solid #e8e8e8;box-shadow:0 2px 8px #0000001a;display:flex;justify-content:space-between;padding:16px 24px}.course-report-header h2{color:#333;font-size:20px;margin:0}.report-actions{display:flex;gap:12px}.close-btn,.download-btn{border:none;border-radius:4px;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .3s}.download-btn{background:#1890ff;color:#fff}.download-btn:hover:not(:disabled){background:#40a9ff}.download-btn:disabled{background:#d9d9d9;cursor:not-allowed}.close-btn{background:#f5f5f5;color:#333}.close-btn:hover{background:#e8e8e8}.course-report-container{background:#f0f2f5;flex:1 1;overflow-y:auto;padding:24px}.course-report-content{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:16px;box-shadow:0 8px 32px #0000001f;margin:0 auto;max-width:1200px;overflow:hidden;padding:60px;position:relative}.course-report-content:before{background:linear-gradient(90deg,#667eea,#764ba2 25%,#f093fb 50%,#4facfe 75%,#00f2fe);content:"";height:6px;left:0;position:absolute;right:0;top:0;z-index:1}.report-header{align-items:flex-start;background:linear-gradient(135deg,#667eea0d,#764ba20d);background-clip:padding-box;border:2px solid #0000;border-radius:20px;box-shadow:0 4px 20px #667eea1a;display:flex;justify-content:space-between;margin-bottom:48px;padding:40px;position:relative}.report-header:after{background:linear-gradient(90deg,#667eea,#764ba2 50%,#f093fb);border-radius:2px;bottom:0;content:"";height:4px;left:5%;position:absolute;right:5%}.report-title h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2 50%,#f093fb);-webkit-background-clip:text;background-clip:text;display:inline-block;font-size:42px;font-weight:800;letter-spacing:-1px;margin:0 0 24px;position:relative}.report-title h1:after{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:2px;bottom:-8px;content:"";height:4px;left:0;position:absolute;width:60px}.report-subtitle{color:#666;display:flex;flex-direction:column;font-size:16px;gap:12px}.student-info-block{align-items:center;background:linear-gradient(135deg,#667eea1a,#764ba21a);border:2px solid #667eea33;border-radius:12px;box-shadow:0 2px 8px #667eea1a;display:flex;gap:12px;overflow:hidden;padding:16px 24px;position:relative}.student-info-block:before{background:linear-gradient(180deg,#667eea,#764ba2);bottom:0;content:"";left:0;position:absolute;top:0;width:5px}.student-label{color:#1890ff;font-weight:600}.student-name{color:#1890ff;font-size:18px;font-weight:700}.student-id{color:#666;font-size:14px}.separator{color:#d9d9d9;margin:0 8px}.report-date-block{align-items:center;display:flex;gap:8px}.report-date-label{color:#666;font-weight:500}.report-date{color:#333;font-weight:600}.report-logo{height:120px;width:120px}.logo-placeholder,.report-logo{align-items:center;display:flex;justify-content:center}.logo-placeholder{background:linear-gradient(135deg,#667eea,#764ba2 50%,#f093fb);border-radius:16px;box-shadow:0 8px 24px #667eea4d;color:#fff;flex-direction:column;height:100%;overflow:hidden;position:relative;width:100%}.logo-placeholder:before{animation:shimmer 3s infinite;background:radial-gradient(circle,#fff3 0,#0000 70%);content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%}.logo-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));font-size:48px;margin-bottom:8px}.logo-text{font-size:14px;font-weight:700;letter-spacing:1px}.report-section{margin-bottom:48px}.section-header{margin-bottom:32px;padding-bottom:16px;position:relative}.section-header:after{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:2px;bottom:0;content:"";height:3px;left:0;position:absolute;width:80px}.section-header h2{align-items:center;color:#2d3748;display:flex;font-size:28px;font-weight:700;gap:12px;margin:0;padding-left:24px;position:relative}.section-header h2:before{background:linear-gradient(180deg,#667eea,#764ba2);border-radius:3px;box-shadow:0 2px 8px #667eea4d;content:"";height:32px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:6px}.course-info-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(2,1fr)}.info-item{background:linear-gradient(135deg,#fff,#f8f9fa);border:2px solid #e9ecef;border-radius:12px;overflow:hidden;padding:24px;position:relative;transition:all .3s ease}.info-item:before{background:linear-gradient(90deg,#667eea,#764ba2);content:"";height:4px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:transform .3s ease}.info-item:hover{border-color:#667eea;box-shadow:0 12px 24px #667eea26;transform:translateY(-6px)}.info-item:hover:before{transform:scaleX(1)}.highlight-item{background:linear-gradient(135deg,#fff7e6,#ffe7ba)!important;border:2px solid #ffc53d}.highlight-item .info-label{color:#d46b08;font-weight:600}.highlight-item .info-value{color:#d46b08;font-weight:700}.info-label{color:#718096;font-size:13px;font-weight:600;letter-spacing:.5px;margin-bottom:12px;text-transform:uppercase}.info-value{color:#2d3748;font-size:22px;font-weight:700;line-height:1.2}.body-data-grid{grid-gap:24px;gap:24px;grid-template-columns:repeat(4,1fr)}.body-data-card{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;box-shadow:0 8px 24px #667eea59;color:#fff;display:flex;overflow:hidden;padding:28px;position:relative;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.body-data-card:before{background:radial-gradient(circle,#fff3 0,#0000 70%);content:"";height:200%;position:absolute;right:-50%;top:-50%;transition:transform .6s;width:200%}.body-data-card:hover{box-shadow:0 16px 32px #667eea80;transform:translateY(-8px) scale(1.02)}.body-data-card:hover:before{transform:translate(30%,30%)}.body-data-card:nth-child(2){background:linear-gradient(135deg,#f093fb,#f5576c);box-shadow:0 4px 12px #f5576c4d}.body-data-card:nth-child(2):hover{box-shadow:0 6px 16px #f5576c66}.body-data-card:nth-child(3){background:linear-gradient(135deg,#4facfe,#00f2fe);box-shadow:0 4px 12px #4facfe4d}.body-data-card:nth-child(3):hover{box-shadow:0 6px 16px #4facfe66}.body-data-card:nth-child(4){background:linear-gradient(135deg,#43e97b,#38f9d7);box-shadow:0 4px 12px #43e97b4d}.body-data-card:nth-child(4):hover{box-shadow:0 6px 16px #43e97b66}.card-icon{animation:float 3s ease-in-out infinite;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));font-size:40px;margin-right:20px}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.card-content{flex:1 1}.card-label{font-size:13px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;opacity:.95;text-transform:uppercase}.card-value{font-size:32px;font-weight:800;line-height:1.2;text-shadow:0 2px 4px #0003}.ai-evaluation-content{display:flex;flex-direction:column;gap:32px}.ai-score-display{align-items:flex-start;display:flex;gap:48px}.overall-score-circle{flex-shrink:0}.score-circle{align-items:center;background:linear-gradient(135deg,#fff,#f8f9fa);border:10px solid;border-radius:50%;box-shadow:0 12px 32px #00000026,inset 0 2px 8px #fffc;display:flex;flex-direction:column;height:220px;justify-content:center;overflow:hidden;position:relative;width:220px}.score-circle:before{animation:rotate 10s linear infinite;background:conic-gradient(from 0deg,#0000,#667eea1a,#0000);content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.score-number{color:#2d3748;font-size:56px;font-weight:800;margin-bottom:8px;position:relative;text-shadow:0 2px 4px #0000001a;z-index:1}.score-label{color:#666;margin-bottom:4px}.score-level{color:#333;font-size:16px;font-weight:600}.score-details{flex:1 1;gap:16px}.score-item{align-items:center;display:flex;gap:16px}.score-name{color:#666;font-size:14px;width:80px}.score-bar{background:#f0f0f0;border-radius:12px;flex:1 1;height:24px;overflow:hidden}.score-fill{border-radius:12px;height:100%;transition:width .3s}.score-value{color:#333;font-weight:600;text-align:right;width:50px}.radar-chart-wrapper{align-items:center;background:linear-gradient(135deg,#667eea0d,#764ba20d);border:2px solid #667eea1a;border-radius:20px;display:flex;justify-content:center;overflow:hidden;padding:48px;position:relative}.radar-chart-wrapper:before{background:radial-gradient(circle at 30% 30%,#667eea1a 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.ai-comments-box{background:#f0f7ff;border-left:4px solid #1890ff;border-radius:8px;padding:24px}.ai-comments-box h4{color:#1890ff;font-size:16px;margin:0 0 12px}.ai-comments-box p{color:#666;font-size:14px;line-height:1.6;margin:0}.teacher-evaluation-content{align-items:flex-start;display:flex;gap:48px}.teacher-score-display{flex-shrink:0}.teacher-score-circle .score-circle{background:linear-gradient(135deg,#ffeaa7,#fdcb6e)}.teacher-comments{display:flex;flex:1 1;flex-direction:column;gap:24px}.comment-block{background:linear-gradient(135deg,#fff,#f8f9fa);border-image:linear-gradient(180deg,#667eea,#764ba2) 1;border-left:5px solid;border-radius:12px;box-shadow:0 4px 12px #667eea1a;padding:24px;transition:all .3s ease}.comment-block:hover{box-shadow:0 6px 16px #667eea26;transform:translateX(4px)}.comment-block h4{color:#333;font-size:16px;font-weight:600;margin:0 0 12px}.comment-block p{color:#666;font-size:14px;line-height:1.8;margin:0}.comment-block ul{margin:0;padding-left:20px}.comment-block li{color:#666;font-size:14px;line-height:1.8;margin-bottom:8px}.detailed-scores-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(3,1fr)}.score-category{background:linear-gradient(135deg,#fff,#f8f9fa);border:2px solid #e9ecef;border-radius:16px;box-shadow:0 4px 12px #0000000d;overflow:hidden;padding:28px;position:relative;transition:all .3s ease}.score-category:before{background:linear-gradient(90deg,#667eea,#764ba2);content:"";height:4px;left:0;position:absolute;right:0;top:0}.score-category:hover{border-color:#667eea;box-shadow:0 8px 20px #667eea26;transform:translateY(-4px)}.score-category h4{border-bottom:2px solid #e8e8e8;color:#333;font-size:18px;font-weight:600;margin:0 0 20px;padding-bottom:12px;text-align:center}.score-list{display:flex;flex-direction:column;gap:12px}.score-row{align-items:center;background:#fff;border-radius:6px;display:flex;font-size:14px;justify-content:space-between;padding:12px}.score-row span:first-child{color:#666}.score-row span:last-child{font-size:16px;font-weight:600}.report-footer{align-items:flex-end;background:linear-gradient(135deg,#667eea08,#764ba208);border-image:linear-gradient(90deg,#667eea,#764ba2 50%,#f093fb) 1;border-radius:16px;border-top:3px solid;display:flex;justify-content:space-between;margin-left:-60px;margin-right:-60px;margin-top:64px;padding:40px 60px}.footer-info{flex:1 1}.footer-info p{color:#999;font-size:12px;margin:4px 0}.footer-signature{min-width:200px}.signature-line{border-top:1px solid #e8e8e8;color:#666;font-size:14px;padding-top:40px;text-align:right}@media (max-width:768px){.course-report-content{padding:24px}.report-header{flex-direction:column;gap:24px}.body-data-grid,.course-info-grid,.detailed-scores-grid{grid-template-columns:1fr}.ai-score-display,.teacher-evaluation-content{flex-direction:column}.radar-chart-wrapper{padding:16px}}.tls-container{display:flex;flex-direction:column;gap:16px}.tls-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px}.tls-header-controls{align-items:flex-end;display:flex;flex-direction:column;gap:8px}.tls-filter-controls,.tls-view-toggle{display:flex;gap:4px}.tls-header h3{color:#262626;font-size:18px;font-weight:600;margin:0 0 4px}.tls-header p{color:#8c8c8c;font-size:13px;margin:0}.tls-week-controls{display:flex;gap:8px}.tls-loading{color:#666;padding:16px;text-align:center}.tls-error{background:#fff2f0;border:1px solid #ffccc7;border-radius:8px;color:#a8071a;font-size:13px;padding:12px 16px}.tls-layout{grid-gap:16px;align-items:flex-start;display:grid;gap:16px;grid-template-columns:2fr 1fr}.tls-calendar{background:#fff;border:1px solid #e8e8e8;border-radius:12px;padding:16px}.tls-week-summary{color:#595959;font-size:13px;margin-bottom:12px}.tls-week-range{background:#f5f5f5;border-radius:12px;padding:4px 10px}.tls-week-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(7,1fr)}.tls-day-column{background:#fafafa;border:1px solid #f0f0f0;border-radius:8px;display:flex;flex-direction:column;min-height:220px;overflow:hidden}.tls-day-header{background:#fff;border-bottom:1px solid #f0f0f0;padding:6px 8px}.tls-day-header-clickable{cursor:pointer;position:relative;transition:all .2s ease}.tls-day-header-clickable:hover{background:#f0f5ff;border-bottom-color:#2f54eb}.tls-day-header-clickable:hover .tls-day-add-icon{opacity:1;transform:scale(1.1)}.tls-day-week{color:#595959;font-size:12px}.tls-day-date{align-items:center;color:#262626;display:flex;font-size:12px;font-weight:500;gap:4px;justify-content:space-between}.tls-day-add-icon{color:#2f54eb;font-size:16px;font-weight:600;line-height:1;opacity:0;transition:all .2s ease}.tls-day-empty{background:#fafafa;border:2px dashed #e8e8e8;border-radius:6px;cursor:pointer;padding:20px 8px;text-align:center;transition:all .2s ease}.tls-day-empty:hover{background:#f0f5ff;border-color:#2f54eb}.tls-day-empty-text{color:#8c8c8c;display:block;font-size:11px}.tls-day-body{display:flex;flex:1 1;flex-direction:column;gap:6px;overflow-y:auto;padding:6px}.tls-course-card{background:#fff;border:1px solid #e8e8e8;border-radius:6px;cursor:pointer;padding:6px 8px;transition:all .2s ease}.tls-course-card:hover{border-color:#2f54eb;box-shadow:0 2px 6px #2f54eb33}.tls-course-card.active{background:#f0f5ff;border-color:#2f54eb;box-shadow:0 2px 8px #2f54eb40}.tls-course-time{color:#595959;font-size:12px;margin-bottom:2px}.tls-course-name{color:#262626;font-size:13px;font-weight:600;margin-bottom:2px}.tls-course-actions,.tls-course-meta{display:flex;flex-direction:column;gap:2px}.tls-course-actions{margin-top:4px}.tls-view-evaluation-btn{background:#4f46e5;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:11px;margin-top:2px;padding:2px 6px;transition:all .2s}.tls-view-evaluation-btn:hover{background:#4338ca;box-shadow:0 2px 4px #4f46e54d;transform:translateY(-1px)}.tls-course-room{color:#8c8c8c;font-size:11px}.tls-course-remark{color:#fa8c16;font-size:11px}.tls-copy-btn,.tls-enter-btn{color:#2f54eb;font-size:11px;padding:0;text-align:left}.tls-copy-btn{color:#52c41a}.tls-copy-btn:hover{color:#389e0d}.btn-sm{font-size:12px;padding:6px 12px}.tls-sidebar{background:#fff;border:1px solid #e8e8e8;border-radius:12px;padding:16px}.tls-sidebar-header h4{color:#262626;font-size:16px;font-weight:600;margin:0 0 4px}.tls-sidebar-header p{color:#8c8c8c;font-size:12px;margin:0 0 12px}.tls-time-row{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.tls-form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.tls-selected-date{background:#f0f5ff;border:1px solid #2f54eb;border-radius:4px;color:#262626;font-size:14px;margin-bottom:12px;padding:8px 12px}.tls-inline-calendar{background:#fff;border:1px solid #e8e8e8;border-radius:8px;margin-bottom:16px;overflow:hidden}.tls-inline-calendar .ant-picker-calendar{border:none}.tls-inline-calendar .ant-picker-calendar-header{background:#fafafa;border-bottom:1px solid #e8e8e8;padding:12px}.tls-inline-calendar .ant-picker-calendar-body{padding:8px}.tls-calendar-cell-wrapper{align-items:flex-start;display:flex;flex-direction:column;min-height:60px;padding:2px}.tls-calendar-date-number{font-size:14px;font-weight:500;margin-bottom:2px}.tls-calendar-cell-wrapper.tls-calendar-cell-selected{background:#f0f5ff;border-radius:4px;padding:4px}.tls-calendar-cell-wrapper.tls-calendar-cell-selected .tls-calendar-date-number{color:#2f54eb;font-weight:600}.tls-calendar-courses{display:flex;flex-direction:column;gap:2px;margin-top:2px;width:100%}.tls-calendar-course-item{background:#e6f7ff;border-radius:2px;font-size:10px;line-height:1.2;overflow:hidden;padding:1px 2px;text-overflow:ellipsis;white-space:nowrap}.tls-calendar-cell-wrapper.tls-calendar-cell-selected .tls-calendar-course-item{background:#bae7ff}.tls-calendar-course-time{color:#2f54eb;font-weight:500;margin-right:2px}.tls-calendar-course-name{color:#595959;font-size:9px}.tls-calendar-course-more{color:#8c8c8c;font-size:9px;padding:1px 2px;text-align:center}.tls-inline-calendar .ant-picker-cell-selected .ant-picker-calendar-date{background:#f0f5ff}.tls-inline-calendar .ant-picker-cell-selected .ant-picker-calendar-date-content{color:#2f54eb;font-weight:600}.tls-inline-calendar .ant-picker-cell:hover .ant-picker-calendar-date{background:#f0f5ff}.tls-selected-date-courses{background:#fff;border:1px solid #e8e8e8;border-radius:8px;margin-top:16px;overflow:hidden}.tls-selected-date-courses-header{background:#fafafa;border-bottom:1px solid #e8e8e8;color:#262626;font-size:14px;padding:12px 16px}.tls-selected-date-courses-list{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto;padding:8px}.tls-selected-course-item{background:#fafafa;border:1px solid #e8e8e8;border-radius:6px;cursor:pointer;padding:12px;transition:all .2s ease}.tls-selected-course-item:hover{border-color:#2f54eb;box-shadow:0 2px 6px #2f54eb26;transform:translateY(-1px)}.tls-selected-course-item.active{background:#f0f5ff;border-color:#2f54eb;box-shadow:0 2px 8px #2f54eb40}.tls-selected-course-time{color:#595959;font-size:12px;margin-bottom:4px}.tls-selected-course-name{color:#262626;font-size:15px;font-weight:600;margin-bottom:6px}.tls-selected-course-meta{color:#8c8c8c;display:flex;flex-wrap:wrap;font-size:12px;gap:12px;margin-bottom:8px}.tls-selected-course-remark,.tls-selected-course-room{display:inline-block}.tls-selected-course-actions{display:flex;gap:8px;margin-top:8px}.tls-selected-course-actions .btn{font-size:12px;padding:4px 12px}.tls-list-view{background:#fff;border:1px solid #e8e8e8;border-radius:12px;padding:16px}.tls-list-header{border-bottom:1px solid #f0f0f0;margin-bottom:16px;padding-bottom:12px}.tls-list-count{color:#595959;font-size:14px;font-weight:500}.tls-list-container{display:flex;flex-direction:column;gap:12px}.tls-list-item{align-items:center;background:#fafafa;border:1px solid #e8e8e8;border-radius:8px;cursor:pointer;display:flex;gap:16px;justify-content:space-between;padding:16px;transition:all .2s ease}.tls-list-item:hover{border-color:#2f54eb;box-shadow:0 2px 8px #2f54eb26;transform:translateY(-1px)}.tls-list-item.active{background:#f0f5ff;border-color:#2f54eb;box-shadow:0 2px 8px #2f54eb40}.tls-list-item-main{flex:1 1;min-width:0}.tls-list-item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.tls-list-date{color:#262626;font-size:13px;font-weight:600}.tls-list-status{border-radius:12px;font-size:11px;font-weight:500;padding:2px 8px}.tls-status-badge-upcoming{background:#e4e6ff;color:#2f54eb}.tls-status-badge-live{background:#fff1f0;color:#cf1322}.tls-status-badge-ended{background:#f6ffed;color:#52c41a}.tls-list-item-body{display:flex;flex-direction:column;gap:4px}.tls-list-course-name{color:#262626;font-size:15px;font-weight:600;margin-bottom:4px}.tls-list-course-meta{display:flex;flex-wrap:wrap;gap:12px}.tls-list-remark,.tls-list-room{color:#8c8c8c;font-size:12px}.tls-list-item-actions{display:flex;flex-shrink:0;gap:8px}.tls-list-empty{color:#8c8c8c;padding:60px 20px;text-align:center}.tls-list-empty p{font-size:14px;margin:0 0 16px}.tls-status-upcoming{border-left:3px solid #2f54eb}.tls-status-live{border-left:3px solid #cf1322}.tls-status-ended{border-left:3px solid #52c41a}.tls-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.tls-modal-content{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;max-height:90vh;max-width:500px;overflow-y:auto;width:90%}.tls-modal-header{align-items:center;border-bottom:1px solid #e8e8e8;display:flex;justify-content:space-between;padding:16px 20px}.tls-modal-header h4{color:#262626;font-size:16px;font-weight:600;margin:0}.tls-modal-close{background:none;border:none;color:#8c8c8c;cursor:pointer;font-size:24px;height:24px;line-height:24px;padding:0;text-align:center;width:24px}.tls-modal-close:hover{color:#262626}.tls-modal-body{padding:20px}.tls-modal-footer{border-top:1px solid #e8e8e8;display:flex;gap:8px;justify-content:flex-end;padding:16px 20px}@media (max-width:1024px){.tls-layout{grid-template-columns:1fr}.tls-list-item{align-items:stretch;flex-direction:column}.tls-list-item-actions{justify-content:stretch;width:100%}.tls-list-item-actions .btn{flex:1 1}}.tls-month-view{display:flex;flex-direction:column;gap:8px}.tls-month-header-row{grid-gap:1px;background:#f0f0f0;border:1px solid #e8e8e8;border-bottom:none;display:grid;gap:1px;grid-template-columns:repeat(7,1fr)}.tls-month-header-cell{background:#fff;color:#595959;font-size:13px;font-weight:500;padding:8px;text-align:center}.tls-month-grid{grid-gap:1px;background:#f0f0f0;border:1px solid #e8e8e8;display:grid;gap:1px;grid-template-columns:repeat(7,1fr)}.tls-month-cell{background:#fff;cursor:pointer;display:flex;flex-direction:column;min-height:100px;padding:4px;transition:all .2s ease}.tls-month-cell:hover{background:#f9f9f9}.tls-month-cell-other{background:#fafafa;color:#bfbfbf}.tls-month-cell-today{background:#e6f7ff}.tls-month-cell-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.tls-month-day{border-radius:50%;font-size:14px;font-weight:500;padding:2px 6px}.tls-month-cell-today .tls-month-day{background:#1890ff;color:#fff}.tls-month-badge{background:#f5222d;border-radius:8px;color:#fff;font-size:10px;line-height:14px;padding:0 4px}.tls-month-cell-body{display:flex;flex:1 1;flex-direction:column;gap:2px;overflow:hidden}.tls-course-dot{align-items:center;background:#f0f5ff;border-left:2px solid #2f54eb;border-radius:2px;display:flex;font-size:10px;gap:4px;overflow:hidden;padding:2px 4px;text-overflow:ellipsis;white-space:nowrap}.tls-course-dot:hover{background:#d6e4ff}.tls-course-dot.active{background:#2f54eb;border-left-color:#1d39c4;color:#fff}.tls-dot-time{font-weight:500}.tls-dot-name{opacity:.9}.student-profiles-container{margin:0 auto;max-width:1400px;padding:0}.student-profiles-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:400px;padding:4rem 2rem}.loading-spinner{border:4px solid #e5e7eb;border-top-color:#4f46e5;height:48px;margin-bottom:1rem;width:48px}.student-list-header{align-items:flex-start;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1.5rem}.header-left h2{color:#1f2937;font-size:1.75rem;font-weight:700;margin:0 0 .5rem}.header-left p{color:#6b7280;font-size:.95rem;margin:0}.header-actions{gap:.75rem}.student-list-filters{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;display:flex;gap:1rem;margin-bottom:2rem;padding:1.5rem}.search-box{flex:1 1}.search-input{border:2px solid #e5e7eb;border-radius:8px;font-size:.95rem;padding:.75rem 1rem;transition:all .2s;width:100%}.search-input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a;outline:none}.filter-select{background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:.95rem;min-width:150px;padding:.75rem 1rem;transition:all .2s}.filter-select:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a;outline:none}.empty-state{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:4rem 2rem;text-align:center}.empty-icon{font-size:4rem;margin-bottom:1rem}.empty-state h3{color:#1f2937;font-size:1.5rem;margin:0 0 .5rem}.empty-state p{color:#6b7280;margin:0 0 1.5rem}.student-list-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.student-card{background:#fff;border:2px solid #0000;border-radius:12px;box-shadow:0 1px 3px #0000001a;cursor:pointer;padding:1.5rem;transition:all .3s ease}.student-card:hover{border-color:#4f46e5;box-shadow:0 8px 16px #00000026;transform:translateY(-4px)}.student-card-header{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;gap:1rem;margin-bottom:1rem;padding-bottom:1rem}.student-avatar{align-items:center;background:linear-gradient(135deg,#4f46e5,#7c3aed);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:1.5rem;font-weight:700;height:56px;justify-content:center;width:56px}.student-name-section h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 .25rem}.student-id{color:#6b7280;font-size:.85rem}.student-card-body{margin-bottom:1rem}.student-info-item{align-items:center;color:#4b5563;display:flex;font-size:.9rem;gap:.5rem;padding:.5rem 0}.info-label{font-size:1rem}.student-card-footer{border-top:1px solid #f3f4f6;padding-top:1rem}.btn-view-detail{background:linear-gradient(135deg,#4f46e5,#7c3aed);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.75rem;transition:all .2s;width:100%}.btn-view-detail:hover{box-shadow:0 4px 12px #4f46e566;transform:translateY(-2px)}.student-detail-header{margin-bottom:2rem}.btn-back{align-items:center;background:none;border:none;color:#4f46e5;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;margin-bottom:1rem;padding:.5rem 0;transition:all .2s}.btn-back:hover{color:#4338ca;transform:translateX(-4px)}.student-detail-header h2{color:#1f2937;font-size:2rem;font-weight:700;margin:0}.student-detail-content{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:2rem}.detail-section{border-bottom:1px solid #e5e7eb;margin-bottom:2rem;padding-bottom:2rem}.silhouette-section{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px;margin-bottom:2rem;padding:2rem}.detail-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.detail-section h3{align-items:center;color:#1f2937;display:flex;font-size:1.5rem;font-weight:600;gap:.5rem;margin:0 0 1.5rem}.detail-section h3:before{background:linear-gradient(135deg,#4f46e5,#7c3aed);border-radius:2px;content:"";height:24px;width:4px}.info-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.info-item{display:flex;flex-direction:column;gap:.5rem}.info-item.full-width{grid-column:1/-1}.info-item label{color:#6b7280;font-size:.85rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.info-item span{color:#1f2937;font-size:1.1rem;font-weight:500}.body-data-form{display:flex;flex-direction:column;gap:1.25rem}.body-data-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.body-data-field{display:flex;flex-direction:column;gap:.5rem}.body-data-field label{color:#6b7280;font-size:.85rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.body-data-field input{border:2px solid #e5e7eb;border-radius:8px;font-size:.95rem;padding:.75rem 1rem;transition:all .2s}.body-data-field input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a;outline:none}.body-data-field input.error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.body-data-preview{align-items:center;background:#f9fafb;border:2px dashed #e5e7eb;border-radius:8px;color:#4f46e5;display:flex;font-weight:600;justify-content:center;min-height:44px;padding:.75rem 1rem}.body-data-error{color:#ef4444;font-size:.75rem}.body-data-actions{align-items:center;display:flex;gap:1rem}.body-data-message{color:#4b5563;font-size:.9rem}.tags-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.tag{background:linear-gradient(135deg,#eef2ff,#e0e7ff);border-radius:20px;color:#4f46e5;font-size:.85rem;font-weight:500;padding:.375rem .75rem}.detail-actions{border-top:2px solid #e5e7eb;display:flex;gap:1rem;margin-top:2rem;padding-top:2rem}.btn{border-radius:8px;font-size:.95rem;padding:.75rem 1.5rem;transition:all .2s}.btn-primary{background:linear-gradient(135deg,#4f46e5,#7c3aed)}.btn-primary:hover{box-shadow:0 4px 12px #4f46e566;transform:translateY(-2px)}.btn-secondary{background:#f3f4f6;color:#4b5563}.btn-secondary:hover{background:#e5e7eb;color:#1f2937}@media (max-width:768px){.student-list-header{gap:1rem}.student-list-filters,.student-list-header{flex-direction:column}.info-grid,.student-list-grid{grid-template-columns:1fr}.detail-actions{flex-direction:column}.btn{width:100%}}.human-silhouette{align-items:center;background:linear-gradient(135deg,#0a0e27,#1a1f3a);border-radius:16px;box-shadow:0 10px 30px #0003;display:flex;height:400px;justify-content:center;margin-bottom:30px;overflow:hidden;position:relative;width:100%}.silhouette-container{height:350px;position:relative;width:200px}.human-figure{height:100%;opacity:.8;position:absolute;width:100%}.head{border-radius:50%;height:60px;top:0;width:60px}.head,.torso{background:linear-gradient(135deg,#00d4ff,#09c);box-shadow:0 0 20px #00d4ff99;left:50%;position:absolute;transform:translateX(-50%)}.torso{-webkit-clip-path:polygon(50% 0,85% 10%,90% 40%,85% 70%,70% 100%,30% 100%,15% 70%,10% 40%,15% 10%);clip-path:polygon(50% 0,85% 10%,90% 40%,85% 70%,70% 100%,30% 100%,15% 70%,10% 40%,15% 10%);height:120px;top:55px;width:80px}.arm{background:linear-gradient(135deg,#00d4ff,#09c);border-radius:10px;box-shadow:0 0 15px #00d4ff99;height:100px;position:absolute;width:20px}.arm-left{left:30%;top:65px;transform:rotate(15deg)}.arm-right{right:30%;top:65px;transform:rotate(-15deg)}.leg{background:linear-gradient(135deg,#00d4ff,#09c);border-radius:12px;box-shadow:0 0 15px #00d4ff99;height:130px;position:absolute;width:25px}.leg-left{bottom:0;left:42%}.leg-right{bottom:0;right:42%}.joint{background-color:#fff;border-radius:50%;box-shadow:0 0 10px #fffc;height:16px;position:absolute;width:16px}.shoulder-left{left:35%;top:60px}.shoulder-right{right:35%;top:60px}.elbow-left{left:28%;top:110px}.elbow-right{right:28%;top:110px}.hip-left{left:42%;top:165px}.hip-right{right:42%;top:165px}.knee-left{left:42%;top:230px}.knee-right{right:42%;top:230px}.data-point{animation:pulse 2s infinite;background-color:#fc0;border-radius:50%;box-shadow:0 0 10px #fc0c;cursor:pointer;height:8px;position:absolute;transform:translate(-50%,-50%);width:8px;z-index:5}.data-point.normal{background-color:#0f8;box-shadow:0 0 10px #0f8c}.data-point.warning{background-color:#fa0;box-shadow:0 0 10px #fa0c}.data-point.critical{background-color:#f36;box-shadow:0 0 10px #f36c}.data-point.active{transform:translate(-50%,-50%) scale(1.5);z-index:10}.scan-line{animation:scan 3s linear infinite;background:linear-gradient(90deg,#0000,#0ff,#0000);height:2px;position:absolute;width:100%}@keyframes scan{0%{top:0}to{top:100%}}.pulse-wave{border:2px solid #00ffff4d;border-radius:50%;height:100%;opacity:0;pointer-events:none;position:absolute;width:100%}.pulse-wave.phase-0{animation:pulse-wave-0 6s infinite}.pulse-wave.phase-1{animation:pulse-wave-1 6s infinite}.pulse-wave.phase-2{animation:pulse-wave-2 6s infinite}@keyframes pulse-wave-0{0%{opacity:0;transform:scale(.5)}16.66%{opacity:.7}33.33%{opacity:0;transform:scale(1.2)}to{opacity:0}}@keyframes pulse-wave-1{33.33%{opacity:0;transform:scale(.5)}50%{opacity:.7}66.66%{opacity:0;transform:scale(1.2)}to{opacity:0}}@keyframes pulse-wave-2{66.66%{opacity:0;transform:scale(.5)}83.33%{opacity:.7}to{opacity:0;transform:scale(1.2)}}.grid-background{background-image:linear-gradient(#00ffff1a 1px,#0000 0),linear-gradient(90deg,#00ffff1a 1px,#0000 0);background-size:20px 20px;height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.data-label{background-color:#000000b3;border-radius:4px;color:#fff;font-size:12px;padding:4px 8px;pointer-events:none;position:absolute;transform:translateX(-50%);transition:all .3s ease;white-space:nowrap;z-index:10}.data-label.active{background-color:#0096ffcc;transform:translateX(-50%) scale(1.1);z-index:15}.data-value{color:#0ff;display:block;font-size:10px;margin-top:2px}.detail-panel{animation:fadeIn .3s ease;background:#0a0e27f2;border:1px solid #00d4ff80;border-radius:12px;box-shadow:0 10px 30px #00000080;left:50%;padding:20px;position:absolute;top:50%;transform:translate(-50%,-50%);width:280px;z-index:20}.panel-header{align-items:center;border-bottom:1px solid #00d4ff4d;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:10px}.panel-header h3{color:#00d4ff;font-size:18px;margin:0}.close-btn{align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:20px;height:24px;justify-content:center;padding:0;transition:all .2s ease;width:24px}.close-btn:hover{background-color:#ffffff1a}.panel-content p{color:#fff;font-size:14px;margin:10px 0}.status{font-weight:700}.status.normal{color:#0f8}.status.warning{color:#fa0}.status.critical{color:#f36}.value{color:#0ff;font-weight:700}.description{color:#ccc;font-size:12px;font-style:italic;margin-top:15px;text-align:center}@media (max-width:768px){.human-silhouette{height:300px}.silhouette-container{height:260px;width:150px}.head{height:45px;width:45px}.torso{height:90px;top:40px;width:60px}.arm{height:75px;width:15px}.arm-left,.arm-right{top:50px}.leg{height:100px;width:20px}.detail-panel{padding:15px;width:240px}}.body-composition-history{margin:0 auto;max-width:1200px;padding:20px}.body-composition-history h2{color:#2c3e50;margin-bottom:20px;text-align:center}.history-container{display:flex;gap:20px;margin-top:20px}.history-sidebar{flex-shrink:0;width:300px}.history-sidebar h3{color:#3498db;font-size:18px;margin-bottom:15px}.history-list{background:#f9f9f9;border-radius:8px;box-shadow:0 2px 5px #0000001a;overflow:hidden}.history-item{border-bottom:1px solid #eee;cursor:pointer;padding:15px;transition:background-color .2s}.history-item:last-child{border-bottom:none}.history-item:hover{background-color:#f0f7ff}.history-item.selected{background-color:#e1f0ff;border-left:4px solid #3498db}.history-date{color:#2c3e50;font-weight:700;margin-bottom:8px}.history-summary{display:flex;justify-content:space-between;margin-bottom:5px}.history-stat{align-items:center;display:flex;flex-direction:column;font-size:14px}.history-stat span:first-child{color:#7f8c8d;font-size:12px}.history-stat span:last-child{color:#2c3e50;font-weight:700}.history-notes{font-size:12px;margin-top:5px}.history-notes,.no-history{color:#7f8c8d;font-style:italic}.no-history{padding:20px;text-align:center}.history-content{background:#fff;border-radius:8px;box-shadow:0 2px 5px #0000001a;flex-grow:1;overflow:hidden}.content-tabs{background:#f5f5f5;border-bottom:1px solid #ddd;display:flex}.tab-button{background:none;border:none;color:#7f8c8d;cursor:pointer;font-size:16px;padding:12px 20px;transition:all .2s}.tab-button.active{background:#fff;border-bottom:3px solid #3498db;color:#3498db;font-weight:700}.content-panel{min-height:400px;padding:20px}.no-selection{align-items:center;color:#7f8c8d;display:flex;font-style:italic;height:300px;justify-content:center}.detailed-record h3{border-bottom:1px solid #eee;color:#2c3e50;margin-bottom:15px;padding-bottom:10px}.record-notes{background:#f9f9f9;border-left:4px solid #3498db;border-radius:5px;margin-bottom:20px;padding:10px}.record-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.record-section{background:#f9f9f9;border-radius:8px;padding:15px}.record-section h4{border-bottom:1px solid #ddd;color:#3498db;font-size:16px;margin-bottom:15px;padding-bottom:8px}.record-item{border-bottom:1px dashed #eee;display:flex;justify-content:space-between;margin-bottom:10px;padding-bottom:8px}.record-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.record-item label{color:#7f8c8d;font-weight:500}.record-item span{color:#2c3e50;font-weight:700}.no-progress{align-items:center;color:#7f8c8d;display:flex;font-style:italic;height:300px;justify-content:center}.progress-section h3{border-bottom:1px solid #eee;color:#2c3e50;margin-bottom:15px;padding-bottom:10px}.progress-period{color:#7f8c8d;font-style:italic;margin-bottom:20px}.progress-assessment{background:#f9f9f9;border-radius:8px;margin-bottom:20px;padding:15px}.assessment-level{margin-bottom:10px}.assessment-level span{border-radius:4px;font-weight:700;margin-left:8px;padding:2px 8px}.level-excellent{background-color:#d4edda;color:#155724}.level-good{background-color:#cce5ff;color:#004085}.level-moderate{background-color:#fff3cd;color:#856404}.level-poor{background-color:#f8d7da;color:#721c24}.assessment-summary{margin-top:10px}.progress-changes{margin-bottom:20px}.progress-changes h4{color:#3498db;margin-bottom:15px}.change-item{border-bottom:1px dashed #eee;display:flex;justify-content:space-between;margin-bottom:10px;padding-bottom:8px}.change-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.change-item label{color:#7f8c8d;font-weight:500}.change-item span{font-weight:700}.change-item .positive{color:#27ae60}.change-item .negative{color:#e74c3c}.progress-recommendations h4{color:#3498db;margin-bottom:10px;margin-top:20px}.progress-recommendations ul{padding-left:20px}.progress-recommendations li{color:#2c3e50;margin-bottom:5px}.no-charts{align-items:center;color:#7f8c8d;display:flex;font-style:italic;height:300px;justify-content:center}.charts-container{display:flex;flex-direction:column;gap:30px}.chart-section{background:#f9f9f9;border-radius:8px;box-shadow:0 2px 5px #0000000d;padding:20px}.chart-section h3{border-bottom:1px solid #ddd;color:#2c3e50;font-size:18px;margin-bottom:15px;padding-bottom:8px}.chart-wrapper{height:300px;position:relative}.error,.loading{font-size:18px;padding:40px;text-align:center}.error{color:#e74c3c}@media (max-width:768px){.history-container{flex-direction:column}.history-sidebar{width:100%}.record-grid{grid-template-columns:1fr}.charts-container{gap:20px}.chart-wrapper{height:250px}}.video-selector{background:#fff;border-radius:8px;display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.video-selector-header{background:#fafafa;border-bottom:1px solid #f0f0f0;padding:16px 20px}.video-selector-header h3{color:#262626;font-size:16px;font-weight:600;margin:0 0 12px}.video-selector-search{width:100%}.video-selector-search-input{border:1px solid #d9d9d9;border-radius:6px;font-size:14px;padding:8px 12px;transition:all .2s;width:100%}.video-selector-search-input:focus{border-color:#2f54eb;box-shadow:0 0 0 2px #2f54eb1a;outline:none}.video-selector-content{flex:1 1;overflow-y:auto;padding:16px}.video-selector-empty,.video-selector-loading{color:#8c8c8c;font-size:14px;padding:40px 20px;text-align:center}.video-selector-courses{display:flex;flex-direction:column;gap:12px}.video-selector-course-card{background:#fff;border:1px solid #e8e8e8;border-radius:8px;overflow:hidden;transition:all .2s}.video-selector-course-card:hover{box-shadow:0 2px 8px #0000001a}.video-selector-course-header{align-items:center;cursor:pointer;display:flex;padding:12px 16px;transition:background .2s}.video-selector-course-header:hover{background:#fafafa}.video-selector-course-cover{border-radius:6px;flex-shrink:0;height:72px;margin-right:16px;object-fit:cover;width:120px}.video-selector-course-info{flex:1 1;min-width:0}.video-selector-course-title{color:#262626;font-size:15px;font-weight:600;margin:0 0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.video-selector-course-meta{align-items:center;display:flex;gap:12px;margin-bottom:6px}.video-selector-course-category{background:#f5f5f5;border-radius:4px;color:#595959;font-size:12px;padding:2px 8px}.video-selector-course-price{color:#fa8c16;font-size:14px;font-weight:600}.video-selector-course-video-count,.video-selector-expand-icon{color:#8c8c8c;font-size:12px}.video-selector-expand-icon{flex-shrink:0;margin-left:12px}.video-selector-videos{grid-gap:12px;background:#fafafa;border-top:1px solid #f0f0f0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));padding:12px 16px}.video-selector-no-videos{color:#8c8c8c;font-size:14px;grid-column:1/-1;padding:20px;text-align:center}.video-selector-video-item{background:#fff;border:1px solid #e8e8e8;border-radius:6px;cursor:pointer;overflow:hidden;transition:all .2s}.video-selector-video-item:hover{border-color:#2f54eb;box-shadow:0 2px 8px #2f54eb26;transform:translateY(-2px)}.video-selector-video-thumb{background:#f0f0f0;overflow:hidden;padding-top:56.25%;position:relative;width:100%}.video-selector-video-thumb img{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%}.video-selector-video-badge{background:#52c41a;font-size:10px;font-weight:500;left:6px;top:6px}.video-selector-video-badge,.video-selector-video-duration{border-radius:4px;color:#fff;padding:2px 6px;position:absolute}.video-selector-video-duration{background:#000000b3;bottom:6px;font-size:11px;right:6px}.video-selector-video-info{padding:10px}.video-selector-video-title{color:#262626;font-size:13px;font-weight:500;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.video-selector-video-status{font-size:11px}.status-annotated{color:#52c41a}.status-unannotated{color:#fa8c16}.teacher-stats-container{background:#0000;border-radius:0;margin-bottom:0;padding:0}.stats-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.stats-header-actions{align-items:center;display:flex;gap:.75rem}.btn-toggle{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.btn-toggle:hover{background:#e5e7eb;border-color:#d1d5db;color:#374151}.toggle-icon{font-size:.875rem;transition:transform .2s}.toggle-text{display:inline-block}.btn-refresh{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.btn-refresh:hover{background:#e5e7eb;border-color:#d1d5db;color:#374151}.refresh-icon{font-size:1rem;transition:transform .3s}.btn-refresh:hover .refresh-icon{transform:rotate(180deg)}.refresh-text{display:inline-block}.stats-error,.stats-loading{color:#666;padding:40px;text-align:center}.stats-error p{margin-bottom:10px}.btn-retry{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.btn-retry:hover{background:#0056b3}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.stat-card{align-items:center;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;display:flex;gap:1rem;overflow:hidden;padding:1.5rem;position:relative;transition:all .3s ease}.stat-card:before{background:#6366f1;background:var(--card-color,#6366f1);content:"";height:3px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s}.stat-card:hover{border-color:#6366f1;border-color:var(--card-color,#6366f1);box-shadow:0 8px 16px #0000001f;transform:translateY(-4px)}.stat-card:hover:before{opacity:1}.stat-card.clickable{border-color:#6366f1;border-color:var(--card-color,#6366f1);cursor:pointer}.stat-card.clickable:hover{transform:translateY(-6px)}.stat-card-primary{--card-color:#3b82f6}.stat-card-success{--card-color:#10b981}.stat-card-warning{--card-color:#f59e0b}.stat-card-info{--card-color:#06b6d4}.stat-card-secondary{--card-color:#6b7280}.stat-card-tertiary{--card-color:#8b5cf6}.stat-card-quaternary{--card-color:#ec4899}.stat-card-quinary{--card-color:#f97316}.stat-card-eval{--card-color:#2563eb}.stat-card-annot{--card-color:#f97316}.stat-icon{align-items:center;background:linear-gradient(135deg,#6366f115,#6366f11a);background:linear-gradient(135deg,var(--card-color,#6366f1)15,rgba(var(--card-color-rgb,99,102,241),.1));border-radius:12px;display:flex;flex-shrink:0;font-size:2.5rem;height:60px;justify-content:center;opacity:.9;width:60px}.stat-content{flex:1 1}.stat-label{color:#6b7280;font-size:.8125rem;font-weight:500;margin-bottom:.5rem}.stat-value{color:#1f2937;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:1.75rem;font-weight:700;line-height:1.2}.stat-unit{color:#9ca3af;font-size:.75rem;font-weight:500;margin-top:.25rem}@media (max-width:768px){.stats-grid{gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stat-card{gap:12px;padding:16px}.stat-icon{font-size:24px}.stat-value{font-size:20px}}.admin-layout{background:#f5f7fa;display:flex;min-height:100vh}.admin-sidebar{background:linear-gradient(180deg,#1e293b,#0f172a);box-shadow:2px 0 8px #0000001a;color:#fff;display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;transition:width .3s ease;width:260px;z-index:1000}.admin-layout.sidebar-collapsed .admin-sidebar{width:80px}.sidebar-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;padding:1.5rem}.logo,.sidebar-header{align-items:center;display:flex}.logo{font-size:1.25rem;font-weight:700;gap:.75rem}.logo-icon{font-size:1.75rem}.logo-text{opacity:0;transition:opacity .3s;white-space:nowrap}.admin-layout:not(.sidebar-collapsed) .logo-text{opacity:1}.sidebar-toggle{align-items:center;background:#ffffff1a;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:32px;justify-content:center;transition:background .2s;width:32px}.sidebar-toggle:hover{background:#fff3}.sidebar-nav{flex:1 1;overflow-y:auto;padding:1rem 0}.nav-item{align-items:center;background:none;border:none;color:#ffffffb3;cursor:pointer;display:flex;font-size:.95rem;gap:.75rem;padding:.875rem 1.5rem;position:relative;text-align:left;transition:all .2s;width:100%}.nav-item:hover{background:#ffffff0d;color:#fff}.nav-item.active{background:#6366f133;border-left:3px solid #6366f1;color:#fff}.nav-item.active:before{background:#6366f1;bottom:0;content:"";left:0;position:absolute;top:0;width:3px}.nav-icon{flex-shrink:0;font-size:1.25rem;text-align:center;width:24px}.nav-label{flex:1 1;opacity:0;transition:opacity .3s;white-space:nowrap}.admin-layout:not(.sidebar-collapsed) .nav-label{opacity:1}.nav-badge{background:#ef4444;border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;min-width:20px;padding:.125rem .5rem;text-align:center}.sidebar-footer{border-top:1px solid #ffffff1a;padding:1rem 1.5rem}.user-info{gap:.75rem;margin-bottom:.75rem;padding:.75rem 0}.user-avatar,.user-info{align-items:center;display:flex}.user-avatar{background:#ffffff1a;border-radius:50%;flex-shrink:0;font-size:1.25rem;height:40px;justify-content:center;width:40px}.user-details{flex:1 1;opacity:0;transition:opacity .3s}.admin-layout:not(.sidebar-collapsed) .user-details{opacity:1}.user-name{font-size:.9rem;font-weight:600;margin-bottom:.125rem}.user-role{color:#fff9;font-size:.75rem}.logout-btn{align-items:center;background:#ef44441a;border:1px solid #ef444433;border-radius:8px;color:#fca5a5;cursor:pointer;display:flex;font-size:.9rem;gap:.5rem;justify-content:center;padding:.75rem;transition:all .2s;width:100%}.logout-btn:hover{background:#ef444433;color:#fff}.logout-icon{font-size:1.1rem}.admin-layout.sidebar-collapsed .logout-btn span:not(.logout-icon){display:none}.admin-main{display:flex;flex:1 1;flex-direction:column;margin-left:260px;transition:margin-left .3s ease}.admin-layout.sidebar-collapsed .admin-main{margin-left:80px}.admin-topbar{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px #0000000d;display:flex;justify-content:space-between;padding:1.25rem 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.page-title{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0}.topbar-right{align-items:center;display:flex;gap:1rem}.topbar-actions{display:flex;gap:.5rem}.action-btn{align-items:center;background:#f3f4f6;border:none;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;height:40px;justify-content:center;position:relative;transition:all .2s;width:40px}.action-btn:hover{background:#e5e7eb;color:#374151}.action-icon{font-size:1.25rem}.action-badge{background:#ef4444;border-radius:10px;color:#fff;font-size:.75rem;font-weight:600;min-width:18px;padding:.125rem .375rem;position:absolute;right:-4px;text-align:center;top:-4px}.stats-section{background:#fff;border-bottom:1px solid #e5e7eb;padding:1.5rem 2rem}.admin-content{flex:1 1;overflow-y:auto;padding:2rem}@media (max-width:1024px){.admin-sidebar{transform:translateX(-100%)}.admin-layout.sidebar-collapsed .admin-sidebar{transform:translateX(0)}.admin-layout.sidebar-collapsed .admin-main,.admin-main{margin-left:0}}.admin-content::-webkit-scrollbar,.sidebar-nav::-webkit-scrollbar{width:6px}.admin-content::-webkit-scrollbar-track,.sidebar-nav::-webkit-scrollbar-track{background:#ffffff0d}.admin-content::-webkit-scrollbar-thumb,.sidebar-nav::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.admin-content::-webkit-scrollbar-thumb:hover,.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.coach-radar-evaluation{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin:20px 0;max-width:100%;padding:20px}.evaluation-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.evaluation-header h3{color:#333;font-size:1.5rem;margin:0}.header-actions{display:flex;gap:10px}.cancel-button,.comparison-toggle,.edit-button,.save-button{border:none;border-radius:4px;cursor:pointer;font-weight:500;padding:8px 16px;transition:background-color .2s}.comparison-toggle{background-color:#f0f0f0;color:#333}.comparison-toggle.active{background-color:#2196f3;color:#fff}.comparison-toggle:hover{background-color:#e0e0e0}.comparison-toggle.active:hover{background-color:#0d8bf2}.edit-button{background-color:#4caf50;color:#fff}.edit-button:hover{background-color:#45a049}.save-button{background-color:#4caf50;color:#fff}.save-button:hover{background-color:#45a049}.cancel-button{background-color:#f44336;color:#fff}.cancel-button:hover{background-color:#d32f2f}.edit-actions{display:flex;gap:8px}.evaluation-content{display:flex;flex-direction:column;gap:20px}.radar-chart-container{align-items:center;display:flex;justify-content:center}.radar-comparison{gap:30px}.radar-comparison,.radar-item{align-items:center;display:flex}.radar-item{flex-direction:column;gap:10px}.radar-item h4{color:#555;font-size:1.1rem;margin:0}.single-radar{display:flex;justify-content:center}.score-details{gap:20px}.overall-score{background-color:#f9f9f9;border-radius:8px;padding:15px;text-align:center}.overall-score h4{color:#555;margin:0 0 10px}.score-display{align-items:center;gap:5px}.score-value{font-size:2.5rem}.score-level{font-size:1rem;opacity:.8}.dimension-scores{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.dimension-score{background-color:#f9f9f9;border-left:4px solid #ddd;border-radius:8px;padding:15px}.dimension-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.dimension-label{color:#333;font-weight:600}.dimension-score-value{font-size:1.1rem;font-weight:500}.dimension-description{color:#666;font-size:.9rem;margin-bottom:10px}.score-slider{margin-right:5px;width:100px}.score-indicators{display:flex;gap:3px;margin-top:8px}.score-indicator{background-color:#ddd;border-radius:50%;height:8px;width:8px}.score-indicator.active{background-color:#2196f3}.ai-comparison{border-top:1px dashed #ddd;font-size:.9rem;margin-top:8px;padding-top:8px}.ai-label{color:#666}.ai-score-value{font-weight:500}@media (max-width:768px){.evaluation-header{align-items:flex-start;flex-direction:column;gap:10px}.radar-comparison{flex-direction:column;gap:20px}.dimension-scores{grid-template-columns:1fr}}.motion-performance-scoring{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0cc;border-radius:16px;box-shadow:0 8px 32px #0000001f;margin-bottom:28px;overflow:hidden;padding:28px;position:relative;transition:all .4s cubic-bezier(.25,.46,.45,.94)}.motion-performance-scoring:before{animation:gradient-flow 4s ease infinite;background:linear-gradient(90deg,#3b82f6,#8b5cf6,#06b6d4,#10b981);background-size:300% 100%;content:"";height:5px;left:0;position:absolute;right:0;top:0}@keyframes gradient-flow{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.motion-performance-scoring:hover{box-shadow:0 12px 40px #00000026;transform:translateY(-4px)}.scoring-header{align-items:center;border-bottom:1px solid #e2e8f0cc;display:flex;justify-content:space-between;margin-bottom:28px;padding-bottom:20px}.scoring-header h3{align-items:center;color:#1e293b;display:flex;font-size:22px;font-weight:700;gap:12px;margin:0}.scoring-header h3:before{content:"📊";filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));font-size:26px}.scoring-header p{color:#64748b;font-size:15px;line-height:1.5;margin:0;max-width:60%}.real-time-indicator{align-items:center;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-left:5px solid #22c55e;border-radius:12px;box-shadow:0 4px 12px #22c55e26;display:flex;margin-top:16px;padding:12px 20px;transition:all .3s ease}.real-time-indicator:hover{box-shadow:0 6px 16px #22c55e33;transform:translateY(-2px)}.status-dot{animation:pulse 2s infinite;border-radius:50%;height:14px;margin-right:10px;width:14px}.status-dot.active{background-color:#22c55e;box-shadow:0 0 0 3px #22c55e4d}.status-dot.inactive{animation:none;background-color:#94a3b8}.status-text{color:#15803d}.real-time-score,.status-text{font-size:15px;font-weight:600}.real-time-score{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1px solid #bbf7d0;border-radius:24px;box-shadow:0 2px 8px #22c55e1a;margin-left:auto;padding:8px 16px}.real-time-score .score-value{color:#15803d;font-size:16px;font-weight:700}.scoring-actions{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:28px}.btn{align-items:center;box-shadow:0 4px 12px #0000001a;display:flex;font-size:15px;gap:10px;overflow:hidden;position:relative;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.btn:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.btn:hover:before{left:100%}.btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb)}.btn-primary:hover:not(:disabled){box-shadow:0 8px 16px #3b82f666;transform:translateY(-3px)}.btn-primary:disabled{background:linear-gradient(135deg,#94a3b8,#64748b);cursor:not-allowed;transform:none!important}.btn-primary:disabled:before{display:none}.btn-info{background:linear-gradient(135deg,#06b6d4,#0891b2);color:#fff}.btn-info:hover:not(:disabled){box-shadow:0 8px 16px #06b6d466;transform:translateY(-3px)}.btn-warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.btn-warning:hover:not(:disabled){box-shadow:0 4px 12px #f59e0b4d;transform:translateY(-2px)}.btn-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-success:hover:not(:disabled){box-shadow:0 4px 12px #10b9814d;transform:translateY(-2px)}.analysis-progress{align-items:center;display:flex;gap:12px;margin-bottom:24px}.progress-bar{background-color:#e2e8f0;border-radius:5px;flex-grow:1;height:10px;overflow:hidden;position:relative}.progress-fill{background:linear-gradient(90deg,#3b82f6,#8b5cf6);height:100%;position:relative;transition:width .5s ease}.progress-fill:after{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.progress-text{color:#475569;min-width:40px;text-align:right}.scoring-results{margin-top:24px}.overall-score{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 4px 16px #0000000f;margin-bottom:24px;overflow:hidden;padding:20px;position:relative}.overall-score:before{background:linear-gradient(90deg,#3b82f6,#8b5cf6,#06b6d4);content:"";height:3px;left:0;position:absolute;right:0;top:0}.overall-score h4{align-items:center;color:#1e293b;display:flex;font-size:18px;font-weight:600;gap:8px;margin:0 0 20px}.overall-score h4:before{content:"🏆";font-size:20px}.score-breakdown{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 4px 16px #0000000f;display:flex;flex-direction:column;gap:16px;margin-bottom:24px;padding:20px}.score-breakdown h4{align-items:center;color:#1e293b;display:flex;font-size:18px;font-weight:600;gap:8px;margin:0 0 16px}.score-breakdown h4:before{content:"📋";font-size:20px}.score-item-overall{align-items:center;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:8px;display:flex;justify-content:space-between;padding:12px 16px;transition:all .2s ease}.score-item-overall:hover{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);box-shadow:0 2px 8px #0000000d;transform:translateY(-1px)}.score-label{color:#475569;font-size:14px;font-weight:600}.score-value{background:linear-gradient(135deg,#fff,#f8fafc);border-radius:6px;box-shadow:0 1px 3px #0000001a;font-size:16px;font-weight:700;padding:4px 8px}.score-value.ai{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af}.score-value.teacher{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#15803d}.score-value.final{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#b91c1c}.detailed-scores{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.score-item{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0cc;border-radius:12px;box-shadow:0 6px 20px #00000014;overflow:hidden;padding:24px;position:relative;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.score-item:before{background:linear-gradient(180deg,#3b82f6,#8b5cf6,#06b6d4);content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .4s ease;width:5px}.score-item:hover{box-shadow:0 12px 30px #0000001f;transform:translateY(-6px)}.score-item:hover:before{opacity:1}.score-header{align-items:center;border-bottom:1px solid #e2e8f0cc;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.score-name{color:#1e293b;font-size:18px;font-weight:700;letter-spacing:-.025em}.score-display{align-items:flex-end;display:flex;flex-direction:column;gap:10px}.ai-score{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-radius:8px;box-shadow:0 2px 8px #3b82f626;color:#1e40af;font-size:15px;font-weight:600;padding:6px 12px;transition:all .3s ease}.ai-score:hover{box-shadow:0 4px 12px #3b82f640;transform:scale(1.05)}.teacher-score{background:linear-gradient(135deg,#dcfce7,#bbf7d0);border-radius:8px;box-shadow:0 2px 8px #22c55e26;color:#15803d;font-size:15px;font-weight:600;padding:6px 12px;transition:all .3s ease}.teacher-score:hover{box-shadow:0 4px 12px #22c55e40;transform:scale(1.05)}.teacher-score-input{background:linear-gradient(135deg,#fff,#f8fafc);border:2px solid #e2e8f0;border-radius:8px;font-size:15px;font-weight:600;padding:6px 12px;text-align:center;transition:all .3s ease;width:70px}.teacher-score-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.score-details{display:flex;flex-direction:column;gap:8px}.detail-item{border-bottom:1px dashed #e2e8f099;color:#64748b;font-size:14px;line-height:1.5;padding:6px 0;transition:all .2s ease}.detail-item:last-child{border-bottom:none}.detail-item:hover{background:linear-gradient(90deg,#3b82f60d,#0000);color:#475569;padding-left:8px}.radar-evaluation{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0cc;border-radius:12px;box-shadow:0 6px 20px #00000014;margin-top:28px;overflow:hidden;padding:28px;position:relative}.radar-evaluation:before{animation:gradient-shift 8s ease infinite;background:linear-gradient(90deg,#3b82f6,#8b5cf6,#06b6d4,#10b981);background-size:300% 100%;content:"";height:4px;left:0;position:absolute;right:0;top:0}@keyframes gradient-shift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.radar-evaluation h4{align-items:center;color:#1e293b;display:flex;font-size:20px;font-weight:700;gap:10px;letter-spacing:-.025em;margin:0 0 24px}.radar-evaluation h4:before{content:"📊";filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));font-size:22px}.radar-container{display:flex;flex-wrap:wrap;gap:28px;justify-content:center}.radar-chart-container{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0cc;border-radius:12px;box-shadow:inset 0 2px 8px #00000014;flex:1 1;height:340px;max-width:420px;min-width:320px;padding:20px;position:relative;transition:all .3s ease}.radar-chart-container:hover{box-shadow:inset 0 2px 8px #00000014,0 8px 25px #0000001a;transform:scale(1.02)}.radar-actions{display:flex;gap:16px;justify-content:center;margin-top:24px}.radar-btn{align-items:center;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border:1px solid #cbd5e1;border-radius:8px;color:#475569;cursor:pointer;display:flex;font-size:15px;font-weight:600;gap:8px;padding:10px 20px;transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.radar-btn:hover{background:linear-gradient(135deg,#e2e8f0,#cbd5e1);box-shadow:0 4px 12px #0000001a;color:#334155;transform:translateY(-2px)}.real-time-results{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0cc;border-left:5px solid #22c55e;border-radius:12px;box-shadow:0 6px 20px #00000014;margin-top:28px;overflow:hidden;padding:24px;position:relative}.real-time-results:before{animation:gradient-shift 8s ease infinite;background:linear-gradient(90deg,#22c55e,#10b981,#059669);background-size:300% 100%;content:"";height:4px;left:0;position:absolute;right:0;top:0}.real-time-results h5{align-items:center;color:#15803d;display:flex;font-size:18px;font-weight:700;gap:10px;letter-spacing:-.025em;margin:0 0 20px}.real-time-results h5:before{content:"📊";filter:drop-shadow(0 2px 4px rgba(34,197,94,.2));font-size:20px}.real-time-score-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.real-time-score-item{align-items:center;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0cc;border-radius:12px;display:flex;flex-direction:column;overflow:hidden;padding:20px;position:relative;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.real-time-score-item:before{background:linear-gradient(90deg,#22c55e,#10b981);content:"";height:4px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:transform .4s ease}.real-time-score-item:hover{box-shadow:0 8px 25px #0000001f;transform:translateY(-6px)}.real-time-score-item:hover:before{transform:scaleX(1)}.real-time-score-label{color:#475569;font-size:15px;font-weight:600;margin-bottom:12px;text-align:center}.real-time-score-value{background:linear-gradient(135deg,#dcfce7,#bbf7d0);border-radius:10px;box-shadow:0 4px 12px #22c55e26;color:#15803d;font-size:28px;font-weight:700;margin-bottom:12px;padding:8px 16px;transition:all .3s ease}.real-time-score-value:hover{box-shadow:0 6px 16px #22c55e40;transform:scale(1.05)}@media (max-width:768px){.motion-performance-scoring{padding:16px}.scoring-header{align-items:flex-start;flex-direction:column;gap:12px}.scoring-header p{max-width:100%}.scoring-actions{flex-direction:column}.btn{justify-content:center;width:100%}.detailed-scores{grid-template-columns:1fr}.radar-container{align-items:center;flex-direction:column}.real-time-indicator{align-items:flex-start;flex-direction:column;gap:8px}.real-time-score{align-self:stretch;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1px solid #bbf7d0;border-radius:8px;margin-left:0;padding:8px;text-align:center}.real-time-score-grid{gap:12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.score-circle{height:100px;width:100px}.score-value{font-size:28px}}@media (max-width:480px){.motion-performance-scoring{padding:12px}.scoring-header h3{font-size:18px}.overall-score,.radar-evaluation,.real-time-results,.score-breakdown{padding:16px}.real-time-score-grid{gap:8px;grid-template-columns:1fr}.score-circle{height:80px;width:80px}.score-value{font-size:24px}}@media (prefers-color-scheme:dark){.motion-performance-scoring{background:linear-gradient(135deg,#1e293b,#334155);border-color:#475569;color:#f1f5f9}.scoring-header h3{color:#f1f5f9}.scoring-header p{color:#cbd5e1}.real-time-indicator{background:linear-gradient(135deg,#064e3b,#065f46);border-left-color:#10b981}.status-text{color:#6ee7b7}.real-time-score{background:linear-gradient(135deg,#064e3b,#065f46);border-color:#10b981}.real-time-score .score-value{color:#6ee7b7}.overall-score,.radar-evaluation,.real-time-results,.score-breakdown,.score-item{background:linear-gradient(135deg,#1e293b,#334155);border-color:#475569;color:#f1f5f9}.overall-score h4,.radar-evaluation h4,.real-time-results h5,.score-breakdown h4{color:#f1f5f9}.score-item-overall{background:linear-gradient(135deg,#334155,#475569);border-color:#64748b}.score-item-overall:hover{background:linear-gradient(135deg,#475569,#64748b)}.score-label{color:#cbd5e1}.score-value{background:linear-gradient(135deg,#334155,#475569)}.score-value.ai{background:linear-gradient(135deg,#1e3a8a,#1e40af);color:#93c5fd}.score-value.teacher{background:linear-gradient(135deg,#14532d,#166534);color:#86efac}.score-value.final{background:linear-gradient(135deg,#7f1d1d,#991b1b);color:#fca5a5}.detail-item{color:#94a3b8}.real-time-score-item{background:linear-gradient(135deg,#334155,#475569);border-color:#64748b}.real-time-score-label{color:#cbd5e1}.real-time-score-value{background:linear-gradient(135deg,#14532d,#166534);color:#86efac}.progress-bar{background-color:#475569}.radar-chart-container{background:linear-gradient(135deg,#334155,#475569);border-color:#64748b}.radar-btn{background:linear-gradient(135deg,#475569,#64748b);border-color:#94a3b8;color:#cbd5e1}.radar-btn:hover{background:linear-gradient(135deg,#64748b,#94a3b8);color:#f1f5f9}.ai-score{background:linear-gradient(135deg,#1e3a8a,#1e40af);color:#93c5fd}.teacher-score{background:linear-gradient(135deg,#14532d,#166534);color:#86efac}}.profile-data-checker{background-color:#f8f9fa;border-radius:8px;box-shadow:0 2px 4px #0000001a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:15px 0;padding:20px}.profile-data-checker.loading{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:40px 20px}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #e9ecef;border-radius:50%;border-top-color:#007bff;height:40px;margin-bottom:15px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.profile-data-checker.complete{border-left:4px solid #28a745}.data-summary h3{color:#28a745;margin-bottom:15px;margin-top:0}.data-highlights{display:flex;flex-wrap:wrap;gap:15px;margin-top:20px}.highlight-item{background-color:#e9f7ef;border-radius:6px;display:flex;flex-direction:column;min-width:150px;padding:10px 15px}.highlight-item span:first-child{color:#6c757d;font-size:.85rem;margin-bottom:5px}.highlight-item span:last-child{color:#28a745;font-weight:600}.profile-data-checker.needs-assessment{border-left:4px solid #ffc107}.assessment-intro h3{color:#856404;margin-bottom:15px;margin-top:0}.assessment-intro p{color:#856404;line-height:1.5;margin-bottom:10px}.assessment-options{display:flex;flex-wrap:wrap;gap:15px;margin-top:20px}.assessment-button{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-weight:500;min-width:150px;padding:12px 20px;transition:all .2s ease}.assessment-button.primary{background-color:#007bff;color:#fff}.assessment-button.primary:hover{background-color:#0069d9}.assessment-step{margin-top:20px}.assessment-step h4{border-bottom:1px solid #dee2e6;color:#495057;margin-bottom:15px;margin-top:0;padding-bottom:10px}.assessment-processing{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:30px 20px}.processing-spinner{animation:spin 1s linear infinite;border:3px solid #e9ecef;border-radius:50%;border-top-color:#007bff;height:30px;margin-bottom:15px;width:30px}.assessment-results{display:flex;flex-direction:column;gap:20px}.result-group{background-color:#fff;border-radius:6px;box-shadow:0 1px 3px #0000001a;padding:15px}.result-group h5{color:#495057;font-size:1rem;font-weight:600;margin-bottom:15px;margin-top:0}.result-item{align-items:center;border-bottom:1px solid #f1f3f4;display:flex;justify-content:space-between;padding:8px 0}.result-item:last-child{border-bottom:none}.result-item label{color:#495057;font-weight:500}.result-item span{color:#212529;font-weight:600}.assessment-actions{display:flex;gap:15px;justify-content:flex-end;margin-top:20px}.action-button{border:none;border-radius:6px;cursor:pointer;font-weight:500;padding:10px 16px;transition:all .2s ease}.action-button.primary{background-color:#007bff;color:#fff}.action-button.primary:hover:not(:disabled){background-color:#0069d9}.action-button.primary:disabled{background-color:#6c757d;cursor:not-allowed}.action-button.secondary{background-color:#6c757d;color:#fff}.action-button.secondary:hover{background-color:#5a6268}@media (max-width:768px){.profile-data-checker{padding:15px}.assessment-options{flex-direction:column}.assessment-button{width:100%}.data-highlights{flex-direction:column}.highlight-item{min-width:auto}.assessment-actions{flex-direction:column}.action-button{width:100%}}.annotation-workspace{background-color:#f5f5f5;display:flex;flex-direction:column;height:100vh}.workspace-header{align-items:center;background-color:#2c3e50;box-shadow:0 2px 5px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:15px 20px}.workspace-header h2{font-size:1.5rem;margin:0}.close-button{background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:1.5rem;padding:5px;transition:background-color .3s}.close-button:hover{background-color:#ffffff1a}.workspace-content{display:flex;flex:1 1;overflow:hidden}.video-section{background-color:#34495e;display:flex;flex:1 1;flex-direction:column;padding:20px}.video-container{align-items:center;background-color:#000;border-radius:8px;box-shadow:0 4px 8px #0003;display:flex;flex:1 1;justify-content:center;overflow:hidden;position:relative}.video-player{max-height:100%;max-width:100%;object-fit:contain}.annotation-canvas{cursor:crosshair;left:0;position:absolute;top:0;z-index:2}.overlay-canvas{left:0;pointer-events:none;position:absolute;top:0;z-index:1}.video-controls{align-items:center;display:flex;gap:15px;margin-top:15px}.frame-control{align-items:flex-start;background-color:#f8f9fa;border-radius:6px;display:flex;flex:1 1;flex-direction:column;gap:8px;padding:10px}.frame-control label{color:#333;font-size:14px;font-weight:600}.frame-interval-hint{color:#666;font-size:12px;font-weight:400}.frame-control input[type=range]{width:100%}.annotation-section{background-color:#ecf0f1;display:flex;flex-direction:column;gap:20px;overflow-y:auto;padding:20px;width:400px}.annotation-controls{display:flex;flex-direction:column;gap:15px}.manual-controls,.mode-toggle{display:flex;gap:10px}.manual-controls{background-color:#fff;border-radius:5px;box-shadow:0 2px 4px #0000001a;flex-direction:column;padding:10px}.grid-controls{align-items:center;display:flex;gap:10px}.grid-size-input{border:1px solid #ddd;border-radius:4px;padding:5px;width:60px}.history-controls,.point-controls{display:flex;gap:10px}.point-controls{align-items:center}.point-type-select{border:1px solid #ddd;border-radius:4px;padding:5px}.action-buttons{display:flex;flex-wrap:wrap;gap:10px}.annotation-info,.skeleton-detector{background-color:#fff;border-radius:5px;box-shadow:0 2px 4px #0000001a;padding:15px}.annotation-details{display:flex;flex-direction:column;gap:10px}.annotation-notes{border:1px solid #ddd;border-radius:4px;min-height:80px;padding:10px;resize:vertical;width:100%}.screenshots{display:flex;flex-wrap:wrap;gap:10px}.screenshot{border-radius:4px;cursor:pointer;height:75px;object-fit:cover;transition:transform .2s;width:100px}.screenshot:hover{transform:scale(1.05)}.overlay-controls{background-color:#fff;border-radius:5px;box-shadow:0 2px 4px #0000001a;margin-top:15px;padding:15px}.overlay-controls h4{color:#2c3e50;margin-bottom:10px;margin-top:0}.overlay-toggle{margin-bottom:10px}.overlay-settings{display:flex;flex-direction:column;gap:15px;margin-top:10px}.opacity-control{display:flex;flex-direction:column;gap:5px}.opacity-control label{font-size:14px;font-weight:700}.opacity-control input[type=range]{width:100%}.screenshot-selector{display:flex;flex-direction:column;gap:5px}.screenshot-selector label{font-size:14px;font-weight:700}.screenshot-selector select{background-color:#fff;border:1px solid #ddd;border-radius:4px;padding:8px}.video-upload-modal{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background-color:#fff;border-radius:8px;display:flex;flex-direction:column;max-height:80vh;max-width:800px;overflow-y:auto;width:80%}.modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:15px 20px}.profile-checker-modal{align-items:center;background-color:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.profile-checker-modal .modal-content{background-color:#fff;border-radius:8px;max-height:80vh;max-width:800px;overflow-y:auto;padding:20px;width:80%}.profile-checker-modal .modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.modal-header h3{margin:0}.btn{border-radius:4px;font-size:14px;padding:8px 15px;transition:background-color .3s}.btn-primary{background-color:#3498db}.btn-primary:hover{background-color:#2980b9}.btn-secondary{background-color:#95a5a6;color:#fff}.btn-secondary:hover{background-color:#7f8c8d}.btn-danger{background-color:#e74c3c;color:#fff}.btn-danger:hover{background-color:#c0392b}.btn:disabled{opacity:.6}@media (max-width:1024px){.workspace-content{flex-direction:column}.annotation-section{max-height:40vh;width:100%}.video-section{max-height:60vh}}@media (max-width:768px){.video-controls{align-items:stretch;flex-direction:column}.frame-control{width:100%}.action-buttons{flex-direction:column}}.dancer-profile-form{background-color:#fff;border-radius:16px;box-shadow:0 8px 30px #0000001a;font-family:PingFang SC,Microsoft YaHei,sans-serif;margin:0 auto;max-width:600px;overflow:hidden;padding:20px}.form-header{margin-bottom:30px;text-align:center}.form-header h1{color:#333;font-size:24px;font-weight:700;line-height:1.3;margin-bottom:8px}.form-subtitle{color:#58cc02;font-size:18px;font-weight:600;margin:0}.progress-bar{align-items:center;display:flex;justify-content:space-between;margin-bottom:30px}.progress-dots{display:flex;flex:1 1;margin-right:15px}.dot{background-color:#e5e5e5;border-radius:50%;height:8px;margin-right:8px;transition:background-color .3s ease;width:8px}.dot.active{background-color:#58cc02}.progress-text{color:#777;font-size:14px;font-weight:600}.form-content{margin-bottom:30px;min-height:400px}.form-step{animation:fadeIn .5s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.form-step h2{color:#333;font-size:22px;font-weight:700;margin-bottom:25px;text-align:center}.question-group{margin-bottom:30px}.question-group h3{color:#333;font-size:18px;font-weight:600;margin-bottom:15px}.checkbox-group,.radio-group{display:flex;flex-direction:column;gap:12px}.checkbox-label,.radio-label{align-items:flex-start;background-color:#f7f7f7;border-radius:12px;cursor:pointer;display:flex;padding:15px;position:relative;transition:all .2s ease}.checkbox-label:hover,.radio-label:hover{background-color:#efefef}.checkbox-label input[type=checkbox],.radio-label input[type=radio]{cursor:pointer;height:0;opacity:0;position:absolute;width:0}.checkmark,.radio-mark{background-color:#fff;border:2px solid #cecece;border-radius:4px;flex-shrink:0;height:20px;margin-right:15px;position:relative;top:0;transition:all .2s ease;width:20px}.radio-mark{border-radius:50%}.checkbox-label input[type=checkbox]:checked~.checkmark,.radio-label input[type=radio]:checked~.radio-mark{background-color:#58cc02;border-color:#58cc02}.checkmark:after,.radio-mark:after{content:"";display:none;position:absolute}.checkbox-label input[type=checkbox]:checked~.checkmark:after{border:solid #fff;border-width:0 2px 2px 0;display:block;height:10px;left:6px;top:2px;transform:rotate(45deg);width:5px}.radio-label input[type=radio]:checked~.radio-mark:after{background:#fff;border-radius:50%;display:block;height:8px;left:6px;top:6px;width:8px}.form-actions{display:flex;gap:15px;justify-content:space-between}.btn{border:none;border-radius:12px;cursor:pointer;flex:1 1;font-size:16px;font-weight:600;padding:12px 24px;transition:all .2s ease}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-secondary{background-color:#e5e5e5;color:#777}.btn-secondary:hover:not(:disabled){background-color:#d4d4d4}.btn-continue{background-color:#58cc02;color:#fff}.btn-continue:hover:not(:disabled){background-color:#58a700}.btn-primary{background-color:#ff9600;color:#fff}.btn-primary:hover:not(:disabled){background-color:#e58600}@media (max-width:768px){.dancer-profile-form{margin:10px;padding:15px}.form-header h1{font-size:20px}.form-subtitle{font-size:16px}.form-step h2{font-size:20px}.question-group h3{font-size:16px}.checkbox-label,.radio-label{padding:12px}.btn{font-size:14px;padding:10px 20px}}.completion-message{padding:30px 0;text-align:center}.completion-message h2{color:#58cc02;font-size:24px;margin-bottom:15px}.completion-message p{color:#333;font-size:16px;margin-bottom:25px}.completion-icon{font-size:60px;margin-bottom:20px}.profile-summary{background-color:#f7f7f7;border-radius:12px;margin-bottom:30px;padding:20px;text-align:left}.profile-summary h3{color:#333;font-size:20px;margin-bottom:20px;text-align:center}.summary-section{margin-bottom:20px}.summary-section:last-child{margin-bottom:0}.summary-section h4{color:#58cc02;font-size:16px;font-weight:600;margin-bottom:8px}.summary-section p{color:#555;font-size:14px;line-height:1.4;margin:5px 0}.summary-section strong{color:#333}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.btn-primary:not(:disabled):hover{animation:pulse .5s infinite alternate}.dancer-profile-demo{background-color:#f5f5f5;display:flex;flex-direction:column;min-height:100vh}.demo-header{background-color:#58cc02;box-shadow:0 2px 10px #0000001a;color:#fff;padding:20px;text-align:center}.demo-header h1{font-size:28px;font-weight:700;margin:0}.demo-header p{font-size:16px;margin:5px 0 0;opacity:.9}.demo-main{align-items:flex-start;display:flex;flex:1 1;justify-content:center;padding:40px 20px}.demo-footer{background-color:#333;color:#fff;font-size:14px;padding:15px;text-align:center}@media (max-width:768px){.demo-header h1{font-size:24px}.demo-header p{font-size:14px}.demo-main{padding:20px 10px}}
/*# sourceMappingURL=main.2f03f575.css.map*/