@import url('https://fonts.cdnfonts.com/css/maiandra-gd');

:root,
.joint-exams-root {
  --joint-navy-950: #0a192f;
  --joint-navy-900: #112240;
  --joint-navy-800: #1d3557;

  --joint-gold-500: #f59e0b;
  --joint-gold-600: #d97706;

  --joint-cyan-500: #06b6d4;
  --joint-cyan-600: #0891b2;

  --joint-slate-50: #f8fafc;
  --joint-slate-100: #f1f5f9;
  --joint-slate-200: #e2e8f0;
  --joint-slate-300: #cbd5e1;
  --joint-slate-400: #94a3b8;
  --joint-slate-700: #334155;
  --joint-slate-900: #0f172a;
}

.joint-exams-root,
.joint-exams-root button,
.joint-exams-root input,
.joint-exams-root select,
.joint-exams-root textarea,
.joint-exams-root table,
.joint-exams-root th,
.joint-exams-root td {
  font-family: 'Maiandra GD', sans-serif !important;
}

/* Explicitly protect FontAwesome icons globally across all joint modules */
.fa,
.fas,
.far,
.fal,
.fab,
.fa-solid,
.fa-regular,
.fa-brands,
i[class*="fa-"],
span[class*="fa-"],
[class^="fa-"] {
  font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", FontAwesome, sans-serif !important;
  font-style: normal !important;
  display: inline-block;
}
.fa-solid, .fas, .fa {
  font-weight: 900 !important;
}
.fa-regular, .far {
  font-weight: 400 !important;
}
.fa-brands, .fab {
  font-family: "Font Awesome 6 Brands", "Font Awesome 5 Brands", FontAwesome, sans-serif !important;
  font-weight: 400 !important;
}

.joint-exams-root {
  min-height: 100vh;
  background-color: var(--joint-navy-950);
  color: #f8fafc;
}

/* Shared government emblem used across Zonal and Joint authentication. */
.joint-auth-logo {
  position: relative;
  display: grid;
  place-items: center;
  width: 3.8rem;
  height: 3.8rem;
  margin: 0 auto 18px;
  padding: 0.35rem;
  box-sizing: border-box;
  border-radius: 50%;
  background: linear-gradient(145deg, rgba(252, 209, 22, 0.95), rgba(0, 163, 221, 0.95));
  box-shadow: none;
}

.joint-auth-logo > img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.joint-auth-color-bars {
  position: absolute;
  bottom: -0.45rem;
  left: 50%;
  display: flex;
  gap: 3px;
  transform: translateX(-50%);
}

.joint-auth-bar {
  display: block;
  width: 0.48rem;
  height: 0.25rem;
  border-radius: 999px;
}

.joint-auth-bar-green { background: #1eb53a; }
.joint-auth-bar-yellow { background: #fcd116; }
.joint-auth-bar-black { background: #000; }
.joint-auth-bar-blue { background: #00a3dd; }

/* Glass & Navy Card Styles */
.joint-card {
  background: var(--joint-navy-900, #112240);
  border: 1px solid rgba(6, 182, 212, 0.25);
  border-radius: 10px;
  padding: 20px;
  box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.45);
}

.joint-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 25, 47, 0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 20px;
}

.joint-modal-dialog {
  background: #112240 !important;
  border: 1px solid rgba(6, 182, 212, 0.4) !important;
  border-radius: 12px !important;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.85), 0 0 30px rgba(6, 182, 212, 0.18) !important;
  color: #f8fafc;
}

.joint-header-title {
  font-family: var(--font-sans);
  color: var(--joint-gold-500);
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.5px;
}

.joint-badge-cyan {
  background: rgba(6, 182, 212, 0.15);
  color: var(--joint-cyan-500);
  border: 1px solid var(--joint-cyan-500);
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 600;
}

.joint-badge-gold {
  background: rgba(245, 158, 11, 0.15);
  color: var(--joint-gold-500);
  border: 1px solid var(--joint-gold-500);
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 600;
}

.joint-badge-slate {
  background: rgba(148, 163, 184, 0.15);
  color: var(--joint-slate-300);
  border: 1px solid rgba(148, 163, 184, 0.35);
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 600;
}

.joint-badge-purple {
  background: rgba(168, 85, 247, 0.15);
  color: #c084fc;
  border: 1px solid rgba(168, 85, 247, 0.4);
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 600;
}

.joint-badge-emerald {
  background: rgba(16, 185, 129, 0.15);
  color: #34d399;
  border: 1px solid rgba(16, 185, 129, 0.4);
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 600;
}

.joint-btn-primary {
  background: linear-gradient(135deg, #f59e0b, #d97706);
  color: #0a192f;
  font-weight: 800;
  border: none;
  padding: 10px 18px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 10px rgba(245, 158, 11, 0.35);
}
.joint-btn-primary:hover {
  filter: brightness(1.1);
  box-shadow: 0 4px 14px rgba(245, 158, 11, 0.45);
}
.joint-btn-primary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  box-shadow: none;
  background: #334155;
  color: #94a3b8;
}

.joint-btn-cyan {
  background: linear-gradient(135deg, var(--joint-cyan-500), var(--joint-cyan-600));
  color: #fff;
  font-weight: 700;
  border: none;
  padding: 10px 18px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.joint-btn-cyan:hover {
  filter: brightness(1.1);
}

.joint-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 15px;
}

.joint-table th {
  background: rgba(17, 34, 64, 0.8);
  color: var(--joint-cyan-500);
  border-bottom: 2px solid var(--joint-cyan-500);
  padding: 12px;
  text-align: left;
  font-size: 0.9rem;
}

.joint-table td {
  padding: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 0.9rem;
  color: #e2e8f0;
}

.joint-table tr:hover {
  background: rgba(255, 255, 255, 0.02);
}

/* Joint Regions, Districts, Centres & Subjects table alignment: centre everything except for name & jurisdiction columns */
.joint-regions-table th,
.joint-regions-table td,
.joint-districts-table th,
.joint-districts-table td,
.joint-centres-table th,
.joint-centres-table td,
.joint-subjects-table th,
.joint-subjects-table td {
  text-align: center;
}

.joint-regions-table th:nth-child(2),
.joint-regions-table td:nth-child(2),
.joint-regions-table th.joint-col-region,
.joint-regions-table td.joint-col-region,
.joint-districts-table th:nth-child(2),
.joint-districts-table td:nth-child(2),
.joint-districts-table th.joint-col-district,
.joint-districts-table td.joint-col-district,
.joint-districts-table th:nth-child(3),
.joint-districts-table td:nth-child(3),
.joint-districts-table th.joint-col-region,
.joint-districts-table td.joint-col-region,
.joint-centres-table th:nth-child(2),
.joint-centres-table td:nth-child(2),
.joint-centres-table th.joint-col-name,
.joint-centres-table td.joint-col-name,
.joint-centres-table th:nth-child(3),
.joint-centres-table td:nth-child(3),
.joint-centres-table th.joint-col-region,
.joint-centres-table td.joint-col-region,
.joint-centres-table th:nth-child(4),
.joint-centres-table td:nth-child(4),
.joint-centres-table th.joint-col-council,
.joint-centres-table td.joint-col-council,
.joint-centres-table th:nth-child(5),
.joint-centres-table td:nth-child(5),
.joint-centres-table th.joint-col-ownership,
.joint-centres-table td.joint-col-ownership,
.joint-subjects-table th:nth-child(2),
.joint-subjects-table td:nth-child(2),
.joint-subjects-table th.joint-col-name,
.joint-subjects-table td.joint-col-name,
.joint-subjects-table th:nth-child(3),
.joint-subjects-table td:nth-child(3),
.joint-subjects-table th.joint-col-shortname,
.joint-subjects-table td.joint-col-shortname {
  text-align: left;
}

.joint-subjects-table th:nth-child(3),
.joint-subjects-table td:nth-child(3),
.joint-subjects-table th.joint-col-shortname,
.joint-subjects-table td.joint-col-shortname,
.joint-subjects-table .joint-shortname-text {
  font-family: 'Maiandra GD', sans-serif !important;
}

.joint-subjects-table th:nth-child(4),
.joint-subjects-table td:nth-child(4),
.joint-subjects-table th:nth-child(5),
.joint-subjects-table td:nth-child(5),
.joint-subjects-table th:nth-child(6),
.joint-subjects-table td:nth-child(6),
.joint-subjects-table th:nth-child(7),
.joint-subjects-table td:nth-child(7),
.joint-subjects-table th:nth-child(8),
.joint-subjects-table td:nth-child(8) {
  text-align: center;
}

.joint-regions-table .joint-actions,
.joint-districts-table .joint-actions,
.joint-centres-table .joint-actions,
.joint-subjects-table .joint-actions {
  justify-content: center;
}

/* Centered Summary Cards */
.joint-metric.center,
.joint-metric-centered {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.joint-metric.center span,
.joint-metric-centered span,
.joint-metric.center strong,
.joint-metric-centered strong,
.joint-metric.center small,
.joint-metric-centered small {
  text-align: center;
  width: 100%;
}

/* Executive Enterprise Glass Table Details */
.joint-regions-table tbody tr,
.joint-districts-table tbody tr,
.joint-centres-table tbody tr,
.joint-subjects-table tbody tr {
  transition: all 0.2s ease;
}

.joint-regions-table tbody tr:hover,
.joint-districts-table tbody tr:hover,
.joint-centres-table tbody tr:hover,
.joint-subjects-table tbody tr:hover {
  background: rgba(6, 182, 212, 0.07);
}

.joint-code-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 10px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-weight: 800;
  font-size: 0.86rem;
  color: var(--joint-gold-500);
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(245, 158, 11, 0.35);
  border-radius: 6px;
  letter-spacing: 1px;
}

.joint-region-cell {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.joint-region-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(6, 182, 212, 0.2), rgba(17, 34, 64, 0.9));
  border: 1px solid rgba(6, 182, 212, 0.35);
  color: #67e8f9;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.5px;
  flex-shrink: 0;
}

.joint-region-name {
  font-weight: 700;
  color: #fff;
  font-size: 0.94rem;
  letter-spacing: 0.3px;
}

.joint-count-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  transition: all 0.2s ease;
}

