:root{
  --uaf-navy:#0b2e4f;
  --uaf-navy-dark:#081f38;
  --uaf-gold:#d4a017;
  --uaf-gold-light:#f2c94c;
  --uaf-bg:#f4f6f9;
  --uaf-green:#1f7a4d;
}
*{box-sizing:border-box}
body{
  background:var(--uaf-bg);
  font-family:"Segoe UI",Roboto,Arial,sans-serif;
  color:#1e2a38;
}

/* ---------- Auth pages (login / signup) ---------- */
.auth-wrapper{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    linear-gradient(135deg, rgba(11,46,79,.92) 0%, rgba(8,31,56,.94) 55%, rgba(4,18,31,.96) 100%),
    url('../img/campus-hero.jpg');
  background-size:cover;
  background-position:center;
  padding:24px;
}
.auth-card{
  width:100%;
  max-width:440px;
  background:#fff;
  border-radius:18px;
  box-shadow:0 25px 60px rgba(0,0,0,.35);
  overflow:hidden;
}
.auth-card .auth-head{
  background:linear-gradient(120deg,var(--uaf-navy),var(--uaf-navy-dark));
  color:#fff;
  padding:28px 32px 22px;
  text-align:center;
}
.auth-head .crest{
  width:76px;height:76px;border-radius:50%;
  background:#fff;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 12px;
  box-shadow:0 6px 14px rgba(0,0,0,.35);
  padding:6px;
  overflow:hidden;
}
.auth-head .crest img{width:100%;height:100%;object-fit:contain;}
.crest{
  width:76px;height:76px;border-radius:50%;
  background:#fff;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 12px;
  box-shadow:0 6px 14px rgba(0,0,0,.35);
  padding:6px;
  overflow:hidden;
}
.crest img{width:100%;height:100%;object-fit:contain;}
.auth-head h1{font-size:1.25rem;font-weight:700;margin:0;letter-spacing:.5px}
.auth-head p{margin:2px 0 0;font-size:.8rem;opacity:.85}
.auth-body{padding:28px 32px 32px}
.role-toggle .btn-check:checked + .btn{
  background:var(--uaf-navy); color:#fff; border-color:var(--uaf-navy);
}
.btn-uaf{
  background:var(--uaf-navy); border-color:var(--uaf-navy); color:#fff;
}
.btn-uaf:hover{background:var(--uaf-navy-dark); border-color:var(--uaf-navy-dark); color:#fff;}
.link-uaf{color:var(--uaf-navy); font-weight:600; text-decoration:none;}
.link-uaf:hover{text-decoration:underline;}

/* ---------- App shell (dashboard layouts) ---------- */
.app-navbar{
  background:linear-gradient(120deg,var(--uaf-navy),var(--uaf-navy-dark));
  color:#fff;
  padding:.7rem 1.2rem;
  display:flex;align-items:center;justify-content:space-between;
  position:sticky; top:0; z-index:1030;
  box-shadow:0 2px 10px rgba(0,0,0,.15);
}
.app-navbar .brand{display:flex;align-items:center;gap:.6rem;color:#fff;text-decoration:none;font-weight:700}
.app-navbar .brand .crest-sm{
  width:34px;height:34px;border-radius:50%;background:#fff;
  display:flex;align-items:center;justify-content:center;padding:3px;overflow:hidden;
  flex-shrink:0;
}
.app-navbar .brand .crest-sm img{width:100%;height:100%;object-fit:contain;}
.app-shell{display:flex; min-height:calc(100vh - 58px);}
.sidebar{
  width:250px; flex-shrink:0;
  background:var(--uaf-navy-dark);
  color:#dce6f1;
  padding:1rem .6rem;
}
.sidebar a{
  display:flex;align-items:center;gap:.6rem;
  color:#c8d6e5; text-decoration:none;
  padding:.62rem .9rem; border-radius:10px; margin-bottom:.2rem;
  font-size:.93rem; font-weight:500;
}
.sidebar a i{width:18px;text-align:center}
.sidebar a:hover{background:rgba(255,255,255,.08); color:#fff;}
.sidebar a.active{background:var(--uaf-gold); color:var(--uaf-navy-dark); font-weight:700;}
.sidebar .side-title{
  font-size:.7rem; text-transform:uppercase; letter-spacing:.08em;
  color:#7f95ab; padding:1rem .9rem .3rem;
}
.main-content{flex:1; padding:1.6rem; max-width:100%; overflow-x:hidden;}

.page-title{font-weight:700; color:var(--uaf-navy); margin-bottom:.15rem;}
.page-sub{color:#6b7c8f; margin-bottom:1.4rem; font-size:.92rem;}

.stat-card{
  border:none; border-radius:16px; color:#fff; overflow:hidden; position:relative;
  box-shadow:0 8px 20px rgba(0,0,0,.08);
}
.stat-card .stat-icon{
  position:absolute; right:14px; top:14px; font-size:2.4rem; opacity:.25;
}
.stat-card h3{font-weight:800; margin-bottom:0;}
.stat-card small{opacity:.85}
.bg-uaf-navy{background:linear-gradient(135deg,var(--uaf-navy),var(--uaf-navy-dark));}
.bg-uaf-gold{background:linear-gradient(135deg,#e8b93a,var(--uaf-gold));}
.bg-uaf-green{background:linear-gradient(135deg,#28a267,var(--uaf-green));}
.bg-uaf-slate{background:linear-gradient(135deg,#556677,#33414f);}

.card-uaf{border:none; border-radius:14px; box-shadow:0 4px 16px rgba(20,40,60,.06);}
.card-uaf .card-header{
  background:#fff; border-bottom:1px solid #eef1f5; font-weight:700; color:var(--uaf-navy);
  border-radius:14px 14px 0 0 !important;
}
.table thead th{
  background:#eef3f8; color:var(--uaf-navy); font-size:.8rem; text-transform:uppercase; letter-spacing:.04em;
  border-bottom:none;
}
.table-hover tbody tr:hover{background:#f7fafd;}

.btn-gold{background:var(--uaf-gold); border-color:var(--uaf-gold); color:#3a2c00; font-weight:600;}
.btn-gold:hover{background:var(--uaf-gold-light); border-color:var(--uaf-gold-light); color:#3a2c00;}

.form-label{font-weight:600; font-size:.88rem; color:#33414f;}

.print-form{background:#fff; border:1px solid #dfe6ee; border-radius:10px; padding:24px;}

/* Course-type accents (Request Extra Course cards) */
.course-card{border:none; border-radius:14px; border-left:5px solid #c7d2dd; box-shadow:0 4px 14px rgba(20,40,60,.07); transition:transform .12s, box-shadow .12s;}
.course-card:hover{transform:translateY(-2px); box-shadow:0 10px 22px rgba(20,40,60,.14);}
.course-card.type-major{border-left-color:var(--uaf-navy);}
.course-card.type-minor{border-left-color:#0aa6c2;}
.course-card.type-compulsory{border-left-color:var(--uaf-green);}
.course-card.type-elective{border-left-color:var(--uaf-gold);}
.btn-type-major{background:var(--uaf-navy); border-color:var(--uaf-navy); color:#fff;}
.btn-type-major:hover{background:var(--uaf-navy-dark); border-color:var(--uaf-navy-dark); color:#fff;}
.btn-type-minor{background:#0aa6c2; border-color:#0aa6c2; color:#fff;}
.btn-type-minor:hover{background:#088ba3; border-color:#088ba3; color:#fff;}
.btn-type-compulsory{background:var(--uaf-green); border-color:var(--uaf-green); color:#fff;}
.btn-type-compulsory:hover{background:#175f3c; border-color:#175f3c; color:#fff;}
.btn-type-elective{background:var(--uaf-gold); border-color:var(--uaf-gold); color:#3a2c00;}
.btn-type-elective:hover{background:var(--uaf-gold-light); border-color:var(--uaf-gold-light); color:#3a2c00;}
.badge-type-major{background:var(--uaf-navy);}
.badge-type-minor{background:#0aa6c2;}
.badge-type-compulsory{background:var(--uaf-green);}
.badge-type-elective{background:var(--uaf-gold); color:#3a2c00;}
@media print{
  .no-print{display:none !important;}
  .app-shell{display:block;}
  .main-content{padding:0;}
}

@media (max-width: 900px){
  .sidebar{position:fixed; left:-260px; top:58px; bottom:0; z-index:1040; transition:left .2s; overflow-y:auto;}
  .sidebar.show{left:0; box-shadow:6px 0 18px rgba(0,0,0,.25);}
  .main-content{padding:1rem;}
}

@media (max-width: 576px){
  .print-form{padding:14px;}
  .auth-body{padding:22px 20px 26px;}
  .auth-head{padding:24px 20px 18px;}
  .auth-card{border-radius:14px;}
  .stat-card h3{font-size:1.5rem;}
  .app-navbar{padding:.6rem .8rem;}
}
