/* =====================================================================
   Regent University College of Science and Technology - portal styles
   Palette sampled from the Regent crest:
     Regent Green #00552C  (globe)     - chrome, primary actions
     Regent Gold  #B8912F  (shield)    - active state, highlights
     Regent Red   #C1121F  (ribbon)    - reserved for overdue / danger only
   ===================================================================== */

:root{
  --green:#00552C;
  --green-700:#046B39;
  --green-900:#00351B;
  --gold:#B8912F;
  --gold-soft:#E3C877;
  --red:#C1121F;
  --teal:#2A7F62;
  --danger:#C1121F;
  --ink:#14201a;
  --muted:#66756c;
  --line:#e2e8e3;
  --paper:#f5f8f5;
  --cream:#FBF7EC;
  --radius:12px;

  /* legacy aliases so older markup keeps working */
  --navy:var(--green);
  --navy-700:var(--green-700);
  --navy-900:var(--green-900);
}

body{
  font-family:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",sans-serif;
  color:var(--ink);
  background:var(--paper);
}

a{color:var(--green);}
a:hover{color:var(--green-700);}

.btn-navy{background:var(--green);border-color:var(--green);color:#fff;font-weight:600;}
.btn-navy:hover,.btn-navy:focus{background:var(--green-700);border-color:var(--green-700);color:#fff;}
.btn-gold{background:var(--gold);border-color:var(--gold);color:#1b1403;font-weight:700;}
.btn-gold:hover{filter:brightness(.95);color:#1b1403;}

/* The crest is the real mark when a logo file is present, initials otherwise. */
.crest{
  width:64px;height:64px;border-radius:14px;background:#fff;color:var(--green);
  display:grid;place-items:center;font-weight:800;font-size:20px;letter-spacing:.5px;overflow:hidden;
}
.crest img{width:100%;height:100%;object-fit:contain;padding:4px;}
.crest.sm{width:36px;height:36px;border-radius:8px;font-size:12px;}
.crest.sm img{padding:2px;}
.crest.plate{background:var(--gold);color:var(--green-900);}

/* ---------------------------------------------------------------- AUTH */
.auth-body{min-height:100vh;margin:0;background:var(--paper);}
.auth-grid{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh;}
.auth-grid.single{grid-template-columns:1fr;place-items:center;}

.auth-brand{
  background:linear-gradient(160deg,var(--green) 0%,var(--green-900) 100%);
  color:#fff;padding:56px 56px;display:flex;flex-direction:column;justify-content:center;
}
.auth-brand h1{font-size:30px;font-weight:700;margin:22px 0 6px;line-height:1.2;letter-spacing:-.4px;}
.auth-brand .tagline{color:rgba(255,255,255,.7);margin-bottom:32px;}
.auth-points{list-style:none;padding:0;margin:0 0 32px;}
.auth-points li{padding:9px 0 9px 26px;position:relative;color:rgba(255,255,255,.88);font-size:15px;}
.auth-points li::before{content:"";position:absolute;left:0;top:16px;width:12px;height:2px;background:var(--gold-soft);}
.auth-foot{color:rgba(255,255,255,.55);font-size:13px;margin:0;}

.auth-form-wrap{display:grid;place-items:center;padding:40px 20px;width:100%;}
.auth-card{width:100%;max-width:420px;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);padding:36px 34px;box-shadow:0 12px 34px rgba(0,53,27,.09);}
.auth-card h2{font-size:24px;font-weight:700;margin:0 0 4px;}
.auth-card .sub{color:var(--muted);font-size:14px;margin-bottom:24px;}
.auth-card label{font-weight:600;font-size:13px;}

@media (max-width:860px){
  .auth-grid{grid-template-columns:1fr;}
  .auth-brand{padding:36px 24px;}
  .auth-brand h1{font-size:24px;}
  .auth-points{display:none;}
}

/* ------------------------------------------------------------- TOP BAR */
.app-body{margin:0;}
.topbar{background:var(--green);color:#fff;border-bottom:3px solid var(--gold);}
.topbar-inner{max-width:1280px;margin:0 auto;padding:0 20px;display:flex;align-items:center;gap:22px;min-height:62px;}
.topbar-brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;font-weight:700;}
.topbar-brand:hover{color:#fff;}
.topbar-name{font-size:15px;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mainnav{display:flex;gap:4px;list-style:none;margin:0;padding:0;flex:1;}
.mainnav a{color:rgba(255,255,255,.72);text-decoration:none;font-size:14px;padding:8px 12px;border-radius:8px;display:block;}
.mainnav a:hover{color:#fff;background:rgba(255,255,255,.08);}
.mainnav a.active{color:#1b1403;background:var(--gold);font-weight:600;}
.topbar-right{display:flex;align-items:center;gap:14px;}
.whoami{line-height:1.15;text-align:right;}
.whoami .name{display:block;font-size:13px;font-weight:600;}
.whoami .role{display:block;font-size:11px;color:rgba(255,255,255,.55);text-transform:capitalize;}
.bell{position:relative;color:#fff;text-decoration:none;font-size:18px;}
.badge-dot{position:absolute;top:-6px;right:-9px;background:var(--gold);color:#1b1403;
  font-size:10px;font-weight:700;border-radius:10px;padding:1px 5px;}
.nav-toggle{display:none;background:none;border:0;color:#fff;font-size:22px;}

@media (max-width:960px){
  .nav-toggle{display:block;order:3;margin-left:auto;}
  .mainnav{display:none;order:4;flex-basis:100%;flex-direction:column;padding-bottom:10px;}
  .mainnav.open{display:flex;}
  .whoami{display:none;}
}

/* --------------------------------------------------------------- PAGE */
.page{max-width:1280px;margin:0 auto;padding:26px 20px 60px;}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:22px;}
.page-head h1{font-size:24px;font-weight:700;margin:0;letter-spacing:-.3px;}
.page-head .meta{color:var(--muted);font-size:14px;margin:4px 0 0;}

.grid{display:grid;gap:18px;}
.grid.cols-4{grid-template-columns:repeat(4,1fr);}
.grid.cols-3{grid-template-columns:repeat(3,1fr);}
.grid.cols-2{grid-template-columns:repeat(2,1fr);}
@media (max-width:1040px){.grid.cols-4{grid-template-columns:repeat(2,1fr);}.grid.cols-3{grid-template-columns:1fr 1fr;}}
@media (max-width:680px){.grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr;}}

.card-u{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;}
.card-u h3{font-size:12px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:700;margin:0 0 12px;}
.stat{font-size:30px;font-weight:700;line-height:1.1;letter-spacing:-.5px;}
.stat.sm{font-size:22px;}
.stat-label{color:var(--muted);font-size:13px;margin-top:4px;}
.accent-gold{border-left:4px solid var(--gold);}
.accent-teal{border-left:4px solid var(--teal);}
.accent-navy{border-left:4px solid var(--navy);}
.accent-danger{border-left:4px solid var(--danger);}

.list-u{list-style:none;margin:0;padding:0;}
.list-u li{padding:11px 0;border-bottom:1px solid var(--line);font-size:14px;}
.list-u li:last-child{border-bottom:0;}
.list-u .when{color:var(--muted);font-size:12px;}

.tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  padding:3px 9px;border-radius:20px;background:var(--paper);color:var(--muted);}
.tag.ok{background:rgba(0,85,44,.10);color:#00552C;}
.tag.warn{background:rgba(184,145,47,.18);color:#7d611a;}
.tag.bad{background:rgba(193,18,31,.10);color:var(--red);}

.due-soon{color:#7d611a;font-weight:600;}
.overdue{color:var(--danger);font-weight:700;}

.table-u{width:100%;font-size:14px;border-collapse:collapse;}
.table-u th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);
  border-bottom:1px solid var(--line);padding:8px 10px;}
.table-u td{padding:10px;border-bottom:1px solid var(--line);}
.table-u tr:last-child td{border-bottom:0;}

.empty{color:var(--muted);font-size:14px;padding:14px 0;}

.page-foot{border-top:1px solid var(--line);background:#fff;padding:18px 20px;color:var(--muted);
  font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;}

@media print{
  .topbar,.page-foot,.btn{display:none !important;}
  .page{padding:0;}
  .card-u{border:0;}
}
