/*
 * ============================================================
 * MODERN LIGHT THEME OVERRIDE
 * Palapa / Kamadeva - Fresh & Modern UI
 * Override untuk UIKit lama agar tampil kekinian
 * ============================================================
 */

/* ── Google Font ── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

/* ── CSS Variables ── */
:root {
  --primary:       #4F6EF7;
  --primary-dark:  #3A56D4;
  --primary-light: #EEF1FE;
  --accent:        #6C63FF;
  --success:       #22C55E;
  --warning:       #F59E0B;
  --danger:        #EF4444;
  --info:          #3B82F6;

  --bg:            #F4F6FB;
  --surface:       #FFFFFF;
  --surface-2:     #F8F9FD;
  --border:        #E5E9F2;
  --border-light:  #F0F3FA;

  --text-primary:  #1E293B;
  --text-secondary:#64748B;
  --text-muted:    #94A3B8;

  --navbar-h:      62px;
  --sidebar-w:     220px;
  --radius:        10px;
  --radius-sm:     6px;
  --radius-lg:     16px;
  --shadow-sm:     0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --shadow:        0 4px 16px rgba(79,110,247,.10);
  --shadow-md:     0 8px 30px rgba(0,0,0,.10);
  --transition:    .18s ease;
}

/* ── Reset Base ── */
*, *::before, *::after { box-sizing: border-box; }

html, body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  background: #57637f !important;
  color: var(--text-primary) !important;
  font-size: 14px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

/* CKEditor area: force white/no-bg inside editor only */
.cke_wysiwyg_frame,
.cke_wysiwyg_div {
  background: #fff !important;
  background-image: none !important;
}
body.cke_editable {
  background: #fff !important;
  background-image: none !important;
}
.cke_editable,
.cke_editable_inline,
div[contenteditable="true"].cke_editable {
  background: #fff !important;
  background-image: none !important;
}

a, a:active { text-decoration: none !important; }
a:hover { color: var(--primary) !important; text-decoration: none !important; }

/* ════════════════════════════════════════════
   NAVBAR / HEADER
   ════════════════════════════════════════════ */
.tm-navbar-header {
  background: var(--surface) !important;
  border-bottom: 1px solid var(--border) !important;
  box-shadow: 0 1px 8px rgba(0,0,0,.07) !important;
  color: var(--text-primary) !important;
}

.tm-navbar-header .uk-navbar {
  background: none !important;
  border: 0 !important;
  min-height: var(--navbar-h);
  align-items: center;
}

/* Logo */
.tm-navbar-header .uk-navbar-brand img {
  max-height: 38px !important;
  filter: none;
}

/* Nav links */
.tm-navbar-header a,
.tm-navbar-header .uk-navbar-nav > li > a {
  color: var(--text-secondary) !important;
  text-shadow: none !important;
  font-weight: 500;
  font-size: 13.5px;
  transition: color var(--transition);
}
.tm-navbar-header a:hover,
.tm-navbar-header .uk-navbar-nav > li > a:hover,
.tm-navbar-header .uk-navbar-nav > li.uk-open > a {
  color: var(--primary) !important;
  background: none !important;
}

/* Dropdown user */
.tm-navbar-header .uk-dropdown.uk-dropdown-navbar {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow-md) !important;
  padding: 6px !important;
  min-width: 180px;
  top: calc(100% + 6px) !important;
}
.tm-navbar-header .uk-nav-navbar > li > a {
  color: var(--text-primary) !important;
  border-radius: var(--radius-sm) !important;
  padding: 7px 12px !important;
  transition: background var(--transition);
}
.tm-navbar-header .uk-nav-navbar > li > a:hover {
  background: var(--primary-light) !important;
  color: var(--primary) !important;
  background-image: none !important;
}

/* Search bar */
input.tm-search-input[type=text] {
  background: var(--surface-2) !important;
  color: var(--text-primary) !important;
  border: 1px solid var(--border) !important;
  border-radius: 20px !important;
  padding: 6px 14px 6px 34px !important;
  transition: width .35s ease, border-color var(--transition);
}
input.tm-search-input[type=text]:focus {
  border-color: var(--primary) !important;
  background: var(--surface) !important;
  box-shadow: 0 0 0 3px rgba(79,110,247,.12) !important;
  outline: none;
}
.tm-search .uk-form-icon > [class*="uk-icon-"] {
  color: var(--text-muted) !important;
}

/* Avatar in navbar */
.tm-navbar-header .menu-user-photo-,
.menu-user-photo- {
  border: 2px solid var(--border) !important;
  border-radius: 50% !important;
  transition: border-color var(--transition);
}
.tm-navbar-header li:hover .menu-user-photo- {
  border-color: var(--primary) !important;
}

/* Toggle (mobile hamburger) */
.tm-navbar-header .uk-navbar-toggle {
  color: var(--text-secondary) !important;
}

/* ════════════════════════════════════════════
   BODY / LAYOUT
   ════════════════════════════════════════════ */
.tm-body {
  padding: 20px 15px !important;
  min-height: calc(100vh - var(--navbar-h) - 48px);
}
@media (max-width: 768px) {
  .tm-body { padding: 10px 8px !important; }
}

/* ════════════════════════════════════════════
   SIDEBAR / MENU
   ════════════════════════════════════════════ */

/* Panel box override */
.uk-panel.uk-panel-box {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow-sm) !important;
}

/* User avatar panel */
.uk-panel.uk-panel-box .uk-border-circle {
  border: 3px solid var(--border) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.10);
  transition: box-shadow var(--transition);
}
.uk-panel.uk-panel-box .uk-border-circle:hover {
  box-shadow: 0 4px 16px rgba(79,110,247,.20);
}

/* Nav items in sidebar */
.uk-panel-box .uk-nav > li > a,
.uk-nav > li > a {
  color: var(--text-secondary) !important;
  border-radius: var(--radius-sm) !important;
  padding: 8px 10px !important;
  margin-bottom: 2px !important;
  /* display: flex !important; */
  align-items: center !important;
  gap: 8px !important;
  font-weight: 500;
  font-size: 13.5px;
  transition: background var(--transition), color var(--transition) !important;
}
.uk-panel-box .uk-nav > li > a:hover,
.uk-nav > li > a:hover {
  background: var(--primary-light) !important;
  color: var(--primary) !important;
  background-image: none !important;
}
.uk-panel-box .uk-nav > li > a [class*="uk-icon-"],
.uk-nav > li > a [class*="uk-icon-"] {
  width: 18px;
  text-align: center;
  color: var(--text-muted);
  transition: color var(--transition);
}
.uk-panel-box .uk-nav > li > a:hover [class*="uk-icon-"],
.uk-nav > li > a:hover [class*="uk-icon-"] {
  color: var(--primary);
}

/* Active nav item */
.uk-nav > li.uk-active > a {
  background: var(--primary-light) !important;
  color: var(--primary) !important;
  background-image: none !important;
  font-weight: 600;
}

/* ════════════════════════════════════════════
   PANELS / CARDS
   ════════════════════════════════════════════ */
.uk-panel-box {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow-sm) !important;
  -webkit-box-shadow: var(--shadow-sm) !important;
}
.uk-panel-box-primary {
  background: var(--primary) !important;
  color: #fff !important;
  border-color: var(--primary-dark) !important;
}
.uk-panel .uk-panel-title {
  color: var(--text-primary) !important;
  font-weight: 600;
  font-size: 15px;
}
.uk-panel .uk-panel-footer {
  background: var(--surface-2) !important;
  border-top: 1px solid var(--border) !important;
  border-radius: 0 0 var(--radius) var(--radius) !important;
  margin: 0 -15px -15px !important;
  padding: 10px 15px !important;
}

/* panel badge */
.uk-panel-badge.uk-badge {
  border-radius: var(--radius-sm) !important;
  font-size: 11px !important;
  font-weight: 600;
}

/* ════════════════════════════════════════════
   BUTTONS
   ════════════════════════════════════════════ */
.uk-button {
  border-radius: var(--radius-sm) !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13.5px !important;
  transition: all var(--transition) !important;
  border: none !important;
}
.uk-button-primary,
[type="submit"].uk-button-primary,
[type="button"].uk-button-primary,
a.uk-button-primary {
  background: #6378d4 !important;
  background-image: none !important;
  color: #fff !important;
  text-shadow: none !important;
  box-shadow: 0 2px 8px rgba(79,110,247,.25) !important;
}
.uk-button-primary:hover,
.uk-button-primary:focus {
  background: var(--primary-dark) !important;
  background-image: none !important;
  box-shadow: 0 4px 14px rgba(79,110,247,.35) !important;
  transform: translateY(-1px);
  color:white;
}
.uk-button-primary:active,
.uk-button-primary.uk-active {
  background: var(--primary-dark) !important;
  background-image: none !important;
  box-shadow: none !important;
  transform: none;
}
.uk-button-success {
  background: var(--success) !important;
  background-image: none !important;
  color: #fff !important;
}
.uk-button-danger {
  background: var(--danger) !important;
  background-image: none !important;
  color: #fff !important;
}
.uk-button-secondary {
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--text-secondary) !important;
  border: 1px solid var(--border) !important;
}
.uk-button-secondary:hover {
  background: var(--surface-2) !important;
  border-color: var(--primary) !important;
  color: var(--primary) !important;
}

/* ════════════════════════════════════════════
   FORMS
   ════════════════════════════════════════════ */
.uk-form input[type="text"],
.uk-form input[type="email"],
.uk-form input[type="password"],
.uk-form input[type="number"],
.uk-form input[type="search"],
.uk-form textarea {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
  color: var(--text-primary) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  /* padding: 0px 12px !important; */
  transition: border-color var(--transition), box-shadow var(--transition) !important;
}
.uk-form select {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
  color: var(--text-primary) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  padding: 0px 28px 0px 10px !important;
  height: auto !important;
  min-height: 34px !important;
  line-height: 1.5 !important;
  appearance: auto !important;
  -webkit-appearance: auto !important;
  transition: border-color var(--transition), box-shadow var(--transition) !important;
}
.uk-form input:focus,
.uk-form textarea:focus,
.uk-form select:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px rgba(79,110,247,.12) !important;
  outline: none !important;
}
.uk-form input::placeholder,
.uk-form textarea::placeholder {
  color: var(--text-muted) !important;
}
.uk-form-icon > [class*="uk-icon-"] {
  color: var(--text-muted) !important;
}

/* ════════════════════════════════════════════
   LOGIN PAGE
   ════════════════════════════════════════════ */

/* The login box */
.uk-panel.uk-panel-box.uk-border-radius-remove {
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-md) !important;
  border: 1px solid var(--border) !important;
  overflow: hidden;
}

/* Tab */
.uk-tab {
  border-bottom: 2px solid var(--border) !important;
  margin-bottom: 0 !important;
}
.uk-tab > li > a {
  color: var(--text-muted) !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  margin-bottom: -2px !important;
  padding: 10px 18px !important;
  font-weight: 500;
  font-size: 13.5px;
  transition: color var(--transition), border-color var(--transition) !important;
  background: none !important;
  border-radius: 0 !important;
}
.uk-tab > li > a:hover {
  color: var(--primary) !important;
  background: none !important;
  border-bottom-color: var(--primary) !important;
}
.uk-tab > li.uk-active > a {
  color: var(--primary) !important;
  border-bottom: 2px solid var(--primary) !important;
  background: none !important;
  font-weight: 600;
}

