@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";.header{height:var(--header-height);background:var(--white);border-bottom:1px solid var(--gray-200);top:0;left:var(--sidebar-width);z-index:100;justify-content:space-between;align-items:center;padding:0 24px;transition:left .3s;display:flex;position:fixed;right:0}.header-left{align-items:center;gap:16px;display:flex}.header-title{color:var(--primary);font-size:1.25rem;font-weight:700}.menu-toggle{color:var(--gray-600);background:0 0;padding:4px;display:none}.header-right{align-items:center;gap:16px;display:flex}.header-user{align-items:center;gap:10px;display:flex}.header-avatar{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.8125rem;font-weight:600;display:flex;overflow:hidden}.header-avatar-image{object-fit:cover;width:100%;height:100%;display:block}.header-username{color:var(--gray-700);font-size:.875rem;font-weight:500}@media (width<=768px){.header{left:0}.menu-toggle{display:block}.header-username{display:none}}.sidebar{width:var(--sidebar-width);background:var(--secondary);z-index:200;flex-direction:column;height:100vh;transition:transform .3s;display:flex;position:fixed;top:0;left:0}.sidebar-logo{height:var(--header-height);border-bottom:1px solid #ffffff1a;align-items:center;gap:12px;padding:0 20px;display:flex}.sidebar-logo-icon{width:28px;height:28px;color:var(--white);justify-content:center;align-items:center;display:inline-flex}.sidebar-logo-text{color:var(--white);font-size:1.125rem;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:4px;padding:16px 12px;display:flex;overflow-y:auto}.sidebar-link{border-radius:var(--radius);color:var(--gray-400);transition:var(--transition);align-items:center;gap:12px;padding:10px 14px;font-size:.875rem;font-weight:500;display:flex}.sidebar-link:hover{color:var(--white);background:#ffffff14}.sidebar-link-active{background:var(--primary)!important;color:var(--white)!important}.sidebar-link-icon{color:currentColor;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.sidebar-overlay{display:none}@media (width<=768px){.sidebar{transform:translate(-100%)}.sidebar-open{transform:translate(0)}.sidebar-overlay{z-index:199;background:#00000080;display:block;position:fixed;inset:0}}.layout{min-height:100vh}.main-content{margin-left:var(--sidebar-width);margin-top:var(--header-height);min-height:calc(100vh - var(--header-height));padding:24px;transition:margin-left .3s}@media (width<=768px){.main-content{margin-left:0;padding:16px}}.auth-page{background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 50%,#1e293b 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-container{width:100%;max-width:480px}.auth-header{text-align:center;margin-bottom:32px}.auth-logo{color:#e2e8f0;background:#ffffff1f;border-radius:16px;place-items:center;width:64px;height:64px;margin:0 auto 12px;display:grid}.auth-logo-icon{width:34px;height:34px;display:block}.auth-title{color:var(--white);letter-spacing:-.5px;font-size:2rem;font-weight:700}.auth-subtitle{color:var(--gray-400);margin-top:4px;font-size:.9375rem}.auth-form{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;gap:20px;padding:32px;display:flex}.auth-form-title{color:var(--gray-900);text-align:center;font-size:1.25rem;font-weight:600}.auth-error{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius);text-align:center;padding:10px 14px;font-size:.875rem}.auth-switch{text-align:center;color:var(--gray-500);font-size:.875rem}.auth-switch a{color:var(--primary);font-weight:500}.auth-switch a:hover{text-decoration:underline}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=500px){.auth-form{padding:24px 20px}.form-row{grid-template-columns:1fr}}.courses-page{max-width:1200px}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.page-title{color:var(--gray-900);font-size:1.5rem;font-weight:700}.page-subtitle{color:var(--gray-500);margin-top:4px;font-size:.875rem}.courses-toolbar{margin-bottom:24px}.courses-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;display:grid}.course-card{transition:var(--transition);padding:0;overflow:hidden}.course-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.course-cover{background:linear-gradient(135deg, var(--primary-bg), var(--gray-100));height:180px;position:relative;overflow:hidden}.course-cover img{object-fit:cover;width:100%;height:100%}.course-cover-placeholder{justify-content:center;align-items:center;width:100%;height:100%;font-size:3rem;display:flex}.course-draft-badge{color:#fff;border-radius:var(--radius-full);background:#0009;padding:4px 10px;font-size:.75rem;font-weight:500;position:absolute;top:12px;right:12px}.course-info{flex-direction:column;gap:8px;padding:16px 20px 20px;display:flex}.course-title{color:var(--gray-900);font-size:1.0625rem;font-weight:600}.course-description{color:var(--gray-500);font-size:.8125rem;line-height:1.5}.course-meta{color:var(--gray-400);align-items:center;gap:12px;font-size:.8125rem;display:flex}.course-progress{align-items:center;gap:10px;display:flex}.progress-bar{background:var(--gray-200);border-radius:var(--radius-full);flex:1;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--primary), var(--success));border-radius:var(--radius-full);height:100%;transition:width .4s}.progress-text{color:var(--primary);min-width:32px;font-size:.75rem;font-weight:600}.course-actions{gap:8px;margin-top:4px;display:flex}.empty-state{text-align:center;color:var(--gray-500);padding:60px 20px}.empty-icon{margin-bottom:16px;font-size:3rem}.empty-state h3{color:var(--gray-700);margin-bottom:8px}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:var(--white);border-radius:var(--radius-lg);width:100%;max-width:520px;box-shadow:var(--shadow-lg);animation:.2s modalIn}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{border-bottom:1px solid var(--gray-200);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3{font-size:1.125rem;font-weight:600}.modal-close{color:var(--gray-400);background:0 0;padding:4px;font-size:1.25rem}.modal-close:hover{color:var(--gray-700)}.modal-body{flex-direction:column;gap:16px;padding:24px;display:flex}.modal-footer{border-top:1px solid var(--gray-200);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}@media (width<=768px){.page-header{flex-direction:column}.courses-grid{grid-template-columns:1fr}}.course-editor{max-width:900px}.editor-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.editor-header-actions{gap:8px;display:flex}.editor-info{align-items:center;gap:24px;margin-bottom:32px;display:flex}.editor-cover{flex-direction:column;flex:0 0 240px;align-self:center;align-items:center;gap:12px;width:240px;display:flex}.editor-cover img,.editor-cover-placeholder{border-radius:var(--radius);width:240px;height:160px;overflow:hidden}.editor-cover img{object-fit:cover;object-position:center center;display:block}.editor-cover-upload{position:static}.editor-details{flex-direction:column;flex:1;gap:12px;display:flex}.editor-meta{align-items:center;gap:12px;display:flex}.editable-field{cursor:pointer;border-radius:var(--radius);transition:var(--transition);padding:6px 8px}.editable-field:hover{background:var(--gray-50)}.editable-field p{color:var(--gray-800);font-size:.9375rem}.edit-icon{opacity:0;color:var(--gray-400);transition:var(--transition);margin-left:6px;font-size:.875rem}.editable-field:hover .edit-icon{opacity:1}.text-muted{color:var(--gray-400);font-size:.8125rem}.editor-section{margin-bottom:32px}.editor-section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.editor-section-header h3{font-size:1.125rem;font-weight:600}.lessons-list{flex-direction:column;gap:12px;display:flex}.lesson-item{padding:16px 20px}.lesson-item-header{align-items:center;gap:16px;display:flex}.lesson-order{background:var(--primary-bg);width:32px;height:32px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.875rem;font-weight:600;display:flex}.lesson-item-info{flex:1}.lesson-item-info h4{margin-bottom:6px;font-size:.9375rem;font-weight:600}.lesson-item-meta{flex-wrap:wrap;gap:8px;display:flex}.lesson-item-actions{flex-shrink:0;gap:6px;display:flex}.upload-zone{border:2px dashed var(--gray-300);border-radius:var(--radius);text-align:center;cursor:pointer;transition:var(--transition);padding:32px 20px}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--primary);background:var(--primary-bg)}.upload-placeholder{color:var(--gray-500);flex-direction:column;align-items:center;gap:8px;font-size:.875rem;display:flex}.upload-icon{color:var(--gray-400);font-size:2rem}.upload-file-info{flex-direction:column;gap:4px;display:flex}.upload-progress{align-items:center;gap:10px;margin-top:8px;display:flex}.modal-lg{max-width:640px}@media (width<=768px){.editor-info{flex-direction:column}.editor-cover{width:100%}.lesson-item-header{flex-direction:column;align-items:flex-start}.lesson-item-actions{width:100%}}.course-detail{max-width:900px}.course-detail-hero{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200);gap:24px;margin-bottom:40px;display:flex;overflow:hidden}.course-detail-cover{flex-shrink:0;width:300px;min-height:220px}.course-detail-cover img{object-fit:cover;width:100%;height:100%}.course-detail-info{flex-direction:column;flex:1;gap:12px;padding:24px 24px 24px 0;display:flex}.course-detail-info h1{color:var(--gray-900);font-size:1.5rem;font-weight:700}.course-detail-desc{color:var(--gray-600);font-size:.9375rem;line-height:1.6}.course-detail-meta{color:var(--gray-400);gap:16px;font-size:.8125rem;display:flex}.course-detail-progress{flex-direction:column;gap:8px;margin-top:8px;display:flex}.course-detail-lessons h2{margin-bottom:20px;font-size:1.25rem;font-weight:600}.lessons-timeline{flex-direction:column;gap:4px;display:flex}.timeline-item{border-radius:var(--radius);background:var(--white);border:1px solid var(--gray-200);transition:var(--transition);align-items:center;gap:16px;padding:14px 20px;display:flex}.timeline-available{cursor:pointer}.timeline-available:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.timeline-completed{cursor:pointer;border-color:var(--success);background:var(--success-bg)}.timeline-locked{opacity:.55;cursor:not-allowed}.timeline-marker{background:var(--gray-100);width:36px;height:36px;color:var(--gray-500);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8125rem;font-weight:600;display:flex}.timeline-completed .timeline-marker{background:var(--success);color:var(--white)}.timeline-available .timeline-marker{background:var(--primary);color:var(--white)}.marker-final{font-size:1rem;background:var(--warning)!important;color:var(--white)!important}.timeline-content{flex:1}.timeline-content h4{color:var(--gray-800);margin-bottom:4px;font-size:.9375rem;font-weight:600}.timeline-meta{gap:8px;display:flex}.timeline-tag{border-radius:var(--radius-full);background:var(--gray-100);color:var(--gray-500);padding:2px 8px;font-size:.6875rem}.tag-test{background:var(--primary-bg);color:var(--primary)}.timeline-lock-text{color:var(--gray-400);font-size:.75rem}@media (width<=768px){.course-detail-hero{flex-direction:column}.course-detail-cover{width:100%;height:200px}.course-detail-info{padding:20px}}.video-player{border-radius:var(--radius-md);aspect-ratio:16/9;background:#000;width:100%;position:relative;overflow:hidden}.video-player video{cursor:pointer;width:100%;height:100%;display:block}.video-play-overlay{cursor:pointer;background:#0000004d;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.video-play-btn{background:#2563ebe6;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;padding-left:4px;transition:transform .2s,background .2s;display:flex}.video-play-overlay:hover .video-play-btn{background:#2563eb;transform:scale(1.1)}.video-controls{opacity:0;background:linear-gradient(#0000,#000c);padding:20px 12px 10px;transition:opacity .3s;position:absolute;bottom:0;left:0;right:0}.video-controls.visible{opacity:1}.video-progress{cursor:pointer;background:#fff3;border-radius:2px;height:4px;margin-bottom:8px;transition:height .15s;position:relative}.video-progress:hover{height:6px}.video-progress-filled{background:var(--primary-light);border-radius:2px;height:100%;position:relative}.video-progress-thumb{background:var(--white);opacity:0;border-radius:50%;width:12px;height:12px;transition:opacity .15s;position:absolute;top:50%;transform:translate(-50%,-50%)}.video-progress:hover .video-progress-thumb{opacity:1}.video-controls-row{justify-content:space-between;align-items:center;display:flex}.video-controls-left,.video-controls-right{align-items:center;gap:4px;display:flex}.video-ctrl-btn{color:#fff;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:6px;transition:background .15s;display:flex}.video-ctrl-btn:hover{background:#ffffff26}.play-btn{padding:6px 8px}.speed-btn{min-width:36px;padding:4px 8px;font-size:.8125rem;font-weight:600}.video-time{color:#fffc;font-variant-numeric:tabular-nums;margin-left:8px;font-size:.75rem}.video-volume{align-items:center;gap:2px;display:flex}.volume-slider{appearance:none;cursor:pointer;background:#ffffff4d;border-radius:2px;outline:none;width:60px;height:3px}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border-radius:50%;width:10px;height:10px}.video-player.fullscreen{border-radius:0}@media (width<=768px){.video-volume{display:none}.video-play-btn{width:52px;height:52px}}.video-tab-alert-overlay{z-index:10;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a8c;justify-content:center;align-items:center;padding:20px;animation:.2s videoTabAlertFade;display:flex;position:absolute;inset:0}.video-tab-alert{background:var(--white);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-lg);text-align:center;padding:24px;animation:.2s videoTabAlertPop}.video-tab-alert-icon{background:var(--warning-bg);width:56px;height:56px;color:var(--warning);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:1.5rem;font-weight:700;display:flex}.video-tab-alert h3{color:var(--gray-900);margin:0 0 10px;font-size:1.125rem;font-weight:600}.video-tab-alert p{color:var(--gray-600);margin:0 0 18px;font-size:.9375rem;line-height:1.6}.video-tab-alert .btn{min-width:140px}@keyframes videoTabAlertFade{0%{opacity:0}to{opacity:1}}@keyframes videoTabAlertPop{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.lesson-page{gap:24px;max-width:1200px;display:flex}.lesson-main{flex-direction:column;flex:1;gap:20px;min-width:0;display:flex}.lesson-nav-top{justify-content:space-between;align-items:center;display:flex}.lesson-counter{color:var(--gray-400);font-size:.8125rem}.lesson-header h1{color:var(--gray-900);font-size:1.375rem;font-weight:700}.lesson-description{color:var(--gray-500);margin-top:6px;font-size:.9375rem}.lesson-transcript{margin-top:4px}.lesson-transcript h3{border-bottom:1px solid var(--gray-200);margin-bottom:16px;padding-bottom:12px;font-size:1rem;font-weight:600}.transcript-content{color:var(--gray-700);font-size:.9375rem;line-height:1.8}.transcript-content p{margin-bottom:12px}.lesson-actions{padding:12px 0}.lesson-sidebar{width:280px;top:calc(var(--header-height) + 24px);background:var(--white);border-radius:var(--radius-md);border:1px solid var(--gray-200);max-height:calc(100vh - var(--header-height) - 48px);flex-shrink:0;align-self:flex-start;padding:16px;position:sticky;overflow-y:auto}.lesson-sidebar h3{color:var(--gray-700);margin-bottom:12px;font-size:.9375rem;font-weight:600}.lesson-sidebar-list{flex-direction:column;gap:2px;display:flex}.lesson-sidebar-item{border-radius:var(--radius);cursor:pointer;transition:var(--transition);color:var(--gray-600);align-items:center;gap:10px;padding:8px 10px;font-size:.8125rem;display:flex}.lesson-sidebar-item:hover{background:var(--gray-50)}.lesson-sidebar-item.active{background:var(--primary-bg);color:var(--primary);font-weight:600}.lesson-sidebar-num{background:var(--gray-100);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;font-weight:600;display:flex}.lesson-sidebar-item.active .lesson-sidebar-num{background:var(--primary);color:var(--white)}.lesson-sidebar-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (width<=768px){.lesson-page{flex-direction:column}.lesson-sidebar{width:100%;max-height:none;position:static}}:root{--primary:#2563eb;--primary-dark:#1d4ed8;--primary-light:#3b82f6;--primary-bg:#eff6ff;--secondary:#0f172a;--secondary-light:#1e293b;--success:#10b981;--success-bg:#ecfdf5;--warning:#f59e0b;--warning-bg:#fffbeb;--danger:#ef4444;--danger-bg:#fef2f2;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--white:#fff;--bg:#f1f5f9;--card-bg:#fff;--shadow-sm:0 1px 2px #0000000d;--shadow:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--radius-sm:6px;--radius:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--font:"Inter", -apple-system, sans-serif;--sidebar-width:260px;--header-height:64px;--transition:all .2s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font);background:var(--bg);color:var(--gray-800);-webkit-font-smoothing:antialiased;line-height:1.6}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img{max-width:100%;display:block}button{cursor:pointer;font-family:var(--font);border:none;outline:none}input,textarea,select{font-family:var(--font);outline:none}.btn{border-radius:var(--radius);transition:var(--transition);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:.875rem;font-weight:500;line-height:1.4;display:inline-flex}.btn-primary{background:var(--primary);color:var(--white)}.btn-primary:hover{background:var(--primary-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background:var(--white);color:var(--gray-700);border-color:var(--gray-300)}.btn-secondary:hover{background:var(--gray-50);border-color:var(--gray-400)}.btn-danger{background:var(--danger);color:var(--white)}.btn-danger:hover{background:#dc2626}.btn-lg{padding:12px 28px;font-size:1rem}.btn-sm{padding:6px 14px;font-size:.8125rem}.btn-block{width:100%}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--gray-700);font-size:.875rem;font-weight:500}.form-input{border:1px solid var(--gray-300);border-radius:var(--radius);color:var(--gray-800);background:var(--white);transition:var(--transition);padding:10px 14px;font-size:.9375rem}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.form-input::placeholder{color:var(--gray-400)}.card{background:var(--card-bg);border-radius:var(--radius-md);border:1px solid var(--gray-200);box-shadow:var(--shadow-sm);padding:24px}.badge{border-radius:var(--radius-full);align-items:center;padding:2px 10px;font-size:.75rem;font-weight:500;display:inline-flex}.badge-primary{background:var(--primary-bg);color:var(--primary)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.loader-overlay{justify-content:center;align-items:center;min-height:200px;display:flex}.spinner{border:3px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=768px){:root{--sidebar-width:0px}}
