:root{
  --primary:#2563eb;
  --secondary:#7c3aed;
  --dark:#0f172a;
  --muted:#64748b;
  --success:#16a34a;
  --danger:#dc2626;
  --glass:rgba(255,255,255,.82);
}
*{box-sizing:border-box}
body{
  font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;
  min-height:100vh;
  color:#0f172a;
  background:
    radial-gradient(circle at top left, rgba(37,99,235,.22), transparent 32%),
    radial-gradient(circle at top right, rgba(124,58,237,.18), transparent 30%),
    linear-gradient(135deg,#eef4ff 0%,#ffffff 45%,#f6f3ff 100%);
}
.premium-bg{
  min-height:100vh;
  position:relative;
  overflow-x:hidden;
}
.premium-bg:before{
  content:"";
  position:fixed; inset:0;
  background-image:linear-gradient(rgba(15,23,42,.04) 1px, transparent 1px),linear-gradient(90deg,rgba(15,23,42,.04) 1px, transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent);
  pointer-events:none;
}
.glass-card{
  background:var(--glass);
  backdrop-filter: blur(18px);
  border:1px solid rgba(255,255,255,.9);
  box-shadow:0 24px 60px rgba(15,23,42,.12);
  border-radius:28px;
}
.brand-logo{
  width:72px;height:72px;object-fit:contain;border-radius:22px;
  background:white;padding:9px;box-shadow:0 18px 35px rgba(37,99,235,.18);
}
.hero-title{
  font-size:clamp(2rem,5vw,4.8rem);
  line-height:1.03;
  letter-spacing:-.05em;
  font-weight:900;
}
.gradient-text{
  background:linear-gradient(90deg,var(--primary),var(--secondary));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.btn-premium{
  border:0;border-radius:18px;padding:.85rem 1.2rem;font-weight:800;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  color:#fff!important;
  box-shadow:0 18px 35px rgba(37,99,235,.26);
}
.btn-premium:hover{filter:brightness(.98);transform:translateY(-1px)}
.form-control,.form-select{
  border-radius:16px;border:1px solid #dbe3ef;padding:.85rem 1rem;
}
.form-control:focus,.form-select:focus{box-shadow:0 0 0 .25rem rgba(37,99,235,.13);border-color:#93c5fd}
.badge-soft{
  border-radius:999px;padding:.55rem .85rem;background:#eff6ff;color:#1d4ed8;font-weight:800
}
.status-card{
  border-radius:30px;padding:28px;position:relative;overflow:hidden;
}
.status-lulus{
  background:linear-gradient(135deg,#dcfce7,#f0fdf4);
  border:1px solid #bbf7d0;
}
.status-tidak{
  background:linear-gradient(135deg,#fee2e2,#fff7ed);
  border:1px solid #fecaca;
}
.big-status{
  font-size:clamp(2.4rem,8vw,6rem);font-weight:950;letter-spacing:-.06em;
}
.sidebar{
  min-height:100vh;background:#0f172a;color:white;position:sticky;top:0;
}
.sidebar a{
  color:#cbd5e1;text-decoration:none;display:flex;gap:10px;align-items:center;
  padding:13px 16px;border-radius:16px;margin-bottom:6px;font-weight:700;
}
.sidebar a:hover,.sidebar a.active{background:rgba(255,255,255,.1);color:#fff}
.admin-card{
  background:white;border:0;border-radius:24px;box-shadow:0 16px 45px rgba(15,23,42,.08);
}
.table thead th{background:#f8fafc;color:#475569;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}
.table td,.table th{vertical-align:middle}
.action-btn{border-radius:12px}
.print-area{background:white}
@media print{
  body{background:white!important}
  .no-print{display:none!important}
  .print-area{box-shadow:none!important;border:0!important}
}
@media(max-width:991px){
  .sidebar{min-height:auto;position:relative}
}


/* THEME PACK */
body.theme-blue{--primary:#2563eb;--secondary:#7c3aed;}
body.theme-green{--primary:#059669;--secondary:#10b981;}
body.theme-red{--primary:#dc2626;--secondary:#f97316;}
body.theme-purple{--primary:#7c3aed;--secondary:#db2777;}
body.theme-gold{--primary:#b45309;--secondary:#f59e0b;}
body.theme-dark{--primary:#0f172a;--secondary:#334155;background:linear-gradient(135deg,#0f172a,#1e293b)!important;color:#e2e8f0;}
body.theme-dark .admin-card,body.theme-dark .glass-card{background:rgba(15,23,42,.88);color:#e2e8f0;border:1px solid rgba(255,255,255,.1)}
body.theme-dark .table{color:#e2e8f0}
body.theme-dark .table thead th{background:#1e293b;color:#cbd5e1}
body.theme-dark .form-control,body.theme-dark .form-select{background:#0f172a;color:#e2e8f0;border-color:#334155}
.modal-content{border:0;border-radius:26px;box-shadow:0 28px 80px rgba(15,23,42,.22)}
.modal-header{border-bottom:1px solid #eef2f7}
.modal-footer{border-top:1px solid #eef2f7}
.pagination .page-link{border-radius:12px;margin:0 3px;color:var(--primary);font-weight:700}
.pagination .active .page-link{background:linear-gradient(135deg,var(--primary),var(--secondary));border-color:transparent}
.btn-icon{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px}


/* PROFESSIONAL MODAL UPGRADE */
.modal-backdrop.show{
  opacity:.42;
  backdrop-filter: blur(8px);
}
.modal.fade .modal-dialog{
  transform: translateY(18px) scale(.97);
  transition: transform .22s ease-out;
}
.modal.show .modal-dialog{
  transform: translateY(0) scale(1);
}
.premium-modal{
  border:0!important;
  border-radius:30px!important;
  overflow:hidden;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(20px);
  box-shadow:0 35px 100px rgba(15,23,42,.28)!important;
}
.premium-modal .modal-header{
  position:relative;
  padding:22px 26px;
  border:0!important;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.26), transparent 34%),
    linear-gradient(135deg,var(--primary),var(--secondary));
  color:#fff;
}
.premium-modal .modal-title{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:1.12rem;
  letter-spacing:-.01em;
}
.modal-icon{
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:16px;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22);
}
.premium-modal .btn-close{
  width:38px;
  height:38px;
  border-radius:14px;
  background-color:rgba(255,255,255,.20);
  opacity:1;
  filter:invert(1) grayscale(100%) brightness(200%);
}
.premium-modal .modal-body{
  padding:26px;
  background:
    linear-gradient(180deg,rgba(248,250,252,.92),rgba(255,255,255,.98));
}
.premium-modal .modal-footer{
  padding:18px 26px 24px;
  border:0!important;
  background:#fff;
}
.premium-modal .form-label{
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.055em;
  font-weight:900;
  color:#475569;
  margin-bottom:7px;
}
.premium-modal .form-control,
.premium-modal .form-select{
  min-height:48px;
  border-radius:16px;
  background:#fff;
  border:1px solid #dbe3ef;
  box-shadow:0 8px 22px rgba(15,23,42,.035);
}
.premium-modal textarea.form-control{
  min-height:96px;
}
.premium-modal .form-control:focus,
.premium-modal .form-select:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 .25rem rgba(37,99,235,.13),0 14px 28px rgba(15,23,42,.06);
}
.modal-section-title{
  display:flex;
  align-items:center;
  gap:10px;
  color:#0f172a;
  font-size:.86rem;
  font-weight:900;
  margin:3px 0 12px;
}
.modal-section-title:before{
  content:"";
  width:9px;
  height:9px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  box-shadow:0 0 0 5px rgba(37,99,235,.11);
}
.btn-modal-cancel{
  border-radius:16px!important;
  font-weight:800!important;
  padding:.75rem 1.25rem!important;
  background:#f8fafc!important;
  border:1px solid #e2e8f0!important;
}
.btn-modal-save{
  border-radius:16px!important;
  padding:.78rem 1.35rem!important;
  min-width:150px;
}
.swal2-popup{
  border-radius:28px!important;
  padding:26px!important;
  box-shadow:0 35px 90px rgba(15,23,42,.24)!important;
}
.swal2-title{
  font-size:1.35rem!important;
  letter-spacing:-.03em!important;
}
.swal2-confirm,.swal2-cancel{
  border-radius:14px!important;
  padding:.75rem 1.1rem!important;
  font-weight:800!important;
}
body.theme-dark .premium-modal{
  background:rgba(15,23,42,.96);
}
body.theme-dark .premium-modal .modal-body,
body.theme-dark .premium-modal .modal-footer{
  background:#0f172a;
}
body.theme-dark .premium-modal .modal-section-title,
body.theme-dark .premium-modal .form-label{
  color:#e2e8f0;
}


/* THEME FIX - APPLY TO FULL UI */
body.theme-blue{
  --primary:#2563eb;--secondary:#7c3aed;
  background:radial-gradient(circle at top left,rgba(37,99,235,.24),transparent 32%),radial-gradient(circle at top right,rgba(124,58,237,.20),transparent 30%),linear-gradient(135deg,#eef4ff 0%,#ffffff 45%,#f6f3ff 100%)!important;
}
body.theme-green{
  --primary:#059669;--secondary:#10b981;
  background:radial-gradient(circle at top left,rgba(5,150,105,.24),transparent 32%),radial-gradient(circle at top right,rgba(16,185,129,.18),transparent 30%),linear-gradient(135deg,#ecfdf5 0%,#ffffff 48%,#f0fdfa 100%)!important;
}
body.theme-red{
  --primary:#dc2626;--secondary:#f97316;
  background:radial-gradient(circle at top left,rgba(220,38,38,.20),transparent 32%),radial-gradient(circle at top right,rgba(249,115,22,.18),transparent 30%),linear-gradient(135deg,#fff1f2 0%,#ffffff 48%,#fff7ed 100%)!important;
}
body.theme-purple{
  --primary:#7c3aed;--secondary:#db2777;
  background:radial-gradient(circle at top left,rgba(124,58,237,.23),transparent 32%),radial-gradient(circle at top right,rgba(219,39,119,.18),transparent 30%),linear-gradient(135deg,#f5f3ff 0%,#ffffff 48%,#fdf2f8 100%)!important;
}
body.theme-gold{
  --primary:#b45309;--secondary:#f59e0b;
  background:radial-gradient(circle at top left,rgba(180,83,9,.20),transparent 32%),radial-gradient(circle at top right,rgba(245,158,11,.18),transparent 30%),linear-gradient(135deg,#fffbeb 0%,#ffffff 48%,#fff7ed 100%)!important;
}
body.theme-dark{
  --primary:#38bdf8;--secondary:#818cf8;
  background:radial-gradient(circle at top left,rgba(56,189,248,.17),transparent 32%),radial-gradient(circle at top right,rgba(129,140,248,.15),transparent 30%),linear-gradient(135deg,#020617 0%,#0f172a 55%,#111827 100%)!important;
  color:#e2e8f0;
}
body.theme-blue .premium-bg,
body.theme-green .premium-bg,
body.theme-red .premium-bg,
body.theme-purple .premium-bg,
body.theme-gold .premium-bg,
body.theme-dark .premium-bg{
  background:transparent!important;
}
body.theme-green .sidebar{background:linear-gradient(180deg,#064e3b,#022c22)}
body.theme-red .sidebar{background:linear-gradient(180deg,#7f1d1d,#450a0a)}
body.theme-purple .sidebar{background:linear-gradient(180deg,#3b0764,#1e1b4b)}
body.theme-gold .sidebar{background:linear-gradient(180deg,#78350f,#451a03)}
body.theme-dark .sidebar{background:linear-gradient(180deg,#020617,#0f172a)}
body.theme-dark .text-muted{color:#94a3b8!important}

/* THEME PREVIEW */
.theme-preview{
  padding:20px 14px;
  border-radius:22px;
  color:#fff;
  font-weight:900;
  text-align:center;
  cursor:pointer;
  box-shadow:0 18px 35px rgba(15,23,42,.13);
  border:1px solid rgba(255,255,255,.55);
  transition:.2s ease;
}
.theme-preview:hover{transform:translateY(-4px) scale(1.02)}
.theme-preview-blue{background:linear-gradient(135deg,#2563eb,#7c3aed)}
.theme-preview-green{background:linear-gradient(135deg,#059669,#10b981)}
.theme-preview-red{background:linear-gradient(135deg,#dc2626,#f97316)}
.theme-preview-purple{background:linear-gradient(135deg,#7c3aed,#db2777)}
.theme-preview-gold{background:linear-gradient(135deg,#b45309,#f59e0b)}
.theme-preview-dark{background:linear-gradient(135deg,#020617,#334155)}

/* LUXURY MODAL - EXPENSIVE APP STYLE */
.modal-backdrop.show{
  opacity:.50!important;
  backdrop-filter: blur(16px) saturate(130%);
}
.modal.fade .modal-dialog{
  transform:translateY(26px) scale(.965);
  transition:transform .28s cubic-bezier(.2,.9,.2,1), opacity .28s ease;
}
.modal.show .modal-dialog{
  transform:translateY(0) scale(1);
}
.premium-modal{
  position:relative;
  border:1px solid rgba(255,255,255,.68)!important;
  border-radius:34px!important;
  overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,255,255,.82))!important;
  backdrop-filter:blur(26px) saturate(150%);
  box-shadow:
    0 40px 120px rgba(15,23,42,.30),
    0 0 0 1px rgba(255,255,255,.45) inset!important;
}
.premium-modal:before{
  content:"";
  position:absolute;
  inset:0;
  padding:1px;
  border-radius:34px;
  background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(255,255,255,.1),rgba(255,255,255,.7));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
  z-index:3;
}
.premium-modal .modal-header{
  padding:25px 30px!important;
  border:0!important;
  background:
    radial-gradient(circle at 92% 15%,rgba(255,255,255,.35),transparent 22%),
    radial-gradient(circle at 10% 0%,rgba(255,255,255,.20),transparent 28%),
    linear-gradient(135deg,var(--primary),var(--secondary))!important;
  color:#fff;
}
.premium-modal .modal-title{
  display:flex!important;
  align-items:center;
  gap:14px;
  font-size:1.18rem;
  font-weight:950!important;
  letter-spacing:-.02em;
}
.modal-icon{
  width:48px!important;
  height:48px!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:18px!important;
  background:rgba(255,255,255,.18)!important;
  border:1px solid rgba(255,255,255,.34)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.35),
    0 18px 34px rgba(0,0,0,.12)!important;
}
.premium-modal .btn-close{
  width:42px!important;
  height:42px!important;
  border-radius:16px!important;
  background-color:rgba(255,255,255,.22)!important;
  border:1px solid rgba(255,255,255,.20);
  opacity:1!important;
  filter:invert(1) grayscale(100%) brightness(230%);
  transition:.18s ease;
}
.premium-modal .btn-close:hover{
  transform:rotate(90deg) scale(1.05);
  background-color:rgba(255,255,255,.32)!important;
}
.premium-modal .modal-body{
  padding:30px!important;
  background:
    radial-gradient(circle at top right,rgba(37,99,235,.055),transparent 28%),
    linear-gradient(180deg,rgba(248,250,252,.96),rgba(255,255,255,.98))!important;
}
.premium-modal .modal-footer{
  padding:20px 30px 28px!important;
  border:0!important;
  background:linear-gradient(180deg,#ffffff,#f8fafc)!important;
}
.premium-modal .form-label{
  font-size:.75rem!important;
  text-transform:uppercase;
  letter-spacing:.065em;
  font-weight:950!important;
  color:#334155!important;
  margin-bottom:8px!important;
}
.premium-modal .form-control,
.premium-modal .form-select{
  min-height:50px;
  border-radius:18px!important;
  background:rgba(255,255,255,.94)!important;
  border:1px solid #dce6f3!important;
  box-shadow:
    0 12px 26px rgba(15,23,42,.045),
    inset 0 1px 0 rgba(255,255,255,.8)!important;
  transition:.16s ease;
}
.premium-modal .form-control:hover,
.premium-modal .form-select:hover{
  border-color:#cbd5e1!important;
  transform:translateY(-1px);
}
.premium-modal .form-control:focus,
.premium-modal .form-select:focus{
  border-color:var(--primary)!important;
  box-shadow:
    0 0 0 .25rem rgba(37,99,235,.13),
    0 18px 36px rgba(15,23,42,.075)!important;
}
.premium-modal textarea.form-control{min-height:104px}
.modal-section-title{
  display:flex!important;
  align-items:center;
  gap:12px;
  color:#0f172a!important;
  font-size:.88rem;
  font-weight:950;
  margin:3px 0 14px;
}
.modal-section-title:before{
  content:"";
  width:11px;
  height:11px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  box-shadow:0 0 0 6px rgba(37,99,235,.10);
}
.btn-modal-cancel{
  border-radius:18px!important;
  font-weight:900!important;
  padding:.82rem 1.35rem!important;
  background:#f8fafc!important;
  border:1px solid #e2e8f0!important;
  color:#334155!important;
}
.btn-modal-save{
  border-radius:18px!important;
  padding:.84rem 1.45rem!important;
  min-width:165px;
  box-shadow:0 20px 38px rgba(37,99,235,.25)!important;
}
.swal2-popup{
  border-radius:32px!important;
  padding:30px!important;
  background:rgba(255,255,255,.96)!important;
  backdrop-filter:blur(22px)!important;
  box-shadow:0 44px 120px rgba(15,23,42,.28)!important;
}
.swal2-title{
  font-size:1.45rem!important;
  font-weight:950!important;
  letter-spacing:-.04em!important;
}
.swal2-html-container{color:#64748b!important}
.swal2-confirm,.swal2-cancel{
  border-radius:16px!important;
  padding:.84rem 1.2rem!important;
  font-weight:900!important;
}
body.theme-dark .premium-modal{
  background:linear-gradient(180deg,rgba(15,23,42,.92),rgba(2,6,23,.94))!important;
  border-color:rgba(148,163,184,.25)!important;
}
body.theme-dark .premium-modal .modal-body{
  background:linear-gradient(180deg,#0f172a,#020617)!important;
}
body.theme-dark .premium-modal .modal-footer{
  background:linear-gradient(180deg,#020617,#0f172a)!important;
}
body.theme-dark .premium-modal .form-label,
body.theme-dark .premium-modal .modal-section-title{
  color:#e2e8f0!important;
}
body.theme-dark .premium-modal .form-control,
body.theme-dark .premium-modal .form-select{
  background:#0f172a!important;
  color:#e2e8f0!important;
  border-color:#334155!important;
}


/* STATUS KELULUSAN SELECT FINAL */
.status-kelulusan-select{
  font-weight:800!important;
  border-radius:16px!important;
}
.status-lulus-select{
  background:#16a34a!important;
  color:#fff!important;
  border-color:#16a34a!important;
}
.status-tidak-select{
  background:#dc2626!important;
  color:#fff!important;
  border-color:#dc2626!important;
}
.status-tangguh-select{
  background:#facc15!important;
  color:#111827!important;
  border-color:#facc15!important;
}