/* Switcher padding */
.uk-switcher.uk-margin {
  padding: 16px 0 8px !important;
}

/* Login form rows */
.form-login-2 .uk-form-row,
.form-login .uk-form-row {
  margin-bottom: 12px !important;
}
.form-login-2 .uk-form-icon,
.form-login .uk-form-icon {
  position: relative;
}
.form-login-2 .uk-form-icon > [class*="uk-icon-"],
.form-login .uk-form-icon > [class*="uk-icon-"] {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  color: var(--text-muted) !important;
}
.form-login-2 .uk-form-icon input,
.form-login .uk-form-icon input {
  padding-left: 34px !important;
}
.form-login-2 a[href*="forgot"],
.form-login a[href*="forgot"] {
  color: var(--primary) !important;
  font-size: 12.5px;
  display: block;
  text-align: right;
  margin-top: 6px;
}
.form-login-2 a[href*="forgot"]:hover,
.form-login a[href*="forgot"]:hover {
  text-decoration: underline !important;
}

/* Register form */
.form-register .uk-form-row { margin-bottom: 10px !important; }
.form-register .uk-form-icon > [class*="uk-icon-"] {
  position: absolute !important;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
}
.form-register .uk-form-icon input { padding-left: 34px !important; }

/* ════════════════════════════════════════════
   TABLES
   ════════════════════════════════════════════ */
.uk-table {
  border-collapse: separate;
  border-spacing: 0;
}
.uk-table thead th {
  background: var(--surface-2) !important;
  color: var(--text-secondary) !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  text-transform: uppercase;
  letter-spacing: .05em;
  border-bottom: 2px solid var(--border) !important;
  padding: 10px 14px !important;
}
.uk-table tbody td {
  border-bottom: 1px solid var(--border-light) !important;
  padding: 10px 14px !important;
  color: var(--text-primary) !important;
  vertical-align: middle !important;
}
.uk-table tbody tr:last-child td { border-bottom: 0 !important; }
.uk-table-hover tbody tr:hover td,
.uk-table tbody tr:hover td {
  background: var(--primary-light) !important;
}
.uk-table-striped tbody tr:nth-of-type(even) td {
  background: var(--surface-2) !important;
}

/* ════════════════════════════════════════════
   BADGES
   ════════════════════════════════════════════ */
.uk-badge {
  border-radius: 20px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  padding: 6px 8px !important;
  background-image: none !important;
  background: #fff;
  color:#EF4444;
}
.uk-badge-danger  { background: var(--danger)  !important; }
.uk-badge-warning { background: var(--warning) !important; color: #fff !important; }
.uk-badge-success { background: var(--success) !important; }
.uk-badge-notification {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  font-size: 10px !important;
  line-height: 18px !important;
  border-radius: 50% !important;
  padding: 0 !important;
}

/* ════════════════════════════════════════════
   MODALS
   ════════════════════════════════════════════ */
.uk-modal-dialog {
  background: var(--surface) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-md) !important;
  border: 1px solid var(--border) !important;
}
.uk-modal-header {
  background: var(--surface-2) !important;
  border-bottom: 1px solid var(--border) !important;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0 !important;
  padding: 14px 20px !important;
}
.uk-modal-caption {
  font-weight: 600;
  font-size: 16px;
  color: var(--text-primary);
}
.uk-modal-footer {
  background: var(--surface-2) !important;
  border-top: 1px solid var(--border) !important;
  border-radius: 0 0 var(--radius-lg) var(--radius-lg) !important;
}

/* ════════════════════════════════════════════
   PAGINATION
   ════════════════════════════════════════════ */
.uk-pagination > li > a,
.uk-pagination > li > span {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  color: var(--text-secondary) !important;
  border-radius: var(--radius-sm) !important;
  padding: 5px 11px !important;
  font-size: 13px !important;
  transition: all var(--transition) !important;
}
.uk-pagination > li > a:hover {
  background: var(--primary-light) !important;
  border-color: var(--primary) !important;
  color: var(--primary) !important;
}
.uk-pagination > li.uk-active > span,
.uk-pagination > .uk-active > a {
  background: var(--primary) !important;
  border-color: var(--primary) !important;
  color: #fff !important;
}

/* ════════════════════════════════════════════
   ALERTS / NOTIFICATIONS
   ════════════════════════════════════════════ */
.uk-alert {
  border-radius: var(--radius) !important;
  border-left: 4px solid var(--info) !important;
  background: #EFF6FF !important;
  color: var(--text-primary) !important;
  font-size: 13.5px !important;
}
.uk-alert-danger  { border-left-color: var(--danger)  !important; background: #FEF2F2 !important; }
.uk-alert-success { border-left-color: var(--success) !important; background: #F0FDF4 !important; }
.uk-alert-warning { border-left-color: var(--warning) !important; background: #FFFBEB !important; }

/* UIKit notify */
.uk-notify-message {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow-md) !important;
  color: var(--text-primary) !important;
  font-family: 'Inter', sans-serif !important;
}
.uk-notify-message-danger  { border-left: 4px solid var(--danger)  !important; }
.uk-notify-message-success { border-left: 4px solid var(--success) !important; }
.uk-notify-message-warning { border-left: 4px solid var(--warning) !important; }

/* ════════════════════════════════════════════
   OFFCANVAS (mobile sidebar)
   ════════════════════════════════════════════ */
.uk-offcanvas-bar {
  background: var(--surface) !important;
  border-right: 1px solid var(--border) !important;
}
.uk-offcanvas .uk-panel.uk-panel-box {
  box-shadow: none !important;
  border: none !important;
  border-radius: 0 !important;
  border-bottom: 1px solid var(--border) !important;
}
.uk-offcanvas .uk-panel.uk-panel-box a,
.uk-offcanvas .uk-panel.uk-panel-box a:hover {
  color: var(--text-secondary) !important;
}
.uk-offcanvas .uk-panel .uk-border-circle {
  border-color: var(--border) !important;
}

/* ════════════════════════════════════════════
   FOOTER
   ════════════════════════════════════════════ */
#tm-footer.tm-footer {
  background: var(--surface) !important;
  border-top: 1px solid var(--border) !important;
  color: var(--text-muted) !important;
  padding: 10px 0 !important;
  font-size: 12.5px !important;
}
#tm-footer.tm-footer a {
  color: var(--text-muted) !important;
  transition: color var(--transition);
}
#tm-footer.tm-footer a:hover {
  color: var(--primary) !important;
}

/* ════════════════════════════════════════════
   CAPTION BOX
   ════════════════════════════════════════════ */
.caption-box {
  color: var(--primary) !important;
  font-weight: 700;
  font-size: 20px;
}

/* ════════════════════════════════════════════
   DEMO FACEBOOK CARD (activity cards)
   ════════════════════════════════════════════ */
.demo-facebook-card {
  background: var(--surface) !important;
  border-radius: var(--radius) !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow-sm) !important;
  -webkit-box-shadow: var(--shadow-sm) !important;
  margin: 6px 0 !important;
}
.demo-facebook-card .card-header {
  border-bottom: 1px solid var(--border-light) !important;
  padding: 12px 14px !important;
}
.demo-facebook-card .card-footer {
  background: var(--surface-2) !important;
  border-top: 1px solid var(--border-light) !important;
  border-radius: 0 0 var(--radius) var(--radius) !important;
}
.demo-facebook-card .demo-facebook-name { font-weight: 600; color: var(--text-primary); }
.demo-facebook-card .demo-facebook-date { color: var(--text-muted) !important; }
.demo-facebook-card .card-footer a { color: var(--text-secondary) !important; }
.demo-facebook-card .card-footer a:hover { color: var(--primary) !important; }

/* ════════════════════════════════════════════
   DROPDOWN
   ════════════════════════════════════════════ */
.uk-dropdown {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow-md) !important;
  padding: 6px !important;
  z-index: 1050;
}
.uk-dropdown a,
.uk-dropdown .uk-nav > li > a {
  color: var(--text-primary) !important;
  border-radius: var(--radius-sm) !important;
  padding: 7px 12px !important;
  transition: background var(--transition) !important;
  background: none !important;
}
.uk-dropdown a:hover,
.uk-dropdown .uk-nav > li > a:hover {
  background: var(--primary-light) !important;
  color: var(--primary) !important;
  background-image: none !important;
}

/* ════════════════════════════════════════════
   MISC UI ELEMENTS
   ════════════════════════════════════════════ */

/* Divider */
hr, .uk-hr {
  border-top: 1px solid var(--border) !important;
  margin: 12px 0 !important;
}

/* Breadcrumb */
.uk-breadcrumb li > a { color: var(--text-muted) !important; }
.uk-breadcrumb li > a:hover { color: var(--primary) !important; }
.uk-breadcrumb li.uk-active > span { color: var(--text-primary) !important; }

/* Progress */
.uk-progress { border-radius: 20px !important; overflow: hidden; background: var(--border) !important; }
.uk-progress-bar { background: var(--primary) !important; border-radius: 20px !important; transition: width .5s ease; }

/* Loading mini improvements */
.uk-icon-spinner { color: var(--primary) !important; }

/* Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }

/* ════════════════════════════════════════════
   UI STATE (jQueryUI)
   ════════════════════════════════════════════ */
