/* ============================================================
   assets/css/main.css  — Portal Kepegawaian
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=DM+Sans:wght@300;400;500;600&display=swap');

:root {
  --bg:        #eef2ff;
  --surface:   #ffffff;
  --surface2:  #f0f4f8;
  --border:    #e0e4ea;
  --accent:    #0284c7;
  --accent2:   #0369a1;
  --text:      #1a202c;
  --text-muted:#6b7280;
  --sidebar-w: 280px;
  --green:     #16a34a;
  --blue:      #2563eb;
  --red:       #dc2626;
  --topbar-h:  32px;
}

* { margin:0; padding:0; box-sizing:border-box; }

body {
  font-family: 'DM Sans', sans-serif;
  background: #0a1628;
  color: var(--text);
  min-height: 100vh;
  display: flex;
  overflow: hidden;
}

/* ── TOPBAR ──────────────────────────────────────────────────── */
:root {
  --topbar-h: 44px;
}
.pub-topbar {
  background: #0f2038;
  border-bottom: 1px solid rgba(255,255,255,.10);
  padding: 0 28px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  position: fixed;
  top: 0;
  left: var(--sidebar-w);
  right: 0;
  z-index: 200;
  height: var(--topbar-h);
}

/* Breadcrumb di kiri */
.pub-breadcrumb {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13.5px;
  letter-spacing: 0.01em;
}
.pub-breadcrumb-home {
  color: rgba(255,255,255,.55);
  cursor: pointer;
  transition: color .2s;
  font-weight: 400;
}
.pub-breadcrumb-home:hover { color: #0ea5e9; }
.pub-breadcrumb-sep  { color: rgba(255,255,255,.30); font-weight: 300; }
.pub-breadcrumb-current {
  color: #fff;
  font-weight: 700;
}

/* ── SIDEBAR ─────────────────────────────────────────────────── */
.sidebar {
  width: var(--sidebar-w);
  background: #0a1628;
  border-right: 1px solid rgba(255,255,255,.06);
  display: flex; flex-direction: column;
  position: fixed; left:0; top:0; bottom:0;
  z-index: 250; overflow: hidden;
}

.logo-area {
  padding: 16px 14px 14px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  text-align: center;
}
.logo-icon {
  width: 60px; height: 60px;
  background: linear-gradient(135deg,#1e3a8a,#2563eb);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 26px; margin: 0 auto 10px;
  box-shadow: 0 4px 18px rgba(37,99,235,.45);
  flex-shrink: 0;
}
/* wrapper lingkaran untuk gambar logo — support PNG/JPG/SVG/WEBP */
.logo-icon-penta {
  width: 68px; height: 68px;
  border-radius: 50%;
  overflow: hidden;
  margin: 0 auto 10px;
  display: flex; align-items: center; justify-content: center;
  background: #0f1e4a;
  box-shadow: 0 4px 18px rgba(15,30,74,.55);
  flex-shrink: 0;
  padding: 0;
}
.logo-icon-penta img {
  width: 100%; height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  padding: 4px;
  box-sizing: border-box;
  clip-path: none;
  shape-rendering: auto;
}
.logo-title {
  font-size: 12.5px; font-weight: 800;
  color: #fff; line-height: 1.3;
  letter-spacing: .2px;
  margin-bottom: 4px;
}
.logo-sub {
  font-size: 11px; color: #0ea5e9;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 800;
  margin-bottom: 4px;
}
.logo-resmi {
  display: inline-block;
  font-size: 9px;
  color: #fff;
  letter-spacing: 3px;
  font-weight: 700;
  margin-top: 5px;
  font-style: normal;
  background-color: #0284c7;
  padding: 3px 12px;
  border-radius: 999px;
}

.nav-section {
  padding: 16px 14px 5px;
  font-size: 10px; font-weight: 800;
  letter-spacing: 2px; text-transform: uppercase;
  color: rgba(255,255,255,.3);
}
.nav-links { flex:1; overflow-y:auto; padding:0 10px; }
.nav-links::-webkit-scrollbar { width:3px; }
.nav-links::-webkit-scrollbar-thumb { background:rgba(255,255,255,.15); border-radius:3px; }

.nav-item {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 12px 9px 14px;
  border-radius: 8px;
  cursor: pointer; margin-bottom: 2px;
  color: rgba(255,255,255,.6);
  font-size: 13.5px; font-weight: 500;
  border: none;
  transition: all .2s ease;
  text-decoration: none;
  position: relative;
}
.nav-item span {
  flex: 1;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nav-item:hover {
  background: rgba(14,165,233,.12);
  color: #fff;
}
.nav-item.active {
  background: rgba(14,165,233,.22);
  color: #0ea5e9;
  font-weight: 600;
  border-left: 3px solid #0ea5e9;
}
.nav-icon {
  width: 30px; height: 30px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px;
  background: rgba(255,255,255,.08);
  flex-shrink: 0;
  transition: background .2s;
}
.nav-item:hover .nav-icon  { background: rgba(14,165,233,.18); }
.nav-item.active .nav-icon { background: rgba(14,165,233,.3); }

/* Dot aktif — bulat kuning di kanan */
.nav-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: transparent;
  margin-left: auto; flex-shrink: 0;
  transition: background .2s, box-shadow .2s;
}
.nav-item.active .nav-dot {
  background: #0ea5e9;
  box-shadow: 0 0 6px rgba(14,165,233,.8);
}

/* Ripple effect on nav click */
.nav-item {
  overflow: hidden;
}
.nav-ripple {
  position: absolute;
  border-radius: 50%;
  background: rgba(14,165,233,.35);
  transform: scale(0);
  animation: nav-ripple-anim .5s linear;
  pointer-events: none;
}
@keyframes nav-ripple-anim {
  to { transform: scale(4); opacity: 0; }
}

/* Nav click scale bounce */
.nav-item:active {
  transform: scale(.97);
}

/* Dropdown menu "SISTER" — grup Kelola Dosen/Tendik/Penunjang/BKD/Usia Pensiun */
.nav-caret {
  margin-left: auto;
  flex-shrink: 0;
  font-size: 22px;        /* diperbesar (sebelumnya 11px) */
  line-height: 1;
  width: 26px;
  text-align: center;
  opacity: .9;
  transition: transform .2s ease;
}
.nav-group-toggle.open .nav-caret,
#nav-group-toggle-sister.open .nav-caret {
  transform: rotate(180deg);
}
.nav-group {
  max-height: 0;
  overflow: hidden;
  transition: max-height .25s ease;
}
.nav-group.open {
  max-height: 2000px;
}
.nav-item.nav-sub {
  padding-left: 22px;
  padding-right: 8px;
  gap: 8px;
  font-size: 13px;
}
.nav-item.nav-sub .nav-icon {
  width: 26px; height: 26px; font-size: 13px;
}

.admin-section {
  padding:14px 10px; border-top:1px solid rgba(255,255,255,.1); margin-top:auto;
}
.admin-user-info {
  display:flex; align-items:center; gap:10px;
  padding:10px 12px; margin-bottom:10px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.15); border-radius:10px;
}
.admin-user-avatar {
  width:34px; height:34px; border-radius:50%;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  display:flex; align-items:center; justify-content:center;
  font-size:14px; font-weight:700; color:#fff; flex-shrink:0;
}
.admin-user-name { font-size:13px; font-weight:600; color:#fff; }
.admin-user-role { font-size:11px; color:rgba(255,255,255,.5); }

.btn-sidebar {
  width:100%; padding:10px;
  border:none; border-radius:8px; cursor:pointer;
  font-family:'DM Sans',sans-serif; font-size:14px; font-weight:600;
  display:flex; align-items:center; justify-content:center; gap:8px;
  transition: opacity .2s, transform .1s;
}
.btn-sidebar-login {
  background:linear-gradient(135deg,var(--accent),var(--accent2)); color:#fff;
}
.btn-sidebar-logout {
  background:rgba(248,81,73,.12); border:1px solid rgba(248,81,73,.3);
  color:#ff6b6b; margin-top:8px;
}
.btn-sidebar:hover { opacity:.9; transform:translateY(-1px); }

/* ── MAIN AREA ───────────────────────────────────────────────── */
.main {
  background: #0a1628;
  margin-left: var(--sidebar-w);
  margin-top: var(--topbar-h);
  flex: 1; overflow-y: auto;
  height: calc(100vh - var(--topbar-h));
  padding-bottom: 50px;
}
.main::-webkit-scrollbar { width:5px; }
.main::-webkit-scrollbar-thumb { background:var(--border); border-radius:3px; }

.page { display:none; min-height:calc(100vh - var(--topbar-h)); background: #0a1628; }
.page.active { display:block; animation:fadeIn .4s ease; }
@keyframes fadeIn {
  from { opacity:0; transform:translateY(8px); }
  to   { opacity:1; transform:translateY(0); }
}

/* ── BERANDA BANNER ──────────────────────────────────────────── */
.beranda-banner {
  display:flex; align-items:center; justify-content:space-between;
  padding:52px 60px 44px; position:relative; overflow:hidden;
  background:linear-gradient(135deg,#1e3a8a,#1d4ed8 40%,#0369a1 75%,#0891b2);
  min-height:280px;
}
.beranda-banner-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 70% 80% at 10% 50%,rgba(255,255,255,.15),transparent 60%),
    radial-gradient(ellipse 50% 60% at 90% 20%,rgba(8,145,178,.25),transparent 60%);
}
.beranda-banner-content { position:relative; z-index:2; max-width:560px; }
.beranda-welcome-badge {
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.4);
  color:#fff; padding:5px 16px; border-radius:20px;
  font-size:12px; font-weight:700; text-transform:uppercase;
  letter-spacing:1.2px; margin-bottom:20px;
  animation:slideDown .5s ease .1s both;
}
.beranda-title {
  font-family:'Playfair Display',serif;
  font-size:clamp(26px,3.5vw,44px); font-weight:700; line-height:1.15;
  color:#fff; margin-bottom:14px; animation:slideDown .5s ease .2s both;
}
.beranda-title span {
  background:linear-gradient(135deg,#bae6fd,#7dd3fc,#fff);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
}
.beranda-desc {
  color:rgba(255,255,255,.92); font-size:15px; line-height:1.7;
  margin-bottom:26px; animation:slideDown .5s ease .3s both;
}
.beranda-actions { display:flex; gap:12px; flex-wrap:wrap; animation:slideDown .5s ease .4s both; }
.beranda-btn-primary {
  padding:10px 22px;
  background:linear-gradient(135deg,#0284c7,#0369a1);
  border:none; border-radius:10px; color:#fff;
  font-size:14px; font-weight:700; cursor:pointer;
  font-family:'DM Sans',sans-serif;
  transition:all .2s; box-shadow:0 4px 15px rgba(2,132,199,.35);
}
.beranda-btn-primary:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(2,132,199,.45); }
.beranda-btn-secondary {
  padding:10px 22px; background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.25); border-radius:10px;
  color:#fff; font-size:14px; font-weight:600; cursor:pointer;
  font-family:'DM Sans',sans-serif; transition:all .2s; backdrop-filter:blur(4px);
}
.beranda-btn-secondary:hover { background:rgba(255,255,255,.18); transform:translateY(-2px); }

.banner-icon-main {
  font-size:72px; z-index:1;
  animation:float 3s ease-in-out infinite;
  filter:drop-shadow(0 8px 24px rgba(0,0,0,.3));
}
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
@keyframes slideDown { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }

/* ── STATS ────────────────────────────────────────────────────── */
.beranda-section { padding:36px 60px 0; }
.beranda-section-header { display:flex; align-items:center; gap:14px; margin-bottom:20px; }
.beranda-section-label {
  font-size:13px; font-weight:700; text-transform:uppercase;
  letter-spacing:1.5px; color:#1d4ed8; white-space:nowrap;
}
.beranda-section-line { flex:1; height:1px; background:linear-gradient(90deg,var(--border),transparent); }

