/* --- FONTS & GLOBAL --- */
  body {
    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    background-color: #f8fafc; /* Slate 50 */
    color: #334155; /* Slate 700 */
    user-select: none;
    overflow-x: hidden;
  }

  h1, h2, h3, h4, h5, h6, .font-heading {
    font-family: 'Poppins', 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  }

  /* --- UTILITIES --- */
  .glass {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.6);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.05);
  }

  .fade-in {
    animation: fadeIn 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  }

  @keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
  }

  /* Custom Scrollbar */
  ::-webkit-scrollbar {
    width: 6px;
    height: 6px;
  }
  
  ::-webkit-scrollbar-track {
    background: transparent;
  }
  
  ::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 10px;
  }
  
  ::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
  }

  /* --- SIDEBAR STYLES --- */
  :root {
    /* Satu sumber warna untuk navbar/sidebar dan header portal. */
    --portal-navbar-bg: #2b369e;
  }

  .sidebar-bg {
    background: var(--portal-navbar-bg); /* Warna navbar portal */
    border-right: 1px solid rgba(0, 0, 0, 0.1);
    color: #e0e7ff; /* Indigo-50 */
  }

  /* Header Portal Admin, Operator, dan Peserta memakai warna navbar yang sama. */
  .portal-sidebar-header {
    background: var(--portal-navbar-bg);
    border-color: rgba(255, 255, 255, 0.12);
  }

  .portal-version-label {
    color: #e0e7ff;
  }


  /* Logo statis untuk header Portal Admin, Operator, dan Peserta. */
  .portal-header-logo {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 10px;
    background: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.30);
    box-shadow: 0 8px 18px rgba(8, 15, 80, 0.24);
  }

  .portal-header-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .sidebar-item {
    position: relative;
    display: flex;
    align-items: center;
    padding: 12px 16px;
    margin-bottom: 4px;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
    overflow: hidden;
    white-space: nowrap;
    font-weight: 500;
    font-size: 0.9rem;
  }


/* RCAB: menu khusus Admin harus benar-benar tersembunyi pada Portal Operator. */
.sidebar-item.hidden,
.sidebar-item.rcab-menu-hidden {
  display: none !important;
  visibility: hidden !important;
}

  .sidebar-item:hover {
    background: rgba(255, 255, 255, 0.08);
    color: #f1f5f9;
  }

  .sidebar-item.active {
    background: #2563eb; /* Blue 600 */
    color: #fff;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
  }

  .sidebar-item i {
    width: 24px;
    text-align: center;
    margin-right: 12px;
    font-size: 1.1rem;
    flex-shrink: 0;
    transition: transform 0.2s;
  }

  .sidebar-item:hover i {
    transform: scale(1.1);
  }

  /* Logika Collapse Sidebar */
  #admin-sidebar.collapsed {
    width: 80px;
  }

  #admin-sidebar.collapsed .sidebar-text,
  #admin-sidebar.collapsed .user-info-text,
  #admin-sidebar.collapsed .sidebar-header-text,
  #admin-sidebar.collapsed .section-label {
    display: none;
  }

  #admin-sidebar.collapsed .sidebar-item {
    justify-content: center;
    padding: 12px 0;
  }

  #admin-sidebar.collapsed .sidebar-item i {
    margin-right: 0;
  }

  #admin-sidebar.collapsed .user-info-avatar {
    margin-right: 0;
    width: 40px;
    height: 40px;
  }


  /* Sidebar Peserta mengikuti perilaku sidebar Admin/Operator:
     pada desktop sidebar menyusut menjadi rail ikon 80px, bukan menghilang. */
  #peserta-sidebar {
    flex-shrink: 0;
  }

  @media (min-width: 768px) {
    #peserta-sidebar.peserta-sidebar-collapsed {
      width: 80px !important;
      min-width: 80px !important;
      overflow: hidden !important;
      opacity: 1;
      border-right-width: 1px;
      transform: translateX(0);
      pointer-events: auto;
    }

    #peserta-sidebar.peserta-sidebar-collapsed .peserta-sidebar-header-text,
    #peserta-sidebar.peserta-sidebar-collapsed .peserta-user-info-text,
    #peserta-sidebar.peserta-sidebar-collapsed .peserta-section-label,
    #peserta-sidebar.peserta-sidebar-collapsed .peserta-sidebar-footer-text,
    #peserta-sidebar.peserta-sidebar-collapsed .sidebar-text {
      display: none;
    }

    #peserta-sidebar.peserta-sidebar-collapsed .peserta-sidebar-brand,
    #peserta-sidebar.peserta-sidebar-collapsed .peserta-user-info {
      justify-content: center;
    }

    #peserta-sidebar.peserta-sidebar-collapsed .peserta-user-avatar {
      width: 40px;
      height: 40px;
    }

    #peserta-sidebar.peserta-sidebar-collapsed .sidebar-item {
      justify-content: center;
      padding: 12px 0;
    }

    #peserta-sidebar.peserta-sidebar-collapsed .sidebar-item i {
      margin-right: 0;
    }
  }

  /* --- MODERN DASHBOARD CARDS --- */
  .dash-card {
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid #e2e8f0; /* Slate 200 */
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px -1px rgba(0, 0, 0, 0.02);
    padding: 0; /* PENTING: Padding 0 agar konten/tabel bisa full width */
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    display: flex;
    flex-direction: column;
  }

  .dash-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 20px -5px rgba(0, 0, 0, 0.06), 0 4px 6px -2px rgba(0, 0, 0, 0.03);
    border-color: #cbd5e1;
  }

  /* Ikon Stat Card */
  .stat-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    transition: transform 0.3s ease;
  }

  .dash-card:hover .stat-card-icon {
    transform: scale(1.1) rotate(6deg);
  }

  /* --- MODERN TABLE STYLES --- */
  .table-modern {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
  }

  .table-modern thead th {
    background-color: #f8fafc;
    color: #64748b;
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 16px;
    border-bottom: 1px solid #e2e8f0;
    text-align: left;
  }

  /* Rounded corners untuk header tabel */
  .table-modern thead th:first-child {
    border-top-left-radius: 0px;
  }
  
  .table-modern thead th:last-child {
    border-top-right-radius: 0px;
  }

  .table-modern tbody td {
    padding: 16px;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    color: #334155;
  }

  .table-modern tbody tr:last-child td {
    border-bottom: none;
  }
  
  .table-modern tbody tr:hover {
    background-color: #f8fafc;
  }

  /* --- BADGES & CHIPS --- */
  .badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 9999px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.025em;
    text-transform: uppercase;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
  }
  
  .badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    margin-right: 6px;
  }

  /* --- TIMELINE --- */
  .timeline-item {
    position: relative;
    padding-left: 24px;
    padding-bottom: 24px;
    border-left: 2px solid #e2e8f0;
  }

  .timeline-item:last-child {
    border-left-color: transparent;
    padding-bottom: 0;
  }

  .timeline-dot {
    position: absolute;
    left: -6px;
    top: 0;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #cbd5e1;
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px #f1f5f9;
    transition: all 0.2s;
  }

  .timeline-item:hover .timeline-dot {
    background: #3b82f6;
    transform: scale(1.3);
  }

  /* --- UTILITIES GRADIENT --- */
  .bg-gradient-blue { background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%); color: white; }
  .bg-gradient-purple { background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%); color: white; }
  .bg-gradient-emerald { background: linear-gradient(135deg, #10b981 0%, #059669 100%); color: white; }
  .bg-gradient-orange { background: linear-gradient(135deg, #f97316 0%, #ea580c 100%); color: white; }

  /* --- SECURITY BADGE --- */
  .cbt-secure-badge {
    position: static;
    transform: none;
    background: transparent;
    color: #94a3b8; /* Slate 400 */
    padding: 0;
    margin-top: 25px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-family: monospace;
    font-size: 11px;
    font-weight: 500;
    pointer-events: none;
    border: none;
    box-shadow: none;
    backdrop-filter: none;
  }

  .cbt-secure-badge i {
    color: #f59e0b; /* Kuning emas */
    font-size: 12px;
  }

  @media (max-width: 640px) {
    .cbt-secure-badge {
      font-size: 9px !important;
      padding: 4px 12px !important;
      gap: 5px !important;
      bottom: 4px !important;
      max-width: 85% !important;
    }
  }

  #page-login {
    background-color: #0f172a; /* Fallback */
  }

  /* --- MODERN EXAM UI UPDATE --- */
  /* 1. Header Gradient & Glass */
  .exam-header {
    background: #2b369e; /* Warna Biru Sidebar Admin */
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    color: white;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  }

  /* 2. Timer Capsule */
  .timer-capsule {
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #facc15;
    padding: 6px 16px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: 'Courier New', monospace;
  }

  /* 3. Question Card & Typography */
  .question-card {
    background: white;
    border-radius: 20px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.05);
    border: 1px solid #f1f5f9;
    overflow: hidden;
  }

  .question-text {
    font-family: 'Poppins', 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-weight: 500;
    color: #1e293b;
    line-height: 1.8;
  }

  /* 4. Modern Option (Radio Button Replacement) */
  .option-label {
    display: flex;
    align-items: center;
    padding: 16px 20px;
    border: 2px solid #e2e8f0;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    background: #fff;
    position: relative;
  }

  .option-label:hover {
    background-color: #f8fafc;
    border-color: #cbd5e1;
    transform: translateY(-1px);
  }

  .option-label.checked {
    border-color: #3b82f6; /* Blue 500 */
    background-color: #eff6ff; /* Blue 50 */
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.15);
  }

  /* Custom Radio Circle */
  .custom-radio {
    width: 22px;
    height: 22px;
    border: 2px solid #cbd5e1;
    border-radius: 50%;
    margin-right: 16px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    background: white;
  }

  .option-label.checked .custom-radio {
    border-color: #3b82f6;
    background: #3b82f6;
  }

  .custom-radio::after {
    content: '';
    width: 8px;
    height: 8px;
    background: white;
    border-radius: 50%;
    transform: scale(0);
    transition: transform 0.2s;
  }

  .option-label.checked .custom-radio::after {
    transform: scale(1);
  }

  /* 5. Navigation Sidebar Compact */
  .nav-btn-modern {
    width: 36px; /* Ukuran fix kecil */
    height: 36px;
    font-size: 0.75rem;
    border-radius: 8px;
    font-weight: 600;
    transition: all 0.2s;
    border: 1px solid #e2e8f0;
    color: #64748b;
    background: white;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .nav-btn-modern:hover {
    border-color: #94a3b8;
    color: #334155;
  }

  /* Active / Current Question */
  .nav-btn-modern.current {
    border: 2px solid #f59e0b; /* Amber/Yellow border */
    background: #fffbeb;
    color: #d97706;
    transform: scale(1.1);
    z-index: 10;
    box-shadow: 0 2px 4px rgba(245, 158, 11, 0.2);
  }

  /* Answered */
  .nav-btn-modern.answered {
    background: #3b82f6;
    border-color: #3b82f6;
    color: white;
    box-shadow: 0 2px 4px rgba(59, 130, 246, 0.3);
  }

  /* --- PIN SESI: ELEMEN KLIK NON-COPY --- */
  .pin-reset-cell,
  .pin-reset-trigger,
  .pin-reset-trigger * {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
  }

  .pin-reset-trigger {
    display: inline-flex;
    min-width: 112px;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 8px 12px;
    border: 1px solid #fde68a;
    border-radius: 10px;
    background: #fffbeb;
    color: #92400e;
    cursor: pointer;
    touch-action: manipulation;
    transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
  }

  .pin-reset-trigger:hover {
    background: #fef3c7;
    border-color: #fbbf24;
    box-shadow: 0 3px 8px rgba(180, 83, 9, 0.12);
  }

  .pin-reset-trigger:active {
    transform: scale(0.98);
  }

  .pin-reset-trigger:focus-visible {
    outline: 3px solid rgba(59, 130, 246, 0.35);
    outline-offset: 2px;
  }

  .pin-reset-value {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1;
  }

  .pin-reset-hint {
    color: #a16207;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.1;
    text-transform: uppercase;
  }

  /* PIN Pending hanya informasi; PIN Expired sudah dihapus dari server. */
  .pin-pending-display,
  .pin-expired-display {
    display: inline-flex;
    min-width: 112px;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 8px 12px;
    border-radius: 10px;
    user-select: none;
  }

  .pin-pending-display {
    border: 1px solid #cbd5e1;
    background: #f8fafc;
    color: #475569;
    cursor: default;
  }

  .pin-expired-display {
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    color: #94a3b8;
    cursor: not-allowed;
  }

  .pin-pending-value,
  .pin-expired-value {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.10em;
    line-height: 1;
  }

  .pin-pending-hint,
  .pin-expired-hint {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.1;
    text-transform: uppercase;
  }

  .pin-pending-hint { color: #64748b; }
  .pin-expired-hint { color: #94a3b8; }

  /* --- ANIMATION HELPERS --- */
  .animate-spin {
    animation: spin 1s linear infinite;
  }
  
  @keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
  }


  /* --- MODAL AKUN SAYA --- */
  .my-account-popup {
    width: min(460px, calc(100vw - 28px)) !important;
    padding: 0 0 24px !important;
    border-radius: 22px !important;
    overflow: hidden !important;
  }

  .my-account-popup .my-account-title {
    display: block !important;
    margin: 0 !important;
    padding: 24px 28px 22px !important;
    border-bottom: 1px solid #e2e8f0 !important;
    color: #1e293b !important;
    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    text-align: left !important;
  }

  .my-account-popup .my-account-html {
    margin: 0 !important;
    padding: 22px 28px 0 !important;
  }

  .my-account-panel {
    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  }

  .my-account-section-title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    color: #334155;
    font-size: 13px;
    font-weight: 800;
  }

  .my-account-section-title i {
    display: inline-flex;
    width: 32px;
    height: 32px;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: #eff6ff;
    color: #2563eb;
  }

  .my-account-list {
    overflow: hidden;
    border: 1px solid #e2e8f0;
    border-radius: 15px;
    background: #ffffff;
  }

  .my-account-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 15px;
    border-bottom: 1px solid #edf2f7;
  }

  .my-account-row:last-child {
    border-bottom: 0;
  }

  .my-account-row-icon {
    display: inline-flex;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: #f8fafc;
    color: #64748b;
  }

  .my-account-row-content {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 3px;
  }

  .my-account-row-label {
    color: #94a3b8;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .05em;
    line-height: 1.2;
    text-transform: uppercase;
  }

  .my-account-row-value {
    overflow-wrap: anywhere;
    color: #1e293b;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.45;
  }

  .my-account-popup .swal2-actions {
    box-sizing: border-box;
    width: auto !important;
    margin: 18px 28px 0 !important;
  }

  .my-account-popup .my-account-confirm {
    width: 100% !important;
    min-height: 46px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #2848b8 !important;
    color: #ffffff !important;
    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    cursor: pointer !important;
    box-shadow: 0 8px 16px rgba(37, 72, 184, .18) !important;
  }

  .my-account-popup .my-account-confirm:hover {
    background: #1e3a9a !important;
  }

  @media (max-width: 520px) {
    .my-account-popup .my-account-title {
      padding: 22px !important;
    }

    .my-account-popup .my-account-html {
      padding: 20px 22px 0 !important;
    }

    .my-account-popup .swal2-actions {
      margin-left: 22px !important;
      margin-right: 22px !important;
    }
  }

  /* --- MODAL UBAH PASSWORD --- */
  .password-change-popup {
    width: min(460px, calc(100vw - 28px)) !important;
    padding: 0 0 24px !important;
    border-radius: 22px !important;
    overflow: hidden !important;
  }

  .password-change-popup .password-change-title {
    display: block !important;
    margin: 0 !important;
    padding: 24px 28px 23px !important;
    border-bottom: 1px solid #e2e8f0 !important;
    color: #1e293b !important;
    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.01em !important;
    text-align: left !important;
  }

  .password-change-popup .password-change-html {
    margin: 0 !important;
    padding: 24px 28px 0 !important;
    overflow: visible !important;
  }

  .password-change-popup .password-field-group {
    margin: 0 0 16px;
  }

  .password-change-popup .password-field-label {
    display: block;
    margin: 0 0 8px;
    color: #64748b;
    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 12px;
    font-weight: 700;
  }

  .password-change-popup .password-field-label-primary {
    color: #2563eb;
  }

  .password-change-popup .password-field-wrap {
    position: relative;
  }

  .password-change-popup .password-field-input {
    box-sizing: border-box;
    display: block;
    width: 100%;
    height: 46px;
    margin: 0;
    padding: 0 44px 0 14px;
    border: 1px solid #dbe2ea;
    border-radius: 12px;
    outline: 0;
    background: #f8fafc;
    color: #1e293b;
    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 14px;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
  }

  .password-change-popup .password-field-input:focus,
  .password-change-popup .password-field-input-primary {
    border-color: #8ab8ff;
    background: #f2f7ff;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, .08);
  }

  .password-change-popup .password-field-input:focus {
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, .16);
  }

  .password-change-popup .password-visibility-btn {
    position: absolute;
    top: 50%;
    right: 10px;
    display: flex;
    width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #94a3b8;
    cursor: pointer;
    transition: color .18s ease, background-color .18s ease;
  }

  .password-change-popup .password-visibility-btn:hover {
    color: #475569;
    background: #eaf2ff;
  }

  .password-change-popup .swal2-validation-message {
    margin: 14px 0 0 !important;
    border-radius: 10px !important;
    font-size: 12px !important;
    text-align: left !important;
  }

  .password-change-popup .swal2-actions {
    box-sizing: border-box;
    display: flex !important;
    width: auto !important;
    margin: 8px 28px 0 !important;
    gap: 12px !important;
  }

  .password-change-popup .password-change-confirm,
  .password-change-popup .password-change-cancel {
    flex: 1 1 0 !important;
    min-height: 48px !important;
    margin: 0 !important;
    border-radius: 12px !important;
    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease !important;
  }

  .password-change-popup .password-change-cancel {
    order: 1 !important;
  }

  .password-change-popup .password-change-confirm {
    order: 2 !important;
    box-shadow: 0 8px 16px rgba(37, 72, 184, .18) !important;
  }

  .password-change-popup .password-change-confirm:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 10px 20px rgba(37, 72, 184, .24) !important;
  }

  .password-change-popup .password-change-cancel {
    border: 1px solid #cbd5e1 !important;
    background: #ffffff !important;
    color: #475569 !important;
    box-shadow: none !important;
  }

  .password-change-popup .password-change-cancel:hover {
    transform: translateY(-1px) !important;
    border-color: #94a3b8 !important;
    background: #f8fafc !important;
    color: #334155 !important;
  }

  @media (max-width: 520px) {
    .password-change-popup .password-change-title {
      padding-left: 22px !important;
    }

    .password-change-popup .password-change-html {
      padding: 22px 22px 0 !important;
    }

    .password-change-popup .swal2-actions {
      margin-right: 22px !important;
      margin-left: 22px !important;
    }
  }


  /* --- MODAL RESET DATA --- */
  .data-reset-popup {
    width: min(520px, calc(100vw - 28px)) !important;
    border-radius: 24px !important;
  }

  .data-reset-popup .data-reset-title {
    padding-bottom: 20px !important;
    color: #991b1b !important;
  }

  .data-reset-popup .data-reset-html {
    padding-top: 22px !important;
  }

  .data-reset-dialog-content {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .data-reset-dialog-alert {
    display: flex;
    gap: 12px;
    padding: 14px;
    border: 1px solid #fecaca;
    border-radius: 16px;
    background: #fff1f2;
    color: #991b1b;
  }

  .data-reset-dialog-alert-icon {
    display: flex;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: #ffffff;
    color: #dc2626;
    box-shadow: 0 4px 10px rgba(220, 38, 38, .08);
  }

  .data-reset-dialog-alert-title {
    margin: 0 0 4px;
    color: #7f1d1d;
    font-size: 13px;
    font-weight: 900;
  }

  .data-reset-dialog-alert-text {
    margin: 0;
    color: #b91c1c;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.65;
  }

  .data-reset-dialog-selection {
    padding: 13px 14px;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #f8fafc;
  }

  .data-reset-dialog-section-title {
    margin: 0 0 10px;
    color: #475569;
    font-size: 12px;
    font-weight: 900;
  }

  .data-reset-dialog-chip-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  .password-change-popup .password-field-label-danger {
    color: #b91c1c;
  }

  .password-change-popup .data-reset-confirm-input {
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
  }

  .data-reset-popup .data-reset-actions {
    margin-top: 10px !important;
  }

  .data-reset-popup .data-reset-cancel {
    order: 1 !important;
  }

  .data-reset-popup .data-reset-confirm {
    order: 2 !important;
    background: #dc2626 !important;
    box-shadow: 0 8px 16px rgba(220, 38, 38, .20) !important;
  }

  .data-reset-popup .data-reset-confirm:hover {
    background: #b91c1c !important;
    box-shadow: 0 10px 20px rgba(220, 38, 38, .28) !important;
  }

  @media (max-width: 520px) {
    .data-reset-popup .data-reset-dialog-alert {
      padding: 12px;
    }

    .data-reset-popup .data-reset-dialog-alert-icon {
      width: 32px;
      height: 32px;
      flex-basis: 32px;
    }
  }


  .pending-password-popup {
    width: min(448px, calc(100vw - 28px)) !important;
    padding: 32px 32px 30px !important;
    border-radius: 24px !important;
    box-shadow: 0 18px 48px rgba(15, 23, 42, .16) !important;
  }

  .pending-password-popup .pending-password-title {
    display: none !important;
  }

  .pending-password-popup .pending-password-html {
    padding: 0 !important;
  }

  .pending-password-popup .pending-security-icon {
    display: flex;
    width: 64px;
    height: 64px;
    margin: 0 auto 15px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #fef3c7;
    color: #d28a00;
    font-size: 25px;
  }

  .pending-password-popup .pending-password-heading {
    margin: 0;
    color: #0f172a;
    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 21px;
    font-weight: 900;
    line-height: 1.25;
    text-align: center;
  }

  .pending-password-popup .pending-password-subtitle {
    max-width: 345px;
    margin: 7px auto 24px;
    color: #475569;
    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 15px;
    line-height: 1.45;
    text-align: center;
  }

  .pending-password-popup .password-change-form {
    margin-top: 0;
  }

  .pending-password-popup .swal2-actions {
    margin: 10px 0 0 !important;
  }

  .pending-password-popup .pending-password-confirm {
    width: 100% !important;
    flex: 1 1 100% !important;
    min-height: 48px !important;
    border-radius: 11px !important;
    background: #2848b8 !important;
    box-shadow: 0 12px 22px rgba(37, 72, 184, .26) !important;
  }

  @media (max-width: 520px) {
    .pending-password-popup {
      padding: 26px 22px 24px !important;
    }
  }

/* -------------------------------------------------------------------------
   LOGIN — layout enterprise dua panel sesuai halaman referensi.
   ------------------------------------------------------------------------- */
#page-login {
  isolation: isolate;
  min-height: 100svh;
  background: #f7fbff;
  color: #0a2459;
}

#page-login .login-layout {
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(540px, 1.18fr) minmax(430px, 0.82fr);
  background: #f8fbff;
}

#page-login .login-hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: clamp(42px, 5.2vw, 88px);
  color: #ffffff;
  background: #061b43;
}

#page-login .login-hero-bg,
#page-login .login-hero-overlay {
  position: absolute;
  inset: 0;
}

#page-login .login-hero-bg {
  background-size: cover;
  background-position: center;
  transform: scale(1.015);
  filter: saturate(0.92) contrast(1.06) brightness(0.9);
}

#page-login .login-hero-overlay {
  background:
    linear-gradient(90deg, rgba(3, 16, 42, 0.96) 0%, rgba(4, 24, 58, 0.91) 45%, rgba(5, 33, 77, 0.82) 100%),
    radial-gradient(circle at 16% 22%, rgba(25, 111, 255, 0.26), transparent 34%),
    radial-gradient(circle at 75% 80%, rgba(6, 74, 185, 0.24), transparent 35%);
  box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.06);
}

#page-login .login-hero-content {
  position: relative;
  z-index: 1;
  width: min(100%, 780px);
}

#page-login .login-trust-row {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: clamp(34px, 4.4vw, 54px);
  color: rgba(255, 255, 255, 0.94);
  font-size: clamp(0.9rem, 1vw, 1.06rem);
  font-weight: 600;
  letter-spacing: -0.015em;
}

#page-login .login-trust-row .fa-circle {
  font-size: 0.34rem;
  color: #1672ff;
  opacity: 0.95;
}

#page-login .login-trust-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  color: #1d7cff;
  border: 1px solid rgba(46, 127, 255, 0.68);
  background: rgba(6, 31, 77, 0.46);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.04) inset;
  font-size: 1.12rem;
}

#page-login .login-hero-title {
  margin: 0;
  display: grid;
  gap: 0;
  color: #ffffff;
  font-family: Arial, 'Helvetica Neue', Helvetica, ui-sans-serif, system-ui, sans-serif;
  font-size: clamp(4rem, 6vw, 5.35rem);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.012em;
  word-spacing: 0.02em;
  font-kerning: normal;
  font-variant-ligatures: none;
  text-align: left;
  text-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
}

#page-login .login-hero-title span {
  display: block;
  margin: 0;
  padding: 0;
  text-align: left;
  text-indent: 0;
}

#page-login .login-hero-line {
  display: block;
  width: 58px;
  height: 4px;
  margin: clamp(26px, 3vw, 34px) 0 16px;
  border-radius: 999px;
  background: linear-gradient(90deg, #2f80ff, rgba(47, 128, 255, 0));
  box-shadow: 0 0 18px rgba(47, 128, 255, 0.52);
}

#page-login .login-hero-subtitle {
  margin: 0;
  color: rgba(255, 255, 255, 0.92);
  font-size: clamp(1.05rem, 1.45vw, 1.35rem);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: -0.02em;
}

#page-login .login-feature-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2.4vw, 34px);
  margin-top: clamp(58px, 7vw, 104px);
  width: min(100%, 820px);
}

#page-login .login-feature-card {
  display: flex;
  align-items: center;
  gap: 15px;
  min-width: 0;
  color: #ffffff;
}

#page-login .login-feature-card > span {
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  color: #1e7cff;
  border: 1px solid rgba(43, 128, 255, 0.65);
  background: rgba(7, 32, 76, 0.52);
  box-shadow: 0 0 24px rgba(16, 89, 220, 0.18), 0 1px 0 rgba(255, 255, 255, 0.08) inset;
  font-size: 1.42rem;
}

#page-login .login-feature-card strong,
#page-login .login-feature-card small {
  display: block;
  min-width: 0;
  white-space: nowrap;
}

#page-login .login-feature-card strong {
  color: #ffffff;
  font-size: clamp(0.88rem, 1.03vw, 1.02rem);
  font-weight: 800;
  letter-spacing: -0.025em;
}

#page-login .login-feature-card small {
  margin-top: 5px;
  color: rgba(222, 232, 255, 0.76);
  font-size: clamp(0.72rem, 0.9vw, 0.86rem);
  font-weight: 500;
}

#page-login .login-panel {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(28px, 4.2vw, 70px);
  background:
    radial-gradient(circle at 86% -14%, rgba(226, 235, 250, 0.98) 0 28%, transparent 29%),
    radial-gradient(circle at 8% 104%, rgba(233, 241, 253, 0.96) 0 31%, transparent 32%),
    linear-gradient(135deg, #f9fcff 0%, #eef5ff 100%);
}

#page-login .login-panel::before,
#page-login .login-panel::after {
  content: '';
  position: absolute;
  border: 1px solid rgba(209, 222, 242, 0.8);
  border-radius: 999px;
  pointer-events: none;
}

#page-login .login-panel::before {
  width: 62rem;
  height: 62rem;
  left: -39rem;
  top: -39rem;
}

#page-login .login-panel::after {
  width: 40rem;
  height: 40rem;
  left: -20rem;
  bottom: -22rem;
}

#page-login .login-panel-orb {
  position: absolute;
  border-radius: 999px;
  background: linear-gradient(145deg, rgba(255,255,255,0.64), rgba(238,244,255,0.18));
  border: 1px solid rgba(211, 224, 244, 0.7);
  pointer-events: none;
}

#page-login .login-panel-orb-one {
  width: 16rem;
  height: 16rem;
  top: -8rem;
  right: -4rem;
}

#page-login .login-panel-orb-two {
  width: 13rem;
  height: 13rem;
  bottom: -7rem;
  left: 10%;
}

#page-login .login-panel-dots {
  position: absolute;
  width: 88px;
  height: 88px;
  opacity: 0.72;
  background-image: radial-gradient(#1b74ff 1.7px, transparent 2px);
  background-size: 18px 18px;
  pointer-events: none;
}

#page-login .login-panel-dots-top {
  top: 8.5%;
  right: 12%;
}

#page-login .login-panel-dots-bottom {
  left: 8%;
  bottom: 13%;
}

#page-login .login-card {
  width: min(100%, 530px);
  max-width: 530px;
  margin: auto;
  padding: clamp(34px, 4vw, 44px) clamp(34px, 4.4vw, 48px) 32px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.96);
  border-radius: 26px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(249, 251, 255, 0.975));
  box-shadow:
    0 28px 74px rgba(38, 67, 115, 0.18),
    0 10px 28px rgba(53, 72, 103, 0.10),
    0 2px 0 rgba(255, 255, 255, 0.86) inset;
  backdrop-filter: none;
}

#page-login .login-card-sheen {
  position: absolute;
  width: 22rem;
  height: 22rem;
  top: -14rem;
  right: -12rem;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(41, 151, 255, 0.11), rgba(41, 151, 255, 0) 69%);
  pointer-events: none;
}

#page-login .login-brand { margin-bottom: 24px; }

#page-login .login-brand-logo {
  width: 82px;
  height: 82px;
  margin: 0 auto 22px;
  padding: 16px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(145deg, #ffffff, #f0f5ff);
  border: 1px solid rgba(218, 229, 246, 0.96);
  box-shadow: 0 15px 30px rgba(43, 64, 105, 0.18), 0 2px 0 rgba(255,255,255,0.92) inset;
}

#page-login .login-brand-logo img { filter: drop-shadow(0 4px 5px rgba(10, 54, 124, 0.12)); }

#page-login #login-title {
  margin: 0;
  font-size: clamp(2.05rem, 3.5vw, 2.55rem);
  line-height: 1.06;
  font-weight: 800;
  color: #071d4e;
  letter-spacing: -0.052em;
}

#page-login #login-subtitle {
  margin: 10px 0 0;
  font-size: clamp(0.98rem, 1.35vw, 1.12rem);
  font-weight: 500;
  line-height: 1.45;
  color: #677698;
  letter-spacing: -0.018em;
}

#page-login .login-form { display: grid; gap: 18px; }
#page-login .login-field-group { display: grid; gap: 9px; }

#page-login .login-field-group > label {
  display: block;
  margin: 0;
  color: #0a2459;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.045em;
  line-height: 1;
  text-transform: uppercase;
}

#page-login .login-field { position: relative; }

#page-login .login-field input {
  display: block;
  width: 100%;
  min-height: 58px;
  padding: 0 50px 0 52px;
  border: 1px solid #c8d5e9;
  border-radius: 11px;
  outline: none;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 3px 8px rgba(20, 45, 97, 0.06), 0 1px 0 rgba(255,255,255,0.86) inset;
  color: #112b61;
  font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 0.94rem;
  font-weight: 500;
  transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

#page-login .login-field input::placeholder { color: #8a96ad; opacity: 1; }

#page-login .login-field input:focus {
  border-color: #1763e9;
  background: #ffffff;
  box-shadow: 0 0 0 4px rgba(23, 99, 233, 0.12), 0 5px 15px rgba(25, 71, 160, 0.10);
}

#page-login .login-field input.login-field-required {
  border-color: #ef4444;
  background: #fff7f7;
  box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.12);
}

#page-login .login-field-icon,
#page-login .login-password-toggle {
  position: absolute;
  top: 0;
  bottom: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

#page-login .login-field-icon {
  left: 0;
  width: 52px;
  color: #09245f;
  font-size: 1.03rem;
  pointer-events: none;
}

#page-login .login-password-toggle {
  right: 0;
  width: 50px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: #657493;
  cursor: pointer;
  transition: color 160ms ease, background-color 160ms ease;
}

#page-login .login-password-toggle:hover,
#page-login .login-password-toggle:focus-visible { color: #1457dc; background: rgba(20, 87, 220, 0.06); outline: none; }

#page-login .login-turnstile-shell {
  width: 100%;
  min-height: 92px;
  margin-top: -2px;
  padding: 0;
  display: grid;
  justify-items: center;
  gap: 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

#page-login .login-turnstile-shell.hidden {
  display: none !important;
}

#page-login .login-turnstile-box,
#page-login .login-turnstile-widget {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

#page-login .login-turnstile-widget iframe {
  max-width: 100% !important;
}

#page-login .login-turnstile-status-row {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(18px, 1fr) auto minmax(18px, 1fr);
  align-items: center;
  gap: 10px;
}

#page-login .login-turnstile-status-row.is-hidden-by-alert {
  display: none !important;
}

#page-login .login-turnstile-status-line {
  height: 1px;
  background: rgba(148, 163, 184, 0.32);
}

#page-login .login-turnstile-status {
  max-width: min(100%, 320px);
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #2563eb;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.35;
  text-align: center;
  white-space: normal;
}

#page-login .login-turnstile-status::before {
  content: "!";
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #2563eb;
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1;
}

#page-login .login-turnstile-shell.is-verified .login-turnstile-status {
  color: #11963a;
}

#page-login .login-turnstile-shell.is-verified .login-turnstile-status::before {
  content: "✓";
  background: #16a34a;
}

#page-login .login-turnstile-shell.has-error .login-turnstile-status {
  color: #b42318;
}

#page-login .login-turnstile-shell.has-error .login-turnstile-status::before {
  content: "!";
  background: #dc2626;
}

#page-login .login-turnstile-shell.has-error .login-turnstile-status-line,
#page-login .login-alert-line {
  background: rgba(239, 68, 68, 0.28);
}

#page-login .login-turnstile-shell.is-verified .login-turnstile-status-line {
  background: rgba(22, 163, 74, 0.28);
}

#page-initial-setup .setup-turnstile-shell {
  width: 100%;
  min-height: 92px;
  padding: 0;
  display: grid;
  justify-items: center;
  gap: 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

#page-initial-setup .setup-turnstile-shell.hidden {
  display: none !important;
}

#page-initial-setup .setup-turnstile-box,
#page-initial-setup .setup-turnstile-widget {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

#page-initial-setup .setup-turnstile-widget iframe {
  max-width: 100% !important;
}

#page-initial-setup .setup-turnstile-status-row {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(18px, 1fr) auto minmax(18px, 1fr);
  align-items: center;
  gap: 10px;
}

#page-initial-setup .setup-turnstile-status-row.is-hidden-by-alert {
  display: none !important;
}

#page-initial-setup .setup-turnstile-status-line {
  height: 1px;
  background: rgba(148, 163, 184, 0.32);
}

#page-initial-setup .setup-turnstile-status {
  max-width: min(100%, 320px);
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #2563eb;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.35;
  text-align: center;
  white-space: normal;
}

#page-initial-setup .setup-turnstile-status::before {
  content: "!";
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #2563eb;
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1;
}

#page-initial-setup .setup-turnstile-shell.is-verified .setup-turnstile-status {
  color: #11963a;
}

#page-initial-setup .setup-turnstile-shell.is-verified .setup-turnstile-status::before {
  content: "✓";
  background: #16a34a;
}

#page-initial-setup .setup-turnstile-shell.has-error .setup-turnstile-status {
  color: #b42318;
}

#page-initial-setup .setup-turnstile-shell.has-error .setup-turnstile-status::before {
  content: "!";
  background: #dc2626;
}

#page-initial-setup .setup-turnstile-shell.has-error .setup-turnstile-status-line,
#page-initial-setup .setup-alert-line {
  background: rgba(239, 68, 68, 0.28);
}

#page-initial-setup .setup-turnstile-shell.is-verified .setup-turnstile-status-line {
  background: rgba(22, 163, 74, 0.28);
}

#page-initial-setup .setup-alert-row {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(18px, 1fr) auto minmax(18px, 1fr);
  align-items: center;
  gap: 10px;
  margin-top: -2px;
}

#page-initial-setup .setup-alert-row.hidden {
  display: none !important;
}

#page-initial-setup .setup-alert-line {
  height: 1px;
}

#page-initial-setup .setup-alert-status {
  max-width: min(100%, 280px);
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #b42318;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.35;
  text-align: center;
  white-space: normal;
}

#page-initial-setup .setup-alert-status::before {
  content: "!";
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #dc2626;
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1;
}

#page-login .login-submit {
  width: 100%;
  min-height: 62px;
  margin-top: 3px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  border: 0;
  border-radius: 11px;
  background: linear-gradient(180deg, #1772ff 0%, #0554e8 100%);
  box-shadow: 0 14px 24px rgba(8, 84, 232, 0.30), 0 2px 0 rgba(255,255,255,0.22) inset;
  color: #ffffff;
  cursor: pointer;
  font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 1.08rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.015em;
  transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

#page-login .login-submit:hover { filter: brightness(1.05); box-shadow: 0 17px 28px rgba(8, 84, 232, 0.36), 0 2px 0 rgba(255,255,255,0.2) inset; transform: translateY(-1px); }
#page-login .login-submit:active { transform: translateY(1px) scale(0.995); }
#page-login .login-submit:disabled:not(.is-loading) {
  cursor: not-allowed;
  opacity: 0.52;
  filter: grayscale(0.18);
  box-shadow: none;
  transform: none;
}
#page-login .login-submit.is-loading:disabled { cursor: wait; opacity: 0.72; transform: none; }
#page-login .login-submit i { font-size: 1.35rem; }

#page-login .login-alert-row {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(18px, 1fr) auto minmax(18px, 1fr);
  align-items: center;
  gap: 10px;
  margin-top: -2px;
}

#page-login .login-alert-row.hidden {
  display: none !important;
}

#page-login .login-alert-line {
  height: 1px;
}

#page-login .login-alert-status {
  max-width: min(100%, 280px);
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #b42318;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.35;
  text-align: center;
  white-space: normal;
}

#page-login .login-alert-status::before {
  content: "!";
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #dc2626;
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1;
}

#page-login .login-footer { margin-top: 28px; text-align: center; }

#page-login .login-footer-rule {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #17438e;
}
#page-login .login-footer-rule::before,
#page-login .login-footer-rule::after {
  content: '';
  height: 1px;
  flex: 1;
  background: linear-gradient(90deg, rgba(172, 187, 213, 0), #c7d2e5 22%, #c7d2e5 78%, rgba(172, 187, 213, 0));
}
#page-login .login-footer-rule span {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #d8e2f1;
  box-shadow: 0 2px 6px rgba(29, 64, 130, 0.10);
  font-size: 0.88rem;
}
#page-login .login-footer p {
  margin: 13px 0 0;
  color: #617092;
  font-size: 0.78rem;
  font-weight: 600;
}
#page-login .login-footer strong {
  color: #1763e9;
  font-weight: 800;
}

/* Footer lama dinonaktifkan; footer baru dirender langsung oleh halaman login. */
#page-login .cbt-secure-badge { display: none !important; }


/* Pengunci viewport login mobile agar tidak ada scroll bocor, celah putih, atau geser samping. */
html.login-screen-active,
body.login-screen-active {
  width: 100%;
  max-width: 100%;
  min-height: 100%;
  overflow: hidden !important;
  background: #f8fbff;
  overscroll-behavior: none;
}

body.login-screen-active #app {
  width: 100%;
  height: 100dvh;
  min-height: 100dvh;
  overflow: hidden;
  background: #f8fbff;
}

body.login-screen-active #page-login {
  width: 100%;
  height: 100dvh;
  min-height: 100dvh;
  max-width: 100%;
  overflow-x: clip;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
  background: #f8fbff;
}

body.login-screen-active #page-login .login-layout,
body.login-screen-active #page-login .login-panel {
  min-height: 100dvh;
}

@supports not (height: 100dvh) {
  body.login-screen-active #app,
  body.login-screen-active #page-login {
    height: 100svh;
    min-height: 100svh;
  }

  body.login-screen-active #page-login .login-layout,
  body.login-screen-active #page-login .login-panel {
    min-height: 100svh;
  }
}

@media (max-width: 980px) {
  html.login-screen-active,
  body.login-screen-active {
    position: relative;
    touch-action: pan-y;
  }

  body.login-screen-active #page-login .login-layout {
    height: auto;
    min-height: 100dvh;
    overflow: hidden;
  }

  body.login-screen-active #page-login .login-panel {
    height: auto;
    min-height: 100dvh;
    overflow: hidden;
  }
}

@media (max-width: 520px) {
  body.login-screen-active #page-login .login-panel {
    padding-top: max(14px, env(safe-area-inset-top));
    padding-right: max(14px, env(safe-area-inset-right));
    padding-bottom: max(14px, env(safe-area-inset-bottom));
    padding-left: max(14px, env(safe-area-inset-left));
  }

  body.login-screen-active #page-login .login-card {
    width: min(100%, 362px);
    max-width: calc(100vw - 28px);
  }
}

.swal2-popup.peserta-pin-swal {
  width: min(460px, calc(100vw - 28px)) !important;
  padding: 0 0 24px !important;
  border-radius: 22px !important;
  border: 1px solid rgba(226, 232, 240, 0.98) !important;
  background: #ffffff !important;
  box-shadow: 0 22px 54px rgba(15, 23, 42, 0.16), 0 4px 16px rgba(15, 23, 42, 0.06) !important;
  overflow: hidden !important;
}

.swal2-popup .peserta-pin-swal-title,
.swal2-title.peserta-pin-swal-title {
  display: block !important;
  margin: 0 !important;
  padding: 24px 28px 23px !important;
  border-bottom: 1px solid #e2e8f0 !important;
  color: #1e293b !important;
  font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.01em !important;
  text-align: left !important;
}

.swal2-html-container.peserta-pin-swal-html {
  margin: 0 !important;
  padding: 24px 28px 0 !important;
  overflow: visible !important;
}

.swal2-popup .peserta-pin-form {
  width: 100%;
  max-width: none;
  margin: 0;
  text-align: left;
}

.swal2-popup .peserta-pin-lead {
  margin: 0 0 18px;
  color: #475569;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: -0.01em;
  text-align: left;
}

.swal2-popup .peserta-pin-label {
  display: block;
  margin: 0 0 8px;
  color: #64748b;
  font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.swal2-popup .peserta-pin-input.swal2-input {
  box-sizing: border-box !important;
  display: block !important;
  width: 100% !important;
  height: 50px !important;
  margin: 0 !important;
  padding: 0 14px !important;
  border: 1px solid #8ab8ff !important;
  border-radius: 12px !important;
  outline: 0 !important;
  background: #f2f7ff !important;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.08) !important;
  color: #1e293b !important;
  font-family: 'Inter', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}

.swal2-popup .peserta-pin-input.swal2-input:focus {
  border-color: #3b82f6 !important;
  background: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.16) !important;
}

.swal2-popup .peserta-pin-input.swal2-input::placeholder {
  color: #94a3b8;
  opacity: 0.9;
  letter-spacing: 0.16em;
}

.swal2-popup .peserta-pin-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 12px 0 14px;
  color: #2563eb;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: -0.01em;
}

.swal2-popup .peserta-pin-note i {
  flex: 0 0 auto;
  margin-top: 1px;
  color: #2563eb;
  font-size: 14px;
}

.swal2-popup .pin-turnstile-shell {
  width: 100%;
  margin: 0 auto;
  padding: 0;
  display: grid;
  justify-items: center;
  gap: 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.swal2-popup .pin-turnstile-shell.hidden {
  display: none !important;
}

.swal2-popup .pin-turnstile-widget {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.swal2-popup .pin-turnstile-widget iframe {
  max-width: 100% !important;
}

.swal2-popup .pin-turnstile-status-row {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(18px, 1fr) auto minmax(18px, 1fr);
  align-items: center;
  gap: 10px;
}

.swal2-popup .pin-turnstile-status-line {
  height: 1px;
  background: rgba(148, 163, 184, 0.32);
}

.swal2-popup .pin-turnstile-status {
  max-width: min(100%, 280px);
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #2563eb;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
  text-align: center;
  white-space: normal;
}

.swal2-popup .pin-turnstile-status::before {
  content: "!";
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #2563eb;
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1;
}

.swal2-popup .pin-turnstile-shell.is-verified .pin-turnstile-status {
  color: #11963a;
}

.swal2-popup .pin-turnstile-shell.is-verified .pin-turnstile-status::before {
  content: "✓";
  background: #16a34a;
}

.swal2-popup .pin-turnstile-shell.has-error .pin-turnstile-status {
  color: #b42318;
}

.swal2-popup .pin-turnstile-shell.has-error .pin-turnstile-status::before {
  content: "!";
  background: #dc2626;
}

.swal2-popup .peserta-pin-actions,
.swal2-actions.peserta-pin-actions {
  box-sizing: border-box;
  display: flex !important;
  width: auto !important;
  margin: 12px 28px 0 !important;
  gap: 12px !important;
}

.swal2-popup .peserta-pin-confirm,
.swal2-popup .peserta-pin-cancel {
  flex: 1 1 0 !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 0 14px !important;
  border-radius: 12px !important;
  cursor: pointer;
  font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease, border-color 0.18s ease !important;
}

.swal2-popup .peserta-pin-confirm {
  order: 2 !important;
  border: 0 !important;
  background: #2563eb !important;
  color: #ffffff !important;
  box-shadow: 0 8px 16px rgba(37, 72, 184, 0.18) !important;
}

.swal2-popup .peserta-pin-cancel {
  order: 1 !important;
  border: 1px solid #cbd5e1 !important;
  background: #ffffff !important;
  color: #475569 !important;
  box-shadow: none !important;
}

.swal2-popup .peserta-pin-confirm:hover,
.swal2-popup .peserta-pin-cancel:hover {
  transform: translateY(-1px) !important;
}

.swal2-popup .peserta-pin-confirm:hover {
  background: #1d4ed8 !important;
  box-shadow: 0 10px 20px rgba(37, 72, 184, 0.24) !important;
}

.swal2-popup .peserta-pin-cancel:hover {
  border-color: #94a3b8 !important;
  background: #f8fafc !important;
  color: #334155 !important;
}

.swal2-popup .peserta-pin-confirm:active,
.swal2-popup .peserta-pin-cancel:active {
  transform: translateY(1px) !important;
}

.swal2-popup .peserta-pin-validation,
.swal2-validation-message.peserta-pin-validation {
  margin: 12px 28px 0 !important;
  border-radius: 10px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-align: left !important;
}

@media (max-width: 520px) {
  .swal2-popup.peserta-pin-swal {
    width: min(460px, calc(100vw - 28px)) !important;
  }

  .swal2-popup .peserta-pin-swal-title,
  .swal2-title.peserta-pin-swal-title {
    padding: 22px 22px 20px !important;
  }

  .swal2-html-container.peserta-pin-swal-html {
    padding: 22px 22px 0 !important;
  }

  .swal2-popup .peserta-pin-lead {
    margin-bottom: 16px;
    font-size: 12.5px;
  }

  .swal2-popup .peserta-pin-input.swal2-input {
    height: 48px !important;
    padding: 0 12px !important;
    font-size: 14px !important;
    letter-spacing: 0.10em !important;
  }

  .swal2-popup .peserta-pin-note {
    margin: 11px 0 13px;
  }

  .swal2-popup .pin-turnstile-shell {
    gap: 9px;
  }

  .swal2-popup .pin-turnstile-status-row {
    grid-template-columns: minmax(14px, 1fr) auto minmax(14px, 1fr);
    gap: 8px;
  }

  .swal2-popup .pin-turnstile-status {
    max-width: 210px;
    font-size: 11.5px;
  }

  .swal2-popup .peserta-pin-actions,
  .swal2-actions.peserta-pin-actions {
    margin-right: 22px !important;
    margin-left: 22px !important;
  }

  .swal2-popup .peserta-pin-confirm,
  .swal2-popup .peserta-pin-cancel {
    min-height: 46px !important;
    padding: 0 10px !important;
    font-size: 13px !important;
  }
}

@media (max-width: 980px) and (max-height: 570px) {
  body.login-screen-active #page-login .login-panel {
    align-items: flex-start;
    padding-top: 14px;
    padding-bottom: 14px;
  }

  body.login-screen-active #page-login .login-card {
    margin-top: 0;
    margin-bottom: 0;
  }
}

@media (max-width: 1280px) {
  #page-login .login-layout { grid-template-columns: minmax(500px, 1.06fr) minmax(400px, 0.94fr); }
  #page-login .login-hero { padding: clamp(38px, 4.2vw, 66px); }
  #page-login .login-hero-title { font-size: clamp(3.35rem, 5.6vw, 4.7rem); }
  #page-login .login-feature-row { grid-template-columns: 1fr; gap: 20px; margin-top: 58px; }
}

@media (max-width: 980px) {
  #page-login .login-layout { display: block; min-height: 100svh; }
  #page-login .login-hero { display: none; }
  #page-login .login-panel { min-height: 100svh; padding: 24px; }
}

@media (max-width: 520px) {
  #page-login .login-panel { padding: 18px; align-items: center; }
  #page-login .login-panel-dots { opacity: 0.36; }
  #page-login .login-card { padding: 28px 22px 24px; border-radius: 24px; }
  #page-login .login-brand { margin-bottom: 22px; }
  #page-login .login-brand-logo { width: 70px; height: 70px; margin-bottom: 16px; padding: 14px; }
  #page-login #login-title { font-size: 1.82rem; }
  #page-login #login-subtitle { font-size: 0.92rem; }
  #page-login .login-field input { min-height: 52px; font-size: 0.86rem; padding-left: 48px; }
  #page-login .login-submit { min-height: 54px; font-size: 1rem; }
  #page-login .login-turnstile-shell { min-height: 84px; padding: 0; }
  #page-login .login-turnstile-status, #page-login .login-alert-status { font-size: 0.68rem; }
  #page-initial-setup .setup-turnstile-shell { min-height: 84px; padding: 0; }
  #page-initial-setup .setup-turnstile-status, #page-initial-setup .setup-alert-status { font-size: 0.68rem; }
}

@media (max-width: 380px) {
  #page-login .login-form { gap: 14px; }
  #page-login .login-turnstile-shell { min-height: 146px; padding: 0; }
  #page-login .login-turnstile-status, #page-login .login-alert-status { max-width: 210px; }
  #page-login .login-turnstile-status-row, #page-login .login-alert-row { gap: 8px; }
  #page-initial-setup .setup-turnstile-shell { min-height: 146px; padding: 0; }
  #page-initial-setup .setup-turnstile-status, #page-initial-setup .setup-alert-status { max-width: 210px; }
  #page-initial-setup .setup-turnstile-status-row, #page-initial-setup .setup-alert-row { gap: 8px; }
}




  @media (max-width: 767px) {
    .exam-timer-mobile-center {
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      z-index: 35;
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.16);
    }

    .exam-header {
      position: sticky;
    }

    #exam-subject-title {
      max-width: calc(100vw - 190px);
    }
  }


/* Perbaikan timer ujian responsif.
   JS melepas class hidden saat durasi aktif. Aturan ini memastikan timer desktop
   tidak ikut muncul pada layar kecil dan timer mobile tidak muncul pada desktop. */
@media (max-width: 767px) {
  #exam-timer-desktop { display: none !important; }
  #exam-timer-mobile.hidden { display: none !important; }
  #exam-timer-mobile:not(.hidden) { display: flex !important; }
}
@media (min-width: 768px) {
  #exam-timer-mobile { display: none !important; }
  #exam-timer-desktop.hidden { display: none !important; }
  #exam-timer-desktop:not(.hidden) { display: flex !important; }
}


/* Exam security mode: block manual selection/copy surfaces while preserving answer controls on every device. */
html.exam-security-active,
html.exam-security-active body,
html.exam-security-active #page-exam,
html.exam-security-active #question-container,
html.exam-security-active .option-label,
html.exam-security-active .match-left,
html.exam-security-active .match-right,
html.exam-silent-block-active,
html.exam-silent-block-active body,
html.exam-silent-block-active #page-exam,
html.exam-silent-block-active #question-container,
html.exam-silent-block-active .option-label,
html.exam-silent-block-active .match-left,
html.exam-silent-block-active .match-right {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
html.exam-security-active #page-exam *,
html.exam-silent-block-active #page-exam * {
  -webkit-user-drag: none;
}
html.exam-security-active #page-exam input,
html.exam-security-active #page-exam textarea,
html.exam-security-active #page-exam [contenteditable="true"],
html.exam-silent-block-active #page-exam input,
html.exam-silent-block-active #page-exam textarea,
html.exam-silent-block-active #page-exam [contenteditable="true"] {
  -webkit-user-select: text;
  user-select: text;
}

/* Security device safety fix: keep answer controls usable while silent blocking is active. */
html.exam-security-active #page-exam input,
html.exam-security-active #page-exam textarea,
html.exam-security-active #page-exam select,
html.exam-security-active #page-exam button,
html.exam-security-active #page-exam label,
html.exam-security-active #page-exam a,
html.exam-security-active #page-exam [role="button"],
html.exam-security-active #page-exam [role="radio"],
html.exam-security-active #page-exam [role="checkbox"],
html.exam-security-active #page-exam [tabindex],
html.exam-security-active #page-exam [onclick],
html.exam-security-active #page-exam .option-label,
html.exam-security-active #page-exam .custom-radio,
html.exam-security-active #page-exam .box-indicator,
html.exam-security-active #page-exam .match-left,
html.exam-security-active #page-exam .match-right,
html.exam-security-active #page-exam .nav-btn-modern,
html.exam-silent-block-active #page-exam input,
html.exam-silent-block-active #page-exam textarea,
html.exam-silent-block-active #page-exam select,
html.exam-silent-block-active #page-exam button,
html.exam-silent-block-active #page-exam label,
html.exam-silent-block-active #page-exam a,
html.exam-silent-block-active #page-exam [role="button"],
html.exam-silent-block-active #page-exam [role="radio"],
html.exam-silent-block-active #page-exam [role="checkbox"],
html.exam-silent-block-active #page-exam [tabindex],
html.exam-silent-block-active #page-exam [onclick],
html.exam-silent-block-active #page-exam .option-label,
html.exam-silent-block-active #page-exam .custom-radio,
html.exam-silent-block-active #page-exam .box-indicator,
html.exam-silent-block-active #page-exam .match-left,
html.exam-silent-block-active #page-exam .match-right,
html.exam-silent-block-active #page-exam .nav-btn-modern {
  pointer-events: auto !important;
}

html.exam-security-active #page-exam input,
html.exam-security-active #page-exam textarea,
html.exam-security-active #page-exam select,
html.exam-security-active #page-exam [contenteditable="true"],
html.exam-silent-block-active #page-exam input,
html.exam-silent-block-active #page-exam textarea,
html.exam-silent-block-active #page-exam select,
html.exam-silent-block-active #page-exam [contenteditable="true"] {
  -webkit-user-select: text !important;
  user-select: text !important;
  -webkit-touch-callout: default;
  touch-action: auto;
}

html.exam-security-active #page-exam .option-label,
html.exam-security-active #page-exam .custom-radio,
html.exam-security-active #page-exam .box-indicator,
html.exam-security-active #page-exam .match-left,
html.exam-security-active #page-exam .match-right,
html.exam-security-active #page-exam .nav-btn-modern,
html.exam-security-active #page-exam button,
html.exam-security-active #page-exam label,
html.exam-security-active #page-exam [role="button"],
html.exam-security-active #page-exam [onclick],
html.exam-silent-block-active #page-exam .option-label,
html.exam-silent-block-active #page-exam .custom-radio,
html.exam-silent-block-active #page-exam .box-indicator,
html.exam-silent-block-active #page-exam .match-left,
html.exam-silent-block-active #page-exam .match-right,
html.exam-silent-block-active #page-exam .nav-btn-modern,
html.exam-silent-block-active #page-exam button,
html.exam-silent-block-active #page-exam label,
html.exam-silent-block-active #page-exam [role="button"],
html.exam-silent-block-active #page-exam [onclick] {
  touch-action: manipulation;
}

/* -------------------------------------------------------------------------
   LOGIN — responsive hardening untuk desktop, tablet, mobile, dan layar kecil.
   ------------------------------------------------------------------------- */
#page-login,
#page-login * {
  box-sizing: border-box;
}

#page-login {
  width: 100%;
  max-width: 100vw;
  min-height: 100dvh;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
}

#page-login .login-layout {
  width: 100%;
  min-height: 100dvh;
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, 0.88fr);
}

#page-login .login-hero-content,
#page-login .login-feature-row,
#page-login .login-panel,
#page-login .login-card {
  max-width: 100%;
}

#page-login .login-hero-title {
  max-width: 100%;
  overflow-wrap: break-word;
  text-wrap: balance;
}

#page-login .login-card {
  width: min(100%, 530px);
}

#page-login .login-field input,
#page-login .login-submit {
  max-width: 100%;
}

@media (min-width: 1536px) {
  #page-login .login-layout {
    grid-template-columns: minmax(0, 1.16fr) minmax(540px, 0.84fr);
  }

  #page-login .login-card {
    width: min(100%, 560px);
    max-width: 560px;
  }
}

@media (max-width: 1180px) and (min-width: 981px) {
  #page-login .login-layout {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.9fr);
  }

  #page-login .login-hero {
    padding: clamp(32px, 3.8vw, 52px);
  }

  #page-login .login-trust-row {
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 32px;
  }

  #page-login .login-hero-title {
    font-size: clamp(3rem, 5.4vw, 4rem);
    line-height: 1.08;
    letter-spacing: -0.048em;
  }

  #page-login .login-feature-row {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 40px;
  }

  #page-login .login-feature-card > span {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    font-size: 1.2rem;
  }

  #page-login .login-panel {
    padding: 24px;
  }

  #page-login .login-card {
    width: min(100%, 480px);
    max-width: 480px;
    padding: 34px 30px 28px;
  }
}

@media (max-width: 980px) {
  #page-login .login-layout {
    display: grid;
    grid-template-columns: 1fr;
    min-height: 100dvh;
  }

  #page-login .login-hero {
    display: flex;
    min-height: auto;
    align-items: flex-start;
    padding: 34px 28px 28px;
  }

  #page-login .login-hero-content {
    width: min(100%, 720px);
    margin: 0 auto;
  }

  #page-login .login-trust-row {
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: 24px;
    font-size: 0.95rem;
  }

  #page-login .login-hero-title,
  #page-login .login-hero-title span,
  #page-login .login-hero-subtitle {
    text-align: center;
  }

  #page-login .login-hero-title {
    font-size: clamp(2.4rem, 6.8vw, 3.8rem);
    line-height: 1.06;
    letter-spacing: -0.045em;
  }

  #page-login .login-hero-line {
    margin: 22px auto 12px;
  }

  #page-login .login-feature-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 28px auto 0;
    width: min(100%, 760px);
  }

  #page-login .login-feature-card {
    justify-content: center;
    gap: 10px;
  }

  #page-login .login-feature-card > span {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    font-size: 1.1rem;
  }

  #page-login .login-feature-card strong,
  #page-login .login-feature-card small {
    white-space: normal;
  }

  #page-login .login-panel {
    min-height: auto;
    overflow: visible;
    align-items: flex-start;
    padding: 28px 24px 38px;
  }

  #page-login .login-panel::before {
    width: 42rem;
    height: 42rem;
    left: -28rem;
    top: -30rem;
  }

  #page-login .login-panel::after {
    width: 30rem;
    height: 30rem;
    left: auto;
    right: -18rem;
    bottom: -18rem;
  }

  #page-login .login-panel-dots-top {
    top: 7%;
    right: 6%;
  }

  #page-login .login-panel-dots-bottom {
    left: 5%;
    bottom: 7%;
  }

  #page-login .login-card {
    width: min(100%, 540px);
    max-width: 540px;
    padding: 34px 30px 28px;
  }
}

@media (max-width: 720px) {
  #page-login .login-hero {
    padding: 28px 20px 22px;
  }

  #page-login .login-trust-row {
    gap: 8px;
    margin-bottom: 20px;
    font-size: 0.86rem;
  }

  #page-login .login-trust-icon {
    width: 36px;
    height: 36px;
    border-radius: 13px;
    font-size: 0.98rem;
  }

  #page-login .login-hero-title {
    font-size: clamp(2rem, 9.6vw, 3rem);
  }

  #page-login .login-hero-subtitle {
    font-size: 0.98rem;
  }

  #page-login .login-feature-row {
    display: none;
  }

  #page-login .login-panel {
    padding: 20px 16px 30px;
  }

  #page-login .login-card {
    border-radius: 24px;
    padding: 30px 24px 26px;
  }

  #page-login .login-brand-logo {
    width: 72px;
    height: 72px;
    margin-bottom: 16px;
    padding: 14px;
  }

  #page-login #login-title {
    font-size: clamp(1.8rem, 8vw, 2.1rem);
  }

  #page-login #login-subtitle {
    font-size: 0.92rem;
  }
}

@media (max-width: 420px) {
  #page-login .login-hero {
    padding: 24px 14px 16px;
  }

  #page-login .login-trust-row {
    gap: 7px;
    font-size: 0.78rem;
  }

  #page-login .login-trust-row .fa-circle {
    font-size: 0.26rem;
  }

  #page-login .login-trust-icon {
    width: 32px;
    height: 32px;
    border-radius: 11px;
    font-size: 0.9rem;
  }

  #page-login .login-hero-title {
    font-size: clamp(1.76rem, 10vw, 2.28rem);
    letter-spacing: -0.036em;
  }

  #page-login .login-panel {
    padding: 14px 12px 22px;
  }

  #page-login .login-panel-dots,
  #page-login .login-panel-orb {
    opacity: 0.24;
  }

  #page-login .login-card {
    border-radius: 20px;
    padding: 24px 16px 22px;
  }

  #page-login .login-brand {
    margin-bottom: 18px;
  }

  #page-login .login-brand-logo {
    width: 64px;
    height: 64px;
    margin-bottom: 14px;
    padding: 12px;
  }

  #page-login #login-title {
    font-size: 1.72rem;
  }

  #page-login #login-subtitle {
    margin-top: 7px;
    font-size: 0.84rem;
  }

  #page-login .login-form {
    gap: 14px;
  }

  #page-login .login-field-group {
    gap: 8px;
  }

  #page-login .login-field-group > label {
    font-size: 0.72rem;
  }

  #page-login .login-field input {
    min-height: 50px;
    padding: 0 46px 0 44px;
    font-size: 0.82rem;
    border-radius: 10px;
  }

  #page-login .login-field-icon {
    width: 44px;
    font-size: 0.94rem;
  }

  #page-login .login-password-toggle {
    width: 44px;
    right: 2px;
  }

  #page-login .login-submit {
    min-height: 52px;
    gap: 10px;
    font-size: 0.96rem;
    border-radius: 10px;
  }

  #page-login .login-submit i {
    font-size: 1.15rem;
  }

  #page-login .login-footer {
    margin-top: 22px;
  }

  #page-login .login-footer p {
    font-size: 0.72rem;
    line-height: 1.4;
  }
}

@media (max-width: 360px) {
  #page-login .login-hero-title {
    font-size: 1.62rem;
  }

  #page-login .login-trust-row {
    font-size: 0.72rem;
  }

  #page-login .login-card {
    padding: 22px 14px 20px;
  }

  #page-login .login-field input {
    font-size: 0.78rem;
  }
}

@media (max-height: 720px) and (min-width: 981px) {
  #page-login .login-hero {
    padding-top: 28px;
    padding-bottom: 28px;
  }

  #page-login .login-trust-row {
    margin-bottom: 24px;
  }

  #page-login .login-hero-title {
    font-size: clamp(2.75rem, 5vw, 4.25rem);
  }

  #page-login .login-feature-row {
    margin-top: 32px;
  }

  #page-login .login-card {
    padding-top: 28px;
    padding-bottom: 24px;
  }

  #page-login .login-brand {
    margin-bottom: 18px;
  }

  #page-login .login-brand-logo {
    width: 68px;
    height: 68px;
    margin-bottom: 14px;
  }

  #page-login .login-submit {
    min-height: 56px;
  }

  #page-login .login-footer {
    margin-top: 20px;
  }
}

@media (max-height: 520px) and (max-width: 980px) {
  #page-login .login-hero {
    display: none;
  }

  #page-login .login-panel {
    min-height: 100dvh;
    align-items: center;
  }
}


/* -------------------------------------------------------------------------
   LOGIN FINAL RESPONSIVE ALIGNMENT
   Tampilan login dipusatkan ulang agar proporsional pada desktop, tablet,
   mobile, dan layar kecil tanpa horizontal scroll.
   ------------------------------------------------------------------------- */
#page-login {
  min-height: 100dvh;
  overflow-x: hidden !important;
  background: #eef5ff;
}

#page-login .login-layout {
  min-height: 100dvh;
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(480px, 0.82fr);
}

#page-login .login-hero {
  min-width: 0;
  min-height: 100dvh;
  display: flex;
  align-items: center;
  padding: clamp(42px, 4.5vw, 62px);
}

#page-login .login-hero-content {
  width: min(100%, 690px);
}

#page-login .login-trust-row {
  margin-bottom: clamp(34px, 4vw, 50px);
  gap: 12px;
  font-size: clamp(0.86rem, 0.95vw, 0.96rem);
}

#page-login .login-trust-icon {
  width: 40px;
  height: 40px;
  border-radius: 14px;
  font-size: 1rem;
}

#page-login .login-hero-title {
  font-size: clamp(3.15rem, 5.05vw, 4.1rem);
  line-height: 1.1;
  letter-spacing: -0.052em;
}

#page-login .login-hero-title span {
  display: block;
  width: max-content;
  max-width: 100%;
}

#page-login .login-hero-line {
  width: 56px;
  height: 4px;
  margin: clamp(26px, 2.8vw, 32px) 0 14px;
}

#page-login .login-hero-subtitle {
  font-size: clamp(0.98rem, 1.12vw, 1.12rem);
  font-weight: 600;
}

#page-login .login-feature-row {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2.1vw, 30px);
  margin-top: clamp(54px, 6.4vw, 82px);
  width: min(100%, 700px);
}

#page-login .login-feature-card {
  gap: 12px;
}

#page-login .login-feature-card > span {
  width: 44px;
  height: 44px;
  border-radius: 13px;
  font-size: 1.08rem;
}

#page-login .login-feature-card strong {
  font-size: 0.82rem;
}

#page-login .login-feature-card small {
  margin-top: 4px;
  font-size: 0.72rem;
}

#page-login .login-panel {
  min-width: 0;
  min-height: 100dvh;
  align-items: center;
  justify-content: center;
  padding: clamp(22px, 3vw, 34px);
  overflow: hidden;
}

#page-login .login-card {
  width: min(100%, 420px);
  max-width: 420px;
  margin: auto;
  padding: 30px 36px 24px;
  border-radius: 24px;
}

#page-login .login-brand {
  margin-bottom: 22px;
}

#page-login .login-brand-logo {
  width: 60px;
  height: 60px;
  margin: 0 auto 14px;
  padding: 12px;
}

#page-login #login-title {
  font-size: 2rem;
  line-height: 1.06;
  letter-spacing: -0.055em;
}

#page-login #login-subtitle {
  margin-top: 8px;
  font-size: 0.86rem;
  line-height: 1.4;
}

#page-login .login-form {
  gap: 14px;
}

#page-login .login-field-group {
  gap: 7px;
}

#page-login .login-field-group > label {
  font-size: 0.66rem;
  letter-spacing: 0.04em;
}

#page-login .login-field input {
  min-height: 44px;
  padding: 0 46px 0 42px;
  border-radius: 9px;
  font-size: 0.78rem;
}

#page-login .login-field-icon {
  width: 42px;
  font-size: 0.9rem;
}

#page-login .login-password-toggle {
  width: 42px;
  border-radius: 9px;
}

#page-login .login-submit {
  min-height: 48px;
  margin-top: 2px;
  gap: 12px;
  border-radius: 9px;
  font-size: 0.9rem;
}

#page-login .login-submit i {
  font-size: 1.12rem;
}

#page-login .login-footer {
  margin-top: 20px;
}

#page-login .login-footer-rule {
  gap: 10px;
}

#page-login .login-footer-rule span {
  width: 28px;
  height: 28px;
  font-size: 0.78rem;
}

#page-login .login-footer p {
  margin-top: 12px;
  font-size: 0.66rem;
  line-height: 1.45;
}

@media (min-width: 1440px) {
  #page-login .login-layout {
    grid-template-columns: minmax(0, 1.2fr) minmax(520px, 0.8fr);
  }

  #page-login .login-card {
    width: min(100%, 420px);
    max-width: 420px;
  }
}

@media (max-width: 1280px) and (min-width: 1024px) {
  #page-login .login-layout {
    grid-template-columns: minmax(0, 1fr) minmax(440px, 0.86fr);
  }

  #page-login .login-hero {
    padding: clamp(34px, 3.5vw, 48px);
  }

  #page-login .login-hero-title {
    font-size: clamp(2.75rem, 4.9vw, 3.55rem);
    letter-spacing: -0.046em;
  }

  #page-login .login-feature-row {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 38px;
    width: min(100%, 360px);
  }

  #page-login .login-panel {
    padding: 22px;
  }

  #page-login .login-card {
    width: min(100%, 400px);
    max-width: 400px;
    padding-left: 28px;
    padding-right: 28px;
  }
}

@media (max-width: 1023px) {
  #page-login .login-layout {
    display: grid;
    grid-template-columns: 1fr;
    min-height: 100dvh;
  }

  #page-login .login-hero {
    display: none !important;
  }

  #page-login .login-panel {
    min-height: 100dvh;
    align-items: center;
    justify-content: center;
    padding: 24px;
  }

  #page-login .login-card {
    width: min(100%, 420px);
    max-width: 420px;
    padding: 30px 36px 24px;
  }
}

@media (max-width: 560px) {
  #page-login .login-panel {
    padding: 18px;
  }

  #page-login .login-card {
    width: min(100%, 420px);
    max-width: 420px;
    padding: 28px 26px 24px;
    border-radius: 24px;
  }

  #page-login .login-panel-dots {
    opacity: 0.46;
  }
}

@media (max-width: 420px) {
  #page-login .login-panel {
    padding: 14px;
  }

  #page-login .login-card {
    padding: 24px 16px 22px;
    border-radius: 20px;
  }

  #page-login .login-brand-logo {
    width: 58px;
    height: 58px;
    margin-bottom: 13px;
  }

  #page-login #login-title {
    font-size: 1.82rem;
  }

  #page-login #login-subtitle {
    font-size: 0.82rem;
  }

  #page-login .login-field input {
    min-height: 43px;
    padding-left: 40px;
    padding-right: 42px;
    font-size: 0.76rem;
  }

  #page-login .login-field-icon,
  #page-login .login-password-toggle {
    width: 40px;
  }

  #page-login .login-submit {
    min-height: 46px;
    font-size: 0.86rem;
  }
}

@media (max-width: 360px) {
  #page-login .login-panel {
    padding: 10px;
  }

  #page-login .login-card {
    padding: 22px 14px 20px;
  }

  #page-login #login-title {
    font-size: 1.66rem;
  }

  #page-login .login-field input {
    font-size: 0.72rem;
  }

  #page-login .login-footer p {
    font-size: 0.62rem;
  }
}

@media (max-height: 620px) and (max-width: 1023px) {
  #page-login .login-panel {
    align-items: flex-start;
    overflow-y: auto;
  }
}

@media (max-height: 700px) and (min-width: 1024px) {
  #page-login .login-hero {
    padding-top: 28px;
    padding-bottom: 28px;
  }

  #page-login .login-trust-row {
    margin-bottom: 28px;
  }

  #page-login .login-hero-title {
    font-size: clamp(2.75rem, 4.8vw, 3.8rem);
  }

  #page-login .login-feature-row {
    margin-top: 34px;
  }

  #page-login .login-card {
    padding-top: 26px;
    padding-bottom: 22px;
  }

  #page-login .login-brand {
    margin-bottom: 18px;
  }

  #page-login .login-brand-logo {
    width: 56px;
    height: 56px;
    margin-bottom: 12px;
  }

  #page-login .login-footer {
    margin-top: 18px;
  }
}

/* -------------------------------------------------------------------------
   LOGIN MOBILE REFRESH UNLOCK
   Menjaga layout login tetap presisi, tetapi mengembalikan scroll root
   agar pull-to-refresh browser mobile tetap aktif.
   ------------------------------------------------------------------------- */
@media (max-width: 1023px) {
  html.login-screen-active,
  body.login-screen-active {
    height: auto !important;
    min-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-x: none;
    overscroll-behavior-y: auto !important;
    touch-action: auto !important;
  }

  body.login-screen-active #app {
    height: auto !important;
    min-height: 100dvh !important;
    overflow: visible !important;
  }

  body.login-screen-active #page-login {
    height: auto !important;
    min-height: 100dvh !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    overscroll-behavior-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  body.login-screen-active #page-login .login-layout,
  body.login-screen-active #page-login .login-panel {
    height: auto !important;
    min-height: 100dvh !important;
  }

  body.login-screen-active #page-login .login-layout {
    overflow: visible !important;
  }

  body.login-screen-active #page-login .login-panel {
    width: 100%;
    overflow: hidden !important;
  }
}


/* -------------------------------------------------------------------------
   LOGIN MOBILE ZOOM LOCK
   Aktif hanya saat halaman login tampil di perangkat sentuh atau layar kecil.
   Single-finger vertical pan tetap aktif agar pull-to-refresh browser tetap jalan.
   ------------------------------------------------------------------------- */
@media (max-width: 1023px), (pointer: coarse) {
  html.login-zoom-locked,
  body.login-zoom-locked {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    overscroll-behavior-x: none !important;
    touch-action: pan-y !important;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body.login-zoom-locked #app,
  body.login-zoom-locked #page-login {
    width: 100% !important;
    max-width: 100vw !important;
    min-height: var(--login-viewport-height, 100dvh) !important;
    overflow-x: hidden !important;
  }

  body.login-zoom-locked #page-login {
    background: #f8fbff !important;
    overscroll-behavior-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  body.login-zoom-locked #page-login .login-layout,
  body.login-zoom-locked #page-login .login-panel {
    width: 100% !important;
    max-width: 100vw !important;
    min-height: var(--login-viewport-height, 100dvh) !important;
    overflow-x: hidden !important;
  }

  body.login-zoom-locked #page-login .login-panel {
    padding-bottom: max(16px, env(safe-area-inset-bottom)) !important;
  }

  body.login-zoom-locked #page-login .login-card {
    max-width: calc(100vw - 28px) !important;
    transform: none !important;
    transform-origin: center center !important;
  }

  body.login-zoom-locked #page-login input,
  body.login-zoom-locked #page-login button,
  body.login-zoom-locked #page-login a,
  body.login-zoom-locked #page-login .login-card {
    touch-action: manipulation;
  }
}

/* Dashboard layout compatibility after Tailwind CLI migration.
   The old CDN applied utility classes after custom CSS. This keeps the
   Dashboard cards visually identical without reintroducing the CDN. */
.dashboard-hero-card.dash-card {
  padding: 1.5rem !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: space-between !important;
  gap: 1.5rem !important;
}

.dashboard-hero-card .dashboard-refresh-wrap {
  display: flex !important;
  width: 100% !important;
  justify-content: flex-start !important;
}

.dashboard-stat-card.dash-card {
  padding: 1.5rem !important;
  display: block !important;
  flex-direction: initial !important;
  overflow: hidden !important;
}

.dashboard-activity-card.dash-card {
  padding: 1.5rem !important;
  display: block !important;
  flex-direction: initial !important;
}

.dashboard-logs-card.dash-card {
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}


@media (max-width: 640px) {
  .dashboard-stat-card.dash-card {
    padding: 1rem !important;
    min-height: 132px;
  }

  .dashboard-stat-card .stat-card-icon {
    width: 38px;
    height: 38px;
    border-radius: 0.75rem;
    font-size: 1rem;
  }

  .dashboard-stat-card h3 {
    font-size: 1.5rem !important;
    line-height: 2rem !important;
  }

  .dashboard-stat-card p {
    font-size: 0.625rem !important;
    line-height: 0.9rem !important;
  }

  .dashboard-stat-card .mt-4 {
    margin-top: 0.75rem !important;
  }

  .dashboard-stat-card .mt-4 span {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.2rem 0.4rem !important;
    font-size: 0.625rem !important;
    line-height: 0.9rem !important;
    white-space: normal;
  }
}

@media (min-width: 768px) {
  .dashboard-hero-card.dash-card {
    flex-direction: row !important;
    align-items: center !important;
  }

  .dashboard-hero-card .dashboard-refresh-wrap {
    width: auto !important;
    justify-content: flex-end !important;
  }
}


/* Bank Soal compatibility after Tailwind CLI migration.
   app.css is loaded after Tailwind CSS, so these scoped rules restore the
   old CDN visual order for Bank Soal cards without reintroducing the CDN. */
.question-bank-page .question-bank-toolbar.dash-card,
.question-bank-page .question-bank-action-card.dash-card:not(.hidden) {
  padding: 1.5rem !important;
  display: block !important;
  flex-direction: initial !important;
  align-items: initial !important;
  justify-content: initial !important;
  overflow: visible !important;
}

.question-bank-page .question-bank-toolbar.dash-card {
  min-height: auto !important;
}

.question-bank-page .question-bank-action-card.hidden,
.question-bank-page #form-import-excel.hidden,
.question-bank-page #form-copy-q.hidden,
.question-bank-page #form-batch-q.hidden,
.question-bank-page #form-add-q.hidden {
  display: none !important;
}

.question-bank-page .question-bank-toolbar select,
.question-bank-page input,
.question-bank-page select,
.question-bank-page textarea {
  box-sizing: border-box;
}

.question-bank-page #form-import-excel:not(.hidden),
.question-bank-page #form-copy-q:not(.hidden),
.question-bank-page #form-batch-q:not(.hidden) {
  margin-top: 1rem !important;
}

@media (max-width: 767px) {
  .question-bank-page .question-bank-toolbar.dash-card,
  .question-bank-page .question-bank-action-card.dash-card:not(.hidden) {
    padding: 1rem !important;
  }
}





/* Bank Soal table toolbar: desktop = Show | Pencarian | Download | Preview;
   tablet/mobile = Show | Download | Preview, lalu Pencarian. */
.question-bank-page .question-bank-table-toolbar {
  display: grid !important;
  grid-template-columns: auto minmax(220px, 1fr) auto auto;
  align-items: center;
  gap: 0.75rem;
}

.question-bank-page .question-bank-show-control {
  grid-column: 1;
  grid-row: 1;
  white-space: nowrap;
}

.question-bank-page .question-bank-search-control {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}

.question-bank-page .question-bank-download-button {
  grid-column: 3;
  grid-row: 1;
  white-space: nowrap;
}

.question-bank-page .question-bank-preview-button {
  grid-column: 4;
  grid-row: 1;
  white-space: nowrap;
}

@media (max-width: 767px) {
  .question-bank-page .question-bank-table-toolbar {
    grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.65rem;
  }

  .question-bank-page .question-bank-show-control {
    grid-column: 1;
    grid-row: 1;
  }

  .question-bank-page .question-bank-download-button {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    padding-left: 0.65rem;
    padding-right: 0.65rem;
  }

  .question-bank-page .question-bank-preview-button {
    grid-column: 3;
    grid-row: 1;
    width: 100%;
    padding-left: 0.65rem;
    padding-right: 0.65rem;
  }

  .question-bank-page .question-bank-search-control {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
  }
}

/* Modul page compatibility.
   The global .dash-card rule is loaded after Tailwind and sets display:flex.
   Without this scoped rule, the hidden form can stay visible. */
.content-page .content-toolbar.dash-card,
.content-page .content-action-card.dash-card:not(.hidden) {
  padding: 1.5rem !important;
  display: block !important;
  flex-direction: initial !important;
  align-items: initial !important;
  justify-content: initial !important;
  overflow: visible !important;
}

.content-page .content-toolbar.dash-card {
  min-height: auto !important;
}

.content-page .content-action-card.hidden,
.content-page #form-content.hidden {
  display: none !important;
}

.content-page #form-content:not(.hidden) {
  margin-top: 1rem !important;
}

.content-page input,
.content-page select,
.content-page textarea {
  box-sizing: border-box;
}

@media (max-width: 767px) {
  .content-page .content-toolbar.dash-card,
  .content-page .content-action-card.dash-card:not(.hidden) {
    padding: 1rem !important;
  }
}

/* --- MONITOR REAL-TIME COMPATIBILITY FIX --- */
.monitor-realtime-page .monitor-hero-card {
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.monitor-realtime-page .monitor-hero-card > div:last-child {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.monitor-realtime-page .monitor-hero-card #btn-refresh-monitor {
  width: auto;
  min-width: 128px;
}

.monitor-realtime-page .monitor-hero-card #monitor-last-update {
  width: 100%;
  text-align: center;
}

@media (min-width: 768px) {
  .monitor-realtime-page .monitor-hero-card {
    flex-direction: row;
    align-items: center;
  }

  .monitor-realtime-page .monitor-hero-card > div:first-child {
    flex: 1 1 auto;
  }

  .monitor-realtime-page .monitor-hero-card > div:last-child {
    width: auto;
    margin-left: auto;
    align-items: flex-end;
  }

  .monitor-realtime-page .monitor-hero-card #monitor-last-update {
    text-align: right;
  }
}

.monitor-realtime-page .monitor-stat-grid {
  align-items: stretch;
}

.monitor-realtime-page .monitor-stat-card {
  padding: 16px;
  min-height: 110px;
}

.monitor-realtime-page .monitor-filter-card {
  padding: 18px;
}

.monitor-realtime-page #monitor-filter-tabs {
  gap: 8px;
}

.monitor-realtime-page #monitor-bulk-toolbar.hidden {
  display: none !important;
}

.monitor-realtime-page #monitor-bulk-toolbar.flex {
  display: flex !important;
}

.monitor-realtime-page .monitor-bulk-toolbar {
  padding: 14px 18px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.monitor-realtime-page .monitor-bulk-actions {
  order: 1;
  width: 100%;
}

.monitor-realtime-page .monitor-bulk-selection-summary {
  order: 2;
  width: 100%;
}

.monitor-realtime-page .monitor-bulk-selection-summary > span {
  text-align: center;
}

.monitor-realtime-page #btn-bulk-cancel {
  min-width: 104px;
}

.monitor-realtime-page #btn-bulk-complete {
  min-width: 112px;
}

@media (min-width: 640px) {
  .monitor-realtime-page .monitor-bulk-toolbar {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
  }

  .monitor-realtime-page .monitor-bulk-selection-summary {
    order: 1;
    width: auto;
    justify-content: flex-start;
  }

  .monitor-realtime-page .monitor-bulk-selection-summary > span {
    text-align: left;
  }

  .monitor-realtime-page .monitor-bulk-actions {
    order: 2;
    width: auto;
    margin-left: auto;
  }
}

.monitor-realtime-page .monitor-table-card {
  overflow: hidden;
}

@media (max-width: 767px) {
  .monitor-realtime-page .monitor-stat-card {
    min-height: 104px;
  }
}


/* --- REKAP NILAI COMPATIBILITY FIX --- */
.results-page .results-hero-card {
  padding: 22px 24px;
}

.results-page .results-hero-card .grid {
  align-items: start;
}

.results-page .results-hero-card label {
  letter-spacing: 0.02em;
}

.results-page .results-table-toolbar {
  gap: 16px;
}

.results-page .results-empty-card {
  min-height: 270px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.results-page .results-pagination-card {
  gap: 16px;
}

@media (max-width: 767px) {
  .results-page .results-hero-card {
    padding: 18px 16px;
  }

  .results-page .results-empty-card {
    min-height: 240px;
    padding: 36px 20px;
  }
}





/* --- JADWAL ASESMEN HOVER COMPATIBILITY FIX --- */
.assessment-page .assessment-hero-card,
.assessment-page .assessment-table-card,
.assessment-page .assessment-pagination-card {
  overflow: hidden;
}

.assessment-page .assessment-hero-card {
  padding: 22px 24px;
}

.assessment-page .assessment-filter-bar {
  padding: 16px 18px;
}

.assessment-page .assessment-table-card .overflow-x-auto {
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}

.assessment-page .assessment-table-card .overflow-x-auto::-webkit-scrollbar {
  height: 8px;
}

.assessment-page .assessment-table-card .overflow-x-auto::-webkit-scrollbar-track {
  background: transparent;
}

.assessment-page .assessment-table-card .overflow-x-auto::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 999px;
}

.assessment-page .assessment-table-card thead th {
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.assessment-page .assessment-table-card tbody td {
  vertical-align: middle;
}

.assessment-page .assessment-pagination-card {
  padding: 14px 18px;
}

@media (max-width: 767px) {
  .assessment-page .assessment-hero-card {
    padding: 18px 16px;
  }

  .assessment-page .assessment-filter-bar {
    padding: 14px;
  }
}


/* --- KARTU PESERTA FINAL COMPATIBILITY FIX --- */
.kartu-page {
  max-width: 100%;
}

.kartu-page .kartu-hero-card {
  padding: 22px 24px !important;
}

.kartu-page .kartu-hero-card:hover,
.kartu-page .kartu-table-card:hover,
.kartu-page .kartu-pagination-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 20px -5px rgba(0, 0, 0, 0.06), 0 4px 6px -2px rgba(0, 0, 0, 0.03);
  border-color: #cbd5e1;
}

.kartu-page .kartu-filter-card {
  padding: 16px 18px !important;
  min-height: 64px;
  display: flex;
  align-items: center;
}

.kartu-page .kartu-filter-card > div {
  width: 100%;
}

.kartu-page .kartu-table-card {
  min-height: 270px;
  border-radius: 14px;
}

.kartu-page .kartu-table-card .overflow-x-auto {
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}

.kartu-page .kartu-table-card .overflow-x-auto::-webkit-scrollbar {
  height: 8px;
}

.kartu-page .kartu-table-card .overflow-x-auto::-webkit-scrollbar-track {
  background: transparent;
}

.kartu-page .kartu-table-card .overflow-x-auto::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 999px;
}

.kartu-page .kartu-table {
  min-width: 680px;
}

.kartu-page .kartu-table thead th {
  letter-spacing: 0.08em;
  white-space: nowrap;
  padding-top: 16px;
  padding-bottom: 16px;
}

.kartu-page .kartu-table tbody td {
  vertical-align: middle;
  padding-top: 16px;
  padding-bottom: 16px;
}

.kartu-page .kartu-row {
  min-height: 56px;
}

.kartu-page .kartu-pagination-card {
  padding: 14px 18px !important;
  border-radius: 14px;
}

.kartu-page #kartu-pagination-info {
  width: 100%;
  text-align: left;
}

@media (min-width: 768px) {
  .kartu-page #kartu-pagination-info {
    width: auto;
  }
}

@media (max-width: 767px) {
  .kartu-page .kartu-hero-card {
    padding: 18px 16px !important;
  }

  .kartu-page .kartu-filter-card {
    padding: 14px !important;
  }

  .kartu-page .kartu-table {
    min-width: 620px;
  }
}




/* --- FILE MEDIA MATCH KARTU PESERTA LAYOUT FIX --- */
.media-page {
  max-width: 100%;
}

.media-page .media-hero-card {
  padding: 22px 24px !important;
}

.media-page .media-hero-card:hover,
.media-page .media-table-card:hover,
.media-page .media-pagination-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 20px -5px rgba(0, 0, 0, 0.06), 0 4px 6px -2px rgba(0, 0, 0, 0.03);
  border-color: #cbd5e1;
}

.media-page .media-filter-card {
  padding: 16px 18px !important;
  min-height: 64px;
  display: flex;
  align-items: center;
}

.media-page .media-filter-card > div {
  width: 100%;
}

.media-page .media-table-card {
  min-height: 270px;
  border-radius: 14px;
}

.media-page .media-table-card .overflow-x-auto {
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}

.media-page .media-table-card .overflow-x-auto::-webkit-scrollbar {
  height: 8px;
}

.media-page .media-table-card .overflow-x-auto::-webkit-scrollbar-track {
  background: transparent;
}

.media-page .media-table-card .overflow-x-auto::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 999px;
}

.media-page .media-table {
  min-width: 760px;
}

.media-page .media-table thead th {
  letter-spacing: 0.08em;
  white-space: nowrap;
  padding-top: 16px;
  padding-bottom: 16px;
}

.media-page .media-table tbody td {
  vertical-align: middle;
  padding-top: 16px;
  padding-bottom: 16px;
}

.media-page .media-row {
  min-height: 56px;
}

.media-page .media-pagination-card {
  padding: 14px 18px !important;
  border-radius: 14px;
}

.media-page #media-pagination-info {
  width: 100%;
  text-align: left;
}

.media-page .media-header-row {
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.media-page .media-header-row > div:first-child {
  min-width: 0;
  flex: 1 1 auto;
}

.media-page #media-bulk-actions {
  flex: 0 0 auto;
  align-self: flex-start;
}

@media (min-width: 768px) {
  .media-page #media-pagination-info {
    width: auto;
  }
}

@media (max-width: 767px) {
  .media-page .media-hero-card {
    padding: 18px 16px !important;
  }

  .media-page .media-filter-card {
    padding: 14px !important;
  }

  .media-page .media-table {
    min-width: 760px;
  }

  .media-page .media-header-row {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .media-page #media-bulk-actions {
    width: 100% !important;
    min-width: 0 !important;
    align-self: stretch !important;
    margin-top: 12px !important;
  }

  .media-page #media-bulk-actions.flex {
    display: flex !important;
    flex-direction: column !important;
  }

  .media-page #media-bulk-actions button {
    width: 100% !important;
    min-width: 0 !important;
  }

  .media-page #media-bulk-actions .media-selected-count {
    font-size: 10px;
  }
}


/* --- MANAJEMEN PENGGUNA FINAL COMPATIBILITY FIX --- */
.users-page {
  max-width: 100%;
}

.users-page .users-hero-card {
  padding: 22px 24px !important;
  overflow: hidden;
}

.users-page .users-hero-card:hover,
.users-page .users-table-card:hover,
.users-page .users-pagination-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 20px -5px rgba(0, 0, 0, 0.06), 0 4px 6px -2px rgba(0, 0, 0, 0.03);
  border-color: #cbd5e1;
}

.users-page .users-hero-card > .flex:first-child {
  gap: 16px;
  align-items: flex-start;
}

.users-page .users-hero-card button {
  white-space: nowrap;
}

.users-page .users-filter-card {
  padding: 16px 18px !important;
  min-height: 64px;
  display: flex;
  align-items: center;
}

.users-page .users-filter-card > div {
  width: 100%;
}

.users-page .users-table-card {
  min-height: 270px;
  overflow: hidden;
  border-radius: 14px;
}

.users-page .users-table-card .overflow-x-auto {
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}

.users-page .users-table-card .overflow-x-auto::-webkit-scrollbar {
  height: 8px;
}

.users-page .users-table-card .overflow-x-auto::-webkit-scrollbar-track {
  background: transparent;
}

.users-page .users-table-card .overflow-x-auto::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 999px;
}

.users-page .users-table {
  min-width: 940px;
  table-layout: auto;
}

.users-page .users-table th,
.users-page .users-table td {
  white-space: nowrap;
}

.users-page .users-table td:nth-child(3) {
  white-space: normal;
}

.users-page .users-table thead th {
  letter-spacing: 0.08em;
  white-space: nowrap;
  padding-top: 14px;
  padding-bottom: 14px;
}

.users-page .users-table tbody td {
  vertical-align: middle;
  padding-top: 12px;
  padding-bottom: 12px;
}

.users-page .users-table tbody tr {
  min-height: 56px;
}

.users-page .users-pagination-card {
  padding: 14px 18px !important;
  border-radius: 14px;
}

/* Pagination Manajemen Akun harus benar-benar tersembunyi sebelum modul dipilih.
   Selector scoped ini mencegah utility flex/responsive mengalahkan class hidden. */
.users-page #user-pagination-controls.hidden,
.users-page #user-pagination-controls[aria-hidden="true"] {
  display: none !important;
}

.users-page [id*="pagination-info"],
.users-page [id*="PaginationInfo"] {
  width: 100%;
  text-align: left;
}

@media (min-width: 768px) {
  .users-page [id*="pagination-info"],
  .users-page [id*="PaginationInfo"] {
    width: auto;
  }
}

@media (max-width: 767px) {
  .users-page .users-hero-card {
    padding: 18px 16px !important;
  }

  .users-page .users-filter-card {
    padding: 14px !important;
  }

  .users-page .users-table {
    min-width: 860px;
  }
}








/* --- DATA MASTER TARGET UI FIX --- */
.data-master-page {
  max-width: 100%;
}

.data-master-page .data-master-hero-wrapper,
.data-master-page .data-master-summary-card,
.data-master-page .data-master-main-card,
.data-master-page .data-master-box {
  transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}

.data-master-page .data-master-hero-wrapper:hover,
.data-master-page .data-master-summary-card:hover,
.data-master-page .data-master-main-card:hover,
.data-master-page .data-master-box:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 20px -5px rgba(0,0,0,.06), 0 4px 6px -2px rgba(0,0,0,.03);
}

.data-master-page .data-master-hero-wrapper {
  border-radius: 16px;
  overflow: hidden;
}

.data-master-page .data-master-hero {
  min-height: 112px;
  padding: 26px 28px !important;
  display: flex;
  align-items: center;
}

.data-master-page .data-master-hero > .flex {
  width: 100%;
}

.data-master-page .data-master-hero h2 {
  font-size: 2rem;
  line-height: 1.1;
  margin: 0;
}

.data-master-page .data-master-hero p {
  margin-top: 6px;
  color: rgb(219 234 254);
}

.data-master-page .data-master-hero-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  white-space: nowrap;
  padding: 9px 14px;
  border-radius: 9999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.22);
  color: #fff;
}

.data-master-page .data-master-hero-pill,
.data-master-page .data-master-hero-pill * {
  color: #fff !important;
}

.data-master-page .data-master-summary-card {
  padding: 0 !important;
  border-radius: 16px;
  overflow: hidden;
}

.data-master-page .data-master-summary-head {
  padding: 24px 24px 18px;
  margin: 0 !important;
}

.data-master-page .data-master-summary-grid {
  padding: 20px 24px 24px !important;
  gap: 12px;
}

.data-master-page .data-master-summary-grid > div {
  min-height: 86px;
  border-radius: 16px;
  padding: 18px 16px;
}

.data-master-page .data-master-summary-grid p.text-2xl {
  font-size: 2rem;
  line-height: 1;
}

.data-master-page .data-master-main-card {
  border-radius: 16px;
  overflow: hidden;
}

.data-master-page .data-master-main-card > div:first-child {
  padding-top: 22px;
  padding-bottom: 22px;
}

.data-master-page .data-master-main-card > div:nth-child(2) {
  padding: 24px;
}

.data-master-page .data-master-main-card .grid {
  gap: 20px;
}

.data-master-page .data-master-box {
  border-radius: 16px;
}

@media (max-width: 767px) {
  .data-master-page .data-master-hero {
    min-height: auto;
    padding: 20px 18px !important;
  }
  .data-master-page .data-master-summary-head {
    padding: 18px 16px 16px;
  }
  .data-master-page .data-master-summary-grid {
    padding: 16px !important;
  }
  .data-master-page .data-master-main-card > div:nth-child(2) {
    padding: 16px;
  }
}


/* --- USERS TARGET UI FIX --- */
.users-page .users-hero-card {
  padding: 24px 26px !important;
  border-radius: 18px !important;
  border-color: #dbe3ef !important;
  box-shadow: 0 4px 10px rgba(15, 23, 42, 0.04);
}

.users-page .users-hero-card > .flex:first-child {
  margin-bottom: 18px;
  gap: 18px;
  align-items: flex-start;
}

.users-page .users-hero-card h2 {
  font-size: 1.05rem;
  line-height: 1.2;
}

.users-page .users-hero-card p {
  color: #64748b;
}

.users-page .users-action-group {
  gap: 10px;
}

.users-page .users-action-group button {
  min-height: 44px;
  padding: 0.75rem 1rem;
  border-radius: 12px;
  box-shadow: 0 8px 16px -8px rgba(0,0,0,.25);
}

.users-page .users-filter-card {
  padding: 14px 16px !important;
  min-height: auto;
  border-radius: 14px !important;
  background: #f8fafc !important;
  border-color: #dbe3ef !important;
}

.users-page .users-filter-grid {
  gap: 8px;
  align-items: center;
}

.users-page .users-filter-grid > div,
.users-page .users-filter-grid > select {
  min-height: 44px;
}

.users-page .users-filter-grid select,
.users-page .users-search-wrap input {
  border-radius: 10px !important;
  border-color: #cfd8e3 !important;
  min-height: 44px;
  background: #fff;
}

.users-page .users-filter-grid select {
  font-weight: 600;
  color: #334155;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}

.users-page .users-search-wrap {
  width: 100%;
}

@media (min-width: 1024px) {
  .users-page .users-search-wrap {
    width: 320px !important;
    min-width: 320px;
  }
}

.users-page .users-search-wrap input {
  padding-top: 0.675rem;
  padding-bottom: 0.675rem;
  color: #334155;
}

.users-page .users-search-wrap .fa-search {
  color: #94a3b8;
}

@media (max-width: 767px) {
  .users-page .users-hero-card {
    padding: 18px 16px !important;
    border-radius: 16px !important;
  }
  .users-page .users-action-group button {
    flex: 1 1 100%;
  }
  .users-page .users-filter-card {
    padding: 12px !important;
  }
}


/* --- USERS FILTER ORDER FIX --- */
.users-page .users-filter-card {
  padding: 14px 16px !important;
  min-height: auto;
}

.users-page .users-filter-row {
  width: 100%;
  align-items: center;
}

.users-page .users-show-wrap,
.users-page .users-role-filter,
.users-page .users-status-filter,
.users-page .users-search-wrap input {
  min-height: 44px;
}

.users-page .users-show-wrap {
  justify-content: flex-start;
}

.users-page .users-search-wrap {
  width: 100%;
  min-width: 0;
}

.users-page .users-role-filter,
.users-page .users-status-filter,
.users-page .users-search-wrap input {
  border-radius: 10px !important;
}

@media (min-width: 1280px) {
  .users-page .users-filter-row {
    grid-template-columns: 170px minmax(0,1fr) 220px 320px !important;
  }
}

@media (max-width: 1279px) {
  .users-page .users-filter-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 767px) {
  .users-page .users-filter-row {
    grid-template-columns: 1fr !important;
  }
}


/* --- RESPONSIVE PAGINATION FIX --- */
.responsive-pagination-card {
  padding: 16px 18px !important;
  border-radius: 16px !important;
  gap: 14px !important;
}

.responsive-pagination-card .pagination-summary {
  width: 100%;
  text-align: center;
  line-height: 1.45;
}

.responsive-pagination-card .pagination-actions {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  max-width: 260px;
  margin: 0 auto;
}

.responsive-pagination-card .pagination-btn {
  width: 100%;
  min-height: 44px;
  padding: 0.7rem 1rem;
  border-radius: 12px;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

@media (min-width: 768px) {
  .responsive-pagination-card {
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
  }

  .responsive-pagination-card .pagination-summary {
    width: auto;
    text-align: left;
  }

  .responsive-pagination-card .pagination-actions {
    width: auto;
    max-width: none;
    margin: 0;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
  }

  .responsive-pagination-card .pagination-btn {
    width: auto;
    min-width: 118px;
  }
}

@media (max-width: 420px) {
  .responsive-pagination-card {
    padding: 14px 14px !important;
  }

  .responsive-pagination-card .pagination-actions {
    max-width: 100%;
    gap: 8px;
  }

  .responsive-pagination-card .pagination-btn {
    min-width: 0;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    font-size: 0.875rem;
  }
}




/* --- JADWAL ASESMEN FILTER STRUCTURAL FIX --- */
.assessment-page .assessment-filter-bar {
  padding: 16px 18px !important;
  border-radius: 14px !important;
}

.assessment-page .assessment-filter-grid {
  display: grid !important;
  width: 100% !important;
  align-items: center !important;
  gap: 12px !important;
}

.assessment-page .assessment-show-control,
.assessment-page .assessment-type-filter,
.assessment-page .assessment-status-filter,
.assessment-page .assessment-search-wrap,
.assessment-page .assessment-search-wrap input {
  min-width: 0 !important;
  width: 100% !important;
  min-height: 44px !important;
}

.assessment-page .assessment-show-control {
  justify-content: flex-start !important;
}

.assessment-page .assessment-show-control select {
  width: 72px !important;
  min-height: 44px !important;
}

.assessment-page .assessment-type-filter,
.assessment-page .assessment-status-filter,
.assessment-page .assessment-search-wrap input {
  border-radius: 10px !important;
}

/* Desktop dan tablet lebar: satu baris */
@media (min-width: 900px) {
  .assessment-page .assessment-filter-grid {
    grid-template-columns: 150px minmax(160px, 1fr) minmax(160px, 220px) minmax(280px, 360px) !important;
  }
}

/* Mobile dan tablet kecil: 2x2 */
@media (max-width: 899px) {
  .assessment-page .assessment-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Layar sangat kecil tetap 2 kolom tetapi lebih padat */
@media (max-width: 420px) {
  .assessment-page .assessment-filter-bar {
    padding: 12px !important;
  }

  .assessment-page .assessment-filter-grid {
    gap: 8px !important;
  }

  .assessment-page .assessment-type-filter,
  .assessment-page .assessment-status-filter,
  .assessment-page .assessment-search-wrap input {
    font-size: 0.8125rem !important;
    padding-left: 0.6rem !important;
    padding-right: 0.6rem !important;
  }

  .assessment-page .assessment-search-wrap input {
    padding-left: 2.25rem !important;
  }
}


/* --- USERS MOBILE 2X2 AND CHECKBOX ACTION FIX --- */

/* Data Pengguna: filter mobile/tablet kecil wajib 2x2:
   Show | Semua Role
   Semua Status | Pencarian */
.users-page .users-filter-row {
  display: grid !important;
  width: 100% !important;
  align-items: center !important;
}

.users-page .users-filter-row > div,
.users-page .users-filter-row > select,
.users-page .users-search-wrap,
.users-page .users-search-wrap input {
  min-width: 0 !important;
  width: 100% !important;
  min-height: 44px !important;
}

.users-page .users-show-wrap {
  justify-content: flex-start !important;
}

.users-page .users-action-group {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  width: 100% !important;
}

.users-page .users-action-group button {
  width: 100% !important;
  min-width: 0 !important;
}

/* Desktop dan tablet lebar */
@media (min-width: 900px) {
  .users-page .users-filter-row {
    grid-template-columns: 170px minmax(160px, 1fr) minmax(160px, 220px) minmax(280px, 320px) !important;
  }
}

@media (min-width: 768px) {
  .users-page .users-action-group {
    width: auto !important;
    display: flex !important;
    flex-wrap: wrap !important;
  }

  .users-page .users-action-group button {
    width: auto !important;
  }
}

/* Handphone dan tablet kecil */
@media (max-width: 899px) {
  .users-page .users-filter-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Tetap 2 kolom pada layar kecil, hanya spacing dipadatkan */
@media (max-width: 420px) {
  .users-page .users-filter-card {
    padding: 12px !important;
  }

  .users-page .users-filter-row,
  .users-page .users-action-group {
    gap: 8px !important;
  }

  .users-page .users-filter-row select,
  .users-page .users-search-wrap input {
    font-size: 0.8125rem !important;
    padding-left: 0.6rem !important;
    padding-right: 0.6rem !important;
  }

  .users-page .users-search-wrap input {
    padding-left: 2.25rem !important;
  }
}


/* --- MONITOR FILTER RESPONSIVE FIX --- */
.monitor-realtime-page .monitor-filter-grid {
  display: grid !important;
  width: 100% !important;
  align-items: center !important;
  gap: 12px !important;
}

.monitor-realtime-page .monitor-show-control,
.monitor-realtime-page .monitor-mapel-filter,
.monitor-realtime-page .monitor-kelas-filter,
.monitor-realtime-page .monitor-search-wrap,
.monitor-realtime-page .monitor-search-wrap input {
  min-width: 0 !important;
  width: 100% !important;
  min-height: 44px !important;
}

.monitor-realtime-page .monitor-show-control {
  justify-content: flex-start !important;
}

.monitor-realtime-page .monitor-show-control select {
  width: 72px !important;
  min-height: 44px !important;
}

.monitor-realtime-page .monitor-mapel-filter,
.monitor-realtime-page .monitor-kelas-filter,
.monitor-realtime-page .monitor-search-wrap input {
  border-radius: 10px !important;
}

/* Desktop dan tablet lebar */
@media (min-width: 900px) {
  .monitor-realtime-page .monitor-filter-grid {
    grid-template-columns: 150px minmax(170px, 1fr) minmax(160px, 220px) minmax(280px, 320px) !important;
  }
}

/* Handphone dan tablet layar kecil */
@media (max-width: 899px) {
  .monitor-realtime-page .monitor-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Layar sangat kecil tetap 2 kolom dengan spacing padat */
@media (max-width: 420px) {
  .monitor-realtime-page .monitor-filter-card {
    padding: 12px !important;
  }

  .monitor-realtime-page .monitor-filter-grid {
    gap: 8px !important;
  }

  .monitor-realtime-page .monitor-mapel-filter,
  .monitor-realtime-page .monitor-kelas-filter,
  .monitor-realtime-page .monitor-search-wrap input {
    font-size: 0.8125rem !important;
    padding-left: 0.6rem !important;
    padding-right: 0.6rem !important;
  }

  .monitor-realtime-page .monitor-search-wrap input {
    padding-left: 2.25rem !important;
  }
}


/* --- KARTU PESERTA PRINT HEADER MOBILE FIX --- */
.kartu-page .kartu-header-row {
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.kartu-page .kartu-header-row > div:first-child {
  min-width: 0;
  flex: 1 1 auto;
}

.kartu-page #btn-kartu-massal {
  flex: 0 0 auto;
  align-self: flex-start;
}

@media (max-width: 767px) {
  .kartu-page .kartu-header-row {
    flex-direction: row !important;
  }

  .kartu-page #btn-kartu-massal {
    min-width: 128px;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    font-size: 0.75rem;
  }

  .kartu-page #btn-kartu-massal .kartu-massal-count {
    font-size: 10px;
  }
}




/* --- Fix Turnstile Verifikasi PIN Exam mobile/tablet kecil ---
   Widget normal Cloudflare memiliki lebar ±300px. Mode compact berbentuk kotak,
   jadi modal PIN diberi ruang responsif agar tampilannya sama nyaman seperti halaman Login. */
.swal2-popup.peserta-pin-swal .pin-turnstile-widget {
  width: min(304px, 100%);
  min-height: 65px;
  margin-right: auto;
  margin-left: auto;
}

.swal2-popup.peserta-pin-swal .pin-turnstile-widget iframe {
  width: 100% !important;
  max-width: 304px !important;
}

@media (max-width: 430px) {
  .swal2-popup.peserta-pin-swal {
    width: min(460px, calc(100vw - 16px)) !important;
  }

  .swal2-html-container.peserta-pin-swal-html {
    padding-right: 18px !important;
    padding-left: 18px !important;
  }

  .swal2-popup.peserta-pin-swal .pin-turnstile-shell {
    width: calc(100% + 12px);
    margin-right: -6px;
    margin-left: -6px;
  }

  .swal2-popup.peserta-pin-swal .pin-turnstile-widget {
    width: min(304px, 100%);
  }
}

@media (max-width: 360px) {
  .swal2-popup.peserta-pin-swal {
    width: min(460px, calc(100vw - 12px)) !important;
  }

  .swal2-html-container.peserta-pin-swal-html {
    padding-right: 10px !important;
    padding-left: 10px !important;
  }

  .swal2-popup.peserta-pin-swal .pin-turnstile-shell {
    width: calc(100% + 16px);
    margin-right: -8px;
    margin-left: -8px;
  }

  .swal2-popup.peserta-pin-swal .pin-turnstile-status {
    max-width: 220px;
    font-size: 11px;
  }
}


/* --- Unified Cloudflare Turnstile Responsive Patch: Login, Setup, PIN Exam ---
   Semua widget memakai ukuran normal pada desktop, tablet, dan mobile umum.
   Mode compact hanya aktif dari JavaScript pada layar sangat sempit. */
#page-login .login-turnstile-widget,
#page-initial-setup .setup-turnstile-widget,
.swal2-popup.peserta-pin-swal .pin-turnstile-widget {
  width: min(304px, 100%) !important;
  min-height: 65px;
  margin-right: auto;
  margin-left: auto;
}

#page-login .login-turnstile-widget iframe,
#page-initial-setup .setup-turnstile-widget iframe,
.swal2-popup.peserta-pin-swal .pin-turnstile-widget iframe {
  width: 100% !important;
  max-width: 304px !important;
}

#page-login .login-turnstile-shell,
#page-initial-setup .setup-turnstile-shell,
.swal2-popup.peserta-pin-swal .pin-turnstile-shell {
  min-height: 86px !important;
  overflow: visible !important;
}

@media (max-width: 380px) {
  #page-login .login-turnstile-shell,
  #page-initial-setup .setup-turnstile-shell,
  .swal2-popup.peserta-pin-swal .pin-turnstile-shell {
    min-height: 86px !important;
  }

  #page-login .login-turnstile-status,
  #page-login .login-alert-status,
  #page-initial-setup .setup-turnstile-status,
  #page-initial-setup .setup-alert-status,
  .swal2-popup.peserta-pin-swal .pin-turnstile-status {
    max-width: 240px !important;
  }
}

@media (max-width: 340px) {
  #page-login .login-card {
    padding-right: 16px;
    padding-left: 16px;
  }

  #page-login .login-turnstile-shell,
  #page-initial-setup .setup-turnstile-shell,
  .swal2-popup.peserta-pin-swal .pin-turnstile-shell {
    width: calc(100% + 12px) !important;
    margin-right: -6px !important;
    margin-left: -6px !important;
  }
}

#page-login .login-alert-row:not(.hidden) {
  display: grid !important;
}


@media (max-width: 1023px), (pointer: coarse) {
  #page-login input,
  #page-login select,
  #page-login textarea {
    font-size: 16px !important;
  }
}

/* Media settings dialog */
.swal2-popup.media-settings-swal {
  width: min(940px, calc(100vw - 32px));
  padding: 0;
  border-radius: 18px;
  overflow: hidden;
  color: #0f172a;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.18);
}
.swal2-popup.media-settings-swal .media-settings-close {
  width: 44px;
  height: 44px;
  top: 26px;
  right: 30px;
  border-radius: 999px;
  color: #334155;
  font-size: 34px;
  line-height: 1;
}
.swal2-popup.media-settings-swal .media-settings-html {
  margin: 0;
  padding: 0;
  overflow: visible;
}
.swal2-popup.media-settings-swal .media-settings-dialog {
  padding: 58px 60px 0;
}
.swal2-popup.media-settings-swal .media-settings-head {
  display: flex;
  align-items: center;
  gap: 32px;
  padding-right: 64px;
}
.swal2-popup.media-settings-swal .media-settings-icon {
  width: 104px;
  height: 104px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #eef5ff, #f8fbff);
  border: 1px solid #dbe7fb;
  color: #2563eb;
  font-size: 44px;
  box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.06);
  flex: 0 0 auto;
}
.swal2-popup.media-settings-swal .media-settings-title-wrap h2 {
  margin: 0;
  font-size: clamp(34px, 4vw, 50px);
  line-height: 1.08;
  letter-spacing: -0.03em;
  font-weight: 900;
  color: #0b1537;
}
.swal2-popup.media-settings-swal .media-settings-title-wrap p {
  margin: 18px 0 0;
  font-size: clamp(18px, 2vw, 24px);
  line-height: 1.45;
  color: #475569;
}
.swal2-popup.media-settings-swal .media-settings-divider {
  height: 1px;
  background: #cbd5e1;
  margin: 54px 0 0;
}
.swal2-popup.media-settings-swal .media-settings-body {
  padding: 52px 0 58px;
}
.swal2-popup.media-settings-swal .media-settings-body h3 {
  margin: 0;
  font-size: clamp(24px, 2.8vw, 32px);
  line-height: 1.2;
  font-weight: 900;
  color: #0b1537;
}
.swal2-popup.media-settings-swal .media-settings-desc {
  margin: 26px 0 34px;
  font-size: clamp(17px, 2vw, 23px);
  line-height: 1.5;
  color: #475569;
}
.swal2-popup.media-settings-swal .media-settings-input-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 152px;
  gap: 24px;
}
.swal2-popup.media-settings-swal .media-settings-input-row input,
.swal2-popup.media-settings-swal .media-settings-input-row select {
  height: 74px;
  border: 1px solid #b8c3d4;
  border-radius: 14px;
  background: #fff;
  color: #020617;
  font-size: 28px;
  line-height: 1;
  outline: none;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.swal2-popup.media-settings-swal .media-settings-input-row input {
  padding: 0 24px;
  font-weight: 500;
}
.swal2-popup.media-settings-swal .media-settings-input-row select {
  padding: 0 42px 0 24px;
  font-weight: 600;
  appearance: auto;
}
.swal2-popup.media-settings-swal .media-settings-input-row input:focus,
.swal2-popup.media-settings-swal .media-settings-input-row select:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
}
.swal2-popup.media-settings-swal .media-settings-note {
  margin-top: 46px;
  display: flex;
  align-items: flex-start;
  gap: 26px;
  border: 1px solid #bfdbfe;
  border-radius: 14px;
  background: #eff6ff;
  padding: 28px 30px;
}
.swal2-popup.media-settings-swal .media-settings-note span {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #2563eb;
  border: 3px solid #2563eb;
  border-radius: 999px;
  flex: 0 0 auto;
  font-size: 16px;
  margin-top: 3px;
}
.swal2-popup.media-settings-swal .media-settings-note p {
  margin: 0;
  color: #475569;
  font-size: clamp(17px, 2vw, 23px);
  line-height: 1.55;
}
.swal2-popup.media-settings-swal .media-settings-actions {
  width: 100%;
  margin: 0;
  padding: 32px 52px;
  border-top: 1px solid #e2e8f0;
  background: #fff;
  display: flex;
  justify-content: flex-end;
  gap: 28px;
}
.swal2-popup.media-settings-swal .media-settings-confirm,
.swal2-popup.media-settings-swal .media-settings-cancel {
  min-width: 168px;
  height: 70px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  font-size: 22px;
  font-weight: 800;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.swal2-popup.media-settings-swal .media-settings-confirm {
  border: 0;
  background: #2563eb;
  color: #fff;
  box-shadow: 0 16px 30px rgba(37, 99, 235, 0.28);
}
.swal2-popup.media-settings-swal .media-settings-cancel {
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #475569;
}
.swal2-popup.media-settings-swal .media-settings-confirm:hover,
.swal2-popup.media-settings-swal .media-settings-cancel:hover {
  transform: translateY(-1px);
}
.swal2-popup.media-settings-swal .media-settings-validation {
  margin: 0 60px 20px;
}
@media (max-width: 640px) {
  .swal2-popup.media-settings-swal {
    width: calc(100vw - 24px);
    border-radius: 16px;
  }
  .swal2-popup.media-settings-swal .media-settings-close {
    top: 18px;
    right: 18px;
  }
  .swal2-popup.media-settings-swal .media-settings-dialog {
    padding: 34px 22px 0;
  }
  .swal2-popup.media-settings-swal .media-settings-head {
    gap: 18px;
    padding-right: 38px;
  }
  .swal2-popup.media-settings-swal .media-settings-icon {
    width: 70px;
    height: 70px;
    font-size: 30px;
  }
  .swal2-popup.media-settings-swal .media-settings-divider {
    margin-top: 30px;
  }
  .swal2-popup.media-settings-swal .media-settings-body {
    padding: 32px 0 34px;
  }
  .swal2-popup.media-settings-swal .media-settings-input-row {
    grid-template-columns: 1fr 96px;
    gap: 12px;
  }
  .swal2-popup.media-settings-swal .media-settings-input-row input,
  .swal2-popup.media-settings-swal .media-settings-input-row select {
    height: 58px;
    font-size: 20px;
  }
  .swal2-popup.media-settings-swal .media-settings-input-row input {
    padding: 0 14px;
  }
  .swal2-popup.media-settings-swal .media-settings-input-row select {
    padding: 0 12px;
  }
  .swal2-popup.media-settings-swal .media-settings-note {
    margin-top: 28px;
    padding: 18px;
    gap: 14px;
  }
  .swal2-popup.media-settings-swal .media-settings-actions {
    padding: 18px 20px 22px;
    gap: 12px;
  }
  .swal2-popup.media-settings-swal .media-settings-confirm,
  .swal2-popup.media-settings-swal .media-settings-cancel {
    flex: 1 1 0;
    min-width: 0;
    height: 54px;
    font-size: 16px;
    gap: 10px;
  }
}


/* --- FILE MEDIA VISIBLE PATCH 20260707 --- */
@media (max-width: 767px) {
  .media-page .media-header-row {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .media-page #media-bulk-actions.flex {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    margin-top: 12px !important;
    align-self: stretch !important;
  }

  .media-page #media-bulk-actions button {
    width: 100% !important;
    min-width: 0 !important;
  }
}

/* --- FILE MEDIA FINAL COMPACT SETTINGS + SIDE ACTIONS 20260707 --- */
@media (max-width: 767px) {
  .media-page #media-bulk-actions.flex {
    display: flex !important;
    flex-direction: row !important;
    width: 100% !important;
    margin-top: 12px !important;
    align-self: stretch !important;
    gap: 8px !important;
  }
  .media-page #media-bulk-actions button {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
  }
}

.swal2-popup.media-settings-swal {
  width: min(560px, calc(100vw - 24px)) !important;
  border-radius: 18px !important;
}
.swal2-popup.media-settings-swal .media-settings-dialog {
  padding: 30px 32px 0 !important;
}
.swal2-popup.media-settings-swal .media-settings-icon {
  width: 64px !important;
  height: 64px !important;
  font-size: 28px !important;
}
.swal2-popup.media-settings-swal .media-settings-title-wrap h2 {
  font-size: 28px !important;
}
.swal2-popup.media-settings-swal .media-settings-title-wrap p,
.swal2-popup.media-settings-swal .media-settings-desc {
  font-size: 14px !important;
}
.swal2-popup.media-settings-swal .media-settings-body {
  padding: 26px 0 28px !important;
}
.swal2-popup.media-settings-swal .media-settings-input-row {
  display: block !important;
}
.swal2-popup.media-settings-swal .media-settings-input-box {
  height: 50px !important;
  border: 1px solid #b8c3d4 !important;
  border-radius: 12px !important;
  background: #fff !important;
  display: flex !important;
  align-items: center !important;
  overflow: hidden !important;
}
.swal2-popup.media-settings-swal .media-settings-input-box input {
  height: 100% !important;
  min-width: 0 !important;
  flex: 1 1 auto !important;
  border: 0 !important;
  background: transparent !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  outline: none !important;
  padding: 0 16px !important;
  box-shadow: none !important;
}
.swal2-popup.media-settings-swal .media-settings-unit-addon {
  height: 100% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 70px !important;
  padding: 0 16px !important;
  border-left: 1px solid #e2e8f0 !important;
  background: #f8fafc !important;
  color: #0f172a !important;
  font-size: 15px !important;
  font-weight: 900 !important;
}
.swal2-popup.media-settings-swal .media-settings-cancel {
  order: 1 !important;
}
.swal2-popup.media-settings-swal .media-settings-confirm {
  order: 2 !important;
}


/* --- FINAL RESPONSIVE POSITION + MEDIA SETTINGS COMPACT PATCH 20260707 --- */
@media (max-width: 767px) {
  .kartu-page .kartu-header-row {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .kartu-page .kartu-header-row > div:first-child {
    width: 100% !important;
  }
  .kartu-page #btn-kartu-massal {
    width: 100% !important;
    align-self: stretch !important;
    justify-content: center !important;
  }
  .assessment-page .assessment-hero-card > div:first-child > div:first-child {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .assessment-page .assessment-hero-card button[aria-label="Buat CBT"] {
    width: 100% !important;
    justify-content: center !important;
  }
  .results-page .results-hero-card > div:first-child {
    align-items: stretch !important;
  }
}
.assessment-page .assessment-table-card table,
.assessment-page .assessment-table-card thead th,
.assessment-page .assessment-table-card tbody td {
  text-align: center !important;
}
.swal2-popup.media-settings-swal {
  width: min(430px, calc(100vw - 24px)) !important;
  border-radius: 16px !important;
}
.swal2-popup.media-settings-swal .swal2-close,
.swal2-popup.media-settings-swal .media-settings-close {
  display: none !important;
}
.swal2-popup.media-settings-swal .media-settings-dialog {
  padding: 22px 24px 0 !important;
}
.swal2-popup.media-settings-swal .media-settings-head {
  gap: 14px !important;
  padding-right: 0 !important;
}
.swal2-popup.media-settings-swal .media-settings-icon {
  width: 48px !important;
  height: 48px !important;
  font-size: 22px !important;
}
.swal2-popup.media-settings-swal .media-settings-title-wrap h2 {
  font-size: 22px !important;
}
.swal2-popup.media-settings-swal .media-settings-title-wrap p,
.swal2-popup.media-settings-swal .media-settings-desc {
  font-size: 12px !important;
}
.swal2-popup.media-settings-swal .media-settings-divider {
  margin-top: 18px !important;
}
.swal2-popup.media-settings-swal .media-settings-body {
  padding: 18px 0 20px !important;
}
.swal2-popup.media-settings-swal .media-settings-body h3 {
  font-size: 15px !important;
}
.swal2-popup.media-settings-swal .media-settings-input-box {
  height: 44px !important;
}
.swal2-popup.media-settings-swal .media-settings-input-box input {
  font-size: 16px !important;
  font-weight: 800 !important;
  -moz-appearance: textfield !important;
  appearance: textfield !important;
}
.swal2-popup.media-settings-swal .media-settings-input-box input::-webkit-outer-spin-button,
.swal2-popup.media-settings-swal .media-settings-input-box input::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  display: none !important;
  margin: 0 !important;
}
.swal2-popup.media-settings-swal .media-settings-unit-addon {
  min-width: 56px !important;
  font-size: 13px !important;
}
.swal2-popup.media-settings-swal .media-settings-note {
  margin-top: 14px !important;
  padding: 11px 12px !important;
  gap: 10px !important;
}
.swal2-popup.media-settings-swal .media-settings-note span {
  width: 18px !important;
  height: 18px !important;
  font-size: 10px !important;
  border-width: 2px !important;
}
.swal2-popup.media-settings-swal .media-settings-note p {
  font-size: 11.5px !important;
}
.swal2-popup.media-settings-swal .media-settings-actions {
  padding: 14px 18px !important;
  gap: 10px !important;
}
.swal2-popup.media-settings-swal .media-settings-cancel {
  order: 1 !important;
}
.swal2-popup.media-settings-swal .media-settings-confirm {
  order: 2 !important;
}
.swal2-popup.media-settings-swal .media-settings-confirm,
.swal2-popup.media-settings-swal .media-settings-cancel {
  min-width: 96px !important;
  height: 40px !important;
  font-size: 13px !important;
}

/* Reset Data: ikon dan judul header bagian tetap sejajar pada semua ukuran layar. */
.reset-page .reset-section-heading-row {
  flex-direction: row !important;
  align-items: flex-start !important;
}

/* Reset Data: selalu 2 kolom x 4 baris pada desktop, tablet, dan mobile */
#data-reset-options-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0.75rem !important;
}
#data-reset-options-grid .data-reset-option-card {
  display: flex;
  min-width: 0;
  min-height: 112px;
  cursor: pointer;
  align-items: flex-start;
  gap: 0.75rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.85rem;
  background: #f8fafc;
  padding: 0.9rem;
  color: #334155;
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
#data-reset-options-grid .data-reset-option-card:hover {
  border-color: #bfdbfe;
  background: #eff6ff;
  box-shadow: 0 8px 20px -18px rgba(37,99,235,.55);
}
#data-reset-options-grid .data-reset-option-card-danger {
  border-color: #fecaca;
  background: #fef2f2;
  color: #b91c1c;
}
#data-reset-options-grid .data-reset-option-card-danger:hover {
  border-color: #fca5a5;
  background: #fee2e2;
}
#data-reset-options-grid .data-reset-option {
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  margin-top: 0.15rem;
  border-radius: 0.25rem;
  accent-color: #2563eb;
}
#data-reset-options-grid .data-reset-option-card-danger .data-reset-option { accent-color: #dc2626; }
#data-reset-options-grid .data-reset-option-card > span { min-width: 0; }
#data-reset-options-grid .data-reset-option-title {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 0.5rem;
  color: #1e293b;
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.25rem;
}
#data-reset-options-grid .data-reset-option-card-danger .data-reset-option-title { color: #b91c1c; }
#data-reset-options-grid .data-reset-option-title i { flex: 0 0 auto; }
#data-reset-options-grid .data-reset-option-detail {
  display: block;
  margin-top: 0.35rem;
  color: #64748b;
  font-size: 0.75rem;
  font-weight: 550;
  line-height: 1.15rem;
  overflow-wrap: anywhere;
}
#data-reset-options-grid .data-reset-option-card-danger .data-reset-option-detail { color: #dc2626; }
#data-reset-options-grid .data-reset-option-subitems {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem 0.45rem;
  margin-top: 0.4rem;
  color: #475569;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1rem;
}
#data-reset-options-grid .data-reset-option-subitems > span::before {
  content: '•';
  margin-right: 0.25rem;
  color: #94a3b8;
}
@media (max-width: 767px) {
  #data-reset-options-grid { gap: 0.5rem !important; }
  #data-reset-options-grid .data-reset-option-card {
    min-height: 104px;
    gap: 0.5rem;
    padding: 0.72rem 0.6rem;
  }
  #data-reset-options-grid .data-reset-option-title {
    gap: 0.35rem;
    font-size: 0.76rem;
    line-height: 1.05rem;
  }
  #data-reset-options-grid .data-reset-option-detail {
    margin-top: 0.25rem;
    font-size: 0.65rem;
    line-height: 0.92rem;
  }
  #data-reset-options-grid .data-reset-option-subitems {
    gap: 0.18rem 0.32rem;
    margin-top: 0.28rem;
    font-size: 0.59rem;
    line-height: 0.82rem;
  }
}
@media (max-width: 380px) {
  #data-reset-options-grid .data-reset-option-card {
    min-height: 108px;
    padding: 0.65rem 0.5rem;
  }
  #data-reset-options-grid .data-reset-option-title { font-size: 0.7rem; }
  #data-reset-options-grid .data-reset-option-detail { font-size: 0.61rem; line-height: 0.86rem; }
}


/* Monitoring: isi Jadwal rata tengah pada semua baris */
.monitor-schedule-cell {
  text-align: center !important;
  align-items: center !important;
  justify-content: center !important;
}
.monitor-schedule-cell > span {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Bank Soal TinyMCE: sembunyikan bantuan Alt+0 dan matikan affordance link/context pada editor */
.tox .tox-statusbar__help-text,
.tox .tox-statusbar__branding,
.tox .tox-statusbar__path {
  display: none !important;
}
.tox .tox-statusbar {
  min-height: 18px !important;
}
.tox .tox-statusbar__resize-handle {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 24px !important;
  min-height: 18px !important;
}
.tox .tox-collection__item[title*="link" i],
.tox .tox-collection__item[aria-label*="link" i],
.tox .tox-tbtn[title*="link" i],
.tox .tox-tbtn[aria-label*="link" i] {
  display: none !important;
}


/* Dashboard: indikator Adaptive Quota Mode di bawah tombol Refresh */
.adaptive-quota-indicator {
  width: 100%;
  max-width: 360px;
  border: 1px solid rgba(37, 99, 235, 0.14);
  background: rgba(255, 255, 255, 0.88);
  border-radius: 0.9rem;
  padding: 0.6rem 0.75rem;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
  color: #334155;
  cursor: default;
}
.adaptive-quota-main {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.45rem;
  font-size: 0.78rem;
  line-height: 1rem;
  font-weight: 800;
  color: #1e40af;
}
.adaptive-quota-main i {
  color: #2563eb;
  font-size: 0.78rem;
}
.adaptive-quota-sub,
.adaptive-quota-detail {
  margin-top: 0.2rem;
  font-size: 0.68rem;
  line-height: 0.95rem;
  font-weight: 650;
  color: #64748b;
  white-space: normal;
  overflow-wrap: anywhere;
}
.adaptive-quota-detail {
  color: #475569;
}
@media (max-width: 767px) {
  .dashboard-refresh-wrap .adaptive-quota-indicator {
    max-width: none;
  }
}

/* Monitoring: card Adaptive Quota Mode menggantikan ringkasan Belum Login */
.monitor-realtime-page .monitor-quota-card {
  cursor: default;
  overflow: hidden;
}
.monitor-realtime-page .monitor-quota-mode {
  max-width: 7.5rem;
  overflow-wrap: anywhere;
}
.monitor-realtime-page .monitor-quota-detail {
  display: block;
  overflow: visible;
  white-space: normal;
}
.monitor-realtime-page .monitor-quota-cache-line {
  display: inline-block;
  margin-top: 0.1rem;
}
@media (max-width: 767px) {
  .monitor-realtime-page .monitor-quota-card {
    min-width: 0;
  }
  .monitor-realtime-page .monitor-quota-mode,
  .monitor-realtime-page .monitor-quota-detail {
    max-width: 100%;
  }
}

/* Modul filter refinement: Show, Jenis Modul, Status, and Pencarian follow the CBT rhythm. */
.content-page .content-row td {
  vertical-align: middle;
}

.content-page .content-filter-card {
  display: grid !important;
  width: 100% !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0.75rem !important;
  align-items: center !important;
}

.content-page .content-show-control,
.content-page .content-type-filter,
.content-page .content-status-filter,
.content-page .content-search-wrap,
.content-page .content-search-wrap input {
  min-width: 0 !important;
  width: 100% !important;
  min-height: 44px !important;
}

.content-page .content-show-control {
  justify-content: flex-start !important;
}

.content-page .content-show-control select {
  width: 72px !important;
  min-height: 44px !important;
}

.content-page .content-type-filter,
.content-page .content-status-filter,
.content-page .content-search-wrap input {
  border-radius: 10px !important;
}

@media (min-width: 1024px) {
  .content-page .content-filter-card {
    grid-template-columns:
      minmax(138px, 0.72fr)
      minmax(170px, 1fr)
      minmax(145px, 0.85fr)
      minmax(210px, 1.15fr) !important;
    gap: 0.75rem !important;
  }

  .content-page .content-search-wrap {
    max-width: 360px !important;
    justify-self: stretch !important;
  }
}

@media (max-width: 767px) {
  .content-page .content-filter-card {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 420px) {
  .content-page .content-filter-card {
    padding: 0.75rem !important;
    gap: 0.6rem !important;
  }

  .content-page .content-type-filter,
  .content-page .content-status-filter,
  .content-page .content-search-wrap input {
    padding-left: 0.65rem !important;
    padding-right: 0.65rem !important;
    font-size: 12px !important;
  }

  .content-page #content-search-input {
    padding-left: 2.15rem !important;
  }
}


/* Modul pagination: samakan pola dengan CBT dan halaman data lain. */
.content-page .content-table-card,
.content-page .content-pagination-card {
  overflow: hidden;
}

.content-page .content-pagination-card {
  padding: 14px 18px !important;
}

.content-page .content-table-card thead th {
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.content-page .content-table-card tbody td {
  vertical-align: middle;
}

@media (max-width: 767px) {
  .content-page .content-pagination-card {
    padding: 14px !important;
  }
}

/* Modul preview: samakan ukuran lampiran dengan pratinjau Rekap Nilai dan sembunyikan metadata teknis. */
.content-preview-clean .content-preview-attachment-card {
  overflow: hidden;
}
.content-preview-clean .content-preview-attachment-frame,
.content-preview-clean .content-attachment-preview-body {
  max-height: 18rem;
  overflow: auto;
}
.content-preview-clean .content-preview-attachment-image,
#modal-preview .content-preview-clean img.content-preview-attachment-image,
.swal2-popup .content-preview-clean img.content-preview-attachment-image {
  max-height: 16rem !important;
  width: auto !important;
  max-width: 100% !important;
  object-fit: contain !important;
}
.content-preview-clean .content-preview-attachment-pdf,
.content-preview-clean .content-preview-attachment-pdf iframe {
  height: 16rem !important;
  max-height: 16rem !important;
}
.content-preview-clean .content-preview-attachment-text {
  max-height: 16rem !important;
}
.content-preview-clean .content-attachment-preview-body .attachment-meta,
.content-preview-clean .content-attachment-preview-body .file-meta,
.content-preview-clean .content-attachment-preview-body .media-meta,
.content-preview-clean .content-attachment-preview-body [data-file-name],
.content-preview-clean .content-attachment-preview-body [data-file-size],
.content-preview-clean .content-attachment-preview-body [data-content-type] {
  display: none !important;
}


/* --- MEDIA SETTINGS BALANCED LIMIT FIELDS 20260708 --- */
.swal2-popup.media-settings-swal {
  width: min(560px, calc(100vw - 24px)) !important;
}
.swal2-popup.media-settings-swal .media-settings-dialog {
  padding: 24px 26px 0 !important;
}
.swal2-popup.media-settings-swal .media-settings-input-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 12px !important;
  align-items: start !important;
}
.swal2-popup.media-settings-swal .media-settings-input-row > div {
  min-width: 0 !important;
  width: 100% !important;
}
.swal2-popup.media-settings-swal .media-settings-field-label {
  display: block !important;
  min-height: 14px !important;
  white-space: nowrap !important;
}
.swal2-popup.media-settings-swal .media-settings-input-box {
  width: 100% !important;
  min-width: 0 !important;
}
.swal2-popup.media-settings-swal .media-settings-input-box input {
  width: 0 !important;
  min-width: 0 !important;
  flex: 1 1 0 !important;
}
.swal2-popup.media-settings-swal .media-settings-unit-addon {
  min-width: 54px !important;
  flex: 0 0 54px !important;
  padding: 0 10px !important;
}
@media (max-width: 480px) {
  .swal2-popup.media-settings-swal .media-settings-input-row {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
}


/* --- MEDIA SETTINGS COMPACT SIZE PATCH 20260708 --- */
.swal2-popup.media-settings-swal {
  width: min(520px, calc(100vw - 24px)) !important;
  border-radius: 16px !important;
}
.swal2-popup.media-settings-swal .media-settings-dialog {
  padding: 22px 24px 0 !important;
}
.swal2-popup.media-settings-swal .media-settings-head {
  gap: 12px !important;
}
.swal2-popup.media-settings-swal .media-settings-icon {
  width: 44px !important;
  height: 44px !important;
  font-size: 21px !important;
}
.swal2-popup.media-settings-swal .media-settings-title-wrap h2 {
  font-size: 21px !important;
}
.swal2-popup.media-settings-swal .media-settings-title-wrap p,
.swal2-popup.media-settings-swal .media-settings-desc {
  font-size: 11.5px !important;
  line-height: 1.4 !important;
}
.swal2-popup.media-settings-swal .media-settings-divider {
  margin-top: 16px !important;
}
.swal2-popup.media-settings-swal .media-settings-body {
  padding: 16px 0 18px !important;
}
.swal2-popup.media-settings-swal .media-settings-body h3 {
  font-size: 14.5px !important;
}
.swal2-popup.media-settings-swal .media-settings-desc {
  margin: 6px 0 11px !important;
}
.swal2-popup.media-settings-swal .media-settings-input-row {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 10px !important;
}
.swal2-popup.media-settings-swal .media-settings-field-label {
  margin-bottom: 5px !important;
  font-size: 10.5px !important;
}
.swal2-popup.media-settings-swal .media-settings-input-box {
  height: 42px !important;
  border-radius: 10px !important;
}
.swal2-popup.media-settings-swal .media-settings-input-box input {
  font-size: 15px !important;
  padding: 0 10px !important;
}
.swal2-popup.media-settings-swal .media-settings-unit-addon {
  min-width: 50px !important;
  flex-basis: 50px !important;
  padding: 0 9px !important;
  font-size: 12.5px !important;
}
.swal2-popup.media-settings-swal .media-settings-note {
  margin-top: 12px !important;
  padding: 10px 11px !important;
  gap: 9px !important;
  border-radius: 10px !important;
}
.swal2-popup.media-settings-swal .media-settings-note span {
  width: 17px !important;
  height: 17px !important;
  font-size: 9px !important;
}
.swal2-popup.media-settings-swal .media-settings-note p {
  font-size: 11px !important;
  line-height: 1.4 !important;
}
.swal2-popup.media-settings-swal .media-settings-actions {
  padding: 12px 16px !important;
  gap: 9px !important;
}
.swal2-popup.media-settings-swal .media-settings-confirm,
.swal2-popup.media-settings-swal .media-settings-cancel {
  min-width: 90px !important;
  height: 38px !important;
  font-size: 12.5px !important;
  border-radius: 9px !important;
}
@media (max-width: 480px) {
  .swal2-popup.media-settings-swal {
    width: calc(100vw - 20px) !important;
  }
  .swal2-popup.media-settings-swal .media-settings-dialog {
    padding: 18px 14px 0 !important;
  }
}

/* CBT private switch fallback. Tailwind's dynamic peer variant may not be generated
   for the new private switch, so this keeps the color behavior identical in deploy. */
#input-assessment-private-status:checked + .assessment-private-switch-track {
  background-color: #8b5cf6 !important;
}
#input-assessment-private-status:focus-visible + .assessment-private-switch-track {
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.22) !important;
}
#input-assessment-private-status:checked ~ .assessment-private-switch-thumb {
  transform: translateX(1rem) !important;
}

/* Modul toolbar responsive button alignment. */
@media (max-width: 767px) {
  .content-page .content-toolbar button[aria-label="Buat Modul"] {
    width: 100% !important;
    align-self: stretch !important;
  }
}

/* Data Pengguna mobile/tablet action alignment. */
@media (max-width: 899px) {
  .users-page .users-action-group {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    justify-items: stretch !important;
  }

  .users-page #btn-import-users {
    grid-column: 1 !important;
  }

  .users-page #btn-add-user {
    grid-column: 2 !important;
    justify-self: end !important;
  }
}

/* --- ABSENSI HARIAN FILTER STRUCTURAL FIX --- */
.attendance-page .attendance-filter-bar {
  padding: 16px 18px !important;
  border-radius: 14px !important;
}

.attendance-page .attendance-filter-grid {
  display: grid !important;
  width: 100% !important;
  align-items: center !important;
  gap: 12px !important;
}

.attendance-page .attendance-show-control,
.attendance-page .attendance-subject-filter,
.attendance-page .attendance-class-filter,
.attendance-page .attendance-search-wrap,
.attendance-page .attendance-search-wrap input {
  min-width: 0 !important;
  width: 100% !important;
  min-height: 44px !important;
}

.attendance-page .attendance-show-control {
  justify-content: flex-start !important;
}

.attendance-page .attendance-show-control select {
  width: 72px !important;
  min-height: 44px !important;
}

.attendance-page .attendance-subject-filter,
.attendance-page .attendance-class-filter,
.attendance-page .attendance-search-wrap input {
  border-radius: 10px !important;
}

/* Desktop dan tablet lebar: satu baris seperti CBT */
@media (min-width: 900px) {
  .attendance-page .attendance-filter-grid {
    grid-template-columns: 150px minmax(200px, 260px) minmax(160px, 220px) minmax(280px, 1fr) !important;
  }
}

/* Mobile dan tablet kecil: tetap rapi 2 kolom */
@media (max-width: 899px) {
  .attendance-page .attendance-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

}

@media (max-width: 420px) {
  .attendance-page .attendance-filter-bar {
    padding: 12px !important;
  }

  .attendance-page .attendance-filter-grid {
    gap: 8px !important;
  }

  .attendance-page .attendance-subject-filter,
  .attendance-page .attendance-class-filter,
  .attendance-page .attendance-search-wrap input {
    font-size: 0.8125rem !important;
    padding-left: 0.6rem !important;
    padding-right: 0.6rem !important;
  }

  .attendance-page .attendance-search-wrap input {
    padding-left: 2.25rem !important;
  }
}

/* --- ABSENSI HARIAN VISUAL ALIGNMENT WITH CBT --- */
.attendance-page.assessment-page .attendance-toolbar,
.attendance-page.assessment-page .attendance-table-card,
.attendance-page.assessment-page .attendance-pagination-card {
  overflow: hidden;
}

.attendance-page.assessment-page .attendance-toolbar {
  padding: 22px 24px !important;
}

.attendance-page.assessment-page .attendance-filter-bar {
  padding: 16px 18px !important;
  border-radius: 14px !important;
}

.attendance-page.assessment-page .attendance-filter-grid {
  display: grid !important;
  width: 100% !important;
  align-items: center !important;
  gap: 12px !important;
}

.attendance-page.assessment-page .attendance-show-control,
.attendance-page.assessment-page .attendance-subject-filter,
.attendance-page.assessment-page .attendance-class-filter,
.attendance-page.assessment-page .attendance-search-wrap,
.attendance-page.assessment-page .attendance-search-wrap input {
  min-width: 0 !important;
  width: 100% !important;
  min-height: 44px !important;
}

.attendance-page.assessment-page .attendance-show-control {
  justify-content: flex-start !important;
}

.attendance-page.assessment-page .attendance-show-control select {
  width: 72px !important;
  min-height: 44px !important;
}

.attendance-page.assessment-page .attendance-subject-filter,
.attendance-page.assessment-page .attendance-class-filter,
.attendance-page.assessment-page .attendance-search-wrap input {
  border-radius: 10px !important;
}

.attendance-page.assessment-page .attendance-table-card .overflow-x-auto {
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}

.attendance-page.assessment-page .attendance-table-card .overflow-x-auto::-webkit-scrollbar {
  height: 8px;
}

.attendance-page.assessment-page .attendance-table-card .overflow-x-auto::-webkit-scrollbar-track {
  background: transparent;
}

.attendance-page.assessment-page .attendance-table-card .overflow-x-auto::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 999px;
}

.attendance-page.assessment-page .attendance-table-card thead th {
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.attendance-page.assessment-page .attendance-table-card tbody td {
  vertical-align: middle;
}

.attendance-page.assessment-page .attendance-pagination-card {
  padding: 14px 18px !important;
}

@media (min-width: 900px) {
  .attendance-page.assessment-page .attendance-filter-grid {
    grid-template-columns: 150px minmax(200px, 260px) minmax(160px, 220px) minmax(280px, 1fr) !important;
  }
}

@media (max-width: 899px) {
  .attendance-page.assessment-page .attendance-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

}

@media (max-width: 767px) {
  .attendance-page.assessment-page .attendance-toolbar {
    padding: 18px 16px !important;
  }

  .attendance-page.assessment-page .attendance-filter-bar {
    padding: 14px !important;
  }
}

@media (max-width: 420px) {
  .attendance-page.assessment-page .attendance-filter-bar {
    padding: 12px !important;
  }

  .attendance-page.assessment-page .attendance-filter-grid {
    gap: 8px !important;
  }

  .attendance-page.assessment-page .attendance-subject-filter,
  .attendance-page.assessment-page .attendance-class-filter,
  .attendance-page.assessment-page .attendance-search-wrap input {
    font-size: 0.8125rem !important;
    padding-left: 0.6rem !important;
    padding-right: 0.6rem !important;
  }

  .attendance-page.assessment-page .attendance-search-wrap input {
    padding-left: 2.25rem !important;
  }
}

/* Jurnal Kelas visual mengikuti ritme Modul, dengan scope khusus agar tidak bentrok. */
.teaching-journal-page .journal-toolbar,
.teaching-journal-page .journal-form-card,
.teaching-journal-page .journal-table-card {
  border: 1px solid rgba(203, 213, 225, 0.85);
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.05);
}

.teaching-journal-page .journal-toolbar {
  border-radius: 1rem;
}

.teaching-journal-page .journal-form-card {
  border-radius: 1rem;
}

.teaching-journal-page .journal-table-card .overflow-x-auto {
  scrollbar-width: thin;
  scrollbar-color: rgba(148, 163, 184, 0.5) rgba(241, 245, 249, 0.85);
}

.teaching-journal-page .journal-table-card .overflow-x-auto::-webkit-scrollbar {
  height: 8px;
}

.teaching-journal-page .journal-table-card .overflow-x-auto::-webkit-scrollbar-track {
  background: rgba(241, 245, 249, 0.85);
}

.teaching-journal-page .journal-table-card .overflow-x-auto::-webkit-scrollbar-thumb {
  background: rgba(148, 163, 184, 0.5);
  border-radius: 999px;
}

.teaching-journal-page .journal-table-card thead th {
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.teaching-journal-page .journal-table-card tbody td {
  vertical-align: middle;
}

.teaching-journal-page .journal-input {
  min-height: 44px;
}

.teaching-journal-page .tox.tox-tinymce {
  border-radius: 0.75rem;
  border-color: rgba(203, 213, 225, 0.95);
  overflow: hidden;
}

.journal-preview-content img {
  max-width: 100%;
  height: auto;
  border-radius: 0.75rem;
}

.journal-preview-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 0.75rem 0;
}

.journal-preview-content table td,
.journal-preview-content table th {
  border: 1px solid rgba(203, 213, 225, 0.9);
  padding: 0.5rem;
}

@media (max-width: 767px) {
  .teaching-journal-page .journal-toolbar,
  .teaching-journal-page .journal-form-card {
    padding: 1rem !important;
  }

  .teaching-journal-page .journal-table-card table {
    min-width: 860px;
  }
}

/* Gradebook visual mengikuti pola Jurnal Kelas/Modul, dengan scope khusus agar tidak bentrok. */
.grade-input-page .grade-toolbar,
.grade-input-page .grade-form-card,
.grade-input-page .grade-table-card {
  border: 1px solid rgba(203, 213, 225, 0.85);
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.05);
}

.grade-input-page .grade-toolbar {
  border-radius: 1rem;
}

.grade-input-page .grade-form-card {
  border-radius: 1rem;
}

.grade-input-page .grade-form-card.hidden {
  display: none !important;
}

.grade-input-page .grade-table-card .overflow-x-auto,
.grade-input-page .grade-form-card .overflow-x-auto {
  scrollbar-width: thin;
  scrollbar-color: rgba(148, 163, 184, 0.5) rgba(241, 245, 249, 0.85);
}

.grade-input-page .grade-table-card .overflow-x-auto::-webkit-scrollbar,
.grade-input-page .grade-form-card .overflow-x-auto::-webkit-scrollbar {
  height: 8px;
}

.grade-input-page .grade-table-card .overflow-x-auto::-webkit-scrollbar-track,
.grade-input-page .grade-form-card .overflow-x-auto::-webkit-scrollbar-track {
  background: rgba(241, 245, 249, 0.85);
}

.grade-input-page .grade-table-card .overflow-x-auto::-webkit-scrollbar-thumb,
.grade-input-page .grade-form-card .overflow-x-auto::-webkit-scrollbar-thumb {
  background: rgba(148, 163, 184, 0.5);
  border-radius: 999px;
}



.grade-input-page .grade-input-filter-card,
.grade-input-page .grade-input-pagination-card {
  border: 1px solid rgba(203, 213, 225, 0.85);
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.05);
  overflow: hidden;
}

.grade-input-page .grade-input-filter-grid {
  display: grid !important;
  width: 100% !important;
  align-items: center !important;
  gap: 12px !important;
}

.grade-input-page .grade-input-show-control,
.grade-input-page .grade-input-subject-filter,
.grade-input-page .grade-input-class-filter,
.grade-input-page .grade-input-search-wrap,
.grade-input-page .grade-input-search-wrap input {
  min-width: 0 !important;
  width: 100% !important;
  min-height: 44px !important;
}

.grade-input-page .grade-input-show-control {
  justify-content: flex-start !important;
}

.grade-input-page .grade-input-show-control select {
  width: 72px !important;
  min-height: 44px !important;
}

.grade-input-page .grade-input-subject-filter,
.grade-input-page .grade-input-class-filter,
.grade-input-page .grade-input-search-wrap input {
  border-radius: 10px !important;
}

@media (min-width: 900px) {
  .grade-input-page .grade-input-filter-grid {
    grid-template-columns: 150px minmax(200px, 260px) minmax(160px, 220px) minmax(280px, 1fr) !important;
  }
}

@media (max-width: 899px) {
  .grade-input-page .grade-input-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 420px) {
  .grade-input-page .grade-input-filter-card {
    padding: 12px !important;
  }

  .grade-input-page .grade-input-filter-grid {
    gap: 8px !important;
  }

  .grade-input-page .grade-input-subject-filter,
  .grade-input-page .grade-input-class-filter,
  .grade-input-page .grade-input-search-wrap input {
    font-size: 0.8125rem !important;
    padding-left: 0.6rem !important;
    padding-right: 0.6rem !important;
  }

  .grade-input-page .grade-input-search-wrap input {
    padding-left: 2.25rem !important;
  }
}

.grade-input-page .grade-table-card thead th {
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.grade-input-page .grade-table-card tbody td {
  vertical-align: middle;
}

.grade-input-page input,
.grade-input-page select,
.grade-input-page textarea {
  box-sizing: border-box;
}

@media (max-width: 767px) {
  .grade-input-page .grade-toolbar,
  .grade-input-page .grade-form-card {
    padding: 1rem !important;
  }

  .grade-input-page .grade-table-card table {
    min-width: 860px;
  }
}

/* Gradebook: samakan pola filter dengan Absensi Harian, scoped agar tidak bentrok. */
.grade-input-page.assessment-page .grade-input-filter-card {
  padding: 16px 18px !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.grade-input-page.assessment-page .grade-input-filter-grid {
  display: grid !important;
  width: 100% !important;
  align-items: center !important;
  gap: 12px !important;
}

.grade-input-page.assessment-page .grade-input-show-control,
.grade-input-page.assessment-page .grade-input-subject-filter,
.grade-input-page.assessment-page .grade-input-class-filter,
.grade-input-page.assessment-page .grade-input-search-wrap,
.grade-input-page.assessment-page .grade-input-search-wrap input {
  min-width: 0 !important;
  width: 100% !important;
  min-height: 44px !important;
}

.grade-input-page.assessment-page .grade-input-show-control {
  justify-content: flex-start !important;
}

.grade-input-page.assessment-page .grade-input-show-control select {
  width: 72px !important;
  min-height: 44px !important;
}

.grade-input-page.assessment-page .grade-input-subject-filter,
.grade-input-page.assessment-page .grade-input-class-filter,
.grade-input-page.assessment-page .grade-input-search-wrap input {
  border-radius: 10px !important;
}

.grade-input-page.assessment-page .grade-table-card .overflow-x-auto {
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}

.grade-input-page.assessment-page .grade-table-card .overflow-x-auto::-webkit-scrollbar {
  height: 8px;
}

.grade-input-page.assessment-page .grade-table-card .overflow-x-auto::-webkit-scrollbar-track {
  background: transparent;
}

.grade-input-page.assessment-page .grade-table-card .overflow-x-auto::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 999px;
}

.grade-input-page.assessment-page .grade-table-card thead th {
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.grade-input-page.assessment-page .grade-table-card tbody td {
  vertical-align: middle;
}

.grade-input-page.assessment-page .grade-input-pagination-card {
  padding: 14px 18px !important;
}

@media (min-width: 900px) {
  .grade-input-page.assessment-page .grade-input-filter-grid {
    grid-template-columns: 150px minmax(200px, 260px) minmax(160px, 220px) minmax(280px, 1fr) !important;
  }
}

@media (max-width: 899px) {
  .grade-input-page.assessment-page .grade-input-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 767px) {
  .grade-input-page.assessment-page .grade-toolbar {
    padding: 18px 16px !important;
  }

  .grade-input-page.assessment-page .grade-input-filter-card {
    padding: 14px !important;
  }
}

@media (max-width: 420px) {
  .grade-input-page.assessment-page .grade-input-filter-card {
    padding: 12px !important;
  }

  .grade-input-page.assessment-page .grade-input-filter-grid {
    gap: 8px !important;
  }

  .grade-input-page.assessment-page .grade-input-subject-filter,
  .grade-input-page.assessment-page .grade-input-class-filter,
  .grade-input-page.assessment-page .grade-input-search-wrap input {
    font-size: 0.8125rem !important;
    padding-left: 0.6rem !important;
    padding-right: 0.6rem !important;
  }

  .grade-input-page.assessment-page .grade-input-search-wrap input {
    padding-left: 2.25rem !important;
  }
}

/* Jurnal Kelas: filter dan pagination mengikuti pola Absensi Harian, scoped agar tidak bentrok. */
.teaching-journal-page.assessment-page .journal-toolbar,
.teaching-journal-page.assessment-page .journal-table-card,
.teaching-journal-page.assessment-page .teaching-journal-pagination-card {
  overflow: hidden;
}

.teaching-journal-page.assessment-page .journal-toolbar {
  padding: 22px 24px !important;
}

.teaching-journal-page.assessment-page .teaching-journal-filter-card {
  padding: 16px 18px !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.teaching-journal-page.assessment-page .teaching-journal-filter-grid {
  display: grid !important;
  width: 100% !important;
  align-items: center !important;
  gap: 12px !important;
}

.teaching-journal-page.assessment-page .teaching-journal-show-control,
.teaching-journal-page.assessment-page .teaching-journal-subject-filter,
.teaching-journal-page.assessment-page .teaching-journal-class-filter,
.teaching-journal-page.assessment-page .teaching-journal-search-wrap,
.teaching-journal-page.assessment-page .teaching-journal-search-wrap input {
  min-width: 0 !important;
  width: 100% !important;
  min-height: 44px !important;
}

.teaching-journal-page.assessment-page .teaching-journal-show-control {
  justify-content: flex-start !important;
}

.teaching-journal-page.assessment-page .teaching-journal-show-control select {
  width: 72px !important;
  min-height: 44px !important;
}

.teaching-journal-page.assessment-page .teaching-journal-subject-filter,
.teaching-journal-page.assessment-page .teaching-journal-class-filter,
.teaching-journal-page.assessment-page .teaching-journal-search-wrap input {
  border-radius: 10px !important;
}

.teaching-journal-page.assessment-page .journal-table-card .overflow-x-auto {
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}

.teaching-journal-page.assessment-page .journal-table-card .overflow-x-auto::-webkit-scrollbar {
  height: 8px;
}

.teaching-journal-page.assessment-page .journal-table-card .overflow-x-auto::-webkit-scrollbar-track {
  background: transparent;
}

.teaching-journal-page.assessment-page .journal-table-card .overflow-x-auto::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 999px;
}

.teaching-journal-page.assessment-page .journal-table-card thead th {
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.teaching-journal-page.assessment-page .journal-table-card tbody td {
  vertical-align: middle;
}

.teaching-journal-page.assessment-page .teaching-journal-pagination-card {
  padding: 14px 18px !important;
}

@media (min-width: 900px) {
  .teaching-journal-page.assessment-page .teaching-journal-filter-grid {
    grid-template-columns: 150px minmax(200px, 260px) minmax(160px, 220px) minmax(280px, 1fr) !important;
  }
}

@media (max-width: 899px) {
  .teaching-journal-page.assessment-page .teaching-journal-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 767px) {
  .teaching-journal-page.assessment-page .journal-toolbar {
    padding: 18px 16px !important;
  }

  .teaching-journal-page.assessment-page .teaching-journal-filter-card {
    padding: 14px !important;
  }
}

@media (max-width: 420px) {
  .teaching-journal-page.assessment-page .teaching-journal-filter-card {
    padding: 12px !important;
  }

  .teaching-journal-page.assessment-page .teaching-journal-filter-grid {
    gap: 8px !important;
  }

  .teaching-journal-page.assessment-page .teaching-journal-subject-filter,
  .teaching-journal-page.assessment-page .teaching-journal-class-filter,
  .teaching-journal-page.assessment-page .teaching-journal-search-wrap input {
    font-size: 0.8125rem !important;
    padding-left: 0.6rem !important;
    padding-right: 0.6rem !important;
  }

  .teaching-journal-page.assessment-page .teaching-journal-search-wrap input {
    padding-left: 2.25rem !important;
  }
}

/* Gradebook: pagination disamakan dengan pola Absensi Harian. */
.grade-input-page.assessment-page .grade-input-pagination-card {
  overflow: hidden !important;
  padding: 14px 18px !important;
}

/* --- USER DATA FILTER SIMPLE: Show | Semua Status | Pencarian --- */
.users-page .users-filter-row.users-filter-row-simple {
  display: grid !important;
  grid-template-columns: 170px minmax(170px, 220px) minmax(0, 1fr) !important;
  gap: 12px !important;
  align-items: center !important;
}

.users-page .users-filter-row.users-filter-row-simple .users-search-wrap {
  grid-column: auto !important;
}

.users-page .users-filter-row.users-filter-row-simple .users-status-filter,
.users-page .users-filter-row.users-filter-row-simple .users-search-wrap input,
.users-page .users-filter-row.users-filter-row-simple .users-show-wrap {
  min-height: 44px !important;
}

@media (max-width: 899px) {
  .users-page .users-filter-row.users-filter-row-simple {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .users-page .users-filter-row.users-filter-row-simple .users-search-wrap {
    grid-column: 1 / -1 !important;
  }
}


/* Pengaturan Tahun Ajaran: Tahun Ajaran | Semester | + Tambah selalu satu baris. */
.academic-period-inline-form {
  display: grid !important;
  grid-template-columns: minmax(180px, 1.35fr) minmax(150px, 0.85fr) minmax(112px, auto) !important;
  align-items: end !important;
  gap: 12px !important;
  width: 100% !important;
}

.academic-period-field,
.academic-period-action-field {
  min-width: 0 !important;
}

.academic-period-label {
  display: block !important;
  margin-bottom: 8px !important;
  overflow: hidden !important;
  color: #64748b !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  line-height: 1rem !important;
  text-overflow: ellipsis !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

.academic-period-action-label {
  color: transparent !important;
  user-select: none !important;
}

.academic-period-control,
.academic-period-add-btn {
  box-sizing: border-box !important;
  height: 48px !important;
  min-height: 48px !important;
  border-radius: 12px !important;
}

.academic-period-control {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  border: 1px solid #cbd5e1 !important;
  background: #fff !important;
  padding: 0 12px !important;
  color: #334155 !important;
  font-size: 0.875rem !important;
  outline: none !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.academic-period-control:focus {
  border-color: #3b82f6 !important;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.18) !important;
}

.academic-period-select {
  cursor: pointer !important;
  font-weight: 600 !important;
}

.academic-period-add-btn {
  display: inline-flex !important;
  width: 100% !important;
  min-width: 112px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  border: 0 !important;
  background: #2563eb !important;
  padding: 0 18px !important;
  color: #fff !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  box-shadow: 0 10px 20px rgba(37, 99, 235, 0.22) !important;
  cursor: pointer !important;
  transition: background-color 0.15s ease, transform 0.15s ease !important;
}

.academic-period-add-btn:hover {
  background: #1d4ed8 !important;
}

.academic-period-add-btn:active {
  transform: scale(0.98) !important;
}

@media (max-width: 767px) {
  .academic-period-form-card {
    padding: 12px !important;
  }

  .academic-period-inline-form {
    grid-template-columns: minmax(118px, 1.2fr) minmax(94px, 0.82fr) minmax(96px, auto) !important;
    gap: 8px !important;
  }

  .academic-period-label {
    margin-bottom: 6px !important;
    font-size: 0.625rem !important;
    line-height: 0.875rem !important;
  }

  .academic-period-control,
  .academic-period-add-btn {
    height: 44px !important;
    min-height: 44px !important;
  }

  .academic-period-control {
    padding-right: 8px !important;
    padding-left: 8px !important;
    font-size: 0.75rem !important;
  }

  .academic-period-add-btn {
    min-width: 96px !important;
    gap: 6px !important;
    padding-right: 10px !important;
    padding-left: 10px !important;
    font-size: 0.75rem !important;
  }
}

@media (max-width: 420px) {
  .academic-period-form-card {
    padding: 10px !important;
  }

  .academic-period-inline-form {
    grid-template-columns: minmax(96px, 1.15fr) minmax(76px, 0.82fr) minmax(84px, auto) !important;
    gap: 6px !important;
  }

  .academic-period-control {
    padding-right: 6px !important;
    padding-left: 6px !important;
    font-size: 0.6875rem !important;
  }

  .academic-period-add-btn {
    min-width: 84px !important;
    gap: 4px !important;
    padding-right: 8px !important;
    padding-left: 8px !important;
    font-size: 0.6875rem !important;
  }
}

/* --- ADMIN SIDEBAR DROPDOWN MENU --- */
.sidebar-menu-group {
  margin-bottom: 4px;
}

.sidebar-menu-group.hidden,
.sidebar-menu-group.rcab-menu-hidden {
  display: none !important;
}

.sidebar-group-toggle {
  width: 100%;
  position: relative;
  display: flex;
  align-items: center;
  padding: 12px 16px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
  overflow: hidden;
  white-space: nowrap;
  font-weight: 500;
  font-size: 0.9rem;
  text-align: left;
}

.sidebar-group-toggle:hover,
.sidebar-menu-group.open > .sidebar-group-toggle {
  background: rgba(255, 255, 255, 0.08);
  color: #f8fafc;
}

.sidebar-group-icon {
  width: 24px;
  margin-right: 12px;
  flex: 0 0 24px;
  text-align: center;
  font-size: 1.1rem;
}

.sidebar-group-chevron {
  width: auto !important;
  margin: 0 0 0 auto !important;
  font-size: 0.72rem !important;
  transition: transform 0.2s ease;
}

.sidebar-menu-group.open .sidebar-group-chevron {
  transform: rotate(180deg);
}

.sidebar-submenu {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.25s ease, opacity 0.2s ease, padding 0.2s ease;
  padding: 0 0;
}

.sidebar-menu-group.open .sidebar-submenu {
  max-height: 420px;
  opacity: 1;
  padding: 4px 0 2px;
}

.sidebar-submenu-item {
  margin-left: 12px;
  padding: 10px 12px;
  font-size: 0.84rem;
  border-left: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 7px;
}

.sidebar-submenu-item i {
  width: 20px;
  margin-right: 10px;
  font-size: 0.95rem;
}

#admin-sidebar.collapsed .sidebar-group-toggle {
  justify-content: center;
  padding: 12px 0;
}

#admin-sidebar.collapsed .sidebar-group-icon {
  margin-right: 0;
}

#admin-sidebar.collapsed .sidebar-group-chevron,
#admin-sidebar.collapsed .sidebar-submenu {
  display: none !important;
}


/* --- GRADEBOOK FILTER ALIGNMENT AND RESET UI --- */
.gradebook-filter-grid {
  display: grid;
  width: 100%;
  align-items: center;
  gap: 12px;
}

.gradebook-filter-grid > * {
  min-width: 0;
  width: 100%;
}

.gradebook-show-control {
  display: grid;
  grid-template-columns: auto minmax(58px, 72px) auto;
  justify-content: start;
  align-items: center;
  gap: 8px;
  min-height: 42px;
}

.gradebook-filter-field {
  min-width: 0;
  width: 100%;
  height: 42px;
  box-sizing: border-box;
}

/* Tablet dan desktop: seluruh filter tetap presisi dalam satu baris. */
@media (min-width: 768px) {
  .gradebook-filter-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    column-gap: 12px;
    row-gap: 0;
  }
}

/* Ukuran tablet tetap satu baris tanpa menggeser susunan ketika data tampil. */
@media (min-width: 768px) and (max-width: 1100px) {
  .gradebook-filter-grid {
    column-gap: 10px;
  }

  .gradebook-filter-grid select,
  .gradebook-filter-grid input,
  .gradebook-show-control {
    font-size: 0.75rem;
  }

  .gradebook-show-control {
    grid-template-columns: auto minmax(54px, 64px) auto;
    gap: 6px;
  }
}

/* Mobile: empat filter utama tersusun 2 x 2, pencarian memakai satu baris penuh. */
@media (max-width: 767px) {
  .gradebook-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .gradebook-search-control {
    grid-column: 1 / -1;
  }
}

@media (max-width: 420px) {
  .gradebook-filter-grid {
    gap: 8px;
  }

  .gradebook-show-control {
    grid-template-columns: auto minmax(50px, 58px) auto;
    gap: 5px;
  }

  .gradebook-filter-grid select,
  .gradebook-filter-grid input,
  .gradebook-show-control {
    font-size: 0.7rem;
  }
}

/* --- LAPORAN AKADEMIK --- */
.academic-report-filter-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  gap: 14px;
}

.academic-report-filter-grid > * {
  min-width: 0;
}

.academic-report-filter-field {
  min-width: 0;
  height: 40px;
}

.academic-report-table-card table th,
.academic-report-table-card table td {
  vertical-align: middle;
}

/*
 * Override khusus diperlukan karena aturan global .dash-card dimuat setelah
 * Tailwind dan memaksa padding: 0 serta display: flex. Tanpa override ini,
 * p-4 pada toolbar tidak diterapkan sehingga kontrol menempel ke tepi kartu.
 */
.academic-report-page .academic-report-data-filter.dash-card {
  display: block !important;
  flex-direction: initial !important;
  width: 100%;
  padding: 14px 16px !important;
  overflow: visible !important;
  box-sizing: border-box;
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transform: none !important;
}

.academic-report-page .academic-report-data-filter.dash-card:hover {
  transform: none !important;
  border-color: #e2e8f0;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.academic-report-data-toolbar {
  display: grid;
  grid-template-columns: minmax(145px, max-content) minmax(150px, 232px);
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  width: 100%;
  min-height: 40px;
}

.academic-report-data-toolbar > * {
  min-width: 0;
}

.academic-report-data-show {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  min-height: 40px;
  white-space: nowrap;
}

.academic-report-data-show select {
  width: 76px;
  min-width: 76px;
  height: 40px;
  box-sizing: border-box;
}

.academic-report-data-search {
  width: 100%;
  max-width: 232px;
  justify-self: end;
}

.academic-report-data-search input {
  width: 100%;
  min-width: 0;
  height: 40px;
  box-sizing: border-box;
}

/* Tablet dan mobile: kontrol tetap sejajar dalam satu baris. */
@media (max-width: 640px) {
  .academic-report-page .academic-report-data-filter.dash-card {
    padding: 10px 12px !important;
  }

  .academic-report-data-toolbar {
    grid-template-columns: minmax(145px, max-content) minmax(0, 1fr);
    gap: 8px;
  }

  .academic-report-data-show {
    gap: 6px;
    font-size: 0.75rem;
  }

  .academic-report-data-show select {
    width: 62px;
    min-width: 62px;
    height: 38px;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .academic-report-data-search {
    max-width: none;
    justify-self: stretch;
  }

  .academic-report-data-search input {
    height: 38px;
    padding-left: 2rem !important;
    padding-right: 0.625rem !important;
    font-size: 0.75rem;
  }

  .academic-report-data-search i {
    left: 0.625rem;
    font-size: 0.75rem;
  }
}

@media (max-width: 380px) {
  .academic-report-page .academic-report-data-filter.dash-card {
    padding: 8px 10px !important;
  }

  .academic-report-data-toolbar {
    grid-template-columns: minmax(137px, max-content) minmax(0, 1fr);
    gap: 6px;
  }

  .academic-report-data-show {
    gap: 4px;
    font-size: 0.68rem;
  }

  .academic-report-data-show select {
    width: 54px;
    min-width: 54px;
    height: 36px;
    padding-left: 0.35rem;
    padding-right: 0.35rem;
    font-size: 0.7rem;
  }

  .academic-report-data-search input {
    height: 36px;
    padding-left: 1.8rem !important;
    padding-right: 0.45rem !important;
    font-size: 0.68rem;
  }

  .academic-report-data-search i {
    left: 0.55rem;
    font-size: 0.68rem;
  }
}

@media (max-width: 520px) {
  .academic-report-filter-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .academic-report-toolbar {
    padding: 1rem;
  }

  .academic-report-filter-card {
    padding: 0.75rem;
  }
}


/* Cloud Storage mengikuti pola File Media dengan aksi Upload tetap presisi. */
.cloud-storage-page .cloud-storage-header-actions { min-width: 0; }
.cloud-storage-page #cloud-storage-bulk-actions.flex { display: flex; }
.cloud-storage-page #cloud-storage-pagination-info { line-height: 1.45; }
.cloud-storage-page .media-table-card .overflow-x-auto { scrollbar-gutter: stable; }
@media (max-width: 767px) {
  .cloud-storage-page .cloud-storage-header-actions { width: 100%; }
  .cloud-storage-page #cloud-storage-bulk-actions.flex { width: 100%; display: flex; flex-direction: row; }
  .cloud-storage-page #cloud-storage-bulk-actions button { flex: 1 1 0; min-width: 0; }
  .cloud-storage-page .cloud-storage-header-actions > button { width: 100%; }
}
@media (min-width: 768px) {
  .cloud-storage-page .cloud-storage-header-actions { align-items: center; }
}

/* Dialog Upload Cloud Storage: picker custom, daftar file, dan aksi responsif. */
.swal2-popup.cloud-storage-upload-swal {
  width: min(520px, calc(100vw - 24px)) !important;
  max-height: calc(100vh - 24px);
  padding: 0 !important;
  border: 1px solid #dbe4f0;
  border-radius: 18px !important;
  background: #ffffff;
  box-shadow: 0 18px 55px rgba(15, 23, 42, 0.18) !important;
  overflow: hidden;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-html {
  display: block !important;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  color: #334155;
  overflow: visible !important;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-dialog {
  width: 100%;
  text-align: left;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-head {
  display: flex;
  align-items: center;
  gap: 15px;
  min-height: 92px;
  padding: 20px 64px 20px 30px;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-head-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  border-radius: 999px;
  color: #2563eb;
  background: #eaf1ff;
  font-size: 21px;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-head-title {
  min-width: 0;
  color: #0f2747;
  font-size: 1.55rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.025em;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-divider {
  height: 1px;
  background: #e2e8f0;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-body {
  display: grid;
  gap: 16px;
  max-height: calc(100vh - 246px);
  padding: 20px 30px 22px;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-field label {
  display: block;
  margin: 0 0 9px;
  color: #334155;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.065em;
  text-transform: uppercase;
}

.swal2-popup.cloud-storage-upload-swal #cloud-storage-manual-name {
  width: 100%;
  min-width: 0;
  height: 48px;
  box-sizing: border-box;
  padding: 0 16px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  outline: none;
  background: #ffffff;
  color: #1e293b;
  font-size: 0.95rem;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.swal2-popup.cloud-storage-upload-swal #cloud-storage-manual-name::placeholder {
  color: #7c8798;
}

.swal2-popup.cloud-storage-upload-swal #cloud-storage-manual-name:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.13);
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-native-input {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  overflow: hidden !important;
  white-space: nowrap !important;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-file-picker {
  display: flex;
  align-items: stretch;
  width: 100%;
  min-height: 52px;
  padding: 0;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #ffffff;
  color: #475569;
  text-align: left;
  cursor: pointer;
  overflow: hidden;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-file-picker:hover,
.swal2-popup.cloud-storage-upload-swal .cloud-storage-file-picker:focus-visible {
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.11);
  outline: none;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-file-picker-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  flex: 0 0 auto;
  min-width: 145px;
  padding: 0 18px;
  border: 1px solid #2563eb;
  border-radius: 9px;
  margin: -1px 0 -1px -1px;
  color: #2563eb;
  background: #ffffff;
  font-size: 0.94rem;
  font-weight: 800;
  white-space: nowrap;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-file-picker-status {
  display: flex;
  align-items: center;
  min-width: 0;
  padding: 0 18px;
  color: #64748b;
  font-size: 0.93rem;
  line-height: 1.35;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-selected-files {
  display: grid;
  gap: 8px;
  max-height: 174px;
  margin-top: 10px;
  padding: 8px;
  border: 1px solid #dbe4f0;
  border-radius: 12px;
  background: #f8fafc;
  overflow-y: auto;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-selected-files.hidden,
.swal2-popup.cloud-storage-upload-swal .cloud-storage-file-feedback.hidden {
  display: none !important;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-selected-file-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 34px;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 6px 8px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #ffffff;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-selected-file-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  color: #2563eb;
  background: #eff6ff;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-selected-file-meta {
  display: grid;
  min-width: 0;
  line-height: 1.25;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-selected-file-meta b {
  display: block;
  min-width: 0;
  color: #334155;
  font-size: 0.82rem;
  font-weight: 750;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-selected-file-meta small {
  margin-top: 3px;
  color: #94a3b8;
  font-size: 0.7rem;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-selected-file-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  color: #dc2626;
  background: #fff1f2;
  cursor: pointer;
  transition: background 0.18s ease, transform 0.18s ease;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-selected-file-remove:hover {
  background: #ffe4e6;
  transform: translateY(-1px);
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-file-feedback {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  color: #475569;
  background: #f1f5f9;
  font-size: 0.74rem;
  line-height: 1.4;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-file-feedback.is-warning {
  color: #9a3412;
  background: #fff7ed;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-info {
  display: grid;
  gap: 0;
  padding: 14px 16px;
  border: 1px solid #bfdbfe;
  border-radius: 12px;
  background: #f8fbff;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-info-row {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  color: #475569;
  font-size: 0.82rem;
  line-height: 1.75;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-info-row b {
  color: #334155;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-info-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  margin-top: 1px;
  border-radius: 999px;
  color: #ffffff;
  background: #2563eb;
  font-size: 0.72rem;
}


.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-actions {
  display: flex !important;
  justify-content: flex-end;
  gap: 12px;
  width: 100%;
  box-sizing: border-box;
  margin: 0 !important;
  padding: 16px 30px 18px;
  border-top: 1px solid #e2e8f0;
  background: #ffffff;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-confirm,
.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-cancel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 132px;
  min-height: 46px;
  margin: 0 !important;
  padding: 0 22px;
  border-radius: 9px;
  font-size: 0.94rem;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-cancel {
  border: 1px solid #cbd5e1;
  color: #475569;
  background: #ffffff;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-confirm {
  border: 1px solid #2563eb;
  color: #ffffff;
  background: #2563eb;
  box-shadow: 0 7px 16px rgba(37, 99, 235, 0.24);
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-confirm:hover,
.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-cancel:hover {
  transform: translateY(-1px);
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-confirm:hover {
  background: #1d4ed8;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-cancel:hover {
  background: #f8fafc;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-close {
  top: 23px !important;
  right: 22px !important;
  width: 42px !important;
  height: 42px !important;
  color: #64748b !important;
  font-size: 2rem !important;
  line-height: 1 !important;
  transition: color 0.18s ease, background 0.18s ease;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-close:hover {
  color: #0f172a !important;
  background: #f1f5f9 !important;
}

.swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-validation {
  margin: 0 30px 14px !important;
  border-radius: 9px;
  font-size: 0.8rem;
}

@media (max-width: 640px) {
  .swal2-popup.cloud-storage-upload-swal {
    width: calc(100vw - 16px) !important;
    max-height: calc(100vh - 16px);
    border-radius: 14px !important;
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-head {
    min-height: 82px;
    gap: 12px;
    padding: 18px 54px 18px 18px;
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-head-icon {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
    font-size: 20px;
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-head-title {
    font-size: 1.22rem;
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-close {
    top: 19px !important;
    right: 12px !important;
    width: 38px !important;
    height: 38px !important;
    font-size: 1.75rem !important;
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-body {
    gap: 16px;
    max-height: calc(100vh - 226px);
    padding: 18px;
  }

  .swal2-popup.cloud-storage-upload-swal #cloud-storage-manual-name {
    height: 46px;
    font-size: 0.86rem;
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-file-picker {
    display: grid;
    grid-template-columns: minmax(112px, auto) minmax(0, 1fr);
    min-height: 48px;
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-file-picker-button {
    min-width: 0;
    padding: 0 12px;
    font-size: 0.8rem;
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-file-picker-status {
    min-width: 0;
    padding: 0 10px;
    font-size: 0.76rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-info {
    gap: 12px;
    padding: 14px;
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-info-row {
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 9px;
    font-size: 0.74rem;
    line-height: 1.6;
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-info-icon {
    width: 24px;
    height: 24px;
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-actions {
    gap: 9px;
    padding: 14px 18px 18px;
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-confirm,
  .swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-cancel {
    flex: 1 1 0;
    min-width: 0;
    min-height: 44px;
    padding: 0 12px;
    font-size: 0.86rem;
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-upload-validation {
    margin: 0 18px 12px !important;
  }
}

@media (max-width: 380px) {
  .swal2-popup.cloud-storage-upload-swal .cloud-storage-file-picker {
    grid-template-columns: minmax(102px, auto) minmax(0, 1fr);
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-file-picker-button {
    gap: 6px;
    padding: 0 9px;
    font-size: 0.73rem;
  }

  .swal2-popup.cloud-storage-upload-swal .cloud-storage-file-picker-status {
    padding: 0 8px;
    font-size: 0.69rem;
  }
}


/* Konfirmasi sebelum proses upload Cloud Storage dijalankan. */
.cloud-storage-upload-confirmation {
  display: grid;
  gap: 14px;
  text-align: left;
}

.cloud-storage-upload-confirmation > p {
  margin: 0;
  color: #64748b;
  font-size: 0.86rem;
  line-height: 1.55;
}

.cloud-storage-upload-confirmation-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 9px;
}

.cloud-storage-upload-confirmation-grid > div {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #f8fafc;
}

.cloud-storage-upload-confirmation-grid > div:first-child {
  grid-column: 1 / -1;
}

.cloud-storage-upload-confirmation-grid span {
  color: #64748b;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.cloud-storage-upload-confirmation-grid b {
  min-width: 0;
  color: #1e293b;
  font-size: 0.84rem;
  overflow-wrap: anywhere;
}

.cloud-storage-upload-confirmation-list {
  display: grid;
  gap: 7px;
  max-height: 190px;
  padding: 8px;
  border: 1px solid #dbe4f0;
  border-radius: 11px;
  background: #ffffff;
  overflow-y: auto;
}

.cloud-storage-upload-confirmation-list > div {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 5px 8px;
  border-radius: 8px;
  background: #f8fafc;
}

.cloud-storage-upload-confirmation-list i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 7px;
  color: #2563eb;
  background: #eff6ff;
}

.cloud-storage-upload-confirmation-list span {
  min-width: 0;
  color: #334155;
  font-size: 0.78rem;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cloud-storage-upload-confirmation-list small {
  color: #94a3b8;
  font-size: 0.68rem;
  white-space: nowrap;
}

.cloud-storage-upload-confirmation-list > p {
  margin: 0;
  padding: 4px 8px;
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 700;
  text-align: center;
}

@media (max-width: 480px) {
  .cloud-storage-upload-confirmation-grid {
    grid-template-columns: 1fr;
  }

  .cloud-storage-upload-confirmation-grid > div:first-child {
    grid-column: auto;
  }

  .cloud-storage-upload-confirmation-list > div {
    grid-template-columns: 26px minmax(0, 1fr);
  }

  .cloud-storage-upload-confirmation-list small {
    grid-column: 2;
  }
}


/* Cloud Storage: aksi per file dan pratinjau multi-format. */
.cloud-storage-page .cloud-storage-row-actions,
.media-page:not(.cloud-storage-page) .cloud-storage-row-actions {
  min-width: max-content;
}

.cloud-storage-page .cloud-storage-action-btn,
.media-page:not(.cloud-storage-page) .cloud-storage-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  min-width: 34px;
  height: 34px;
  min-height: 34px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: transform 0.16s ease, background 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.cloud-storage-page .cloud-storage-action-btn:hover,
.media-page:not(.cloud-storage-page) .cloud-storage-action-btn:hover {
  transform: translateY(-1px);
}

.cloud-storage-page .cloud-storage-action-view,
.media-page:not(.cloud-storage-page) .cloud-storage-action-view {
  color: #1d4ed8;
  border-color: #bfdbfe;
  background: #eff6ff;
}

.cloud-storage-page .cloud-storage-action-view:hover,
.media-page:not(.cloud-storage-page) .cloud-storage-action-view:hover {
  background: #dbeafe;
  border-color: #93c5fd;
}

.cloud-storage-page .cloud-storage-action-download,
.media-page:not(.cloud-storage-page) .cloud-storage-action-download {
  color: #047857;
  border-color: #a7f3d0;
  background: #ecfdf5;
}

.cloud-storage-page .cloud-storage-action-download:hover,
.media-page:not(.cloud-storage-page) .cloud-storage-action-download:hover {
  background: #d1fae5;
  border-color: #6ee7b7;
}

.cloud-storage-page .cloud-storage-action-delete {
  color: #be123c;
  border-color: #fecdd3;
  background: #fff1f2;
}

.cloud-storage-page .cloud-storage-action-delete:hover {
  background: #ffe4e6;
  border-color: #fda4af;
}

.swal2-popup.cloud-storage-preview-swal {
  width: min(700px, calc(100vw - 24px)) !important;
  max-height: calc(100vh - 24px);
  padding: 0 !important;
  border: 1px solid #dbe4f0;
  border-radius: 18px !important;
  background: #ffffff;
  box-shadow: 0 18px 55px rgba(15, 23, 42, 0.18) !important;
  overflow: hidden;
}

.swal2-popup.cloud-storage-preview-swal .cloud-storage-preview-html {
  display: block !important;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  color: #334155;
  text-align: left;
  overflow: hidden !important;
}

.cloud-storage-preview-dialog {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-height: calc(100vh - 112px);
}

.cloud-storage-preview-header {
  flex: 0 0 auto;
  padding: 22px 64px 18px 24px;
  border-bottom: 1px solid #e2e8f0;
  background: #ffffff;
}

.cloud-storage-preview-title-wrap {
  display: flex;
  align-items: center;
  gap: 13px;
  min-width: 0;
}

.cloud-storage-preview-title-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  color: #ffffff;
  background: #2563eb;
  box-shadow: 0 8px 18px rgba(37, 99, 235, 0.25);
}

.cloud-storage-preview-title-wrap > div {
  min-width: 0;
}

.cloud-storage-preview-title-wrap h2 {
  margin: 0;
  color: #0f172a;
  font-size: 1.15rem;
  font-weight: 850;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.cloud-storage-preview-title-wrap p {
  margin: 3px 0 0;
  color: #64748b;
  font-size: 0.76rem;
  font-weight: 650;
}

.cloud-storage-preview-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: 14px;
  color: #64748b;
  font-size: 0.7rem;
  font-weight: 650;
}

.cloud-storage-preview-meta span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.cloud-storage-preview-meta i {
  color: #2563eb;
}

.cloud-storage-preview-body {
  flex: 1 1 auto;
  min-height: 220px;
  padding: 18px;
  background: #f8fafc;
  overflow: auto;
  scrollbar-gutter: stable;
}

.cloud-storage-media-preview,
.cloud-storage-video-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 280px;
  padding: 12px;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #0f172a;
}

.cloud-storage-media-preview img {
  display: block;
  max-width: 100%;
  max-height: 68vh;
  border-radius: 10px;
  object-fit: contain;
}

.cloud-storage-video-preview video {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 68vh;
  border-radius: 10px;
  background: #000000;
}

.cloud-storage-audio-preview {
  display: grid;
  justify-items: center;
  gap: 22px;
  min-height: 280px;
  padding: 46px 24px;
  border: 1px solid #dbeafe;
  border-radius: 16px;
  background: linear-gradient(145deg, #eff6ff, #eef2ff);
}

.cloud-storage-audio-preview audio {
  width: min(640px, 100%);
}

.cloud-storage-audio-preview .cloud-storage-preview-file-icon {
  display: inline-flex;
}

.cloud-storage-video-preview {
  flex-direction: column;
  gap: 14px;
}

.cloud-storage-video-preview .cloud-storage-preview-file-icon {
  display: none;
}

.cloud-storage-media-error {
  width: min(640px, 100%);
  padding: 18px;
  border: 1px solid #fecaca;
  border-radius: 14px;
  background: #fff7f7;
  color: #991b1b;
  text-align: center;
}

.cloud-storage-media-error i {
  margin-bottom: 8px;
  font-size: 1.55rem;
}

.cloud-storage-media-error p {
  margin: 0 0 12px;
  font-size: 0.85rem;
  font-weight: 700;
}

.cloud-storage-media-error a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px 14px;
  border-radius: 10px;
  background: #2563eb;
  color: #ffffff;
  font-size: 0.8rem;
  font-weight: 800;
  text-decoration: none;
}

.cloud-storage-media-error a i,
.cloud-storage-media-error button i {
  margin: 0;
  font-size: 0.8rem;
}

.cloud-storage-media-error button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px 14px;
  border: 0;
  border-radius: 10px;
  background: #2563eb;
  color: #ffffff;
  font-size: 0.8rem;
  font-weight: 800;
  cursor: pointer;
}

.cloud-storage-media-disabled .cloud-storage-preview-file-icon {
  display: inline-flex;
}

.cloud-storage-media-policy-message {
  width: min(560px, 100%);
  padding: 16px 18px;
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  color: #334155;
  text-align: center;
}

.cloud-storage-media-policy-message i {
  margin-bottom: 8px;
  color: #64748b;
  font-size: 1.4rem;
}

.cloud-storage-media-policy-message p {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 750;
  line-height: 1.5;
}

.cloud-storage-media-muted-note {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  max-width: 100%;
  padding: 7px 10px;
  border: 1px solid #fcd34d;
  border-radius: 999px;
  background: #fffbeb;
  color: #92400e;
  font-size: 0.74rem;
  font-weight: 800;
}

.cloud-storage-preview-file-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 88px;
  height: 88px;
  border-radius: 26px;
  color: #2563eb;
  background: #ffffff;
  box-shadow: 0 14px 34px rgba(37, 99, 235, 0.16);
  font-size: 2.5rem;
}

.cloud-storage-text-preview,
.cloud-storage-legacy-preview pre {
  width: 100%;
  min-height: 240px;
  max-height: 66vh;
  margin: 0;
  padding: 18px;
  border: 1px solid #1e293b;
  border-radius: 12px;
  color: #e2e8f0;
  background: #0f172a;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.78rem;
  line-height: 1.65;
  white-space: pre-wrap;
  overflow: auto;
}

.cloud-storage-document-preview {
  width: min(850px, 100%);
  min-height: 420px;
  margin: 0 auto;
  padding: 44px clamp(22px, 6vw, 70px);
  border: 1px solid #dbe4f0;
  border-radius: 8px;
  color: #1f2937;
  background: #ffffff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

.cloud-storage-doc-body p,
.cloud-storage-doc-secondary p {
  margin: 0 0 0.8em;
  font-size: 0.92rem;
  line-height: 1.75;
  overflow-wrap: anywhere;
}

.cloud-storage-doc-secondary {
  margin-bottom: 22px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
  color: #64748b;
  font-size: 0.78rem;
}

.cloud-storage-doc-secondary:last-child {
  margin-top: 22px;
  margin-bottom: 0;
  padding-top: 12px;
  padding-bottom: 0;
  border-top: 1px solid #e2e8f0;
  border-bottom: 0;
}

.cloud-storage-presentation-preview {
  display: grid;
  gap: 18px;
  width: min(960px, 100%);
  margin: 0 auto;
}

.cloud-storage-slide-preview {
  position: relative;
  aspect-ratio: 16 / 9;
  min-height: 260px;
  padding: 42px clamp(26px, 6vw, 70px);
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  color: #0f172a;
  background: #ffffff;
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.1);
  overflow: auto;
}

.cloud-storage-slide-number {
  position: absolute;
  top: 12px;
  right: 14px;
  padding: 4px 9px;
  border-radius: 999px;
  color: #1d4ed8;
  background: #eff6ff;
  font-size: 0.68rem;
  font-weight: 800;
}

.cloud-storage-slide-content {
  display: grid;
  gap: 0.65rem;
  align-content: center;
  min-height: 100%;
}

.cloud-storage-slide-content p {
  margin: 0;
  font-size: clamp(0.9rem, 1.4vw, 1.2rem);
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.cloud-storage-spreadsheet-preview,
.cloud-storage-archive-preview {
  display: grid;
  gap: 16px;
}

.cloud-storage-sheet-preview {
  border: 1px solid #dbe4f0;
  border-radius: 12px;
  background: #ffffff;
  overflow: hidden;
}

.cloud-storage-sheet-title {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 14px;
  border-bottom: 1px solid #e2e8f0;
  color: #1e3a8a;
  background: #eff6ff;
  font-size: 0.8rem;
  font-weight: 850;
}

.cloud-storage-sheet-scroll {
  max-height: 54vh;
  overflow: auto;
}

.cloud-storage-sheet-scroll table {
  width: max-content;
  min-width: 100%;
  border-collapse: collapse;
  color: #334155;
  font-size: 0.74rem;
}

.cloud-storage-sheet-scroll th,
.cloud-storage-sheet-scroll td {
  min-width: 110px;
  max-width: 360px;
  padding: 8px 10px;
  border-right: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
}

.cloud-storage-sheet-scroll th {
  position: sticky;
  top: 0;
  z-index: 1;
  color: #1e293b;
  background: #f8fafc;
  font-weight: 850;
}

.cloud-storage-archive-preview {
  gap: 6px;
  padding: 10px;
  border: 1px solid #dbe4f0;
  border-radius: 12px;
  background: #ffffff;
}

.cloud-storage-archive-row {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 5px 8px;
  border-radius: 7px;
  color: #475569;
  font-size: 0.78rem;
}

.cloud-storage-archive-row:nth-child(odd) {
  background: #f8fafc;
}

.cloud-storage-archive-row i {
  color: #2563eb;
  text-align: center;
}

.cloud-storage-archive-row span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.cloud-storage-preview-note {
  margin: 10px 0;
  padding: 9px 12px;
  border: 1px solid #fde68a;
  border-radius: 9px;
  color: #92400e;
  background: #fffbeb;
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1.5;
}

.cloud-storage-preview-empty {
  color: #94a3b8;
  font-size: 0.82rem;
  font-style: italic;
}

.cloud-storage-generic-preview {
  display: grid;
  justify-items: center;
  gap: 18px;
  min-height: 300px;
  padding: 44px 24px;
  border: 1px dashed #cbd5e1;
  border-radius: 16px;
  color: #64748b;
  background: #ffffff;
  text-align: center;
}

.cloud-storage-generic-preview p {
  max-width: 650px;
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.7;
}

.cloud-storage-open-native {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 15px;
  border-radius: 9px;
  color: #ffffff;
  background: #2563eb;
  font-size: 0.78rem;
  font-weight: 800;
  text-decoration: none;
}

.swal2-popup.cloud-storage-preview-swal .cloud-storage-preview-actions {
  display: flex !important;
  justify-content: flex-end;
  width: 100%;
  margin: 0 !important;
  padding: 13px 20px 16px;
  border-top: 1px solid #e2e8f0;
  background: #ffffff;
}

.swal2-popup.cloud-storage-preview-swal .cloud-storage-preview-confirm {
  min-width: 112px;
  min-height: 42px;
  margin: 0 !important;
  border-radius: 9px;
  font-size: 0.84rem;
  font-weight: 800;
}

.swal2-popup.cloud-storage-preview-swal .cloud-storage-preview-close {
  top: 14px !important;
  right: 14px !important;
  width: 38px !important;
  height: 38px !important;
  border-radius: 10px !important;
  color: #64748b !important;
  font-size: 1.8rem !important;
}

@media (max-width: 640px) {
  .cloud-storage-page .cloud-storage-action-btn {
    width: 32px;
    min-width: 32px;
    height: 32px;
    min-height: 32px;
    padding: 0;
    font-size: 0.72rem;
  }

  .swal2-popup.cloud-storage-preview-swal {
    width: calc(100vw - 16px) !important;
    max-height: calc(100vh - 16px);
    border-radius: 14px !important;
  }

  .cloud-storage-preview-dialog {
    max-height: calc(100vh - 84px);
  }

  .cloud-storage-preview-header {
    padding: 16px 48px 14px 14px;
  }

  .cloud-storage-preview-title-wrap {
    gap: 10px;
  }

  .cloud-storage-preview-title-icon {
    flex-basis: 36px;
    width: 36px;
    height: 36px;
    border-radius: 10px;
  }

  .cloud-storage-preview-title-wrap h2 {
    font-size: 0.94rem;
  }

  .cloud-storage-preview-meta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 7px 10px;
    font-size: 0.64rem;
  }

  .cloud-storage-preview-body {
    min-height: 190px;
    padding: 9px;
  }

  .cloud-storage-media-preview,
  .cloud-storage-video-preview {
    min-height: 220px;
    padding: 6px;
  }

  .cloud-storage-audio-preview {
    min-height: 230px;
    padding: 32px 14px;
  }

  .cloud-storage-preview-file-icon {
    width: 70px;
    height: 70px;
    border-radius: 20px;
    font-size: 2rem;
  }

  .cloud-storage-document-preview {
    min-height: 340px;
    padding: 28px 20px;
  }

  .cloud-storage-slide-preview {
    min-height: 220px;
    padding: 38px 22px 24px;
  }

  .cloud-storage-sheet-scroll {
    max-height: 58vh;
  }

  .swal2-popup.cloud-storage-preview-swal .cloud-storage-preview-actions {
    padding: 10px 12px 12px;
  }

  .swal2-popup.cloud-storage-preview-swal .cloud-storage-preview-confirm {
    width: 100%;
  }
}

/* Bank Soal: tampilan File Media pada editor, pratinjau, dan halaman peserta. */
.question-text audio,
.question-text video,
.prose audio,
.prose video,
#preview-content audio,
#preview-content video {
  display: block;
  max-width: 100%;
  margin: 0.75rem 0;
}

.question-text audio,
.prose audio,
#preview-content audio {
  width: min(100%, 36rem);
}

.question-text video,
.prose video,
#preview-content video {
  width: auto;
  max-height: 26rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.75rem;
  background: #000;
}

.question-media-file-link,
.question-text a[href^="/api/media/"],
.prose a[href^="/api/media/"],
#preview-content a[href^="/api/media/"] {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  max-width: 100%;
  margin: 0.5rem 0;
  padding: 0.55rem 0.75rem;
  border: 1px solid #bfdbfe;
  border-radius: 0.65rem;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.question-media-file-link:hover,
.question-text a[href^="/api/media/"]:hover,
.prose a[href^="/api/media/"]:hover,
#preview-content a[href^="/api/media/"]:hover {
  background: #dbeafe;
}

@media (max-width: 640px) {
  .question-text video,
  .prose video,
  #preview-content video {
    width: 100%;
    max-height: 18rem;
  }
}

/* Laporan Nilai: tiga filter utama sejajar pada desktop/tablet. */
.academic-report-score-filter-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 520px) {
  .academic-report-score-filter-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Laporan Akademik: filter tetap presisi pada tablet dan layar kecil. */
@media (max-width: 767px) {
  .academic-report-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: end;
    gap: 10px;
  }

  .academic-report-score-filter-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .academic-report-filter-control {
    min-width: 0;
  }

  .academic-report-filter-control label {
    display: flex;
    min-height: 2.3em;
    align-items: flex-end;
    margin-bottom: 6px !important;
    font-size: 0.65rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }

  .academic-report-filter-field {
    width: 100%;
    min-width: 0;
    height: 42px;
    padding-left: 0.65rem !important;
    padding-right: 1.65rem !important;
    font-size: 0.75rem !important;
    line-height: 1.2;
  }
}

@media (max-width: 520px) {
  .academic-report-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
  }

  .academic-report-score-filter-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
  }

  .academic-report-filter-card {
    padding: 0.7rem !important;
  }

  .academic-report-score-filter-grid .academic-report-filter-control label {
    min-height: 2.45em;
    font-size: 0.6rem;
    letter-spacing: 0.015em;
  }

  .academic-report-score-filter-grid .academic-report-filter-field {
    height: 40px;
    padding-left: 0.45rem !important;
    padding-right: 1.25rem !important;
    font-size: 0.68rem !important;
  }
}

@media (max-width: 360px) {
  .academic-report-filter-grid {
    gap: 7px;
  }

  .academic-report-score-filter-grid {
    gap: 6px;
  }

  .academic-report-filter-card {
    padding: 0.55rem !important;
  }

  .academic-report-filter-control label {
    min-height: 2.5em;
    font-size: 0.59rem;
  }

  .academic-report-filter-field {
    height: 39px;
    padding-left: 0.45rem !important;
    padding-right: 1.2rem !important;
    font-size: 0.68rem !important;
  }

  .academic-report-score-filter-grid .academic-report-filter-control label {
    min-height: 2.65em;
    font-size: 0.56rem;
  }

  .academic-report-score-filter-grid .academic-report-filter-field {
    padding-left: 0.35rem !important;
    padding-right: 1.05rem !important;
    font-size: 0.64rem !important;
  }
}


/* Lupa Password & Mail Server */
#page-login .login-forgot-wrap{display:flex;justify-content:flex-end;margin-top:-8px}
#page-login .login-forgot-wrap.hidden{display:none!important}
#page-login .login-forgot-link{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:#2563eb;font-size:.78rem;font-weight:800;cursor:pointer;padding:3px 0}
#page-login .login-forgot-link:hover{color:#1d4ed8;text-decoration:underline}
.forgot-password-popup{
  width:min(460px,calc(100vw - 28px))!important;
  max-width:460px!important;
  max-height:calc(100dvh - 20px)!important;
  border:1px solid rgba(148,163,184,.48)!important;
  border-radius:18px!important;
  padding:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  background:#fff!important;
  box-shadow:0 24px 58px rgba(15,23,42,.24)!important;
}
.forgot-password-popup .swal2-html-container,
.forgot-password-html{
  width:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  color:#0f172a!important;
}
.forgot-password-dialog{width:100%;text-align:left;color:#0f172a}
.forgot-password-header{display:flex;align-items:center;gap:14px;padding:20px 24px 16px}
.forgot-password-icon{
  display:flex;flex:0 0 54px;align-items:center;justify-content:center;
  width:54px;height:54px;border:1px solid #dbeafe;border-radius:50%;
  background:linear-gradient(145deg,#eff6ff,#f8fbff);color:#1763c5;
  box-shadow:inset 0 0 0 6px rgba(219,234,254,.42)
}
.forgot-password-icon i{font-size:24px;filter:drop-shadow(0 3px 5px rgba(37,99,235,.16))}
.forgot-password-heading{display:flex;min-width:0;min-height:54px;flex:1;flex-direction:column;align-items:flex-start;justify-content:center;padding-right:18px}
.forgot-password-heading h3{margin:0;color:#101c30;font-size:1.38rem;line-height:1.15;font-weight:850;letter-spacing:-.025em}
.forgot-password-heading p{margin:7px 0 0;color:#4b5568;font-size:.84rem;line-height:1.45}
.forgot-password-dialog-otp .forgot-password-heading p{margin-top:3px;line-height:1.4}
.forgot-password-heading p b{color:#111827;font-weight:800}
.forgot-password-divider{height:1px;margin:0 24px;background:#d7dee8}
.forgot-password-body{padding:17px 24px 4px;min-height:0}
.forgot-password-dialog label{display:block;margin-bottom:8px;color:#34445c;font-size:.78rem;font-weight:850;letter-spacing:.045em}
.forgot-password-field-group{display:grid;grid-template-columns:1fr;gap:12px}
.forgot-password-field-item{min-width:0}
.forgot-password-field-shell{
  display:flex;align-items:center;min-height:48px;border:1.5px solid #aebbd0;border-radius:12px;
  background:#fff;box-shadow:0 2px 7px rgba(15,23,42,.04);transition:border-color .18s,box-shadow .18s
}
.forgot-password-field-shell:focus-within{border-color:#2e7be8;box-shadow:0 0 0 3px rgba(37,99,235,.12),0 5px 16px rgba(37,99,235,.08)}
.forgot-password-field-shell>i{flex:0 0 auto;margin-left:14px;color:#475569;font-size:1.05rem}
.forgot-password-field-shell .swal2-input{
  width:100%!important;height:46px!important;margin:0!important;border:0!important;border-radius:11px!important;
  background:transparent!important;padding:0 14px!important;color:#172033!important;font-size:.95rem!important;
  font-weight:500!important;box-shadow:none!important;outline:none!important
}
.forgot-password-field-shell .swal2-input::placeholder{color:#94a3b8;opacity:1}
.forgot-password-turnstile-shell{
  display:grid;justify-items:center;gap:10px;width:100%;min-height:86px;
  margin-top:16px;padding:0;border:0;border-radius:0;
  background:transparent;box-shadow:none;overflow:visible
}
.forgot-password-turnstile-shell.hidden{display:none!important}
.forgot-password-turnstile-shell.feedback-only{min-height:24px;margin-top:14px}
.forgot-password-turnstile-shell.feedback-only .forgot-password-turnstile-box{display:none!important}
.forgot-password-turnstile-box{display:flex;align-items:center;justify-content:center;width:100%;max-width:100%;min-height:65px;overflow:visible}
.forgot-password-turnstile-widget{display:flex;align-items:center;justify-content:center;width:min(304px,100%);min-width:0;min-height:65px;margin:0 auto;overflow:visible}
.forgot-password-turnstile-widget iframe{display:block;width:100%!important;max-width:304px!important}
.forgot-password-turnstile-status-row{display:grid;width:100%;min-width:0;grid-template-columns:minmax(12px,1fr) minmax(0,310px) minmax(12px,1fr);align-items:center;gap:8px;overflow:visible}
.forgot-password-turnstile-status-line{display:block;min-width:12px;height:1px;background:rgba(148,163,184,.32)}
.forgot-password-turnstile-status{
  display:inline-flex;width:100%;min-width:0;max-width:310px;align-items:center;justify-content:center;gap:6px;margin:0;
  overflow:visible;color:#2563eb;font-size:clamp(.64rem,1.8vw,.72rem);line-height:1.35;font-weight:800;text-align:center;
  white-space:normal
}
.forgot-password-turnstile-status>span{display:block;min-width:0;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;word-break:normal}
.forgot-password-turnstile-status::before{content:"!";display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;flex:0 0 19px;border-radius:999px;background:#2563eb;color:#fff;font-size:.68rem;font-weight:900;line-height:1}
.forgot-password-turnstile-shell.is-verified .forgot-password-turnstile-status{color:#15803d}
.forgot-password-turnstile-shell.is-verified .forgot-password-turnstile-status::before{content:"✓";background:#16a34a}
.forgot-password-turnstile-shell.is-verified .forgot-password-turnstile-status-line{background:rgba(22,163,74,.28)}
.forgot-password-turnstile-shell.has-error .forgot-password-turnstile-status{color:#dc2626}
.forgot-password-turnstile-shell.has-error .forgot-password-turnstile-status::before{content:"!";background:#dc2626}
.forgot-password-turnstile-shell.has-error .forgot-password-turnstile-status-line{background:rgba(239,68,68,.28)}
.forgot-password-field-shell-otp .swal2-input{height:50px!important;padding:0 15px!important;font-size:1.15rem!important;letter-spacing:.08em!important;font-weight:650!important;text-align:left!important}
.forgot-password-field-shell-otp-inline{display:flex;align-items:stretch;gap:0;overflow:hidden}
.forgot-password-field-shell-otp-inline .forgot-otp-input{flex:1 1 auto;min-width:0}
.forgot-password-otp-inline-meta{
  display:flex;align-items:center;justify-content:center;gap:10px;flex:0 0 156px;
  padding:0 15px 0 10px;color:#1256b8;background:linear-gradient(90deg,#f9fbff 0%,#eef6ff 100%)
}
.forgot-password-otp-inline-divider{display:block;align-self:center;width:1px;height:58%;background:#cbd5e1}
.forgot-password-otp-inline-meta i{flex:0 0 auto;font-size:1.55rem;color:#1763c5}
.forgot-password-otp-inline-meta strong{flex:0 0 auto;font-size:.98rem;line-height:1;font-weight:850;letter-spacing:.08em;color:#1256b8}
.forgot-password-note{display:flex;align-items:flex-start;gap:10px;margin-top:13px;color:#334155;font-size:.76rem;line-height:1.45}
.forgot-password-note i{flex:0 0 auto;margin-top:1px;color:#1d4ed8;font-size:1.05rem}
.forgot-password-note-plain{color:#475569}
.forgot-password-countdown{
  display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding:11px 14px;
  border:1.5px solid #72a9f3;border-radius:11px;background:linear-gradient(90deg,#f4f9ff,#eef6ff);color:#1254ae
}
.forgot-password-countdown>div{display:flex;align-items:center;gap:14px;min-width:0;font-size:.82rem;font-weight:650}
.forgot-password-countdown i{font-size:1.25rem;color:#1763c5}
.forgot-password-countdown strong{flex:0 0 auto;font-size:1.12rem;line-height:1;font-weight:850;letter-spacing:.08em;color:#1256b8}
.forgot-password-inline-error{
  display:flex;align-items:center;justify-content:center;gap:10px;margin-top:13px;padding:11px 13px;border:1px solid #fca5a5;border-radius:10px;
  background:#fff4f4;color:#dc2626;font-size:.82rem;line-height:1.4;text-align:center
}
.forgot-password-inline-error.hidden{display:none!important}
.forgot-password-inline-error i{flex:0 0 auto;font-size:1.35rem}
.forgot-password-inline-error span{min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:normal}
.forgot-password-actions{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px!important;
  position:relative;align-items:stretch;min-height:79px;
  width:100%!important;margin:17px 0 0!important;padding:15px 24px 18px!important;border-top:1px solid #e2e8f0;background:#fff
}
.forgot-password-actions.forgot-password-actions-close-only{grid-template-columns:minmax(0,1fr)!important}
.forgot-password-actions.forgot-password-actions-close-only .forgot-password-confirm{grid-column:1/-1!important}
.forgot-password-confirm,.forgot-password-cancel{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;
  width:100%!important;min-height:44px!important;margin:0!important;border-radius:12px!important;
  padding:0 12px!important;font-size:.86rem!important;font-weight:800!important;line-height:1.2!important;cursor:pointer!important;
  transition:transform .18s,box-shadow .18s,background-color .18s,border-color .18s!important
}
.forgot-password-confirm{order:2;border:1px solid #1457c8!important;background:linear-gradient(135deg,#2563eb,#0755c9)!important;color:#fff!important;box-shadow:0 10px 22px -12px rgba(37,99,235,.9)!important}
.forgot-password-confirm:hover{background:linear-gradient(135deg,#1d4ed8,#0649ad)!important;box-shadow:0 13px 26px -12px rgba(37,99,235,.95)!important}
.forgot-password-cancel{order:1;border:1px solid #b8c3d3!important;background:#fff!important;color:#172033!important;box-shadow:none!important}
.forgot-password-cancel:hover{border-color:#94a3b8!important;background:#f8fafc!important}
.forgot-password-confirm:active,.forgot-password-cancel:active{transform:translateY(0) scale(.99)!important}
.forgot-password-confirm:disabled{cursor:not-allowed!important;opacity:.55!important;transform:none!important;box-shadow:none!important}
.forgot-password-close{
  top:12px!important;right:12px!important;width:36px!important;height:36px!important;border-radius:12px!important;
  color:#64748b!important;font-size:1.7rem!important;line-height:1!important;transition:background-color .18s,color .18s!important
}
.forgot-password-close:hover{background:#f1f5f9!important;color:#1e293b!important}
.forgot-password-popup .swal2-validation-message{
  margin:10px 24px 0!important;border:1px solid #fecaca!important;border-radius:10px!important;background:#fff4f4!important;
  color:#dc2626!important;font-size:.88rem!important;line-height:1.4!important;text-align:left!important
}
.forgot-password-popup .swal2-validation-message:before{background:#dc2626!important}
.forgot-password-popup-request .swal2-validation-message{display:none!important}
.forgot-password-popup .swal2-loader{display:none!important}
.forgot-password-actions .swal2-loader{position:absolute!important;inset:auto!important;width:0!important;height:0!important;margin:0!important;padding:0!important;border:0!important;overflow:hidden!important}
.forgot-password-confirm:disabled,.forgot-password-cancel:disabled,.forgot-password-close:disabled{cursor:wait!important;opacity:.72!important;transform:none!important}
html.forgot-password-modal-open,
body.forgot-password-modal-open{overflow:hidden!important;overscroll-behavior:none!important}
body.forgot-password-modal-open #app,
body.forgot-password-modal-open #page-login{overflow:hidden!important;overscroll-behavior:none!important}
@media(max-width:640px){
  .forgot-password-popup{width:min(calc(100% - 16px),460px)!important;max-height:calc(100dvh - 16px)!important;border-radius:17px!important}
  .forgot-password-header{align-items:center;gap:12px;padding:18px 18px 15px}
  .forgot-password-icon{flex-basis:50px;width:50px;height:50px;box-shadow:inset 0 0 0 6px rgba(219,234,254,.42)}
  .forgot-password-icon i{font-size:22px}
  .forgot-password-heading{min-height:50px;padding-right:22px}
  .forgot-password-heading h3{font-size:1.28rem;line-height:1.18}
  .forgot-password-divider{margin:0 18px}
  .forgot-password-body{padding:16px 18px 4px}
  .forgot-password-intro{margin-bottom:13px;font-size:.81rem;line-height:1.46}
  .forgot-password-dialog label{margin-bottom:7px;font-size:.75rem}
  .forgot-password-turnstile-shell{min-height:82px;margin-top:14px;padding:0}
  .forgot-password-turnstile-box{min-height:65px}
  .forgot-password-turnstile-status-row{gap:7px}
  .forgot-password-turnstile-status{max-width:min(100%,250px);font-size:.66rem}
  .forgot-password-field-group{gap:11px}
  .forgot-password-field-shell{min-height:47px}
  .forgot-password-field-shell>i{margin-left:13px;font-size:1.02rem}
  .forgot-password-field-shell .swal2-input{height:45px!important;padding:0 13px!important;font-size:.93rem!important}
  .forgot-password-field-shell-otp .swal2-input{height:49px!important;font-size:1.12rem!important}
  .forgot-password-otp-inline-meta{flex-basis:148px;padding:0 13px 0 9px;gap:9px}
  .forgot-password-otp-inline-meta i{font-size:1.4rem}
  .forgot-password-otp-inline-meta strong{font-size:.94rem}
  .forgot-password-note{gap:9px;margin-top:13px;font-size:.75rem}
  .forgot-password-countdown{gap:9px;padding:10px 12px}
  .forgot-password-countdown>div{gap:8px;font-size:.76rem}
  .forgot-password-countdown i{font-size:1rem}
  .forgot-password-countdown strong{font-size:1rem}
  .forgot-password-inline-error{font-size:.78rem}
  .forgot-password-actions{gap:10px!important;min-height:76px;margin-top:17px!important;padding:14px 18px 17px!important}
  .forgot-password-confirm,.forgot-password-cancel{min-height:44px!important;padding:0 10px!important;font-size:.83rem!important}
  .forgot-password-close{top:9px!important;right:9px!important;width:34px!important;height:34px!important;font-size:1.6rem!important}
  .forgot-password-popup .swal2-validation-message{margin:10px 18px 0!important;font-size:.78rem!important}
}
@media(max-width:430px){
  .forgot-password-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .forgot-password-header{gap:10px;padding:16px 15px 14px}
  .forgot-password-icon{flex-basis:46px;width:46px;height:46px}
  .forgot-password-icon i{font-size:20px}
  .forgot-password-heading{min-height:46px;padding-right:20px}
  .forgot-password-heading h3{font-size:1.17rem;line-height:1.2}
  .forgot-password-body{padding:14px 15px 4px}
  .forgot-password-divider{margin:0 15px}
  .forgot-password-intro{margin-bottom:12px;font-size:.78rem;line-height:1.44}
  .forgot-password-dialog-otp .forgot-password-heading{justify-content:center}
  .forgot-password-otp-inline-meta{flex-basis:136px;padding:0 11px 0 8px;gap:8px}
  .forgot-password-otp-inline-meta i{font-size:1.25rem}
  .forgot-password-otp-inline-meta strong{font-size:.9rem}
  .forgot-password-actions{padding-right:15px!important;padding-left:15px!important}
}
@media(max-width:360px){
  .forgot-password-popup{width:calc(100% - 12px)!important}
  .forgot-password-header{gap:9px;padding-left:13px;padding-right:13px}
  .forgot-password-icon{flex-basis:43px;width:43px;height:43px}
  .forgot-password-icon i{font-size:19px}
  .forgot-password-heading{min-height:43px;padding-right:18px}
  .forgot-password-heading h3{font-size:1.1rem}
  .forgot-password-body{padding-left:13px;padding-right:13px}
  .forgot-password-divider{margin-left:13px;margin-right:13px}
  .forgot-password-field-shell-otp-inline{display:grid;grid-template-columns:minmax(0,1fr)}
  .forgot-password-otp-inline-meta{min-height:42px;flex-basis:auto;padding:0 10px;border-top:1px solid #dbe3ef}
  .forgot-password-otp-inline-divider{display:none}
  .forgot-password-turnstile-shell{width:calc(100% + 8px);margin-right:-4px;margin-left:-4px}
  .forgot-password-turnstile-status{max-width:min(100%,220px);font-size:.63rem}
  .forgot-password-actions{gap:8px!important;padding-right:13px!important;padding-left:13px!important}
  .forgot-password-confirm,.forgot-password-cancel{font-size:.79rem!important}
}

@media(max-width:319px){
  .forgot-password-turnstile-widget{width:150px}
  .forgot-password-turnstile-widget iframe{max-width:150px!important}
}

.smtp-settings-page{max-width:100%;min-width:0}
.smtp-settings-page .smtp-settings-card{padding:24px 26px!important;border-radius:18px!important;border-color:#dbe3ef!important;box-shadow:0 4px 10px rgba(15,23,42,.04);overflow:visible}
.smtp-settings-page .smtp-settings-card:hover{transform:translateY(-3px);box-shadow:0 12px 20px -5px rgba(0,0,0,.06),0 4px 6px -2px rgba(0,0,0,.03);border-color:#cbd5e1!important}
.smtp-settings-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}
.smtp-settings-header h2{display:flex;align-items:center;gap:9px;margin:0;color:#1e293b;font-size:1.05rem;line-height:1.2;font-weight:800}
.smtp-settings-header h2 i{color:#2563eb;font-size:1.05rem}.smtp-settings-header p{margin-top:6px;color:#64748b;font-size:.875rem;line-height:1.5}
.smtp-admin-badge{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;border:1px solid #dbeafe;border-radius:999px;background:#eff6ff;padding:7px 12px;color:#1d4ed8;font-size:.7rem;font-weight:800;white-space:nowrap}.smtp-admin-badge i{font-size:.72rem}
.smtp-settings-loading{display:flex;align-items:center;justify-content:center;gap:9px;min-height:180px;border:1px dashed #cbd5e1;border-radius:14px;background:#f8fafc;color:#64748b;font-size:.84rem}.smtp-settings-loading i{color:#2563eb}.smtp-settings-loading.hidden,.smtp-settings-loading[hidden]{display:none!important}
.smtp-settings-form{display:flex;flex-direction:column;gap:18px}.smtp-settings-form.hidden{display:none!important}
.smtp-toggle-card{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 18px;border:1px solid #dbeafe;background:#f8fbff;border-radius:14px}.smtp-toggle-card h3{font-weight:800;color:#0f172a}.smtp-toggle-card p{margin-top:4px;color:#64748b;font-size:.78rem;line-height:1.5}
.smtp-switch{position:relative;width:52px;height:29px;flex:0 0 auto}.smtp-switch input{opacity:0;width:0;height:0}.smtp-switch span{position:absolute;inset:0;border-radius:99px;background:#cbd5e1;cursor:pointer;transition:.2s}.smtp-switch span:before{content:"";position:absolute;width:23px;height:23px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(15,23,42,.2);transition:.2s}.smtp-switch input:checked+span{background:#2563eb}.smtp-switch input:focus-visible+span{box-shadow:0 0 0 3px rgba(37,99,235,.2)}.smtp-switch input:checked+span:before{transform:translateX(23px)}
.smtp-fields-panel{border:1px solid #e2e8f0;border-radius:14px;background:#fff;padding:18px}
.smtp-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid #e2e8f0}.smtp-section-heading>div{display:flex;align-items:center;gap:8px;color:#334155;font-size:.84rem;font-weight:800}.smtp-section-heading>div i{color:#2563eb}.smtp-section-heading p{max-width:620px;color:#64748b;font-size:.74rem;line-height:1.5;text-align:right}
.smtp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.smtp-grid-transport{grid-template-columns:repeat(2,minmax(0,1fr))}.smtp-grid-rate{grid-template-columns:repeat(2,minmax(160px,1fr));gap:14px;align-items:start;overflow-x:auto;overflow-y:hidden;padding:1px 1px 6px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.smtp-grid-rate>label{min-width:160px;scroll-snap-align:start}.smtp-grid label{display:flex;min-width:0;flex-direction:column;gap:7px}.smtp-grid label>span{min-height:1.4em;font-size:.71rem;font-weight:800;color:#475569;text-transform:uppercase;letter-spacing:.04em}.smtp-grid input,.smtp-grid select{width:100%;height:44px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;padding:0 12px;color:#334155;font-size:.86rem;outline:none;transition:border-color .2s,box-shadow .2s}.smtp-grid input:hover,.smtp-grid select:hover{border-color:#94a3b8}.smtp-grid input:focus,.smtp-grid select:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.smtp-grid small{min-height:1.05em;color:#64748b;font-size:.67rem;line-height:1.4}
.smtp-secret-note{margin-top:14px}.smtp-form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:2px}.smtp-info-note{display:flex;min-width:0;flex:1;align-items:center;gap:9px;padding:11px 13px;border:1px solid #e2e8f0;border-radius:11px;background:#f8fafc;color:#475569;font-size:.78rem;line-height:1.45}.smtp-info-note i{color:#2563eb;flex:0 0 auto}
.smtp-action-buttons{display:flex;flex:0 0 auto}.smtp-save-btn{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:9px;border:0;border-radius:12px;background:#2563eb;padding:0 18px;color:#fff;font-size:.8rem;font-weight:800;cursor:pointer;box-shadow:0 8px 16px -8px rgba(37,99,235,.8);transition:background-color .2s,transform .2s,opacity .2s;white-space:nowrap}.smtp-save-btn:hover{background:#1d4ed8}.smtp-save-btn:active{transform:scale(.98)}.smtp-save-btn:disabled{cursor:not-allowed;opacity:.65}
@media(max-width:900px){.smtp-settings-header{flex-direction:column;align-items:stretch}.smtp-admin-badge{align-self:center}.smtp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.smtp-grid-rate{grid-template-columns:repeat(2,minmax(160px,1fr));gap:14px}.smtp-section-heading{display:block}.smtp-section-heading p{margin-top:5px;max-width:none;text-align:left}}
@media(max-width:640px){.smtp-settings-page .smtp-settings-card{padding:18px 16px!important}.smtp-settings-header{margin-bottom:16px}.smtp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}.smtp-grid-rate{grid-template-columns:repeat(2,minmax(145px,1fr));gap:12px}.smtp-grid-rate>label{min-width:145px}.smtp-grid label{gap:6px}.smtp-grid label>span{min-height:2.65em;font-size:.66rem;line-height:1.3}.smtp-grid-rate label>span{min-height:auto}.smtp-grid input,.smtp-grid select{height:42px;padding:0 9px;font-size:.78rem}.smtp-toggle-card{align-items:flex-start;padding:14px}.smtp-fields-panel{padding:14px}.smtp-form-footer{align-items:stretch;flex-direction:column}.smtp-action-buttons{width:100%}.smtp-save-btn{width:100%;padding:0 10px}}

/* Mail Server numeric fields: clean inputs with integrated units. */
.smtp-input-unit{display:flex;width:100%;height:44px;overflow:hidden;border:1px solid #cbd5e1;border-radius:10px;background:#fff;transition:border-color .2s,box-shadow .2s}
.smtp-input-unit:hover{border-color:#94a3b8}
.smtp-input-unit:focus-within{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.smtp-grid .smtp-input-unit input{min-width:0;height:42px;flex:1;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0 10px 0 12px;font-variant-numeric:tabular-nums}
.smtp-input-unit>span{display:inline-flex;min-width:62px;align-items:center;justify-content:center;border-left:1px solid #e2e8f0;background:#f8fafc;padding:0 11px;color:#64748b;font-size:.72rem;font-weight:800;white-space:nowrap;text-transform:none;letter-spacing:0}
@media(max-width:640px){.smtp-input-unit{height:42px}.smtp-grid .smtp-input-unit input{height:40px;padding:0 7px 0 9px}.smtp-input-unit>span{min-width:48px;padding:0 7px;font-size:.65rem}}
@media(max-width:380px){.smtp-settings-page .smtp-settings-card{padding-left:12px!important;padding-right:12px!important}.smtp-fields-panel{padding:11px}.smtp-grid{gap:10px 8px}.smtp-grid-rate{grid-template-columns:repeat(2,minmax(140px,1fr));gap:10px}.smtp-grid-rate>label{min-width:140px}.smtp-grid label>span{font-size:.62rem}.smtp-grid input,.smtp-grid select{padding:0 7px;font-size:.72rem}.smtp-input-unit>span{min-width:43px;padding:0 5px;font-size:.6rem}}


/* --- MULTI-FACTOR AUTHENTICATION SETTINGS --- */
.mfa-settings-page{max-width:100%;min-width:0}
.mfa-settings-page .mfa-settings-card{padding:24px 26px!important;border-radius:18px!important;border-color:#dbe3ef!important;box-shadow:0 4px 10px rgba(15,23,42,.04);overflow:visible}
.mfa-settings-page .mfa-settings-card:hover{transform:translateY(-3px);box-shadow:0 12px 20px -5px rgba(0,0,0,.06),0 4px 6px -2px rgba(0,0,0,.03);border-color:#cbd5e1!important}
.mfa-settings-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}
.mfa-settings-header h2{display:flex;align-items:center;gap:9px;margin:0;color:#1e293b;font-size:1.05rem;line-height:1.2;font-weight:800}
.mfa-settings-header h2 i{color:#2563eb;font-size:1.05rem}.mfa-settings-header p{margin-top:6px;color:#64748b;font-size:.875rem;line-height:1.5}
.mfa-admin-badge{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;border:1px solid #dbeafe;border-radius:999px;background:#eff6ff;padding:7px 12px;color:#1d4ed8;font-size:.7rem;font-weight:800;white-space:nowrap}.mfa-admin-badge i{font-size:.72rem}
.mfa-settings-loading{display:flex;align-items:center;justify-content:center;gap:9px;min-height:180px;border:1px dashed #cbd5e1;border-radius:14px;background:#f8fafc;color:#64748b;font-size:.84rem}.mfa-settings-loading i{color:#2563eb}.mfa-settings-loading.hidden,.mfa-settings-loading[hidden]{display:none!important}
.mfa-settings-form{display:flex;flex-direction:column;gap:18px}.mfa-settings-form.hidden{display:none!important}
.mfa-toggle-card{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 18px;border:1px solid #dbeafe;background:linear-gradient(135deg,#f8fbff 0%,#f5f7ff 100%);border-radius:14px}
.mfa-toggle-title{display:flex;align-items:flex-start;gap:13px}.mfa-feature-icon{display:flex;width:40px;height:40px;flex:0 0 auto;align-items:center;justify-content:center;border-radius:11px;background:#dbeafe;color:#1d4ed8;font-size:1rem}
.mfa-toggle-card h3{font-weight:800;color:#0f172a}.mfa-toggle-card p{margin-top:4px;max-width:760px;color:#64748b;font-size:.78rem;line-height:1.5}
.mfa-switch{position:relative;width:52px;height:29px;flex:0 0 auto}.mfa-switch input{opacity:0;width:0;height:0}.mfa-switch span{position:absolute;inset:0;border-radius:99px;background:#cbd5e1;cursor:pointer;transition:.2s}.mfa-switch span:before{content:"";position:absolute;width:23px;height:23px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(15,23,42,.2);transition:.2s}.mfa-switch input:checked+span{background:#2563eb}.mfa-switch input:focus-visible+span{box-shadow:0 0 0 3px rgba(37,99,235,.2)}.mfa-switch input:checked+span:before{transform:translateX(23px)}
.mfa-fields-panel{border:1px solid #e2e8f0;border-radius:14px;background:#fff;padding:18px}
.mfa-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid #e2e8f0}.mfa-section-heading>div{display:flex;align-items:center;gap:8px;color:#334155;font-size:.84rem;font-weight:800}.mfa-section-heading>div i{color:#2563eb}.mfa-section-heading p{max-width:660px;color:#64748b;font-size:.74rem;line-height:1.5;text-align:right}
.mfa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.mfa-grid label{display:flex;min-width:0;flex-direction:column;gap:7px;transition:opacity .2s}.mfa-grid label>span{font-size:.71rem;font-weight:800;color:#475569;text-transform:uppercase;letter-spacing:.04em}.mfa-grid label small{color:#64748b;font-size:.68rem;line-height:1.4}.mfa-grid label.is-disabled{opacity:.55}
.mfa-rate-reset-grid{margin-top:16px;padding-top:16px;border-top:1px solid #e2e8f0}.mfa-rate-reset-field{display:flex;min-width:0;min-height:48px;align-items:center;justify-content:space-between;gap:14px;border:1px solid #e2e8f0;border-radius:11px;background:#f8fafc;padding:9px 12px;transition:opacity .2s,border-color .2s}.mfa-rate-reset-field>span{color:#475569;font-size:.71rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.mfa-rate-reset-field .mfa-switch{display:block;min-width:52px;flex-direction:initial;gap:0}.mfa-rate-reset-field.is-disabled{opacity:.55}.mfa-rate-reset-field .mfa-switch input:disabled+span{cursor:not-allowed}
.mfa-input-unit{display:flex;width:100%;height:44px;overflow:hidden;border:1px solid #cbd5e1;border-radius:10px;background:#fff;transition:border-color .2s,box-shadow .2s}.mfa-input-unit:hover{border-color:#94a3b8}.mfa-input-unit:focus-within{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.mfa-input-unit input{min-width:0;height:42px;flex:1;border:0;background:transparent;padding:0 12px;color:#334155;font-size:.86rem;font-variant-numeric:tabular-nums;outline:none}.mfa-input-unit input:disabled{cursor:not-allowed;background:#f8fafc}.mfa-input-unit>span{display:inline-flex;min-width:66px;align-items:center;justify-content:center;border-left:1px solid #e2e8f0;background:#f8fafc;padding:0 11px;color:#64748b;font-size:.72rem;font-weight:800;white-space:nowrap}
.mfa-form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px}.mfa-info-note{display:flex;min-width:0;flex:1;align-items:center;gap:9px;padding:11px 13px;border:1px solid #e2e8f0;border-radius:11px;background:#f8fafc;color:#475569;font-size:.78rem;line-height:1.45}.mfa-info-note i{color:#2563eb;flex:0 0 auto}
.mfa-save-btn{display:inline-flex;min-height:44px;flex:0 0 auto;align-items:center;justify-content:center;gap:9px;border:0;border-radius:12px;background:#2563eb;padding:0 18px;color:#fff;font-size:.8rem;font-weight:800;box-shadow:0 8px 16px -8px rgba(37,99,235,.8);cursor:pointer;transition:background-color .2s,transform .2s,opacity .2s}.mfa-save-btn:hover{background:#1d4ed8}.mfa-save-btn:active{transform:scale(.98)}.mfa-save-btn:disabled{cursor:not-allowed;opacity:.65}
@media(max-width:900px){.mfa-settings-header{flex-direction:column;align-items:stretch}.mfa-admin-badge{align-self:center}}
@media(max-width:760px){.mfa-section-heading{display:block}.mfa-section-heading p{margin-top:5px;max-width:none;text-align:left}.mfa-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mfa-grid label>span{font-size:.64rem}.mfa-input-unit>span{min-width:48px;padding:0 7px;font-size:.64rem}.mfa-input-unit input{padding:0 8px}}
@media(max-width:640px){.mfa-settings-page .mfa-settings-card{padding:18px 16px!important}.mfa-settings-header{margin-bottom:16px}.mfa-toggle-card{align-items:flex-start;padding:14px}.mfa-toggle-title{gap:10px}.mfa-feature-icon{width:36px;height:36px}.mfa-fields-panel{padding:14px}.mfa-form-footer{align-items:stretch;flex-direction:column}.mfa-save-btn{width:100%}}
@media(max-width:380px){.mfa-settings-page .mfa-settings-card{padding-left:12px!important;padding-right:12px!important}.mfa-fields-panel{padding:11px}.mfa-toggle-card{gap:10px}.mfa-switch{width:48px;height:27px}.mfa-switch span:before{width:21px;height:21px}.mfa-switch input:checked+span:before{transform:translateX(21px)}}

/* --- KONFIRMASI DOUBLE LOGIN --- */
.swal2-popup.unlink-device-popup {
  width: min(460px, calc(100vw - 28px)) !important;
  max-width: 460px !important;
  padding: 22px 24px 18px !important;
  border: 1px solid rgba(226, 232, 240, 0.9) !important;
  border-radius: 22px !important;
  background: rgba(255, 255, 255, 0.98) !important;
  box-shadow: 0 24px 58px rgba(15, 23, 42, 0.2) !important;
  font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

.swal2-popup.unlink-device-popup .unlink-device-icon,
.swal2-icon.unlink-device-icon {
  width: 66px !important;
  height: 66px !important;
  margin: 0 auto 14px !important;
  border: 1px solid #fed7aa !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #fff !important;
  box-shadow: 0 10px 26px rgba(249, 115, 22, 0.14) !important;
}

.swal2-popup.unlink-device-popup .unlink-device-icon::before {
  content: '';
  position: absolute;
  inset: 10px;
  border-radius: 999px;
  background: linear-gradient(145deg, #ff8a00 0%, #ff5a00 100%);
  box-shadow: 0 8px 18px rgba(249, 115, 22, 0.26);
}

.swal2-popup.unlink-device-popup .unlink-device-icon .swal2-icon-content {
  position: relative;
  z-index: 1;
  font-size: 36px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
  transform: translateY(-1px);
}

.swal2-popup.unlink-device-popup .unlink-device-title,
.swal2-title.unlink-device-title {
  margin: 0 !important;
  padding: 0 !important;
  color: #0f172a !important;
  font-family: 'Poppins', 'Inter', ui-sans-serif, system-ui, sans-serif !important;
  font-size: 1.55rem !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.2 !important;
}

.swal2-popup.unlink-device-popup .unlink-device-html,
.swal2-html-container.unlink-device-html {
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  color: #334155 !important;
}

.swal2-popup.unlink-device-popup .unlink-device-dialog {
  width: 100%;
}

.swal2-popup.unlink-device-popup .unlink-device-lead {
  margin: 8px 0 16px;
  color: #1e3a70;
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}

.swal2-popup.unlink-device-popup .unlink-device-info {
  overflow: hidden;
  padding: 0 18px;
  border: 1px solid #dbe3ef;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.035);
}

.swal2-popup.unlink-device-popup .unlink-device-info-row {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 13px;
  align-items: center;
  min-height: 68px;
  padding: 11px 0;
  border-bottom: 1px solid #dbe3ef;
  text-align: left;
}

.swal2-popup.unlink-device-popup .unlink-device-info-row-last {
  border-bottom: 0;
}

.swal2-popup.unlink-device-popup .unlink-device-row-icon {
  display: inline-flex;
  width: 38px;
  height: 38px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  font-size: 1.08rem;
}

.swal2-popup.unlink-device-popup .unlink-device-row-icon-user {
  color: #165dff;
  background: #e8f1ff;
}

.swal2-popup.unlink-device-popup .unlink-device-row-icon-time {
  color: #16a126;
  background: #e8f8e9;
}

.swal2-popup.unlink-device-popup .unlink-device-row-icon-confirm {
  color: #6d28d9;
  background: #f0e9ff;
}

.swal2-popup.unlink-device-popup .unlink-device-row-icon-confirm i {
  transform: translateY(-0.5px);
}

.swal2-popup.unlink-device-popup .unlink-device-row-content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
  color: #0f172a;
}

.swal2-popup.unlink-device-popup .unlink-device-row-content b {
  font-size: 0.86rem;
  font-weight: 800;
  line-height: 1.3;
}

.swal2-popup.unlink-device-popup .unlink-device-row-content > span {
  overflow-wrap: anywhere;
  color: #111827;
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.4;
}

.swal2-popup.unlink-device-popup .unlink-device-countdown {
  color: #172554 !important;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.025em;
}

.swal2-popup.unlink-device-popup .unlink-device-warning {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid #fdba74;
  border-radius: 12px;
  background: #fffaf1;
  color: #8a2518;
  text-align: left;
}

.swal2-popup.unlink-device-popup .unlink-device-warning > i {
  color: #f97316;
  font-size: 1.45rem;
  text-align: center;
}

.swal2-popup.unlink-device-popup .unlink-device-warning p {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.5;
}

.swal2-popup.unlink-device-popup .unlink-device-actions,
.swal2-actions.unlink-device-actions {
  display: grid !important;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.15fr);
  gap: 12px;
  width: 100%;
  margin: 14px 0 0 !important;
  padding: 0 !important;
}

.swal2-popup.unlink-device-popup .unlink-device-confirm,
.swal2-popup.unlink-device-popup .unlink-device-cancel {
  display: inline-flex;
  min-width: 0;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0 !important;
  padding: 10px 14px;
  border-radius: 12px;
  font-size: 0.86rem;
  font-weight: 800;
  line-height: 1.25;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease, background 160ms ease;
}

.swal2-popup.unlink-device-popup .unlink-device-cancel {
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #0f172a;
}

.swal2-popup.unlink-device-popup .unlink-device-confirm {
  border: 1px solid #075eea;
  background: linear-gradient(135deg, #1769ed 0%, #0756e7 100%);
  color: #fff;
  box-shadow: 0 9px 18px rgba(8, 92, 231, 0.2);
}

.swal2-popup.unlink-device-popup .unlink-device-confirm:hover,
.swal2-popup.unlink-device-popup .unlink-device-cancel:hover {
  transform: translateY(-1px);
}

.swal2-popup.unlink-device-popup .unlink-device-confirm:hover {
  background: linear-gradient(135deg, #0f5fe2 0%, #0649c9 100%);
  box-shadow: 0 12px 22px rgba(8, 92, 231, 0.26);
}

.swal2-popup.unlink-device-popup .unlink-device-cancel:hover {
  border-color: #94a3b8;
  background: #f8fafc;
}

.swal2-popup.unlink-device-popup .unlink-device-confirm:focus-visible,
.swal2-popup.unlink-device-popup .unlink-device-cancel:focus-visible {
  outline: 3px solid rgba(59, 130, 246, 0.25);
  outline-offset: 3px;
}

.swal2-popup.unlink-device-popup .unlink-device-footer,
.swal2-footer.unlink-device-footer {
  margin: 12px 0 0 !important;
  padding: 0 !important;
  border-top: 0 !important;
}

.swal2-popup.unlink-device-popup .unlink-device-security-note {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin: 0;
  color: #284778;
  font-size: 0.74rem;
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
}

.swal2-popup.unlink-device-popup .unlink-device-security-note i {
  color: #365b91;
}

@media (max-width: 520px) {
  .swal2-popup.unlink-device-popup {
    width: calc(100vw - 20px) !important;
    padding: 19px 16px 16px !important;
    border-radius: 20px !important;
  }

  .swal2-popup.unlink-device-popup .unlink-device-icon,
  .swal2-icon.unlink-device-icon {
    width: 60px !important;
    height: 60px !important;
    margin-bottom: 12px !important;
  }

  .swal2-popup.unlink-device-popup .unlink-device-icon::before {
    inset: 9px;
  }

  .swal2-popup.unlink-device-popup .unlink-device-icon .swal2-icon-content {
    font-size: 33px !important;
  }

  .swal2-popup.unlink-device-popup .unlink-device-title,
  .swal2-title.unlink-device-title {
    font-size: 1.4rem !important;
  }

  .swal2-popup.unlink-device-popup .unlink-device-lead {
    margin: 7px 2px 14px;
    font-size: 0.82rem;
  }

  .swal2-popup.unlink-device-popup .unlink-device-info {
    padding: 0 13px;
  }

  .swal2-popup.unlink-device-popup .unlink-device-info-row {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 10px;
    min-height: 62px;
    padding: 10px 0;
  }

  .swal2-popup.unlink-device-popup .unlink-device-row-icon {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    font-size: 0.98rem;
  }

  .swal2-popup.unlink-device-popup .unlink-device-row-content b,
  .swal2-popup.unlink-device-popup .unlink-device-row-content > span {
    font-size: 0.8rem;
  }

  .swal2-popup.unlink-device-popup .unlink-device-warning {
    grid-template-columns: 27px minmax(0, 1fr);
    gap: 9px;
    padding: 10px 11px;
  }

  .swal2-popup.unlink-device-popup .unlink-device-warning > i {
    font-size: 1.28rem;
  }

  .swal2-popup.unlink-device-popup .unlink-device-warning p {
    font-size: 0.72rem;
  }

  .swal2-popup.unlink-device-popup .unlink-device-actions,
  .swal2-actions.unlink-device-actions {
    grid-template-columns: 1fr 1.18fr;
    gap: 9px;
  }

  .swal2-popup.unlink-device-popup .unlink-device-confirm,
  .swal2-popup.unlink-device-popup .unlink-device-cancel {
    min-height: 44px;
    padding: 9px 10px;
    font-size: 0.8rem;
  }

  .swal2-popup.unlink-device-popup .unlink-device-security-note {
    padding: 0 4px;
    font-size: 0.69rem;
  }
}

@media (max-width: 360px) {
  .swal2-popup.unlink-device-popup .unlink-device-actions,
  .swal2-actions.unlink-device-actions {
    grid-template-columns: 1fr;
  }

  .swal2-popup.unlink-device-popup .unlink-device-confirm {
    grid-row: 1;
  }

  .swal2-popup.unlink-device-popup .unlink-device-cancel {
    grid-row: 2;
  }
}

.swal2-popup.unlink-device-popup .unlink-device-icon,
.swal2-icon.unlink-device-icon {
  position: relative !important;
  overflow: hidden !important;
}

/* MFA factors and SMTP status */
.mfa-toggle-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mfa-toggle-list .mfa-toggle-card{height:100%}
.mfa-feature-icon-forgot{background:#dcfce7;color:#15803d}
@media(max-width:700px){.mfa-toggle-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}


/* Modul & CBT form: two-column layout on tablet and small mobile screens. */
.content-page .content-form-pair-grid,
#assessmentModal .assessment-form-pair-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem;
}

.content-page .content-form-pair-grid > *,
#assessmentModal .assessment-form-pair-grid > * {
  min-width: 0;
}

.content-page .content-form-pair-grid input:not([type="checkbox"]):not([type="radio"]),
.content-page .content-form-pair-grid select,
.content-page .content-form-pair-grid textarea,
#assessmentModal .assessment-form-pair-grid input:not([type="checkbox"]):not([type="radio"]),
#assessmentModal .assessment-form-pair-grid select,
#assessmentModal .assessment-form-pair-grid textarea {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 767px) {
  .content-page .content-form-pair-grid,
  #assessmentModal .assessment-form-pair-grid {
    gap: 0.75rem;
  }

  .content-page .content-form-pair-grid label,
  #assessmentModal .assessment-form-pair-grid label {
    font-size: 0.625rem;
    line-height: 1rem;
  }

  .content-page .content-form-pair-grid input:not([type="checkbox"]):not([type="radio"]),
  .content-page .content-form-pair-grid select,
  .content-page .content-form-pair-grid textarea,
  #assessmentModal .assessment-form-pair-grid input:not([type="checkbox"]):not([type="radio"]),
  #assessmentModal .assessment-form-pair-grid select,
  #assessmentModal .assessment-form-pair-grid textarea {
    font-size: 0.75rem;
  }

  .content-page .content-form-pair-grid input[type="file"] {
    overflow: hidden;
    padding-left: 0.625rem !important;
    padding-right: 0.625rem !important;
  }

  #assessmentModal {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
  }

  #assessmentModal > .relative {
    max-width: 100% !important;
  }
}


/* Keep Modul and CBT class checkboxes compact inside the two-column form. */
#input-content-class-container > label,
#input-assessment-class-container > label,
#input-class-container > label {
  display: flex !important;
  width: 100%;
  min-width: 0;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0.75rem !important;
}

#input-content-class-container input[type="checkbox"],
#input-assessment-class-container input[type="checkbox"],
#input-class-container input[type="checkbox"] {
  width: 1rem !important;
  min-width: 1rem !important;
  max-width: 1rem !important;
  height: 1rem !important;
  flex: 0 0 1rem !important;
  margin: 0 !important;
}

#input-content-class-container > label > span,
#input-assessment-class-container > label > span,
#input-class-container > label > span {
  min-width: 0;
  flex: 1 1 auto;
  text-align: left;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.25rem;
}

/* Gradebook Range: compact 2 x 6 layout for desktop, tablet, and small mobile screens. */
#modal-grade-scale-settings .grade-scale-modal-subtitle {
  max-width: 46rem;
  line-height: 1.45;
}

#modal-grade-scale-settings .grade-scale-modal-subtitle strong {
  font-weight: 800;
  color: #334155;
}

#modal-grade-scale-settings .grade-scale-form-wrap {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

#modal-grade-scale-settings .grade-scale-range-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.875rem;
}

#modal-grade-scale-settings .grade-scale-scope-field,
#modal-grade-scale-settings .grade-scale-range-field {
  min-width: 0;
  border: 1px solid #e2e8f0;
  border-radius: 0.875rem;
  background: #f8fafc;
  padding: 0.875rem;
}

#modal-grade-scale-settings .grade-scale-scope-label,
#modal-grade-scale-settings .grade-scale-range-label {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
  color: #64748b;
  font-size: 0.6875rem;
  font-weight: 800;
  line-height: 1rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

#modal-grade-scale-settings .grade-scale-letter-badge {
  display: inline-flex;
  width: 1.5rem;
  min-width: 1.5rem;
  height: 1.5rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  background: #dbeafe;
  color: #1d4ed8;
  font-size: 0.6875rem;
  font-weight: 900;
  letter-spacing: 0;
}

#modal-grade-scale-settings .grade-scale-scope-control,
#modal-grade-scale-settings .grade-scale-range-input {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 2.75rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.75rem;
  background: #fff;
  padding: 0 0.75rem;
  color: #1e293b;
  font-size: 0.875rem;
  font-weight: 700;
  outline: none;
}

#modal-grade-scale-settings .grade-scale-range-input {
  text-align: center;
}

#modal-grade-scale-settings .grade-scale-scope-control:focus,
#modal-grade-scale-settings .grade-scale-range-input:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.16);
}

#modal-grade-scale-settings .grade-scale-helper-text {
  margin: 0;
  color: #94a3b8;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.5;
}

@media (max-width: 767px) {
  #modal-grade-scale-settings > .relative {
    padding: 0.625rem;
  }

  #modal-grade-scale-settings .grade-scale-range-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.625rem;
  }

  #modal-grade-scale-settings .grade-scale-scope-field,
  #modal-grade-scale-settings .grade-scale-range-field {
    border-radius: 0.75rem;
    padding: 0.625rem;
  }

  #modal-grade-scale-settings .grade-scale-scope-label,
  #modal-grade-scale-settings .grade-scale-range-label {
    gap: 0.375rem;
    margin-bottom: 0.375rem;
    font-size: 0.5625rem;
    line-height: 0.875rem;
    letter-spacing: 0.025em;
  }

  #modal-grade-scale-settings .grade-scale-letter-badge {
    width: 1.25rem;
    min-width: 1.25rem;
    height: 1.25rem;
    border-radius: 0.375rem;
    font-size: 0.5625rem;
  }

  #modal-grade-scale-settings .grade-scale-scope-control,
  #modal-grade-scale-settings .grade-scale-range-input {
    height: 2.5rem;
    border-radius: 0.625rem;
    padding: 0 0.5rem;
    font-size: 0.75rem;
  }

  #modal-grade-scale-settings .grade-scale-modal-subtitle {
    font-size: 0.6875rem;
    line-height: 1.4;
  }
}


/* Gradebook Bobot Nilai: subtitle dinamis dan responsif pada semua ukuran layar. */
#modal-gradebook-weight-settings .gradebook-weight-modal-heading {
  flex: 1 1 auto;
  min-width: 0;
}

#modal-gradebook-weight-settings .gradebook-weight-modal-subtitle {
  margin-top: 0.25rem;
  max-width: 46rem;
  color: rgba(29, 78, 216, 0.72);
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

#modal-gradebook-weight-settings .gradebook-weight-modal-subtitle strong {
  color: #1e3a8a;
  font-weight: 800;
}

#modal-gradebook-weight-settings input:disabled,
#modal-grade-scale-settings .grade-scale-range-input:disabled {
  cursor: not-allowed;
  background: #f1f5f9;
  color: #94a3b8;
  opacity: 0.85;
}

@media (max-width: 767px) {
  #modal-gradebook-weight-settings > .relative {
    padding: 0.625rem;
  }

  #modal-gradebook-weight-settings .gradebook-weight-modal-header {
    padding: 0.875rem 1rem;
  }

  #modal-gradebook-weight-settings #gradebook-weight-settings-content {
    padding: 0.875rem;
  }

  #modal-gradebook-weight-settings .gradebook-weight-modal-footer {
    padding: 0.75rem;
  }

  #modal-gradebook-weight-settings .gradebook-weight-input-card {
    padding: 0.75rem;
  }

  #modal-gradebook-weight-settings .gradebook-weight-modal-subtitle {
    font-size: 0.6875rem;
    line-height: 1.4;
  }
}


/* Login hero title: keep "Electronic Learning" on one clear line. */
#page-login .login-hero-title {
  display: block;
  width: max-content;
  max-width: 100%;
  white-space: nowrap;
  font-size: clamp(3rem, 4.2vw, 3.75rem);
  letter-spacing: -0.035em;
}

#page-login .login-hero-title span {
  display: inline;
  width: auto;
  max-width: none;
  white-space: inherit;
}

@media (min-width: 981px) and (max-width: 1280px) {
  #page-login .login-hero-title {
    font-size: clamp(2.45rem, 4.05vw, 3.25rem);
  }
}


/* Login hero title: force the requested two-line composition. */
#page-login .login-hero-title {
  display: block;
}

#page-login .login-hero-title > span {
  display: inline-block;
  width: auto;
  max-width: 100%;
  white-space: nowrap;
}

#page-login .login-hero-title > br {
  display: block;
  content: "";
}

/* Mapping: Informasi Umum dan KOP Surat */
.mapping-information-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
}
.mapping-information-grid .mapping-field-full {
  grid-column: 1 / -1;
}
.mapping-field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0.5rem;
}
.mapping-field > span {
  color: #64748b;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.mapping-field input,
.mapping-field textarea,
.mapping-field select {
  width: 100%;
  min-width: 0;
  border: 1px solid #cbd5e1;
  border-radius: 0.75rem;
  background: #fff;
  padding: 0.78rem 0.9rem;
  color: #334155;
  font-size: 0.875rem;
  line-height: 1.35;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.mapping-field textarea { resize: vertical; }
.mapping-field input:focus,
.mapping-field textarea:focus,
.mapping-field select:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.13);
}
.mapping-logo-card {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 1rem;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  background: #f8fafc;
  padding: 1rem;
}
.mapping-logo-preview {
  display: grid;
  width: 78px;
  height: 78px;
  flex: 0 0 78px;
  place-items: center;
  overflow: hidden;
  border: 1px solid #dbeafe;
  border-radius: 0.9rem;
  background: #fff;
}
.mapping-logo-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 0.35rem;
}
.mapping-file-button,
.mapping-reset-logo-button {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  border-radius: 0.65rem;
  padding: 0.5rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 800;
  cursor: pointer;
}
.mapping-file-button {
  background: #2563eb;
  color: #fff;
}
.mapping-file-button input { display: none; }
.mapping-reset-logo-button {
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #475569;
}
.mapping-reset-logo-button[hidden] {
  display: none !important;
}
.mapping-reset-logo-button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.mapping-reset-logo-button:not(:disabled):hover {
  border-color: #fca5a5;
  background: #fff1f2;
  color: #dc2626;
}
.mapping-kop-preview {
  position: relative;
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr) 82px;
  align-items: center;
  gap: 0.85rem;
  min-height: 166px;
  overflow: hidden;
  border: 1px solid #cbd5e1;
  border-radius: 1rem;
  background: #fff;
  padding: 1rem 1.2rem 1.2rem;
  color: #111827;
}
.mapping-kop-preview::after {
  content: '';
  position: absolute;
  right: 1rem;
  bottom: 0.7rem;
  left: 1rem;
  border-bottom: 3px double #111827;
}
.mapping-kop-preview-logo {
  display: block;
  width: 76px;
  height: 76px;
  object-fit: contain;
}
.mapping-kop-preview-text {
  min-width: 0;
  text-align: center;
}
.mapping-kop-line,
.mapping-kop-address {
  max-width: 100%;
  overflow-wrap: anywhere;
}
.mapping-kop-government {
  font-size: clamp(0.9rem, 1.8vw, 1.2rem);
  font-weight: 900;
  line-height: 1.2;
}
.mapping-kop-department {
  margin-top: 0.12rem;
  font-size: clamp(0.85rem, 1.7vw, 1.12rem);
  font-weight: 900;
  line-height: 1.2;
}
.mapping-kop-school {
  margin-top: 0.12rem;
  font-size: clamp(0.82rem, 1.55vw, 1.05rem);
  font-weight: 900;
  line-height: 1.2;
}
.mapping-kop-address {
  margin-top: 0.3rem;
  font-size: clamp(0.68rem, 1.15vw, 0.82rem);
  line-height: 1.35;
}
.mapping-kop-detail {
  margin-top: 0.12rem;
  max-width: 100%;
  overflow-wrap: anywhere;
  font-size: clamp(0.62rem, 1vw, 0.76rem);
  line-height: 1.3;
}
@media (max-width: 640px) {
  .mapping-information-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
  }
  .mapping-field { gap: 0.38rem; }
  .mapping-field > span {
    font-size: 0.66rem;
    line-height: 1.25;
    letter-spacing: 0.025em;
  }
  .mapping-field input,
  .mapping-field textarea,
  .mapping-field select {
    min-height: 42px;
    padding: 0.68rem 0.72rem;
    font-size: 0.78rem;
  }
  .mapping-field textarea { min-height: 78px; }
  .mapping-logo-card { align-items: flex-start; gap: 0.75rem; padding: 0.85rem; }
  .mapping-logo-preview { width: 64px; height: 64px; flex-basis: 64px; }
  .mapping-kop-preview {
    grid-template-columns: 52px minmax(0, 1fr) 52px;
    gap: 0.45rem;
    min-height: 148px;
    padding: 0.8rem 0.65rem 1.05rem;
  }
  .mapping-kop-preview-logo { width: 50px; height: 50px; }
  .mapping-kop-government { font-size: 0.75rem; }
  .mapping-kop-department { font-size: 0.72rem; }
  .mapping-kop-school { font-size: 0.7rem; }
  .mapping-kop-address { font-size: 0.58rem; }
  .mapping-kop-detail { font-size: 0.53rem; line-height: 1.25; }
}


/* Absensi: View dan Buat Absensi tetap sejajar pada tablet/mobile kecil. */
.attendance-page .attendance-header-actions > button {
  min-width: 0;
}

/* Jurnal Kelas: layout konsisten pada desktop, tablet, dan mobile. */
.teaching-journal-page .journal-entry-form .journal-top-fields,
.teaching-journal-page .journal-entry-form .journal-media-fields {
  display: grid;
  align-items: start;
  gap: 1rem;
}
.teaching-journal-page .journal-entry-form .journal-top-fields {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.teaching-journal-page .journal-entry-form .journal-media-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.teaching-journal-page .journal-entry-form .journal-field,
.teaching-journal-page .journal-entry-form select,
.teaching-journal-page .journal-entry-form textarea,
.teaching-journal-page .journal-entry-form input[type="file"] {
  max-width: 100%;
  min-width: 0;
}
.teaching-journal-page .journal-entry-form .journal-media-fields textarea {
  min-height: 116px;
}
@media (max-width: 767px) {
  .attendance-page .attendance-header-actions {
    width: 100%;
    gap: 0.5rem;
  }
  .attendance-page .attendance-header-actions > button {
    flex: 1 1 0%;
    width: 0;
    padding-left: 0.65rem !important;
    padding-right: 0.65rem !important;
  }
  .teaching-journal-page .journal-form-card {
    padding: 1rem !important;
  }
  .teaching-journal-page .journal-entry-form .journal-top-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
  }
  .teaching-journal-page .journal-entry-form .journal-attendance-field {
    grid-column: 1 / -1;
  }
  .teaching-journal-page .journal-entry-form .journal-media-fields {
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
  }
  .teaching-journal-page .journal-entry-form label {
    font-size: 0.68rem;
    line-height: 1.2;
  }
  .teaching-journal-page .journal-entry-form select,
  .teaching-journal-page .journal-entry-form textarea,
  .teaching-journal-page .journal-entry-form input[type="file"] {
    font-size: 0.8125rem;
  }
}


/* Modul Belajar: tampilan tablet mengikuti pola mobile. */
@media (min-width: 768px) and (max-width: 1023px) {
  .content-page .content-toolbar > div:first-child {
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  .content-page .content-toolbar > div:first-child > button {
    width: 100% !important;
  }

  .content-page .content-filter-card {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.75rem !important;
  }

  .content-page .content-search-wrap {
    max-width: none !important;
    width: 100% !important;
  }

  .content-page .content-form-pair-grid {
    gap: 0.75rem !important;
  }

  .content-page .content-form-pair-grid label {
    font-size: 0.625rem !important;
    line-height: 1rem !important;
  }

  .content-page .content-form-pair-grid input:not([type="checkbox"]):not([type="radio"]),
  .content-page .content-form-pair-grid select,
  .content-page .content-form-pair-grid textarea {
    font-size: 0.75rem !important;
  }

  .content-page .content-form-pair-grid input[type="file"] {
    overflow: hidden !important;
    padding-left: 0.625rem !important;
    padding-right: 0.625rem !important;
  }

  .content-page .content-pagination-card {
    flex-direction: column !important;
    align-items: center !important;
  }

  .content-page .content-pagination-card .pagination-summary,
  .content-page .content-pagination-card .pagination-actions {
    width: 100% !important;
  }

  .content-page .content-pagination-card .pagination-summary {
    text-align: center !important;
  }
}

/* TABLET ADMIN: SAMAKAN POLA RESPONSIF DENGAN MOBILE */
@media (min-width: 768px) and (max-width: 1023px) {
  /* Diadopsi dari mobile: @media (max-width: 640px) */
  .dashboard-stat-card.dash-card {
      padding: 1rem !important;
      min-height: 132px;
    }

    .dashboard-stat-card .stat-card-icon {
      width: 38px;
      height: 38px;
      border-radius: 0.75rem;
      font-size: 1rem;
    }

    .dashboard-stat-card h3 {
      font-size: 1.5rem !important;
      line-height: 2rem !important;
    }

    .dashboard-stat-card p {
      font-size: 0.625rem !important;
      line-height: 0.9rem !important;
    }

    .dashboard-stat-card .mt-4 {
      margin-top: 0.75rem !important;
    }

    .dashboard-stat-card .mt-4 span {
      display: inline-flex;
      align-items: center;
      gap: 0.2rem;
      padding: 0.2rem 0.4rem !important;
      font-size: 0.625rem !important;
      line-height: 0.9rem !important;
      white-space: normal;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .question-bank-page .question-bank-toolbar.dash-card,
    .question-bank-page .question-bank-action-card.dash-card:not(.hidden) {
      padding: 1rem !important;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .content-page .content-toolbar.dash-card,
    .content-page .content-action-card.dash-card:not(.hidden) {
      padding: 1rem !important;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .monitor-realtime-page .monitor-stat-card {
      min-height: 104px;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .results-page .results-hero-card {
      padding: 18px 16px;
    }

    .results-page .results-empty-card {
      min-height: 240px;
      padding: 36px 20px;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .assessment-page .assessment-hero-card {
      padding: 18px 16px;
    }

    .assessment-page .assessment-filter-bar {
      padding: 14px;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .kartu-page .kartu-hero-card {
      padding: 18px 16px !important;
    }

    .kartu-page .kartu-filter-card {
      padding: 14px !important;
    }

    .kartu-page .kartu-table {
      min-width: 620px;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .media-page .media-hero-card {
      padding: 18px 16px !important;
    }

    .media-page .media-filter-card {
      padding: 14px !important;
    }

    .media-page .media-table {
      min-width: 760px;
    }

    .media-page .media-header-row {
      flex-direction: column !important;
      align-items: stretch !important;
    }

    .media-page #media-bulk-actions {
      width: 100% !important;
      min-width: 0 !important;
      align-self: stretch !important;
      margin-top: 12px !important;
    }

    .media-page #media-bulk-actions.flex {
      display: flex !important;
      flex-direction: column !important;
    }

    .media-page #media-bulk-actions button {
      width: 100% !important;
      min-width: 0 !important;
    }

    .media-page #media-bulk-actions .media-selected-count {
      font-size: 10px;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .users-page .users-hero-card {
      padding: 18px 16px !important;
    }

    .users-page .users-filter-card {
      padding: 14px !important;
    }

    .users-page .users-table {
      min-width: 860px;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .data-master-page .data-master-hero {
      min-height: auto;
      padding: 20px 18px !important;
    }
    .data-master-page .data-master-summary-head {
      padding: 18px 16px 16px;
    }
    .data-master-page .data-master-summary-grid {
      padding: 16px !important;
    }
    .data-master-page .data-master-main-card > div:nth-child(2) {
      padding: 16px;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .users-page .users-hero-card {
      padding: 18px 16px !important;
      border-radius: 16px !important;
    }
    .users-page .users-action-group button {
      flex: 1 1 100%;
    }
    .users-page .users-filter-card {
      padding: 12px !important;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .users-page .users-filter-row {
      grid-template-columns: 1fr !important;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .kartu-page .kartu-header-row {
      flex-direction: row !important;
    }

    .kartu-page #btn-kartu-massal {
      min-width: 128px;
      padding-left: 0.75rem;
      padding-right: 0.75rem;
      font-size: 0.75rem;
    }

    .kartu-page #btn-kartu-massal .kartu-massal-count {
      font-size: 10px;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .media-page .media-header-row {
      flex-direction: column !important;
      align-items: stretch !important;
    }

    .media-page #media-bulk-actions.flex {
      display: flex !important;
      flex-direction: column !important;
      width: 100% !important;
      margin-top: 12px !important;
      align-self: stretch !important;
    }

    .media-page #media-bulk-actions button {
      width: 100% !important;
      min-width: 0 !important;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .media-page #media-bulk-actions.flex {
      display: flex !important;
      flex-direction: row !important;
      width: 100% !important;
      margin-top: 12px !important;
      align-self: stretch !important;
      gap: 8px !important;
    }
    .media-page #media-bulk-actions button {
      flex: 1 1 0 !important;
      width: auto !important;
      min-width: 0 !important;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .kartu-page .kartu-header-row {
      flex-direction: column !important;
      align-items: stretch !important;
    }
    .kartu-page .kartu-header-row > div:first-child {
      width: 100% !important;
    }
    .kartu-page #btn-kartu-massal {
      width: 100% !important;
      align-self: stretch !important;
      justify-content: center !important;
    }
    .assessment-page .assessment-hero-card > div:first-child > div:first-child {
      flex-direction: column !important;
      align-items: stretch !important;
    }
    .assessment-page .assessment-hero-card button[aria-label="Buat CBT"] {
      width: 100% !important;
      justify-content: center !important;
    }
    .results-page .results-hero-card > div:first-child {
      align-items: stretch !important;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  #data-reset-options-grid { gap: 0.5rem !important; }
    #data-reset-options-grid .data-reset-option-card {
      min-height: 104px;
      gap: 0.5rem;
      padding: 0.72rem 0.6rem;
    }
    #data-reset-options-grid .data-reset-option-title {
      gap: 0.35rem;
      font-size: 0.76rem;
      line-height: 1.05rem;
    }
    #data-reset-options-grid .data-reset-option-detail {
      margin-top: 0.25rem;
      font-size: 0.65rem;
      line-height: 0.92rem;
    }
    #data-reset-options-grid .data-reset-option-subitems {
      gap: 0.18rem 0.32rem;
      margin-top: 0.28rem;
      font-size: 0.59rem;
      line-height: 0.82rem;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .dashboard-refresh-wrap .adaptive-quota-indicator {
      max-width: none;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .monitor-realtime-page .monitor-quota-card {
      min-width: 0;
    }
    .monitor-realtime-page .monitor-quota-mode,
    .monitor-realtime-page .monitor-quota-detail {
      max-width: 100%;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .content-page .content-filter-card {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .content-page .content-pagination-card {
      padding: 14px !important;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .content-page .content-toolbar button[aria-label="Buat Modul"] {
      width: 100% !important;
      align-self: stretch !important;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .attendance-page.assessment-page .attendance-toolbar {
      padding: 18px 16px !important;
    }

    .attendance-page.assessment-page .attendance-filter-bar {
      padding: 14px !important;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .teaching-journal-page .journal-toolbar,
    .teaching-journal-page .journal-form-card {
      padding: 1rem !important;
    }

    .teaching-journal-page .journal-table-card table {
      min-width: 860px;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .grade-input-page .grade-toolbar,
    .grade-input-page .grade-form-card {
      padding: 1rem !important;
    }

    .grade-input-page .grade-table-card table {
      min-width: 860px;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .grade-input-page.assessment-page .grade-toolbar {
      padding: 18px 16px !important;
    }

    .grade-input-page.assessment-page .grade-input-filter-card {
      padding: 14px !important;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .teaching-journal-page.assessment-page .journal-toolbar {
      padding: 18px 16px !important;
    }

    .teaching-journal-page.assessment-page .teaching-journal-filter-card {
      padding: 14px !important;
    }

  /* Diadopsi dari mobile: @media (max-width: 640px) */
  .academic-report-page .academic-report-data-filter.dash-card {
      padding: 10px 12px !important;
    }

    .academic-report-data-toolbar {
      grid-template-columns: minmax(145px, max-content) minmax(0, 1fr);
      gap: 8px;
    }

    .academic-report-data-show {
      gap: 6px;
      font-size: 0.75rem;
    }

    .academic-report-data-show select {
      width: 62px;
      min-width: 62px;
      height: 38px;
      padding-left: 0.5rem;
      padding-right: 0.5rem;
    }

    .academic-report-data-search {
      max-width: none;
      justify-self: stretch;
    }

    .academic-report-data-search input {
      height: 38px;
      padding-left: 2rem !important;
      padding-right: 0.625rem !important;
      font-size: 0.75rem;
    }

    .academic-report-data-search i {
      left: 0.625rem;
      font-size: 0.75rem;
    }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .cloud-storage-page .cloud-storage-header-actions { width: 100%; }
    .cloud-storage-page #cloud-storage-bulk-actions.flex { width: 100%; display: flex; flex-direction: row; }
    .cloud-storage-page #cloud-storage-bulk-actions button { flex: 1 1 0; min-width: 0; }
    .cloud-storage-page .cloud-storage-header-actions > button { width: 100%; }

  /* Diadopsi dari mobile: @media (max-width: 640px) */
  .cloud-storage-page .cloud-storage-action-btn {
      width: 32px;
      min-width: 32px;
      height: 32px;
      min-height: 32px;
      padding: 0;
      font-size: 0.72rem;
    }

    .swal2-popup.cloud-storage-preview-swal {
      width: calc(100vw - 16px) !important;
      max-height: calc(100vh - 16px);
      border-radius: 14px !important;
    }

    .cloud-storage-preview-dialog {
      max-height: calc(100vh - 84px);
    }

    .cloud-storage-preview-header {
      padding: 16px 48px 14px 14px;
    }

    .cloud-storage-preview-title-wrap {
      gap: 10px;
    }

    .cloud-storage-preview-title-icon {
      flex-basis: 36px;
      width: 36px;
      height: 36px;
      border-radius: 10px;
    }

    .cloud-storage-preview-title-wrap h2 {
      font-size: 0.94rem;
    }

    .cloud-storage-preview-meta {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      gap: 7px 10px;
      font-size: 0.64rem;
    }

    .cloud-storage-preview-body {
      min-height: 190px;
      padding: 9px;
    }

    .cloud-storage-media-preview,
    .cloud-storage-video-preview {
      min-height: 220px;
      padding: 6px;
    }

    .cloud-storage-audio-preview {
      min-height: 230px;
      padding: 32px 14px;
    }

    .cloud-storage-preview-file-icon {
      width: 70px;
      height: 70px;
      border-radius: 20px;
      font-size: 2rem;
    }

    .cloud-storage-document-preview {
      min-height: 340px;
      padding: 28px 20px;
    }

    .cloud-storage-slide-preview {
      min-height: 220px;
      padding: 38px 22px 24px;
    }

    .cloud-storage-sheet-scroll {
      max-height: 58vh;
    }

    .swal2-popup.cloud-storage-preview-swal .cloud-storage-preview-actions {
      padding: 10px 12px 12px;
    }

    .swal2-popup.cloud-storage-preview-swal .cloud-storage-preview-confirm {
      width: 100%;
    }

  /* Diadopsi dari mobile: @media (max-width:640px) */
  .smtp-settings-page .smtp-settings-card{padding:18px 16px!important}.smtp-settings-header{margin-bottom:16px}.smtp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}.smtp-grid-rate{grid-template-columns:repeat(2,minmax(160px,1fr));gap:14px}.smtp-grid label{gap:6px}.smtp-grid label>span{min-height:2.65em;font-size:.66rem;line-height:1.3}.smtp-grid input,.smtp-grid select{height:42px;padding:0 9px;font-size:.78rem}.smtp-toggle-card{align-items:flex-start;padding:14px}.smtp-fields-panel{padding:14px}.smtp-form-footer{align-items:stretch;flex-direction:column}.smtp-action-buttons{width:100%}.smtp-save-btn{width:100%;padding:0 10px}

  /* Diadopsi dari mobile: @media (max-width:640px) */
  .mfa-settings-page .mfa-settings-card{padding:18px 16px!important}.mfa-settings-header{margin-bottom:16px}.mfa-toggle-card{align-items:flex-start;padding:14px}.mfa-toggle-title{gap:10px}.mfa-feature-icon{width:36px;height:36px}.mfa-fields-panel{padding:14px}.mfa-form-footer{align-items:stretch;flex-direction:column}.mfa-save-btn{width:100%}

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .content-page .content-form-pair-grid,
    #assessmentModal .assessment-form-pair-grid {
      gap: 0.75rem;
    }

    .content-page .content-form-pair-grid label,
    #assessmentModal .assessment-form-pair-grid label {
      font-size: 0.625rem;
      line-height: 1rem;
    }

    .content-page .content-form-pair-grid input:not([type="checkbox"]):not([type="radio"]),
    .content-page .content-form-pair-grid select,
    .content-page .content-form-pair-grid textarea,
    #assessmentModal .assessment-form-pair-grid input:not([type="checkbox"]):not([type="radio"]),
    #assessmentModal .assessment-form-pair-grid select,
    #assessmentModal .assessment-form-pair-grid textarea {
      font-size: 0.75rem;
    }

    .content-page .content-form-pair-grid input[type="file"] {
      overflow: hidden;
      padding-left: 0.625rem !important;
      padding-right: 0.625rem !important;
    }

    #assessmentModal {
      padding-left: 0.75rem !important;
      padding-right: 0.75rem !important;
    }

    #assessmentModal > .relative {
      max-width: 100% !important;
    }

  /* Diadopsi dari mobile: @media (max-width: 640px) */
  .mapping-information-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.8rem;
    }
    .mapping-field { gap: 0.38rem; }
    .mapping-field > span {
      font-size: 0.66rem;
      line-height: 1.25;
      letter-spacing: 0.025em;
    }
    .mapping-field input,
    .mapping-field textarea,
    .mapping-field select {
      min-height: 42px;
      padding: 0.68rem 0.72rem;
      font-size: 0.78rem;
    }
    .mapping-field textarea { min-height: 78px; }
    .mapping-logo-card { align-items: flex-start; gap: 0.75rem; padding: 0.85rem; }
    .mapping-logo-preview { width: 64px; height: 64px; flex-basis: 64px; }
    .mapping-kop-preview {
      grid-template-columns: 52px minmax(0, 1fr) 52px;
      gap: 0.45rem;
      min-height: 148px;
      padding: 0.8rem 0.65rem 1.05rem;
    }
    .mapping-kop-preview-logo { width: 50px; height: 50px; }
    .mapping-kop-government { font-size: 0.75rem; }
    .mapping-kop-department { font-size: 0.72rem; }
    .mapping-kop-school { font-size: 0.7rem; }
    .mapping-kop-address { font-size: 0.58rem; }
    .mapping-kop-detail { font-size: 0.53rem; line-height: 1.25; }

  /* Diadopsi dari mobile: @media (max-width: 767px) */
  .attendance-page .attendance-header-actions {
      width: 100%;
      gap: 0.5rem;
    }
    .attendance-page .attendance-header-actions > button {
      flex: 1 1 0%;
      width: 0;
      padding-left: 0.65rem !important;
      padding-right: 0.65rem !important;
    }
    .teaching-journal-page .journal-form-card {
      padding: 1rem !important;
    }
    .teaching-journal-page .journal-entry-form .journal-top-fields {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.7rem;
    }
    .teaching-journal-page .journal-entry-form .journal-attendance-field {
      grid-column: 1 / -1;
    }
    .teaching-journal-page .journal-entry-form .journal-media-fields {
      grid-template-columns: minmax(0, 1fr);
      gap: 1rem;
    }
    .teaching-journal-page .journal-entry-form label {
      font-size: 0.68rem;
      line-height: 1.2;
    }
    .teaching-journal-page .journal-entry-form select,
    .teaching-journal-page .journal-entry-form textarea,
    .teaching-journal-page .journal-entry-form input[type="file"] {
      font-size: 0.8125rem;
    }

  /* Dashboard: tablet mengikuti susunan mobile. */
  .dashboard-page .dashboard-hero-card.dash-card {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .dashboard-page .dashboard-hero-card .dashboard-refresh-wrap {
    width: 100% !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
  }
  .dashboard-page .dashboard-hero-card .dashboard-refresh-wrap > button {
    width: 100% !important;
  }

  /* Monitoring: header tablet kembali seperti mobile. */
  .monitor-realtime-page .monitor-hero-card {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
  .monitor-realtime-page .monitor-hero-card > div:last-child {
    width: 100% !important;
    margin-left: 0 !important;
    align-items: center !important;
  }
  .monitor-realtime-page .monitor-hero-card #monitor-last-update {
    text-align: center !important;
  }

  /* Pagination semua modul: tablet mengikuti kartu pagination mobile. */
  .responsive-pagination-card {
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .responsive-pagination-card .pagination-summary {
    width: 100% !important;
    text-align: center !important;
  }
  .responsive-pagination-card .pagination-actions {
    width: 100% !important;
    max-width: 260px !important;
    margin: 0 auto !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .responsive-pagination-card .pagination-btn {
    width: 100% !important;
    min-width: 0 !important;
  }
  .users-page [id*="pagination-info"],
  .users-page [id*="PaginationInfo"],
  .media-page #media-pagination-info,
  .kartu-page #kartu-pagination-info {
    width: 100% !important;
    text-align: center !important;
  }

  /* Manajemen Akun: tombol dan filter tablet mengikuti mobile. */
  .users-page .users-action-group {
    width: 100% !important;
    flex-direction: column !important;
  }
  .users-page .users-action-group button {
    width: 100% !important;
    flex: 1 1 100% !important;
  }
  .users-page .users-filter-row {
    grid-template-columns: 1fr !important;
  }

  /* Cloud Storage: aksi header tablet mengikuti mobile. */
  .cloud-storage-page .cloud-storage-header-actions {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.5rem !important;
  }
  .cloud-storage-page .cloud-storage-header-actions > button {
    width: 100% !important;
    min-width: 0 !important;
  }

  /* Reset Data: header tablet mengikuti susunan mobile. */
  .reset-page > .dash-card:first-child > div > .flex,
  .reset-page #master-reset-data-section > div:first-child,
  .reset-page #master-reset-data-section .mb-3.flex {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .reset-page #reset-password-status-badge,
  .reset-page #data-reset-selected-count {
    align-self: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Header umum halaman: tombol aksi tablet selebar mobile. */
  .assessment-page .assessment-hero-card > div:first-child > div:first-child,
  .results-page .results-hero-card > div:first-child,
  .kartu-page .kartu-header-row,
  .media-page .media-header-row,
  .attendance-page .attendance-toolbar > div:first-child,
  .teaching-journal-page .journal-toolbar > div:first-child,
  .grade-input-page .grade-toolbar > div:first-child {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  /* Form pengaturan: footer tombol tablet sama dengan mobile. */
  .smtp-settings-page .smtp-form-footer,
  .mfa-settings-page .mfa-form-footer {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .smtp-settings-page .smtp-action-buttons,
  .smtp-settings-page .smtp-save-btn,
  .mfa-settings-page .mfa-save-btn {
    width: 100% !important;
  }
}

/* Absensi: tampilan tablet mengikuti pola mobile/Modul Belajar. */
@media (min-width: 768px) and (max-width: 1023px) {
  .attendance-page.assessment-page .attendance-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.75rem !important;
    align-items: stretch !important;
  }

  .attendance-page.assessment-page .attendance-show-control,
  .attendance-page.assessment-page .attendance-subject-filter,
  .attendance-page.assessment-page .attendance-class-filter,
  .attendance-page.assessment-page .attendance-search-wrap {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .attendance-page.assessment-page .attendance-search-wrap input {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .attendance-page.assessment-page .attendance-show-control {
    overflow: hidden !important;
  }
}

/* Tablet: susunan filter dan aksi mengikuti pola mobile yang presisi. */
@media (min-width: 768px) and (max-width: 1023px) {
  /* Jurnal Kelas:
     Show | Semua Mata Pelajaran
     Semua Kelas | Pencarian */
  .teaching-journal-page.assessment-page .teaching-journal-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.75rem !important;
    align-items: stretch !important;
  }

  .teaching-journal-page.assessment-page .teaching-journal-show-control,
  .teaching-journal-page.assessment-page .teaching-journal-subject-filter,
  .teaching-journal-page.assessment-page .teaching-journal-class-filter,
  .teaching-journal-page.assessment-page .teaching-journal-search-wrap {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .teaching-journal-page.assessment-page .teaching-journal-search-wrap input {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* CBT:
     Show | Semua Kategori
     Semua Status | Pencarian */
  .assessment-page:not(.attendance-page):not(.teaching-journal-page) .assessment-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.75rem !important;
    align-items: stretch !important;
  }

  .assessment-page:not(.attendance-page):not(.teaching-journal-page) .assessment-show-control,
  .assessment-page:not(.attendance-page):not(.teaching-journal-page) .assessment-type-filter,
  .assessment-page:not(.attendance-page):not(.teaching-journal-page) .assessment-status-filter,
  .assessment-page:not(.attendance-page):not(.teaching-journal-page) .assessment-search-wrap {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .assessment-page:not(.attendance-page):not(.teaching-journal-page) .assessment-search-wrap input {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* Cloud Storage:
     tombol Upload selebar kartu
     Show | Pengaturan
     Pencarian */
  .cloud-storage-page .cloud-storage-header-actions > button:only-child,
  .cloud-storage-page .cloud-storage-header-actions > button:last-child {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .cloud-storage-page .media-filter-card > div {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.75rem !important;
  }

  .cloud-storage-page .media-filter-card > div > div:first-child {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: 0.5rem !important;
  }

  .cloud-storage-page .media-filter-card > div > div:first-child > * {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .cloud-storage-page .media-filter-card > div > div:last-child {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .cloud-storage-page .media-filter-card input {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* File Media:
     Show | Pengaturan | Pengaturan Peserta
     Pencarian */
  .media-page:not(.cloud-storage-page) .media-filter-card > div {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.75rem !important;
  }

  .media-page:not(.cloud-storage-page) .media-filter-card > div > div:first-child {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: 0.5rem !important;
  }

  .media-page:not(.cloud-storage-page) .media-filter-card > div > div:first-child > * {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .media-page:not(.cloud-storage-page) .media-filter-card > div > div:last-child {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .media-page:not(.cloud-storage-page) .media-filter-card input {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* Manajemen Akun:
     Import Excel | Tambah Pengguna
     Data Pengguna | Data Tutor | Data Peserta */
  .users-page .users-hero-card > .flex:first-child {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .users-page .users-action-group {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    gap: 0.5rem !important;
  }

  .users-page .users-action-group button {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: none !important;
  }

  .users-page .users-tab-switch {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    width: 100% !important;
    gap: 0.5rem !important;
  }

  .users-page .users-tab-switch > button {
    width: 100% !important;
    min-width: 0 !important;
  }

  /* Kartu Peserta:
     Show | Semua Kelas
     Pencarian */
  .kartu-page .kartu-filter-card > div {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.75rem !important;
  }

  .kartu-page .kartu-filter-card > div > div:first-child {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: 0.5rem !important;
  }

  .kartu-page .kartu-filter-card > div > div:first-child > * {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .kartu-page .kartu-filter-card > div > div:last-child {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .kartu-page .kartu-filter-card input {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
}


/* Tablet/mobile: kontrol akademik presisi dan memiliki jarak yang konsisten. */
@media (max-width: 1023px) {
  /* Bank Soal: Mata Pelajaran | Nama CBT. */
  .question-bank-page .question-bank-scope-grid,
  .results-page .results-scope-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: start !important;
    gap: 0.75rem !important;
    width: 100% !important;
  }

  .question-bank-page .question-bank-scope-grid > div,
  .results-page .results-scope-grid > div,
  .question-bank-page .question-bank-scope-grid .relative,
  .results-page .results-scope-grid .relative {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .question-bank-page .question-bank-scope-grid select,
  .results-page .results-scope-grid select {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .question-bank-page .question-bank-scope-grid label,
  .results-page .results-scope-grid label {
    min-height: 1rem !important;
    margin-bottom: 0.45rem !important;
    line-height: 1.2 !important;
  }

  .question-bank-page .question-bank-scope-grid p,
  .results-page .results-scope-grid p {
    margin-top: 0.45rem !important;
    line-height: 1.35 !important;
  }

  /* Gradebook:
     Show | Pilih Mata Pelajaran
     Pilih Kelas | Pilih Semua
     Pencarian */
  .grade-input-page .gradebook-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    column-gap: 0.75rem !important;
    row-gap: 0.75rem !important;
  }

  .grade-input-page .gradebook-filter-grid > *,
  .grade-input-page .gradebook-show-control,
  .grade-input-page .gradebook-filter-field,
  .grade-input-page .gradebook-search-control {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }

  .grade-input-page .gradebook-search-control {
    grid-column: 1 / -1 !important;
  }

  .grade-input-page .gradebook-show-control {
    overflow: hidden !important;
  }

  /* Laporan Nilai:
     Pilih Mata Pelajaran | Pilih Kelas | Kategori Nilai. */
  .academic-report-page .academic-report-score-filter-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: end !important;
    gap: 0.75rem !important;
    width: 100% !important;
  }

  .academic-report-page .academic-report-score-filter-grid > *,
  .academic-report-page .academic-report-score-filter-grid .academic-report-filter-control,
  .academic-report-page .academic-report-score-filter-grid .academic-report-filter-field {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 520px) {
  .question-bank-page .question-bank-scope-grid,
  .results-page .results-scope-grid,
  .grade-input-page .gradebook-filter-grid {
    gap: 0.55rem !important;
  }

  .question-bank-page .question-bank-scope-grid select,
  .results-page .results-scope-grid select,
  .grade-input-page .gradebook-filter-field {
    font-size: 0.75rem !important;
  }

  .question-bank-page .question-bank-scope-grid label,
  .results-page .results-scope-grid label {
    font-size: 0.65rem !important;
  }

  .question-bank-page .question-bank-scope-grid p,
  .results-page .results-scope-grid p {
    font-size: 0.65rem !important;
  }

  .academic-report-page .academic-report-score-filter-grid {
    gap: 0.5rem !important;
  }
}

/* Portal Peserta: Rekap Nilai menjaga waktu submit dan status tetap satu baris. */
.peserta-result-table-scroll {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
}

.peserta-result-table {
  width: 100%;
  min-width: 1000px;
  table-layout: fixed;
}

.peserta-result-table .peserta-result-col-number { width: 7%; }
.peserta-result-table .peserta-result-col-category { width: 31%; }
.peserta-result-table .peserta-result-col-submit { width: 20%; }
.peserta-result-table .peserta-result-col-status { width: 20%; }
.peserta-result-table .peserta-result-col-score { width: 11%; }
.peserta-result-table .peserta-result-col-action { width: 11%; }

.peserta-result-table th,
.peserta-result-table td {
  padding-left: 1rem;
  padding-right: 1rem;
}

.peserta-result-nowrap,
.peserta-result-submit-time,
.peserta-result-status-badge {
  white-space: nowrap;
}

.peserta-result-submit-time {
  display: inline-block;
  font-size: 0.75rem;
  line-height: 1rem;
}

.peserta-result-status-badge {
  max-width: none;
}

@media (max-width: 767px) {
  .peserta-result-table {
    min-width: 980px;
  }
}

/* Portal Peserta: tabel Riwayat Modul mengikuti jarak tabel Rekap Nilai. */
.peserta-module-history-scroll {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
}

.peserta-module-history-table {
  width: 100%;
  min-width: 850px;
  table-layout: fixed;
}

.peserta-module-history-table .peserta-module-history-col-number {
  width: 8%;
}

.peserta-module-history-table .peserta-module-history-col-name {
  width: 38%;
}

.peserta-module-history-table .peserta-module-history-col-subject {
  width: 36%;
}

.peserta-module-history-table .peserta-module-history-col-status {
  width: 18%;
}

.peserta-module-history-table th,
.peserta-module-history-table td {
  padding-left: 1rem;
  padding-right: 1rem;
}

.peserta-module-history-table .peserta-module-history-text {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}

@media (max-width: 767px) {
  .peserta-module-history-table {
    min-width: 820px;
  }
}

/* Portal Peserta: tabel Riwayat CBT mengikuti pola responsif Riwayat Modul. */
.peserta-cbt-history-scroll {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
}

.peserta-cbt-history-table {
  width: 100%;
  min-width: 1080px;
  table-layout: fixed;
}

.peserta-cbt-history-table .peserta-cbt-history-col-number {
  width: 7%;
}

.peserta-cbt-history-table .peserta-cbt-history-col-name {
  width: 27%;
}

.peserta-cbt-history-table .peserta-cbt-history-col-subject {
  width: 25%;
}

.peserta-cbt-history-table .peserta-cbt-history-col-submit {
  width: 22%;
}

.peserta-cbt-history-table .peserta-cbt-history-col-status {
  width: 19%;
}

.peserta-cbt-history-table th,
.peserta-cbt-history-table td {
  padding-left: 1rem;
  padding-right: 1rem;
}

.peserta-cbt-history-table .peserta-cbt-history-text {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}

@media (max-width: 767px) {
  .peserta-cbt-history-table {
    min-width: 1040px;
  }
}

/* Portal Peserta: kelompok Modul/Materi berdasarkan Mata Pelajaran. */
.peserta-module-subject-group > summary {
  list-style: none;
  user-select: none;
}

.peserta-module-subject-group > summary::-webkit-details-marker {
  display: none;
}

.peserta-module-subject-group .peserta-module-subject-chevron {
  transition: transform 0.2s ease, background-color 0.2s ease;
}

.peserta-module-subject-group[open] .peserta-module-subject-chevron {
  transform: rotate(180deg);
  background-color: #dbeafe;
  color: #2563eb;
}

.peserta-module-subject-group[open] > .peserta-module-subject-summary {
  background: #ffffff;
}

@media (max-width: 1023px) {
  .peserta-module-subject-summary {
    align-items: center;
  }
}


/* File Media: desktop satu baris, tablet/mobile tiga kontrol lalu pencarian. */
@media (max-width: 1023px) {
  .media-page:not(.cloud-storage-page) .media-filter-card > div {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.75rem !important;
  }

  .media-page:not(.cloud-storage-page) .media-filter-card .media-settings-controls {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: 0.5rem !important;
  }

  .media-page:not(.cloud-storage-page) .media-filter-card .media-settings-controls > * {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .media-page:not(.cloud-storage-page) .media-filter-card .media-settings-controls button {
    min-height: 42px !important;
    padding-left: 0.45rem !important;
    padding-right: 0.45rem !important;
    white-space: normal !important;
    line-height: 1.15 !important;
  }

  .media-page:not(.cloud-storage-page) .media-filter-card .media-search-control {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }
}

@media (max-width: 480px) {
  .media-page:not(.cloud-storage-page) .media-filter-card .media-settings-controls {
    gap: 0.35rem !important;
  }

  .media-page:not(.cloud-storage-page) .media-filter-card .media-settings-controls > div:first-child {
    gap: 0.25rem !important;
    font-size: 0.68rem !important;
  }

  .media-page:not(.cloud-storage-page) .media-filter-card .media-settings-controls select {
    width: 42px !important;
    padding-left: 0.2rem !important;
    padding-right: 0.2rem !important;
  }

  .media-page:not(.cloud-storage-page) .media-filter-card .media-settings-controls button {
    gap: 0.3rem !important;
    font-size: 0.68rem !important;
  }

  .media-page:not(.cloud-storage-page) .media-filter-card .media-show-data-label {
    display: none !important;
  }
}

/* --- KARTU PESERTA EXPORT | CETAK KARTU --- */
.kartu-page #kartu-bulk-actions {
  flex: 0 0 auto;
  align-self: flex-start;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  grid-auto-flow: column;
}

.kartu-page #kartu-bulk-actions button {
  min-width: 0 !important;
}

@media (max-width: 767px) {
  .kartu-page .kartu-header-row {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .kartu-page #kartu-bulk-actions {
    width: 100% !important;
    align-self: stretch !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-auto-flow: column !important;
    gap: 0.35rem !important;
  }

  .kartu-page #kartu-bulk-actions button {
    width: 100% !important;
    min-width: 0 !important;
    padding-left: 0.35rem !important;
    padding-right: 0.35rem !important;
    font-size: 0.68rem !important;
    gap: 0.25rem !important;
    white-space: nowrap !important;
  }

  .kartu-page #kartu-bulk-actions .kartu-massal-count {
    margin-left: 0.1rem !important;
    padding-left: 0.28rem !important;
    padding-right: 0.28rem !important;
  }
}



/* --- KARTU PESERTA TUTOR: SLOT EXPORT DESKTOP + CENTER TABLET/MOBILE ---
   Desktop mempertahankan tiga slot action milik Admin/Operator:
   [slot Cetak PDF lama] [PDF] [Excel]. Dengan demikian PDF menempati posisi
   Excel sebelumnya dan Excel menempati posisi Cetak Kartu sebelumnya. */
@media (min-width: 1024px) {
  .kartu-page.kartu-tutor-export-page #kartu-bulk-actions.kartu-tutor-export-only {
    width: 370px !important;
    grid-template-columns: 104px 104px 146px !important;
    grid-auto-flow: row !important;
    justify-content: end !important;
  }

  .kartu-page.kartu-tutor-export-page #kartu-bulk-actions.kartu-tutor-export-only #btn-kartu-pdf {
    grid-column: 2 !important;
  }

  .kartu-page.kartu-tutor-export-page #kartu-bulk-actions.kartu-tutor-export-only #btn-kartu-export {
    grid-column: 3 !important;
  }
}

/* Tablet/mobile: hanya dua action, dipusatkan dan tetap berurutan PDF | Excel. */
@media (max-width: 1023px) {
  .kartu-page.kartu-tutor-export-page .kartu-header-row {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .kartu-page.kartu-tutor-export-page #kartu-bulk-actions.kartu-tutor-export-only {
    width: min(100%, 320px) !important;
    align-self: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    justify-content: center !important;
    gap: 0.5rem !important;
  }

  .kartu-page.kartu-tutor-export-page #kartu-bulk-actions.kartu-tutor-export-only #btn-kartu-pdf {
    grid-column: 1 !important;
  }

  .kartu-page.kartu-tutor-export-page #kartu-bulk-actions.kartu-tutor-export-only #btn-kartu-export {
    grid-column: 2 !important;
  }
}

@media (max-width: 480px) {
  .kartu-page.kartu-tutor-export-page #kartu-bulk-actions.kartu-tutor-export-only {
    width: min(100%, 280px) !important;
    gap: 0.35rem !important;
  }
}

/* Manajemen Akun: jumlah kolom tab mengikuti role aktif. */
.users-page .users-tab-switch.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)) !important; }
.users-page .users-tab-switch.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.users-page .users-tab-switch.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.users-page .users-tab-switch.hidden { display: none !important; }
.users-page .users-tab-switch > button.hidden { display: none !important; }


/* Registrasi mandiri Peserta pada halaman login. */
.login-register-wrap { margin: 0.85rem 0 0; text-align: center; }
.login-register-link { width:100%; min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:.55rem; border:1px solid #cbd5e1; border-radius:12px; background:rgba(255,255,255,.78); color:#334155; font-size:.875rem; font-weight:800; transition:.2s ease; }
.login-register-link:hover { color:#2563eb; border-color:#93c5fd; background:#eff6ff; transform:translateY(-1px); }

/* Buat Akun mengikuti pola visual modal Tambah Peserta. */
.self-registration-popup {
  width:min(calc(100% - 24px),32rem)!important;
  max-height:calc(100dvh - 24px)!important;
  padding:0!important;
  border-radius:18px!important;
  overflow:hidden!important;
  background:#fff!important;
  box-shadow:0 24px 70px rgba(15,23,42,.24)!important;
}
.self-registration-html { margin:0!important; padding:0!important; overflow:visible!important; }
.self-registration-dialog { width:100%; text-align:left; }
.self-registration-managed-header {
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 22px;border-bottom:1px solid #dbeafe;background:#eff6ff;
}
.self-registration-managed-title { display:flex;align-items:center;min-width:0;gap:13px; }
.self-registration-managed-icon {
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;
  border-radius:11px;background:#dbeafe;color:#2563eb;font-size:1.05rem;
}
.self-registration-managed-title h3 { margin:0;color:#1e3a8a;font-size:1.12rem;line-height:1.25;font-weight:850; }
.self-registration-managed-title p { margin:3px 0 0;color:#64748b;font-size:.76rem;line-height:1.4;font-weight:550; }
.self-registration-managed-body {
  max-height:calc(100dvh - 205px);overflow-y:auto;padding:22px;background:#fff;
  scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent;
}
.self-registration-managed-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-areas:
    'nis email'
    'name name'
    'class class'
    'password password-confirm';
  gap:16px;
}
.self-registration-field-nis { grid-area:nis; }
.self-registration-field-name { grid-area:name; }
.self-registration-field-email { grid-area:email; }
.self-registration-field-class { grid-area:class; }
.self-registration-field-password { grid-area:password; }
.self-registration-field-password-confirm { grid-area:password-confirm; }
.self-registration-managed-field { min-width:0; }
.self-registration-managed-field-wide { grid-column:1/-1; }
.self-registration-managed-field>label {
  display:block;margin:0 0 6px;color:#64748b;font-size:.7rem;line-height:1.3;font-weight:850;
  letter-spacing:.045em;text-transform:uppercase;
}
.self-registration-managed-field>small { display:block;margin-top:5px;color:#94a3b8;font-size:.66rem;line-height:1.35; }
.self-registration-managed-input-shell {
  display:flex;align-items:center;min-height:44px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;
  transition:border-color .18s,box-shadow .18s,background-color .18s;
}
.self-registration-managed-input-shell:focus-within { border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.13); }
.self-registration-managed-input-shell>i:first-child { flex:0 0 auto;margin-left:12px;color:#94a3b8;font-size:.9rem; }
.self-registration-managed-input-shell .swal2-input,
.self-registration-managed-input-shell .swal2-select {
  width:100%!important;height:42px!important;min-width:0;margin:0!important;border:0!important;border-radius:8px!important;
  background:transparent!important;padding:0 12px!important;color:#334155!important;font-size:.86rem!important;font-weight:550!important;
  box-shadow:none!important;outline:none!important;
}
.self-registration-managed-input-shell .swal2-input::placeholder { color:#a0aec0;opacity:1; }
.self-registration-managed-input-shell>button {
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;
  border:0;background:transparent;color:#94a3b8;cursor:pointer;transition:color .18s,background-color .18s;
}
.self-registration-managed-input-shell>button:hover { color:#2563eb;background:#eff6ff; }
.self-registration-managed-select-shell { position:relative; }
.self-registration-managed-select-shell .swal2-select { appearance:none!important;padding-right:38px!important;cursor:pointer; }
.self-registration-select-arrow { position:absolute;right:13px;margin:0!important;color:#94a3b8!important;font-size:.68rem!important;pointer-events:none; }
.self-registration-managed-body .forgot-password-turnstile-shell { margin-top:17px; }
.self-registration-popup .swal2-validation-message {
  margin:10px 22px 0!important;border:1px solid #fecaca!important;border-radius:10px!important;
  background:#fff4f4!important;color:#dc2626!important;font-size:.82rem!important;line-height:1.4!important;text-align:left!important;
}
.self-registration-popup .swal2-validation-message:before { background:#dc2626!important; }
.self-registration-popup .forgot-password-actions { margin-top:0!important; }
.users-page .users-tab-switch.grid-cols-4 { grid-template-columns:repeat(4,minmax(0,1fr)) !important; }

/* Tablet dan mobile memakai satu kolom agar urutan field konsisten dan tidak tumpang tindih. */
@media (max-width:1024px) {
  .self-registration-managed-grid {
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:'nis' 'name' 'email' 'class' 'password' 'password-confirm';
  }
  .self-registration-managed-field-wide { grid-column:auto; }
  .self-registration-managed-field>label { min-height:0; }
}

@media (max-width:640px) {
  .self-registration-popup { width:calc(100% - 12px)!important;max-height:calc(100dvh - 12px)!important;border-radius:15px!important; }
  .self-registration-managed-header { padding:14px 15px; }
  .self-registration-managed-title { gap:10px; }
  .self-registration-managed-icon { flex-basis:36px;width:36px;height:36px;border-radius:9px;font-size:.9rem; }
  .self-registration-managed-title h3 { font-size:.96rem; }
  .self-registration-managed-title p { font-size:.66rem; }
  .self-registration-managed-body { max-height:calc(100dvh - 184px);padding:15px; }
  .self-registration-managed-grid { grid-template-columns:minmax(0,1fr);gap:12px; }
  .self-registration-managed-field-wide { grid-column:auto; }
  .self-registration-managed-field>label { min-height:0;margin-bottom:5px;font-size:.62rem;letter-spacing:.025em; }
  .self-registration-managed-field>small { font-size:.61rem; }
  .self-registration-managed-input-shell { min-height:42px; }
  .self-registration-managed-input-shell>i:first-child { margin-left:9px;font-size:.78rem; }
  .self-registration-managed-input-shell .swal2-input,
  .self-registration-managed-input-shell .swal2-select { height:40px!important;padding:0 8px!important;font-size:.76rem!important; }
  .self-registration-managed-input-shell>button { flex-basis:36px;width:36px;height:40px; }
  .self-registration-managed-select-shell .swal2-select { padding-right:30px!important; }
  .self-registration-select-arrow { right:10px; }
  .self-registration-popup .swal2-validation-message { margin-right:15px!important;margin-left:15px!important;font-size:.75rem!important; }
}
@media (max-width:380px) {
  .self-registration-managed-body { padding:13px 11px; }
  .self-registration-managed-grid { gap:11px 8px; }
  .self-registration-managed-field>label { font-size:.58rem; }
  .self-registration-managed-input-shell>i:first-child { margin-left:7px;font-size:.72rem; }
  .self-registration-managed-input-shell .swal2-input,
  .self-registration-managed-input-shell .swal2-select { padding:0 6px!important;font-size:.7rem!important; }
  .self-registration-managed-input-shell>button { flex-basis:32px;width:32px; }
}
@media (max-width:767px) {
  .users-page .users-tab-switch.grid-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* MFA: empat kontrol utama tetap dua kolom pada desktop, tablet, dan mobile. */
.mfa-toggle-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 900px) {
  .mfa-toggle-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap:10px; }
}
@media (max-width: 640px) {
  .mfa-toggle-list { gap:8px; }
  .mfa-toggle-list .mfa-toggle-card { min-width:0;align-items:center;gap:7px;padding:10px 9px; }
  .mfa-toggle-list .mfa-toggle-copy,
  .mfa-toggle-list .mfa-toggle-title,
  .mfa-toggle-list .mfa-toggle-title>div { min-width:0; }
  .mfa-toggle-list .mfa-toggle-title { flex:1;align-items:center;gap:0; }
  .mfa-toggle-list .mfa-feature-icon { display:none; }
  .mfa-toggle-list .mfa-toggle-card h3 { overflow-wrap:anywhere;font-size:.7rem;line-height:1.25; }
  .mfa-toggle-list .mfa-switch { width:44px;height:25px; }
  .mfa-toggle-list .mfa-switch span:before { width:19px;height:19px; }
  .mfa-toggle-list .mfa-switch input:checked+span:before { transform:translateX(19px); }
}
@media (max-width: 380px) {
  .mfa-toggle-list { gap:7px; }
  .mfa-toggle-list .mfa-toggle-card { gap:5px;padding:9px 7px; }
  .mfa-toggle-list .mfa-toggle-card h3 { font-size:.64rem; }
  .mfa-toggle-list .mfa-switch { width:40px;height:23px; }
  .mfa-toggle-list .mfa-switch span:before { width:17px;height:17px; }
  .mfa-toggle-list .mfa-switch input:checked+span:before { transform:translateX(17px); }
}
@media (max-width: 767px) {
  .users-page .users-tab-switch.grid-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}


/* Detail Registrasi: menjaga panel Reject presisi pada desktop, tablet, dan mobile. */
.self-registration-detail-modal {
  overflow: hidden;
  padding: .5rem;
}
.self-registration-detail-dialog {
  max-height: calc(100dvh - 1rem);
}
.self-registration-detail-scroll {
  min-height: 0;
  flex: 1 1 auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  scroll-padding-bottom: 1rem;
}
@supports not (height: 100dvh) {
  .self-registration-detail-dialog { max-height: calc(100vh - 1rem); }
}
@media (min-width: 640px) {
  .self-registration-detail-modal { padding: 1rem; }
  .self-registration-detail-dialog { max-height: calc(100dvh - 2rem); }
  @supports not (height: 100dvh) {
    .self-registration-detail-dialog { max-height: calc(100vh - 2rem); }
  }
}


/* Modal konfirmasi keputusan Registrasi selalu berada tepat di tengah viewport. */
.self-registration-confirmation-container.swal2-container {
  position: fixed !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  padding: 1rem !important;
  overflow-y: auto !important;
}
.self-registration-confirmation-popup.swal2-popup {
  margin: auto !important;
  max-width: min(32rem, calc(100vw - 2rem)) !important;
}
@media (max-width: 480px) {
  .self-registration-confirmation-container.swal2-container {
    padding: .75rem !important;
  }
  .self-registration-confirmation-popup.swal2-popup {
    max-width: calc(100vw - 1.5rem) !important;
  }
}

/* ==========================================================
   DOC PUBLIK — LOGIN, MODAL PUBLIK, DAN PENGATURAN ADMIN
   ========================================================== */
#page-login .login-public-docs {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: stretch;
  gap: 0;
  margin-top: 14px;
}
#page-login .login-public-doc-link {
  min-width: 0;
  min-height: 54px;
  padding: 7px 8px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #28579f;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  font-size: 0.7rem;
  line-height: 1.2;
  font-weight: 750;
  text-align: center;
  cursor: pointer;
  transition: color .18s ease, background-color .18s ease, transform .18s ease;
}
#page-login .login-public-doc-link i {
  color: #1763e9;
  font-size: 1rem;
}
#page-login .login-public-doc-link:hover,
#page-login .login-public-doc-link:focus-visible {
  color: #17438e;
  background: rgba(219, 234, 254, .65);
  outline: none;
  transform: translateY(-1px);
}
#page-login .login-public-doc-divider {
  align-self: center;
  width: 1px;
  height: 30px;
  background: #cbd5e1;
}
#page-login .login-public-docs + p { margin-top: 12px; }

html.public-doc-modal-open,
body.public-doc-modal-open {
  overflow: hidden !important;
  overscroll-behavior: none !important;
}
body.public-doc-modal-open #app,
body.public-doc-modal-open #page-login,
body.public-doc-modal-open #page-admin {
  overflow: hidden !important;
  overscroll-behavior: none !important;
  touch-action: none;
}

.public-doc-swal.swal2-popup {
  width: min(760px, calc(100vw - 28px)) !important;
  max-height: calc(100dvh - 28px) !important;
  padding: 0 !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  border: 1px solid #dbe3ef !important;
  border-radius: 20px !important;
  background: #fff !important;
  box-shadow: 0 26px 80px rgba(15, 23, 42, .24) !important;
}
.public-doc-swal-icon.swal2-icon {
  flex: 0 0 auto !important;
  width: 54px !important;
  height: 54px !important;
  margin: 24px auto 10px !important;
  border: 1px solid #bfdbfe !important;
  background: #eff6ff !important;
  color: #2563eb !important;
  font-size: 1.2rem !important;
}
.public-doc-swal-title.swal2-title {
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 28px !important;
  color: #172554 !important;
  font-size: 1.35rem !important;
  line-height: 1.3 !important;
  font-weight: 850 !important;
}
.public-doc-swal-html.swal2-html-container {
  margin: 14px 0 0 !important;
  padding: 0 24px !important;
  min-height: 0 !important;
  max-height: none !important;
  flex: 1 1 auto !important;
  overflow-y: auto !important;
  text-align: left !important;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}
.public-doc-dialog-body { display: flex; flex-direction: column; gap: 14px; }
.public-doc-dialog-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
}
.public-doc-kind,
.public-doc-preview-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 28px;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 800;
}
.public-doc-kind { border: 1px solid #bfdbfe; background: #eff6ff; color: #1d4ed8; }
.public-doc-preview-badge { border: 1px solid #bbf7d0; background: #f0fdf4; color: #15803d; }
.public-doc-dialog-summary {
  margin: 0;
  padding: 13px 15px;
  border: 1px solid #dbeafe;
  border-radius: 13px;
  background: #f8fbff;
  color: #475569;
  font-size: .85rem;
  line-height: 1.65;
  text-align: center;
}
.public-doc-dialog-content {
  min-height: 180px;
  padding: 18px;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #fff;
  color: #334155;
  font-size: .88rem;
  line-height: 1.75;
  overflow-wrap: anywhere;
}
.public-doc-rich-content { min-width: 0; word-break: normal; }
.public-doc-rich-content > :first-child { margin-top: 0 !important; }
.public-doc-rich-content > :last-child { margin-bottom: 0 !important; }
.public-doc-rich-content p,
.public-doc-rich-content blockquote,
.public-doc-rich-content ul,
.public-doc-rich-content ol,
.public-doc-rich-content table { margin: 0 0 12px; }
.public-doc-rich-content h1,
.public-doc-rich-content h2,
.public-doc-rich-content h3,
.public-doc-rich-content h4,
.public-doc-rich-content h5,
.public-doc-rich-content h6 {
  margin: 18px 0 9px;
  color: #172554;
  line-height: 1.35;
  font-weight: 850;
}
.public-doc-rich-content h1 { font-size: 1.35rem; }
.public-doc-rich-content h2 { font-size: 1.18rem; }
.public-doc-rich-content h3 { font-size: 1.02rem; }
.public-doc-rich-content h4,
.public-doc-rich-content h5,
.public-doc-rich-content h6 { font-size: .94rem; }
.public-doc-rich-content ul,
.public-doc-rich-content ol { padding-left: 22px; }
.public-doc-rich-content ul { list-style: disc; }
.public-doc-rich-content ol { list-style: decimal; }
.public-doc-rich-content li + li { margin-top: 4px; }
.public-doc-rich-content blockquote {
  padding: 10px 13px;
  border-left: 3px solid #60a5fa;
  background: #eff6ff;
  color: #475569;
}
.public-doc-rich-content table { width: 100%; border-collapse: collapse; overflow-wrap: anywhere; }
.public-doc-rich-content th,
.public-doc-rich-content td { padding: 8px 9px; border: 1px solid #cbd5e1; vertical-align: top; }
.public-doc-rich-content th { background: #f1f5f9; color: #334155; font-weight: 800; }
.public-doc-rich-content a { color: #1d4ed8; text-decoration: underline; text-underline-offset: 2px; }
.public-doc-rich-content hr { margin: 16px 0; border: 0; border-top: 1px solid #cbd5e1; }

.public-doc-faq-list {
  display: grid;
  gap: 10px;
}
.public-doc-faq-item {
  overflow: hidden;
  border: 1px solid #dbe3ef;
  border-radius: 13px;
  background: #fff;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.public-doc-faq-item.open {
  border-color: #93c5fd;
  box-shadow: 0 7px 18px rgba(37, 99, 235, .08);
}
.public-doc-faq-question {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 0;
  background: #fff;
  color: #334155;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  text-align: left;
  font-size: .82rem;
  line-height: 1.5;
  font-weight: 800;
  cursor: pointer;
  transition: color .18s ease, background-color .18s ease;
}
.public-doc-faq-question:hover,
.public-doc-faq-question:focus-visible {
  color: #1d4ed8;
  background: #f8fbff;
  outline: none;
}
.public-doc-faq-question i {
  flex: 0 0 auto;
  color: #64748b;
  font-size: .72rem;
  transition: transform .2s ease, color .18s ease;
}
.public-doc-faq-item.open .public-doc-faq-question {
  color: #1d4ed8;
  background: #eff6ff;
}
.public-doc-faq-item.open .public-doc-faq-question i {
  color: #2563eb;
  transform: rotate(180deg);
}
.public-doc-faq-answer {
  border-top: 1px solid #dbeafe;
  background: #fff;
}
.public-doc-faq-answer[hidden] { display: none !important; }
.public-doc-faq-answer > div {
  padding: 13px 14px 15px;
  color: #475569;
  font-size: .8rem;
  line-height: 1.7;
  overflow-wrap: anywhere;
}
.public-doc-dialog-updated {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: #64748b;
  font-size: .72rem;
  font-weight: 650;
}
.public-doc-swal-actions.swal2-actions {
  flex: 0 0 auto !important;
  width: 100% !important;
  margin: 18px 0 0 !important;
  padding: 15px 24px 20px !important;
  justify-content: flex-end !important;
  border-top: 1px solid #e2e8f0;
  background: #f8fafc;
}
.public-doc-swal-confirm {
  min-height: 42px;
  padding: 0 22px;
  border: 0;
  border-radius: 11px;
  background: #2563eb;
  color: #fff;
  font-size: .82rem;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(37, 99, 235, .22);
}
.public-doc-settings-page { max-width: 100%; min-width: 0; }
.public-doc-settings-card {
  padding: 24px 26px !important;
  overflow: visible !important;
  border-color: #dbe3ef !important;
  border-radius: 18px !important;
  box-shadow: 0 4px 10px rgba(15, 23, 42, .04);
}
.public-doc-settings-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
}
.public-doc-settings-header h2 {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  color: #1e293b;
  font-size: 1.05rem;
  font-weight: 850;
}
.public-doc-settings-header h2 i { color: #2563eb; }
.public-doc-settings-header p { margin: 6px 0 0; color: #64748b; font-size: .875rem; line-height: 1.55; }
.public-doc-admin-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex: 0 0 auto;
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: .7rem;
  font-weight: 850;
}
.public-doc-settings-loading {
  min-height: 190px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px dashed #cbd5e1;
  border-radius: 14px;
  background: #f8fafc;
  color: #64748b;
  font-size: .84rem;
}
.public-doc-settings-loading i { color: #2563eb; }
.public-doc-settings-loading.hidden,
.public-doc-settings-workspace.hidden { display: none !important; }
.public-doc-settings-workspace { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.public-doc-editor-tabs {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding: 10px;
  border: 1px solid #e2e8f0;
  border-radius: 15px;
  background: #f8fafc;
}
.public-doc-editor-tab {
  min-width: 0;
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 9px 12px;
  border: 1px solid #dbe3ef;
  border-radius: 11px;
  background: #fff;
  color: #64748b;
  font-size: .78rem;
  font-weight: 800;
  text-align: center;
  cursor: pointer;
  transition: .18s ease;
}
.public-doc-editor-tab i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  color: #64748b;
  font-size: .86rem;
}
.public-doc-editor-tab:hover { border-color: #bfdbfe; color: #2563eb; background: #f8fbff; }
.public-doc-editor-tab.active { border-color: #2563eb; background: #2563eb; color: #fff; box-shadow: 0 6px 14px rgba(37,99,235,.18); }
.public-doc-editor-tab.active i { color: #fff; }
.public-doc-editor-empty {
  min-height: 280px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 20px;
  border: 1px solid #e2e8f0;
  border-radius: 15px;
  background: #fff;
  color: #94a3b8;
  text-align: center;
}
.public-doc-editor-empty.hidden,
.public-doc-editor-panel.hidden { display: none !important; }
.public-doc-editor-empty-icon {
  width: 64px;
  height: 64px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  border-radius: 18px;
  background: #f1f5f9;
  color: #cbd5e1;
  font-size: 1.45rem;
}
.public-doc-editor-empty h3 { margin: 0; color: #475569; font-size: .95rem; font-weight: 850; }
.public-doc-editor-empty p { max-width: 520px; margin: 6px 0 0; color: #94a3b8; font-size: .78rem; line-height: 1.55; }
.public-doc-editor-panel {
  min-width: 0;
  padding: 20px;
  border: 1px solid #e2e8f0;
  border-radius: 15px;
  background: #fff;
}
.public-doc-editor-heading { display: flex; align-items: center; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid #e2e8f0; }
.public-doc-editor-heading-icon {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 42px;
  border-radius: 11px;
  background: #dbeafe;
  color: #2563eb;
}
.public-doc-editor-heading h3 { margin: 0; color: #1e293b; font-size: 1rem; font-weight: 850; }
.public-doc-editor-heading p { margin: 3px 0 0; color: #64748b; font-size: .75rem; line-height: 1.45; }
.public-doc-editor-fields { display: grid; gap: 14px; margin-top: 17px; }
.public-doc-editor-field { display: grid; gap: 6px; min-width: 0; }
.public-doc-editor-field > span { color: #475569; font-size: .7rem; font-weight: 850; text-transform: uppercase; letter-spacing: .035em; }
.public-doc-editor-field input,
.public-doc-editor-field textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #cbd5e1;
  border-radius: 11px;
  background: #fff;
  color: #334155;
  font-size: .84rem;
  line-height: 1.55;
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.public-doc-editor-field input { height: 43px; padding: 0 12px; }
.public-doc-editor-field textarea { padding: 11px 12px; resize: vertical; }
.public-doc-editor-field input:focus,
.public-doc-editor-field textarea:focus { border-color: #60a5fa; background: #fff; box-shadow: 0 0 0 3px rgba(59,130,246,.12); }
.public-doc-editor-field small { justify-self: end; color: #94a3b8; font-size: .65rem; font-weight: 650; }
.public-doc-editor-rich-field { min-width: 0; }
.public-doc-editor-rich-field .tox.tox-tinymce {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: none !important;
}
.public-doc-editor-rich-field .tox.tox-tinymce:focus-within {
  border-color: #60a5fa !important;
  box-shadow: 0 0 0 3px rgba(59,130,246,.12) !important;
}
.public-doc-editor-rich-field .tox .tox-editor-header { box-shadow: 0 1px 0 #e2e8f0 !important; }
.public-doc-editor-rich-field .tox .tox-toolbar__primary { background: #f8fafc !important; }
.public-doc-editor-rich-field .tox .tox-statusbar { border-top-color: #e2e8f0 !important; }
.public-doc-editor-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
}
.public-doc-editor-updated { display: inline-flex; align-items: center; gap: 7px; color: #64748b; font-size: .7rem; font-weight: 650; }
.public-doc-editor-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; }
.public-doc-preview-btn,
.public-doc-save-btn {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 15px;
  border-radius: 11px;
  font-size: .76rem;
  font-weight: 850;
  cursor: pointer;
  transition: .18s ease;
}
.public-doc-preview-btn { border: 1px solid #cbd5e1; background: #fff; color: #475569; }
.public-doc-preview-btn:hover { border-color: #93c5fd; background: #eff6ff; color: #1d4ed8; }
.public-doc-save-btn { border: 1px solid #2563eb; background: #2563eb; color: #fff; box-shadow: 0 7px 16px rgba(37,99,235,.2); }
.public-doc-save-btn:hover { background: #1d4ed8; }
.public-doc-save-btn:disabled { cursor: not-allowed; opacity: .65; }

@media (max-width: 900px) {
  .public-doc-settings-header { flex-direction: column; align-items: stretch; }
  .public-doc-admin-badge { align-self: center; }
  .public-doc-editor-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  #page-login .login-public-doc-link { min-height: 50px; padding: 6px 4px; font-size: .61rem; }
  #page-login .login-public-doc-link i { font-size: .88rem; }
  #page-login .login-public-doc-divider { height: 26px; }
  .public-doc-swal.swal2-popup { width: calc(100vw - 16px) !important; max-height: calc(100dvh - 16px) !important; border-radius: 16px !important; }
  .public-doc-swal-icon.swal2-icon { margin-top: 18px !important; }
  .public-doc-swal-title.swal2-title { padding: 0 18px !important; font-size: 1.08rem !important; }
  .public-doc-swal-html.swal2-html-container { padding: 0 15px !important; }
  .public-doc-dialog-summary { padding: 11px 12px; font-size: .76rem; }
  .public-doc-dialog-content { min-height: 150px; padding: 14px; font-size: .78rem; line-height: 1.65; }
  .public-doc-faq-question { min-height: 45px; padding: 11px 12px; font-size: .77rem; }
  .public-doc-faq-answer > div { padding: 12px; font-size: .76rem; }
  .public-doc-swal-actions.swal2-actions { padding: 13px 15px 16px !important; }
  .public-doc-settings-card { padding: 18px 16px !important; }
  .public-doc-editor-tabs { gap: 6px; padding: 7px; }
  .public-doc-editor-tab { gap: 5px; min-height: 44px; padding: 7px 5px; font-size: .64rem; }
  .public-doc-editor-tab i { font-size: .74rem; }
  .public-doc-editor-panel { padding: 15px; }
  .public-doc-editor-rich-field .tox.tox-tinymce { min-height: 330px !important; }
  .public-doc-editor-rich-field .tox .tox-toolbar__group { padding: 0 2px !important; }
  .public-doc-editor-footer { align-items: stretch; flex-direction: column; }
  .public-doc-editor-updated { justify-content: center; text-align: center; }
  .public-doc-editor-actions { width: 100%; }
  .public-doc-preview-btn,
  .public-doc-save-btn { flex: 1 1 0; min-width: 0; padding: 0 9px; }
}
@media (max-width: 380px) {
  #page-login .login-public-doc-link { font-size: .56rem; }
  .public-doc-settings-card { padding-left: 12px !important; padding-right: 12px !important; }
  .public-doc-editor-panel { padding: 12px; }
  .public-doc-editor-actions { gap: 7px; }
  .public-doc-preview-btn,
  .public-doc-save-btn { font-size: .68rem; }
}

/* Doc Publik TinyMCE: toolbar lengkap dan responsif tanpa mode fullscreen. */
.public-doc-settings-page.fade-in {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
}
.public-doc-editor-rich-field .tox .tox-toolbar__primary,
.public-doc-editor-rich-field .tox .tox-toolbar-overlord {
  flex-wrap: wrap !important;
}


/* Rekap Nilai: metadata soal selalu horizontal pada desktop, tablet, dan mobile. */
.result-question-meta-scroll {
  width: 100%;
  max-width: 100%;
  margin-bottom: .75rem;
  padding-bottom: .2rem;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  overscroll-behavior-x: contain;
}
.result-question-meta-row {
  display: inline-flex !important;
  min-width: max-content;
  align-items: center !important;
  justify-content: flex-start;
  flex-flow: row nowrap !important;
  gap: .45rem;
  white-space: nowrap;
  vertical-align: top;
}
.result-question-meta-row > * {
  display: inline-flex;
  flex: 0 0 auto !important;
  min-width: 0;
  align-items: center;
  white-space: nowrap;
}
.result-question-number {
  color: #94a3b8;
  font-size: .7rem;
  font-weight: 800;
  line-height: 1.25;
  text-transform: uppercase;
}
.result-question-chip > :first-child {
  margin: 0 !important;
}
@media (max-width: 640px) {
  .result-question-meta-row { gap: .35rem; }
  .result-question-number { font-size: .62rem; }
  .result-question-meta-scroll { margin-bottom: .65rem; }
}

/* Portal Peserta: kolom Aksi dan Session ID tetap sejajar horizontal. */
.peserta-activity-table .peserta-activity-action-cell,
.peserta-activity-table .peserta-activity-session-cell {
  min-width: 170px;
  white-space: nowrap;
  vertical-align: middle;
}

.peserta-activity-table .peserta-activity-session-cell {
  min-width: 210px;
}

.peserta-activity-table .peserta-activity-action-badge,
.peserta-activity-table .peserta-activity-session-id {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  width: max-content;
  max-width: none;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}

/* Portal Peserta - Logs: Session ID tidak terpotong atau turun baris. */
.peserta-violation-log-table .peserta-log-session-cell {
  min-width: 220px;
  white-space: nowrap;
  vertical-align: middle;
}

.peserta-violation-log-table .peserta-log-session-id {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  width: max-content;
  max-width: none;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}

/* Bank Soal: Width dan Height gambar berasal dari Upload File Media,
   namun tetap responsif ketika ukuran tampilan melebihi lebar perangkat. */
.question-text img[src^="/api/media/"],
.prose img[src^="/api/media/"],
#preview-content img[src^="/api/media/"] {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0.75rem 0;
}

/* Portal Peserta: kontrol media dibatasi tanpa fullscreen dan menu tambahan. */
.participant-media-session .participant-restricted-media::-webkit-media-controls-fullscreen-button,
.participant-media-session .participant-restricted-media::-webkit-media-controls-picture-in-picture-button,
.participant-media-session .participant-restricted-media::-webkit-media-controls-overflow-button,
.participant-media-session .participant-restricted-media::-webkit-media-controls-download-button,
.participant-media-session .participant-restricted-media::-internal-media-controls-overflow-button {
  display: none !important;
  width: 0 !important;
  min-width: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.participant-media-session video.participant-restricted-media,
.participant-media-session audio.participant-restricted-media {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

/* Bank Soal dan Modul: media upload hanya memakai kontrol dasar.
   Fullscreen, PiP, menu overflow, download, cast/remote playback,
   dan pengaturan kecepatan disembunyikan atau diblokir oleh JavaScript. */
.restricted-uploaded-media::-webkit-media-controls-fullscreen-button,
.restricted-uploaded-media::-webkit-media-controls-picture-in-picture-button,
.restricted-uploaded-media::-webkit-media-controls-overflow-button,
.restricted-uploaded-media::-webkit-media-controls-download-button,
.restricted-uploaded-media::-internal-media-controls-overflow-button {
  display: none !important;
  width: 0 !important;
  min-width: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

video.restricted-uploaded-media,
audio.restricted-uploaded-media {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

[data-restricted-media-download-link="true"] {
  display: none !important;
}


/* Pengaturan Peserta CBT: Total Soal dan Batas Pelanggaran tetap berdampingan
   pada tablet/mobile, termasuk label Batas Pelanggaran yang tidak boleh turun baris. */
.cbt-participant-settings-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
  overflow: hidden;
}

.cbt-participant-settings-grid > * {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.cbt-participant-setting-label {
  display: flex;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  align-items: center;
  flex-wrap: nowrap;
  white-space: nowrap;
  overflow: hidden;
  font-size: clamp(0.55rem, 2.7vw, 0.875rem);
  line-height: 1.2rem;
  letter-spacing: -0.01em;
}

.cbt-participant-setting-label > i {
  flex: 0 0 auto;
  margin-right: clamp(0.2rem, 1.2vw, 0.375rem) !important;
}

.cbt-participant-settings-grid input {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 420px) {
  .cbt-participant-settings-grid {
    gap: 0.5rem !important;
    padding: 0.65rem !important;
  }

  .cbt-participant-settings-grid > div {
    padding: 0.5rem !important;
  }

  .cbt-participant-setting-label {
    font-size: clamp(0.52rem, 2.65vw, 0.68rem);
  }

  .cbt-participant-settings-grid input {
    padding-left: 0.55rem !important;
    padding-right: 2.25rem !important;
  }

  .cbt-participant-settings-grid input + span {
    right: 0.55rem !important;
    font-size: 0.6rem !important;
  }
}

@media (min-width: 640px) {
  .cbt-participant-setting-label {
    font-size: 0.875rem;
  }
}

@media (min-width: 1280px) {
  .cbt-participant-settings-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}


/* CBT Center: Pengaturan Soal tetap dua kolom; Pengaturan CBT empat kolom di desktop dan dua kolom responsif pada layar lebih kecil. */
#assessmentModal .assessment-question-settings-grid,
#assessmentModal .assessment-cbt-settings-grid {
  display: grid;
  min-width: 0;
}

#assessmentModal .assessment-question-settings-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

#assessmentModal .assessment-cbt-settings-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

#assessmentModal .assessment-question-settings-grid > *,
#assessmentModal .assessment-cbt-settings-grid > * {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

#assessmentModal .assessment-setting-title {
  white-space: nowrap;
}

@media (max-width: 639px) {
  #assessmentModal .assessment-question-settings-grid,
  #assessmentModal .assessment-cbt-settings-grid {
    gap: 0.4rem !important;
    padding: 0.6rem !important;
  }

  #assessmentModal .assessment-question-settings-grid > *,
  #assessmentModal .assessment-cbt-settings-grid > * {
    padding: 0.5rem !important;
  }

  #assessmentModal .assessment-question-settings-grid input,
  #assessmentModal .assessment-cbt-settings-grid input:not([type="checkbox"]) {
    padding-left: 0.5rem !important;
    padding-right: 2rem !important;
  }

  #assessmentModal .assessment-question-settings-grid .cbt-participant-setting-label,
  #assessmentModal .assessment-cbt-settings-grid .cbt-participant-setting-label,
  #assessmentModal .assessment-setting-title {
    font-size: clamp(0.54rem, 2.45vw, 0.72rem) !important;
    letter-spacing: -0.015em;
  }

  #assessmentModal .assessment-setting-help {
    font-size: clamp(0.48rem, 2vw, 0.62rem) !important;
    line-height: 1rem !important;
  }

  #assessmentModal .assessment-cbt-settings-grid .w-10.h-6 {
    width: 2rem !important;
    height: 1.25rem !important;
  }

  #assessmentModal .assessment-cbt-settings-grid .w-5.h-5 {
    width: 1rem !important;
    height: 1rem !important;
  }

  #assessmentModal .assessment-cbt-settings-grid .peer-checked\:translate-x-4 {
    --tw-translate-x: 0.75rem !important;
  }
}

/* Rekap Nilai: tipografi tabel mengikuti Manajemen Akun dan Timestamp selalu horizontal. */
.results-page .results-recap-table {
  table-layout: auto;
}

.results-page .results-recap-table th,
.results-page .results-recap-table td {
  vertical-align: middle;
}

.results-page .results-recap-table thead th {
  white-space: nowrap;
  padding-top: 14px;
  padding-bottom: 14px;
}

.results-page .results-recap-table tbody td {
  padding-top: 12px;
  padding-bottom: 12px;
  font-size: 0.875rem;
}

.results-page .results-recap-table tbody tr {
  min-height: 56px;
}

/* Rekap Nilai Evaluasi: indikator Soal Diacak ditempatkan di atas Timestamp,
   sedangkan status utama dan pelanggaran disusun vertikal pada kolom Status. */
.results-page .results-recap-table .results-recap-timestamp-cell,
.results-page .results-recap-table .results-recap-status-cell {
  min-width: 180px;
  white-space: normal;
}

.results-page .results-recap-table .results-recap-timestamp-stack {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  width: max-content;
  max-width: 100%;
  vertical-align: middle;
}

.results-page .results-recap-table .results-recap-timestamp-stack > * {
  flex: 0 0 auto;
  width: max-content;
  max-width: none;
  white-space: nowrap;
}

.results-page .results-recap-table .results-recap-timestamp-value {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgb(71 85 105);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25rem;
}

.results-page .results-recap-table .results-recap-status-stack {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  width: max-content;
  max-width: 100%;
  vertical-align: middle;
}

.results-page .results-recap-table .results-recap-status-stack > * {
  display: inline-flex;
  flex: 0 0 auto;
  width: max-content;
  max-width: none;
  align-items: center;
  flex-wrap: nowrap;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}

/* Cloud Storage: Timestamp digabung di bawah Uploader tanpa label tambahan. */
.cloud-storage-table .cloud-storage-uploader-cell {
  vertical-align: middle;
}

.cloud-storage-table .cloud-storage-uploader-line,
.cloud-storage-table .cloud-storage-timestamp-line {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Cloud Storage: tombol aksi berlabel dan Timestamp setara ukuran Nama File. */
.cloud-storage-page .cloud-storage-action-btn.cloud-storage-action-labeled {
  width: auto;
  min-width: 74px;
  padding: 0 10px;
  gap: 6px;
}

.cloud-storage-page .cloud-storage-action-btn.cloud-storage-action-download.cloud-storage-action-labeled {
  min-width: 102px;
}

@media (max-width: 640px) {
  .cloud-storage-page .cloud-storage-action-btn.cloud-storage-action-labeled {
    width: auto;
    min-width: 70px;
    padding: 0 8px;
    gap: 5px;
  }

  .cloud-storage-page .cloud-storage-action-btn.cloud-storage-action-download.cloud-storage-action-labeled {
    min-width: 96px;
  }
}

/* File Media: UID dan Kode Modul ditampilkan langsung; Uploader dan Timestamp ditampilkan langsung. */
.file-media-table .file-media-identity-cell,
.file-media-table .file-media-timestamp-cell {
  vertical-align: middle;
}

.file-media-table .file-media-uid-line,
.file-media-table .file-media-module-line,
.file-media-table .file-media-uploader-line,
.file-media-table .file-media-timestamp-line {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}

.file-media-table .file-media-module-code {
  display: inline-block;
  max-width: none;
}


/* MFA: Pengaturan Kontak tersusun dua kolom dan alamat satu baris penuh. */
.mfa-grid .mfa-grid-full{grid-column:1/-1}
.mfa-plain-input{width:100%;min-width:0;border:1px solid #cbd5e1;border-radius:10px;background:#fff;padding:0 12px;color:#334155;font-size:.86rem;outline:none;transition:border-color .2s,box-shadow .2s}
input.mfa-plain-input{height:44px}
textarea.mfa-plain-input{min-height:88px;padding-top:11px;padding-bottom:11px;line-height:1.5;resize:vertical}
.mfa-plain-input:hover{border-color:#94a3b8}
.mfa-plain-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.public-doc-contact-list{margin-top:14px;padding:14px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff}
.public-doc-contact-title{display:flex;align-items:center;gap:8px;margin-bottom:11px;color:#1e3a8a;font-size:.82rem;font-weight:850}
.public-doc-contact-title i{width:18px;text-align:center;color:#2563eb}
.public-doc-contact-items{display:grid;gap:8px}
.public-doc-contact-item{display:flex;align-items:flex-start;gap:10px;min-width:0;padding:10px 11px;border:1px solid #dbeafe;border-radius:10px;background:#fff}
.public-doc-contact-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 32px;width:32px;height:32px;border-radius:9px;background:#dbeafe;color:#1d4ed8;font-size:.78rem}
.public-doc-contact-copy{display:flex;align-items:center;min-width:0;min-height:32px;color:#334155;line-height:1.45}
.public-doc-contact-copy a,.public-doc-contact-copy>span{overflow-wrap:anywhere;word-break:break-word}
.public-doc-contact-copy a{font-weight:700;text-decoration:none}
.public-doc-contact-copy a:hover,.public-doc-contact-copy a:focus-visible{text-decoration:underline}


/* Profil: panah dropdown mengikuti kondisi terbuka dan tertutup. */
.profile-dropdown-chevron {
  display: inline-block;
  transform: rotate(0deg);
  transform-origin: center;
  transition: transform 180ms ease;
  will-change: transform;
}

.profile-dropdown-chevron.is-open {
  transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
  .profile-dropdown-chevron {
    transition: none;
  }
}

/* Manajemen Akun - Registrasi: tombol Notifikasi selalu berupa ikon tetap. */
.users-page .users-hero-card > .users-heading-row.registration-heading-active {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  width: 100% !important;
}

.users-page .users-heading-row.registration-heading-active > .users-heading-copy {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.users-page .users-heading-row.registration-heading-active > #user-management-actions.registration-actions-active {
  display: flex !important;
  flex: 0 0 44px !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
  justify-self: end !important;
  align-self: flex-start !important;
  width: 44px !important;
  min-width: 44px !important;
  max-width: 44px !important;
  margin: 0 0 0 auto !important;
  gap: 0 !important;
}

.users-page .users-heading-row.registration-heading-active > #user-management-actions.registration-actions-active > #registration-notification-settings.registration-notification-icon-btn {
  display: inline-flex !important;
  box-sizing: border-box !important;
  width: 44px !important;
  min-width: 44px !important;
  max-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  padding: 0 !important;
  flex: 0 0 44px !important;
  align-self: flex-start !important;
  justify-self: end !important;
  border-radius: 12px !important;
  box-shadow: 0 6px 14px -8px rgba(15, 23, 42, 0.45) !important;
}

.users-page .users-heading-row.registration-heading-active > #user-management-actions.registration-actions-active > #registration-notification-settings.registration-notification-icon-btn > i {
  margin: 0 !important;
  font-size: 1rem !important;
  line-height: 1 !important;
}

@media (max-width: 1023px) {
  .users-page .users-hero-card > .users-heading-row.registration-heading-active {
    gap: 12px !important;
  }

  .users-page .users-heading-row.registration-heading-active > #user-management-actions.registration-actions-active,
  .users-page .users-heading-row.registration-heading-active > #user-management-actions.registration-actions-active > #registration-notification-settings.registration-notification-icon-btn {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    flex-basis: 44px !important;
  }
}


/* Manajemen Akun: seluruh aksi utama memakai tombol ikon tetap 44px. */
.users-page #user-management-actions.user-icon-action-group {
  display: flex !important;
  flex: 0 0 auto !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  align-self: flex-start !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin-left: auto !important;
  gap: 10px !important;
}

.users-page #user-management-actions.user-icon-action-group.hidden {
  display: none !important;
}

.users-page #user-management-actions.user-icon-action-group > .user-management-icon-btn {
  display: inline-flex !important;
  box-sizing: border-box !important;
  width: 44px !important;
  min-width: 44px !important;
  max-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  padding: 0 !important;
  flex: 0 0 44px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  border-radius: 12px !important;
  box-shadow: 0 6px 14px -8px rgba(15, 23, 42, 0.45) !important;
}

.users-page #user-management-actions.user-icon-action-group > .user-management-icon-btn.hidden {
  display: none !important;
}

.users-page #user-management-actions.user-icon-action-group > .user-management-icon-btn > i {
  margin: 0 !important;
  font-size: 1rem !important;
  line-height: 1 !important;
}

.users-page .user-management-action-label {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (max-width: 1023px) {
  .users-page #user-management-actions.user-icon-action-group {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    align-self: flex-end !important;
    justify-self: end !important;
  }

  .users-page #user-management-actions.user-icon-action-group > .user-management-icon-btn {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    flex-basis: 44px !important;
  }
}


/* Manajemen Akun - header aksi tetap sejajar pada desktop, tablet, dan mobile. */
.users-page .users-hero-card > .users-heading-row.user-heading-actions-active {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  width: 100% !important;
  gap: 12px !important;
}

.users-page .users-heading-row.user-heading-actions-active > .users-heading-copy {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.users-page .users-heading-row.user-heading-actions-active > #user-management-actions.user-icon-action-group {
  display: flex !important;
  flex: 0 0 auto !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
  align-self: flex-start !important;
  justify-self: end !important;
  width: auto !important;
  min-width: 44px !important;
  max-width: none !important;
  margin: 0 0 0 auto !important;
  gap: 10px !important;
}

@media (max-width: 1023px) {
  .users-page .users-hero-card > .users-heading-row.user-heading-actions-active {
    flex-direction: row !important;
    align-items: flex-start !important;
  }

  .users-page .users-heading-row.user-heading-actions-active > #user-management-actions.user-icon-action-group {
    align-self: flex-start !important;
    width: auto !important;
    min-width: 44px !important;
    max-width: none !important;
    margin-left: auto !important;
  }
}

/* Panel History tidak boleh membentuk kartu kosong saat belum dibuka.
   .dash-card memakai display:flex sehingga utility hidden perlu dipertegas. */
.users-page #user-history-panel.hidden {
  display: none !important;
}

/* Manajemen Akun - jarak header History dan posisi tombol Tutup konsisten. */
.users-page .account-history-inline-card > .text-left > .account-history-heading-row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  width: 100% !important;
  gap: 16px !important;
  margin-bottom: 24px !important;
}

.users-page .account-history-inline-card .account-history-heading-copy {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.users-page .account-history-inline-card .account-history-close-btn {
  flex: 0 0 auto !important;
  align-self: flex-start !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 0 0 auto !important;
  white-space: nowrap !important;
}

.users-page .account-history-inline-card .account-history-loading-state {
  min-height: 260px !important;
  padding: 48px 24px !important;
}

.users-page .account-history-inline-card .account-history-empty-state {
  min-height: 260px !important;
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}

.users-page .account-history-inline-card .account-history-toolbar {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
}

.users-page .account-history-inline-card .account-history-show-group {
  flex: 0 0 auto !important;
}

.users-page .account-history-inline-card .account-history-search-wrap {
  flex: 1 1 320px !important;
  width: min(100%, 420px) !important;
  max-width: 420px !important;
  margin-left: auto !important;
}

@media (max-width: 767px) {
  .users-page .account-history-inline-card > .text-left > .account-history-heading-row {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 12px !important;
    margin-bottom: 20px !important;
  }

  .users-page .account-history-inline-card .account-history-close-btn {
    flex: 0 0 auto !important;
    align-self: flex-start !important;
    margin-left: auto !important;
  }

  .users-page .account-history-inline-card .account-history-toolbar {
    align-items: stretch !important;
  }

  .users-page .account-history-inline-card .account-history-search-wrap {
    flex-basis: 100% !important;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
  }
}

/* Portal Peserta - efek navigasi dan kartu Dashboard konsisten dengan portal staf. */
#page-peserta .peserta-sidebar-item {
  isolation: isolate;
  border: 1px solid transparent;
  transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1),
              background-color 220ms ease,
              border-color 220ms ease,
              color 220ms ease,
              box-shadow 220ms ease;
}

#page-peserta .peserta-sidebar-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 0;
  border-radius: 0 999px 999px 0;
  background: #ffffff;
  transform: translateY(-50%);
  opacity: 0;
  transition: height 220ms ease, opacity 220ms ease;
}

#page-peserta .peserta-sidebar-item i {
  transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1), color 220ms ease;
}

#page-peserta .peserta-sidebar-item.active {
  border-color: rgba(255, 255, 255, 0.16);
  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.22);
}

#page-peserta .peserta-sidebar-item.active::before {
  height: 24px;
  opacity: 1;
}

#page-peserta .peserta-sidebar-item:active {
  transform: translateX(2px) scale(0.985);
}

#page-peserta .peserta-sidebar-item:focus-visible {
  outline: 2px solid rgba(191, 219, 254, 0.95);
  outline-offset: 2px;
}

#page-peserta .peserta-dashboard-hero,
#page-peserta .peserta-dashboard-panel,
#page-peserta .peserta-dashboard-stat-card,
#page-peserta .peserta-interactive-card {
  position: relative;
  transition: transform 260ms cubic-bezier(0.4, 0, 0.2, 1),
              box-shadow 260ms ease,
              border-color 260ms ease;
}

#page-peserta .peserta-dashboard-stat-card {
  overflow: hidden;
}

#page-peserta .peserta-dashboard-stat-card::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(120deg, transparent 20%, rgba(255, 255, 255, 0.72) 50%, transparent 80%);
  transform: translateX(-130%);
  transition: transform 520ms ease;
}

#page-peserta .peserta-dashboard-stat-icon,
#page-peserta .peserta-interactive-card-icon {
  transition: transform 260ms cubic-bezier(0.4, 0, 0.2, 1),
              box-shadow 260ms ease;
}

#page-peserta .peserta-dashboard-stat-card:active,
#page-peserta .peserta-interactive-card:active {
  transform: translateY(-1px) scale(0.99);
}

@media (hover: hover) and (pointer: fine) {
  #page-peserta .peserta-sidebar-item:hover {
    transform: translateX(4px);
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.14);
    color: #ffffff;
    box-shadow: 0 7px 16px rgba(15, 23, 42, 0.16);
  }

  #page-peserta .peserta-sidebar-item:hover i {
    transform: scale(1.12) rotate(-4deg);
  }

  #page-peserta .peserta-sidebar-item.active:hover {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  }

  #page-peserta .peserta-dashboard-hero:hover,
  #page-peserta .peserta-dashboard-panel:hover,
  #page-peserta .peserta-dashboard-stat-card:hover,
  #page-peserta .peserta-interactive-card:hover {
    transform: translateY(-4px);
    border-color: #bfdbfe;
    box-shadow: 0 16px 30px -12px rgba(15, 23, 42, 0.28);
  }

  #page-peserta .peserta-dashboard-stat-card:hover::after {
    transform: translateX(130%);
  }

  #page-peserta .peserta-dashboard-stat-card:hover .peserta-dashboard-stat-icon,
  #page-peserta .peserta-interactive-card:hover .peserta-interactive-card-icon {
    transform: scale(1.1) rotate(5deg);
    box-shadow: 0 9px 18px -8px rgba(15, 23, 42, 0.32);
  }
}

@media (min-width: 768px) {
  #peserta-sidebar.peserta-sidebar-collapsed .peserta-sidebar-item:hover {
    transform: translateY(-2px);
  }
}


/* Portal Peserta: feedback visual konsisten pada halaman akademik dan riwayat. */
#page-peserta .data-master-page > section:first-child,
#page-peserta .peserta-module-subject-group,
#page-peserta .peserta-module-subject-summary,
#page-peserta .peserta-module-history-table tbody tr,
#page-peserta .peserta-cbt-history-table tbody tr,
#page-peserta .peserta-result-table tbody tr,
#page-peserta .peserta-activity-table tbody tr,
#page-peserta .peserta-violation-log-table tbody tr {
  transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1),
              background-color 220ms ease,
              border-color 220ms ease,
              box-shadow 220ms ease;
}

#page-peserta .peserta-module-subject-summary:focus-visible {
  outline: 2px solid #93c5fd;
  outline-offset: -2px;
}

@media (hover: hover) and (pointer: fine) {
  #page-peserta .data-master-page > section:first-child:hover {
    transform: translateY(-2px);
    border-color: #bfdbfe;
    box-shadow: 0 12px 24px -14px rgba(15, 23, 42, 0.28);
  }

  #page-peserta .peserta-module-subject-group:hover {
    border-color: #bfdbfe;
    box-shadow: 0 12px 24px -16px rgba(15, 23, 42, 0.30);
  }

  #page-peserta .peserta-module-subject-summary:hover {
    background-color: #f8fafc;
  }

  #page-peserta .peserta-module-subject-summary:hover .peserta-module-subject-chevron {
    background-color: #dbeafe;
    color: #2563eb;
    transform: scale(1.06);
  }

  #page-peserta .peserta-module-subject-group[open] .peserta-module-subject-summary:hover .peserta-module-subject-chevron {
    transform: rotate(180deg) scale(1.06);
  }

  #page-peserta .peserta-module-history-table tbody tr:hover,
  #page-peserta .peserta-cbt-history-table tbody tr:hover,
  #page-peserta .peserta-result-table tbody tr:hover,
  #page-peserta .peserta-activity-table tbody tr:hover,
  #page-peserta .peserta-violation-log-table tbody tr:hover {
    background-color: #eff6ff;
    box-shadow: inset 3px 0 0 #3b82f6;
  }
}

@media (prefers-reduced-motion: reduce) {
  #page-peserta .peserta-sidebar-item,
  #page-peserta .peserta-sidebar-item::before,
  #page-peserta .peserta-sidebar-item i,
  #page-peserta .peserta-dashboard-hero,
  #page-peserta .peserta-dashboard-panel,
  #page-peserta .peserta-dashboard-stat-card,
  #page-peserta .peserta-dashboard-stat-card::after,
  #page-peserta .peserta-dashboard-stat-icon,
  #page-peserta .peserta-interactive-card,
  #page-peserta .peserta-interactive-card-icon,
  #page-peserta .data-master-page > section:first-child,
  #page-peserta .peserta-module-subject-group,
  #page-peserta .peserta-module-subject-summary,
  #page-peserta .peserta-module-history-table tbody tr,
  #page-peserta .peserta-cbt-history-table tbody tr,
  #page-peserta .peserta-result-table tbody tr,
  #page-peserta .peserta-activity-table tbody tr,
  #page-peserta .peserta-violation-log-table tbody tr {
    transition: none !important;
  }
}


/* MFA: switch pasangan durasi/rate-limit mengikuti pola kartu Registrasi/Forgot Password.
   Dua kolom dipertahankan pada tablet/mobile dan label tetap horizontal. */
.mfa-inline-toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.mfa-inline-toggle-card{min-width:0;min-height:48px;align-items:center;flex-direction:row;gap:12px;padding:10px 12px}
.mfa-inline-toggle-card .mfa-toggle-copy,.mfa-inline-toggle-card .mfa-toggle-title,.mfa-inline-toggle-card .mfa-toggle-title>div{min-width:0}
.mfa-inline-toggle-card .mfa-toggle-copy{flex:1}
.mfa-inline-toggle-card .mfa-toggle-title{align-items:center;gap:0}
.mfa-inline-toggle-card h3{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.71rem;line-height:1.25;text-transform:uppercase;letter-spacing:.04em;color:#475569}
.mfa-inline-toggle-card.is-disabled{opacity:.55}
.mfa-inline-toggle-card .mfa-switch input:disabled+span{cursor:not-allowed}
@media(max-width:640px){
  .mfa-inline-toggle-grid{gap:8px}
  .mfa-inline-toggle-card{align-items:center!important;gap:7px;padding:10px 9px}
  .mfa-inline-toggle-card h3{font-size:.66rem;letter-spacing:.02em}
  .mfa-inline-toggle-card .mfa-switch{width:44px;height:25px}
  .mfa-inline-toggle-card .mfa-switch span:before{width:19px;height:19px}
  .mfa-inline-toggle-card .mfa-switch input:checked+span:before{transform:translateX(19px)}
}
@media(max-width:380px){
  .mfa-inline-toggle-grid{gap:7px}
  .mfa-inline-toggle-card{gap:5px;padding:9px 7px}
  .mfa-inline-toggle-card h3{font-size:.6rem;letter-spacing:0}
  .mfa-inline-toggle-card .mfa-switch{width:40px;height:23px}
  .mfa-inline-toggle-card .mfa-switch span:before{width:17px;height:17px}
  .mfa-inline-toggle-card .mfa-switch input:checked+span:before{transform:translateX(17px)}
}


/* Manajemen Akun - Mode Online/Offline hanya pada keadaan tanpa tab aktif. */
.users-page .user-management-empty-state{
  gap:0;
}
.users-page .user-server-mode-card{
  width:min(560px,100%);
  margin-top:22px;
  padding:14px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border:1px solid #dbe3ef;
  border-radius:14px;
  background:#f8fafc;
  text-align:left;
  transition:border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
.users-page .user-server-mode-card.is-offline{
  border-color:#fecaca;
  background:#fff7f7;
}
.users-page .user-server-mode-copy{
  min-width:0;
  display:flex;
  align-items:center;
  gap:11px;
}
.users-page .user-server-mode-icon{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:11px;
  background:#dbeafe;
  color:#2563eb;
}
.users-page .user-server-mode-card.is-offline .user-server-mode-icon{
  background:#fee2e2;
  color:#dc2626;
}
.users-page .user-server-mode-copy h4{
  margin:0;
  color:#0f172a;
  font-size:.9rem;
  line-height:1.25;
  font-weight:800;
}
.users-page .user-server-mode-copy p{
  margin:3px 0 0;
  color:#64748b;
  font-size:.75rem;
  line-height:1.35;
}
.users-page .user-server-mode-controls{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:5px;
}
.users-page .user-server-mode-switch-row{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  white-space:nowrap;
}
.users-page .user-server-mode-choice{
  color:#94a3b8;
  font-size:.75rem;
  font-weight:800;
  transition:color .2s ease;
}
.users-page .user-server-mode-choice.is-active{
  color:#2563eb;
}
.users-page .user-server-mode-choice.is-active.is-offline{
  color:#dc2626;
}
.users-page .user-server-mode-status{
  color:#2563eb;
  font-size:.68rem;
  line-height:1.2;
  font-weight:800;
}
.users-page .user-server-mode-status.is-offline{
  color:#dc2626;
}
.users-page .user-server-mode-switch input:disabled + span{
  cursor:wait;
  opacity:.65;
}
.users-page .user-server-mode-card.is-offline .user-server-mode-switch input:not(:checked) + span{
  background:#ef4444;
}
.users-page .user-server-mode-card.is-offline .user-server-mode-switch input:not(:checked) + span:before{
  transform:translateX(0);
}
@media(max-width:640px){
  .users-page .user-server-mode-card{
    padding:12px;
    gap:12px;
  }
  .users-page .user-server-mode-icon{
    width:34px;
    height:34px;
    flex-basis:34px;
  }
  .users-page .user-server-mode-copy h4{
    font-size:.82rem;
  }
  .users-page .user-server-mode-copy p{
    font-size:.69rem;
  }
  .users-page .user-server-mode-switch-row{
    gap:6px;
  }
  .users-page .user-server-mode-choice{
    font-size:.69rem;
  }
}
@media(max-width:430px){
  .users-page .user-server-mode-card{
    align-items:stretch;
    flex-direction:column;
  }
  .users-page .user-server-mode-controls{
    width:100%;
    align-items:center;
  }
  .users-page .user-server-mode-switch-row{
    justify-content:center;
  }
}


/* MFA - Mode Server dipindahkan dari Manajemen Akun dan sejajar dengan Registrasi/Forgot Password. */
.mfa-toggle-list.mfa-toggle-list-three{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.mfa-server-mode-card{
  min-width:0;
}
.mfa-server-mode-card .mfa-toggle-copy,
.mfa-server-mode-card .mfa-toggle-title,
.mfa-server-mode-card .mfa-toggle-title>div{
  min-width:0;
}
.mfa-server-mode-card .mfa-server-mode-status{
  margin-top:2px;
  color:#2563eb;
  font-size:.66rem;
  line-height:1.15;
  font-weight:800;
}
.mfa-server-mode-card .mfa-server-mode-status.is-offline{
  color:#dc2626;
}
.mfa-server-mode-card.is-offline{
  border-color:#fecaca;
  background:linear-gradient(135deg,#fffafa 0%,#fff7f7 100%);
}
.mfa-server-mode-card.is-offline .mfa-feature-icon-server{
  background:#fee2e2;
  color:#dc2626;
}
.mfa-server-mode-card.is-offline .user-server-mode-switch input:not(:checked)+span{
  background:#ef4444;
}
.mfa-server-mode-card .user-server-mode-switch input:disabled+span{
  cursor:wait;
  opacity:.65;
}
.mfa-access-toggle-card.is-inactive{
  border-color:#e2e8f0;
  background:linear-gradient(135deg,#ffffff 0%,#f8fafc 100%);
}
.mfa-access-toggle-card.is-inactive .mfa-server-mode-status{
  color:#64748b;
}
.mfa-access-toggle-card .mfa-access-setting-switch input:disabled+span{
  cursor:wait;
  opacity:.65;
}
@media(max-width:700px){
  .mfa-toggle-list.mfa-toggle-list-three{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .mfa-toggle-list-three .mfa-toggle-card{min-width:0;align-items:center;gap:6px;padding:10px 8px}
  .mfa-toggle-list-three .mfa-feature-icon{display:none}
  .mfa-toggle-list-three .mfa-toggle-copy,.mfa-toggle-list-three .mfa-toggle-title,.mfa-toggle-list-three .mfa-toggle-title>div{min-width:0}
  .mfa-toggle-list-three .mfa-toggle-card h3{font-size:.64rem;line-height:1.2;overflow-wrap:anywhere}
  .mfa-toggle-list-three .mfa-server-mode-status{font-size:.58rem}
  .mfa-toggle-list-three .mfa-switch{width:40px;height:23px;flex:0 0 40px}
  .mfa-toggle-list-three .mfa-switch span:before{width:17px;height:17px}
  .mfa-toggle-list-three .mfa-switch input:checked+span:before{transform:translateX(17px)}
}
@media(max-width:380px){
  .mfa-toggle-list.mfa-toggle-list-three{gap:6px}
  .mfa-toggle-list-three .mfa-toggle-card{gap:4px;padding:9px 6px}
  .mfa-toggle-list-three .mfa-toggle-card h3{font-size:.58rem}
  .mfa-toggle-list-three .mfa-server-mode-status{font-size:.54rem}
  .mfa-toggle-list-three .mfa-switch{width:36px;height:21px;flex-basis:36px}
  .mfa-toggle-list-three .mfa-switch span:before{width:15px;height:15px}
  .mfa-toggle-list-three .mfa-switch input:checked+span:before{transform:translateX(15px)}
}

/* Manajemen Akun — tabel tetap horizontal pada semua viewport. */
.account-user-table-scroll{
  width:100%;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}
.account-user-table th,
.account-user-table td{
  white-space:nowrap;
}
@media(max-width:768px){
  .account-user-table-scroll{padding-bottom:4px}
  .account-user-table th{padding-left:12px!important;padding-right:12px!important}
  .account-user-table td{padding-left:12px!important;padding-right:12px!important}
}


/* CBT Center: tablet/mobile memakai dua kolom: Batas Durasi | Batas Pelanggaran, lalu Tampilkan Nilai | Status Private. */
@media (max-width: 900px) {
  #assessmentModal .assessment-cbt-settings-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem !important;
  }

  #assessmentModal .assessment-cbt-settings-grid > * {
    width: 100%;
  }

  #assessmentModal .assessment-cbt-settings-grid .cbt-participant-setting-label,
  #assessmentModal .assessment-cbt-settings-grid .assessment-setting-title {
    font-size: 0.875rem !important;
    letter-spacing: 0 !important;
  }

  #assessmentModal .assessment-cbt-settings-grid .w-10.h-6 {
    width: 2.5rem !important;
    height: 1.5rem !important;
  }

  #assessmentModal .assessment-cbt-settings-grid .w-5.h-5 {
    width: 1.25rem !important;
    height: 1.25rem !important;
  }

  #assessmentModal .assessment-cbt-settings-grid .peer-checked\:translate-x-4 {
    --tw-translate-x: 1rem !important;
  }
}

@media (max-width: 480px) {
  #assessmentModal .assessment-cbt-settings-grid {
    gap: 0.5rem !important;
  }

  #assessmentModal .assessment-cbt-settings-grid .assessment-setting-title {
    font-size: clamp(0.68rem, 3.25vw, 0.8rem) !important;
  }
}
