:root{--bg:#f4f7fb;--card:#fff;--text:#1f2937;--muted:#667085;--primary:#6d28d9;--primary2:#7c3aed;--danger:#dc2626;--ok:#16a34a;--line:#e5e7eb;--dark:#111827}
*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{text-decoration:none;color:inherit}.app{min-height:100vh;display:flex}.sidebar{width:260px;background:#161b2c;color:#fff;padding:18px;position:fixed;inset:0 auto 0 0;overflow:auto}
.brand{font-weight:800;font-size:20px;padding:8px 8px 18px}.brand small{display:block;color:#aab2c4;font-size:12px;font-weight:500;margin-top:4px}
.nav a{display:flex;gap:10px;align-items:center;padding:11px 12px;border-radius:10px;color:#d8dcec;margin:4px 0}.nav a:hover,.nav a.active{background:#282f46;color:#fff}
.main{margin-left:260px;width:calc(100% - 260px);min-height:100vh}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:20}
.content{max-width:1400px;margin:auto;padding:24px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 8px 30px rgba(16,24,40,.04);margin-bottom:18px}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-6{grid-column:span 6}.col-8{grid-column:span 8}.col-12{grid-column:span 12}
.stat{display:flex;align-items:center;justify-content:space-between}.stat b{font-size:30px}.muted{color:var(--muted)}h1,h2,h3{margin-top:0}
label{display:block;font-weight:650;margin:8px 0 6px}input,select,textarea{width:100%;border:1px solid #d0d5dd;border-radius:10px;padding:11px 12px;background:#fff;font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(139,92,246,.12)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:10px;padding:10px 14px;background:var(--primary);color:#fff;font-weight:700;cursor:pointer}.btn:hover{filter:brightness(.96)}.btn-secondary{background:#344054}.btn-light{background:#eef2ff;color:#4c1d95}.btn-danger{background:var(--danger)}.btn-ok{background:var(--ok)}.btn-sm{padding:7px 10px;font-size:13px}
.actions{display:flex;gap:8px;flex-wrap:wrap}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:13px;color:#475467;background:#fafafa}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#eef2ff;color:#4c1d95;font-size:12px;font-weight:700}.badge-ok{background:#dcfce7;color:#166534}.badge-warn{background:#fef3c7;color:#92400e}
.progress{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,#6d28d9,#a855f7)}
.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#111827,#312e81)}.login-card{width:min(460px,100%);background:#fff;border-radius:20px;padding:28px;box-shadow:0 30px 70px rgba(0,0,0,.25)}
.hero{background:linear-gradient(135deg,#5b21b6,#7c3aed);color:#fff;border-radius:18px;padding:26px}.course-card{overflow:hidden;padding:0}.course-cover{height:150px;background:linear-gradient(135deg,#312e81,#7c3aed);display:flex;align-items:center;justify-content:center;color:#fff;font-size:46px;font-weight:900}.course-body{padding:18px}
.mobile-toggle{display:none;border:0;background:#111827;color:#fff;border-radius:8px;padding:8px 10px}
.alert{padding:12px 14px;border-radius:10px;margin-bottom:15px;background:#eef2ff;color:#3730a3}.alert.error{background:#fee2e2;color:#991b1b}.alert.ok{background:#dcfce7;color:#166534}
.module{border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px}.lesson{padding:12px;border-top:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.lesson:first-of-type{border-top:0}
@media(max-width:1000px){.col-3,.col-4,.col-6,.col-8{grid-column:span 12}.sidebar{transform:translateX(-100%);transition:.2s;z-index:50}.sidebar.open{transform:translateX(0)}.main{margin-left:0;width:100%}.mobile-toggle{display:inline-flex}.topbar{padding:0 14px}.content{padding:16px}}
@media(max-width:600px){.card{padding:15px;border-radius:13px}.hero{padding:18px}.actions .btn{width:100%}.topbar .muted{display:none}}

.topic-tree{border-left:4px solid #7c3aed;padding-left:14px}.content-type{font-size:12px;font-weight:700;color:#6d28d9}
