:root{--sidebar:#102a43;--sidebar2:#0b1f33;--brand:#0d6efd}body{background:#f4f7fb;color:#1f2937}.app-shell{min-height:100vh}.sidebar{width:260px;background:linear-gradient(180deg,var(--sidebar),var(--sidebar2));color:#fff;position:fixed;inset:0 auto 0 0;overflow-y:auto;z-index:1030}.sidebar-brand{padding:1.25rem;border-bottom:1px solid #ffffff1a}.sidebar .nav-link{color:#dce7f3;border-radius:.65rem;margin:.15rem .75rem;padding:.7rem .85rem}.sidebar .nav-link:hover,.sidebar .nav-link.active{background:#ffffff1a;color:#fff}.main{margin-left:260px;min-height:100vh}.topbar{background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:1020}.content{padding:1.5rem}.card{border-radius:1rem}.stat-card .icon{width:48px;height:48px;display:grid;place-items:center;border-radius:.85rem;background:#e8f1ff;color:#0d6efd;font-size:1.35rem}.table-clean{table-layout:fixed;min-width:980px}.table-clean th{white-space:nowrap;background:#f8fafc}.table-clean td{vertical-align:middle}.col-id{width:110px}.col-name{width:260px}.col-level{width:90px}.col-parallel{width:100px}.col-status{width:100px}.col-actions{width:250px}.login-page{min-height:100vh;background:linear-gradient(135deg,#edf4ff,#f8fafc)}.login-card{border:0;box-shadow:0 1rem 3rem #102a4317}.login-choice{transition:.2s}.login-choice:hover{transform:translateY(-4px);box-shadow:0 1rem 2rem #102a4318}.option-card:has(input:checked){border-color:#0d6efd;background:#eef5ff}.sticky-exam{position:sticky;top:88px}.impersonation-bar{background:#fff3cd;border-bottom:1px solid #ffe69c;padding:.55rem 1rem}.password-result{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.05rem}@media(max-width:991.98px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.show{transform:none}.main{margin-left:0}.content{padding:1rem}.table-clean{min-width:900px}}


/* Update v2.0.3: pastikan tulisan tabel guru dan siswa terlihat jelas */
.teacher-data-table,
.student-data-table{color:#111827!important}
.teacher-data-table thead th,
.teacher-data-table tbody td,
.teacher-data-table tbody td strong,
.teacher-data-table tbody td .small,
.teacher-data-table tbody td .text-muted,
.student-data-table thead th,
.student-data-table tbody td,
.student-data-table tbody td strong,
.student-data-table tbody td .small,
.student-data-table tbody td .text-muted{color:#111827!important}
.teacher-data-table .badge,
.student-data-table .badge{color:#111827!important;font-weight:700;border:1px solid rgba(17,24,39,.18)}
.teacher-data-table .text-bg-info{background-color:#dbeafe!important;color:#111827!important}
.teacher-data-table .text-bg-success,
.student-data-table .text-bg-success{background-color:#dcfce7!important;color:#111827!important}
.teacher-data-table .text-bg-secondary,
.student-data-table .text-bg-secondary{background-color:#e5e7eb!important;color:#111827!important}
.student-data-table .text-bg-primary{background-color:#dbeafe!important;color:#111827!important}
.teacher-data-table tbody tr,
.student-data-table tbody tr{color:#111827!important}


/* Update v2.0.4: dashboard/data diri siswa */
.student-avatar{width:58px;height:58px;display:grid;place-items:center;border-radius:1rem;background:#e8f1ff;color:#0d6efd;font-size:1.8rem;flex:0 0 auto}
.profile-item{height:100%;padding:1rem;border:1px solid #e5e7eb;border-radius:.85rem;background:#f8fafc}
.profile-label{font-size:.78rem;color:#6b7280;margin-bottom:.2rem;text-transform:uppercase;letter-spacing:.03em}
.profile-value{font-weight:700;color:#111827;word-break:break-word}
.student-activity-table thead th{background:#f8fafc;white-space:nowrap}
.student-activity-table td{vertical-align:middle}
@media(max-width:767.98px){.student-profile-card .card-body{padding:1.15rem!important}.student-activity-table{min-width:820px}}

/* Update v2.1.0: warna teks hitam/gelap untuk seluruh role dan menu */
body,.main,.content,.card,.card-body,.modal-content,.dropdown-menu,.table,.form-label,.form-check-label,.form-text,.input-group-text,.profile-value{color:#111827!important}
.text-muted,.form-text,.small.text-muted{color:#374151!important}
.table>:not(caption)>*>*,.table thead th,.table tbody td{color:#111827!important}
.form-control,.form-select,.form-control:focus,.form-select:focus{color:#111827!important;background-color:#fff!important}
.form-control::placeholder{color:#6b7280!important;opacity:1}
.modal-title,.modal-body,.modal-footer,.alert,.alert *{color:#111827}
.sidebar{background:linear-gradient(180deg,#ffffff,#eef2f7)!important;color:#111827!important;border-right:1px solid #dbe2ea}
.sidebar-brand{border-bottom:1px solid #dbe2ea!important;color:#111827!important}
.sidebar-brand .text-white-50{color:#374151!important}
.sidebar .nav-link{color:#111827!important;font-weight:600}
.sidebar .nav-link:hover,.sidebar .nav-link.active{background:#dbeafe!important;color:#111827!important}
.sidebar hr{border-color:#cbd5e1!important;opacity:1!important}
.topbar{color:#111827!important}
.badge.text-bg-primary{background:#dbeafe!important;color:#111827!important}
.badge.text-bg-success{background:#dcfce7!important;color:#111827!important}
.badge.text-bg-secondary{background:#e5e7eb!important;color:#111827!important}
.badge.text-bg-info{background:#cff4fc!important;color:#111827!important}

/* Update v2.2.0: UI ujian siswa satu soal per layar */
.student-ui{font-size:.92rem}
.student-ui .content{padding:1.1rem}
.student-ui .sidebar .nav-link{font-size:.88rem;padding:.55rem .72rem;margin:.1rem .65rem}
.student-ui .topbar{font-size:.88rem}
.student-ui .btn{font-size:.82rem;padding:.38rem .68rem;line-height:1.25;white-space:nowrap}
.student-ui .btn-sm{font-size:.78rem;padding:.3rem .58rem}
.student-ui .form-control,.student-ui .form-select{font-size:.88rem;padding:.45rem .65rem}
.student-ui .badge{font-size:.72rem}
.student-ui h1,.student-ui h2,.student-ui h3,.student-ui h4,.student-ui h5,.student-ui h6{line-height:1.25}
.student-token-box{display:inline-flex;align-items:center;gap:.38rem;border:1px solid #86efac;background:#dcfce7;color:#14532d;border-radius:.55rem;padding:.32rem .5rem;font-size:.76rem;line-height:1;box-shadow:0 .1rem .35rem #0000000a}
.student-token-box strong{font-size:.86rem;letter-spacing:.08em;color:#14532d}
.student-token-label{font-size:.62rem;font-weight:800;letter-spacing:.05em;color:#166534}
.exam-entry-card{overflow:hidden}
.exam-timer{font-size:1.84rem!important;padding:.72rem .9rem;min-width:7.2rem;text-align:center;letter-spacing:.04em}.exam-timer-expired{animation:none!important}
.exam-question-card{min-height:430px}
.question-panel[hidden]{display:none!important}
.exam-question-count{font-size:.78rem;color:#6b7280}
.exam-question-text{font-size:.95rem;line-height:1.55;color:#111827}
.exam-options .option-card{border-radius:.7rem;cursor:pointer;transition:border-color .15s,background-color .15s}
.exam-options .option-card .card-body{font-size:.9rem;line-height:1.45}
.exam-image-wrap{text-align:center;background:#f8fafc;border:1px solid #e5e7eb;border-radius:.75rem;padding:.5rem}
.exam-question-image{display:block;width:auto;height:auto;max-width:min(100%,420px);max-height:280px;object-fit:contain;margin:0 auto}
.question-number-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.42rem}
.qnav{appearance:none;border:1px solid #cbd5e1;background:#fff;color:#111827;border-radius:.48rem;aspect-ratio:1/1;min-width:0;font-size:.78rem;font-weight:700;display:grid;place-items:center;padding:0;transition:.15s}
.qnav:hover{border-color:#64748b;background:#f8fafc}
.qnav.is-current{box-shadow:0 0 0 2px #2563eb55;border-color:#2563eb}
.qnav.is-answered{background:#22c55e;border-color:#16a34a;color:#fff}
.qnav.is-doubtful{background:#facc15;border-color:#eab308;color:#422006}
.exam-legend{display:grid;gap:.35rem;color:#4b5563}
.legend-dot{display:inline-block;width:.65rem;height:.65rem;border-radius:.2rem;border:1px solid #cbd5e1;vertical-align:-.05rem;margin-right:.18rem;background:#fff}
.legend-dot.answered{background:#22c55e;border-color:#16a34a}
.legend-dot.doubtful{background:#facc15;border-color:#eab308}
.exam-actions{align-items:center}
.doubt-indicator{font-size:.7rem!important}
.student-exam-card h2{padding-right:.25rem}
@media(max-width:991.98px){.student-ui .content{padding:.85rem}.sticky-exam{position:static}.exam-nav-card{margin-top:.2rem}.question-number-grid{grid-template-columns:repeat(10,minmax(0,1fr))}.exam-question-card{min-height:0}}
@media(max-width:575.98px){.student-ui{font-size:.88rem}.student-ui .content{padding:.65rem}.student-ui .btn{font-size:.76rem;padding:.34rem .52rem}.student-ui .sidebar .nav-link{font-size:.84rem}.exam-topbar{align-items:center!important}.exam-question-card .card-body{padding:.85rem!important}.exam-question-text{font-size:.9rem}.exam-options .option-card .card-body{font-size:.84rem;padding:.5rem .65rem!important}.exam-question-image{max-width:100%;max-height:210px}.question-number-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:.32rem}.qnav{font-size:.7rem}.exam-actions{display:grid!important;grid-template-columns:1fr 1fr}.exam-actions>.btn{width:100%}.exam-actions>div{display:grid!important;grid-template-columns:1fr 1fr;width:100%;grid-column:1/-1;margin-left:0!important}.student-token-box{padding:.28rem .42rem}.student-token-box strong{font-size:.8rem}}

/* Update v2.3.0: seluruh teks role hitam + ukuran UI compact/sm */
.app-shell{font-size:.88rem;color:#111827!important}
.app-shell h1,.app-shell h2,.app-shell h3,.app-shell h4,.app-shell h5,.app-shell h6,
.app-shell p,.app-shell div,.app-shell span,.app-shell small,.app-shell strong,
.app-shell label,.app-shell a,.app-shell td,.app-shell th,.app-shell li,.app-shell code,
.app-shell .nav-link,.app-shell .dropdown-item,.app-shell .form-label,.app-shell .form-check-label,
.app-shell .form-text,.app-shell .input-group-text,.app-shell .modal-title,.app-shell .modal-body,
.app-shell .modal-footer,.app-shell .alert,.app-shell .alert *{color:#111827!important}

/* Status ujian CLOSED/Close wajib hitam dan mudah dibaca */
.app-shell .badge.text-bg-dark{background-color:#e5e7eb!important;border:1px solid #cbd5e1!important;color:#111827!important}
.app-shell .badge.text-bg-danger{background-color:#fee2e2!important;color:#111827!important}
.app-shell .badge.text-bg-warning{background-color:#fef3c7!important;color:#111827!important}
.app-shell .badge,.app-shell .badge *{color:#111827!important}

/* Semua tombol di admin, guru, dan siswa dibuat ukuran small/compact */
.app-shell .btn,
.app-shell .btn-sm,
.app-shell .btn-lg{font-size:.78rem!important;padding:.3rem .56rem!important;line-height:1.2!important;border-radius:.4rem!important;color:#111827!important;white-space:nowrap}
.app-shell .btn i{color:#111827!important}

/* Tombol solid dibuat lebih terang agar teks hitam tetap jelas */
.app-shell .btn-primary{background:#dbeafe!important;border-color:#93c5fd!important;color:#111827!important}
.app-shell .btn-success{background:#dcfce7!important;border-color:#86efac!important;color:#111827!important}
.app-shell .btn-danger{background:#fee2e2!important;border-color:#fca5a5!important;color:#111827!important}
.app-shell .btn-warning{background:#fef3c7!important;border-color:#fcd34d!important;color:#111827!important}
.app-shell .btn-info{background:#cffafe!important;border-color:#67e8f9!important;color:#111827!important}
.app-shell .btn-dark{background:#e5e7eb!important;border-color:#94a3b8!important;color:#111827!important}
.app-shell .btn-secondary{background:#e5e7eb!important;border-color:#cbd5e1!important;color:#111827!important}

/* Form, tabel, badge, dan navigasi ikut dibuat lebih ringkas */
.app-shell .form-control,.app-shell .form-select,.app-shell .input-group-text{font-size:.82rem!important;padding:.36rem .55rem!important;min-height:auto}
.app-shell textarea.form-control{line-height:1.35}
.app-shell .table{font-size:.82rem}
.app-shell .table>:not(caption)>*>*{padding:.48rem .5rem}
.app-shell .badge{font-size:.68rem!important;padding:.28rem .46rem!important}
.app-shell .sidebar .nav-link{font-size:.82rem!important;padding:.48rem .68rem!important;margin:.08rem .6rem!important}
.app-shell .topbar{font-size:.82rem!important}
.app-shell .card-body{font-size:.86rem}
.app-shell .qnav.is-answered{color:#111827!important}

/* Heading tetap memiliki hirarki namun lebih compact */
.app-shell h1,.app-shell .h1{font-size:1.45rem!important}
.app-shell h2,.app-shell .h2{font-size:1.3rem!important}
.app-shell h3,.app-shell .h3{font-size:1.18rem!important}
.app-shell h4,.app-shell .h4{font-size:1.05rem!important}
.app-shell h5,.app-shell .h5{font-size:.96rem!important}
.app-shell h6,.app-shell .h6{font-size:.9rem!important}

@media(max-width:575.98px){
  .app-shell{font-size:.84rem}
  .app-shell .btn,.app-shell .btn-sm,.app-shell .btn-lg{font-size:.74rem!important;padding:.28rem .48rem!important}
  .app-shell .table{font-size:.78rem}
  .app-shell .form-control,.app-shell .form-select,.app-shell .input-group-text{font-size:.79rem!important}
}
/* Hover tombol outline tetap terang supaya teks hitam terbaca */
.app-shell .btn-outline-primary:hover,.app-shell .btn-outline-primary:focus{background:#dbeafe!important;border-color:#93c5fd!important;color:#111827!important}
.app-shell .btn-outline-success:hover,.app-shell .btn-outline-success:focus{background:#dcfce7!important;border-color:#86efac!important;color:#111827!important}
.app-shell .btn-outline-danger:hover,.app-shell .btn-outline-danger:focus{background:#fee2e2!important;border-color:#fca5a5!important;color:#111827!important}
.app-shell .btn-outline-warning:hover,.app-shell .btn-outline-warning:focus{background:#fef3c7!important;border-color:#fcd34d!important;color:#111827!important}
.app-shell .btn-outline-info:hover,.app-shell .btn-outline-info:focus{background:#cffafe!important;border-color:#67e8f9!important;color:#111827!important}
.app-shell .btn-outline-dark:hover,.app-shell .btn-outline-dark:focus,.app-shell .btn-outline-secondary:hover,.app-shell .btn-outline-secondary:focus{background:#e5e7eb!important;border-color:#94a3b8!important;color:#111827!important}

/* Update v2.4.0: pilihan tema global dengan kontras teks yang aman */
.theme-picker .theme-choice{display:block;cursor:pointer;position:relative}
.theme-picker .theme-choice input{position:absolute;opacity:0;pointer-events:none}
.theme-preview{display:flex;min-height:96px;flex-direction:column;justify-content:center;gap:.35rem;padding:1rem;border:2px solid transparent;border-radius:.85rem;box-shadow:0 .25rem .8rem #00000012;transition:.16s}
.theme-preview strong{font-size:.9rem!important}.theme-preview small{font-size:.73rem!important}
.theme-preview-light{background:linear-gradient(135deg,#fff,#edf4ff);color:#111827!important;border-color:#dbe2ea}
.theme-preview-light *{color:#111827!important}
.theme-preview-dark{background:linear-gradient(135deg,#0f172a,#1e293b);color:#f8fafc!important;border-color:#334155}
.theme-preview-dark *{color:#f8fafc!important}
.theme-preview-attractive{background:linear-gradient(135deg,#ede9fe,#dbeafe 55%,#fce7f3);color:#312e81!important;border-color:#c4b5fd}
.theme-preview-attractive *{color:#312e81!important}
.theme-choice input:checked+.theme-preview{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb30,0 .4rem 1rem #00000018;transform:translateY(-1px)}

/* Tema terang */
body.theme-light{background:#f4f7fb;color:#111827;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
body.theme-light .main,body.theme-light .content{background:#f4f7fb}
body.theme-light .card,body.theme-light .modal-content,body.theme-light .dropdown-menu{background:#fff;border-color:#e5e7eb}
body.theme-light .topbar{background:#fff;border-color:#e5e7eb}
body.theme-light .sidebar{background:linear-gradient(180deg,#fff,#eef2f7)!important;border-color:#dbe2ea}
body.theme-light .sidebar .nav-link{color:#111827!important}
body.theme-light .sidebar .nav-link:hover,body.theme-light .sidebar .nav-link.active{background:#dbeafe!important;color:#111827!important}

/* Tema gelap: seluruh komponen mengikuti latar gelap dan teks terang */
body.theme-dark{background:#0b1120;color:#e5e7eb;font-family:"Segoe UI",Roboto,Arial,sans-serif}
body.theme-dark .main,body.theme-dark .content{background:#0b1120!important;color:#e5e7eb!important}
body.theme-dark .app-shell,
body.theme-dark .app-shell h1,body.theme-dark .app-shell h2,body.theme-dark .app-shell h3,body.theme-dark .app-shell h4,body.theme-dark .app-shell h5,body.theme-dark .app-shell h6,
body.theme-dark .app-shell p,body.theme-dark .app-shell div,body.theme-dark .app-shell span,body.theme-dark .app-shell small,body.theme-dark .app-shell strong,
body.theme-dark .app-shell label,body.theme-dark .app-shell a,body.theme-dark .app-shell td,body.theme-dark .app-shell th,body.theme-dark .app-shell li,body.theme-dark .app-shell code,
body.theme-dark .app-shell .form-label,body.theme-dark .app-shell .form-check-label,body.theme-dark .app-shell .modal-title,body.theme-dark .app-shell .modal-body,body.theme-dark .app-shell .modal-footer{color:#e5e7eb!important}
body.theme-dark .app-shell .text-muted,body.theme-dark .app-shell .form-text,body.theme-dark .app-shell .small.text-muted,body.theme-dark .profile-label,body.theme-dark .exam-question-count,body.theme-dark .exam-legend{color:#cbd5e1!important}
body.theme-dark .sidebar{background:linear-gradient(180deg,#020617,#111827)!important;color:#f8fafc!important;border-right:1px solid #334155!important}
body.theme-dark .sidebar-brand{border-color:#334155!important;color:#f8fafc!important}
body.theme-dark .sidebar-brand .text-white-50{color:#cbd5e1!important}
body.theme-dark .sidebar .nav-link{color:#e2e8f0!important}
body.theme-dark .sidebar .nav-link i{color:#cbd5e1!important}
body.theme-dark .sidebar .nav-link:hover,body.theme-dark .sidebar .nav-link.active{background:#1e3a5f!important;color:#fff!important}
body.theme-dark .sidebar .nav-link:hover i,body.theme-dark .sidebar .nav-link.active i{color:#fff!important}
body.theme-dark .topbar{background:#111827!important;border-color:#334155!important;color:#f8fafc!important}
body.theme-dark .card,body.theme-dark .modal-content,body.theme-dark .dropdown-menu{background:#111827!important;border-color:#334155!important;color:#e5e7eb!important;box-shadow:0 .5rem 1.5rem #0004!important}
body.theme-dark .card-header,body.theme-dark .card-footer{background:#0f172a!important;border-color:#334155!important;color:#e5e7eb!important}
body.theme-dark .profile-item,body.theme-dark .exam-image-wrap{background:#0f172a!important;border-color:#334155!important}
body.theme-dark .profile-value,body.theme-dark .exam-question-text{color:#f8fafc!important}
body.theme-dark .table{--bs-table-color:#e5e7eb;--bs-table-bg:#111827;--bs-table-border-color:#334155;--bs-table-striped-color:#f8fafc;--bs-table-striped-bg:#172033;--bs-table-hover-color:#fff;--bs-table-hover-bg:#1e293b;color:#e5e7eb!important}
body.theme-dark .table>:not(caption)>*>*,body.theme-dark .table thead th,body.theme-dark .table tbody td,body.theme-dark .table-clean th,body.theme-dark .student-activity-table thead th{background-color:#111827!important;color:#e5e7eb!important;border-color:#334155!important}
body.theme-dark .table thead th,body.theme-dark .table-clean th,body.theme-dark .student-activity-table thead th{background:#1e293b!important;color:#f8fafc!important}
body.theme-dark .teacher-data-table,body.theme-dark .student-data-table,
body.theme-dark .teacher-data-table thead th,body.theme-dark .teacher-data-table tbody td,body.theme-dark .teacher-data-table tbody td strong,body.theme-dark .teacher-data-table tbody td .small,body.theme-dark .teacher-data-table tbody td .text-muted,
body.theme-dark .student-data-table thead th,body.theme-dark .student-data-table tbody td,body.theme-dark .student-data-table tbody td strong,body.theme-dark .student-data-table tbody td .small,body.theme-dark .student-data-table tbody td .text-muted{color:#e5e7eb!important}
body.theme-dark .form-control,body.theme-dark .form-select,body.theme-dark .input-group-text,body.theme-dark .form-control:focus,body.theme-dark .form-select:focus{background:#0f172a!important;color:#f8fafc!important;border-color:#475569!important}
body.theme-dark .form-control::placeholder{color:#94a3b8!important;opacity:1}
body.theme-dark .form-select{color-scheme:dark}
body.theme-dark hr{border-color:#475569!important}
body.theme-dark code{background:#1e293b!important;color:#f1f5f9!important}
body.theme-dark .qnav{background:#0f172a!important;border-color:#475569!important;color:#f8fafc!important}
body.theme-dark .qnav:hover{background:#1e293b!important}
body.theme-dark .qnav.is-answered{background:#22c55e!important;border-color:#4ade80!important;color:#052e16!important}
body.theme-dark .qnav.is-doubtful{background:#facc15!important;border-color:#fde047!important;color:#422006!important}
body.theme-dark .legend-dot{background:#0f172a;border-color:#64748b}
body.theme-dark .impersonation-bar,body.theme-dark .alert{color:#111827!important}
body.theme-dark .impersonation-bar *,body.theme-dark .alert *{color:#111827!important}
body.theme-dark .btn,body.theme-dark .btn i{color:#e5e7eb!important}
body.theme-dark .btn-primary,body.theme-dark .btn-success,body.theme-dark .btn-danger,body.theme-dark .btn-warning,body.theme-dark .btn-info,body.theme-dark .btn-secondary,body.theme-dark .btn-dark,
body.theme-dark .btn-primary i,body.theme-dark .btn-success i,body.theme-dark .btn-danger i,body.theme-dark .btn-warning i,body.theme-dark .btn-info i,body.theme-dark .btn-secondary i,body.theme-dark .btn-dark i{color:#111827!important}
body.theme-dark .btn-outline-primary,body.theme-dark .btn-outline-success,body.theme-dark .btn-outline-danger,body.theme-dark .btn-outline-warning,body.theme-dark .btn-outline-info,body.theme-dark .btn-outline-secondary,body.theme-dark .btn-outline-dark{color:#e2e8f0!important;background:transparent!important}
body.theme-dark .btn-outline-primary i,body.theme-dark .btn-outline-success i,body.theme-dark .btn-outline-danger i,body.theme-dark .btn-outline-warning i,body.theme-dark .btn-outline-info i,body.theme-dark .btn-outline-secondary i,body.theme-dark .btn-outline-dark i{color:#e2e8f0!important}
body.theme-dark .btn-outline-primary:hover,body.theme-dark .btn-outline-success:hover,body.theme-dark .btn-outline-danger:hover,body.theme-dark .btn-outline-warning:hover,body.theme-dark .btn-outline-info:hover,body.theme-dark .btn-outline-secondary:hover,body.theme-dark .btn-outline-dark:hover{color:#111827!important}
body.theme-dark .btn-outline-primary:hover i,body.theme-dark .btn-outline-success:hover i,body.theme-dark .btn-outline-danger:hover i,body.theme-dark .btn-outline-warning:hover i,body.theme-dark .btn-outline-info:hover i,body.theme-dark .btn-outline-secondary:hover i,body.theme-dark .btn-outline-dark:hover i{color:#111827!important}
body.theme-dark .btn-close{filter:invert(1) grayscale(100%) brightness(180%)}

/* Tema menarik: visual lebih hidup namun seluruh teks tetap berkontras tinggi */
body.theme-attractive{background:linear-gradient(135deg,#f5f3ff 0%,#eff6ff 48%,#fdf2f8 100%);color:#1f2937;font-family:"Trebuchet MS","Segoe UI",Arial,sans-serif;background-attachment:fixed}
body.theme-attractive .main,body.theme-attractive .content{background:transparent!important}
body.theme-attractive .app-shell,body.theme-attractive .app-shell p,body.theme-attractive .app-shell div,body.theme-attractive .app-shell span,body.theme-attractive .app-shell small,body.theme-attractive .app-shell strong,body.theme-attractive .app-shell label,body.theme-attractive .app-shell td,body.theme-attractive .app-shell th{color:#1f2937!important}
body.theme-attractive .app-shell h1,body.theme-attractive .app-shell h2,body.theme-attractive .app-shell h3,body.theme-attractive .app-shell h4,body.theme-attractive .app-shell h5,body.theme-attractive .app-shell h6{color:#312e81!important}
body.theme-attractive .app-shell .text-muted,body.theme-attractive .app-shell .form-text,body.theme-attractive .app-shell .small.text-muted{color:#4b5563!important}
body.theme-attractive .sidebar{background:linear-gradient(180deg,#4c1d95,#4338ca 55%,#1d4ed8)!important;color:#fff!important;border-right:0!important;box-shadow:.3rem 0 1.2rem #312e8130}
body.theme-attractive .sidebar-brand{border-color:#ffffff2e!important;color:#fff!important}
body.theme-attractive .sidebar-brand *,body.theme-attractive .sidebar-brand .text-white-50{color:#fff!important}
body.theme-attractive .sidebar .nav-link,body.theme-attractive .sidebar .nav-link i{color:#f8fafc!important}
body.theme-attractive .sidebar .nav-link:hover,body.theme-attractive .sidebar .nav-link.active{background:#ffffff25!important;color:#fff!important;box-shadow:inset 3px 0 0 #fbbf24}
body.theme-attractive .sidebar .nav-link:hover i,body.theme-attractive .sidebar .nav-link.active i{color:#fff!important}
body.theme-attractive .topbar{background:#ffffffed!important;border-color:#ddd6fe!important;backdrop-filter:blur(8px);box-shadow:0 .15rem .7rem #312e8112}
body.theme-attractive .card,body.theme-attractive .modal-content,body.theme-attractive .dropdown-menu{background:#ffffffed!important;border:1px solid #e9d5ff!important;box-shadow:0 .65rem 1.8rem #4338ca14!important}
body.theme-attractive .card-header,body.theme-attractive .card-footer{background:#faf5ff!important;border-color:#e9d5ff!important}
body.theme-attractive .table{--bs-table-color:#1f2937;--bs-table-bg:#ffffff;--bs-table-border-color:#e5e7eb;color:#1f2937!important}
body.theme-attractive .table>:not(caption)>*>*,body.theme-attractive .table tbody td{color:#1f2937!important;border-color:#e5e7eb!important}
body.theme-attractive .table thead th,body.theme-attractive .table-clean th,body.theme-attractive .student-activity-table thead th{background:#ede9fe!important;color:#312e81!important;border-color:#ddd6fe!important}
body.theme-attractive .form-control,body.theme-attractive .form-select,body.theme-attractive .input-group-text,body.theme-attractive .form-control:focus,body.theme-attractive .form-select:focus{background:#fff!important;color:#111827!important;border-color:#c4b5fd!important}
body.theme-attractive .form-control:focus,body.theme-attractive .form-select:focus{box-shadow:0 0 0 .2rem #8b5cf633!important}
body.theme-attractive .profile-item,body.theme-attractive .exam-image-wrap{background:#faf5ff!important;border-color:#ddd6fe!important}
body.theme-attractive .profile-value,body.theme-attractive .exam-question-text{color:#1f2937!important}
body.theme-attractive .stat-card .icon,body.theme-attractive .student-avatar{background:linear-gradient(135deg,#ede9fe,#dbeafe)!important;color:#4f46e5!important}
body.theme-attractive .qnav{background:#fff!important;border-color:#c4b5fd!important;color:#312e81!important}
body.theme-attractive .qnav.is-current{box-shadow:0 0 0 2px #7c3aed55!important;border-color:#7c3aed!important}
body.theme-attractive .qnav.is-answered{background:#bbf7d0!important;border-color:#4ade80!important;color:#14532d!important}
body.theme-attractive .qnav.is-doubtful{background:#fef08a!important;border-color:#facc15!important;color:#713f12!important}
body.theme-attractive .btn-primary{background:#ddd6fe!important;border-color:#a78bfa!important;color:#312e81!important}
body.theme-attractive .btn-primary i{color:#312e81!important}
body.theme-attractive .btn-outline-primary{border-color:#7c3aed!important;color:#5b21b6!important}
body.theme-attractive .btn-outline-primary i{color:#5b21b6!important}
body.theme-attractive .btn-outline-primary:hover,body.theme-attractive .btn-outline-primary:focus{background:#ede9fe!important;border-color:#8b5cf6!important;color:#312e81!important}

/* Preview tema harus tetap menggambarkan warna aslinya di semua tema aktif */
body.theme-light .theme-preview-light *,body.theme-dark .theme-preview-light *,body.theme-attractive .theme-preview-light *{color:#111827!important}
body.theme-light .theme-preview-dark *,body.theme-dark .theme-preview-dark *,body.theme-attractive .theme-preview-dark *{color:#f8fafc!important}
body.theme-light .theme-preview-attractive *,body.theme-dark .theme-preview-attractive *,body.theme-attractive .theme-preview-attractive *{color:#312e81!important}

/* Penjagaan kontras komponen khusus pada tema gelap */
body.theme-dark .badge,body.theme-dark .badge *{color:#111827!important}
body.theme-dark .option-card:has(input:checked){background:#1e3a5f!important;border-color:#60a5fa!important}
body.theme-dark .option-card:has(input:checked),body.theme-dark .option-card:has(input:checked) *{color:#f8fafc!important}
body.theme-dark .student-token-box,body.theme-dark .student-token-box *{color:#14532d!important}
body.theme-dark .student-token-box{background:#dcfce7!important;border-color:#86efac!important}