.ui-state-active:not(.elfinder .ui-state-active),
.ui-toolbar:not(.elfinder .ui-toolbar) {
  background: linear-gradient(135deg, #a1a3a8 0%, rgb(81, 105, 182) 100%) !important;
  background-image: none !important;
  border-color: #efefef !important;
  color: #fff !important;
}

/* ════════════════════════════════════════════
   AE TOP (alternate header class)
   ════════════════════════════════════════════ */
.ae_top {
  background: var(--surface) !important;
  background-image: none !important;
  border-color: var(--border) !important;
  color: var(--text-primary) !important;
  box-shadow: 0 1px 8px rgba(0,0,0,.07) !important;
}
.ae_top > *, .ae_top > *:hover,
.ae_top > .uk-navbar-flip > *,
.ae_top > .uk-navbar-flip > *:hover { color: var(--text-secondary) !important; }
.ae_top .uk-navbar-nav > li > a { color: var(--text-secondary) !important; }
.ae_top .uk-navbar-nav > li > a:hover,
.ae_top .uk-navbar-nav > li.uk-open > a { color: var(--primary) !important; }

/* ════════════════════════════════════════════
   ANSWERED / QUIZ STYLE
   ════════════════════════════════════════════ */
.answered {
  background: #FEF9C3 !important;
  border-left: 3px solid var(--warning) !important;
}

/* ════════════════════════════════════════════
   RESPONSIVE HELPERS
   ════════════════════════════════════════════ */
@media (max-width: 768px) {
  .uk-panel.uk-panel-box { border-radius: var(--radius-sm) !important; }
  .uk-modal-dialog { margin-top: 70px !important; border-radius: var(--radius) !important; }
}

/* ════════════════════════════════════════════
   INDEX / LOGIN PAGE BODY OVERRIDE
   ════════════════════════════════════════════ */
body.login-page { background: linear-gradient(135deg, #EEF1FE 0%, #F4F6FB 100%) !important; }

/* Override inline styles for login panel */
.tm-main .uk-panel.uk-panel-box[style*="max-width: 350px"],
div.uk-panel.uk-panel-box[style*="max-width: 350px"] {
  border-radius: var(--radius-lg) !important;
  box-shadow: 0 8px 40px rgba(79,110,247,.15) !important;
  padding: 24px !important;
}

/* ════════════════════════════════════════════
   UTILITY OVERRIDES
   ════════════════════════════════════════════ */
.uk-text-muted { color: var(--text-muted) !important; }
.uk-text-primary { color: var(--primary) !important; }
.uk-text-danger  { color: var(--danger)  !important; }
.uk-text-success { color: var(--success) !important; }
.uk-text-warning { color: var(--warning) !important; }

.uk-form input[type="text"], .uk-form input[type="email"], .uk-form input[type="password"], .uk-form input[type="number"], .uk-form input[type="search"], .uk-form textarea, .uk-form select {
    height: 45px;
}

.tm-navbar-header
.uk-navbar {
    padding:10px;
}

.uk-form-icon > [class*="uk-icon-"] {
    left: 5px !important;
    top: 68% !important;
}

.uk-button-mini > [class*="uk-icon-"] {
    color: white;
    padding: 6px;
}

.uk-form-icon > [class*="uk-icon-search"] {
    top: 48% !important; 
}

.ui-accordion .ui-accordion-header {
    border-radius: 10px 10px 0px 0px;
}
  
.ui-accordion .ui-accordion-content {
    border-radius: 0px 0px 10px 10px;
}

.uk-link, a {
    color: #fafafa !important;
}

.uk-button-primary.uk-active:hover {
    color: #ffffff !important;
}

/* ════════════════════════════════════════════
   INPUT KODE PAGE
   ════════════════════════════════════════════ */

/* ── Wrapper card ── */
.ik-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 18px;
  box-shadow: 0 8px 40px rgba(79,110,247,.10), 0 2px 8px rgba(0,0,0,.04);
  overflow: hidden;
  max-width: 620px;
  margin: 0 auto;
}

/* ── Card Header ── */
.ik-card-header {
  padding: 28px 30px 24px;
  border-bottom: 1px solid var(--border-light);
  background: linear-gradient(135deg, #F8F9FD 0%, #EEF1FE 100%);
}
.ik-header-icon {
  width: 52px;
  height: 52px;
  background: var(--primary);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  box-shadow: 0 4px 14px rgba(79,110,247,.28);
}
.ik-header-icon svg {
  width: 26px;
  height: 26px;
  fill: none;
  stroke: #fff;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ik-card-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 5px;
  letter-spacing: -.3px;
}
.ik-card-desc {
  font-size: 13.5px;
  color: var(--text-secondary);
  margin: 0;
  line-height: 1.5;
}

/* ── Card Body ── */
.ik-card-body {
  padding: 28px 30px;
}

/* ── Kode Input Group ── */
.ik-input-group {
  display: flex;
  gap: 10px;
  align-items: stretch;
}
.ik-input-wrap {
  position: relative;
  flex: 1;
}
.ik-input-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: #C4CAD6;
  display: flex;
  align-items: center;
}
.ik-input-icon svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ik-input-wrap input[name="kode"] {
  width: 100%;
  padding: 13px 14px 13px 44px !important;
  background: #F8F9FD !important;
  border: 1.5px solid var(--border) !important;
  border-radius: 10px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--text-primary) !important;
  font-family: 'Inter', monospace !important;
  letter-spacing: .12em !important;
  text-transform: lowercase;
  transition: border-color .15s, box-shadow .15s, background .15s !important;
  outline: none !important;
  box-sizing: border-box;
}
.ik-input-wrap input[name="kode"]:focus {
  border-color: var(--primary) !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(79,110,247,.12) !important;
}
.ik-input-wrap input[name="kode"]::placeholder {
  color: #C4CAD6 !important;
  letter-spacing: normal;
  font-weight: 400;
}

/* ── Submit Button ── */
.ik-submit-btn {
  padding: 13px 22px;
  background: var(--primary);
  border: none;
  border-radius: 10px;
  color: #fff !important;
  font-size: 14px;
  font-weight: 600;
  font-family: 'Inter', sans-serif;
  box-shadow: 0 2px 12px rgba(79,110,247,.28);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
  transition: background .15s, box-shadow .15s, transform .1s;
  text-shadow: none !important;
  text-decoration: none !important;
}
.ik-submit-btn svg {
  width: 16px;
  height: 16px;
  stroke: #fff;
  fill: none;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ik-submit-btn:hover {
  background: var(--primary-dark) !important;
  box-shadow: 0 4px 18px rgba(79,110,247,.32);
  transform: translateY(-1px);
  color: #fff !important;
}
.ik-submit-btn:active { transform: none; }

/* ── Hint text ── */
.ik-hint {
  font-size: 12.5px;
  color: var(--text-muted);
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.ik-hint svg {
  width: 13px;
  height: 13px;
  stroke: var(--text-muted);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}

/* ── Divider ── */
.ik-divider {
  border: none;
  border-top: 1px solid var(--border-light);
  margin: 22px 0;
}

/* ════════════════════════════════════════════
   INPUT KODE AJAX — RESULT CARD
   ════════════════════════════════════════════ */

/* ── Result wrapper ── */
.ik-result {
  margin-top: 6px;
}

/* ── Info Grid ── */
.ik-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 16px;
}
@media (max-width: 480px) {
  .ik-info-grid { grid-template-columns: 1fr; }
  .ik-card-body { padding: 20px 18px; }
  .ik-card-header { padding: 22px 18px 18px; }
  .ik-input-group { flex-direction: column; }
  .ik-submit-btn { width: 100%; justify-content: center; }
}

/* ── Info Item ── */
.ik-info-item {
  background: #F8F9FD;
  border: 1px solid var(--border-light);
  border-radius: 10px;
  padding: 12px 14px;
}
.ik-info-item-full {
  grid-column: 1 / -1;
}
.ik-info-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text-muted);
  margin-bottom: 4px;
}
.ik-info-value {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.4;
}
.ik-info-value a {
  color: var(--primary) !important;
  font-weight: 600;
}
.ik-info-value a:hover {
  text-decoration: underline !important;
}
.ik-info-value .uk-text-muted,
.ik-info-value small {
  font-weight: 400;
  font-size: 12px;
}

/* ── Pembuat section ── */
.ik-maker-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  background: #F8F9FD;
  border: 1px solid var(--border-light);
  border-radius: 12px;
  margin-bottom: 14px;
}
.ik-maker-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--border);
  flex-shrink: 0;
}
.ik-maker-info { flex: 1; min-width: 0; }
.ik-maker-name {
  font-size: 14.5px;
  font-weight: 700;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ik-maker-name a {
  color: var(--primary) !important;
}
.ik-maker-name a:hover {
  text-decoration: underline !important;
}

/* Input kode: pastikan nama pembuat tetap terbaca (dark text) */
.ik-result .ik-maker-name,
.ik-result .ik-maker-name a,
.ik-result .ik-maker-name a:visited {
  color: #1E293B !important;
}
.ik-result .ik-maker-name a:hover {
  color: #0F172A !important;
}
.ik-maker-meta {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 2px;
}
.ik-maker-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  background: var(--primary-light);
  color: var(--primary);
  margin-left: 4px;
}
.ik-maker-badge-verified {
  background: #DCFCE7;
  color: #16A34A;
}

/* ── Badge waktu ── */
.ik-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 9px;
  border-radius: 20px;
  font-size: 11.5px;
  font-weight: 600;
}
.ik-badge svg {
  width: 12px; height: 12px;
  stroke: currentColor; fill: none;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}