.joint-count-chip.zero {
  color: var(--joint-slate-400);
  background: rgba(148, 163, 184, 0.08);
  border: 1px solid rgba(148, 163, 184, 0.15);
}

.joint-count-chip.highlight {
  color: #67e8f9;
  background: rgba(6, 182, 212, 0.15);
  border: 1px solid rgba(6, 182, 212, 0.35);
}

.joint-count-chip.highlight-gold {
  color: var(--joint-gold-500);
  background: rgba(245, 158, 11, 0.15);
  border: 1px solid rgba(245, 158, 11, 0.35);
}

.joint-status-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  margin-right: 6px;
  background: currentColor;
}

.joint-status-success .joint-status-dot {
  box-shadow: 0 0 6px #10b981;
}

.joint-status-danger .joint-status-dot {
  box-shadow: 0 0 6px #ef4444;
}

.joint-actions button {
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.joint-actions button:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.joint-actions button.view:hover {
  background: rgba(6, 182, 212, 0.22);
  border-color: rgba(6, 182, 212, 0.5);
  color: #fff;
}

.joint-actions button:hover:not(.view):not(.danger) {
  background: rgba(245, 158, 11, 0.22);
  border-color: rgba(245, 158, 11, 0.5);
  color: var(--joint-gold-500);
}

.joint-actions button.danger:hover {
  background: rgba(239, 68, 68, 0.25);
  border-color: rgba(239, 68, 68, 0.55);
  color: #fff;
}

/* Executive Glass Pagination Bar */
.joint-pagination-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 14px;
  padding: 12px 18px;
  background: rgba(13, 27, 46, 0.75);
  border: 1px solid rgba(6, 182, 212, 0.22);
  border-radius: 10px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(6px);
}

.joint-pagination-info {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--joint-slate-400);
  font-size: 0.8rem;
}

.joint-pagination-info strong {
  color: #fff;
  font-weight: 700;
}

.joint-pagination-info .highlight {
  color: var(--joint-gold-500);
  font-weight: 800;
}

.joint-pagination-controls {
  display: flex;
  align-items: center;
  gap: 8px;
}

.joint-pagination-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 7px;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--joint-cyan-500);
  background: rgba(6, 182, 212, 0.08);
  border: 1px solid rgba(6, 182, 212, 0.3);
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.joint-pagination-btn:hover:not(:disabled) {
  background: rgba(6, 182, 212, 0.2);
  border-color: rgba(6, 182, 212, 0.6);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(6, 182, 212, 0.2);
}

.joint-pagination-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  border-color: rgba(148, 163, 184, 0.15);
  color: var(--joint-slate-400);
}

.joint-pagination-pages {
  display: flex;
  align-items: center;
  gap: 5px;
}

.joint-page-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 6px;
  border-radius: 7px;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--joint-slate-300);
  background: rgba(17, 34, 64, 0.6);
  border: 1px solid rgba(148, 163, 184, 0.18);
  cursor: pointer;
  transition: all 0.2s ease;
}

.joint-page-pill:hover:not(.active) {
  background: rgba(6, 182, 212, 0.15);
  border-color: rgba(6, 182, 212, 0.45);
  color: #fff;
}

.joint-page-pill.active {
  color: #000;
  background: linear-gradient(135deg, var(--joint-gold-500), var(--joint-gold-600));
  border-color: transparent;
  font-weight: 800;
  box-shadow: 0 2px 10px rgba(245, 158, 11, 0.35);
  cursor: default;
}

.joint-page-ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  color: var(--joint-slate-400);
  font-size: 0.82rem;
}

@media (max-width: 640px) {
  .joint-pagination-bar {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .joint-pagination-controls {
    justify-content: space-between;
  }
}

.joint-table th.joint-col-center,
.joint-table td.joint-col-center,
.joint-table .text-center {
  text-align: center;
}

.joint-table th.joint-col-left,
.joint-table td.joint-col-left,
.joint-table .text-left {
  text-align: left;
}

.joint-table th.joint-col-right,
.joint-table td.joint-col-right,
.joint-table .text-right {
  text-align: right;
}

.joint-input {
  background: #0d1b2a;
  border: 1px solid rgba(6, 182, 212, 0.3);
  color: #fff;
  padding: 10px 14px;
  border-radius: 6px;
  outline: none;
  width: 100%;
}
.joint-input:focus {
  border-color: var(--joint-gold-500);
}

/* Remove spin buttons from number inputs across all modern browsers */
.joint-no-spinners::-webkit-outer-spin-button,
.joint-no-spinners::-webkit-inner-spin-button,
input[type="number"].joint-no-spinners::-webkit-outer-spin-button,
input[type="number"].joint-no-spinners::-webkit-inner-spin-button,
.no-spinners::-webkit-outer-spin-button,
.no-spinners::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}

.joint-no-spinners,
input[type="number"].joint-no-spinners,
.no-spinners {
  -moz-appearance: textfield !important;
  appearance: textfield !important;
}