.beranda-stats-row {
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:28px;
}
.bstat-main {
  border-radius:16px; padding:20px 18px;
  display:flex; align-items:center; gap:14px;
  position:relative; overflow:hidden;
  transition:transform .2s,box-shadow .2s;
}
.bstat-main:hover { transform:translateY(-3px); box-shadow:0 10px 28px rgba(0,0,0,.12); }
.dosen-color    { background:linear-gradient(135deg,#eff6ff,#dbeafe); border:1px solid #bfdbfe; }
.tendik-color   { background:linear-gradient(135deg,#ecfeff,#cffafe); border:1px solid #a5f3fc; }
.penunjang-color{ background:linear-gradient(135deg,#f0f9ff,#e0f2fe); border:1px solid #bae6fd; }
.serdos-color   { background:linear-gradient(135deg,#eef2ff,#e0e7ff); border:1px solid #c7d2fe; }
.bstat-main-icon {
  font-size:30px; width:54px; height:54px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.6); flex-shrink:0;
}
.bstat-main-num {
  font-family:'Playfair Display',serif; font-size:36px; font-weight:700;
  line-height:1; color:var(--text);
}
.bstat-main-label { font-size:13px; color:var(--text-muted); margin-top:4px; font-weight:500; }

/* ── PAGE HEADER ─────────────────────────────────────────────── */
.page-header {
  display: none;
}

.content-area { padding:36px 60px; }

/* ── TABLE ────────────────────────────────────────────────────── */
.table-wrapper {
  background:#0f1f3d; border:1px solid #1e3a8a;
  border-top:3px solid #0ea5e9; border-radius:12px; overflow:hidden;
  overflow-x: auto; -webkit-overflow-scrolling: touch;
}

/* ── Admin Pagination ───────────────────────────────────────── */
.admin-pag-wrap {
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:10px;
  padding:12px 20px;
  border-top:1px solid rgba(255,255,255,.08);
  background:#0a1628;
}
.admin-pag-info { font-size:13px; color:rgba(255,255,255,.45); }
.admin-pag-btns { display:flex; gap:4px; flex-wrap:wrap; }
.admin-pag-btn {
  min-width:34px; height:34px; padding:0 10px;
  background:#0f1f3d; border:1px solid rgba(255,255,255,.15);
  border-radius:7px; color:rgba(255,255,255,.65);
  font-size:13px; font-weight:600; cursor:pointer;
  font-family:'DM Sans',sans-serif; transition:all .18s;
}
.admin-pag-btn:hover:not(:disabled):not(.active) { border-color:#0ea5e9; color:#0ea5e9; }
.admin-pag-btn.active { background:#2563eb; border-color:#2563eb; color:#fff; }
.admin-pag-btn:disabled { opacity:.3; cursor:default; }
.table-header {
  padding:16px 20px; border-bottom:1px solid rgba(255,255,255,.08);
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
}
.table-header h3 { font-size:15px; font-weight:600; color:#0ea5e9; }
.search-box {
  display:flex; align-items:center; gap:8px;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.15);
  border-radius:7px; padding:6px 12px;
}
.search-box input {
  background:none; border:none; outline:none;
  color:#fff; font-size:13px; font-family:'DM Sans',sans-serif; width:180px;
}
.search-box input::placeholder { color:rgba(255,255,255,.35); }

table { width:100%; border-collapse:collapse; background:#0f1f3d; }
tbody { background:#0f1f3d; }
thead { background:#0a1628; }
th {
  padding:11px 16px; text-align:left;
  font-size:11px; font-weight:600; text-transform:uppercase;
  letter-spacing:.5px; color:#0ea5e9; border-bottom:2px solid #0ea5e9;
}
td {
  padding:12px 16px; font-size:14px;
  border-bottom:1px solid rgba(255,255,255,.06);
  color:rgba(255,255,255,.85); background:#0f1f3d;
}
tr:nth-child(even) td { background:#0d1b35; }
tr:last-child td { border-bottom:none; }
tr:hover td { background:rgba(14,165,233,.07)!important; color:rgba(255,255,255,.85)!important; }
tr:focus-within td { background:#0f1f3d; color:rgba(255,255,255,.85); }

/* ── Global button reset — cegah warna putih browser bawaan ── */
button {
  -webkit-appearance: none;
  appearance: none;
  background: none;
  border: none;
  font-family: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
/* Tombol aksi di dalam tabel */
td button {
  -webkit-tap-highlight-color: transparent;
  outline: none;
}
td button:active {
  opacity: .75;
  transform: scale(.96);
}
td button:focus { outline: none; }

/* Cegah flash putih saat klik row di mobile */
tr {
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}
/* Paksa warna teks & background td agar tidak berubah putih di semua state */
tr td,
tr:hover td,
tr:active td,
tr:focus td,
tr:visited td {
  color: rgba(255,255,255,.85) !important;
}
tr:nth-child(even) td,
tr:nth-child(even):focus td,
tr:nth-child(even):active td {
  background: #0d1b35 !important;
}
tr:nth-child(odd) td,
tr:nth-child(odd):focus td,
tr:nth-child(odd):active td {
  background: #0f1f3d !important;
}
tr:hover td {
  background: rgba(14,165,233,.07) !important;
}

.badge {
  display:inline-block; padding:3px 10px; border-radius:20px;
  font-size:12px; font-weight:600;
}
.badge-green  { background:#16a34a; color:#fff; }
.badge-blue   { background:#2563eb; color:#fff; }
.badge-orange { background:#0284c7; color:#fff; }
.badge-red    { background:#dc2626; color:#fff; }

.avatar {
  width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:700; flex-shrink:0;
}
.td-user { display:flex; align-items:center; gap:10px; }
.td-name { font-weight:600; color:#fff; }
.td-sub  { font-size:12px; color:rgba(255,255,255,.5); }
.td-actions { display:flex; gap:6px; }

.btn-add {
  padding:8px 14px;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  border:none; border-radius:8px; color:#fff;
  font-size:13px; font-weight:600; cursor:pointer;
  font-family:'DM Sans',sans-serif;
  display:flex; align-items:center; gap:6px; transition:opacity .2s;
}
.btn-add:hover { opacity:.9; }
.btn-edit {
  padding:5px 10px; background:rgba(14,165,233,.12);
  border:1px solid rgba(14,165,233,.3); border-radius:6px;
  color:var(--accent); font-size:12px; font-weight:600;
  cursor:pointer; font-family:'DM Sans',sans-serif; transition:all .2s;
}
.btn-edit:hover { background:rgba(14,165,233,.22); }
.btn-del {
  padding:5px 10px; background:rgba(220,38,38,.1);
  border:1px solid rgba(220,38,38,.25); border-radius:6px;
  color:#ff6b6b; font-size:12px; font-weight:600;
  cursor:pointer; font-family:'DM Sans',sans-serif; transition:all .2s;
}
.btn-del:hover { background:rgba(220,38,38,.2); }

/* ── MODAL ────────────────────────────────────────────────────── */
.modal-overlay {
  display:none; position:fixed; inset:0;
  background:rgba(0,0,0,.6); z-index:500;
  align-items:center; justify-content:center; backdrop-filter:blur(3px);
}
.modal-overlay.open { display:flex; }
.modal {
  background:#0f1f3d; border:1px solid #1e3a8a;
  border-top:4px solid #0ea5e9; border-radius:16px;
  padding:32px; width:100%; max-width:540px; max-height:90vh;
  overflow-y:auto; position:relative;
  box-shadow:0 16px 48px rgba(0,0,0,.5);
  animation:modalIn .3s ease;
}
@keyframes modalIn { from{opacity:0;transform:scale(.95)} to{opacity:1;transform:scale(1)} }
.modal h3 {
  font-family:'Playfair Display',serif; font-size:20px;
  color:#fff; margin-bottom:22px;
}
.modal-close {
  position:absolute; top:16px; right:16px;
  width:30px; height:30px; border-radius:8px;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2);
  color:rgba(255,255,255,.7); font-size:18px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; line-height:1;
  transition:all .2s;
}
.modal-close:hover { color:#fff; background:rgba(248,81,73,.2); border-color:rgba(248,81,73,.4); }

/* ── FORM ─────────────────────────────────────────────────────── */
.form-group { margin-bottom:16px; }
.form-group label {
  display:block; font-size:12px; font-weight:600;
  color:rgba(255,255,255,.6); text-transform:uppercase;
  letter-spacing:.5px; margin-bottom:6px;
}
.form-group input,
.form-group select,
.form-group textarea {
  width:100%; padding:10px 13px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.15);
  border-radius:8px; color:#fff;
  font-size:14px; font-family:'DM Sans',sans-serif;
  outline:none; transition:border-color .2s;
}
.form-group input::placeholder,
.form-group textarea::placeholder { color:rgba(255,255,255,.3); }
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus { border-color:#0ea5e9; }
.form-group select option { background:#0f1f3d; }
.form-group textarea { resize:vertical; min-height:80px; }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }

.btn-submit {
  width:100%; padding:12px;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  border:none; border-radius:8px; color:#fff;
  font-size:15px; font-weight:700; cursor:pointer;
  font-family:'DM Sans',sans-serif; margin-top:8px;
  transition:opacity .2s,transform .1s;
}
.btn-submit:hover { opacity:.9; transform:translateY(-1px); }

/* ── LOGIN ────────────────────────────────────────────────────── */
.login-wrap {
  min-height:calc(100vh - var(--topbar-h));
  display:flex; align-items:center; justify-content:center;
  background:radial-gradient(ellipse 60% 60% at 50% 40%,#eef2ff,#fff);
  padding:40px 20px;
}
.login-card {
  background:#0f1f3d; border:1px solid #1e3a8a;
  border-top:4px solid #0ea5e9; border-radius:16px;
  padding:44px 40px; width:100%; max-width:420px;
  box-shadow:0 8px 32px rgba(0,0,0,.35);
}
.login-logo {
  width:52px; height:52px;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  border-radius:12px; display:flex;
  align-items:center; justify-content:center;
  font-size:24px; margin:0 auto 20px;
}
.login-card h2 {
  font-family:'Playfair Display',serif; font-size:24px;
  text-align:center; margin-bottom:6px; color:#fff;
}
.login-sub { text-align:center; color:rgba(255,255,255,.6); font-size:14px; margin-bottom:28px; }
.login-error {
  background:rgba(220,38,38,.15); border:1px solid rgba(220,38,38,.3);
  color:#fca5a5; padding:10px 14px; border-radius:8px;
  font-size:13px; margin-bottom:16px; display:none;
}
.login-footer { text-align:center; margin-top:18px; font-size:13px; color:rgba(255,255,255,.45); }

/* ── INFORMASI CARDS ─────────────────────────────────────────── */
.info-doc-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.info-doc-card {
  display:flex; align-items:flex-start; gap:14px;
  background:#0f1f3d; border:1px solid rgba(255,255,255,.08);
  border-right:3px solid #0ea5e9; border-radius:10px;
  padding:14px 16px; transition:all .2s;
}
.info-doc-card:hover { transform:translateY(-1px); box-shadow:0 4px 16px rgba(14,165,233,.2); }
.info-doc-icon {
  width:40px; height:40px; border-radius:8px;
  background:rgba(14,165,233,.15);
  display:flex; align-items:center; justify-content:center;
  font-size:20px; flex-shrink:0;
}
.info-doc-title { font-size:14px; font-weight:600; color:#fff; margin-bottom:4px; }
.info-doc-desc  { font-size:12px; color:rgba(255,255,255,.6); line-height:1.5; }
.info-doc-action { font-size:12px; color:#0ea5e9; font-weight:600; margin-top:6px; cursor:pointer; }

/* ── STRUKTUR ────────────────────────────────────────────────── */
.org-chart {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  background: #0d1b35;
  border-radius: 16px;
  border: 1px solid rgba(14,165,233,.35);
  border-top: 3px solid #0ea5e9;
  padding: 32px 20px;
  box-shadow: 0 4px 32px rgba(0,0,0,.35);
}
.org-level { display:flex; flex-wrap:wrap; justify-content:center; gap:14px; padding:0 10px; }
.org-connector { width:2px; height:28px; background:#94a3b8; opacity:.6; }
.org-card {
  background:#0f1f3d !important; border:2px solid var(--accent);
  border-radius:14px; padding:16px 22px;
  min-width:180px; max-width:260px; flex:1;
  text-align:center; transition:transform .2s;
  box-shadow:0 4px 16px rgba(0,0,0,.25);
}
.org-card:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,.35); }
.org-jabatan { font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--accent); margin-bottom:6px; }
.org-nama    { font-weight:700; font-size:14px; color:#ffffff !important; }
.org-gelar   { font-size:11px; color:rgba(255,255,255,.55) !important; margin-top:3px; }

/* ── PENUNJANG CARDS ─────────────────────────────────────────── */
.penunjang-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:14px; }
.penunjang-card {
  background:#0f1f3d; border:1px solid rgba(255,255,255,.08);
  border-top:3px solid #0ea5e9; border-radius:12px;
  padding:20px 18px; text-align:center; transition:all .2s;
}
.penunjang-card:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,.2); }
.penunjang-avatar {
  width:54px; height:54px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:22px; font-weight:700; color:#fff; margin:0 auto 12px;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
}
.penunjang-nama    { font-size:15px; font-weight:600; color:#fff; margin-bottom:4px; }
.penunjang-jabatan { font-size:12px; color:rgba(255,255,255,.5); }
.penunjang-unit    { font-size:11px; color:rgba(255,255,255,.35); margin-top:2px; }

/* ── TOAST ────────────────────────────────────────────────────── */
.toast-wrap { position:fixed; bottom:24px; right:24px; z-index:9999; display:flex; flex-direction:column; gap:8px; }
.toast {
  padding:12px 18px; border-radius:10px;
  font-size:14px; font-weight:500; color:#fff;
  box-shadow:0 4px 16px rgba(0,0,0,.25);
  animation:toastIn .3s ease; max-width:320px;
}
.toast.success { background:#16a34a; }
.toast.error   { background:#dc2626; }
.toast.info    { background:#2563eb; }
@keyframes toastIn { from{opacity:0;transform:translateX(20px)} to{opacity:1;transform:translateX(0)} }

/* ── FOOTER ───────────────────────────────────────────────────── */
.footer {
  padding:20px 60px; text-align:center;
  font-size:13px; color:var(--text-muted);
  border-top:1px solid var(--border); margin-top:40px;
}

/* ── HAMBURGER BUTTON ────────────────────────────────────────── */
.hamburger-btn {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 36px;
  height: 36px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 4px;
  margin-right: 12px;
  flex-shrink: 0;
}
.hamburger-btn span {
  display: block;
  height: 2px;
  width: 22px;
  background: rgba(255,255,255,.80);
  border-radius: 2px;
  transition: all .3s;
}
.hamburger-btn:hover span { background: #0ea5e9; }

/* Sidebar overlay (mobile) */
.sidebar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 240;
}
.sidebar-overlay.active { display: block; }

/* ── RESPONSIVE ───────────────────────────────────────────────── */
@media (max-width:768px) {
  :root { --sidebar-w:0px; }

  /* Hamburger tampil di mobile */
  .hamburger-btn { display: flex; }

  /* Sidebar tersembunyi, slide dari kiri saat .open */
  .sidebar {
    display: flex !important;
    transform: translateX(-100%);
    transition: transform .28s cubic-bezier(.4,0,.2,1);
    width: 280px;
    max-width: 85vw;
    z-index: 250;
  }
  .sidebar.open { transform: translateX(0); }

  .pub-topbar-left { margin-left:0; }
  .main { margin-left:0; }
  .beranda-banner { padding:36px 24px 28px; }
  .beranda-stats-row { grid-template-columns:repeat(2,1fr); }
  .page-header, .content-area { padding:24px 20px; }
  .beranda-section { padding:24px 20px 0; }
  .grid-2 { grid-template-columns:1fr; }
  .info-doc-grid { grid-template-columns:1fr; }
  .login-card { padding:32px 24px; }
  .footer { padding:20px; }
}
@media (max-width:480px) {
  .beranda-stats-row { grid-template-columns:1fr 1fr; }
  .modal { margin:12px; }
}

/* ══════════════════════════════════════════
   TABEL DOSEN — DESAIN BARU
══════════════════════════════════════════ */

/* Info bar */
.dosen-infobar {
  display:flex; align-items:flex-start; gap:14px;
  background:rgba(37,99,235,.12);
  border:1px solid rgba(37,99,235,.3);
  border-radius:10px; padding:14px 18px;
  margin-bottom:20px;
}
.dosen-infobar-icon {
  width:28px; height:28px; border-radius:6px;
  background:#2563eb; color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:14px; font-weight:900; flex-shrink:0; margin-top:1px;
}
.dosen-infobar-title {
  font-size:14px; font-weight:700; color:#0ea5e9; margin-bottom:3px;
}
.dosen-infobar-desc { font-size:13px; color:rgba(255,255,255,.75); }
.dosen-infobar-date { color:#0ea5e9; font-weight:600; }

/* Kontrol atas */
.dosen-controls {
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:12px; margin-bottom:14px;
}
.dosen-perpage {
  display:flex; align-items:center; gap:10px;
  font-size:14px; color:rgba(255,255,255,.7);
}
.dosen-perpage select {
  padding:6px 32px 6px 12px;
  background:#1e3a8a;
  border:1px solid rgba(255,255,255,.2);
  border-radius:8px; color:#fff;
  font-size:14px; font-family:'DM Sans',sans-serif;
  cursor:pointer; outline:none;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%230ea5e9' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
}
.dosen-search-wrap {
  display:flex; align-items:center; gap:10px;
  font-size:14px; color:rgba(255,255,255,.7);
}
.dosen-search-wrap input {
  padding:7px 14px;
  background:#fff; border:1.5px solid #d1d5db;
  border-radius:8px; color:#1a202c;
  font-size:14px; font-family:'DM Sans',sans-serif;
  outline:none; width:200px;
  transition:border-color .2s, box-shadow .2s;
}
.dosen-search-wrap input:focus {
  border-color:#2563eb;
  box-shadow:0 0 0 3px rgba(37,99,235,.15);
}

/* Tabel dosen */
.dosen-table { width:100%; border-collapse:collapse; }
.dosen-table thead { background:#0a1628; }
.dosen-table th {
  padding:14px 16px; text-align:left;
  font-size:11px; font-weight:800;
  text-transform:uppercase; letter-spacing:.8px;
  color:#0ea5e9;
  border-bottom:2px solid #0ea5e9;
  white-space:nowrap;
}
.dosen-table th.col-no     { width:52px; text-align:center; }
.dosen-table th.col-usia   { width:80px; text-align:center; white-space:nowrap; }
.dosen-table th.col-status { width:145px; text-align:center; }
.dosen-table th.col-aksi   { width:90px; text-align:center; }

.dosen-table td {
  padding:14px 16px; font-size:14px;
  border-bottom:1px solid rgba(255,255,255,.07);
  color:#e2e8f0;
  background:#0f1f3d;
  vertical-align:middle;
}
.dosen-table tr:nth-child(even) td { background:#0d1b35; }
.dosen-table tr:last-child td { border-bottom:none; }
.dosen-table tr:hover td { background:rgba(14,165,233,.07)!important; }

.dosen-table td.col-no { text-align:center; font-weight:600; color:rgba(255,255,255,.5); }
.dosen-table td.col-usia   { text-align:center; white-space:nowrap; }
.dosen-table td.col-status { text-align:center; }
.dosen-table td.col-aksi   { text-align:center; }

.td-loading {
  text-align:center; padding:32px!important;
  color:rgba(255,255,255,.65); font-size:14px;
}

/* Nama dosen */
.dosen-nama-wrap { display:flex; flex-direction:column; gap:1px; }
.dosen-nama-text {
  font-weight: 700; color: #ffffff; font-size: 14px; line-height: 1.3;
}
.dosen-email {
  font-size: 12px; color: #7dd3fc; margin-top: 1px;
  font-style: normal;
}

/* Badge status khusus */
.badge-aktif        { background:#16a34a; color:#fff; padding:4px 14px; border-radius:20px; font-size:12px; font-weight:700; white-space:nowrap; display:inline-block; }
.badge-nonaktif     { background:#dc2626; color:#fff; padding:4px 14px; border-radius:20px; font-size:12px; font-weight:700; white-space:nowrap; display:inline-block; }
.badge-tugasbelajar { background:#2563eb; color:#fff; padding:4px 10px; border-radius:20px; font-size:12px; font-weight:700; white-space:nowrap; display:inline-block; }
.badge-izinbelajar  { background:#0891b2; color:#fff; padding:4px 10px; border-radius:20px; font-size:12px; font-weight:700; white-space:nowrap; display:inline-block; }
.badge-orange       { background:#0284c7; color:#fff; padding:4px 14px; border-radius:20px; font-size:12px; font-weight:700; white-space:nowrap; display:inline-block; }
.badge-cuti       { background:#0284c7; color:#fff; padding:4px 14px; border-radius:20px; font-size:12px; font-weight:700; }

/* Tombol Detail */
.btn-detail-dosen {
  padding: 6px 16px;
  background: #0a1628;
  border: 1.5px solid #0ea5e9;
  border-radius: 50px;
  color: #fff;
  font-size: 13px; font-weight: 600;
  cursor: pointer; font-family: 'DM Sans', sans-serif;
  display: inline-flex; align-items: center; gap: 6px;
  transition: all .2s;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(14,165,233,.15);
}
.btn-detail-dosen:hover {
  background: #0ea5e9;
  color: #fff;
  box-shadow: 0 4px 14px rgba(14,165,233,.35);
  transform: translateY(-1px);
}

/* Pagination */
.dosen-pagination-wrap {
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:12px; margin-top:18px;
}
.dosen-info-count { font-size:13px; color:rgba(255,255,255,.5); }
.dosen-pagination { display:flex; gap:4px; flex-wrap:wrap; }
.dosen-pagination button {
  min-width:36px; height:36px; padding:0 10px;
  background:#0f1f3d; border:1px solid rgba(255,255,255,.15);
  border-radius:8px; color:rgba(255,255,255,.7);
  font-size:13px; font-weight:600; cursor:pointer;
  font-family:'DM Sans',sans-serif;
  transition:all .2s;
}
.dosen-pagination button:hover { border-color:#0ea5e9; color:#0ea5e9; }
.dosen-pagination button.active {
  background:#2563eb; border-color:#2563eb; color:#fff;
}
.dosen-pagination button:disabled { opacity:.35; cursor:default; }

/* Modal detail dosen */
.detail-dosen-header {
  display:flex; align-items:center; gap:16px; margin-bottom:22px;
}
.detail-dosen-avatar {
  width:64px; height:64px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:24px; font-weight:800; color:#fff; flex-shrink:0;
  background:linear-gradient(135deg,#1e3a8a,#2563eb);
  border:3px solid rgba(255,255,255,.2);
}
.detail-dosen-nama { font-family:'Playfair Display',serif; font-size:19px; font-weight:700; color:#fff; margin-bottom:4px; }
.detail-dosen-sub  { font-size:13px; color:rgba(255,255,255,.5); }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:18px; }
.detail-item {
  background:#0a1628; border:1px solid rgba(255,255,255,.08);
  border-radius:10px; padding:12px 14px;
}
.detail-item.full { grid-column:1/-1; }
.detail-label { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.8px; color:rgba(255,255,255,.35); margin-bottom:5px; }
.detail-value { font-size:14px; font-weight:500; color:#fff; }

/* ══════════════════════════════════════════
   MODAL DETAIL DOSEN — DESAIN BARU
══════════════════════════════════════════ */

/* Override modal width untuk detail */
/* Modal detail dosen — scrollable */
#modal-detail-dosen .modal {
  max-width: 560px;
  padding: 0;
  overflow: hidden;
  max-height: 88vh;
  display: flex;
  flex-direction: column;
}
#modal-detail-dosen-body {
  overflow-y: scroll;
  flex: 1;
  /* Scrollbar selalu terlihat seperti screenshot */
  scrollbar-width: auto;
  scrollbar-color: #6b7280 #1e293b;
}
/* Webkit scrollbar — lebar & selalu tampil */
#modal-detail-dosen-body::-webkit-scrollbar {
  width: 14px;
  background: #1e293b;
}
#modal-detail-dosen-body::-webkit-scrollbar-track {
  background: #1e293b;
  border-radius: 0;
}
#modal-detail-dosen-body::-webkit-scrollbar-thumb {
  background: #6b7280;
  border-radius: 7px;
  border: 2px solid #1e293b;
  min-height: 40px;
}
#modal-detail-dosen-body::-webkit-scrollbar-thumb:hover {
  background: #9ca3af;
}
#modal-detail-dosen-body::-webkit-scrollbar-button {
  display: block;
  height: 14px;
  background: #374151;
}
#modal-detail-dosen-body::-webkit-scrollbar-button:start:decrement {
  background: #374151
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath d='M4 2l4 4H0z' fill='%23fff'/%3E%3C/svg%3E")
    center no-repeat;
}
#modal-detail-dosen-body::-webkit-scrollbar-button:end:increment {
  background: #374151
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath d='M4 6L0 2h8z' fill='%23fff'/%3E%3C/svg%3E")
    center no-repeat;
}

/* Header */
.det-header {
  display: flex; align-items: flex-start; gap: 16px;
  padding: 24px 24px 18px;
  background: linear-gradient(135deg, #0f1f3d, #1a2f55);
  border-bottom: 1px solid rgba(14,165,233,.3);
}
.det-avatar {
  width: 60px; height: 60px; border-radius: 50%; flex-shrink: 0;
  background: linear-gradient(135deg, #075985, #0284c7);
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; font-weight: 800; color: #fff;
  border: 3px solid rgba(255,255,255,.15);
  box-shadow: 0 4px 14px rgba(0,0,0,.3);
}
.det-nama {
  font-family: 'Playfair Display', serif;
  font-size: 18px; font-weight: 700; color: #fff;
  line-height: 1.3; margin-bottom: 5px;
}
.det-contact {
  font-size: 12px; color: rgba(255,255,255,.55);
  margin-bottom: 10px; display: flex; align-items: center; flex-wrap: wrap; gap: 4px;
}
.det-badges { display: flex; flex-wrap: wrap; gap: 6px; }

/* Badge serbaguna */
.det-badge {
  display: inline-block; padding: 3px 10px; border-radius: 20px;
  font-size: 11px; font-weight: 700; letter-spacing: .3px;
}
.badge-det-green  { background: #16a34a; color: #fff; }
.badge-det-red    { background: #dc2626; color: #fff; }
.badge-det-blue   { background: #2563eb; color: #fff; }
.badge-det-cyan   { background: #0891b2; color: #fff; }
.badge-det-orange { background: #0284c7; color: #fff; }
.badge-det-teal   { background: #0891b2; color: #fff; }
.badge-det-purple { background: #7c3aed; color: #fff; }
.badge-det-gray   { background: #475569; color: #fff; }

/* Section title */
.det-section-title {
  font-size: 11px; font-weight: 800; letter-spacing: 1.5px;
  color: #2563eb; padding: 14px 24px 0;
  display: flex; align-items: center; gap: 10px;
}
.det-section-title::after {
  content: ''; flex: 1; height: 1.5px;
  background: linear-gradient(90deg, #2563eb, transparent);
}

/* Grid data */
.det-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 8px; padding: 10px 24px 16px;
}
.det-item {
  background: #0a1628;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px; padding: 11px 14px;
  transition: border-color .2s;
}
.det-item:hover { border-color: rgba(14,165,233,.25); }
.det-item.full { grid-column: 1 / -1; }
.det-label {
  font-size: 9px; font-weight: 800; letter-spacing: 1px;
  text-transform: uppercase; color: rgba(255,255,255,.3);
  margin-bottom: 5px;
}
.det-value {
  font-size: 14px; font-weight: 500; color: #fff; line-height: 1.4;
}

/* Form section label */
.form-section-label {
  font-size: 11px; font-weight: 800; letter-spacing: 1.2px;
  text-transform: uppercase; color: #0ea5e9;
  margin: 16px 0 10px; padding-bottom: 6px;
  border-bottom: 1px solid rgba(14,165,233,.25);
  display: flex; align-items: center; gap: 8px;
}

/* ── Masa kerja highlight ───────────────────────────────────── */
.det-value-highlight { color: #0ea5e9; font-weight: 700; }

/* ── Modal detail scroll ────────────────────────────────────── */
/* Modal detail tendik & penunjang — scrollable */
#modal-detail-tendik .modal,
#modal-detail-penunjang .modal {
  max-width: 520px;
  padding: 0;
  overflow: hidden;
  max-height: 88vh;
  display: flex;
  flex-direction: column;
}
#modal-detail-tendik-body,
#modal-detail-penunjang-body {
  overflow-y: scroll;
  flex: 1;
  scrollbar-width: auto;
  scrollbar-color: #6b7280 #1e293b;
}
#modal-detail-tendik-body::-webkit-scrollbar,
#modal-detail-penunjang-body::-webkit-scrollbar {
  width: 14px;
  background: #1e293b;
}
#modal-detail-tendik-body::-webkit-scrollbar-track,
#modal-detail-penunjang-body::-webkit-scrollbar-track {
  background: #1e293b;
}
#modal-detail-tendik-body::-webkit-scrollbar-thumb,
#modal-detail-penunjang-body::-webkit-scrollbar-thumb {
  background: #6b7280;
  border-radius: 7px;
  border: 2px solid #1e293b;
  min-height: 40px;
}
#modal-detail-tendik-body::-webkit-scrollbar-thumb:hover,
#modal-detail-penunjang-body::-webkit-scrollbar-thumb:hover {
  background: #9ca3af;
}
#modal-detail-tendik-body::-webkit-scrollbar-button,
#modal-detail-penunjang-body::-webkit-scrollbar-button {
  display: block;
  height: 14px;
  background: #374151;
}
#modal-detail-tendik .modal-close,
#modal-detail-penunjang .modal-close {
  position: absolute; top: 14px; right: 28px; z-index: 10;
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.25);
}

/* Tombol close — geser kiri agar tidak tertutup scrollbar */
#modal-detail-dosen .modal-close {
  position: absolute;
  top: 14px;
  right: 28px; /* geser dari scrollbar 14px */
  z-index: 20;
  background: rgba(30,30,60,.8);
  border: 1px solid rgba(255,255,255,.25);
}
/* Header dosen relative untuk close button */
#modal-detail-dosen .modal { position: relative; }

/* ══════════════════════════════════════════
   LIST PAGE LAYOUT — Card dengan Header
══════════════════════════════════════════ */

.list-page-wrap {
  padding: 28px 32px;
  min-height: calc(100vh - var(--topbar-h));
  background: #eef2ff;
}

/* Card utama */
.list-card {
  background: #0f1f3d;
  border: 2px solid #0ea5e9;
  border-radius: 12px;
  overflow: hidden;
}

/* Header card — "≡ List Data Dosen" */
.list-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 22px;
  background: #0a1628;
  border-bottom: 2px solid #0ea5e9;
}
.list-card-icon {
  font-size: 18px;
  color: #0ea5e9;
  font-weight: 700;
}
.list-card-title {
  font-size: 18px;
  font-weight: 700;
  color: #0ea5e9;
  font-family: 'DM Sans', sans-serif;
}

/* Info bar di dalam card */
.list-infobar {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: rgba(37,99,235,.1);
  border: 1px solid rgba(37,99,235,.25);
  border-radius: 10px;
  padding: 14px 18px;
  margin: 18px 18px 0;
}
.list-infobar-icon {
  width: 26px; height: 26px;
  border-radius: 6px;
  background: #2563eb;
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 900;
  flex-shrink: 0; margin-top: 1px;
}
.list-infobar-title {
  font-size: 14px; font-weight: 700;
  color: #0ea5e9; margin-bottom: 3px;
}
.list-infobar-desc  { font-size: 13px; color: rgba(255,255,255,.75); }
.list-infobar-date  { color: #0ea5e9; font-weight: 600; }

/* Kontrol per-page + search */
.list-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 16px 18px 10px;
}
.list-perpage {
  display: flex; align-items: center; gap: 10px;
  font-size: 14px; color: rgba(255,255,255,.7);
}
.list-perpage select {
  padding: 5px 28px 5px 10px;
  background: #1e3a8a;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 7px;
  color: #fff;
  font-size: 14px;
  font-family: 'DM Sans', sans-serif;
  cursor: pointer; outline: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%230ea5e9' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 9px center;
}
.list-search-wrap {
  display: flex; align-items: center; gap: 10px;
  font-size: 14px; color: rgba(255,255,255,.7);
}
.list-search-wrap input {
  padding: 7px 14px;
  background: #fff;
  border: 1.5px solid #d1d5db;
  border-radius: 7px;
  color: #1a202c;
  font-size: 14px;
  font-family: 'DM Sans', sans-serif;
  outline: none; width: 200px;
  transition: border-color .2s, box-shadow .2s;
}
.list-search-wrap input:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37,99,235,.15);
}

/* Pagination di dalam card */
.list-pagination-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 16px 18px 18px;
  border-top: 1px solid rgba(255,255,255,.06);
}

/* Override table di dalam card — hapus border wrapper */
.list-card .dosen-table td,
.list-card .dosen-table th { }
.list-card .dosen-table thead { background: #060e1f; }

@media (max-width: 768px) {
  .list-page-wrap { padding: 16px; }
  .list-controls { flex-direction: column; align-items: flex-start; }
  .list-search-wrap input { width: 100%; }
}

/* ══════════════════════════════════════════
   BERANDA BARU
══════════════════════════════════════════ */

.home-wrap {
  background: #f0f4f8;
  min-height: calc(100vh - var(--topbar-h));
  padding: 20px 20px 32px;
}

/* ── Banner Informasi ────────────────────── */
.home-banner {
  background: #0a1628;
  border: none;
  border-left: 4px solid #0ea5e9;
  border-radius: 0 14px 14px 0;
  padding: 22px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.home-banner-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.home-banner-badge-icon {
  width: 22px; height: 22px;
  background: #2563eb;
  border-radius: 5px;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 900; color: #fff;
}
.home-banner-badge span:last-child {
  font-size: 13px; font-weight: 800;
  color: #0ea5e9; letter-spacing: 1px;
}
.home-banner-greeting {
  font-family: 'Playfair Display', serif;
  font-size: 28px; font-weight: 700;
  color: #0ea5e9; margin-bottom: 8px;
}
.home-banner-sub {
  font-size: 14px; color: rgba(255,255,255,.7); line-height: 1.5;
}
.home-motivasi-wrap {
  display: flex; align-items: flex-start; gap: 6px;
  margin-top: 10px;
  padding: 8px 12px;
  background: rgba(14,165,233,.08);
  border-left: 3px solid #0ea5e9;
  border-radius: 0 6px 6px 0;
  max-width: 560px;
}
.home-motivasi-icon {
  font-size: 14px; flex-shrink: 0; margin-top: 1px;
}
.home-motivasi-text {
  font-size: 13px; color: rgba(255,255,255,.85);
  font-style: italic; line-height: 1.55;
  min-height: 20px;
}
.home-motivasi-text::after {
  content: '|';
  animation: blink-cursor .7s step-end infinite;
  color: #0ea5e9;
  font-style: normal;
  margin-left: 1px;
}
.home-motivasi-text.done::after { display: none; }
@keyframes blink-cursor {
  0%, 100% { opacity: 1; } 50% { opacity: 0; }
}
.home-banner-icon {
  font-size: 52px; flex-shrink: 0;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,.3));
  animation: float-building 3s ease-in-out infinite;
  display: inline-block;
  transform-origin: center bottom;
}
.home-banner-icon img {
  width: 96px;
  height: 96px;
  object-fit: contain;
  display: block;
  border-radius: 12px;
  background: rgba(255,255,255,.06);
  padding: 4px;
  box-shadow: 0 4px 20px rgba(0,0,0,.4);
  /* Tidak ada filter agar warna asli logo tetap terjaga */
}
#home-banner-logo-emoji {
  font-size: 64px;
  display: block;
  line-height: 1;
}
@keyframes float-building {
  0%   { transform: translateY(0px) scale(1); }
  30%  { transform: translateY(-8px) scale(1.04); }
  60%  { transform: translateY(-4px) scale(1.02); }
  100% { transform: translateY(0px) scale(1); }
}

/* ── Rekapitulasi ───────────────────────── */
.home-rekap-wrap {
  padding: 20px 20px 0;
}
.home-rekap-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
  padding: 12px 18px;
  background: #0f1f3d;
  border: 1px solid #0ea5e9;
  border-radius: 10px;
}
.home-rekap-icon { font-size: 18px; }
.home-rekap-title {
  font-size: 13px; font-weight: 800;
  letter-spacing: 1.5px; color: #0ea5e9;
  text-transform: uppercase; white-space: nowrap;
}
.home-rekap-line {
  flex: 1; height: 1.5px;
  background: linear-gradient(90deg, rgba(14,165,233,.4), transparent);
}

/* Stat cards grid */
.home-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.home-stat-card {
  background: #0f1f3d;
  border: 1px solid rgba(14,165,233,.25);
  border-top: 3px solid #0ea5e9;
  border-radius: 12px;
  padding: 20px 22px;
  transition: transform .2s, box-shadow .2s;
}
.home-stat-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(14,165,233,.15);
  border-color: #0ea5e9;
}
.home-stat-label {
  font-size: 13px; color: rgba(255,255,255,.6);
  margin-bottom: 10px; font-weight: 500;
}
.home-stat-num {
  font-family: 'Playfair Display', serif;
  font-size: 48px; font-weight: 700;
  color: #0ea5e9; line-height: 1;
  margin-bottom: 8px;
}
.home-stat-sub {
  font-size: 12px; color: rgba(255,255,255,.4);
}

/* ── Animasi reveal (fade-in + slide-up) saat scroll ── */
.reveal-pre {
  opacity: 0;
  transform: translateY(24px);
}
.reveal-in {
  animation: revealUp .6s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes revealUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .reveal-pre { opacity: 1; transform: none; }
  .reveal-in  { animation: none; }
}

/* ── Charts ─────────────────────────────── */
.home-charts-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding: 16px 20px 0;
}
.home-chart-card {
  background: #0f1f3d;
  border: 1px solid rgba(255,255,255,.08);
  border-top: 3px solid #0ea5e9;
  border-radius: 12px;
  padding: 22px 24px 18px;
}
.home-chart-meta {
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1px;
  color: rgba(255,255,255,.35); margin-bottom: 4px;
}
.home-chart-title {
  font-size: 16px; font-weight: 700;
  color: #0ea5e9; margin-bottom: 18px;
}
.home-chart-body {
  display: flex;
  justify-content: center;
  margin-bottom: 16px;
}
.home-chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  justify-content: center;
}
.legend-item {
  display: flex; align-items: center; gap: 6px;
  font-size: 12px; color: rgba(255,255,255,.7);
}
.legend-dot {
  width: 10px; height: 10px;
  border-radius: 50%; flex-shrink: 0;
}

/* ── Footer info ────────────────────────── */
.home-footer-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding: 16px 0 0;
}
.home-footer-card {
  background: #0f1f3d;
  border: 1px solid rgba(255,255,255,.08);
  border-right: 3px solid #0ea5e9;
  border-radius: 12px;
  padding: 16px 20px;
  display: flex; align-items: flex-start; gap: 14px;
}
.home-footer-icon {
  font-size: 22px; flex-shrink: 0; margin-top: 2px;
}
.home-footer-label {
  font-size: 13px; font-weight: 700;
  color: #fff; margin-bottom: 4px;
}
.home-footer-value {
  font-size: 13px; color: rgba(255,255,255,.6); line-height: 1.5;
}

/* Responsive */
@media (max-width: 900px) {
  .home-stat-grid    { grid-template-columns: repeat(2, 1fr); }
  .home-charts-grid  { grid-template-columns: 1fr; }
  .home-footer-grid  { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .home-stat-grid    { grid-template-columns: 1fr 1fr; }
  .home-rekap-wrap, .home-charts-grid,
  .home-footer-grid  { padding-left: 16px; padding-right: 16px; }
  .home-banner       { padding: 18px 16px; }
}

/* ══════════════════════════════════════════
   HALAMAN INFORMASI — DESAIN BARU
══════════════════════════════════════════ */

.info-page-wrap {
  background: #f0f4f8;
  min-height: calc(100vh - var(--topbar-h));
  padding-bottom: 32px;
}

/* Banner */
.info-page-wrap {
  background: #f0f4f8;
  min-height: calc(100vh - var(--topbar-h));
  padding: 20px 20px 32px;
}

.info-banner {
  background: #0a1628;
  border: none;
  border-left: 4px solid #0ea5e9;
  border-radius: 0 14px 14px 0;
  padding: 22px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.info-banner-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.info-banner-badge-icon {
  width: 22px; height: 22px;
  background: #2563eb;
  border-radius: 5px;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 900; color: #fff;
}
.info-banner-badge span:last-child {
  font-size: 13px; font-weight: 800;
  color: #0ea5e9; letter-spacing: 1px;
}
.info-banner-title {
  font-family: 'Playfair Display', serif;
  font-size: 26px; font-weight: 700;
  color: #0ea5e9; margin-bottom: 6px;
}
.info-banner-sub  { font-size: 13px; color: rgba(255,255,255,.65); }
.info-banner-icon {
  font-size: 48px; flex-shrink: 0;
  animation: float-building 3s ease-in-out infinite;
  display: inline-block;
}

/* Struktur banner — same style as home-banner */
.struktur-wrap {
  background: #f0f4f8;
  min-height: calc(100vh - var(--topbar-h));
  padding: 20px 20px 32px;
  padding-bottom: 40px;
}
.struktur-banner {
  background: #0a1628;
  border: none;
  border-left: 4px solid #0ea5e9;
  border-radius: 0 14px 14px 0;
  padding: 22px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.struktur-banner-left { flex: 1; }
.struktur-banner-badge {
  display: inline-flex; align-items: center;
  gap: 8px; margin-bottom: 10px;
}
.struktur-banner-badge-icon {
  width: 22px; height: 22px;
  background: #2563eb; border-radius: 5px;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 900; color: #fff;
}
.struktur-banner-badge span:last-child {
  font-size: 13px; font-weight: 800;
  color: #0ea5e9; letter-spacing: 1px;
}
.struktur-banner-title {
  font-family: 'Playfair Display', serif;
  font-size: 26px; font-weight: 700;
  color: #0ea5e9; margin-bottom: 6px;
}
.struktur-banner-sub { font-size: 13px; color: rgba(255,255,255,.65); }
.struktur-banner-icon {
  font-size: 48px; flex-shrink: 0;
  animation: float-building 3s ease-in-out infinite;
  display: inline-block;
}

/* Grid wrap */
.info-search-wrap {
  padding: 16px 32px 0;
  background: #f0f4f8;
}
.info-search-box {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #0f1e3d;
  border: 1.5px solid #0ea5e9;
  border-radius: 10px;
  padding: 0 14px;
  max-width: 480px;
  transition: border-color .2s;
}
.info-search-box:focus-within {
  border-color: #0ea5e9;
}
.info-search-icon { font-size: 15px; opacity: .6; flex-shrink: 0; }
.info-search-box input {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  font-size: 13px;
  color: #fff;
  padding: 10px 0;
}
.info-search-box input::placeholder { color: rgba(255,255,255,.35); }
.info-search-clear {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 13px;
  color: rgba(255,255,255,.4);
  padding: 4px;
  border-radius: 50%;
  line-height: 1;
  flex-shrink: 0;
}
.info-search-clear:hover { background: rgba(255,255,255,.1); color: #fff; }

.info-grid-wrap {
  padding: 24px 32px;
  background: #f0f4f8;
}

/* Grid 2 kolom */
.info-card-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 0;
}
.info-loading {
  grid-column: 1 / -1;
  text-align: center;
  padding: 32px;
  color: #6b7280;
  font-size: 14px;
}

/* Setiap card informasi */
.info-item-card {
  background: #0f1f3d;
  border: 1px solid rgba(255,255,255,.07);
  border-left: 3px solid #0ea5e9;
  border-radius: 10px;
  padding: 16px 18px;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  transition: border-color .2s, box-shadow .2s, transform .15s;
  position: relative;
}
.info-item-card:hover {
  border-color: rgba(14,165,233,.4);
  box-shadow: 0 4px 16px rgba(14,165,233,.12);
  transform: translateY(-1px);
}
.info-item-icon {
  font-size: 22px;
  flex-shrink: 0;
  margin-top: 2px;
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
}
.info-item-body { flex: 1; min-width: 0; }
.info-item-title {
  font-size: 14px; font-weight: 700;
  color: #fff; margin-bottom: 5px;
  line-height: 1.3;
}
.info-item-desc {
  font-size: 12px; color: rgba(255,255,255,.55);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.info-item-arrow {
  font-size: 20px; color: rgba(255,255,255,.25);
  flex-shrink: 0; align-self: center;
  margin-left: 6px;
}
.info-item-card:hover .info-item-arrow { color: #0ea5e9; }

/* Pagination bar */
.info-pagination-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
  padding: 14px 18px;
  background: #0f1f3d;
  border: 1px solid #0ea5e9;
  border-radius: 10px;
}
.info-count-text {
  font-size: 13px; color: rgba(255,255,255,.55);
}
.info-count-text strong { color: #0ea5e9; }
.info-pag-btns { display: flex; gap: 4px; }
.info-pag-btn {
  min-width: 34px; height: 34px; padding: 0 8px;
  background: #0a1628;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 7px;
  color: rgba(255,255,255,.65);
  font-size: 13px; font-weight: 600;
  cursor: pointer; font-family: 'DM Sans', sans-serif;
  transition: all .2s;
}
.info-pag-btn:hover:not(:disabled) { border-color: #0ea5e9; color: #0ea5e9; }
.info-pag-btn.active {
  background: #2563eb; border-color: #2563eb; color: #fff;
}
.info-pag-btn:disabled { opacity: .35; cursor: default; }

@media (max-width: 768px) {
  .info-card-grid  { grid-template-columns: 1fr; }
  .info-grid-wrap  { padding: 16px; }
  .info-banner     { padding: 18px 16px; flex-direction: column; align-items: flex-start; }
  .info-banner-icon{ display: none; }
}

/* ══════════════════════════════════════════
   EXPORT & IMPORT
══════════════════════════════════════════ */

.btn-export {
  padding: 8px 14px;
  background: linear-gradient(135deg,#16a34a,#15803d);
  border: none; border-radius: 8px; color: #fff;
  font-size: 13px; font-weight: 600; cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  display: flex; align-items: center; gap: 6px;
  transition: opacity .2s, transform .1s;
  white-space: nowrap;
}
.btn-export:hover { opacity: .9; transform: translateY(-1px); }

.btn-import {
  padding: 8px 14px;
  background: linear-gradient(135deg,#2563eb,#1d4ed8);
  border: none; border-radius: 8px; color: #fff;
  font-size: 13px; font-weight: 600; cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  display: flex; align-items: center; gap: 6px;
  transition: opacity .2s, transform .1s;
  white-space: nowrap;
}
.btn-import:hover { opacity: .9; transform: translateY(-1px); }

/* Info box di modal import */
.import-info {
  display: flex; gap: 12px;
  background: rgba(37,99,235,.1);
  border: 1px solid rgba(37,99,235,.25);
  border-radius: 10px; padding: 14px 16px;
  margin-bottom: 4px;
}
.import-info-icon { font-size: 20px; flex-shrink: 0; margin-top: 1px; }

/* File input custom */
.import-file-wrap { position: relative; }
.import-file-wrap input[type=file] {
  position: absolute; opacity: 0; width: 0; height: 0;
}
.import-file-label {
  display: flex; align-items: center; gap: 10px;
  padding: 11px 16px;
  background: rgba(255,255,255,.07);
  border: 1.5px dashed rgba(255,255,255,.25);
  border-radius: 10px; cursor: pointer;
  color: rgba(255,255,255,.7); font-size: 14px;
  transition: border-color .2s, background .2s;
}
.import-file-label:hover {
  border-color: #0ea5e9;
  background: rgba(14,165,233,.06);
  color: #fff;
}
.import-file-icon { font-size: 20px; flex-shrink: 0; }

/* Hasil import */
.import-result-ok {
  background: rgba(22,163,74,.15);
  border: 1px solid rgba(22,163,74,.4);
  border-radius: 10px; padding: 14px 16px;
  color: #86efac; font-size: 14px;
}
.import-result-err {
  background: rgba(220,38,38,.15);
  border: 1px solid rgba(220,38,38,.4);
  border-radius: 10px; padding: 14px 16px;
  color: #fca5a5; font-size: 14px;
}

/* ══════════════════════════════════════════
   LAYOUT — Sidebar full height, topbar di area konten
══════════════════════════════════════════ */

/* Sidebar tidak perlu padding-top karena topbar tidak overlap */
.sidebar {
  padding-top: 0;
}

/* Admin user info di dalam sidebar */
.admin-user-info {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px; margin: 8px 10px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px;
}

/* Nav section label style baru */
.nav-section {
  padding: 14px 14px 4px;
  font-size: 10px; font-weight: 800;
  letter-spacing: 2px; text-transform: uppercase;
  color: rgba(255,255,255,.28);
}

/* Responsif mobile */
@media (max-width: 768px) {
  .pub-topbar {
    left: 0;
  }
}

/* ── Site Footer Copyright ─────────────────────────────────── */
.site-footer {
  background: #07111f;
  border-top: 1px solid rgba(255,255,255,.07);
  padding: 14px 24px;
  text-align: center;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100;
}
.site-footer-text {
  font-size: 12.5px;
  color: rgba(255,255,255,.38);
  letter-spacing: .3px;
}
.site-footer-link {
  color: #0ea5e9;
  font-weight: 700;
  text-decoration: none;
  transition: color .2s;
}
.site-footer-link:hover {
  color: #38bdf8;
  text-decoration: underline;
}

/* ═══════════════════════════════════════════════════════════
   ADMIN DASHBOARD
═══════════════════════════════════════════════════════════ */

/* Welcome bar */
.db-welcome-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  background: #0d1b35;
  border: 1px solid rgba(14,165,233,.3);
  border-left: 4px solid #0ea5e9;
  border-radius: 14px;
  padding: 16px 22px;
  margin-bottom: 28px;
}
.db-welcome-text {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1rem;
  color: #e2e8f0;
}
.db-wave { font-size: 1.5rem; }
.db-role-badge {
  display: inline-block;
  background: rgba(99,102,241,.4);
  color: #c7d2fe;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 10px;
  border-radius: 20px;
  letter-spacing: .5px;
  text-transform: uppercase;
}
.db-time-label {
  font-size: 13px;
  color: rgba(255,255,255,.92);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* Section title */
.db-section-title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .8px;
  text-transform: uppercase;
  color: #0ea5e9;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 7px;
}

/* ── Global Stat Cards ── */
.db-stats-global {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(155px, 1fr));
  gap: 12px;
  margin-bottom: 6px;
}
.db-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 13px;
  background: #0f2038;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px;
  padding: 16px 15px;
  cursor: pointer;
  overflow: hidden;
  transition: transform .18s, box-shadow .18s, border-color .18s;
}
.db-card:hover {
  transform: translateY(-3px);
  border-color: rgba(255,255,255,.2);
  box-shadow: 0 8px 24px rgba(0,0,0,.4);
}
.db-card-icon { font-size: 1.9rem; flex-shrink: 0; line-height: 1; }
.db-card-num  { font-size: 2rem; font-weight: 800; line-height: 1; }
.db-card-lbl  { font-size: 11.5px; color: rgba(255,255,255,.5); margin-top: 4px; }
.db-card-border {
  position: absolute; top: 0; left: 0; right: 0;
  height: 3px; border-radius: 12px 12px 0 0;
}
/* Border colors */
.db-card--blue   .db-card-border { background: #3b82f6; }
.db-card--green  .db-card-border { background: #22c55e; }
.db-card--cyan   .db-card-border { background: #06b6d4; }
.db-card--teal   .db-card-border { background: #0891b2; }
.db-card--yellow .db-card-border { background: #0ea5e9; }
.db-card--purple .db-card-border { background: #a855f7; }
/* Number colors — bright & readable on dark navy */
.db-card--blue   .db-card-num { color: #60a5fa; }
.db-card--green  .db-card-num { color: #4ade80; }
.db-card--cyan   .db-card-num { color: #22d3ee; }
.db-card--teal   .db-card-num { color: #67e8f9; }
.db-card--yellow .db-card-num { color: #38bdf8; }
.db-card--purple .db-card-num { color: #c084fc; }

/* ── Module Cards ── */
.db-modules {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 14px;
}
.db-module-card {
  background: #0f2038;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  transition: transform .18s, box-shadow .18s, border-color .18s;
}
.db-module-card:hover {
  transform: translateY(-3px);
  border-color: rgba(255,255,255,.2);
  box-shadow: 0 8px 24px rgba(0,0,0,.4);
}
.db-module-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 16px;
  font-weight: 700;
  font-size: 14px;
  color: #fff;
}
.db-mod--blue   { background: linear-gradient(90deg,#1e40af,#2563eb); }
.db-mod--yellow { background: linear-gradient(90deg,#075985,#0284c7); }
.db-mod--purple { background: linear-gradient(90deg,#6b21a8,#9333ea); }
.db-mod--teal   { background: linear-gradient(90deg,#134e4a,#0d9488); }
.db-mod--orange { background: linear-gradient(90deg,#9a3412,#0369a1); }
.db-mod--pink   { background: linear-gradient(90deg,#9d174d,#db2777); }
.db-module-total {
  background: rgba(255,255,255,.25);
  border-radius: 20px;
  padding: 2px 12px;
  font-size: 15px;
  min-width: 34px;
  text-align: center;
}
.db-module-rows { padding: 8px 0 4px; }
.db-module-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 16px;
  font-size: 13px;
  color: rgba(255,255,255,.65);
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.db-module-row:last-child { border-bottom: none; }
/* Badge */
.db-badge {
  display: inline-block;
  font-size: 13px;
  font-weight: 800;
  padding: 2px 10px;
  border-radius: 20px;
  min-width: 32px;
  text-align: center;
}
.db-badge--green  { background: rgba(34,197,94,.2);  color: #4ade80; border: 1px solid rgba(34,197,94,.3); }
.db-badge--red    { background: rgba(239,68,68,.2);  color: #f87171; border: 1px solid rgba(239,68,68,.3); }
.db-badge--cyan   { background: rgba(6,182,212,.2);  color: #22d3ee; border: 1px solid rgba(6,182,212,.3); }
.db-badge--teal   { background: rgba(8,145,178,.2);  color: #67e8f9; border: 1px solid rgba(8,145,178,.3); }
.db-badge--yellow { background: rgba(14,165,233,.2); color: #38bdf8; border: 1px solid rgba(14,165,233,.3); }
.db-badge--blue   { background: rgba(59,130,246,.2); color: #60a5fa; border: 1px solid rgba(59,130,246,.3); }

@media (max-width:640px) {
  .db-stats-global { grid-template-columns: repeat(2, 1fr); }
  .db-modules      { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════
   SETTINGS TABS
═══════════════════════════════════════════════════════════ */
.set-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 20px;
  padding: 4px 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
  padding-bottom: 14px;
}
.set-tab {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  color: var(--text-muted, #94a3b8);
  border-radius: 8px;
  padding: 8px 16px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all .18s;
}
.set-tab:hover { background: rgba(255,255,255,.1); color: #e2e8f0; }
.set-tab.active {
  background: var(--primary, #4f46e5);
  border-color: var(--primary, #4f46e5);
  color: #fff;
  box-shadow: 0 2px 12px rgba(79,70,229,.35);
}
.set-panel { display: none; }
.set-panel.active { display: block; }

.set-section-title {
  color: #0ea5e9;
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.set-divider {
  border: none;
  border-top: 1px solid rgba(255,255,255,.08);
  margin: 24px 0;
}
.set-hint {
  color: rgba(255,255,255,.35);
  font-size: 11px;
  margin-top: 5px;
  display: block;
}
.set-opt {
  opacity: .5;
  font-weight: 400;
}
.set-desc {
  color: var(--text-muted, #94a3b8);
  font-size: 13px;
  margin-bottom: 20px;
  margin-top: -8px;
}
.set-save-btn {
  width: auto !important;
  padding: 10px 28px !important;
  margin-top: 10px;
}
.set-checkbox-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 10px;
  margin-bottom: 20px;
}
.set-check-item {
  display: flex;
  align-items: center;
  gap: 9px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 8px;
  padding: 10px 14px;
  cursor: pointer;
  transition: background .15s;
  font-size: 13px;
  color: #e2e8f0;
  user-select: none;
  pointer-events: auto;
  position: relative;
  z-index: 1;
}
.set-check-item:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.18); }
.set-check-item input[type="checkbox"] {
  width: 16px; height: 16px;
  accent-color: #0ea5e9;
  cursor: pointer;
  flex-shrink: 0;
  pointer-events: auto;
}
.set-check-item span {
  color: #e2e8f0;
  font-size: 13px;
}

/* ── Usia Pensiun ────────────────────────────────────────────── */
.pensiun-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.pensiun-tab {
  padding: 9px 22px;
  border-radius: 8px;
  border: 1.5px solid rgba(79,70,229,.4);
  background: #fff;
  color: #1e293b;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s;
  box-shadow: 0 1px 4px rgba(0,0,0,.08);
}
.pensiun-tab:hover { background: #f1f5f9; border-color: #4f46e5; }
.pensiun-tab.active {
  background: var(--primary, #4f46e5);
  border-color: var(--primary, #4f46e5);
  color: #fff;
  box-shadow: 0 2px 8px rgba(79,70,229,.35);
}

.pensiun-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 12px;
  margin-bottom: 4px;
}
.pensiun-stat-card {
  border-radius: 12px;
  padding: 16px 14px;
  text-align: center;
  border: 1.5px solid rgba(0,0,0,.08);
  background: #fff;
  box-shadow: 0 1px 6px rgba(0,0,0,.07);
}
.pensiun-stat-card.psc--red    { background: #fff0f0; border-color: rgba(239,68,68,.4); }
.pensiun-stat-card.psc--orange { background: #f0f9ff; border-color: rgba(2,132,199,.4); }
.pensiun-stat-card.psc--yellow { background: #fefce8; border-color: rgba(14,165,233,.4); }
.pensiun-stat-card.psc--blue   { background: #eff6ff; border-color: rgba(59,130,246,.4); }
.pensiun-stat-card.psc--green  { background: #f0fdf4; border-color: rgba(16,185,129,.4); }
.psc-num {
  font-size: 28px;
  font-weight: 800;
  line-height: 1;
  margin-bottom: 4px;
}
.psc-lbl { font-size: 11px; color: #64748b; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; }
.psc--red    .psc-num { color: #dc2626; font-weight:800; }
.psc--orange .psc-num { color: #0369a1; font-weight:800; }
.psc--yellow .psc-num { color: #0284c7; font-weight:800; }
.psc--blue   .psc-num { color: #2563eb; font-weight:800; }
.psc--green  .psc-num { color: #059669; font-weight:800; }

/* Badge urgensi di tabel */
.badge-pensiun {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
  letter-spacing: .3px;
}
.badge-pensiun.sudah  { background: #dc2626; color: #fff; }
.badge-pensiun.kritis { background: #0369a1; color: #fff; }
.badge-pensiun.segera { background: #0284c7; color: #fff; }
.badge-pensiun.akan   { background: #2563eb; color: #fff; }
.badge-pensiun.normal { background: #16a34a; color: #fff; }

.form-select-sm {
  background: var(--card-bg, #1e293b);
  border: 1.5px solid rgba(255,255,255,.18);
  color: #e2e8f0;
  border-radius: 8px;
  padding: 7px 12px;
  font-size: 13px;
  cursor: pointer;
}
.form-select-sm option {
  background: #1e293b;
  color: #e2e8f0;
}
.form-input-sm {
  background: var(--card-bg, #1e293b);
  border: 1.5px solid rgba(255,255,255,.18);
  color: #e2e8f0;
  border-radius: 8px;
  padding: 7px 12px;
  font-size: 13px;
  min-width: 220px;
}
.form-input-sm::placeholder { color: rgba(226,232,240,.5); }
.form-input-sm:focus, .form-select-sm:focus {
  outline: none;
  border-color: var(--primary, #4f46e5);
}

/* ── Notif Pensiun di tabel admin ───────────────────────────── */
.pensiun-notif {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 700;
  vertical-align: middle;
  white-space: nowrap;
  cursor: default;
  max-width: fit-content;
  line-height: 1.6;
}
.pensiun-sudah {
  background: #dc2626;
  color: #fff;
  border: none;
  animation: pensiun-pulse 1.5s infinite;
}
.pensiun-kritis {
  background: #0369a1;
  color: #fff;
  border: none;
  animation: pensiun-pulse 2s infinite;
}
.pensiun-segera {
  background: #0284c7;
  color: #fff;
  border: none;
}
.pensiun-akan {
  background: #2563eb;
  color: #fff;
  border: none;
}
@keyframes pensiun-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .55; }
}

/* ============================================================
   RAPAT TABLE — sama persis dengan .dosen-table agar tidak krem
   ============================================================ */
.rapat-table { width:100%; border-collapse:collapse; }
.rapat-table thead { background:#0a1628; }
.rapat-table th {
  padding:11px 16px; font-size:11px; font-weight:600;
  color:#0ea5e9; text-transform:uppercase;
  letter-spacing:.5px; border-bottom:2px solid #0ea5e9;
  background:#0a1628; text-align:left;
}
.rapat-table td {
  padding:12px 16px; font-size:14px;
  border-bottom:1px solid rgba(255,255,255,.07);
  color:#e2e8f0;
  background:#0f1f3d;
  vertical-align:middle;
}
.rapat-table tr:nth-child(even) td { background:#0d1b35; }
.rapat-table tr:last-child td { border-bottom:none; }
.rapat-table tr:hover td { background:rgba(14,165,233,.07)!important; }
/* Paksa tidak krem saat tap/klik di mobile maupun desktop */
.rapat-table tr { -webkit-tap-highlight-color: transparent; }
.rapat-table tr:active td,
.rapat-table tr:focus td,
.rapat-table tr:nth-child(even):active td,
.rapat-table tr:nth-child(even):focus td {
  background:#0d1b35 !important;
}
.rapat-table tr:nth-child(odd):active td,
.rapat-table tr:nth-child(odd):focus td {
  background:#0f1f3d !important;
}

/* ============================================================
   ABSEN RAPAT & TTD QRCODE — wrapper override
   ============================================================ */
#page-admin-absen-rapat .table-wrapper,
#page-admin-ttd-qrcode  .table-wrapper {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.1);
  border-top: 3px solid #0ea5e9;
  border-radius: 14px;
  overflow: visible;
}

/* padding area form dalam panel TTD */
#page-admin-ttd-qrcode .ttd-form-body {
  padding: 8px 20px 20px;
}

#absen-search:focus,
#absen-bulan:focus {
  border-color: rgba(99,102,241,.5);
  background: rgba(99,102,241,.08);
}

/* badge status rapat */
#absen-tbody-rapat td { vertical-align: middle; }

/* ============================================================
   TTD QRCODE
   ============================================================ */
.ttd-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: start;
}

#ttd-qr-wrap {
  transition: background .2s;
}
#ttd-qr-wrap img {
  border-radius: 10px;
  box-shadow: 0 0 0 4px rgba(255,255,255,.08);
}

/* download buttons hover */
#ttd-btn-wrap button:hover {
  filter: brightness(1.15);
}

/* ============================================================
   RESPONSIVE — layar kecil
   ============================================================ */
@media (max-width: 768px) {
  .ttd-grid {
    grid-template-columns: 1fr;
  }
  #absen-search { min-width: unset; width: 100%; }
}

/* ════════════════════════════════════════════════════════════
   RESPONSIVE — TABLET & MOBILE (tambahan komprehensif)
   ════════════════════════════════════════════════════════════ */

/* ── Tablet (≤ 1024px) ───────────────────────────────────── */
@media (max-width: 1024px) {
  /* Sidebar lebih sempit di tablet */
  :root { --sidebar-w: 260px; }

  /* Content area padding dikurangi */
  .content-area { padding: 28px 32px; }
  .beranda-section { padding: 28px 32px 0; }

  /* Tabel scroll horizontal */
  .table-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { min-width: 600px; }

  /* Dashboard modules */
  .db-modules { grid-template-columns: repeat(2, 1fr); }

  /* Prodi cards */
  #prodi-cards-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* Home stat */
  .home-stat-grid { grid-template-columns: repeat(2, 1fr); }

  /* Beranda stats */
  .beranda-stats-row { grid-template-columns: repeat(2, 1fr); }

  /* Hak akses grid */
  #akses-checkbox-grid label {
    grid-template-columns: 1fr 48px 48px 48px 48px;
  }
}

/* ── Mobile Landscape / Tablet kecil (≤ 768px) ───────────── */
@media (max-width: 768px) {
  /* Content area */
  .content-area { padding: 20px 16px; }
  .beranda-section { padding: 20px 16px 0; }

  /* Topbar */
  .pub-topbar { padding: 0 12px; }
  .pub-topbar-right { gap: 6px; }

  /* Tabel scroll */
  .table-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { min-width: 580px; }
  th, td { padding: 10px 12px; font-size: 12px; }

  /* Search box full width */
  .search-box { width: 100%; }
  .search-box input { width: 100%; min-width: unset; }
  .table-header { flex-direction: column; align-items: flex-start; }
  .table-header > * { width: 100%; }

  /* Admin pagination */
  .admin-pag-wrap { flex-direction: column; align-items: center; }

  /* Modal full width */
  .modal-overlay .modal { margin: 8px; padding: 20px 16px; max-height: 95vh; }
  .grid-2 { grid-template-columns: 1fr !important; }

  /* Dashboard */
  .db-welcome-bar { flex-direction: column; align-items: flex-start; gap: 8px; }
  .db-stats-global { grid-template-columns: repeat(2, 1fr); }
  .db-modules { grid-template-columns: 1fr; }

  /* Prodi cards */
  #prodi-cards-grid { grid-template-columns: 1fr !important; }

  /* Home banner */
  .home-banner { flex-direction: column; align-items: flex-start; gap: 12px; padding: 18px 16px; }
  .home-banner-icon { display: none; }
  .home-banner-greeting { font-size: 22px; }

  /* Home stat grid 2 kolom */
  .home-stat-grid { grid-template-columns: repeat(2, 1fr); }
  .home-stat-num { font-size: 36px; }

  /* Charts stack */
  .home-charts-grid { grid-template-columns: 1fr; padding: 12px 16px 0; }

  /* Hak akses — sembunyikan kolom tambah/edit/hapus, scroll jika perlu */
  #akses-checkbox-grid { overflow-x: auto; }
  #akses-checkbox-grid label {
    grid-template-columns: 1fr 44px 44px 44px 44px;
    font-size: 12px;
    padding: 6px 8px;
  }

  /* Settings tabs wrap */
  .set-tabs { gap: 4px; }
  .set-tab { font-size: 12px; padding: 6px 12px; }

  /* Info doc grid 1 col */
  .info-doc-grid { grid-template-columns: 1fr; }

  /* Absen rapat toolbar */
  #absen-search { width: 100%; min-width: unset; }
  #absen-bulan { width: 100%; }

  /* TTD grid 1 col */
  .ttd-grid { grid-template-columns: 1fr; }

  /* Beranda stats 2 col */
  .beranda-stats-row { grid-template-columns: repeat(2, 1fr); }

  /* Survei section */
  .admin-section { padding: 12px; }

  /* Sidebar overlay backdrop */
  .sidebar-backdrop {
    display: block;
    position: fixed; inset: 0;
    background: rgba(0,0,0,.5);
    z-index: 240;
    opacity: 0; pointer-events: none;
    transition: opacity .28s;
  }
  .sidebar.open ~ .sidebar-backdrop,
  body.sidebar-open .sidebar-backdrop { opacity: 1; pointer-events: all; }
}

/* ── Mobile Portrait (≤ 480px) ───────────────────────────── */
@media (max-width: 480px) {
  /* Topbar icons */
  .pub-topbar-title { font-size: 13px; }

  /* Content */
  .content-area { padding: 16px 12px; }
  .beranda-section { padding: 16px 12px 0; }

  /* Stats 1 kolom di mobile portrait */
  .beranda-stats-row { grid-template-columns: 1fr 1fr; }
  .home-stat-grid { grid-template-columns: 1fr 1fr; }
  .db-stats-global { grid-template-columns: repeat(2, 1fr); }

  /* Home stat num lebih kecil */
  .home-stat-num { font-size: 30px; }
  .home-stat-card { padding: 14px 14px; }

  /* Tabel font lebih kecil */
  th, td { padding: 8px 10px; font-size: 11px; }

  /* Modal full screen hampir */
  .modal-overlay .modal { margin: 4px; padding: 16px 12px; border-radius: 12px; }

  /* Tombol aksi tabel lebih kecil */
  .btn-act { padding: 5px 8px; font-size: 11px; }

  /* Hak akses label font */
  #akses-checkbox-grid label { font-size: 11px; }

  /* Prodi cards 1 col */
  #prodi-cards-grid { grid-template-columns: 1fr !important; }

  /* Login card */
  .login-card, .card { padding: 24px 16px; }

  /* Banner publik */
  .home-banner-greeting { font-size: 18px; }
  .beranda-banner { padding: 24px 16px 20px; }
  .beranda-banner h1 { font-size: 22px; }

  /* Footer */
  .site-footer { padding: 10px 16px; }
  .site-footer-text { font-size: 11px; }

  /* Bstat */
  .bstat-main { padding: 14px 12px; }
  .bstat-num { font-size: 28px; }
}

/* ── Mobile kecil (≤ 360px) ─────────────────────────────── */
@media (max-width: 360px) {
  .content-area { padding: 12px 10px; }
  .home-stat-grid { grid-template-columns: 1fr; }
  .beranda-stats-row { grid-template-columns: 1fr; }
  .db-stats-global { grid-template-columns: 1fr 1fr; }
  .pub-topbar-title { display: none; }
  th, td { padding: 6px 8px; font-size: 10px; }
}

/* ── Icon kalender putih pada input date/datetime ─────────────── */
input[type="date"],
input[type="datetime-local"],
input[type="time"],
input[type="month"],
input[type="week"] {
  color-scheme: dark;
}

/* ═══════════════════════════════════════════════════════════════
   TABEL PUTIH (SEMUA HALAMAN) — latar belakang tabel & halaman putih.
   Menu kiri tetap navy. Bagian atas kartu (judul, tombol, filter) tetap navy.
   ═══════════════════════════════════════════════════════════════ */

/* 1) Latar halaman putih untuk halaman yang isinya hanya tabel */
.page:has(.content-area .table-wrapper):not(:has(.content-area > :not(.table-wrapper):not(script):not(style))) { background:#ffffff; }

/* 2) Kartu tabel */
.table-wrapper,
#page-admin-absen-rapat .table-wrapper,
#page-admin-ttd-qrcode  .table-wrapper {
  background:#ffffff; border:1px solid #cbd5e1; border-top:3px solid #0ea5e9;
  box-shadow:0 1px 4px rgba(15,23,42,.15);
}
/* bagian atas kartu (judul, tombol, pencarian, filter) tetap navy */
.table-wrapper > :not(:has(table)):not(.admin-pag-wrap):not(script):not(style) { background:#0f1f3d; }

/* 3) Isi tabel */
.table-wrapper table, .table-wrapper tbody { background:#ffffff; }
.table-wrapper thead, .table-wrapper thead th { background:#f1f5f9; }
.table-wrapper th { color:#0369a1; border-bottom:2px solid #0ea5e9; }
.table-wrapper tr td,
.table-wrapper tr:hover td, .table-wrapper tr:active td, .table-wrapper tr:focus td, .table-wrapper tr:focus-within td {
  color:#0f172a !important; border-bottom:1px solid #e2e8f0;
}
.table-wrapper tr:nth-child(odd) td,  .table-wrapper tr:nth-child(odd):active td,  .table-wrapper tr:nth-child(odd):focus td  { background:#ffffff !important; }
.table-wrapper tr:nth-child(even) td, .table-wrapper tr:nth-child(even):active td, .table-wrapper tr:nth-child(even):focus td { background:#f8fafc !important; }
.table-wrapper tr:hover td { background:#f0f9ff !important; }
.table-wrapper td a:not([class]) { color:#0369a1 !important; }

/* 4) Teks berwarna terang (dibuat untuk latar gelap) -> versi gelap di latar putih */
.table-wrapper td [style*="color:#fff"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #fff"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color:#e2e8f0"], .table-wrapper td [style*="color:#cbd5e1"],
.table-wrapper td [style*="color:#f1f5f9"], .table-wrapper td [style*="color:#f8fafc"] { color:#0f172a !important; }
.table-wrapper td [style*="rgba(255,255,255"]:not([style*="background:"]),
.table-wrapper td [style*="color:#94a3b8"], .table-wrapper td [style*="color:#64748b"] { color:#64748b !important; }
.table-wrapper td [style*="color:#7dd3fc"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #7dd3fc"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#7dd3fc"],
.table-wrapper td[style*="color: #7dd3fc"] { color:#0369a1 !important; }
.table-wrapper td [style*="color:#38bdf8"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #38bdf8"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#38bdf8"],
.table-wrapper td[style*="color: #38bdf8"] { color:#0369a1 !important; }
.table-wrapper td [style*="color:#bae6fd"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #bae6fd"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#bae6fd"],
.table-wrapper td[style*="color: #bae6fd"] { color:#0369a1 !important; }
.table-wrapper td [style*="color:#60a5fa"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #60a5fa"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#60a5fa"],
.table-wrapper td[style*="color: #60a5fa"] { color:#1d4ed8 !important; }
.table-wrapper td [style*="color:#93c5fd"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #93c5fd"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#93c5fd"],
.table-wrapper td[style*="color: #93c5fd"] { color:#1d4ed8 !important; }
.table-wrapper td [style*="color:#a5b4fc"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #a5b4fc"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#a5b4fc"],
.table-wrapper td[style*="color: #a5b4fc"] { color:#4338ca !important; }
.table-wrapper td [style*="color:#c4b5fd"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #c4b5fd"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#c4b5fd"],
.table-wrapper td[style*="color: #c4b5fd"] { color:#6d28d9 !important; }
.table-wrapper td [style*="color:#d8b4fe"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #d8b4fe"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#d8b4fe"],
.table-wrapper td[style*="color: #d8b4fe"] { color:#7e22ce !important; }
.table-wrapper td [style*="color:#a78bfa"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #a78bfa"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#a78bfa"],
.table-wrapper td[style*="color: #a78bfa"] { color:#6d28d9 !important; }
.table-wrapper td [style*="color:#6ee7b7"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #6ee7b7"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#6ee7b7"],
.table-wrapper td[style*="color: #6ee7b7"] { color:#047857 !important; }
.table-wrapper td [style*="color:#86efac"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #86efac"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#86efac"],
.table-wrapper td[style*="color: #86efac"] { color:#15803d !important; }
.table-wrapper td [style*="color:#4ade80"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #4ade80"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#4ade80"],
.table-wrapper td[style*="color: #4ade80"] { color:#15803d !important; }
.table-wrapper td [style*="color:#34d399"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #34d399"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#34d399"],
.table-wrapper td[style*="color: #34d399"] { color:#047857 !important; }
.table-wrapper td [style*="color:#5eead4"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #5eead4"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#5eead4"],
.table-wrapper td[style*="color: #5eead4"] { color:#0f766e !important; }
.table-wrapper td [style*="color:#67e8f9"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #67e8f9"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#67e8f9"],
.table-wrapper td[style*="color: #67e8f9"] { color:#0e7490 !important; }
.table-wrapper td [style*="color:#a7f3d0"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #a7f3d0"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#a7f3d0"],
.table-wrapper td[style*="color: #a7f3d0"] { color:#047857 !important; }
.table-wrapper td [style*="color:#fca5a5"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #fca5a5"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#fca5a5"],
.table-wrapper td[style*="color: #fca5a5"] { color:#b91c1c !important; }
.table-wrapper td [style*="color:#f87171"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #f87171"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#f87171"],
.table-wrapper td[style*="color: #f87171"] { color:#b91c1c !important; }
.table-wrapper td [style*="color:#fecaca"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #fecaca"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#fecaca"],
.table-wrapper td[style*="color: #fecaca"] { color:#b91c1c !important; }
.table-wrapper td [style*="color:#fb7185"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #fb7185"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#fb7185"],
.table-wrapper td[style*="color: #fb7185"] { color:#be123c !important; }
.table-wrapper td [style*="color:#f9a8d4"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td [style*="color: #f9a8d4"]:not([style*="background:#"]):not([style*="background:linear"]),
.table-wrapper td[style*="color:#f9a8d4"],
.table-wrapper td[style*="color: #f9a8d4"] { color:#be185d !important; }

/* 5) Tombol aksi & badge bawaan modul Absen Rapat di latar putih */
.table-wrapper .abs-ic-hadir  { background:#eef2ff; border-color:#c7d2fe; color:#4338ca; }
.table-wrapper .abs-ic-notulen,
.table-wrapper .abs-ic-buka   { background:#e0f2fe; border-color:#bae6fd; color:#0369a1; }
.table-wrapper .abs-ic-qr,
.table-wrapper .abs-ic-selesai{ background:#dcfce7; border-color:#bbf7d0; color:#15803d; }
.table-wrapper .abs-ic-edit   { background:#f1f5f9; border-color:#cbd5e1; color:#475569; }
.table-wrapper .abs-ic-hapus  { background:#fee2e2; border-color:#fecaca; color:#b91c1c; }
.table-wrapper .abs-ic.mati   { background:#f1f5f9; border-color:#e2e8f0; color:#94a3b8; }

/* 6) Pagination di bawah tabel */
.table-wrapper .admin-pag-wrap, .admin-pag-wrap { background:#f8fafc; border-top:1px solid #e2e8f0; }
.admin-pag-info { color:#64748b; }
.admin-pag-btn  { background:#ffffff; border:1px solid #cbd5e1; color:#334155; }
.admin-pag-btn:hover:not(:disabled):not(.active) { border-color:#0ea5e9; color:#0284c7; }
.admin-pag-btn.active { background:#0284c7; border-color:#0284c7; color:#fff; }

/* 7) Kelas teks bawaan sel tabel (nama, sub-teks, email, memuat) yang aslinya putih */
.table-wrapper .td-name,
.table-wrapper .dosen-nama-text { color:#0f172a !important; }
.table-wrapper .td-sub,
.table-wrapper .td-loading      { color:#64748b !important; }
.table-wrapper .dosen-email     { color:#0369a1 !important; }

/* 8) Ikon menu sidebar: kotak & ikon berwarna biru (bukan abu-abu) */
.nav-icon {
  background: linear-gradient(135deg, rgba(14,165,233,.30), rgba(2,132,199,.22));
  box-shadow: inset 0 0 0 1px rgba(56,189,248,.35);
  /* emoji dijadikan satu nuansa biru agar seragam */
  filter: grayscale(1) sepia(1) hue-rotate(168deg) saturate(3.2) brightness(1.15);
}
.nav-item:hover .nav-icon  { background: linear-gradient(135deg, rgba(14,165,233,.45), rgba(2,132,199,.35)); }
.nav-item.active .nav-icon { background: linear-gradient(135deg, rgba(14,165,233,.70), rgba(2,132,199,.55)); box-shadow: inset 0 0 0 1px rgba(125,211,252,.6); }

/* 9) Ikon menu sidebar (publik & admin): glyph solid warna teal, tanpa kotak & tanpa bayangan */
.nav-icon,
.nav-item:hover .nav-icon,
.nav-item.active .nav-icon,
.nav-item.nav-sub .nav-icon {
  background: none !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  border: 0 !important;
  outline: 0 !important;
  filter: none !important;
}
.nav-icon .ni {
  display: block;
  width: 18px; height: 18px;
  background-color: #2dd4bf;
  -webkit-mask: var(--ni) center / contain no-repeat;
          mask: var(--ni) center / contain no-repeat;
  transition: background-color .2s;
}
.nav-item.nav-sub .nav-icon .ni { width: 16px; height: 16px; }
.nav-item:hover .nav-icon .ni,
.nav-item.active .nav-icon .ni { background-color: #5eead4; }
.ni-award{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20448%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M245.9-25.9a41.89%2041.89%200%200%200-43.7%200C177.8-11%20162.7-7%20134.1-7.6%20118.4-8%20103.8.5%2096.2%2014.3%2082.5%2039.4%2071.4%2050.5%2046.3%2064.2c-13.8%207.5-22.2%2022.2-21.9%2037.9.7%2028.6-3.4%2043.7-18.3%2068.1a41.89%2041.89%200%200%200%200%2043.7C21%20238.3%2025%20253.4%2024.4%20282c-.4%2015.7%208.1%2030.3%2021.9%2037.9C68.4%20332%2079.6%20342%2091.4%20361.4l-48.7%2097.1c-5.9%2011.9-1.1%2026.3%2010.7%2032.2l86%2043c11.5%205.7%2025.5%201.4%2031.7-9.8l52.8-95.1%2052.8%2095.1c6.2%2011.2%2020.2%2015.6%2031.7%209.8l86-43c11.9-5.9%2016.7-20.3%2010.7-32.2l-48.6-97.2c11.7-19.4%2023-29.4%2045.1-41.5%2013.8-7.5%2022.2-22.2%2021.9-37.9-.7-28.6%203.4-43.7%2018.3-68.1%208.2-13.4%208.2-30.3%200-43.7-14.9-24.4-18.9-39.5-18.3-68.1.4-15.7-8.1-30.3-21.9-37.9-25.1-13.7-36.2-24.8-49.9-49.9C344.2.4%20329.5-8%20313.8-7.7c-28.6.7-43.7-3.4-68.1-18.3zM224%2096a96%2096%200%201%201%200%20192%2096%2096%200%201%201%200-192%22/%3E%3C/svg%3E");}
.ni-book{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20448%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M384%20512H96c-53%200-96-43-96-96V96C0%2043%2043%200%2096%200h304c26.5%200%2048%2021.5%2048%2048v288c0%2020.9-13.4%2038.7-32%2045.3V448c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032zM96%20384c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032h256v-64zm32-232c0%2013.3%2010.7%2024%2024%2024h176c13.3%200%2024-10.7%2024-24s-10.7-24-24-24H152c-13.3%200-24%2010.7-24%2024m24%2072c-13.3%200-24%2010.7-24%2024s10.7%2024%2024%2024h176c13.3%200%2024-10.7%2024-24s-10.7-24-24-24z%22/%3E%3C/svg%3E");}
.ni-book-open{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M256%20141.3v309.3l.5-.2A449%20449%200%200%201%20428.8%20416H448V96h-19.2c-42.2%200-84.1%208.4-123.1%2024.6-16.8%207-33.4%2013.9-49.7%2020.7m-25.1-79.8L256%2072l25.1-10.5C327.9%2042%20378.1%2032%20428.8%2032H464c26.5%200%2048%2021.5%2048%2048v352c0%2026.5-21.5%2048-48%2048h-35.2c-50.7%200-100.9%2010-147.7%2029.5l-12.8%205.3c-7.9%203.3-16.7%203.3-24.6%200l-12.8-5.3C184.1%20490%20133.9%20480%2083.2%20480H48c-26.5%200-48-21.5-48-48V80c0-26.5%2021.5-48%2048-48h35.2c50.7%200%20100.9%2010%20147.7%2029.5%22/%3E%3C/svg%3E");}
.ni-bullhorn{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M461.2%2018.9C472.7%2024%20480%2035.4%20480%2048v416c0%2012.6-7.3%2024-18.8%2029.1s-24.8%203.2-34.3-5.1l-46.6-40.7c-43.6-38.1-98.7-60.3-156.4-63V480c0%2017.7-14.3%2032-32%2032h-32c-17.7%200-32-14.3-32-32v-96C57.3%20384%200%20326.7%200%20256s57.3-128%20128-128h84.5c61.8-.2%20121.4-22.7%20167.9-63.3L427%2024c9.4-8.3%2022.9-10.2%2034.3-5.1zM224%20320v.2c70.3%202.7%20137.8%2028.5%20192%2073.4V118.3c-54.2%2044.9-121.7%2070.7-192%2073.4z%22/%3E%3C/svg%3E");}
.ni-bullseye{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M448%20256a192%20192%200%201%200-384%200%20192%20192%200%201%200%20384%200M0%20256a256%20256%200%201%201%20512%200%20256%20256%200%201%201-512%200m256%2080a80%2080%200%201%200%200-160%2080%2080%200%201%200%200%20160m0-224a144%20144%200%201%201%200%20288%20144%20144%200%201%201%200-288m-32%20144a32%2032%200%201%201%2064%200%2032%2032%200%201%201-64%200%22/%3E%3C/svg%3E");}
.ni-calendar-days{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20448%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M128%200c17.7%200%2032%2014.3%2032%2032v32h128V32c0-17.7%2014.3-32%2032-32s32%2014.3%2032%2032v32h32c35.3%200%2064%2028.7%2064%2064v288c0%2035.3-28.7%2064-64%2064H64c-35.3%200-64-28.7-64-64V128c0-35.3%2028.7-64%2064-64h32V32c0-17.7%2014.3-32%2032-32M64%20240v32c0%208.8%207.2%2016%2016%2016h32c8.8%200%2016-7.2%2016-16v-32c0-8.8-7.2-16-16-16H80c-8.8%200-16%207.2-16%2016m128%200v32c0%208.8%207.2%2016%2016%2016h32c8.8%200%2016-7.2%2016-16v-32c0-8.8-7.2-16-16-16h-32c-8.8%200-16%207.2-16%2016m144-16c-8.8%200-16%207.2-16%2016v32c0%208.8%207.2%2016%2016%2016h32c8.8%200%2016-7.2%2016-16v-32c0-8.8-7.2-16-16-16zM64%20368v32c0%208.8%207.2%2016%2016%2016h32c8.8%200%2016-7.2%2016-16v-32c0-8.8-7.2-16-16-16H80c-8.8%200-16%207.2-16%2016m144-16c-8.8%200-16%207.2-16%2016v32c0%208.8%207.2%2016%2016%2016h32c8.8%200%2016-7.2%2016-16v-32c0-8.8-7.2-16-16-16zm112%2016v32c0%208.8%207.2%2016%2016%2016h32c8.8%200%2016-7.2%2016-16v-32c0-8.8-7.2-16-16-16h-32c-8.8%200-16%207.2-16%2016%22/%3E%3C/svg%3E");}
.ni-chalkboard-user{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20640%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M128%2096c0-35.3%2028.7-64%2064-64h352c35.3%200%2064%2028.7%2064%2064v240h-96v-16c0-17.7-14.3-32-32-32h-64c-17.7%200-32%2014.3-32%2032v16H254.9c10.9-18.8%2017.1-40.7%2017.1-64%200-70.7-57.3-128-128-128-5.4%200-10.8.3-16%201zm205%20352c-5.1-24.2-16.3-46.1-32.1-64H608c0%2035.3-28.7%2064-64%2064zM64%20272a80%2080%200%201%201%20160%200%2080%2080%200%201%201-160%200M0%20480c0-53%2043-96%2096-96h96c53%200%2096%2043%2096%2096%200%2017.7-14.3%2032-32%2032H32c-17.7%200-32-14.3-32-32%22/%3E%3C/svg%3E");}
.ni-chart-column{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M32%2032c17.7%200%2032%2014.3%2032%2032v336c0%208.8%207.2%2016%2016%2016h400c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032H80c-44.2%200-80-35.8-80-80V64c0-17.7%2014.3-32%2032-32m112%20192c17.7%200%2032%2014.3%2032%2032v64c0%2017.7-14.3%2032-32%2032s-32-14.3-32-32v-64c0-17.7%2014.3-32%2032-32m144-64v160c0%2017.7-14.3%2032-32%2032s-32-14.3-32-32V160c0-17.7%2014.3-32%2032-32s32%2014.3%2032%2032m80%2032c17.7%200%2032%2014.3%2032%2032v96c0%2017.7-14.3%2032-32%2032s-32-14.3-32-32v-96c0-17.7%2014.3-32%2032-32m144-96v224c0%2017.7-14.3%2032-32%2032s-32-14.3-32-32V96c0-17.7%2014.3-32%2032-32s32%2014.3%2032%2032%22/%3E%3C/svg%3E");}
.ni-chart-line{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M64%2064c0-17.7-14.3-32-32-32S0%2046.3%200%2064v336c0%2044.2%2035.8%2080%2080%2080h400c17.7%200%2032-14.3%2032-32s-14.3-32-32-32H80c-8.8%200-16-7.2-16-16zm406.6%2086.6c12.5-12.5%2012.5-32.8%200-45.3s-32.8-12.5-45.3%200L320%20210.7l-57.4-57.3c-12.5-12.5-32.8-12.5-45.3%200l-96%2096c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200l73.4-73.4%2057.4%2057.4c12.5%2012.5%2032.8%2012.5%2045.3%200l128-128z%22/%3E%3C/svg%3E");}
.ni-clipboard-list{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20384%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M311.4%2032h8.6c35.3%200%2064%2028.7%2064%2064v352c0%2035.3-28.7%2064-64%2064H64c-35.3%200-64-28.7-64-64V96c0-35.3%2028.7-64%2064-64h8.6c11-19.1%2031.7-32%2055.4-32h128c23.7%200%2044.4%2012.9%2055.4%2032M248%20112c13.3%200%2024-10.7%2024-24s-10.7-24-24-24H136c-13.3%200-24%2010.7-24%2024s10.7%2024%2024%2024zM128%20256a32%2032%200%201%200-64%200%2032%2032%200%201%200%2064%200m32%200c0%2013.3%2010.7%2024%2024%2024h112c13.3%200%2024-10.7%2024-24s-10.7-24-24-24H184c-13.3%200-24%2010.7-24%2024m0%20128c0%2013.3%2010.7%2024%2024%2024h112c13.3%200%2024-10.7%2024-24s-10.7-24-24-24H184c-13.3%200-24%2010.7-24%2024m-64%2032a32%2032%200%201%200%200-64%2032%2032%200%201%200%200%2064%22/%3E%3C/svg%3E");}
.ni-clock{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M256%200a256%20256%200%201%201%200%20512%20256%20256%200%201%201%200-512m-24%20120v136c0%208%204%2015.5%2010.7%2020l96%2064c11%207.4%2025.9%204.4%2033.3-6.7s4.4-25.9-6.7-33.3L280%20243.2V120c0-13.3-10.7-24-24-24s-24%2010.7-24%2024%22/%3E%3C/svg%3E");}
.ni-file-pen{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20640%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M128.1%200c-35.3%200-64%2028.7-64%2064v384c0%2035.3%2028.7%2064%2064%2064h146.2l10.9-54.5c4.3-21.7%2015-41.6%2030.6-57.2L448%20268.1v-97.5c0-17-6.7-33.3-18.7-45.3L322.8%2018.7C310.8%206.7%20294.5%200%20277.6%200zm261.5%20176h-93.5c-13.3%200-24-10.7-24-24V58.5zm-57.3%20290.9-11.9%2059.6c-.2.9-.3%201.9-.3%202.9%200%208%206.5%2014.6%2014.6%2014.6%201%200%201.9-.1%202.9-.3l59.6-11.9c12.4-2.5%2023.8-8.6%2032.7-17.5l118.9-118.9-80-80-118.9%20118.9c-8.9%208.9-15%2020.3-17.5%2032.7zm267.8-123c22.1-22.1%2022.1-57.9%200-80s-57.9-22.1-80%200l-28.8%2028.8%2080%2080z%22/%3E%3C/svg%3E");}
.ni-folder{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M64%20448h384c35.3%200%2064-28.7%2064-64V144c0-35.3-28.7-64-64-64H298.7c-6.9%200-13.7-2.2-19.2-6.4l-38.4-28.8C230%2036.5%20216.5%2032%20202.7%2032H64C28.7%2032%200%2060.7%200%2096v288c0%2035.3%2028.7%2064%2064%2064%22/%3E%3C/svg%3E");}
.ni-gear{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M195.1%209.5c3-14.8%2016.1-25.5%2031.3-25.5h59.8c15.2%200%2028.3%2010.7%2031.3%2025.5l14.5%2070c14.1%206%2027.3%2013.7%2039.3%2022.8l67.8-22.5c14.4-4.8%2030.2%201.2%2037.8%2014.4l29.9%2051.8c7.6%2013.2%204.9%2029.8-6.5%2039.9L447%20233.3c.9%207.4%201.3%2015%201.3%2022.7s-.5%2015.3-1.3%2022.7l53.4%2047.5c11.4%2010.1%2014%2026.8%206.5%2039.9L477%20417.9c-7.6%2013.1-23.4%2019.2-37.8%2014.4l-67.8-22.5c-12.1%209.1-25.3%2016.7-39.3%2022.8l-14.4%2069.9c-3.1%2014.9-16.2%2025.5-31.3%2025.5h-59.8c-15.2%200-28.3-10.7-31.3-25.5l-14.4-69.9c-14.1-6-27.2-13.7-39.3-22.8l-68.1%2022.5c-14.4%204.8-30.2-1.2-37.8-14.4L5.8%20366.1c-7.6-13.2-4.9-29.8%206.5-39.9l53.4-47.5c-.9-7.4-1.3-15-1.3-22.7s.5-15.3%201.3-22.7l-53.4-47.5C.9%20175.7-1.7%20159%205.8%20145.9l29.9-51.8c7.6-13.2%2023.4-19.2%2037.8-14.4l67.8%2022.5c12.1-9.1%2025.3-16.7%2039.3-22.8zM256.3%20336a80%2080%200%201%200-.6-160%2080%2080%200%201%200%20.6%20160%22/%3E%3C/svg%3E");}
.ni-graduation-cap{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20576%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22m48%20195.8%20209.2%2086.1c9.8%204%2020.2%206.1%2030.8%206.1s21-2.1%2030.8-6.1l242.4-99.8c9-3.7%2014.8-12.4%2014.8-22.1s-5.8-18.4-14.8-22.1L318.8%2038.1c-9.8-4-20.2-6.1-30.8-6.1s-21%202.1-30.8%206.1L14.8%20137.9C5.8%20141.6%200%20150.3%200%20160v296c0%2013.3%2010.7%2024%2024%2024s24-10.7%2024-24zm48%2071.7V384c0%2053%2086%2096%20192%2096s192-43%20192-96V267.4l-142.9%2058.9c-15.6%206.4-32.2%209.7-49.1%209.7s-33.5-3.3-49.1-9.7L96%20267.4z%22/%3E%3C/svg%3E");}
.ni-handshake{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20576%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M268.9%2085.2%20152.3%20214.8c-4.6%205.1-4.4%2013%20.5%2017.9%2030.5%2030.5%2080%2030.5%20110.5%200l31.8-31.8c4.2-4.2%209.5-6.5%2014.9-6.9%206.8-.6%2013.8%201.7%2019%206.9L505.6%20376l70.4-56V32L464%2096l-23.8-15.9A96.2%2096.2%200%200%200%20386.9%2064h-70.4c-1.1%200-2.3%200-3.4.1-16.9.9-32.8%208.5-44.2%2021.1m-152.3%2097.5L223.4%2064h-39.6c-25.5%200-49.9%2010.1-67.9%2028.1L112%2096%200%2032v288l156.4%20130.3c23%2019.2%2052%2029.7%2081.9%2029.7H254l-7-7c-9.4-9.4-9.4-24.6%200-33.9s24.6-9.4%2033.9%200l41%2041h9c19.1%200%2037.8-4.3%2054.8-12.3L359%20441c-9.4-9.4-9.4-24.6%200-33.9s24.6-9.4%2033.9%200l32%2032%2017.5-17.5c8.9-8.9%2011.5-21.8%207.6-33.1L312.1%20251.7l-14.9%2014.9c-49.3%2049.3-129.1%2049.3-178.4%200-23-23-23.9-59.9-2.2-84z%22/%3E%3C/svg%3E");}
.ni-helmet-safety{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20576%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M352%20264V64c0-17.7-14.3-32-32-32h-64c-17.7%200-32%2014.3-32%2032v200c0%2013.3-10.7%2024-24%2024s-24-10.7-24-24V78.1C90%20109.8%2032%20191.8%2032%20288v64h512v-64c-1-95.2-58.4-177.7-144-209.8V264c0%2013.3-10.7%2024-24%2024s-24-10.7-24-24M40%20400c-22.1%200-40%2017.9-40%2040s17.9%2040%2040%2040h496c22.1%200%2040-17.9%2040-40s-17.9-40-40-40z%22/%3E%3C/svg%3E");}
.ni-house{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M277.8%208.6c-12.3-11.4-31.3-11.4-43.5%200l-224%20208c-9.6%209-12.8%2022.9-8%2035.1S18.8%20272%2032%20272h16v176c0%2035.3%2028.7%2064%2064%2064h288c35.3%200%2064-28.7%2064-64V272h16c13.2%200%2025-8.1%2029.8-20.3s1.6-26.2-8-35.1zM240%20320h32c26.5%200%2048%2021.5%2048%2048v96H192v-96c0-26.5%2021.5-48%2048-48%22/%3E%3C/svg%3E");}
.ni-id-card{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20576%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M0%2096c0-35.3%2028.7-64%2064-64h448c35.3%200%2064%2028.7%2064%2064zm0%2048h576v272c0%2035.3-28.7%2064-64%2064H64c-35.3%200-64-28.7-64-64zm247.3%20272c20.2%200%2035.3-19.4%2022.4-35-14.7-17.7-36.9-29-61.7-29h-64c-24.8%200-47%2011.3-61.7%2029-12.9%2015.6%202.2%2035%2022.4%2035h142.5zM176%20312a56%2056%200%201%200%200-112%2056%2056%200%201%200%200%20112m184-104c-13.3%200-24%2010.7-24%2024s10.7%2024%2024%2024h112c13.3%200%2024-10.7%2024-24s-10.7-24-24-24zm0%2096c-13.3%200-24%2010.7-24%2024s10.7%2024%2024%2024h112c13.3%200%2024-10.7%2024-24s-10.7-24-24-24z%22/%3E%3C/svg%3E");}
.ni-key{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M336%20352c97.2%200%20176-78.8%20176-176S433.2%200%20336%200%20160%2078.8%20160%20176c0%2018.7%202.9%2036.8%208.3%2053.7L7%20391c-4.5%204.5-7%2010.6-7%2017v80c0%2013.3%2010.7%2024%2024%2024h80c13.3%200%2024-10.7%2024-24v-40h40c13.3%200%2024-10.7%2024-24v-40h40c6.4%200%2012.5-2.5%2017-7l33.3-33.3c16.9%205.4%2035%208.3%2053.7%208.3m40-256a40%2040%200%201%201%200%2080%2040%2040%200%201%201%200-80%22/%3E%3C/svg%3E");}
.ni-landmark{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M238.7%205.1c10.5-6.8%2024.1-6.8%2034.6%200l224%20144c11.9%207.7%2017.4%2022.3%2013.4%2035.9s-16.5%2023-30.7%2023h-32v208l51.2%2038.4c8.1%206%2012.8%2015.5%2012.8%2025.6%200%2017.7-14.3%2032-32%2032H32c-17.7%200-32-14.3-32-32%200-10.1%204.7-19.6%2012.8-25.6L64%20416V208H32c-14.2%200-26.7-9.4-30.7-23s1.5-28.3%2013.4-35.9zM336%20208v208h64V208zM224%20416h64V208h-64zM112%20208v208h64V208z%22/%3E%3C/svg%3E");}
.ni-lightbulb{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20384%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M292.9%20384c7.3-22.3%2021.9-42.5%2038.4-59.9C364%20289.7%20384%20243.2%20384%20192%20384%2086%20298%200%20192%200S0%2086%200%20192c0%2051.2%2020%2097.7%2052.7%20132.1%2016.5%2017.4%2031.2%2037.6%2038.4%2059.9h201.7zm-4.9%2048H96v16c0%2044.2%2035.8%2080%2080%2080h32c44.2%200%2080-35.8%2080-80zM184%20112c-39.8%200-72%2032.2-72%2072%200%2013.3-10.7%2024-24%2024s-24-10.7-24-24c0-66.3%2053.7-120%20120-120%2013.3%200%2024%2010.7%2024%2024s-10.7%2024-24%2024%22/%3E%3C/svg%3E");}
.ni-medal{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20448%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M224.3%20128%20139.7-12.9c-6.5-10.8-20.1-14.7-31.3-9.1L21.8%2021.3C9.9%2027.2%205.1%2041.6%2011%2053.5l69.6%20139.1C50.5%20226.5%2032.3%20271.1%2032.3%20320c0%20106%2086%20192%20192%20192s192-86%20192-192c0-48.9-18.3-93.5-48.3-127.4l69.6-139.1c5.9-11.9%201.1-26.3-10.7-32.2l-86.7-43.4c-11.2-5.6-24.9-1.6-31.3%209.1zm30.8%20142.5c1.4%202.8%204%204.7%207%205.1l50.1%207.3c7.7%201.1%2010.7%2010.5%205.2%2016l-36.3%2035.4c-2.2%202.2-3.2%205.2-2.7%208.3l8.6%2049.9c1.3%207.6-6.7%2013.5-13.6%209.9l-44.8-23.6c-2.7-1.4-6-1.4-8.7%200l-44.8%2023.6c-6.9%203.6-14.9-2.2-13.6-9.9l8.6-49.9c.5-3-.5-6.1-2.7-8.3l-36.3-35.4c-5.6-5.4-2.5-14.8%205.2-16l50.1-7.3c3-.4%205.7-2.4%207-5.1l22.4-45.4c3.4-7%2013.3-7%2016.8%200l22.4%2045.4z%22/%3E%3C/svg%3E");}
.ni-microphone{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20384%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M192%200c-53%200-96%2043-96%2096v128c0%2053%2043%2096%2096%2096s96-43%2096-96V96c0-53-43-96-96-96M48%20184c0-13.3-10.7-24-24-24S0%20170.7%200%20184v40c0%2097.9%2073.3%20178.7%20168%20190.5V464h-48c-13.3%200-24%2010.7-24%2024s10.7%2024%2024%2024h144c13.3%200%2024-10.7%2024-24s-10.7-24-24-24h-48v-49.5c94.7-11.8%20168-92.6%20168-190.5v-40c0-13.3-10.7-24-24-24s-24%2010.7-24%2024v40c0%2079.5-64.5%20144-144%20144S48%20303.5%2048%20224z%22/%3E%3C/svg%3E");}
.ni-microscope{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M176%200c-26.5%200-48%2021.5-48%2048v208c0%2026.5%2021.5%2048%2048%2048h64c26.5%200%2048-21.5%2048-48v-64h32c70.7%200%20128%2057.3%20128%20128s-57.3%20128-128%20128H32c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032h448c17.7%200%2032-14.3%2032-32s-14.3-32-32-32h-16.9c30.4-34%2048.9-78.8%2048.9-128%200-106-86-192-192-192h-32V48c0-26.5-21.5-48-48-48zm-56%20352c-13.3%200-24%2010.7-24%2024s10.7%2024%2024%2024h176c13.3%200%2024-10.7%2024-24s-10.7-24-24-24z%22/%3E%3C/svg%3E");}
.ni-puzzle-piece{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M224%200c35.3%200%2064%2021.5%2064%2048%200%2010.4-4.4%2020-12%2027.9-6.6%206.9-12%2015.3-12%2024.9%200%2015%2012.2%2027.2%2027.2%2027.2H336c26.5%200%2048%2021.5%2048%2048v44.8c0%2015%2012.2%2027.2%2027.2%2027.2%209.5%200%2018-5.4%2024.9-12%207.9-7.5%2017.5-12%2027.9-12%2026.5%200%2048%2028.7%2048%2064s-21.5%2064-48%2064c-10.4%200-20.1-4.4-27.9-12-6.9-6.6-15.3-12-24.9-12-15%200-27.2%2012.2-27.2%2027.2V464c0%2026.5-21.5%2048-48%2048h-56.8c-12.8%200-23.2-10.4-23.2-23.2%200-9.2%205.8-17.3%2013.2-22.8%2011.6-8.7%2018.8-20.7%2018.8-34%200-26.5-28.7-48-64-48s-64%2021.5-64%2048c0%2013.3%207.2%2025.3%2018.8%2034%207.4%205.5%2013.2%2013.5%2013.2%2022.8%200%2012.8-10.4%2023.2-23.2%2023.2H48c-26.5%200-48-21.5-48-48V343.2C0%20330.4%2010.4%20320%2023.2%20320c9.2%200%2017.3%205.8%2022.8%2013.2%208.7%2011.6%2020.7%2018.8%2034%2018.8%2026.5%200%2048-28.7%2048-64s-21.5-64-48-64c-13.3%200-25.3%207.2-34%2018.8-5.5%207.4-13.5%2013.2-22.8%2013.2C10.4%20256%200%20245.6%200%20232.8V176c0-26.5%2021.5-48%2048-48h108.8c15%200%2027.2-12.2%2027.2-27.2%200-9.5-5.4-18-12-24.9-7.5-7.9-12-17.5-12-27.9%200-26.5%2028.7-48%2064-48%22/%3E%3C/svg%3E");}
.ni-qrcode{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20448%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M64%20160h64V96H64zM0%2080c0-26.5%2021.5-48%2048-48h96c26.5%200%2048%2021.5%2048%2048v96c0%2026.5-21.5%2048-48%2048H48c-26.5%200-48-21.5-48-48zm64%20336h64v-64H64zM0%20336c0-26.5%2021.5-48%2048-48h96c26.5%200%2048%2021.5%2048%2048v96c0%2026.5-21.5%2048-48%2048H48c-26.5%200-48-21.5-48-48zM320%2096v64h64V96zm-16-64h96c26.5%200%2048%2021.5%2048%2048v96c0%2026.5-21.5%2048-48%2048h-96c-26.5%200-48-21.5-48-48V80c0-26.5%2021.5-48%2048-48m-16%20320a32%2032%200%201%201%200-64%2032%2032%200%201%201%200%2064m0%2064c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032-32-14.3-32-32%2014.3-32%2032-32m96%2032c0-17.7%2014.3-32%2032-32s32%2014.3%2032%2032-14.3%2032-32%2032-32-14.3-32-32m32-96a32%2032%200%201%201%200-64%2032%2032%200%201%201%200%2064m-32%2032a32%2032%200%201%201-64%200%2032%2032%200%201%201%2064%200%22/%3E%3C/svg%3E");}
.ni-school{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20576%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M0%20192c0-35.3%2028.7-64%2064-64h64L255.9%2012.9c18.3-16.4%2046-16.4%2064.2%200L448%20128h64c35.3%200%2064%2028.7%2064%2064v256c0%2035.3-28.7%2064-64%2064H64c-35.3%200-64-28.7-64-64zm224%20184v88h128v-88c0-22.1-17.9-40-40-40h-48c-22.1%200-40%2017.9-40%2040m-112%208c8.8%200%2016-7.2%2016-16v-32c0-8.8-7.2-16-16-16H80c-8.8%200-16%207.2-16%2016v32c0%208.8%207.2%2016%2016%2016zm16-144v-32c0-8.8-7.2-16-16-16H80c-8.8%200-16%207.2-16%2016v32c0%208.8%207.2%2016%2016%2016h32c8.8%200%2016-7.2%2016-16m368%20144c8.8%200%2016-7.2%2016-16v-32c0-8.8-7.2-16-16-16h-32c-8.8%200-16%207.2-16%2016v32c0%208.8%207.2%2016%2016%2016zm16-144v-32c0-8.8-7.2-16-16-16h-32c-8.8%200-16%207.2-16%2016v32c0%208.8%207.2%2016%2016%2016h32c8.8%200%2016-7.2%2016-16m-224%2016a64%2064%200%201%200%200-128%2064%2064%200%201%200%200%20128%22/%3E%3C/svg%3E");}
.ni-scroll{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20576%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M0%20112c0-41.5%2031.6-75.6%2072-79.6V32h280c53%200%2096%2043%2096%2096v176H272c-39.8%200-72%2032.2-72%2072v60c0%2024.3-19.7%2044-44%2044s-44-19.7-44-44V208H48c-26.5%200-48-21.5-48-48zm236.8%20368c7.1-13.1%2011.2-28.1%2011.2-44v-60c0-13.3%2010.7-24%2024-24h248c13.3%200%2024%2010.7%2024%2024v24c0%2044.2-35.8%2080-80%2080zM80%2080c-17.7%200-32%2014.3-32%2032v48h64v-48c0-17.7-14.3-32-32-32%22/%3E%3C/svg%3E");}
.ni-trophy{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M144.3%200h224c26.5%200%2048.1%2021.8%2047.1%2048.2-.2%205.3-.4%2010.6-.7%2015.8h49.6c26.1%200%2049.1%2021.6%2047.1%2049.8-7.5%20103.7-60.5%20160.7-118%20190.5-15.8%208.2-31.9%2014.3-47.2%2018.8-20.2%2028.6-41.2%2043.7-57.9%2051.8V448h64c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032h-192c-17.7%200-32-14.3-32-32s14.3-32%2032-32h64v-73.1c-16-7.7-35.9-22-55.3-48.3-18.4-4.8-38.4-12.1-57.9-23.1C57%20273.2%208.2%20216.1%201.2%20113.6c-1.9-28.1%2021-49.7%2047.1-49.7h49.6c-.3-5.2-.5-10.4-.7-15.8-1-26.5%2020.6-48.2%2047.1-48.2zm-42.8%20112H49.1c6.2%2084.7%2045.1%20127.1%2085.2%20149.6-14.4-37.3-26.3-86-32.8-149.6M380%20256.8c40.5-23.8%2077.1-66.1%2083.3-144.8H411c-6.2%2060.9-17.4%20108.2-31%20144.8%22/%3E%3C/svg%3E");}
.ni-user{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20448%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M224%20248a120%20120%200%201%200%200-240%20120%20120%200%201%200%200%20240m-29.7%2056C95.8%20304%2016%20383.8%2016%20482.3c0%2016.4%2013.3%2029.7%2029.7%2029.7h356.6c16.4%200%2029.7-13.3%2029.7-29.7%200-98.5-79.8-178.3-178.3-178.3z%22/%3E%3C/svg%3E");}
.ni-user-tie{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20448%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M224%20248a120%20120%200%201%201%200-240%20120%20120%200%201%201%200%20240m-30.5%2056h61c9.7%200%2017.5%207.8%2017.5%2017.5%200%204.2-1.5%208.2-4.2%2011.4l-27.4%2032%2031%20115.1h.6l34.6-138.5c2.2-8.7%2011.1-14%2019.5-10.8C388%20354.3%20432%20414.3%20432%20484.5c0%2015.1-12.3%2027.4-27.4%2027.4l-361.2.1C28.3%20512%2016%20499.7%2016%20484.6c0-70.2%2044-130.2%20105.9-153.8%208.4-3.2%2017.3%202.1%2019.5%2010.8L176%20480.1h.6l31-115.1-27.4-32c-2.7-3.2-4.2-7.2-4.2-11.4%200-9.7%207.8-17.5%2017.5-17.5z%22/%3E%3C/svg%3E");}

/* Ikon dashboard admin: glyph solid, tanpa kotak */
.ni {
  display: inline-block;
  width: 1em; height: 1em;
  vertical-align: -.14em;
  background-color: #2dd4bf;
  -webkit-mask: var(--ni) center / contain no-repeat;
          mask: var(--ni) center / contain no-repeat;
}
.db-wave { font-size: 1.5rem; line-height: 1; }
.db-card-icon, .db-card-icon .ni { text-shadow: none !important; box-shadow: none !important; background-image: none; }
.db-card-icon { display: flex; align-items: center; justify-content: center; width: 34px; font-size: 1.9rem; }
.db-card-icon .ni { background-color: #2dd4bf; }
.db-section-title .ni { background-color: #2dd4bf; font-size: 14px; }
.db-module-header .ni { background-color: #fff; margin-right: 4px; }
.ni-circle-check{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M256%20512a256%20256%200%201%201%200-512%20256%20256%200%201%201%200%20512m118-366.3c-10.7-7.8-25.7-5.4-33.5%205.3L221.1%20315.2%20169%20263.1c-9.4-9.4-24.6-9.4-33.9%200s-9.4%2024.6%200%2033.9l72%2072c5%205%2011.8%207.5%2018.8%207s13.4-4.1%2017.5-9.8l135.9-187c7.8-10.7%205.4-25.7-5.3-33.5%22/%3E%3C/svg%3E");}
.ni-hand{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M288%2032c0-17.7-14.3-32-32-32s-32%2014.3-32%2032v208c0%208.8-7.2%2016-16%2016s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32%2014.3-32%2032v272c0%201.5%200%203.1.1%204.6L67.6%20283c-16-15.2-41.3-14.6-56.6%201.4s-14.6%2041.3%201.4%2056.6l112.4%20107c43.1%2041.1%20100.4%2064%20160%2064H304c97.2%200%20176-78.8%20176-176V128c0-17.7-14.3-32-32-32s-32%2014.3-32%2032v112c0%208.8-7.2%2016-16%2016s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32%2014.3-32%2032v176c0%208.8-7.2%2016-16%2016s-16-7.2-16-16z%22/%3E%3C/svg%3E");}
.ni-wrench{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20576%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M509.4%2098.6c7.6-7.6%2020.3-5.7%2024.1%204.3%206.8%2017.7%2010.5%2037%2010.5%2057.1%200%2088.4-71.6%20160-160%20160-17.5%200-34.4-2.8-50.2-8L146.9%20498.9c-28.1%2028.1-73.7%2028.1-101.8%200s-28.1-73.7%200-101.8L232%20210.2c-5.2-15.8-8-32.6-8-50.2C224%2071.6%20295.6%200%20384%200c20.1%200%2039.4%203.7%2057.1%2010.5%2010%203.8%2011.8%2016.5%204.3%2024.1l-88.7%2088.7c-3%203-4.7%207.1-4.7%2011.3V176c0%208.8%207.2%2016%2016%2016h41.4c4.2%200%208.3-1.7%2011.3-4.7z%22/%3E%3C/svg%3E");}

/* Kotak grafik dashboard admin: tetap navy */
.db-chart-box {
  background: #0f2038;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px;
  padding: 18px;
}
.db-chart-title {
  font-size: 13px;
  font-weight: 700;
  color: rgba(255,255,255,.6);
  margin-bottom: 12px;
  letter-spacing: .5px;
}

/* ── Dashboard admin: hanya latar halaman yang putih, kartu tetap navy ── */
#page-admin-dashboard { background: #ffffff; }
.main:has(#page-admin-dashboard.active) { background: #ffffff; }
#page-admin-dashboard .db-section-title { color: #0284c7; }
#page-admin-dashboard .db-section-title .ni { background-color: #0d9488; }
#page-admin-dashboard .db-time-label { color: rgba(255,255,255,.92); }

/* ── Formulir SKP (halaman putih): label, kolom isian & judul bagian dibuat terbaca ── */
#page-admin-skp-form #skp-form-body .form-group label { color:#475569; }
#page-admin-skp-form #skp-form-body h4 { color:#0369a1 !important; }
#page-admin-skp-form #skp-form-body input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]),
#page-admin-skp-form #skp-form-body select,
#page-admin-skp-form #skp-form-body textarea {
  background:#ffffff !important;
  color:#0f172a !important;
  border:1px solid #cbd5e1 !important;
}
#page-admin-skp-form #skp-form-body input::placeholder,
#page-admin-skp-form #skp-form-body textarea::placeholder { color:#94a3b8 !important; }
#page-admin-skp-form #skp-form-body input:focus,
#page-admin-skp-form #skp-form-body select:focus,
#page-admin-skp-form #skp-form-body textarea:focus { border-color:#0ea5e9 !important; }
#page-admin-skp-form #skp-form-body select option { background:#ffffff; color:#0f172a; }
#page-admin-skp-form #skp-form-body input[type="date"] { color-scheme:light; }
#page-admin-skp-form #skp-form-body [style*="rgba(255,255,255"]:not([style*="background"]) { color:#64748b !important; }
#page-admin-skp-form #skp-form-body [style*="color:#38bdf8"] { color:#0369a1 !important; }
#page-admin-skp-form #skp-form-body input[type="radio"],
#page-admin-skp-form #skp-form-body input[type="checkbox"] { width:auto; padding:0; margin-right:6px; vertical-align:middle; }
#page-admin-skp-form #skp-form-body .form-group > label:has(input[type="radio"]) { display:inline-block; text-transform:none; font-size:13px; color:#0f172a; margin-bottom:0; }

/* ── SKP: tabel Hasil Kerja & Perilaku Kerja — jelas & rapi ── */
#page-admin-skp-form .skp-hk-table { min-width: 880px; border-collapse: separate; border-spacing: 0; border: 1px solid #cbd5e1; border-radius: 10px; overflow: hidden; background: #ffffff; }
#page-admin-skp-form .skp-hk-table thead th {
  background: #12305a; color: #ffffff; border: 0; border-right: 1px solid rgba(255,255,255,.18);
  font-size: 12px; font-weight: 700; letter-spacing: .5px; line-height: 1.4; text-transform: uppercase;
  padding: 12px 14px; text-align: center; vertical-align: middle;
}
#page-admin-skp-form .skp-hk-table thead th:last-child { border-right: 0; }
#page-admin-skp-form .skp-hk-table tbody tr td {
  background: #ffffff !important; border: 0; border-top: 1px solid #e2e8f0; border-right: 1px solid #eef2f7;
  padding: 16px 18px; vertical-align: top; color: #1e293b;
}
#page-admin-skp-form .skp-hk-table tbody tr:nth-child(even) td { background: #f8fafc !important; }
#page-admin-skp-form .skp-hk-table tbody tr:hover td { background: #f1f7fd !important; }
#page-admin-skp-form .skp-hk-table tbody tr td:last-child { border-right: 0; }

/* label "Dari Template" jadi lencana kecil */
#page-admin-skp-form .skp-hk-table td > div[style*="color:#38bdf8"] {
  display: inline-block; background: #e0f2fe; color: #0369a1 !important; border: 1px solid #bae6fd;
  font-size: 11px !important; font-weight: 600; line-height: 1.3; padding: 3px 10px; border-radius: 999px; margin-bottom: 12px !important;
}
/* judul aspek perilaku */
#page-admin-skp-form .skp-hk-table td > div[style*="font-weight:700"] {
  color: #0f172a !important; font-size: 16px; font-weight: 700; line-height: 1.35; margin-bottom: 8px !important;
}
/* label kecil: "Ekspektasi Khusus Pimpinan", "Ukuran Keberhasilan..." */
#page-admin-skp-form .skp-hk-table td > div[style*="font-size:11px"],
#page-admin-skp-form .skp-hk-table .skp-hk-indikator-label {
  color: #0369a1 !important; font-size: 11.5px !important; font-weight: 700; letter-spacing: .3px;
  text-transform: uppercase; margin: 14px 0 6px !important;
}

/* isi teks dari template */
#page-admin-skp-form .skp-teks { font-size: 14px; line-height: 1.65; color: #1e293b; }
#page-admin-skp-form .skp-teks .skp-p   { margin: 0 0 4px; }
#page-admin-skp-form .skp-teks .skp-sub { margin: 8px 0 4px; font-weight: 700; color: #0f172a; }
#page-admin-skp-form .skp-teks .skp-gap { height: 8px; }
#page-admin-skp-form .skp-teks .skp-li  { position: relative; padding-left: 18px; margin: 0 0 4px; }
#page-admin-skp-form .skp-teks .skp-li::before { content: ""; position: absolute; left: 4px; top: .72em; width: 6px; height: 6px; border-radius: 50%; background: #0ea5e9; }

/* kolom isian di dalam tabel */
#page-admin-skp-form .skp-hk-table textarea {
  font-size: 14px !important; line-height: 1.55; min-height: 84px; padding: 10px 12px; border-radius: 8px;
}
#page-admin-skp-form .skp-hk-table select,
#page-admin-skp-form .skp-hk-table input[type="number"] { font-size: 14px !important; padding: 9px 10px; border-radius: 8px; }
#page-admin-skp-form #skp-form-body h4 { margin: 26px 0 12px !important; font-size: 17px; }
#page-admin-skp-form .skp-hk-table textarea,
#page-admin-skp-form .skp-hk-table select,
#page-admin-skp-form .skp-hk-table input { font-family: inherit !important; }
#page-admin-skp-form .skp-hk-table td > div[style*="color:#38bdf8"] { border-radius: 10px; }

/* ── Halaman Pengaturan: latar putih, isi kartu bersih & rapi (tanpa blok navy) ── */
#page-admin-settings { background: #ffffff; }
.main:has(#page-admin-settings.active) { background: #ffffff; }

/* tab */
#page-admin-settings .set-tabs { border-bottom: 1px solid #e2e8f0; padding-bottom: 14px; }
#page-admin-settings .set-tab { background: #f1f5f9; border: 1px solid #e2e8f0; color: #475569; }
#page-admin-settings .set-tab:hover { background: #e0f2fe; border-color: #bae6fd; color: #0369a1; }
#page-admin-settings .set-tab.active { background: #4f46e5; border-color: #4f46e5; color: #ffffff; box-shadow: 0 2px 10px rgba(79,70,229,.3); }

/* kartu: hapus semua blok navy di dalamnya */
#page-admin-settings .table-wrapper { background: #ffffff; border: 1px solid #e2e8f0; border-top: 3px solid #0ea5e9; box-shadow: 0 1px 6px rgba(15,23,42,.06); }
#page-admin-settings .table-wrapper > :not(button) { background: transparent; }

/* judul bagian & keterangan */
#page-admin-settings .set-section-title {
  color: #0f172a; font-size: 16px; font-weight: 700; margin: 0 0 18px;
  padding: 2px 0 2px 12px; border-left: 4px solid #0ea5e9;
}
#page-admin-settings .set-desc { color: #64748b; font-size: 13.5px; line-height: 1.55; margin: -6px 0 18px; }
#page-admin-settings .set-desc strong { color: #0f172a; }
#page-admin-settings .set-hint { color: #64748b; font-size: 12px; }
#page-admin-settings .set-opt { color: #94a3b8; opacity: 1; font-weight: 400; text-transform: none; letter-spacing: 0; }
#page-admin-settings .set-divider { border: 0; border-top: 1px solid #e2e8f0; margin: 28px 0; }

/* formulir */
#page-admin-settings .grid-2 { gap: 18px 20px; }
#page-admin-settings .form-group label { color: #475569; font-size: 12px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; margin-bottom: 6px; }
#page-admin-settings input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
#page-admin-settings select,
#page-admin-settings textarea {
  background: #ffffff !important; color: #0f172a !important; border: 1px solid #cbd5e1 !important; border-radius: 8px; box-shadow: none;
}
#page-admin-settings input::placeholder, #page-admin-settings textarea::placeholder { color: #94a3b8 !important; }
#page-admin-settings input:focus, #page-admin-settings select:focus, #page-admin-settings textarea:focus {
  border-color: #0ea5e9 !important; box-shadow: 0 0 0 3px rgba(14,165,233,.15) !important; outline: 0;
}
#page-admin-settings select option { background: #ffffff; color: #0f172a; }

/* tombol */
#page-admin-settings .set-save-btn,
#page-admin-settings .btn-submit { background: linear-gradient(135deg, #0ea5e9, #2563eb) !important; color: #ffffff !important; border: 0; box-shadow: 0 2px 8px rgba(37,99,235,.25); }
#page-admin-settings .btn-del { background: #fee2e2 !important; color: #b91c1c !important; border: 1px solid #fecaca !important; }
#page-admin-settings .btn-del:hover { background: #fecaca !important; }
#page-admin-settings label[for="input-logo-upload"] { background: #f1f5f9 !important; border: 1px solid #cbd5e1 !important; color: #0f172a !important; }
#page-admin-settings label[for="input-logo-upload"]:hover { background: #e2e8f0 !important; }

/* pratinjau logo & kop surat */
#page-admin-settings #logo-preview-wrap { background: #f8fafc !important; border: 1px solid #e2e8f0; box-shadow: 0 2px 10px rgba(15,23,42,.1) !important; }
#page-admin-settings [id$="-preview-wrap"]:not(#logo-preview-wrap) { background: #f8fafc !important; border: 2px dashed #cbd5e1 !important; }
#page-admin-settings [style*="rgba(255,255,255"]:not([style*="background"]) { color: #64748b !important; }
#page-admin-settings span[style*="color:rgba(255,255,255"] { color: #64748b !important; }

/* kotak centang (tab Dosen, Tendik, dst.) */
#page-admin-settings .set-check-item { background: #f8fafc; border: 1px solid #e2e8f0; color: #1e293b; }
#page-admin-settings .set-check-item:hover { background: #f0f9ff; border-color: #bae6fd; }
#page-admin-settings .set-check-item span { color: #1e293b; }

.ni-envelope{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M48%2064C21.5%2064%200%2085.5%200%20112c0%2015.1%207.1%2029.3%2019.2%2038.4l208%20156a48%2048%200%200%200%2057.6%200l208-156c12.1-9.1%2019.2-23.3%2019.2-38.4%200-26.5-21.5-48-48-48zM0%20196v188c0%2035.3%2028.7%2064%2064%2064h384c35.3%200%2064-28.7%2064-64V196L313.6%20344.8c-34.1%2025.6-81.1%2025.6-115.2%200z%22/%3E%3C/svg%3E");}
.ni-floppy-disk{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20448%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M64%2032C28.7%2032%200%2060.7%200%2096v320c0%2035.3%2028.7%2064%2064%2064h320c35.3%200%2064-28.7%2064-64V173.3c0-17-6.7-33.3-18.7-45.3L352%2050.7c-12-12-28.3-18.7-45.3-18.7zm32%2096c0-17.7%2014.3-32%2032-32h160c17.7%200%2032%2014.3%2032%2032v64c0%2017.7-14.3%2032-32%2032H128c-17.7%200-32-14.3-32-32zm128%20160a64%2064%200%201%201%200%20128%2064%2064%200%201%201%200-128%22/%3E%3C/svg%3E");}
.ni-eye{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20576%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M288%2032c-80.8%200-145.5%2036.8-192.6%2080.6-46.8%2043.5-78.1%2095.4-93%20131.1-3.3%207.9-3.3%2016.7%200%2024.6%2014.9%2035.7%2046.2%2087.7%2093%20131.1C142.5%20443.1%20207.2%20480%20288%20480s145.5-36.8%20192.6-80.6c46.8-43.5%2078.1-95.4%2093-131.1%203.3-7.9%203.3-16.7%200-24.6-14.9-35.7-46.2-87.7-93-131.1C433.5%2068.9%20368.8%2032%20288%2032M144%20256a144%20144%200%201%201%20288%200%20144%20144%200%201%201-288%200m144-64c0%2035.3-28.7%2064-64%2064-11.5%200-22.3-3-31.7-8.4-1%2010.9-.1%2022.1%202.9%2033.2%2013.7%2051.2%2066.4%2081.6%20117.6%2067.9s81.6-66.4%2067.9-117.6c-12.2-45.7-55.5-74.8-101.1-70.8%205.3%209.3%208.4%2020.1%208.4%2031.7%22/%3E%3C/svg%3E");}
.ni-eye-slash{--ni:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20576%20512%22%3E%3C!--!%20Font%20Awesome%20Free%207.1.0%20by%20%40fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202025%20Fonticons,%20Inc.--%3E%3Cpath%20d=%22M41-24.9c-9.4-9.4-24.6-9.4-33.9%200S-2.3-.3%207%209.1l528%20528c9.4%209.4%2024.6%209.4%2033.9%200s9.4-24.6%200-33.9l-96.4-96.4c2.7-2.4%205.4-4.8%208-7.2%2046.8-43.5%2078.1-95.4%2093-131.1%203.3-7.9%203.3-16.7%200-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8%200-105.6%2018.2-146%2044.2zm163.5%20163.6C228%20121.9%20256.9%20112%20288%20112c79.5%200%20144%2064.5%20144%20144%200%2031.1-9.9%2059.9-26.7%2083.5l-34.7-34.7c12.7-21.4%2017-47.7%2010.1-73.7-13.7-51.2-66.4-81.6-117.6-67.9-8.6%202.3-16.7%205.7-24%2010l-34.7-34.7zm120.8%20256.4c-11.9%203.2-24.4%204.9-37.3%204.9-79.5%200-144-64.5-144-144%200-12.9%201.7-25.4%204.9-37.3l-79.5-79.5C36.8%20176%2014.4%20215%202.5%20243.7c-3.3%207.9-3.3%2016.7%200%2024.6%2014.9%2035.7%2046.2%2087.7%2093%20131.1%2047.1%2043.7%20111.8%2080.6%20192.6%2080.6%2037.3%200%2071.2-7.9%20101.5-20.6l-64.2-64.2z%22/%3E%3C/svg%3E");}

/* ── Halaman Akun Saya: tab ubah email/password + kartu profil ── */
#page-admin-akun { background: #ffffff; }
.main:has(#page-admin-akun.active) { background: #ffffff; }

#page-admin-akun .akun-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; align-items: start; }
#page-admin-akun .akun-card { background: #ffffff; border: 1px solid #e5e9f2; border-radius: 10px; box-shadow: 0 2px 12px rgba(15,23,42,.07); overflow: hidden; }

/* tab */
#page-admin-akun .akun-tabs { display: flex; flex-wrap: wrap; padding: 0 10px; border-bottom: 1px solid #e5e9f2; background: #ffffff; }
#page-admin-akun .akun-tab {
  display: inline-flex; align-items: center; gap: 8px; margin-bottom: -1px; padding: 15px 18px;
  background: none; border: 1px solid transparent; border-bottom: 0; border-radius: 6px 6px 0 0;
  color: #525f7f; font-size: 14.5px; font-weight: 500; cursor: pointer; transition: color .15s, background .15s;
}
#page-admin-akun .akun-tab .ni { width: 14px; height: 14px; background-color: #525f7f; }
#page-admin-akun .akun-tab:hover { color: #32325d; background: #f8f9fe; }
#page-admin-akun .akun-tab.active { background: #ffffff; border-color: #e5e9f2; color: #32325d; font-weight: 600; }
#page-admin-akun .akun-tab.active .ni { background-color: #5e72e4; }
#page-admin-akun .akun-panel { display: none; padding: 28px 30px 32px; }
#page-admin-akun .akun-panel.active { display: block; }

/* isi formulir */
#page-admin-akun .akun-judul { margin: 0 0 6px; color: #32325d; font-size: 14px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; }
#page-admin-akun .akun-ket { margin: 0 0 22px; color: #8898aa; font-size: 13.5px; line-height: 1.5; }
#page-admin-akun .akun-field { margin-bottom: 18px; }
#page-admin-akun .akun-field label { display: block; margin: 0 0 8px; color: #525f7f; font-size: 15px; font-weight: 400; text-transform: none; letter-spacing: 0; }
#page-admin-akun .akun-opt { color: #8898aa; font-size: 12.5px; }
#page-admin-akun .akun-field input {
  display: block; width: 100%; height: 44px; padding: 0 14px; box-sizing: border-box;
  background: #ffffff !important; color: #495057 !important; border: 1px solid #dee2e6 !important; border-radius: 6px;
  font-size: 14px; box-shadow: none; transition: border-color .15s, box-shadow .15s;
}
#page-admin-akun .akun-field input::placeholder { color: #adb5bd !important; }
#page-admin-akun .akun-field input:focus { border-color: #5e72e4 !important; box-shadow: 0 0 0 3px rgba(94,114,228,.15) !important; outline: 0; }
#page-admin-akun .akun-field input[readonly] { background: #f6f9fc !important; color: #6b7a99 !important; cursor: not-allowed; }
#page-admin-akun .akun-pw { position: relative; }
#page-admin-akun .akun-pw input { padding-right: 48px; }
#page-admin-akun .akun-eye { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; background: none; border: 0; border-radius: 6px; cursor: pointer; }
#page-admin-akun .akun-eye .ni { width: 16px; height: 16px; background-color: #adb5bd; transition: background-color .15s; }
#page-admin-akun .akun-eye:hover .ni { background-color: #525f7f; }
#page-admin-akun .akun-garis { border: 0; border-top: 1px solid #e5e9f2; margin: 26px 0 22px; }
#page-admin-akun .akun-simpan {
  display: inline-flex; align-items: center; gap: 8px; padding: 11px 22px; background: #5e72e4; color: #ffffff; border: 0; border-radius: 6px;
  font-size: 14px; font-weight: 700; cursor: pointer; box-shadow: 0 4px 10px rgba(94,114,228,.35); transition: transform .15s, box-shadow .15s, background .15s;
}
#page-admin-akun .akun-simpan .ni { width: 14px; height: 14px; background-color: #ffffff; }
#page-admin-akun .akun-simpan:hover { background: #4f63d2; transform: translateY(-1px); box-shadow: 0 6px 14px rgba(94,114,228,.4); }

/* kartu profil */
#page-admin-akun .akun-cover {
  height: 216px;
  background:
    repeating-linear-gradient(115deg, rgba(255,255,255,0) 0 46px, rgba(255,255,255,.08) 46px 48px),
    linear-gradient(160deg, rgba(255,255,255,.14) 0 30%, rgba(255,255,255,0) 30% 100%),
    linear-gradient(135deg, #3b1d8f 0%, #8b2fc9 45%, #e0306b 100%);
}
#page-admin-akun .akun-avatar {
  position: relative; width: 112px; height: 112px; margin: -56px auto 0; border-radius: 50%; background: #ffffff;
  border: 4px solid #ffffff; box-shadow: 0 4px 16px rgba(15,23,42,.28); overflow: hidden;
  display: flex; align-items: center; justify-content: center; font-size: 44px;
}
#page-admin-akun .akun-avatar img { width: 100%; height: 100%; object-fit: contain; padding: 4px; box-sizing: border-box; }
#page-admin-akun .akun-nama-tampil { margin-top: 14px; padding: 0 16px; text-align: center; color: #32325d; font-size: 17px; font-weight: 700; word-break: break-word; }
#page-admin-akun .akun-online { display: table; margin: 8px auto 0; padding: 3px 11px; background: #c4f1f9; color: #0e7490; border-radius: 999px; font-size: 10px; font-weight: 700; letter-spacing: .6px; }
#page-admin-akun .akun-info { list-style: none; margin: 20px 22px 24px; padding: 0; }
#page-admin-akun .akun-info li { padding: 15px 12px; border-bottom: 2px solid #eef1f6; color: #525f7f; font-size: 15px; line-height: 1.4; word-break: break-word; }
#page-admin-akun .akun-info li:last-child { border-bottom: 0; }

@media (max-width: 960px) {
  #page-admin-akun .akun-layout { grid-template-columns: 1fr; }
  #page-admin-akun .akun-profil { order: -1; }
}