/* ===== Eden ELMS · Aurora Dashboard Theme ===== */
:root{
  --bg:#f7f8ff;
  --card:#ffffff;
  --text:#051431;
  --muted:#6b7280;
  --lav:#efeaff;
  --accent:#8a5cf6;
  --accent-2:#56c6ff;
  --border:#e9eef6;
  --shadow:0 12px 28px rgba(20,16,48,.10);
}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}

.app{display:grid;grid-template-columns:280px 1fr;min-height:100vh}
.sidebar{background:#fff;border-right:1px solid var(--border);padding:16px 14px}
.main{background:var(--bg)}

/* Sidebar */
.brand{display:block;text-align:center;padding:10px 0;border-radius:16px;background:#fff}
.brand img{width:150px;height:75px;object-fit:contain;display:block;margin:0 auto}
.sidebar-title{font-weight:600;font-size:13px;color:#475569;margin:8px 6px 12px}
.nav{display:flex;flex-direction:column;gap:8px}
.nav-link{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;text-decoration:none;color:#0f172a;border:1px solid transparent}
.nav-link:hover{background:#f4f1ff;border-color:var(--border)}
.nav-link.active{background:#f1edff;border-color:#ded5ff;box-shadow:var(--shadow)}

/* Topbar */
.topbar{position:sticky;top:0;z-index:50;background:linear-gradient(90deg,#f1eaff,#e7f6ff 60%);padding:14px 18px;border-bottom:1px solid var(--border)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:12px}
.hello{line-height:1.1}
.hello strong{font-size:16px}
.hello-sub{font-size:12px;color:#465066}
.actions{display:flex;align-items:center;gap:10px}
.btn{border:0;border-radius:999px;padding:8px 14px;font-weight:700;text-decoration:none;cursor:pointer}
.btn-ghost{background:#fff;border:1px solid var(--border)}
.btn-chip{background:#111827;color:#fff}
.btn-danger{background:#ef4444;color:#fff}

/* Content */
.content{padding:18px}

/* Header strip */
.header-strip{background:linear-gradient(90deg,#efeaff,#e9f6ff);border:1px solid var(--border);border-radius:18px;padding:12px 16px;box-shadow:var(--shadow)}

/* KPI */
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media (max-width:1100px){.kpi-row{grid-template-columns:repeat(2,1fr)}}
.kpi{background:#fff;border:1px solid var(--border);border-radius:18px;padding:16px 18px;box-shadow:var(--shadow)}
.kpi-label{font-weight:700;color:#556;opacity:.85;margin-bottom:4px}
.kpi-num{font-weight:900;font-size:28px;line-height:1}

/* Course rail */
.hscroll{display:flex;gap:14px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity}
.hscroll::-webkit-scrollbar{height:8px}
.hscroll::-webkit-scrollbar-thumb{background:#d7d8e6;border-radius:999px}
.course-card{min-width:260px;height:180px;scroll-snap-align:start;border-radius:18px;border:1px solid var(--border);background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}
.course-thumb{height:98px;background:linear-gradient(135deg,#ffe3c2,#ffd3ea)}
.course-thumb.p2{background:linear-gradient(135deg,#d9d2ff,#cfeaff)}
.course-thumb.p3{background:linear-gradient(135deg,#cfe9ff,#d9ffe8)}
.course-body{padding:10px 12px}
.course-title{font-weight:700}
.course-sub{font-size:12px;color:#6b7280}

/* Calendar */
.calendar{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:14px}
.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-cell{height:34px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#f6f7ff;color:#334155;font-weight:600;font-size:13px}
.cal-cell.muted{opacity:.55}
.cal-cell.today{background:linear-gradient(90deg,#b3a2ff,#88d9ff);color:#fff}

/* Cards, progress, skeletons, table */
.card{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}
.card.padded{padding:16px}
.progress{height:10px;border-radius:999px;background:#eceefe;overflow:hidden}
.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.skel{position:relative;overflow:hidden;background:#efeaff;border-radius:12px;height:44px}
.skel::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.7) 50%,rgba(255,255,255,0) 100%);animation:skel 1.3s infinite}
@keyframes skel{100%{transform:translateX(100%)}}
.table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.table th,.table td{padding:12px 14px;border-bottom:1px solid var(--border);font-size:14px}
.table tr:last-child td{border-bottom:0}

/* Chips */
.chip{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:800}
.chip.bad{background:#fff1f1;color:#a40000;border:1px solid #ffd6d6}

/* Footer ribbon */
.footer-ribbon{background:linear-gradient(90deg,#b9a7ff,#a1ddff);color:#fff;text-align:center;padding:10px;font-weight:800;letter-spacing:.5px;position:sticky;bottom:0;border-top-left-radius:18px;border-top-right-radius:18px;margin-top:18px}