.joint-page-heading,.joint-page-header,.joint-section-title{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px;width:100%}.joint-page-heading>div:last-child,.joint-page-header>div:last-child,.joint-page-actions{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}.joint-page-heading h2,.joint-page-header h2,.joint-page-header h1{margin:2px 0 4px}.joint-page-heading p,.joint-page-header p,.joint-section-title p{margin:0;color:var(--joint-slate-400);font-size:.86rem}.joint-eyebrow{color:var(--joint-cyan-500);font-size:.72rem;font-weight:800;letter-spacing:1.5px}.joint-session-card{display:flex;justify-content:space-between;gap:24px;padding:20px 22px;margin-bottom:18px;background:linear-gradient(115deg,#112240,#142b4d);border:1px solid rgba(245,158,11,.45);border-radius:10px}.joint-session-card>div{display:flex;flex-direction:column;gap:4px}.joint-session-card span,.joint-session-card dt{font-size:.7rem;color:var(--joint-slate-400);font-weight:700;letter-spacing:.5px}.joint-session-card strong{font-size:1.35rem;color:var(--joint-gold-500)}.joint-session-card small{color:var(--joint-cyan-500)}.joint-session-card dl{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:10px;margin:0}.joint-session-card dl div{padding:8px 12px;background:rgba(10,25,47,.55);border-radius:7px}.joint-session-card dd{margin:4px 0 0;font-size:.8rem;font-weight:800}.joint-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:18px}.joint-metric{padding:16px;background:#112240;border:1px solid rgba(6,182,212,.18);border-radius:9px}.joint-metric span{display:block;min-height:30px;color:var(--joint-slate-400);font-size:.75rem;font-weight:700;text-transform:uppercase}.joint-metric strong{display:block;color:var(--joint-slate-50);font-size:1.65rem;line-height:1.3}.joint-metric small{color:var(--joint-cyan-500);font-size:.72rem}.joint-dashboard-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px}.joint-section-title h3{margin:0 0 3px;color:var(--joint-slate-50);font-size:1rem}.joint-status{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:.67rem;font-weight:800;white-space:nowrap}.joint-status-success{color:#6ee7b7;background:rgba(16,185,129,.14)}.joint-status-danger{color:#fca5a5;background:rgba(239,68,68,.14)}.joint-status-warning{color:#fcd34d;background:rgba(245,158,11,.14)}.joint-status-info{color:#67e8f9;background:rgba(6,182,212,.14)}.joint-readiness-row{display:grid;grid-template-columns:minmax(160px,1.3fr) minmax(100px,1fr) 44px 65px 45px;align-items:center;gap:10px;padding:11px 0;border-top:1px solid rgba(148,163,184,.12)}.joint-readiness-row strong,.joint-readiness-row small{display:block}.joint-readiness-row small{margin-top:2px;color:var(--joint-slate-400);font-size:.7rem}.joint-readiness-row b{font-size:.78rem}.joint-readiness-row a{color:var(--joint-cyan-500);font-size:.75rem}.joint-progress{height:6px;background:#0a192f;border-radius:5px;overflow:hidden}.joint-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--joint-cyan-600),var(--joint-gold-500))}.joint-attention-list{display:grid;gap:8px}.joint-attention-list a{display:flex;gap:10px;padding:11px;color:var(--joint-slate-100);background:rgba(239,68,68,.07);border:1px solid rgba(239,68,68,.18);border-radius:7px;text-decoration:none}.joint-attention-list a>span{color:#fca5a5;font-weight:900}.joint-attention-list strong,.joint-attention-list small{display:block}.joint-attention-list small{color:var(--joint-slate-400);margin-top:3px}.joint-empty-success,.joint-loading,.joint-alert{padding:18px;border-radius:8px}.joint-empty-success{color:#6ee7b7;background:rgba(16,185,129,.08)}.joint-loading{color:var(--joint-cyan-500)}.joint-alert-danger{color:#fecaca;background:rgba(127,29,29,.5);border:1px solid #ef4444}
@media(max-width:900px){.joint-dashboard-grid{grid-template-columns:1fr}.joint-session-card{flex-direction:column}.joint-session-card dl{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.joint-page-heading{flex-direction:column}.joint-session-card dl{grid-template-columns:1fr 1fr}.joint-readiness-row{grid-template-columns:1fr 42px 62px}.joint-readiness-row .joint-progress{display:none}.joint-readiness-row a{grid-column:1/-1}}
.joint-active-hero-banner {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  padding: 22px 24px !important;
  margin-bottom: 20px !important;
  background: linear-gradient(115deg, #0d1b2a, #112240) !important;
  border: 1px solid rgba(245, 158, 11, 0.5) !important;
  border-radius: 10px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35) !important;
}
.joint-active-hero-top-row {
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: center !important;
  width: 100% !important;
  gap: 16px !important;
}
.joint-active-hero-tag-group {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 10px !important;
}
.joint-active-hero-edit-btn {
  margin-left: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

@keyframes jointModalFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes jointModalSlideUp {
  from {
    opacity: 0;
    transform: translateY(16px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.joint-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(2, 6, 23, 0.82);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  animation: jointModalFadeIn 0.22s ease-out;
}

.joint-modal {
  width: min(580px, 100%);
  max-height: 90vh;
  overflow: hidden !important;
  background: linear-gradient(155deg, #132746 0%, #0c182c 100%);
  border: 1px solid rgba(6, 182, 212, 0.35);
  border-radius: 14px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.65), 0 0 0 1px rgba(255, 255, 255, 0.05) inset;
  animation: jointModalSlideUp 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
}

.joint-modal::-webkit-scrollbar,
.joint-modal-body::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

.joint-modal header,
.joint-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 22px;
  border-bottom: 1px solid rgba(6, 182, 212, 0.18);
  background: rgba(10, 25, 47, 0.45);
  flex-shrink: 0;
}

.joint-modal-header-info {
  display: flex;
  align-items: center;
  gap: 14px;
}

.joint-modal-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: rgba(6, 182, 212, 0.12);
  border: 1px solid rgba(6, 182, 212, 0.3);
  color: var(--joint-cyan-500);
  flex-shrink: 0;
}

.joint-modal-icon svg {
  width: 22px;
  height: 22px;
}

.joint-modal-title-group h3,
.joint-modal h3 {
  margin: 0;
  color: var(--joint-gold-500);
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.3px;
}

.joint-modal-subtitle {
  margin: 2px 0 0;
  color: var(--joint-slate-400);
  font-size: 0.78rem;
}

.joint-modal-close-btn,
.joint-modal header button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  border: 1px solid rgba(148, 163, 184, 0.18);
  background: rgba(255, 255, 255, 0.04);
  color: var(--joint-slate-400);
  cursor: pointer;
  font-size: 1.2rem;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.joint-modal-close-btn:hover,
.joint-modal header button:hover {
  background: rgba(239, 68, 68, 0.15);
  border-color: rgba(239, 68, 68, 0.4);
  color: #fca5a5;
  transform: rotate(90deg);
}

.joint-modal-body {
  padding: 16px 22px;
  color: var(--joint-slate-200);
  line-height: 1.5;
  overflow-y: auto;
  overflow-x: hidden;
  max-height: calc(92vh - 130px);
  flex: 1 1 auto;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}

.joint-modal-body .joint-alert {
  margin: 0 0 12px;
  padding: 10px 14px;
  font-size: 0.82rem;
  border-radius: 8px;
}

.joint-modal footer,
.joint-form-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding: 14px 22px !important;
  border-top: 1px solid rgba(6, 182, 212, 0.15);
  background: rgba(10, 25, 47, 0.35);
  margin: 0 !important;
  flex-shrink: 0;
}

.joint-form-actions button {
  min-width: 90px;
}

.joint-btn-secondary,
.joint-btn-danger {
  border: 0;
  border-radius: 6px;
  padding: 9px 18px;
  font-weight: 700;
  font-size: 0.86rem;
  cursor: pointer;
  transition: all 0.2s ease;
}

.joint-btn-secondary {
  background: #334155;
  color: #fff;
  border: 1px solid rgba(148, 163, 184, 0.2);
}

.joint-btn-secondary:hover {
  background: #475569;
  filter: brightness(1.1);
}

.joint-btn-danger {
  background: #b91c1c;
  color: #fff;
  border: 1px solid rgba(239, 68, 68, 0.3);
}

.joint-btn-danger:hover {
  background: #dc2626;
  filter: brightness(1.1);
}

.joint-form-field {
  margin-bottom: 13px;
}

.joint-form-field-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 5px;
}

.joint-form-field-header label,
.joint-form-label {
  display: block;
  margin: 0;
  color: var(--joint-cyan-500);
  font-size: 0.8rem;
  font-weight: 700;
}

.joint-form-hint {
  font-size: 0.72rem;
  color: var(--joint-slate-400);
  margin-top: 3px;
}

.joint-toggle-group {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  background: rgba(10, 25, 47, 0.65);
  border: 1px solid rgba(6, 182, 212, 0.24);
  border-radius: 9px;
  margin: 12px 0 4px;
  cursor: pointer;
  user-select: none;
  transition: all 0.2s ease;
}

.joint-toggle-group:hover {
  border-color: rgba(6, 182, 212, 0.5);
  background: rgba(10, 25, 47, 0.85);
}

.joint-toggle-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.joint-toggle-label {
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--joint-slate-100);
}

.joint-toggle-sub {
  font-size: 0.74rem;
  color: var(--joint-slate-400);
}

.joint-switch {
  position: relative;
  width: 46px;
  height: 25px;
  background: #334155;
  border-radius: 999px;
  transition: background 0.25s ease;
  flex-shrink: 0;
}

.joint-switch.active {
  background: #10b981;
  box-shadow: 0 0 12px rgba(16, 185, 129, 0.35);
}

.joint-switch-thumb {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 19px;
  height: 19px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.joint-switch.active .joint-switch-thumb {
  transform: translateX(21px);
}

.joint-detail-hero {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 18px;
  background: linear-gradient(135deg, rgba(6, 182, 212, 0.12), rgba(245, 158, 11, 0.08));
  border: 1px solid rgba(6, 182, 212, 0.28);
  border-radius: 10px;
  margin-bottom: 16px;
}

.joint-detail-hero-code {
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--joint-gold-500);
  background: rgba(10, 25, 47, 0.85);
  padding: 6px 14px;
  border-radius: 8px;
  border: 1px solid rgba(245, 158, 11, 0.4);
  letter-spacing: 1px;
}

.joint-detail-hero-info {
  flex: 1;
}

.joint-detail-hero-info h4 {
  margin: 0;
  font-size: 1.25rem;
  color: #fff;
  letter-spacing: 0.5px;
}

.joint-detail-hero-type {
  font-size: 0.74rem;
  color: var(--joint-cyan-500);
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.joint-modal-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}

.joint-modal-stat-card {
  padding: 14px;
  background: rgba(10, 25, 47, 0.65);
  border: 1px solid rgba(6, 182, 212, 0.2);
  border-radius: 9px;
  text-align: center;
  transition: transform 0.2s ease, border-color 0.2s ease;
}

.joint-modal-stat-card:hover {
  transform: translateY(-2px);
  border-color: rgba(6, 182, 212, 0.45);
}

.joint-modal-stat-card .stat-label {
  display: block;
  font-size: 0.7rem;
  color: var(--joint-slate-400);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.joint-modal-stat-card .stat-value {
  display: block;
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--joint-gold-500);
  line-height: 1.25;
  margin: 4px 0 2px;
}

.joint-modal-stat-card .stat-sub {
  font-size: 0.68rem;
  color: var(--joint-cyan-500);
}

.joint-detail-card {
  background: rgba(10, 25, 47, 0.5);
  border: 1px solid rgba(148, 163, 184, 0.12);
  border-radius: 9px;
  padding: 8px 16px;
  margin-bottom: 18px;
}

.joint-detail-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid rgba(148, 163, 184, 0.08);
  font-size: 0.82rem;
}

