:root{
  --primary:#1656d8;
  --primary-dark:#0f3fa8;
  --primary-light:#eaf0fd;
  --admin-color:#1656d8;
  --teacher-color:#1ca95c;
  --student-color:#7c3aed;
  --parent-color:#e08a1e;
  --staff-color:#d9455f;
  --bg:#f4f7fc;
  --card:#ffffff;
  --text:#16213a;
  --muted:#6b7690;
  --border:#e6eaf3;
  --radius-sm:8px;
  --radius:14px;
  --radius-lg:20px;
  --shadow:0 6px 24px rgba(22,86,216,.08);
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:'Roboto',Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
}
a{color:var(--primary);text-decoration:none;}
img{max-width:100%;}

/* ---- Top navigation (public site) ---- */
.site-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 5%;background:#fff;border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:50;
}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.15rem;color:var(--text);}
.brand small{display:block;font-weight:400;font-size:.68rem;color:var(--muted);}
.site-nav{display:flex;gap:26px;}
.site-nav a{color:var(--text);font-size:.92rem;font-weight:500;}
.site-nav a.active{color:var(--primary);}
.btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 20px;border-radius:10px;border:none;
  background:var(--primary);color:#fff;font-weight:600;cursor:pointer;
  font-size:.9rem;text-decoration:none;
}
.btn:hover{background:var(--primary-dark);}
.btn-outline{background:#fff;color:var(--primary);border:1px solid var(--primary);}

/* ---- Cards / login role tiles ---- */
.card{
  background:var(--card);border-radius:var(--radius);
  box-shadow:var(--shadow);border:1px solid var(--border);
}
.role-tile{
  display:flex;align-items:center;gap:14px;padding:16px;
  border:1px solid var(--border);border-radius:12px;margin-bottom:10px;
  cursor:pointer;transition:.15s;background:#fff;
}
.role-tile:hover{border-color:var(--primary);box-shadow:0 4px 14px rgba(22,86,216,.12);}
.role-tile.active{border-color:var(--primary);background:var(--primary-light);}
.role-icon{
  width:42px;height:42px;border-radius:10px;display:flex;align-items:center;
  justify-content:center;color:#fff;font-weight:700;flex-shrink:0;
}
.role-title{font-weight:700;font-size:.95rem;}
.role-sub{font-size:.78rem;color:var(--muted);}

/* ---- Dashboard layout ---- */
.app-shell{display:flex;min-height:100vh;}
.sidebar{
  width:250px;background:#101a35;color:#fff;flex-shrink:0;
  padding:22px 16px;position:sticky;top:0;height:100vh;overflow-y:auto;
}
.sidebar .brand{color:#fff;margin-bottom:26px;}
.sidebar .brand small{color:#93a0c4;}
.side-link{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;
  color:#c4cce3;font-size:.88rem;margin-bottom:2px;
}
.side-link:hover,.side-link.active{background:rgba(255,255,255,.08);color:#fff;}
.main-content{flex:1;padding:26px 5%;}
.topbar{
  display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;
}
.topbar h1{font-size:1.3rem;margin:0;}
.user-chip{display:flex;align-items:center;gap:10px;font-size:.85rem;}
.avatar{
  width:36px;height:36px;border-radius:50%;background:var(--primary);
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;
}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;}
@media (max-width:900px){.stat-grid{grid-template-columns:repeat(2,1fr);}.sidebar{display:none;}}
.stat-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px;}
.stat-card .num{font-size:1.5rem;font-weight:700;}
.stat-card .lbl{color:var(--muted);font-size:.82rem;}

/* ---- Footer credit ---- */
.site-footer{background:#0c1530;color:#c4cce3;padding:34px 5% 18px;font-size:.85rem;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);margin-top:20px;padding-top:14px;
  display:flex;justify-content:space-between;font-size:.78rem;color:#8592b4;
}
