
*{box-sizing:border-box}
body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0;background:#0b0e14;color:#e5e7eb}
.app{display:grid;grid-template-columns:280px 1fr;min-height:100vh}
.aside{background:#0f1420;border-right:1px solid #1c2333;padding:16px}
.header{padding:16px 20px;border-bottom:1px solid #1c2333;background:#0b0e14;position:sticky;top:0;z-index:2}
.main{display:flex;flex-direction:column;min-width:0}
#course-title{font-size:18px;font-weight:600}
.progress{height:10px;background:#182032;border-radius:999px;overflow:hidden;margin-top:8px;position:relative}
#progress-fill{height:100%;width:0%;background:#3b82f6;transition:width .3s ease}
#progress-label{position:absolute;right:8px;top:-22px;font-size:12px;color:#9ca3af}
.toc{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.toc-item{padding:8px 10px;border-radius:10px;background:#0b0e14;border:1px solid #1c2333;cursor:pointer;font-size:14px}
.toc-item.active{border-color:#3b82f6}
.toc-item.done{background:#0f1a2a}
.toc-item.locked{opacity:.5;cursor:not-allowed}
.player{padding:20px;display:flex;flex-direction:column;gap:12px}
#chapter-title{font-size:20px;font-weight:600}
video{width:100%;max-height:65vh;background:#000;border:1px solid #1c2333;border-radius:14px}
.controls{display:flex;gap:10px}
button{padding:10px 14px;border-radius:10px;border:1px solid #1c2333;background:#111827;color:#e5e7eb;cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
.hidden{display:none}
.footer{padding:12px;color:#9ca3af;font-size:12px;text-align:center;border-top:1px solid #1c2333}