.joint-detail-row:last-child {
  border-bottom: none;
}

.joint-detail-row > span {
  color: var(--joint-slate-400);
}

.joint-detail-row > strong {
  color: #fff;
}

.joint-pill-success {
  color: #6ee7b7;
  background: rgba(16, 185, 129, 0.14);
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
}

.joint-pill-danger {
  color: #fca5a5;
  background: rgba(239, 68, 68, 0.14);
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
}

.joint-inline-notice {
  margin: 0 0 14px;
  padding: 10px 12px;
  border-radius: 7px;
  color: #bae6fd;
  background: rgba(6, 182, 212, 0.1);
  border: 1px solid rgba(6, 182, 212, 0.2);
}
.joint-filter-bar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto auto;gap:10px;margin-bottom:14px;padding:14px}.joint-table-wrap{overflow:auto}.joint-empty-cell{text-align:center;color:var(--joint-slate-400)!important;padding:28px!important}@media(max-width:760px){.joint-filter-bar{grid-template-columns:1fr 1fr}.joint-filter-bar button{width:100%}}
.joint-candidate-filters{display:grid;grid-template-columns:minmax(240px,2fr) minmax(200px,1.4fr) minmax(160px,1fr) minmax(160px,1fr);gap:12px;width:100%;align-items:center}
.joint-candidate-filters.is-leader{grid-template-columns:minmax(260px,2fr) minmax(180px,1fr) minmax(180px,1fr)}
@media(max-width:900px){.joint-candidate-filters,.joint-candidate-filters.is-leader{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.joint-candidate-filters,.joint-candidate-filters.is-leader{grid-template-columns:1fr}}
.joint-settings-list{display:grid;gap:4px}.joint-settings-list>label{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,360px);gap:20px;align-items:center;padding:14px 0;border-bottom:1px solid rgba(148,163,184,.12)}.joint-settings-list strong,.joint-settings-list small{display:block}.joint-settings-list strong{color:var(--joint-gold-500);font-size:.82rem}.joint-settings-list small{color:var(--joint-slate-400);margin-top:4px}@media(max-width:650px){.joint-settings-list>label{grid-template-columns:1fr}}
.joint-audit-values{display:grid;grid-template-columns:1fr 1fr;gap:12px}.joint-audit-values strong{color:var(--joint-cyan-500);font-size:.72rem}.joint-audit-values pre{overflow:auto;padding:12px;background:#0a192f;border-radius:6px;color:var(--joint-slate-200);font-size:.75rem}@media(max-width:650px){.joint-audit-values{grid-template-columns:1fr}}
.joint-report-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.joint-report-groups h3{margin:0 0 8px;color:var(--joint-gold-500);font-size:.9rem}.joint-report-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:13px 0;border-top:1px solid rgba(148,163,184,.12)}.joint-report-row strong,.joint-report-row small{display:block}.joint-report-row small{color:var(--joint-slate-400);margin-top:3px;font-size:.75rem}.joint-report-row button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:800px){.joint-report-groups{grid-template-columns:1fr}}
.joint-subject-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:180px;overflow:auto;padding:12px;border:1px solid rgba(6,182,212,.25);border-radius:7px}.joint-subject-picker legend{padding:0 6px;color:var(--joint-cyan-500);font-size:.78rem;font-weight:700}.joint-subject-picker label{display:flex;gap:7px;align-items:flex-start;color:var(--joint-slate-200);font-size:.78rem}
.joint-form-label{display:block;margin:0 0 14px;color:var(--joint-cyan-500);font-size:.8rem;font-weight:700}.joint-form-label .joint-input{margin-top:6px}.joint-check{display:flex;align-items:center;gap:8px;margin:12px 0;color:var(--joint-slate-200)}.joint-check input{width:auto}.joint-actions{display:flex;gap:7px}.joint-actions button,.joint-pagination button{border:1px solid rgba(6,182,212,.3);border-radius:5px;padding:5px 9px;background:rgba(6,182,212,.08);color:var(--joint-cyan-500);cursor:pointer}.joint-actions button{display:inline-grid;place-items:center;width:32px;height:30px;padding:5px}.joint-actions button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.joint-actions button.view{color:#e2e8f0}.joint-actions button.danger{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08);color:#fca5a5}.joint-detail-list{display:grid;gap:0;margin:0}.joint-detail-list>div{display:grid;grid-template-columns:minmax(140px,1fr) 2fr;gap:16px;padding:11px 0;border-bottom:1px solid rgba(148,163,184,.14)}.joint-detail-list dt{color:var(--joint-slate-400)}.joint-detail-list dd{margin:0;color:var(--joint-slate-100);font-weight:700}.joint-code{color:var(--joint-gold-500);font-weight:800}.joint-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:14px 2px;color:var(--joint-slate-400);font-size:.78rem}.joint-pagination button:disabled{opacity:.4;cursor:not-allowed}.joint-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.joint-form-actions{margin:0;padding:16px 24px!important}@media(max-width:650px){.joint-two-columns{grid-template-columns:1fr}.joint-actions{flex-wrap:wrap}}
.joint-confirm-modal{position:relative;width:min(500px,100%);overflow:hidden;border-color:rgba(239,68,68,.48);padding:28px 28px 0;background:linear-gradient(145deg,#142746,#0d1c31)}.joint-confirm-icon{display:grid;place-items:center;width:58px;height:58px;margin-bottom:18px;border:1px solid rgba(248,113,113,.4);border-radius:16px;color:#f87171;background:rgba(127,29,29,.25);box-shadow:0 10px 28px rgba(127,29,29,.22)}.joint-confirm-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.joint-confirm-eyebrow{color:#fca5a5;font-size:.7rem;font-weight:800;letter-spacing:.14em}.joint-confirm-modal h3{margin:6px 0 10px;color:#fff;font-size:1.45rem}.joint-confirm-modal p{margin:0;color:var(--joint-slate-300);font-size:.96rem}.joint-confirm-modal p strong{color:#fff}.joint-confirm-modal p span{color:var(--joint-gold-500);font-weight:700}.joint-confirm-warning{margin-top:18px;padding:13px 15px;border-left:3px solid #ef4444;border-radius:6px;color:#fecaca;background:rgba(127,29,29,.2);font-size:.82rem}.joint-confirm-modal footer{margin:24px -28px 0;padding:17px 28px;border-top:1px solid rgba(248,113,113,.16);background:rgba(2,6,23,.22)}.joint-confirm-delete{display:inline-flex;align-items:center;gap:8px}.joint-confirm-delete svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.joint-confirm-modal button:disabled{opacity:.55;cursor:not-allowed}

/* Standardized Executive View Modal */
.joint-modal-view {
  width: min(540px, 100%);
}

.joint-modal-view .joint-detail-hero {
  margin-bottom: 14px;
}

.joint-modal-view .joint-modal-stats-grid {
  margin-bottom: 0;
}

/* Standardized Executive Danger Modal */
.joint-modal-danger {
  width: min(520px, 100%);
  border-color: rgba(239, 68, 68, 0.45);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.7), 0 0 30px rgba(239, 68, 68, 0.08);
}

.joint-modal-icon.danger {
  background: rgba(239, 68, 68, 0.14);
  border-color: rgba(239, 68, 68, 0.35);
  color: #f87171;
}

.joint-delete-hero {
  border-color: rgba(239, 68, 68, 0.28);
  background: linear-gradient(135deg, rgba(239, 68, 68, 0.1), rgba(10, 25, 47, 0.8));
  margin-bottom: 12px;
}

.joint-delete-code {
  color: #fca5a5;
  border-color: rgba(239, 68, 68, 0.4);
  background: rgba(10, 25, 47, 0.9);
}

.joint-danger-warning-box {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 9px;
  background: rgba(127, 29, 29, 0.18);
  border: 1px solid rgba(239, 68, 68, 0.3);
  margin-top: 0;
}

.joint-danger-warning-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(239, 68, 68, 0.2);
  color: #f87171;
  flex-shrink: 0;
}

.joint-danger-warning-icon svg {
  width: 18px;
  height: 18px;
}

.joint-danger-warning-text {
  flex: 1;
}

.joint-danger-warning-text strong {
  display: block;
  color: #fecaca;
  font-size: 0.86rem;
  margin-bottom: 3px;
}

.joint-danger-warning-text p {
  margin: 0;
  color: #fca5a5;
  font-size: 0.78rem;
  line-height: 1.45;
  opacity: 0.9;
}

/* Compact Filter Bar & Searchable Select */
.joint-districts-filter-bar {
  display: flex !important;
  align-items: center;
  gap: 12px;
}

.joint-districts-filter-bar .joint-filter-search {
  flex: 1 1 auto;
}

.joint-searchable-select {
  position: relative;
  width: 260px;
  flex: 0 0 260px;
}

.joint-searchable-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.joint-searchable-input {
  padding-right: 56px !important;
  cursor: text;
  text-overflow: ellipsis;
  white-space: nowrap !important;
}

.joint-searchable-icons {
  position: absolute;
  right: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.joint-searchable-clear {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(148, 163, 184, 0.2);
  border: 0;
  color: var(--joint-slate-300);
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  transition: all 0.15s ease;
}

.joint-searchable-clear:hover {
  background: rgba(239, 68, 68, 0.4);
  color: #fff;
}

.joint-searchable-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--joint-cyan-500);
  cursor: pointer;
  transition: transform 0.2s ease;
}

