:root{
  --primary:#a30f1b; --primary-dark:#7d0b14; --accent:#d11d2a;
  --sidebar:linear-gradient(180deg,#2d0d14 0%,#4a1019 100%);
  --surface:#f6f3f3; --gradient:linear-gradient(135deg,#a30f1b,#d11d2a);
  --card-radius:18px; --shadow:0 10px 30px rgba(26,26,64,.08);
  --shadow-sm:0 4px 14px rgba(26,26,64,.06);
}
*{font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
body{background:var(--surface);color:#2b2b3a;margin:0}
a{text-decoration:none}
.text-primary{color:var(--primary)!important}
.btn-primary{background:var(--primary);border-color:var(--primary)}
.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}
.btn-accent{background:var(--accent);color:#fff}
.badge-soft{background:rgba(108,92,231,.12);color:var(--primary);font-weight:600}

/* ---------- PUBLIC NAVBAR ---------- */
.navbar-glass{backdrop-filter:blur(10px);background:rgba(255,255,255,.85);
  box-shadow:0 4px 20px rgba(0,0,0,.05)}
.brand-gradient{font-weight:800;background:linear-gradient(90deg,#6C5CE7,#e84393,#00b894);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.nav-link{font-weight:500;color:#41415a!important}
.nav-link:hover{color:var(--primary)!important}

/* ---------- HERO ---------- */
.hero{background:radial-gradient(1200px 500px at 80% -10%,rgba(108,92,231,.18),transparent),
  linear-gradient(180deg,#f7f7ff,#eef1fb);padding:90px 0 70px;overflow:hidden}
.hero h1{font-weight:800;font-size:3rem;line-height:1.1}
.hero .highlight{background:linear-gradient(90deg,#6C5CE7,#e84393);-webkit-background-clip:text;
  background-clip:text;color:transparent}
.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;z-index:0}

.feature-card,.stat-tile,.course-card,.dash-card{transition:transform .25s,box-shadow .25s}
.feature-card:hover,.course-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.icon-circle{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;
  color:#fff;font-size:1.4rem}

/* ---------- STAT TILES (thumbnail style) ---------- */
.stat-tile{border:none;border-radius:var(--card-radius);color:#fff;padding:22px 24px;
  position:relative;overflow:hidden;box-shadow:var(--shadow-sm)}
.stat-tile .val{font-size:2rem;font-weight:800;line-height:1}
.stat-tile .lbl{opacity:.92;font-weight:600;letter-spacing:.3px;text-transform:uppercase;font-size:.72rem}
.stat-tile .ghost{position:absolute;right:-6px;bottom:-12px;font-size:5rem;opacity:.18}
.stat-tile .delta{font-size:.78rem;opacity:.95}

/* ---------- DASHBOARD SHELL ---------- */
.app{display:flex;min-height:100vh}
.sidebar{width:260px;background:var(--sidebar);color:#fff;position:fixed;top:0;bottom:0;left:0;
  padding:0 0 20px;overflow-y:auto;z-index:1040;transition:transform .3s}
.sidebar .brand{display:flex;align-items:center;gap:10px;padding:20px 20px;font-weight:800}
.sidebar .brand .logo{width:44px;height:44px;flex:none;border-radius:50%;object-fit:cover;
  border:2px solid rgba(255,255,255,.7)}
.sidebar .brand-name{font-size:1.05rem;background:linear-gradient(90deg,#fff,#d7d0ff);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.sidebar .profile{display:flex;align-items:center;gap:12px;padding:14px 20px;margin:6px 14px 14px;
  background:rgba(255,255,255,.08);border-radius:14px}
.sidebar .profile img{width:44px;height:44px;border-radius:50%;border:2px solid rgba(255,255,255,.5)}
.sidebar .menu-label{font-size:.68rem;text-transform:uppercase;letter-spacing:1px;opacity:.55;
  padding:14px 22px 6px}
.sidebar a.item{display:flex;align-items:center;gap:12px;color:rgba(255,255,255,.82);
  padding:11px 22px;font-weight:500;border-left:3px solid transparent}
.sidebar a.item i{width:20px;text-align:center}
.sidebar a.item:hover{background:rgba(255,255,255,.08);color:#fff}
.sidebar a.item.active{background:rgba(255,255,255,.14);color:#fff;border-left-color:#fff}
.sidebar .pill-new{margin-left:auto;background:#00b894;color:#fff;font-size:.6rem;
  padding:2px 8px;border-radius:20px;font-weight:700}

.main{flex:1;margin-left:260px;min-width:0}
.topbar{background:#fff;padding:12px 26px;display:flex;align-items:center;gap:18px;
  position:sticky;top:0;z-index:1030;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.topbar .search{flex:1;max-width:420px;position:relative}
.topbar .search input{border:none;background:#f1f2f7;border-radius:12px;padding:10px 40px 10px 16px;width:100%}
.topbar .search i{position:absolute;right:14px;top:12px;color:#9aa0b4}
.topbar .brand-mid{font-weight:800;display:flex;align-items:center}
.dashboard-brand-logo{width:36px;height:36px;border-radius:50%;object-fit:cover}
.topbar .icon-btn{width:40px;height:40px;border-radius:12px;background:#f1f2f7;display:grid;
  place-items:center;color:#5a6072;position:relative}
.topbar .icon-btn .dot{position:absolute;top:6px;right:7px;width:16px;height:16px;border-radius:50%;
  background:#e84393;color:#fff;font-size:.6rem;display:grid;place-items:center}
.content{padding:26px}
.page-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:20px}
.page-head h4{font-weight:700;margin:0}
.breadcrumb-chip{background:#fff;border-radius:30px;padding:6px 16px;box-shadow:var(--shadow-sm);
  font-size:.85rem;color:#6b7280}

.card-ums{background:#fff;border:none;border-radius:var(--card-radius);box-shadow:var(--shadow-sm)}
.card-ums .card-header{background:transparent;border-bottom:1px solid #eef0f6;font-weight:700}
.dash-card{border:none;border-radius:var(--card-radius);box-shadow:var(--shadow-sm)}

.avatar-sm{width:38px;height:38px;border-radius:50%}
.table thead th{color:#8a90a6;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;border:0}
.table td{vertical-align:middle}
.status{padding:3px 12px;border-radius:20px;font-size:.72rem;font-weight:700}
.status.PAID,.status.PRESENT,.status.P,.status.GRADED,.status.ACTIVE{background:#e6f8f1;color:#0d9488}
.status.UNPAID,.status.ABSENT,.status.A,.status.PENDING,.status.DROPPED{background:#fdecef;color:#e6488a}
.status.PARTIAL,.status.LATE,.status.L,.status.SUBMITTED{background:#fff5e6;color:#e08e0b}

.progress{height:8px;border-radius:20px;background:#eef0f6}
.ai-fab{position:fixed;right:26px;bottom:26px;width:60px;height:60px;border-radius:50%;
  background:var(--gradient);color:#fff;display:grid;place-items:center;font-size:1.5rem;
  box-shadow:0 12px 30px rgba(108,92,231,.5);z-index:1050;border:none}
.chip{display:inline-block;background:#eef0fb;color:var(--primary);border:1px solid #e0e0f7;
  padding:6px 14px;border-radius:30px;font-size:.82rem;margin:4px 4px 0;cursor:pointer}
.chip:hover{background:var(--primary);color:#fff}
.chat-bubble{max-width:80%;padding:12px 16px;border-radius:16px;margin-bottom:10px;line-height:1.45}
.chat-bubble.bot{background:#fff;box-shadow:var(--shadow-sm)}
.chat-bubble.me{background:var(--gradient);color:#fff;margin-left:auto}

.footer{background:#161427;color:#c9c9db;padding:50px 0 24px}
.footer a{color:#c9c9db}.footer a:hover{color:#fff}

@media(max-width:991px){
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0)}
  .main{margin-left:0}
  .hero h1{font-size:2.2rem}
  .topbar .brand-mid{display:none}
}