.ik-badge-blue   { background: #EEF1FE; color: var(--primary); }
.ik-badge-orange { background: #FEF3C7; color: #D97706; }
.ik-badge-green  { background: #DCFCE7; color: #16A34A; }
.ik-badge-red    { background: #FEF2F2; color: #DC2626; }

/* ── Start Button ── */
.ik-start-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 14px 20px;
  background: var(--success);
  border: none;
  border-radius: 12px;
  color: #fff !important;
  font-size: 15px;
  font-weight: 700;
  font-family: 'Inter', sans-serif;
  box-shadow: 0 4px 18px rgba(34,197,94,.30);
  cursor: pointer;
  text-decoration: none !important;
  transition: background .15s, box-shadow .15s, transform .1s;
  text-shadow: none !important;
  letter-spacing: .01em;
  margin-top: 4px;
}
.ik-start-btn svg {
  width: 20px; height: 20px;
  stroke: #fff; fill: none;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}
.ik-start-btn:hover {
  background: #16A34A !important;
  box-shadow: 0 6px 22px rgba(34,197,94,.36);
  transform: translateY(-1px);
  color: #fff !important;
}
.ik-start-btn:active { transform: none; }

/* hidden link tetap ada utk JS */
a.start-lembar {
  display: none !important;
}

/* ── Error / Alert di ajax ── */
.ik-alert {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 13px 16px;
  border-radius: 10px;
  font-size: 13.5px;
  line-height: 1.5;
  margin-bottom: 4px;
}
.ik-alert svg {
  width: 18px; height: 18px;
  stroke: currentColor; fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0; margin-top: 1px;
}
.ik-alert-error   { background: #FEF2F2; border: 1px solid #FECACA; color: #B91C1C; }
.ik-alert-warning { background: #FFFBEB; border: 1px solid #FDE68A; color: #92400E; }

/* ── Link di dalam error (misal "Lihat hasil") ── */
.ik-alert a,
.ik-alert-error a,
.ik-alert-warning a {
  color: var(--primary) !important;
  font-weight: 600;
  text-decoration: underline !important;
}
.ik-alert a:hover {
  color: var(--primary-dark) !important;
}

/* Fix: link putih di ui_error global jadi terlihat */
.uk-alert-danger a,
.uk-alert-warning a,
[class*="ui_error"] a,
.msg a,
.msg_open a {
  color: white !important;
  font-weight: 600;
  text-decoration: underline !important;
}

/* ── Stats row pembuat ── */
.ik-stats-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.ik-stat {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: var(--text-muted);
}
.ik-stat svg {
  width: 13px; height: 13px;
  stroke: var(--text-muted); fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}

/* ════════════════════════════════════════════
   HASIL UJIAN — hasil.php
   ════════════════════════════════════════════ */

/* ── Hero score card ── */
.hr-hero {
  background: linear-gradient(135deg, var(--primary) 0%, #6C63FF 100%);
  border-radius: 16px;
  padding: 28px 24px 24px;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 18px;
  margin-bottom: 16px;
  box-shadow: 0 8px 32px rgba(79,110,247,.28);
}
.hr-hero-left { flex: 1; min-width: 0; }
.hr-hero-title {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: rgba(255,255,255,.70);
  margin-bottom: 4px;
}
.hr-hero-name {
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hr-hero-sub {
  font-size: 13px;
  color: rgba(255,255,255,.75);
}

/* ── Skor bulat di hero ── */
.hr-score-ring {
  flex-shrink: 0;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  border: 3px solid rgba(255,255,255,.35);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(4px);
}
.hr-score-ring-num {
  font-size: 28px;
  font-weight: 800;
  color: #fff;
  line-height: 1;
}
.hr-score-ring-label {
  font-size: 10px;
  font-weight: 600;
  color: rgba(255,255,255,.75);
  text-transform: uppercase;
  letter-spacing: .06em;
}

/* ── Info bar meta ujian ── */
.hr-meta {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-bottom: 16px;
}
@media (max-width: 480px) { .hr-meta { grid-template-columns: 1fr; } }
.hr-meta-item {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 11px 14px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.hr-meta-item svg {
  width: 18px; height: 18px;
  stroke: var(--primary); fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0;
}
/* .hr-meta-item-body {} */
.hr-meta-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text-muted);
  line-height: 1;
  margin-bottom: 3px;
}
.hr-meta-value {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
}

/* ── Statistik benar/salah/kosong ── */
.hr-stat-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 20px;
}
.hr-stat-card {
  border-radius: var(--radius);
  padding: 14px 12px;
  text-align: center;
  border: 1px solid transparent;
}
.hr-stat-card.is-benar  { background: #F0FDF4; border-color: #BBF7D0; }
.hr-stat-card.is-salah  { background: #FEF2F2; border-color: #FECACA; }
.hr-stat-card.is-kosong { background: #FFFBEB; border-color: #FDE68A; }
.hr-stat-icon {
  width: 36px; height: 36px;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 8px;
}
.hr-stat-icon svg {
  width: 20px; height: 20px; fill: none;
  stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round;
}
.is-benar  .hr-stat-icon { background: #DCFCE7; }
.is-salah  .hr-stat-icon { background: #FEE2E2; }
.is-kosong .hr-stat-icon { background: #FEF3C7; }
.is-benar  .hr-stat-icon svg { stroke: #16A34A; }
.is-salah  .hr-stat-icon svg { stroke: #DC2626; }
.is-kosong .hr-stat-icon svg { stroke: #D97706; }
.hr-stat-num {
  font-size: 26px;
  font-weight: 800;
  line-height: 1;
  margin-bottom: 3px;
}
.is-benar  .hr-stat-num { color: #16A34A; }
.is-salah  .hr-stat-num { color: #DC2626; }
.is-kosong .hr-stat-num { color: #D97706; }
.hr-stat-label {
  font-size: 11.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.is-benar  .hr-stat-label { color: #16A34A; }
.is-salah  .hr-stat-label { color: #DC2626; }
.is-kosong .hr-stat-label { color: #D97706; }

/* ── Divider ── */
.hr-divider {
  border: none; border-top: 1px solid var(--border-light); margin: 18px 0;
}

/* ── Header soal ── */
.hr-soal-header {
  background: linear-gradient(90deg, #F8F9FD 0%, #EEF1FE 100%);
  border-bottom: 1px solid var(--border-light);
  padding: 9px 16px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 8px;
  border-radius: var(--radius) var(--radius) 0 0;
}
.hr-soal-header svg {
  width: 13px; height: 13px;
  stroke: var(--text-muted); fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
.hr-soal-body { padding: 14px 16px; font-size: 14.5px; line-height: 1.7; }

/* Pilihan jawaban hasil */
.hr-pilihan-table td { padding: 7px 10px !important; vertical-align: middle !important; }
.hr-pilihan-table tr { transition: background .12s; }
.hr-pilihan-table tr:hover td { background: var(--surface-2) !important; }
.hr-pilihan-table tr:last-child td { border-bottom: none !important; }

/* Status benar/salah/kosong pill */
.hr-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
}
.hr-status-pill svg {
  width: 13px; height: 13px; fill: none;
  stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round;
}
.hr-status-pill.is-benar  { background: #DCFCE7; color: #16A34A; }
.hr-status-pill.is-benar  svg { stroke: #16A34A; }
.hr-status-pill.is-salah  { background: #FEE2E2; color: #DC2626; }
.hr-status-pill.is-salah  svg { stroke: #DC2626; }
.hr-status-pill.is-kosong { background: #FEF3C7; color: #D97706; }
.hr-status-pill.is-kosong svg { stroke: #D97706; }

/* Penjelasan box */
.hr-penjelasan {
  background: var(--primary-light);
  border-left: 3px solid var(--primary);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  padding: 10px 14px;
  font-size: 13.5px;
  color: var(--text-primary);
  margin-top: 8px;
  display: flex;
  gap: 8px;
  align-items: flex-start;
}
.hr-penjelasan svg {
  width: 16px; height: 16px; fill: none;
  stroke: var(--primary); stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0; margin-top: 2px;
}

/* soal row card */
.hr-soal-row {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: 12px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.hr-soal-row:last-child { margin-bottom: 0; }

/* ── Pesan disimpan (msg) ── */
.hr-saved-msg {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #F0FDF4;
  border: 1px solid #BBF7D0;
  border-radius: var(--radius);
  padding: 11px 16px;
  font-size: 13.5px;
  color: #15803D;
  font-weight: 500;
  margin-bottom: 14px;
}
.hr-saved-msg svg {
  width: 18px; height: 18px; fill: none;
  stroke: #16A34A; stroke-width: 2.2;
  stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0;
}

/* ── Petunjuk box ── */
.hr-petunjuk {
  background: var(--surface-2);
  border: 1px solid var(--border-light);
  border-radius: var(--radius);
  padding: 12px 16px;
  font-size: 13.5px;
  color: var(--text-secondary);
  margin-bottom: 14px;
  display: flex;
  gap: 10px;
  align-items: flex-start;
}
.hr-petunjuk svg {
  width: 16px; height: 16px; fill: none;
  stroke: var(--text-muted); stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0; margin-top: 2px;
}
.hr-kunci-warning {
  display: flex;
  align-items: center;
  gap: 9px;
  background: #FFFBEB;
  border: 1px solid #FDE68A;
  border-radius: var(--radius);
  padding: 11px 16px;
  font-size: 13px;
  color: #92400E;
  margin-bottom: 14px;
}
.hr-kunci-warning svg {
  width: 18px; height: 18px; fill: none;
  stroke: #D97706; stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0;
}

/* ═══════════════════════════════════════════
   REKAMAN UJIAN — hasil_kerjaan.php
   ═══════════════════════════════════════════ */

/* DataTable wrapper */
.hk-table-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
/* DataTable header/footer rows */
.hk-table-card table thead th {
  background: var(--surface-2) !important;
  color: var(--text-secondary) !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: 11px 14px !important;
  border-bottom: 2px solid var(--border) !important;
}
.hk-table-card table tfoot th {
  background: var(--surface-2) !important;
  padding: 9px 14px !important;
  border-top: 1px solid var(--border) !important;
  font-size: 12px !important;
  color: var(--text-muted) !important;
}
.hk-table-card table tbody td {
  padding: 11px 14px !important;
  vertical-align: middle !important;
  border-bottom: 1px solid var(--border-light) !important;
  font-size: 13.5px !important;
  color: var(--text-primary) !important;
}
.hk-table-card table tbody tr:last-child td { border-bottom: none !important; }
.hk-table-card table tbody tr:hover td { background: var(--primary-light) !important; }

/* Judul tes di tabel */
.hk-tes-title {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 4px;
}
.hk-tes-actions {
  display: flex;
  gap: 6px;
  align-items: center;
  margin-top: 5px;
}
.hk-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 11.5px;
  font-weight: 600;
  text-decoration: none !important;
  transition: background .13s, color .13s;
}
.hk-action-btn svg {
  width: 13px; height: 13px; fill: none;
  stroke: currentColor; stroke-width: 2.2;
  stroke-linecap: round; stroke-linejoin: round;
}
.hk-action-btn-view  { background: var(--primary-light); color: var(--primary) !important; }
.hk-action-btn-rank  { background: #FEF3C7; color: #D97706 !important; }
.hk-action-btn-view:hover { background: #d9e0fd; color: var(--primary-dark) !important; }
.hk-action-btn-rank:hover { background: #fde99a; color: #b45309 !important; }

/* badge nilai */
.hk-score-badge {
  display: inline-block;
  min-width: 34px;
  text-align: center;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 700;
}
.hk-score-benar  { background: #DCFCE7; color: #16A34A; }
.hk-score-salah  { background: #FEE2E2; color: #DC2626; }
.hk-score-kosong { background: #FEF3C7; color: #D97706; }
.hk-score-hidden { background: var(--surface-2); color: var(--text-muted); font-size: 16px; }

/* Remidi button */
.hk-remidi-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 10px;
  border-radius: 20px;
  font-size: 11.5px;
  font-weight: 600;
  background: #EEF1FE;
  color: var(--primary) !important;
  text-decoration: none !important;
  transition: background .13s;
}
.hk-remidi-btn svg {
  width: 13px; height: 13px; fill: none;
  stroke: var(--primary); stroke-width: 2.2;
  stroke-linecap: round; stroke-linejoin: round;
}
.hk-remidi-btn:hover { background: #d9e0fd; }

/* Modal remidi */
.hk-modal-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.hk-modal-title svg {
  width: 20px; height: 20px; fill: none;
  stroke: var(--primary); stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round;
}
.hk-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  background: #FFFBEB;
  border: 1px solid #FDE68A;
  border-radius: var(--radius-sm);
  padding: 9px 12px;
  font-size: 11.5px;
  color: #92400E;
  margin: 10px 0 14px;
}
.hk-note svg {
  width: 15px; height: 15px; fill: none;
  stroke: #D97706; stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0; margin-top: 1px;
}

/* ════════════════════════════════════════════
   LEMBAR JAWAB / UJIAN PAGE (lj-*)
   ════════════════════════════════════════════ */

/* ── Info bar atas (jenjang, mapel, timer) ── */
.lj-infobar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 18px;
  margin-bottom: 10px;
  box-shadow: var(--shadow-sm);
}
.lj-infobar-left {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 18px;
}
.lj-info-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--text-secondary);
  font-weight: 500;
}
.lj-info-chip svg {
  width: 15px; height: 15px;
  stroke: var(--text-muted); fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0;
}
.lj-info-chip strong {
  color: var(--text-primary);
  font-weight: 600;
}

/* ── TIMER WIDGET ── */
.lj-timer-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.lj-timer {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #EEF1FE;
  border: 1.5px solid rgba(79,110,247,.18);
  border-radius: 10px;
  padding: 8px 14px;
  transition: background .3s, border-color .3s;
}
.lj-timer svg {
  width: 18px; height: 18px;
  stroke: var(--primary); fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0;
  transition: stroke .3s;
}
.lj-timer-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--primary);
  line-height: 1;
  margin-bottom: 2px;
  transition: color .3s;
}
.lj-timer-value {
  font-size: 20px;
  font-weight: 700;
  color: var(--primary);
  letter-spacing: .04em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  transition: color .3s;
}

/* ── WARNING state (≤10 menit = 600 detik) ── */
.lj-timer.is-warning {
  background: #FEF3C7;
  border-color: rgba(245,158,11,.30);
}
.lj-timer.is-warning svg       { stroke: #D97706; }
.lj-timer.is-warning .lj-timer-label { color: #D97706; }
.lj-timer.is-warning .lj-timer-value { color: #D97706; }

/* ── DANGER state (≤60 detik) ── */
.lj-timer.is-danger {
  background: #FEF2F2;
  border-color: rgba(239,68,68,.35);
}
.lj-timer.is-danger svg        { stroke: #DC2626; }
.lj-timer.is-danger .lj-timer-label  { color: #DC2626; }
.lj-timer.is-danger .lj-timer-value  { color: #DC2626; }

/* ── Animasi pulse + tick saat danger ── */
@keyframes lj-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(239,68,68,.45); }
  50%       { box-shadow: 0 0 0 7px rgba(239,68,68,0); }
}
@keyframes lj-tick {
  0%   { transform: scale(1); }
  45%  { transform: scale(1.08); }
  55%  { transform: scale(1.08); }
  100% { transform: scale(1); }
}
.lj-timer.is-danger {
  animation: lj-pulse 1s ease-in-out infinite;
}
.lj-timer.is-danger .lj-timer-value {
  animation: lj-tick 1s ease-in-out infinite;
  display: inline-block;
}

/* ltimer floating warning lama — sembunyikan, diganti .lj-timer */
.ltimer { display: none !important; }

/* ── Navigation bar soal ── */
.lj-navbar {
  display: flex;
  gap: 8px;
  margin-bottom: 10px;
}
.lj-navbar .lj-nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex: 1;
  padding: 10px 12px;
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: 9px;
  color: var(--text-secondary) !important;
  font-size: 13.5px;
  font-weight: 600;
  font-family: 'Inter', sans-serif;
  text-decoration: none !important;
  transition: background .15s, border-color .15s, color .15s, transform .1s, box-shadow .15s;
  cursor: pointer;
}
.lj-navbar .lj-nav-btn svg {
  width: 16px; height: 16px;
  stroke: currentColor; fill: none;
  stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0;
}
.lj-navbar .lj-nav-btn:hover {
  background: var(--primary-light);
  border-color: var(--primary);
  color: var(--primary) !important;
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(79,110,247,.15);
}
.lj-navbar .lj-nav-btn:active { transform: none; }

/* Tombol tengah (nomor soal) */
.lj-navbar .lj-nav-center {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(79,110,247,.22);
  flex: 0 0 auto;
  min-width: 110px;
}
.lj-navbar .lj-nav-center:hover {
  background: var(--primary-dark);
  border-color: var(--primary-dark);
  color: #fff !important;
}
.lj-nav-counter { font-variant-numeric: tabular-nums; }

/* ── Card soal & petunjuk ── */
.menjawab.card.uk-panel-box {
  border-radius: 14px !important;
  box-shadow: 0 4px 20px rgba(0,0,0,.06) !important;
  border: 1px solid var(--border) !important;
  overflow: hidden;
  margin-bottom: 10px;
}
.menjawab .card-header {
  background: linear-gradient(90deg, #F8F9FD 0%, #EEF1FE 100%);
  border-bottom: 1px solid var(--border-light);
  padding: 10px 18px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 7px;
}
.menjawab .card-header svg {
  width: 14px; height: 14px;
  stroke: var(--text-muted); fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
.menjawab .card-content-padding {
  padding: 18px 20px;
}
.text-soal {
  font-size: 15px;
  line-height: 1.75;
  color: var(--text-primary);
}

/* ── Pilihan jawaban ── */
.answer-chosen .uk-table tbody tr {
  transition: background .13s;
}
.answer-chosen .uk-table tbody td {
  border-bottom: 1px solid var(--border-light) !important;
  padding: 10px 14px !important;
  vertical-align: middle !important;
}
.answer-chosen .uk-table tbody tr:last-child td {
  border-bottom: none !important;
}
.answer-chosen .uk-table tbody tr:hover td {
  background: var(--primary-light) !important;
  cursor: pointer;
}
.answer-chosen label.radio {
  display: flex;
  align-items: center;
  cursor: pointer;
}
.answer-chosen input[type="radio"] {
  accent-color: var(--primary);
  width: 16px; height: 16px;
  cursor: pointer;
}
/* Highlight row yang sudah dipilih */
.answer-chosen .uk-table tbody tr:has(input[type="radio"]:checked) td {
  background: var(--primary-light) !important;
}

/* ── Tombol nomor soal di halaman konfirmasi ── */
.menjawab .card-content-padding [open_target].uk-button {
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  padding: 8px 4px !important;
  background: var(--surface-2) !important;
  background-image: none !important;
  border: 1.5px solid var(--border) !important;
  color: var(--text-secondary) !important;
  box-shadow: none !important;
  transition: all .13s !important;
}
.menjawab .card-content-padding [open_target].uk-button.answered {
  background: var(--primary) !important;
  border-color: var(--primary) !important;
  color: #fff !important;
  box-shadow: 0 2px 6px rgba(79,110,247,.22) !important;
}
.menjawab .card-content-padding [open_target].uk-button:hover {
  border-color: var(--primary) !important;
  color: var(--primary) !important;
  transform: translateY(-1px);
}

/* ── Simpan & Keluar ── */
.simpan-exit.uk-button-primary {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 12px 28px !important;
  font-size: 14.5px !important;
  font-weight: 700 !important;
  border-radius: 10px !important;
  box-shadow: 0 3px 14px rgba(79,110,247,.28) !important;
  transition: background .15s, box-shadow .15s, transform .1s !important;
}
.simpan-exit.uk-button-primary:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 5px 18px rgba(79,110,247,.34) !important;
}

/* ── answered class ── */
.answered {
  background: var(--primary) !important;
  border-left: none !important;
  color: #fff !important;
}

/* ── Responsive ── */
@media (max-width: 640px) {
  .lj-infobar      { flex-direction: column; align-items: flex-start; }
  .lj-timer-wrap   { width: 100%; justify-content: flex-end; }
  .lj-timer-value  { font-size: 18px; }
  .menjawab .card-content-padding { padding: 14px; }
  .text-soal       { font-size: 14px; }
}

.chosen-container-single .chosen-single span {
    color: black;
    padding: 8px;
}

.chosen-container-single .chosen-single {
    height: 38px;
    border-radius: 12px;
}

/* ════════════════════════════════════════════
   CHOSEN – MODERN OVERRIDE
   Selaras dengan Modern Light Theme (Inter, --primary, --border, dll.)
   Letakkan di bagian paling bawah modern-override.css
   ════════════════════════════════════════════ */

/* ── Container ── */
.chosen-container {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-size: 13.5px !important;
  -webkit-user-select: none;
  user-select: none;
}

/* ── Single: tampilan tertutup ── */
.chosen-container-single .chosen-single {
  display: flex !important;
  align-items: center !important;
  height: 38px !important;
  padding: 0 36px 0 12px !important;
  background: #ffffff !important;
  background-image: none !important;
  border: 1.5px solid var(--border, #E5E9F2) !important;
  border-radius: var(--radius-sm, 6px) !important;
  box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,.06)) !important;
  color: var(--text-primary, #1E293B) !important;
  text-shadow: none !important;
  line-height: 38px !important;
  transition: border-color var(--transition, .18s ease),
              box-shadow var(--transition, .18s ease) !important;
  white-space: nowrap;
}
.chosen-container-single .chosen-single:hover {
  border-color: var(--primary, #4F6EF7) !important;
}

/* Teks placeholder */
.chosen-container-single .chosen-default span,
.chosen-container-single .chosen-single.chosen-default span {
  color: var(--text-muted, #94A3B8) !important;
}

/* Teks pilihan */
.chosen-container-single .chosen-single span {
  display: block;
  overflow: hidden;
  margin-right: 0 !important;
  padding: 0 !important;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-primary, #1E293B) !important;
  line-height: 38px !important;
}

/* Ikon arrow: ganti sprite lama dengan unicode/CSS arrow */
.chosen-container-single .chosen-single div {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  width: 36px !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.chosen-container-single .chosen-single div b {
  display: block !important;
  width: 0 !important;
  height: 0 !important;
  background: none !important;
  border-left: 5px solid transparent !important;
  border-right: 5px solid transparent !important;
  border-top: 5px solid var(--text-muted, #94A3B8) !important;
  transition: transform var(--transition, .18s ease),
              border-top-color var(--transition, .18s ease) !important;
}

/* Arrow rotate saat dropdown terbuka */
.chosen-container-single.chosen-with-drop .chosen-single div b {
  transform: rotate(180deg) !important;
  border-top-color: var(--primary, #4F6EF7) !important;
}

/* ── State ACTIVE (fokus) ── */
.chosen-container-active .chosen-single,
.chosen-container-active.chosen-with-drop .chosen-single {
  border-color: var(--primary, #4F6EF7) !important;
  box-shadow: 0 0 0 3px rgba(79,110,247,.14) !important;
  background: #ffffff !important;
  background-image: none !important;
  border-radius: var(--radius-sm, 6px) !important;
}

/* ── Dropdown panel ── */
.chosen-container .chosen-drop {
  background: var(--surface, #ffffff) !important;
  border: 1.5px solid var(--border, #E5E9F2) !important;
  border-top: none !important;
  border-radius: 0 0 var(--radius-sm, 6px) var(--radius-sm, 6px) !important;
  box-shadow: var(--shadow-md, 0 8px 30px rgba(0,0,0,.10)) !important;
  z-index: 1050;
}

/* ── Search box di dalam dropdown ── */
.chosen-container-single .chosen-search {
  padding: 8px 8px 4px !important;
}
.chosen-container-single .chosen-search input[type=text] {
  background: var(--surface-2, #F8F9FD) !important;
  background-image: none !important;
  border: 1.5px solid var(--border, #E5E9F2) !important;
  border-radius: var(--radius-sm, 6px) !important;
  padding: 6px 10px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  color: var(--text-primary, #1E293B) !important;
  transition: border-color var(--transition, .18s ease),
              box-shadow var(--transition, .18s ease) !important;
}
.chosen-container-single .chosen-search input[type=text]:focus {
  border-color: var(--primary, #4F6EF7) !important;
  box-shadow: 0 0 0 3px rgba(79,110,247,.12) !important;
  outline: none !important;
}

/* ── Daftar hasil ── */
.chosen-container .chosen-results {
  margin: 4px 0 !important;
  padding: 0 4px !important;
  max-height: 240px;
}
.chosen-container .chosen-results li {
  padding: 8px 10px !important;
  border-radius: var(--radius-sm, 6px) !important;
  font-size: 13.5px !important;
  color: var(--text-primary, #1E293B) !important;
  line-height: 1.5 !important;
  transition: background var(--transition, .18s ease) !important;
}

/* Item aktif (bisa dipilih) */
.chosen-container .chosen-results li.active-result:hover {
  background: var(--primary-light, #EEF1FE) !important;
  color: var(--primary, #4F6EF7) !important;
}

/* Item yang sedang di-highlight (keyboard / hover) */
.chosen-container .chosen-results li.highlighted {
  background: var(--primary, #4F6EF7) !important;
  background-image: none !important;
  color: #ffffff !important;
}

/* Item yang sudah terpilih */
.chosen-container .chosen-results li.result-selected {
  background: var(--primary-light, #EEF1FE) !important;
  color: var(--primary, #4F6EF7) !important;
  font-weight: 600 !important;
  cursor: default !important;
}

/* Item disabled */
.chosen-container .chosen-results li.disabled-result {
  color: var(--text-muted, #94A3B8) !important;
  cursor: default !important;
}

/* No results */
.chosen-container .chosen-results li.no-results {
  background: var(--surface-2, #F8F9FD) !important;
  color: var(--text-muted, #94A3B8) !important;
  font-style: italic;
}

/* Group header */
.chosen-container .chosen-results li.group-result {
  color: var(--text-muted, #94A3B8) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  padding: 10px 10px 4px !important;
  cursor: default !important;
}
.chosen-container .chosen-results li.group-option {
  padding-left: 18px !important;
}

/* ── Multi-select ── */
.chosen-container-multi .chosen-choices {
  background: #ffffff !important;
  background-image: none !important;
  border: 1.5px solid var(--border, #E5E9F2) !important;
  border-radius: var(--radius-sm, 6px) !important;
  box-shadow: var(--shadow-sm) !important;
  padding: 4px 4px 0 !important;
  min-height: 38px !important;
  transition: border-color var(--transition, .18s ease),
              box-shadow var(--transition, .18s ease) !important;
}
.chosen-container-active .chosen-choices {
  border-color: var(--primary, #4F6EF7) !important;
  box-shadow: 0 0 0 3px rgba(79,110,247,.14) !important;
}

/* Tag pilihan */
.chosen-container-multi .chosen-choices li.search-choice {
  background: var(--primary-light, #EEF1FE) !important;
  background-image: none !important;
  border: 1px solid rgba(79,110,247,.20) !important;
  border-radius: 20px !important;
  box-shadow: none !important;
  color: var(--primary, #4F6EF7) !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  padding: 3px 22px 3px 10px !important;
  margin: 0 4px 4px 0 !important;
}

/* Tombol hapus tag (×) */
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
  top: 50% !important;
  transform: translateY(-50%) !important;
  right: 6px !important;
  background: none !important;
  width: 14px !important;
  height: 14px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
/* Ganti sprite PNG dengan × CSS */
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close::before {
  content: '×' !important;
  font-size: 14px !important;
  line-height: 1 !important;
  color: var(--primary, #4F6EF7) !important;
  opacity: .6;
  transition: opacity var(--transition, .18s ease);
}
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover::before {
  opacity: 1 !important;
}

/* Input pencarian di multi */
.chosen-container-multi .chosen-choices li.search-field input[type=text] {
  color: var(--text-primary, #1E293B) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13.5px !important;
  padding: 4px 6px !important;
  height: 28px !important;
}

/* ── Disabled state ── */
.chosen-disabled {
  opacity: .5 !important;
  cursor: not-allowed !important;
}
.chosen-disabled .chosen-single {
  cursor: not-allowed !important;
  background: var(--surface-2, #F8F9FD) !important;
}

/* ── Abbr (deselect) button di single ── */
.chosen-container-single .chosen-single abbr {
  background: none !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  right: 30px !important;
  width: 16px !important;
  height: 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.chosen-container-single .chosen-single abbr::before {
  content: '×' !important;
  font-size: 15px !important;
  color: var(--text-muted, #94A3B8) !important;
  transition: color var(--transition, .18s ease);
}
.chosen-container-single .chosen-single abbr:hover::before {
  color: var(--danger, #EF4444) !important;
}

/* ── HiDPI: override background-size sprite lama ── */
@media only screen and (-webkit-min-device-pixel-ratio:2),
       only screen and (min-resolution:144dpi) {
  .chosen-container-single .chosen-single abbr,
  .chosen-container-single .chosen-single div b,
  .chosen-container-single .chosen-search input[type=text],
  .chosen-container-multi .chosen-choices .search-choice .search-choice-close {
    background-image: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   BANNER TES ONLINE — Consolidated CSS
   Digunakan di: banner_lembar_jawab/create, index, manage, form
   ═══════════════════════════════════════════════════════════════════ */

/* ────────────────────────────────────────────────────────────────
   1. PAGE HEADER
   ──────────────────────────────────────────────────────────────── */
.bnr-page-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 22px;
}
.bnr-page-header-icon {
  width: 52px; height: 52px;
  border-radius: 14px;
  background: var(--primary-light);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.bnr-page-header-icon svg {
  width: 26px; height: 26px;
  stroke: var(--primary); fill: none;
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
.bnr-page-title {
  margin: 0 0 3px !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--text-primary) !important;
}
.bnr-page-sub {
  margin: 0 !important;
  font-size: 13px;
  color: var(--text-muted);
}

/* ────────────────────────────────────────────────────────────────
   2. CARD WRAPPER
   ──────────────────────────────────────────────────────────────── */
.bnr-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: 28px 30px;
  margin-bottom: 20px;
}
@media (max-width: 640px) {
  .bnr-card { padding: 18px 14px; }
}

/* ────────────────────────────────────────────────────────────────
   3. BUTTONS
   ──────────────────────────────────────────────────────────────── */
.bnr-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 18px;
  border-radius: var(--radius-sm);
  font-family: 'Inter', sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  border: 1.5px solid transparent;
  transition: all var(--transition);
  text-decoration: none !important;
  white-space: nowrap;
}
.bnr-btn svg {
  width: 15px; height: 15px;
  stroke: currentColor; fill: none;
  stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0;
}
.bnr-btn:active { transform: none !important; }

.bnr-btn-primary {
  background: var(--primary);
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(79,110,247,.22);
}
.bnr-btn-primary:hover {
  background: var(--primary-dark) !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(79,110,247,.30);
}
.bnr-btn-secondary {
  background: var(--surface);
  color: var(--text-secondary) !important;
  border-color: var(--border);
}
.bnr-btn-secondary:hover {
  background: var(--primary-light) !important;
  border-color: var(--primary) !important;
  color: var(--primary) !important;
  transform: translateY(-1px);
}
.bnr-btn-success {
  background: var(--success);
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(34,197,94,.22);
}
.bnr-btn-success:hover {
  background: #16A34A !important;
  color: #fff !important;
  transform: translateY(-1px);
}

/* ────────────────────────────────────────────────────────────────
   4. FORM — SECTION STRUCTURE
   ──────────────────────────────────────────────────────────────── */
.bform-section {
  margin-bottom: 26px;
  padding-bottom: 26px;
  border-bottom: 1px solid var(--border-light);
}
.bform-section:last-of-type {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.bform-section-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--text-muted);
  margin-bottom: 14px;
}
.bform-section-label svg {
  width: 15px; height: 15px;
  stroke: var(--primary); fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}

/* ────────────────────────────────────────────────────────────────
   5. FORM — INPUT & LABEL
   ──────────────────────────────────────────────────────────────── */
.bform-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-secondary);
  margin-bottom: 7px;
}
.bform-label svg {
  width: 13px; height: 13px;
  stroke: var(--text-muted); fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0;
}
.bform-input-wrap { position: relative; }
.bform-field-icon {
  position: absolute;
  left: 11px; top: 50%;
  transform: translateY(-50%);
  width: 15px; height: 15px;
  stroke: var(--text-muted); fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  pointer-events: none;
  z-index: 1;
}
.bform-input {
  width: 100%;
  padding: 10px 14px 10px 36px !important;
  border: 1.5px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  color: var(--text-primary) !important;
  background: var(--surface) !important;
  transition: border-color var(--transition), box-shadow var(--transition) !important;
}
.bform-input:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px rgba(79,110,247,.12) !important;
  outline: none !important;
}
.bform-input::placeholder { color: var(--text-muted) !important; }
.bform-input-search { padding-left: 38px !important; }
.bform-autocomplete-wrap { position: relative; }

.bform-help {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  color: var(--text-muted);
  margin-top: 8px;
}
.bform-help svg {
  width: 13px; height: 13px;
  stroke: var(--text-muted); fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0;
}
.bform-readonly-value {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--primary-light);
  color: var(--primary);
  border-radius: var(--radius-sm);
  padding: 10px 16px;
  font-weight: 600;
  font-size: 14px;
}
.bform-readonly-value svg {
  width: 15px; height: 15px;
  stroke: var(--primary); fill: none;
  stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round;
}

/* ── ILS Badge: konfirmasi lembar soal terpilih ── */
.ils-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 9px;
  padding: 7px 13px;
  border-radius: var(--radius-sm);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.4;
}
.ils-badge svg {
  width: 14px; height: 14px; fill: none;
  stroke: currentColor; stroke-width: 2.2;
  stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0;
}
.ils-badge-ok  { background: #F0FDF4; color: #15803D; border: 1px solid #BBF7D0; }
.ils-badge-err { background: #FEF2F2; color: #B91C1C; border: 1px solid #FECACA; }

/* ────────────────────────────────────────────────────────────────
   6. FORM — DATE RANGE
   ──────────────────────────────────────────────────────────────── */
.bform-date-row {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}
.bform-date-field {
  flex: 1;
  min-width: 160px;
}
.bform-date-sep {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 12px;
  flex-shrink: 0;
}
.bform-date-sep svg {
  width: 18px; height: 18px;
  stroke: var(--text-muted); fill: none;
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
.bform-date-input {
  display: block;
  width: 100%;
  padding: 10px 14px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-primary);
  background: var(--surface);
  transition: border-color var(--transition), box-shadow var(--transition);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
.bform-date-input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(79,110,247,.12);
  outline: none;
}
.bform-date-input::-webkit-calendar-picker-indicator {
  opacity: .55;
  cursor: pointer;
  filter: invert(38%) sepia(60%) saturate(600%) hue-rotate(200deg);
}
.bform-date-input::-webkit-calendar-picker-indicator:hover { opacity: 1; }
.bform-date-expired:focus {
  border-color: var(--warning);
  box-shadow: 0 0 0 3px rgba(245,158,11,.12);
}
@media (max-width: 480px) {
  .bform-date-sep { display: none; }
  .bform-date-field { min-width: 100%; }
}

/* ────────────────────────────────────────────────────────────────
   7. FORM — UPLOAD GAMBAR
   ──────────────────────────────────────────────────────────────── */

/* Zona drag-drop — bukan label, tidak bisa diklik untuk browse */
.bform-upload-zone {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 2px dashed var(--border);
  border-radius: var(--radius);
  padding: 30px 20px;
  min-height: 110px;
  text-align: center;
  background: var(--surface-2);
  cursor: default;
  transition: border-color .18s, background .18s;
  user-select: none;
}
.bform-upload-zone.drag-over {
  border-color: var(--primary);
  background: var(--primary-light);
}
.bform-upload-zone.has-image {
  border-style: dashed;
  border-color: var(--success);
  background: #F0FDF4;
}
#img-placeholder-text svg {
  width: 36px; height: 36px;
  stroke: var(--text-muted); fill: none;
  stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;
  display: block;
  margin: 0 auto 10px;
}
#img-placeholder-text p {
  margin: 0 0 4px !important;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-secondary);
}
#img-placeholder-text span {
  font-size: 12px;
  color: var(--text-muted);
}

/* Preview gambar — di luar zona agar tidak konflik event */
#img-preview-container {
  margin-top: 12px;
  text-align: center;
}
#img-preview-out {
  max-width: 100%;
  max-height: 260px;
  border-radius: 8px;
  object-fit: contain;
  display: block;
  margin: 0 auto;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
}

/* Baris aksi upload: tombol browse + nama file */
.bform-upload-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  flex-wrap: wrap;
}

/* Tombol browse = <label for="uFile"> */
.bform-btn-browse {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 18px;
  border: 1.5px solid var(--primary);
  border-radius: var(--radius-sm);
  background: var(--surface);
  color: var(--primary) !important;
  font-family: 'Inter', sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none !important;
  transition: all var(--transition);
}
.bform-btn-browse svg {
  width: 15px; height: 15px;
  stroke: var(--primary); fill: none;
  stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round;
}
.bform-btn-browse:hover {
  background: var(--primary-light);
  box-shadow: 0 2px 8px rgba(79,110,247,.15);
}
.bform-btn-browse:active { transform: scale(.98); }

.bform-filename {
  font-size: 13px;
  color: var(--text-secondary);
  font-style: italic;
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ────────────────────────────────────────────────────────────────
   8. FORM — POSITION CARDS
   ──────────────────────────────────────────────────────────────── */
.bpos-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
@media (max-width: 600px) {
  .bpos-cards { grid-template-columns: 1fr; }
}

/* Base card */
.bpos-card {
  position: relative;
  border: 2px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  overflow: hidden;
  user-select: none;
  transition: border-color .18s, box-shadow .18s, transform .15s, background .18s, opacity .15s;
}

/* Ilustrasi SVG */
.bpos-illus { padding: 14px 14px 8px; }
.bpos-illus-svg {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
}

/* Body teks */
.bpos-card-body { padding: 4px 14px 14px; }
.bpos-card-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 2px;
}
.bpos-card-dim {
  font-size: 11.5px;
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
  margin-bottom: 8px;
  font-weight: 500;
}

/* Status text */
.bpos-card-status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--text-muted);
}
.bpos-card-status svg {
  width: 13px; height: 13px;
  stroke: currentColor; fill: none;
  stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0;
}
.bpos-card-status.status-ok    { color: var(--success); }
.bpos-card-status.status-taken { color: var(--danger);  }

/* Checkmark badge pojok kanan atas */
.bpos-card-check {
  position: absolute;
  top: 10px; right: 10px;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--primary);
  display: flex; align-items: center; justify-content: center;
  opacity: 0;
  transform: scale(.5);
  transition: opacity .2s, transform .2s;
  pointer-events: none;
}
.bpos-card-check svg {
  width: 12px; height: 12px;
  stroke: #fff; fill: none;
  stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
}

/* ── State: idle (belum dicek) ── */
.bpos-card.bpos-idle {
  cursor: not-allowed;
  opacity: .65;
}
.bpos-card.bpos-idle:hover {
  border-color: var(--border);
  box-shadow: none;
  transform: none;
}

/* ── State: loading (sedang AJAX) ── */
.bpos-card.bpos-loading {
  cursor: wait;
  opacity: .6;
  pointer-events: none;
}

/* ── State: ready / tersedia ── */
.bpos-card.bpos-ready {
  cursor: pointer;
  opacity: 1;
}
.bpos-card.bpos-ready:hover {
  border-color: var(--primary);
  box-shadow: 0 4px 18px rgba(79,110,247,.14);
  transform: translateY(-2px);
}
.bpos-card.bpos-ready:active { transform: translateY(0); }

/* ── State: taken / terpakai ── */
.bpos-card.bpos-taken {
  cursor: not-allowed;
  opacity: .45;
  background: var(--surface-2);
}
.bpos-card.bpos-taken:hover {
  border-color: var(--border);
  box-shadow: none;
  transform: none;
}

/* ── State: selected / terpilih ── */
.bpos-card.bpos-selected {
  border-color: var(--primary) !important;
  background: var(--primary-light) !important;
  box-shadow: 0 4px 20px rgba(79,110,247,.18) !important;
}
.bpos-card.bpos-selected .bpos-card-name { color: var(--primary); }
.bpos-card.bpos-selected .bpos-card-check {
  opacity: 1;
  transform: scale(1);
}

/* Loading dots animasi */
.bpos-spin-dot {
  display: inline-block;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--text-muted);
  margin: 0 2px;
  animation: bpos-dot-bounce .8s ease-in-out infinite;
}
.bpos-spin-dot:nth-child(2) { animation-delay: .15s; }
.bpos-spin-dot:nth-child(3) { animation-delay: .30s; }
@keyframes bpos-dot-bounce {
  0%, 80%, 100% { transform: scale(.5); opacity: .4; }
  40%           { transform: scale(1);  opacity: 1;  }
}

/* ────────────────────────────────────────────────────────────────
   9. FORM — FOOTER / SUBMIT
   ──────────────────────────────────────────────────────────────── */
.bform-footer {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--border-light);
  display: flex;
  justify-content: flex-end;
}
.bform-btn-submit {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 28px;
  border: none;
  border-radius: var(--radius-sm);
  background: var(--primary);
  color: #fff !important;
  font-family: 'Inter', sans-serif;
  font-size: 14.5px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 3px 14px rgba(79,110,247,.28);
  transition: all var(--transition);
}
.bform-btn-submit svg {
  width: 17px; height: 17px;
  stroke: #fff; fill: none;
  stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round;
}
.bform-btn-submit:hover {
  background: var(--primary-dark);
  transform: translateY(-1px);
  box-shadow: 0 5px 18px rgba(79,110,247,.36);
}
.bform-btn-submit:active { transform: none; }

/* ────────────────────────────────────────────────────────────────
   10. DATATABLE — CELLS & BADGES (index / manage)
   ──────────────────────────────────────────────────────────────── */
.bnr-dt-no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--primary-light);
  color: var(--primary);
  font-size: 12px;
  font-weight: 700;
}
.bnr-dt-judul { display: flex; flex-direction: column; gap: 2px; }
.bnr-dt-judul strong { font-size: 14px; color: var(--text-primary); }
.bnr-dt-judul small  { font-size: 11.5px; color: var(--text-muted); }
.bnr-dt-date {
  font-size: 13px;
  color: var(--text-secondary);
  font-variant-numeric: tabular-nums;
}

.bnr-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 11.5px;
  font-weight: 600;
  white-space: nowrap;
}
.bnr-badge-top      { background: #EEF1FE; color: var(--primary); }
.bnr-badge-left     { background: #F0FDF4; color: var(--success); }
.bnr-badge-right    { background: #FFF7ED; color: #EA580C; }
.bnr-badge-active   { background: #DCFCE7; color: #16A34A; }
.bnr-badge-inactive { background: var(--surface-2); color: var(--text-muted); border: 1px solid var(--border); }
.bnr-badge-expired  { background: #FEF2F2; color: var(--danger); }
.bnr-badge-pending  { background: #FFFBEB; color: #B45309; }

/* Custom checkbox */
.bnr-checkbox-wrap {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  position: relative;
}
.bnr-checkbox-wrap .bnr-checkbox { opacity: 0; position: absolute; }
.bnr-checkbox-custom {
  width: 18px; height: 18px;
  border: 2px solid var(--border);
  border-radius: 5px;
  background: var(--surface);
  transition: all var(--transition);
  display: flex; align-items: center; justify-content: center;
}
.bnr-checkbox-wrap:hover .bnr-checkbox-custom { border-color: var(--primary); }
.bnr-checkbox:checked + .bnr-checkbox-custom {
  background: var(--primary);
  border-color: var(--primary);
}
.bnr-checkbox:checked + .bnr-checkbox-custom::after {
  content: '';
  width: 5px; height: 9px;
  border: 2px solid #fff;
  border-top: none; border-left: none;
  transform: rotate(45deg) translateY(-1px);
  display: block;
}

/* ────────────────────────────────────────────────────────────────
   11. ACTION BAR & DIALOG (index / manage)
   ──────────────────────────────────────────────────────────────── */
.bnr-action-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 16px;
  padding: 16px 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}
.bnr-dialog-body { padding: 4px 0 8px; }
.bnr-dialog-desc {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13px;
  color: var(--text-secondary);
  margin: 0 0 16px !important;
  line-height: 1.55;
}
.bnr-dialog-desc svg {
  width: 16px; height: 16px;
  stroke: var(--primary); fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0; margin-top: 1px;
}
.bnr-kode-row { display: flex; gap: 8px; align-items: center; }
.bnr-kode-input {
  flex: 1;
  padding: 10px 14px !important;
  border: 1.5px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
  font-family: 'Inter', monospace !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--text-primary) !important;
  background: var(--surface-2) !important;
  letter-spacing: .04em;
}
.bnr-kode-input:focus {
  border-color: var(--primary) !important;
  outline: none !important;
}

/* ────────────────────────────────────────────────────────────────
   12. DATATABLE LOADING DOTS
   ──────────────────────────────────────────────────────────────── */
.bnr-dt-loading { display: inline-flex; gap: 5px; align-items: center; }
.bnr-dt-loading span {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--primary);
  animation: bnr-bounce .8s ease-in-out infinite;
}
.bnr-dt-loading span:nth-child(2) { animation-delay: .15s; }
.bnr-dt-loading span:nth-child(3) { animation-delay: .30s; }
@keyframes bnr-bounce {
  0%, 80%, 100% { transform: scale(.6); opacity: .5; }
  40%           { transform: scale(1);  opacity: 1;  }
}

/* ────────────────────────────────────────────────────────────────
   13. TOAST NOTIFICATION
   ──────────────────────────────────────────────────────────────── */
.bnr-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 30px;
  padding: 10px 22px;
  font-size: 13.5px;
  font-weight: 600;
  box-shadow: 0 8px 30px rgba(0,0,0,.12);
  z-index: 9999;
  opacity: 0;
  transition: opacity .25s, transform .25s;
  white-space: nowrap;
}
.bnr-toast.bnr-toast-show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.bnr-toast-ok   { border-left: 4px solid var(--success); color: #15803D; }
.bnr-toast-warn { border-left: 4px solid var(--warning); color: #92400E; }
.bnr-toast-err  { border-left: 4px solid var(--danger);  color: #B91C1C; }

/* ────────────────────────────────────────────────────────────────
   14. UTILITIES
   ──────────────────────────────────────────────────────────────── */

/* Spin icon untuk loading button */
.spin { animation: spin-anim .7s linear infinite; display: inline-block; }
@keyframes spin-anim { to { transform: rotate(360deg); } }

/* Autocomplete dropdown items */
.ac-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 4px 0;
}
.ac-kode {
  display: inline-block;
  background: var(--primary-light);
  color: var(--primary);
  border-radius: 4px;
  padding: 2px 7px;
  font-size: 11.5px;
  font-weight: 700;
  min-width: 36px;
  text-align: center;
  flex-shrink: 0;
}
.ac-judul {
  font-size: 13px;
  color: var(--text-primary);
}


/* ════════════════════════════════════════════
   CHOSEN – MODERN OVERRIDE
   Selaras dengan Modern Light Theme (Inter, --primary, --border, dll.)
   Letakkan di bagian paling bawah modern-override.css
   ════════════════════════════════════════════ */

/* ── Container ── */
.chosen-container {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-size: 13.5px !important;
  -webkit-user-select: none;
  user-select: none;
}

/* ── Single: tampilan tertutup ── */
.chosen-container-single .chosen-single {
  display: flex !important;
  align-items: center !important;
  height: 38px !important;
  padding: 0 36px 0 12px !important;
  background: #ffffff !important;
  background-image: none !important;
  border: 1.5px solid var(--border, #E5E9F2) !important;
  border-radius: var(--radius-sm, 6px) !important;
  box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,.06)) !important;
  color: var(--text-primary, #1E293B) !important;
  text-shadow: none !important;
  line-height: 38px !important;
  transition: border-color var(--transition, .18s ease),
              box-shadow var(--transition, .18s ease) !important;
  white-space: nowrap;
}
.chosen-container-single .chosen-single:hover {
  border-color: var(--primary, #4F6EF7) !important;
}

/* Teks placeholder */
.chosen-container-single .chosen-default span,
.chosen-container-single .chosen-single.chosen-default span {
  color: var(--text-muted, #94A3B8) !important;
}

/* Teks pilihan */
.chosen-container-single .chosen-single span {
  display: block;
  overflow: hidden;
  margin-right: 0 !important;
  padding: 0 !important;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-primary, #1E293B) !important;
  line-height: 38px !important;
}

/* Ikon arrow: ganti sprite lama dengan unicode/CSS arrow */
.chosen-container-single .chosen-single div {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  width: 36px !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.chosen-container-single .chosen-single div b {
  display: block !important;
  width: 0 !important;
  height: 0 !important;
  background: none !important;
  border-left: 5px solid transparent !important;
  border-right: 5px solid transparent !important;
  border-top: 5px solid var(--text-muted, #94A3B8) !important;
  transition: transform var(--transition, .18s ease),
              border-top-color var(--transition, .18s ease) !important;
}

/* Arrow rotate saat dropdown terbuka */
.chosen-container-single.chosen-with-drop .chosen-single div b {
  transform: rotate(180deg) !important;
  border-top-color: var(--primary, #4F6EF7) !important;
}

/* ── State ACTIVE (fokus) ── */
.chosen-container-active .chosen-single,
.chosen-container-active.chosen-with-drop .chosen-single {
  border-color: var(--primary, #4F6EF7) !important;
  box-shadow: 0 0 0 3px rgba(79,110,247,.14) !important;
  background: #ffffff !important;
  background-image: none !important;
  border-radius: var(--radius-sm, 6px) !important;
}

/* ── Dropdown panel ── */
.chosen-container .chosen-drop {
  background: var(--surface, #ffffff) !important;
  border: 1.5px solid var(--border, #E5E9F2) !important;
  border-top: none !important;
  border-radius: 0 0 var(--radius-sm, 6px) var(--radius-sm, 6px) !important;
  box-shadow: var(--shadow-md, 0 8px 30px rgba(0,0,0,.10)) !important;
  z-index: 1050;
}

/* ── Search box di dalam dropdown ── */
.chosen-container-single .chosen-search {
  padding: 8px 8px 4px !important;
}
.chosen-container-single .chosen-search input[type=text] {
  background: var(--surface-2, #F8F9FD) !important;
  background-image: none !important;
  border: 1.5px solid var(--border, #E5E9F2) !important;
  border-radius: var(--radius-sm, 6px) !important;
  padding: 6px 10px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  color: var(--text-primary, #1E293B) !important;
  transition: border-color var(--transition, .18s ease),
              box-shadow var(--transition, .18s ease) !important;
}
.chosen-container-single .chosen-search input[type=text]:focus {
  border-color: var(--primary, #4F6EF7) !important;
  box-shadow: 0 0 0 3px rgba(79,110,247,.12) !important;
  outline: none !important;
}

/* ── Daftar hasil ── */
.chosen-container .chosen-results {
  margin: 4px 0 !important;
  padding: 0 4px !important;
  max-height: 240px;
}
.chosen-container .chosen-results li {
  padding: 8px 10px !important;
  border-radius: var(--radius-sm, 6px) !important;
  font-size: 13.5px !important;
  color: var(--text-primary, #1E293B) !important;
  line-height: 1.5 !important;
  transition: background var(--transition, .18s ease) !important;
}

/* Item aktif (bisa dipilih) */
.chosen-container .chosen-results li.active-result:hover {
  background: var(--primary-light, #EEF1FE) !important;
  color: var(--primary, #4F6EF7) !important;
}

/* Item yang sedang di-highlight (keyboard / hover) */
.chosen-container .chosen-results li.highlighted {
  background: var(--primary, #4F6EF7) !important;
  background-image: none !important;
  color: #ffffff !important;
}

/* Item yang sudah terpilih */
.chosen-container .chosen-results li.result-selected {
  background: var(--primary-light, #EEF1FE) !important;
  color: var(--primary, #4F6EF7) !important;
  font-weight: 600 !important;
  cursor: default !important;
}

/* Item disabled */
.chosen-container .chosen-results li.disabled-result {
  color: var(--text-muted, #94A3B8) !important;
  cursor: default !important;
}

/* No results */
.chosen-container .chosen-results li.no-results {
  background: var(--surface-2, #F8F9FD) !important;
  color: var(--text-muted, #94A3B8) !important;
  font-style: italic;
}

/* Group header */
.chosen-container .chosen-results li.group-result {
  color: var(--text-muted, #94A3B8) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  padding: 10px 10px 4px !important;
  cursor: default !important;
}
.chosen-container .chosen-results li.group-option {
  padding-left: 18px !important;
}

/* ── Multi-select ── */
.chosen-container-multi .chosen-choices {
  background: #ffffff !important;
  background-image: none !important;
  border: 1.5px solid var(--border, #E5E9F2) !important;
  border-radius: var(--radius-sm, 6px) !important;
  box-shadow: var(--shadow-sm) !important;
  padding: 4px 4px 0 !important;
  min-height: 38px !important;
  transition: border-color var(--transition, .18s ease),
              box-shadow var(--transition, .18s ease) !important;
}
.chosen-container-active .chosen-choices {
  border-color: var(--primary, #4F6EF7) !important;
  box-shadow: 0 0 0 3px rgba(79,110,247,.14) !important;
}

/* Tag pilihan */
.chosen-container-multi .chosen-choices li.search-choice {
  background: var(--primary-light, #EEF1FE) !important;
  background-image: none !important;
  border: 1px solid rgba(79,110,247,.20) !important;
  border-radius: 20px !important;
  box-shadow: none !important;
  color: var(--primary, #4F6EF7) !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  padding: 3px 22px 3px 10px !important;
  margin: 0 4px 4px 0 !important;
}

/* Tombol hapus tag (×) */
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
  top: 50% !important;
  transform: translateY(-50%) !important;
  right: 6px !important;
  background: none !important;
  width: 14px !important;
  height: 14px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
/* Ganti sprite PNG dengan × CSS */
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close::before {
  content: '×' !important;
  font-size: 14px !important;
  line-height: 1 !important;
  color: var(--primary, #4F6EF7) !important;
  opacity: .6;
  transition: opacity var(--transition, .18s ease);
}
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover::before {
  opacity: 1 !important;
}

/* Input pencarian di multi */
.chosen-container-multi .chosen-choices li.search-field input[type=text] {
  color: var(--text-primary, #1E293B) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13.5px !important;
  padding: 4px 6px !important;
  height: 28px !important;
}

/* ── Disabled state ── */
.chosen-disabled {
  opacity: .5 !important;
  cursor: not-allowed !important;
}
.chosen-disabled .chosen-single {
  cursor: not-allowed !important;
  background: var(--surface-2, #F8F9FD) !important;
}

/* ── Abbr (deselect) button di single ── */
.chosen-container-single .chosen-single abbr {
  background: none !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  right: 30px !important;
  width: 16px !important;
  height: 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.chosen-container-single .chosen-single abbr::before {
  content: '×' !important;
  font-size: 15px !important;
  color: var(--text-muted, #94A3B8) !important;
  transition: color var(--transition, .18s ease);
}
.chosen-container-single .chosen-single abbr:hover::before {
  color: var(--danger, #EF4444) !important;
}

/* ── HiDPI: override background-size sprite lama ── */
@media only screen and (-webkit-min-device-pixel-ratio:2),
       only screen and (min-resolution:144dpi) {
  .chosen-container-single .chosen-single abbr,
  .chosen-container-single .chosen-single div b,
  .chosen-container-single .chosen-search input[type=text],
  .chosen-container-multi .chosen-choices .search-choice .search-choice-close {
    background-image: none !important;
  }
}

/* ════════════════════════════════════════════
   DATATABLES – USER INTERACTION OVERRIDE
   Hanya select & input agar selaras modern theme
   ════════════════════════════════════════════ */

/* "Show X entries" select */
.dataTables_length select {
  background: var(--surface) !important;
  background-image: none !important;
  border: 1.5px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
  color: var(--text-primary) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  padding: 4px 10px !important;
  height: 32px !important;
  appearance: auto !important;
  -webkit-appearance: auto !important;
  cursor: pointer !important;
  transition: border-color var(--transition), box-shadow var(--transition) !important;
}
.dataTables_length select:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px rgba(79,110,247,.12) !important;
  outline: none !important;
}

/* Search input */
.dataTables_filter input[type="text"],
.dataTables_filter input {
  background: var(--surface) !important;
  border: 1.5px solid var(--border) !important;
  border-radius: 20px !important;
  color: var(--text-primary) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  padding: 5px 14px !important;
  height: 32px !important;
  transition: border-color var(--transition), box-shadow var(--transition) !important;
}
.dataTables_filter input[type="text"]:focus,
.dataTables_filter input:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px rgba(79,110,247,.12) !important;
  outline: none !important;
}
.dataTables_filter input::placeholder {
  color: var(--text-muted) !important;
}

.cke_reset {
  border-radius: 12px;
}

.cke_reset_all, .cke_reset_all *, .cke_reset_all a, .cke_reset_all textarea {
  border-radius: 12px;
}

.cke_top, .cke_dialog_title {
  border-radius: 12px 12px 0 0;
}

.cke_bottom {
  border-radius: 0 0 12px 12px;
}

.cke_wysiwyg_frame, .cke_wysiwyg_div {
  padding: 15px !important;
}

a.cke_dialog_tab {
  color: #484848 !important;
}

.cke_dialog_ui_button {
  color: #000000 !important;
}

.elfinder .elfinder-navbar {
    font-size: .85em;
}

.elfinder-cwd-view-icons .elfinder-cwd-filename, .elfinder-cwd-view-list td {
    font-size: .85em;
}

.uk-overflow-container {
    border: 1px solid #ddd;
    border-radius: 12px;
}

.elfinder {
    border-radius: 0 0 12px 12px;
}

.elfinder-quicklook-titlebar-icon {
    top: 71%;
}

.elfinder-quicklook-titlebar-icon .ui-icon {
    border: 0px;
}

/* TOEFL Error Identification formatting */
.toefl-question,
.question-content .toefl-question,
.toefl-error-question {
  line-height: 2.6;
}

.toefl-error-option {
  position: relative;
  display: inline-block;
  text-decoration: underline;
  text-underline-offset: 3px;
  margin: 0 2px;
  padding-bottom: 18px;
  line-height: 1.2;
  white-space: nowrap;
}

.toefl-error-option::after {
  content: attr(data-label);
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  font-size: 12px;
  line-height: 1;
  font-weight: normal;
  text-decoration: none;
  color: inherit;
}

/* TOEFL Reading Comprehension passage and references */
.toefl-reading-passage {
  font-size: 16px;
  line-height: 1.85;
  max-width: 780px;
}

.toefl-reading-passage p {
  position: relative;
  margin: 0 0 14px;
  padding-left: 44px;
}

.toefl-line-marker {
  display: inline-block;
  min-width: 28px;
  margin-right: 8px;
  margin-left: -36px;
  font-size: 13px;
  line-height: 1.3;
  font-style: italic;
  font-weight: normal;
  color: #444;
  text-decoration: none;
}

.toefl-reading-ref {
  background: #fff3c4;
  border-radius: 3px;
  padding: 0 2px;
}

.toefl-reading-ref.active,
.toefl-reading-ref.is-active {
  background: #ffe58a;
  outline: 1px solid #e5b800;
}

@media (max-width: 600px) {
  .toefl-reading-passage {
    font-size: 15px;
    line-height: 1.9;
  }

  .toefl-reading-passage p {
    padding-left: 34px;
  }

  .toefl-line-marker {
    min-width: 24px;
    margin-right: 6px;
    margin-left: -30px;
    font-size: 12px;
  }
}

/* TOEFL passage rendering in test runtime (lembar_jawab) */
.menjawab .content-isi.toefl-reading-passage {
  max-width: none;
}

.menjawab .content-isi.toefl-reading-passage p {
  overflow: visible;
}

.menjawab .content-isi.toefl-reading-passage .toefl-line-marker {
  color: #334155;
}