.joint-searchable-arrow.open {
  transform: rotate(180deg);
}

.joint-searchable-select.joint-searchable-full {
  width: 100% !important;
  flex: 1 1 100% !important;
}

.joint-searchable-select.joint-searchable-full .joint-searchable-input-wrap,
.joint-searchable-select.joint-searchable-full .joint-searchable-input {
  width: 100% !important;
}

.joint-searchable-dropdown {
  position: absolute;
  top: calc(100% + 5px);
  left: 0;
  right: 0;
  z-index: 10050;
  margin: 0;
  padding: 6px;
  list-style: none;
  background: #0d1e38;
  border: 1px solid rgba(6, 182, 212, 0.4);
  border-radius: 9px;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.65), 0 0 0 1px rgba(255, 255, 255, 0.05);
  max-height: 240px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(6, 182, 212, 0.3) transparent;
}

.joint-searchable-dropdown::-webkit-scrollbar {
  width: 5px;
}

.joint-searchable-dropdown::-webkit-scrollbar-thumb {
  background: rgba(6, 182, 212, 0.3);
  border-radius: 999px;
}

.joint-searchable-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 6px;
  color: var(--joint-slate-200);
  font-size: 0.84rem;
  cursor: pointer;
  transition: background 0.15s ease;
}

.joint-searchable-option:hover {
  background: rgba(6, 182, 212, 0.14);
  color: #fff;
}

.joint-searchable-option.selected {
  background: rgba(6, 182, 212, 0.22);
  color: #fff;
  font-weight: 600;
}

.joint-searchable-code {
  font-family: ui-monospace, SFMono-Regular, monospace;
  font-weight: 800;
  font-size: 0.76rem;
  color: var(--joint-gold-500);
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.3);
  border-radius: 4px;
  padding: 2px 6px;
  letter-spacing: 0.5px;
}

