:root{
  --navy:#003566;
  --blue:#0466c8;
  --light-blue:#e8f1fb;
  --orange:#f77f00;
  --orange-dark:#e8590c;
  --white:#ffffff;
  --gray-bg:#f4f7fb;
  --text-dark:#1b263b;
  --success:#2a9d8f;
  --danger:#e63946;
  --radius:14px;
}
*{box-sizing:border-box}
body{
  font-family:'Segoe UI',Arial,sans-serif;
  background:var(--gray-bg);
  color:var(--text-dark);
  margin:0;
}
a{text-decoration:none}

/* ===== LOGIN PAGE ===== */
.login-wrap{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--navy) 0%,var(--blue) 60%,#023e7d 100%);
  padding:20px;
}
.login-card{
  background:var(--white);width:100%;max-width:420px;border-radius:20px;
  box-shadow:0 25px 60px rgba(0,0,0,.35);padding:40px 36px;
  border-top:6px solid var(--orange);
}
.login-card .logo-circle{
  width:78px;height:78px;border-radius:50%;background:var(--light-blue);
  display:flex;align-items:center;justify-content:center;margin:0 auto 14px;
  font-size:34px;border:3px solid var(--orange);
}
.login-card h4{color:var(--navy);font-weight:800;text-align:center;margin-bottom:2px}
.login-card .sub{text-align:center;color:#6b7a90;font-size:13px;margin-bottom:24px}
.role-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;justify-content:center}
.role-tab{
  font-size:12.5px;padding:6px 12px;border-radius:30px;border:1.5px solid #d8e3f0;
  color:var(--navy);cursor:pointer;background:#fff;transition:.2s;
}
.role-tab.active,.role-tab:hover{background:var(--orange);color:#fff;border-color:var(--orange)}
.btn-school{
  background:linear-gradient(135deg,var(--orange) 0%,var(--orange-dark) 100%);
  border:none;color:#fff;font-weight:700;border-radius:10px;padding:11px;width:100%;
  box-shadow:0 8px 20px rgba(247,127,0,.35);transition:.25s;
}
.btn-school:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(247,127,0,.45);color:#fff}

/* ===== APP SHELL ===== */
.app-shell{display:flex;min-height:100vh}
.sidebar{
  width:260px;background:linear-gradient(180deg,var(--navy) 0%,#012a4a 100%);
  color:#fff;flex-shrink:0;position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:1000;
  transition:.3s;
}
.sidebar .brand{padding:22px 18px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;gap:10px;align-items:center}
.sidebar .brand img{width:42px;height:42px;border-radius:50%;background:#fff}
.sidebar .brand h6{margin:0;font-size:14px;font-weight:800;line-height:1.2}
.sidebar .brand small{color:#9fb3c8;font-size:11px}
.sidebar .nav-section{padding:14px 18px 4px;font-size:11px;letter-spacing:1px;color:#7c94ad;text-transform:uppercase}
.sidebar a.nav-link{
  color:#d6e2f0;padding:10px 18px;display:flex;align-items:center;gap:10px;font-size:14.5px;
  border-left:3px solid transparent;transition:.2s;
}
.sidebar a.nav-link:hover, .sidebar a.nav-link.active{
  background:rgba(247,127,0,.15);color:#fff;border-left-color:var(--orange);
}
.main-content{margin-left:260px;width:100%;min-height:100vh;display:flex;flex-direction:column}
.topbar{
  background:#fff;padding:14px 26px;display:flex;justify-content:space-between;align-items:center;
  box-shadow:0 2px 10px rgba(0,0,0,.05);position:sticky;top:0;z-index:900;
}
.topbar .page-title{font-weight:700;color:var(--navy);font-size:19px}
.content-area{padding:26px}
@media(max-width:900px){
  .sidebar{left:-260px}
  .sidebar.show{left:0}
  .main-content{margin-left:0}
}

/* ===== CARDS ===== */
.stat-card{
  background:#fff;border-radius:var(--radius);padding:20px;display:flex;align-items:center;gap:14px;
  box-shadow:0 6px 18px rgba(0,40,90,.08);transition:.25s;border-bottom:4px solid var(--orange);
}
.stat-card:hover{transform:translateY(-5px);box-shadow:0 14px 30px rgba(0,40,90,.15)}
.stat-card .icon-box{
  width:54px;height:54px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:24px;background:var(--light-blue);color:var(--blue);flex-shrink:0;
}
.stat-card h3{margin:0;color:var(--navy);font-weight:800;font-size:24px}
.stat-card p{margin:0;color:#6b7a90;font-size:13px}

.card-school{background:#fff;border-radius:var(--radius);border:none;box-shadow:0 6px 18px rgba(0,40,90,.07)}
.card-school .card-header{
  background:var(--navy);color:#fff;border-radius:14px 14px 0 0!important;font-weight:700;
  padding:14px 20px;
}
.btn-orange{background:var(--orange);border:none;color:#fff;font-weight:600}
.btn-orange:hover{background:var(--orange-dark);color:#fff;transform:translateY(-1px)}
.btn-navy{background:var(--navy);border:none;color:#fff;font-weight:600}
.btn-navy:hover{background:#012a4a;color:#fff}
.table thead{background:var(--light-blue);color:var(--navy)}
.badge-status-active{background:var(--success)}
.badge-status-inactive{background:#94a3b8}

/* Print friendly */
@media print{
  .sidebar,.topbar,.no-print{display:none!important}
  .main-content{margin-left:0!important}
  body{background:#fff}
}

/* ===== HOVER EFFECTS / SMOOTH INTERACTIONS ===== */
a, button, .btn, input, select, textarea{transition:all .18s ease-in-out}

/* Buttons - lift + shadow on hover, all variants */
.btn{cursor:pointer}
.btn:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(0,40,90,.18)}
.btn:active{transform:translateY(0);box-shadow:none}
.btn-outline, .btn-outline-dark{border:1.5px solid var(--navy);color:var(--navy);background:#fff}
.btn-outline:hover, .btn-outline-dark:hover{background:var(--navy);color:#fff}
.btn-outline-secondary:hover{background:#6c757d;color:#fff}
.btn-outline-success:hover{background:var(--success);color:#fff;border-color:var(--success)}
.btn-outline-danger:hover{background:var(--danger);color:#fff;border-color:var(--danger)}
.btn-outline-warning:hover{background:#f0ad4e;color:#fff;border-color:#f0ad4e}
.btn-danger:hover{filter:brightness(1.1);transform:translateY(-2px)}
.btn-sm:hover{transform:translateY(-1px)}

/* Cards - gentle lift on hover so the whole UI feels alive */
.card-school{transition:.25s}
.card-school:hover{box-shadow:0 12px 28px rgba(0,40,90,.13);transform:translateY(-2px)}

/* Table rows - clear highlight so clicking the right row/action is easy */
.table tbody tr{transition:background .15s ease}
.table-hover tbody tr:hover{background:var(--light-blue)!important;cursor:default}
.table tbody tr:hover td{color:var(--text-dark)}

/* Nav links already have a hover state above - add a subtle pointer + smoothing */
.sidebar a.nav-link{cursor:pointer}

/* Form controls - visible focus glow instead of jarring default outline */
.form-control:focus, .form-select:focus{
  border-color:var(--blue)!important;
  box-shadow:0 0 0 3px rgba(4,102,200,.15)!important;
}
.form-control:hover, .form-select:hover{border-color:#9fb3c8}

/* Badges - tiny pop so status pills feel interactive where they're clickable */
.badge{transition:.15s}

/* Links inside tables/cards */
table a:hover{text-decoration:underline}

/* Generic clickable rows/items used across list pages */
.list-item:hover, .clickable:hover{background:var(--light-blue);cursor:pointer}
