:root{
  --admin-navy:#0b2545;
  --admin-navy-dark:#071a30;
  --admin-teal:#0f766e;
  --admin-teal-dark:#0a5a54;
  --admin-gold:#d7a62a;
  --admin-bg:#f3f6fa;
  --admin-card:#fff;
  --admin-ink:#172033;
  --admin-muted:#687386;
  --admin-border:#dfe7ef;
  --admin-danger:#b42318;
  --admin-shadow:0 14px 35px rgba(11,37,69,.08);
}
*{box-sizing:border-box}
body{margin:0;background:var(--admin-bg);color:var(--admin-ink);font-family:"Segoe UI",Arial,sans-serif;line-height:1.55}
a{text-decoration:none;color:inherit}
button,input,textarea,select{font:inherit}
.admin-layout{min-height:100vh}
.admin-sidebar{position:fixed;inset:0 auto 0 0;width:280px;padding:22px 16px 28px;background:radial-gradient(circle at top left,rgba(15,118,110,.38),transparent 32%),linear-gradient(180deg,var(--admin-navy-dark),var(--admin-navy));color:#dbe7f2;overflow:auto;z-index:30;transition:transform .25s ease;box-shadow:10px 0 35px rgba(7,26,48,.12)}
.admin-brand{display:flex;align-items:center;gap:12px;padding:8px 8px 22px;margin-bottom:18px;border-bottom:1px solid rgba(255,255,255,.12)}
.admin-brand img{width:58px;height:58px;object-fit:contain;padding:4px;border-radius:50%;background:#fff;box-shadow:0 7px 20px rgba(0,0,0,.18)}
.admin-brand strong,.admin-brand small{display:block}
.admin-brand strong{color:#fff;font-size:17px}
.admin-brand small{margin-top:2px;color:#aebed0;font-size:11px}
.admin-nav-title{margin:24px 12px 8px;color:#839bb2;font-size:10px;font-weight:900;letter-spacing:1.5px;text-transform:uppercase}
.admin-nav a{display:flex;align-items:center;gap:12px;margin:4px 0;padding:11px 13px;border-radius:10px;color:#d9e5ef;font-size:14px;font-weight:700;transition:.2s}
.admin-nav a:hover,.admin-nav a.active{background:rgba(255,255,255,.1);color:#fff;transform:translateX(2px)}
.admin-nav a.active{box-shadow:inset 3px 0 0 var(--admin-gold)}
.admin-content{min-height:100vh;margin-left:280px}
.admin-topbar{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid var(--admin-border);background:rgba(255,255,255,.93);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20}
.sidebar-toggle{display:none;width:42px;height:42px;border:1px solid var(--admin-border);border-radius:10px;background:#fff;color:var(--admin-navy);font-size:20px;cursor:pointer}
.admin-user{display:flex;align-items:center;gap:12px}
.admin-user small{display:block;color:var(--admin-muted)!important}
.avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,var(--admin-gold),#efcb70);color:var(--admin-navy);font-weight:900;box-shadow:0 7px 18px rgba(215,166,42,.24)}
.admin-main{padding:32px}
.admin-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:25px}
.admin-heading h1{margin:4px 0 4px;color:var(--admin-navy);font-size:34px;line-height:1.15}
.admin-heading p{max-width:760px;margin:0;color:var(--admin-muted)}
.admin-kicker{color:var(--admin-teal);font-size:10px;font-weight:900;letter-spacing:1.4px;text-transform:uppercase}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:9px 15px;border:1px solid transparent;border-radius:9px;font-weight:800;cursor:pointer;transition:.2s}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--admin-teal);color:#fff;box-shadow:0 9px 19px rgba(15,118,110,.18)}
.btn-primary:hover{background:var(--admin-teal-dark)}
.btn-secondary{background:#eef3f7;color:var(--admin-navy);border-color:#d9e3eb}
.btn-secondary:hover{background:#e4ebf1}
.btn-danger{background:#fff0ef;color:var(--admin-danger);border-color:#f3c7c3}
.btn-danger:hover{background:var(--admin-danger);color:#fff}
.btn-sm{min-height:34px;padding:6px 10px;font-size:12px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.stat-card,.card{border:1px solid var(--admin-border);border-radius:17px;background:var(--admin-card);box-shadow:var(--admin-shadow)}
.stat-card{padding:22px;position:relative;overflow:hidden}
.stat-card:after{content:"";position:absolute;right:-22px;bottom:-32px;width:95px;height:95px;border-radius:50%;background:rgba(15,118,110,.07)}
.stat-card span{color:var(--admin-muted);font-size:13px}
.stat-card strong{display:block;margin-top:7px;color:var(--admin-navy);font-family:Georgia,serif;font-size:37px;line-height:1}
.card{padding:24px;margin-top:21px}
.card>h2,.card-title-row h2{margin:0;color:var(--admin-navy);font-size:23px}
.card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--admin-border)}
.card-title-row p{margin:4px 0 0;color:var(--admin-muted);font-size:14px}
.optional-note{display:inline-flex;padding:6px 10px;border-radius:999px;background:#fff7df;color:#8a6505;font-size:11px;font-weight:900;white-space:nowrap}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.field{display:grid;gap:7px;align-content:start}
.field.full{grid-column:1/-1}
.field label{color:#344054;font-size:13px;font-weight:800}
.field label small{color:var(--admin-muted);font-weight:600}
.field input,.field textarea,.field select{width:100%;padding:11px 12px;border:1px solid #cfd9e3;border-radius:9px;background:#fff;color:var(--admin-ink);outline:none;transition:.2s}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--admin-teal);box-shadow:0 0 0 4px rgba(15,118,110,.09)}
.field textarea{resize:vertical}
.field-help{color:var(--admin-muted);font-size:11px;line-height:1.45}
.required-mark{color:#d92d20}
.checkbox-row{display:flex!important;align-items:center;gap:8px;margin-top:5px;font-weight:650!important}
.checkbox-row input{width:auto}
.actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.alert{padding:13px 16px;border-radius:10px;margin:15px 0;border:1px solid transparent;font-weight:700}
.alert-success{background:#e9f8f0;color:#17643e;border-color:#c5ebd5}
.alert-error{background:#fff0ef;color:#9d2b22;border-color:#f5cbc7}
.table-wrap{overflow:auto}
.admin-table{width:100%;min-width:850px;border-collapse:separate;border-spacing:0}
.admin-table th,.admin-table td{padding:13px 12px;text-align:left;border-bottom:1px solid #e8edf2;vertical-align:middle}
.admin-table th{position:sticky;top:0;background:#f7f9fb;color:#667085;font-size:10px;font-weight:900;letter-spacing:.7px;text-transform:uppercase;z-index:1}
.admin-table tbody tr:hover{background:#fbfcfd}
.admin-table tbody tr:last-child td{border-bottom:0}
.thumb{width:76px;height:54px;object-fit:cover;border-radius:9px;border:1px solid var(--admin-border);background:#f0f4f7}
.thumb-person{width:52px;height:52px;border-radius:50%}
.preview-image{max-width:240px;max-height:150px;object-fit:cover;margin-top:8px;border-radius:10px;border:1px solid var(--admin-border)}
.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:900}
.badge-on{background:#e4f6ed;color:#147a4a}
.badge-off{background:#f3f4f6;color:#667085}
.table-subtext{display:block;margin-top:3px;color:var(--admin-muted)}
.table-avatar,.table-placeholder{display:grid;place-items:center;background:linear-gradient(145deg,var(--admin-teal),var(--admin-navy));color:#fff;font-weight:900}
.table-avatar{width:48px;height:48px;border-radius:50%;font-size:18px}
.table-placeholder{width:58px;height:45px;border-radius:9px;font-size:20px}
.faculty-count-link{display:inline-flex;padding:5px 9px;border-radius:999px;background:#e7f4f2;color:var(--admin-teal);font-size:12px;font-weight:900}
.faculty-count-link:hover{background:var(--admin-teal);color:#fff}
.admin-empty-cell{padding:38px!important;text-align:center!important;color:var(--admin-muted)}
.admin-filter-card{padding:16px 20px}
.admin-filter-form{display:flex;align-items:end;gap:12px}
.admin-filter-form .field{min-width:280px}
.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top left,rgba(15,118,110,.42),transparent 34%),linear-gradient(135deg,var(--admin-navy-dark),var(--admin-navy))}
.login-box{width:min(450px,100%);padding:35px;border-radius:22px;background:#fff;box-shadow:0 28px 75px rgba(0,0,0,.28)}
.login-logo{width:100px;height:100px;object-fit:contain;margin:0 auto}
.login-box h1{text-align:center;color:var(--admin-navy)}
.login-box .field{margin-bottom:15px}
.help{color:var(--admin-muted);font-size:12px}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){
  .admin-sidebar{transform:translateX(-100%)}
  body.sidebar-open .admin-sidebar{transform:translateX(0)}
  body.sidebar-open:after{content:"";position:fixed;inset:0;background:rgba(7,26,48,.48);z-index:25}
  .admin-content{margin-left:0}
  .sidebar-toggle{display:block}
  .admin-main{padding:20px}
  .admin-topbar{padding:0 16px}
  .admin-heading{align-items:flex-start;flex-direction:column}
  .form-grid,.stats-grid{grid-template-columns:1fr}
  .field.full{grid-column:auto}
}
@media(max-width:560px){
  .admin-main{padding:15px}
  .admin-topbar>div:first-of-type{display:none}
  .admin-user div{display:none}
  .card{padding:18px;border-radius:14px}
  .card-title-row{align-items:flex-start;flex-direction:column}
  .admin-filter-form{align-items:stretch;flex-direction:column}
  .admin-filter-form .field{min-width:0}
}

/* Responsive admin repair */
html{overflow-x:hidden}
body{min-width:320px;overflow-x:clip}
button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid rgba(215,166,42,.9);outline-offset:3px}
.admin-main,.card,.field,.admin-heading>*{min-width:0}
.sidebar-toggle{align-items:center;justify-content:center;flex-direction:column;gap:4px;padding:0}
.sidebar-toggle span{display:block;width:22px;height:2px;border-radius:2px;background:currentColor;transition:.22s}
.sidebar-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.sidebar-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.sidebar-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.table-wrap{max-width:100%;overscroll-behavior:contain;scrollbar-width:thin}
.field input,.field textarea,.field select{min-width:0}
@media(max-width:820px){
  body.sidebar-open{overflow:hidden}
  .sidebar-toggle{display:flex;position:relative;z-index:40}
  .admin-sidebar{width:min(300px,86vw)}
  body.sidebar-open:after{pointer-events:auto}
}
@media(max-width:560px){
  .admin-topbar{height:64px}
  .admin-heading h1{font-size:28px}
  .admin-main{padding:14px}
  .stats-grid{gap:12px}
  .stat-card{padding:18px}
  .card{margin-top:16px}
  .actions .btn{flex:1 1 120px}
}