.joint-searchable-name {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.joint-searchable-check {
  color: var(--joint-cyan-400, #38bdf8);
  font-size: 0.84rem;
  font-weight: 800;
}

.joint-searchable-empty {
  padding: 14px;
  text-align: center;
  color: var(--joint-slate-400);
  font-size: 0.8rem;
}

.joint-centres-filter-bar {
  display: flex !important;
  align-items: center;
  gap: 12px;
}

.joint-centres-filter-bar .joint-filter-search {
  flex: 1 1 auto;
}

.joint-centres-filter-bar .joint-searchable-region {
  width: 220px;
  flex: 0 0 220px;
}

.joint-centres-filter-bar .joint-searchable-district {
  width: 240px;
  flex: 0 0 240px;
}

@media (max-width: 900px) {
  .joint-districts-filter-bar,
  .joint-centres-filter-bar {
    flex-direction: column;
    align-items: stretch;
  }
  .joint-centres-filter-bar .joint-searchable-region,
  .joint-centres-filter-bar .joint-searchable-district,
  .joint-searchable-select {
    width: 100%;
    flex: 1 1 auto;
  }
}

/* ==========================================================================
   Executive Bulk Import Component Styles (Modeled after /admin/centres)
   ========================================================================== */
.joint-import-container {
  background: rgba(13, 27, 42, 0.95);
  border: 1px solid rgba(6, 182, 212, 0.25);
  border-radius: 12px;
  padding: 1.75rem;
  margin-bottom: 1.75rem;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.45);
}

.joint-import-area {
  border: 2px dashed rgba(6, 182, 212, 0.4);
  border-radius: 10px;
  padding: 2.5rem 1.5rem;
  text-align: center;
  cursor: pointer;
  background: rgba(17, 34, 64, 0.4);
  transition: all 0.2s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}

.joint-import-area:hover,
.joint-import-area.dragover {
  border-color: var(--joint-gold-500);
  background: rgba(6, 182, 212, 0.08);
}

.joint-import-icon {
  font-size: 2.75rem;
  color: var(--joint-cyan-400);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.joint-import-icon svg {
  width: 44px;
  height: 44px;
}

.joint-import-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  margin: 0;
}

.joint-import-sub {
  font-size: 0.85rem;
  color: var(--joint-slate-300);
  margin: 0;
}

.joint-import-meta {
  font-size: 0.76rem;
  color: var(--joint-slate-400);
  margin: 0;
}

.joint-import-preview-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.joint-stat-item {
  background: rgba(17, 34, 64, 0.6);
  padding: 1rem 1.25rem;
  border-radius: 8px;
  text-align: center;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-left: 4px solid var(--joint-cyan-500);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}

.joint-stat-item.success {
  border-left-color: #10b981;
}

.joint-stat-item.warning {
  border-left-color: var(--joint-gold-500);
}

.joint-stat-item.danger {
  border-left-color: #ef4444;
}

.joint-stat-val {
  font-size: 1.6rem;
  font-weight: 800;
  color: #fff;
  font-variant-numeric: tabular-nums;
}

.joint-stat-val.success {
  color: #34d399;
}

.joint-stat-val.warning {
  color: var(--joint-gold-500);
}

.joint-stat-val.danger {
  color: #f87171;
}

.joint-stat-lbl {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--joint-slate-400);
  margin-top: 0.35rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.joint-import-success-card {
  text-align: center;
  padding: 2.5rem 1.5rem;
}

.joint-import-success-icon {
  width: 64px;
  height: 64px;
  color: #10b981;
  margin: 0 auto 1.25rem auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.joint-import-success-icon svg {
  width: 64px;
  height: 64px;
}

.joint-import-success-title {
  font-size: 1.35rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 0.5rem 0;
}

.joint-import-success-desc {
  color: var(--joint-slate-300);
  font-size: 0.95rem;
  margin: 0;
}

.joint-import-options-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.85rem;
  margin-top: 0.75rem;
}

.joint-import-option-card {
  background: rgba(17, 34, 64, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  padding: 0.9rem 1rem;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  text-align: left;
}

.joint-import-option-card:hover {
  border-color: rgba(6, 182, 212, 0.4);
  background: rgba(17, 34, 64, 0.75);
}

.joint-import-option-card.selected {
  border-color: var(--joint-cyan-400);
  background: rgba(6, 182, 212, 0.12);
  box-shadow: 0 0 12px rgba(6, 182, 212, 0.15);
}

.joint-import-option-title {
  font-size: 0.86rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 0.25rem 0;
}

.joint-import-option-desc {
  font-size: 0.75rem;
  color: var(--joint-slate-400);
  margin: 0;
  line-height: 1.35;
}

.joint-template-banner {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 1rem 1.25rem;
  background: rgba(30, 58, 138, 0.25);
  border: 1px solid rgba(59, 130, 246, 0.3);
  border-radius: 8px;
  margin-bottom: 1.25rem;
}

.joint-template-banner-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 1rem;
  flex-wrap: wrap;
}

.joint-template-banner-header button,
.joint-template-banner button,
.joint-template-banner .joint-btn-cyan {
  margin-left: auto !important;
  flex-shrink: 0 !important;
  white-space: nowrap !important;
}

/* Subject Rules Custom Styles */
.joint-rule-preset-banner {
  background: rgba(16, 185, 129, 0.12);
  border: 1px solid rgba(16, 185, 129, 0.35);
  border-radius: 8px;
  padding: 0.85rem 1.15rem;
  margin-bottom: 1.15rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.joint-rule-preset-info {
  display: flex;
  align-items: center;
  gap: 10px;
}

.joint-rule-tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 0.75rem;
  flex-wrap: wrap;
}

.joint-rule-tab {
  background: rgba(15, 23, 42, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--joint-slate-300);
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.joint-rule-tab:hover {
  border-color: var(--joint-cyan-400);
  color: #fff;
}

.joint-rule-tab.active {
  background: rgba(6, 182, 212, 0.2);
  border-color: var(--joint-cyan-400);
  color: var(--joint-cyan-400);
}

.joint-subject-checklist-box {
  background: rgba(10, 25, 47, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  padding: 0.85rem;
  max-height: 250px;
  overflow-y: auto;
}

.joint-subject-card-check {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  background: rgba(17, 34, 64, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
  font-size: 0.8rem;
  text-align: left;
}

.joint-subject-card-check:hover {
  background: rgba(17, 34, 64, 0.8);
  border-color: rgba(6, 182, 212, 0.3);
}

.joint-subject-card-check.selected {
  background: rgba(6, 182, 212, 0.12);
  border-color: rgba(6, 182, 212, 0.4);
}

.joint-rule-chips-wrap {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  align-items: center;
}

/* ==========================================================================
   IRMS 4-Column Hierarchy Navigation & Alphabet Filter Grid
   (Modeled identically after Zonal Assessment Public Results Portal)
   ========================================================================== */
.irms-container {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 2px double rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: #0f172a;
  overflow: hidden;
  margin-top: 16px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
}

.irms-column {
  border-left: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  flex-direction: column;
}

.irms-column:first-child {
  border-left: none;
}

.irms-column.col-blue {
  background: #d1e9ff !important;
}

.irms-column.col-pink {
  background: #fce4ec !important;
}

.irms-column.col-green {
  background: #dcfce7 !important;
}

.irms-column {
  border-left: 1px solid rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
}

.irms-column:first-child {
  border-left: none;
}

.irms-item {
  padding: 8px 12px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  font-size: 0.84rem;
  transition: background 0.15s ease;
  white-space: nowrap;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.irms-item:hover {
  background: rgba(0, 0, 0, 0.05);
}

.irms-item-btn {
  background: transparent;
  border: none;
  color: #0f172a !important;
  font-weight: 800;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  letter-spacing: 0.01em;
  white-space: nowrap;
  width: 100%;
  text-align: left;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
  font-size: 0.84rem;
  transition: color 0.15s ease;
}

.irms-item-btn:hover {
  color: #0000ee !important;
}

.irms-centre-info {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-align: left;
}

.irms-item-code {
  font-weight: 900;
  color: #9a3412 !important;
  letter-spacing: 0.04em;
  flex-shrink: 0;
  font-size: 0.82rem;
  display: inline-block;
}

.irms-item-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #0f172a !important;
  font-weight: 800;
  font-size: 0.84rem;
  text-align: left;
}

.irms-item-btn:hover .irms-item-name {
  color: #0000ee !important;
  text-decoration: underline;
}

.irms-glass-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2.5px 8px;
  border-radius: 6px;
  font-size: 0.70rem;
  font-weight: 800;
  background: #ffffff !important;
  border: 1px solid #bfdbfe !important;
  color: #1e40af !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  white-space: nowrap;
  flex-shrink: 0;
  letter-spacing: 0.02em;
  transition: all 0.15s ease;
}

.irms-glass-badge i {
  color: #2563eb !important;
}

.irms-glass-badge span {
  color: #1e40af !important;
  font-weight: 800 !important;
}

.irms-item-btn:hover .irms-glass-badge {
  background: #1e40af !important;
  border-color: #1d4ed8 !important;
  color: #ffffff !important;
  box-shadow: 0 3px 10px rgba(30, 64, 175, 0.3);
}

.irms-item-btn:hover .irms-glass-badge i,
.irms-item-btn:hover .irms-glass-badge span {
  color: #ffffff !important;
}

@media (max-width: 1400px) {
  .irms-glass-badge .cand-label {
    display: none;
  }
}

.irms-count-badge {
  font-size: 0.68rem;
  font-weight: 700;
  padding: 1px 7px;
  border-radius: 9999px;
  background: rgba(56, 189, 248, 0.15);
  color: #38bdf8;
  border: 1px solid rgba(56, 189, 248, 0.3);
  flex-shrink: 0;
}

.irms-filter-bar {
  text-align: center;
  margin: 16px 0 20px 0;
}

.irms-search-group {
  display: flex;
  justify-content: center;
  gap: 8px;
  max-width: 720px;
  margin: 0 auto 14px auto;
}

.irms-search-input {
  flex: 1;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 6px;
  color: #ffffff;
  padding: 8px 14px;
  font-size: 0.9rem;
  font-family: inherit;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.irms-search-input:focus {
  border-color: #38bdf8;
  box-shadow: 0 0 10px rgba(56, 189, 248, 0.25);
}

.irms-search-btn {
  background: #fcd116;
  color: #0b1d33;
  border: none;
  border-radius: 6px;
  padding: 8px 20px;
  font-weight: 800;
  font-size: 0.88rem;
  cursor: pointer;
  font-family: inherit;
  transition: background 0.15s ease;
}

.irms-search-btn:hover {
  background: #ffe359;
}

.irms-btn-all {
  background: #fcd116;
  color: #0b1d33;
  border: none;
  border-radius: 4px;
  padding: 6px 16px;
  font-weight: 800;
  font-size: 0.8rem;
  cursor: pointer;
  display: inline-block;
  margin-bottom: 10px;
  font-family: inherit;
  transition: opacity 0.15s ease;
}

.irms-btn-all:hover {
  opacity: 0.9;
}

.irms-alpha-label {
  display: block;
  font-size: 0.76rem;
  font-weight: 700;
  color: #94a3b8;
  margin-bottom: 8px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.irms-alpha-bar {
  display: flex;
  justify-content: center;
  gap: 4px;
  flex-wrap: wrap;
}

.irms-alpha-btn {
  background: rgba(14, 77, 141, 0.3);
  border: 1px solid rgba(0, 163, 221, 0.35);
  color: #67d8ff;
  font-weight: 700;
  padding: 4px 9px;
  border-radius: 4px;
  font-size: 0.78rem;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s ease;
}

.irms-alpha-btn:hover,
.irms-alpha-btn.active {
  background: #00a3dd;
  color: #ffffff;
  border-color: #00a3dd;
  box-shadow: 0 0 8px rgba(0, 163, 221, 0.5);
}

.hierarchy-breadcrumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  color: #94a3b8;
  margin-bottom: 18px;
  flex-wrap: wrap;
}

.hierarchy-breadcrumbs button {
  background: none;
  border: none;
  color: #38bdf8;
  font-weight: 700;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
  font-size: inherit;
  text-decoration: none;
  transition: color 0.15s ease;
}

.hierarchy-breadcrumbs button:hover {
  color: #ffffff;
  text-decoration: underline;
}

.hierarchy-breadcrumbs .separator {
  color: #64748b;
  font-weight: 400;
}

.hierarchy-breadcrumbs .current {
  color: #f8fafc;
  font-weight: 700;
}

@media (max-width: 900px) {
  .irms-container {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 550px) {
  .irms-container {
    grid-template-columns: 1fr !important;
  }
}

/* ─────────────────────────────────────────────────────────────────────────── */
/* NECTA PREMS TOP NAVBAR STYLING (FTZA System Default Theme & Maiandra GD)     */
/* ─────────────────────────────────────────────────────────────────────────── */
.prems-main-header,
.prems-main-header span:not([class*="fa"]),
.prems-main-header button:not([class*="fa"]),
.prems-main-header a:not([class*="fa"]),
.prems-main-header input,
.prems-main-header select,
.select2-selection__rendered,
.select2-search__field,
.select2-results__option,
.prems-dropdown-header,
.prems-dropdown-item {
  font-family: 'Maiandra GD', sans-serif !important;
}

/* Explicitly protect FontAwesome font family from being overridden */
.prems-main-header i,
.prems-main-header [class*="fa-"],
.prems-main-header .fa,
.prems-main-header .fas,
.prems-main-header .far,
.prems-main-header .fa-solid,
.prems-main-header .fa-regular {
  font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", FontAwesome, sans-serif !important;
  font-style: normal;
}

.prems-main-header {
  background: linear-gradient(180deg, #071A3D 0%, #0a192f 100%) !important;
  border-bottom: 1px solid rgba(6, 182, 212, 0.25) !important;
  padding: 8px 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5) !important;
  z-index: 1040;
  min-height: 54px;
  gap: 12px;
  font-family: 'Maiandra GD', sans-serif !important;
}

.prems-header-left {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.prems-pushmenu-btn {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(6, 182, 212, 0.25) !important;
  color: #22d3ee !important;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 1.05rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  font-family: 'Maiandra GD', sans-serif !important;
}

.prems-pushmenu-btn:hover {
  background: rgba(6, 182, 212, 0.2) !important;
  border-color: #06b6d4 !important;
  color: #ffffff !important;
}

.prems-brand-badge {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #ffffff;
  font-weight: 800;
  letter-spacing: 0.5px;
  font-size: 0.98rem;
  font-family: 'Maiandra GD', sans-serif !important;
}

.prems-brand-icon {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  background: linear-gradient(135deg, #fcd116 0%, #d97706 100%) !important;
  color: #0a192f !important;
  display: grid;
  place-items: center;
  font-size: 0.98rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.35);
}

.prems-header-right {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  flex-wrap: nowrap;
  overflow: visible !important;
  flex-shrink: 1;
}

.prems-filters-group {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: nowrap;
  flex-shrink: 1;
}

.prems-select2-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}

/* NECTA PREMS Select2 Component Styles (System Default Dark Theme & Maiandra GD) */
.select2-container--default .select2-selection--single {
  background-color: rgba(17, 34, 64, 0.92) !important;
  border: 1px solid rgba(6, 182, 212, 0.32) !important;
  border-radius: 6px !important;
  height: 33px !important;
  display: flex !important;
  align-items: center !important;
  position: relative !important;
  cursor: pointer !important;
  outline: none !important;
  box-sizing: border-box !important;
  font-family: 'Maiandra GD', sans-serif !important;
  transition: all 0.18s ease !important;
}

.select2-container--default .select2-selection--single:hover {
  background-color: rgba(23, 42, 77, 0.98) !important;
  border-color: rgba(6, 182, 212, 0.55) !important;
}

.select2-container--default.select2-container--open .select2-selection--single {
  background-color: #112240 !important;
  border-color: #06b6d4 !important;
  box-shadow: 0 0 0 2px rgba(6, 182, 212, 0.25) !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: #f8fafc !important;
  padding-left: 10px !important;
  padding-right: 24px !important;
  font-size: 0.83rem !important;
  font-weight: 600 !important;
  font-family: 'Maiandra GD', sans-serif !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  line-height: 31px !important;
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: #94a3b8 !important;
  font-weight: 400 !important;
  font-family: 'Maiandra GD', sans-serif !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 31px !important;
  position: absolute !important;
  top: 1px !important;
  right: 7px !important;
  width: 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow b {
  border-color: #38bdf8 transparent transparent transparent !important;
  border-style: solid !important;
  border-width: 5px 4px 0 4px !important;
  height: 0 !important;
  left: 50% !important;
  margin-left: -4px !important;
  margin-top: -2px !important;
  position: absolute !important;
  top: 50% !important;
  width: 0 !important;
  transition: transform 0.15s ease !important;
}

.select2-container--default.select2-container--open {
  z-index: 1070 !important;
}

.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
  border-color: transparent transparent #38bdf8 transparent !important;
  border-width: 0 4px 5px 4px !important;
}

.select2-container--default .select2-selection--single .select2-selection__clear {
  cursor: pointer;
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: 700;
  color: #94a3b8;
  font-size: 1.15rem;
  line-height: 1;
  padding: 2px 4px;
  border-radius: 4px;
  transition: all 0.15s ease;
  z-index: 2;
}

.select2-container--default .select2-selection--single .select2-selection__clear:hover {
  color: #f87171;
  background-color: rgba(239, 68, 68, 0.15);
}

/* Dropdown Wrapper & Dropdown Box */
.dropdown-wrapper {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  z-index: 1051;
}

.select2-dropdown {
  background-color: #0f1d36 !important;
  border: 1px solid rgba(6, 182, 212, 0.42) !important;
  border-radius: 8px !important;
  box-sizing: border-box !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  top: 4px !important;
  z-index: 1051 !important;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.65), 0 0 0 1px rgba(255, 255, 255, 0.05) !important;
  animation: prems-dropdown-fade 0.15s ease-out !important;
  font-family: 'Maiandra GD', sans-serif !important;
  overflow: hidden !important;
}

@keyframes prems-dropdown-fade {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Search Option in the Wrapper */
.select2-search--dropdown {
  display: block !important;
  padding: 8px !important;
  background-color: #0a1628 !important;
  border-bottom: 1px solid rgba(6, 182, 212, 0.22) !important;
}

.select2-search--dropdown .select2-search__field {
  padding: 6px 10px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  border: 1px solid rgba(6, 182, 212, 0.32) !important;
  border-radius: 5px !important;
  outline: none !important;
  font-size: 0.82rem !important;
  color: #f8fafc !important;
  background-color: #112240 !important;
  font-family: 'Maiandra GD', sans-serif !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.select2-search--dropdown .select2-search__field:focus {
  border-color: #06b6d4 !important;
  box-shadow: 0 0 0 2px rgba(6, 182, 212, 0.25) !important;
}

.select2-results {
  display: block !important;
}

.select2-results__options {
  list-style: none !important;
  margin: 0 !important;
  padding: 4px 0 !important;
  max-height: 250px !important;
  overflow-y: auto !important;
  font-family: 'Maiandra GD', sans-serif !important;
}

.select2-results__options::-webkit-scrollbar {
  width: 5px;
}
.select2-results__options::-webkit-scrollbar-thumb {
  background: rgba(6, 182, 212, 0.3);
  border-radius: 999px;
}

.select2-results__option {
  padding: 8px 12px !important;
  font-size: 0.83rem !important;
  color: #cbd5e1 !important;
  cursor: pointer !important;
  user-select: none !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  font-family: 'Maiandra GD', sans-serif !important;
  transition: background-color 0.12s ease, color 0.12s ease !important;
}

.select2-results__option:hover,
.select2-results__option--highlighted {
  background-color: rgba(6, 182, 212, 0.2) !important;
  color: #38bdf8 !important;
}

.select2-results__option--selected {
  background-color: rgba(6, 182, 212, 0.35) !important;
  color: #ffffff !important;
  font-weight: 700 !important;
}

.select2-results__option--highlighted.select2-results__option--selected {
  background-color: rgba(6, 182, 212, 0.45) !important;
  color: #ffffff !important;
}

.select2-results__message {
  color: #94a3b8 !important;
  font-size: 0.80rem !important;
  padding: 10px 14px !important;
  text-align: center !important;
  cursor: default !important;
  font-family: 'Maiandra GD', sans-serif !important;
}

/* Navbar Search in Wrapper */
.prems-nav-search-wrap {
  position: relative;
}

.prems-nav-btn {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(6, 182, 212, 0.25) !important;
  color: #22d3ee !important;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 0.95rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  font-family: 'Maiandra GD', sans-serif !important;
}

.prems-nav-btn:hover {
  background: rgba(6, 182, 212, 0.2) !important;
  border-color: #06b6d4 !important;
  color: #ffffff !important;
}

.navbar-search-block {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  width: 340px;
  background: #112240 !important;
  border: 1px solid rgba(6, 182, 212, 0.4) !important;
  border-radius: 8px !important;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.65) !important;
  padding: 8px;
  z-index: 1055;
  animation: prems-dropdown-fade 0.15s ease-out;
  font-family: 'Maiandra GD', sans-serif !important;
}

.navbar-search-block .input-group {
  display: flex;
  width: 100%;
}

.form-control-navbar {
  border: 1px solid rgba(6, 182, 212, 0.3) !important;
  border-right: none !important;
  padding: 6px 10px;
  font-size: 0.82rem;
  outline: none;
  flex: 1;
  border-radius: 5px 0 0 5px;
  color: #f8fafc !important;
  background-color: #0a1628 !important;
  font-family: 'Maiandra GD', sans-serif !important;
}

.form-control-navbar:focus {
  border-color: #06b6d4 !important;
}

.btn-navbar {
  background-color: rgba(6, 182, 212, 0.15) !important;
  border: 1px solid rgba(6, 182, 212, 0.3) !important;
  color: #38bdf8 !important;
  padding: 6px 10px;
  cursor: pointer;
  font-size: 0.82rem;
  transition: all 0.15s ease;
  font-family: 'Maiandra GD', sans-serif !important;
}

.btn-navbar:hover {
  background-color: rgba(6, 182, 212, 0.3) !important;
  color: #ffffff !important;
}

.btn-navbar:last-child {
  border-radius: 0 5px 5px 0;
}

.prems-reload-btn {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(6, 182, 212, 0.25) !important;
  color: #22d3ee !important;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 0.95rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  font-family: 'Maiandra GD', sans-serif !important;
}

.prems-reload-btn:hover {
  background: rgba(6, 182, 212, 0.2) !important;
  border-color: #06b6d4 !important;
  color: #fcd116 !important;
}

.prems-reload-btn.spinning i,
.prems-reload-btn.spinning svg {
  animation: prems-spin 0.8s linear infinite;
}

@keyframes prems-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.prems-notification-wrap {
  position: relative;
}

.prems-notification-btn {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(6, 182, 212, 0.25) !important;
  color: #22d3ee !important;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 1.05rem;
  cursor: pointer;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  font-family: 'Maiandra GD', sans-serif !important;
}

.prems-notification-btn:hover {
  background: rgba(6, 182, 212, 0.2) !important;
  border-color: #06b6d4 !important;
  color: #ffffff !important;
}

.prems-navbar-badge {
  position: absolute;
  top: 1px;
  right: 2px;
  background: #fcd116 !important;
  color: #0a192f !important;
  font-size: 0.62rem;
  font-weight: 800;
  padding: 1px 4.5px;
  border-radius: 8px;
  line-height: 1;
  box-shadow: 0 1px 4px rgba(0,0,0,0.4);
  font-family: 'Maiandra GD', sans-serif !important;
}

.prems-user-menu {
  position: relative;
}

.prems-user-btn {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(6, 182, 212, 0.25) !important;
  color: #f8fafc !important;
  padding: 4px 10px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 0.84rem;
  font-weight: 600;
  font-family: 'Maiandra GD', sans-serif !important;
  transition: all 0.2s ease;
}

.prems-user-btn:hover {
  background: rgba(6, 182, 212, 0.2) !important;
  border-color: #06b6d4 !important;
}

.prems-user-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid rgba(6, 182, 212, 0.4);
  background: linear-gradient(135deg, #fcd116 0%, #d97706 100%) !important;
  color: #0a192f !important;
  display: grid;
  place-items: center;
  font-size: 0.78rem;
  font-weight: 800;
  font-family: 'Maiandra GD', sans-serif !important;
}

.prems-dropdown-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  background: #112240 !important;
  color: #f8fafc !important;
  border-radius: 8px;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.65) !important;
  border: 1px solid rgba(6, 182, 212, 0.35) !important;
  min-width: 240px;
  z-index: 1050;
  overflow: hidden;
  animation: prems-fade-in 0.15s ease-out;
  font-family: 'Maiandra GD', sans-serif !important;
}

@keyframes prems-fade-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

.prems-dropdown-header {
  padding: 10px 14px;
  font-weight: 700;
  font-size: 0.88rem;
  color: #f8fafc !important;
  background: #0d1b2a !important;
  border-bottom: 1px solid rgba(6, 182, 212, 0.25) !important;
  font-family: 'Maiandra GD', sans-serif !important;
}

.prems-dropdown-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  font-size: 0.84rem;
  color: #cbd5e1 !important;
  text-decoration: none;
  background: transparent;
  border: none;
  width: 100%;
  text-align: left;
  cursor: pointer;
  font-family: 'Maiandra GD', sans-serif !important;
  transition: background 0.15s ease, color 0.15s ease;
}

.prems-dropdown-item:hover {
  background: rgba(6, 182, 212, 0.16) !important;
  color: #ffffff !important;
}

.prems-dropdown-item.danger {
  color: #f87171 !important;
}

.prems-dropdown-item.danger:hover {
  background: rgba(239, 68, 68, 0.18) !important;
  color: #fca5a5 !important;
}

.prems-dropdown-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.08) !important;
  margin: 3px 0;
}

