@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap");:root{--bg:#000;--bg-2:#0c0c0d;--card:#161617;--card-hover:#1d1d1f;--line:#2a2a2c;--text:#f5f5f5;--text-muted:#9a9a9d;--text-faint:#6b6b6e;--green:#0dd3a5;--red:#e64545;--progress-track:#2a2a2c;--radius:8px}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg);color:var(--text);font-family:Inter,sans-serif;min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:380px;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:36px}.login-title{font-size:22px;font-weight:800;margin-bottom:6px}.login-sub{color:var(--text-muted);font-size:13.5px;margin-bottom:26px}.login-field{margin-bottom:16px}.login-field label{display:block;font-size:12.5px;color:var(--text-muted);margin-bottom:6px}.login-field input{width:100%;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px 14px;color:var(--text);font-size:14px}.login-field input:focus{outline:none;border-color:var(--green)}.login-btn{width:100%;background:var(--green);color:#04140f;border:none;border-radius:8px;padding:13px;font-weight:700;font-size:14.5px;cursor:pointer;margin-top:8px}.login-error{color:var(--red);font-size:13px;margin-top:12px}.topbar{justify-content:space-between;padding:16px 32px;background:var(--bg-2);border-bottom:1px solid var(--line)}.brandbar,.topbar{display:flex;align-items:center}.brandbar{gap:14px}.brand-logo{width:26px;height:26px;border-radius:6px;background:var(--card);border:1px solid var(--line)}.brand-name{font-weight:800;font-size:15px}.avatar{width:34px;height:34px;border-radius:50%;background:var(--card);border:2px solid var(--green);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.logout-link{color:var(--text-muted);font-size:13px;margin-left:16px;cursor:pointer}.tabs{display:flex;gap:36px;padding:22px 32px 0;background:var(--bg);border-bottom:1px solid var(--line)}.tab{font-size:14.5px;color:var(--text-muted);padding-bottom:14px;font-weight:600}.tab.active{color:var(--text);border-bottom:2px solid var(--text)}.course-header{display:flex;justify-content:space-between;align-items:flex-start;padding:40px 32px;gap:40px;max-width:1200px}.ch-left{max-width:640px}.ch-title{font-size:36px;font-weight:800;margin-bottom:16px;letter-spacing:-.01em}.ch-desc{color:#c9c9cb;font-size:15px;line-height:1.65;margin-bottom:6px}.ch-progress{display:flex;align-items:center;gap:12px;margin:22px 0 20px;font-size:13.5px;color:var(--text-muted)}.ch-progress-track{width:220px;height:5px;background:var(--progress-track);border-radius:4px;overflow:hidden}.ch-progress-fill{height:100%;background:var(--green)}.ch-thumb{width:260px;aspect-ratio:1/1;border-radius:10px;flex-shrink:0;background:linear-gradient(160deg,#2a2a2c,#0c0c0d);border:1px solid var(--line)}.content-section{padding:0 32px 60px;max-width:1200px}.content-toprow{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.content-title{font-size:22px;font-weight:800}.module{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.module-head{gap:16px;padding:18px 22px;cursor:pointer;background:var(--bg-2)}.module-head,.module-num{display:flex;align-items:center}.module-num{width:32px;height:32px;border-radius:50%;background:var(--card);border:1px solid var(--line);justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.module-info{flex:1 1}.module-name{font-weight:700;font-size:15.5px;margin-bottom:6px}.module-progress-row{display:flex;align-items:center;gap:10px}.module-pct{font-size:12.5px;color:var(--text-muted);font-weight:600}.module-track{width:180px;height:4px;background:var(--progress-track);border-radius:4px;overflow:hidden}.module-fill{height:100%;background:var(--green)}.module-body{padding:6px 0 10px}.lesson-row{display:flex;align-items:center;gap:22px;padding:18px 22px}.lesson-row:hover{background:var(--card-hover)}.lesson-thumb{width:150px;height:86px;border-radius:8px;flex-shrink:0;position:relative;overflow:hidden;background:linear-gradient(160deg,#2a2a2c,#111);display:flex;align-items:center;justify-content:center;border:1px solid var(--line)}.lesson-thumb svg{width:24px;height:24px;fill:#cfcfcf}.lesson-dur{position:absolute;bottom:6px;right:8px;font-size:11.5px;font-weight:700;background:rgba(0,0,0,.75);padding:2px 7px;border-radius:4px}.lesson-name{flex:1 1;font-size:15.5px;font-weight:500}.lesson-check{width:26px;height:26px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--text-faint)}.lesson-check.done{background:var(--green);border-color:var(--green)}.player-layout{display:grid;grid-template-columns:1fr 380px;min-height:calc(100vh - 130px)}@media (max-width:900px){.player-layout{grid-template-columns:1fr}}.player-main{padding:26px 32px}.player-frame{width:100%;aspect-ratio:16/9;border-radius:10px;background:#0c0c0d;border:1px solid var(--line);overflow:hidden;margin-bottom:20px}.player-title{font-size:22px;font-weight:800;margin-bottom:14px}.player-actions{gap:14px}.btn-conclude,.player-actions{display:flex;align-items:center}.btn-conclude{gap:8px;background:var(--card);border:1px solid var(--line);color:var(--text);padding:11px 20px;border-radius:8px;font-weight:700;font-size:13.5px;cursor:pointer}.btn-conclude.done{background:var(--green);color:#04140f;border-color:var(--green)}.back-link{color:var(--text-muted);font-size:13.5px;margin-bottom:16px;display:inline-block}.playlist{border-left:1px solid var(--line);background:var(--bg-2);padding:18px 0;overflow-y:auto}.playlist-head{padding:0 18px 14px;border-bottom:1px solid var(--line);margin-bottom:6px}.pl-lesson{display:flex;align-items:center;gap:14px;padding:14px 18px}.pl-lesson.active,.pl-lesson:hover{background:var(--card-hover)}.pl-lesson.active{border-left:2px solid var(--green)}.pl-thumb{width:96px;height:64px;border-radius:7px;flex-shrink:0;background:linear-gradient(160deg,#2a2a2c,#111);border:1px solid var(--line)}.pl-name{flex:1 1;font-size:13px;font-weight:500}.pl-check{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--text-faint);flex-shrink:0}.pl-check.done{background:var(--green);border-color:var(--green)}.expired-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px}.expired-title{font-size:26px;font-weight:800;margin-bottom:12px}.expired-text{color:var(--text-muted);max-width:420px;margin:0 auto}