@media (max-width: 1200px) {
  .prems-select2-wrap.school {
    max-width: 220px;
  }
}

@media (max-width: 992px) {
  .prems-main-header {
    flex-wrap: wrap;
    gap: 8px;
  }
  .prems-header-right {
    width: 100%;
    justify-content: space-between;
    overflow-x: auto;
    padding-bottom: 4px;
  }
}

/* Sidebar Collapse / Expansion Responsive Behaviors */
.joint-exams-root.sidebar-collapsed .prems-main-header {
  padding: 8px 18px;
}

.joint-exams-root.sidebar-expanded .prems-main-header {
  padding: 8px 12px;
}

.joint-exams-root.sidebar-expanded .prems-select2-wrap,
.joint-exams-root.sidebar-collapsed .prems-select2-wrap {
  transition: width 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.prems-filters-group {
  display: flex !important;
  align-items: center !important;
  flex-shrink: 1 !important;
  min-width: 0 !important;
  transition: gap 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Complete removal of all vertical and horizontal scrollbars across dashboard */
html, body, .joint-exams-root, .joint-main-column, .joint-main-column main, .joint-sidebar-scroll {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar,
.joint-exams-root::-webkit-scrollbar,
.joint-exams-root *::-webkit-scrollbar,
.joint-main-column::-webkit-scrollbar,
.joint-main-column *::-webkit-scrollbar,
.joint-sidebar-scroll::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* ==========================================================================
   NECTA PREMS Live Active Filter Indicator Banner
   ========================================================================== */
.prems-active-filter-banner {
  background: linear-gradient(135deg, rgba(7, 26, 61, 0.95) 0%, rgba(10, 25, 47, 0.95) 100%) !important;
  border: 1px solid rgba(6, 182, 212, 0.35) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
  border-radius: 8px;
  padding: 8px 16px;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  font-family: 'Maiandra GD', sans-serif !important;
  animation: prems-filter-fade 0.2s ease-out;
}

@keyframes prems-filter-fade {
  from { opacity: 0; transform: translateY(-3px); }
  to { opacity: 1; transform: translateY(0); }
}

.prems-active-filter-left {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.prems-filter-pulse-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: #38bdf8;
  background: rgba(6, 182, 212, 0.12);
  padding: 3px 8px;
  border-radius: 4px;
  border: 1px solid rgba(6, 182, 212, 0.28);
}

.prems-pulse-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: #22d3ee;
  box-shadow: 0 0 8px #22d3ee;
  animation: prems-dot-pulse 1.6s infinite ease-in-out;
}

@keyframes prems-dot-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.75); }
}

.prems-filter-pills-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.prems-filter-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(56, 189, 248, 0.3);
  border-radius: 6px;
  padding: 3px 9px;
  font-size: 0.81rem;
  color: #f1f5f9;
}

.prems-filter-pill strong {
  color: #7dd3fc;
  font-weight: 600;
}

.prems-filter-pill-remove {
  cursor: pointer;
  color: #94a3b8;
  font-weight: 700;
  font-size: 1.05rem;
  line-height: 1;
  background: none;
  border: none;
  padding: 0 2px;
  margin-left: 2px;
  transition: color 0.12s ease;
}

.prems-filter-pill-remove:hover {
  color: #f87171;
}

.prems-clear-all-filters-btn {
  background: rgba(239, 68, 68, 0.12) !important;
  border: 1px solid rgba(239, 68, 68, 0.35) !important;
  color: #fca5a5 !important;
  border-radius: 6px;
  padding: 4px 12px;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'Maiandra GD', sans-serif !important;
  transition: all 0.18s ease;
}

.prems-clear-all-filters-btn:hover {
  background: rgba(239, 68, 68, 0.25) !important;
  border-color: #ef4444 !important;
  color: #ffffff !important;
}

/* Explicitly protect RemixIcon fonts globally across all joint modules */
.ri,
[class*="ri-"],
[class^="ri-"] {
  font-family: 'remixicon' !important;
  font-style: normal !important;
  display: inline-block;
}

/* ══════════════════════════════════════════════════════════════════════════════
   HIGH-DEFINITION ONLINE PDF VIEWER (MWANZA SARS DESIGN SYSTEM)
   ══════════════════════════════════════════════════════════════════════════════ */
.pdf-viewer-container {
  display: flex;
  flex-direction: column;
  height: 100vh;
  width: 100%;
  background: #334155;
  font-family: 'Maiandra GD', sans-serif !important;
}

.pdf-toolbar {
  background: #1e293b;
  color: #ffffff;
  padding: 10px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.15);
  z-index: 1000;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-family: 'Maiandra GD', sans-serif !important;
}

.pdf-toolbar button,
.pdf-toolbar a,
.pdf-toolbar div,
.pdf-toolbar span {
  font-family: 'Maiandra GD', sans-serif !important;
}

.pdf-content {
  flex: 1;
  overflow-y: auto;
  padding: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 25px;
  background: #334155;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

.pdf-page-wrapper {
  position: relative;
  background: #ffffff;
  box-shadow: 0 10px 25px -3px rgba(0, 0, 0, 0.25), 0 4px 6px -4px rgba(0, 0, 0, 0.2);
  margin-bottom: 15px;
  max-width: 100%;
  border-radius: 4px;
}

.pdf-page-canvas {
  display: block;
  max-width: 100%;
  height: auto !important;
  border-radius: 4px;
}

.back-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #0f172a;
  color: #ffffff !important;
  padding: 8px 16px;
  border-radius: 10px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
  transition: all 0.2s ease;
  border: 1px solid #334155;
  cursor: pointer;
  font-family: 'Maiandra GD', sans-serif !important;
}

.back-btn:hover {
  background: #1e293b;
  border-color: #475569;
  transform: translateX(-2px);
}

.page-indicator {
  background: rgba(0, 0, 0, 0.45);
  color: #ffffff;
  padding: 4px 14px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  letter-spacing: 0.05em;
  font-family: 'Maiandra GD', sans-serif !important;
}

.download-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #16a34a;
  color: #ffffff !important;
  padding: 8px 16px;
  border-radius: 10px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  transition: all 0.2s ease;
  border: 1px solid rgba(255, 255, 255, 0.2);
  white-space: nowrap;
  font-family: 'Maiandra GD', sans-serif !important;
  cursor: pointer;
}

.download-btn:hover {
  background: #15803d;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(22, 163, 74, 0.35);
}

.doc-name {
  max-width: 38vw;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(226, 232, 240, 0.9);
  font-family: 'Maiandra GD', sans-serif !important;
}

#loading-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #1e293b;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  color: #ffffff;
  transition: opacity 0.5s ease-out;
  font-family: 'Maiandra GD', sans-serif !important;
}

.loader-pulse {
  width: 60px;
  height: 60px;
  background-color: #3b82f6;
  border-radius: 100%;
  animation: pulse 1.2s infinite ease-in-out;
  margin-bottom: 20px;
}

@keyframes pulse {
  0% { transform: scale(0); opacity: 0.8; }
  100% { transform: scale(1); opacity: 0; }
}

.loading-text {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 12px;
  font-family: 'Maiandra GD', sans-serif !important;
}
