/*
 * UBR Government Theme — single source of truth for the SWD-AJK palette.
 * Loaded after app.min.css; light-only (dark mode removed by design).
 *
 * Brand reasoning:
 *   • Deep teal evokes the Jhelum/Neelum waters that frame AJK.
 *   • Antique gold is the heritage accent used on AJK government letterheads.
 *   • Pakistan-flag green for confirmation states.
 *   • Warm off-white surfaces feel formal without being cold.
 */

:root,
[data-bs-theme=light] {
  /* ---------- AJK government palette ---------- */
  --ajk-teal:        #0F5366;
  --ajk-teal-dark:   #0A3D4D;
  --ajk-teal-light:  #E6F1F4;
  --ajk-gold:        #C8962A;
  --ajk-gold-light:  #F5E9CC;
  --ajk-green:       #1B5E20;
  --ajk-green-light: #E5F1E6;
  --ajk-amber:       #B45309;
  --ajk-red:         #991B1B;
  --ajk-navy:        #1E3A5F;

  --ajk-ink:         #111827;
  --ajk-text:        #374151;
  --ajk-muted:       #6B7280;
  --ajk-border:      #E5E7EB;
  --ajk-surface:     #FFFFFF;
  --ajk-surface-alt: #F7F8FA;

  /* ---------- Bootstrap mapping ---------- */
  --bs-blue:    var(--ajk-teal);
  --bs-purple:  #5C6B7A;
  --bs-red:     var(--ajk-red);
  --bs-yellow:  var(--ajk-amber);
  --bs-green:   var(--ajk-green);
  --bs-cyan:    var(--ajk-navy);

  --bs-primary:   var(--ajk-teal);
  --bs-secondary: #5C6B7A;
  --bs-success:   var(--ajk-green);
  --bs-info:      var(--ajk-navy);
  --bs-warning:   var(--ajk-amber);
  --bs-danger:    var(--ajk-red);

  --bs-primary-rgb:   15, 83, 102;
  --bs-secondary-rgb: 92, 107, 122;
  --bs-success-rgb:   27, 94, 32;
  --bs-info-rgb:      30, 58, 95;
  --bs-warning-rgb:   180, 83, 9;
  --bs-danger-rgb:    153, 27, 27;

  --bs-primary-text-emphasis:   #07303C;
  --bs-secondary-text-emphasis: #252B31;
  --bs-success-text-emphasis:   #0E3010;
  --bs-info-text-emphasis:      #0F1D30;
  --bs-warning-text-emphasis:   #5A2904;
  --bs-danger-text-emphasis:    #4D0E0E;

  --bs-primary-bg-subtle:   var(--ajk-teal-light);
  --bs-secondary-bg-subtle: #DDE0E4;
  --bs-success-bg-subtle:   var(--ajk-green-light);
  --bs-info-bg-subtle:      #E2E8F0;
  --bs-warning-bg-subtle:   #FBE4CB;
  --bs-danger-bg-subtle:    #F1D6D6;

  --bs-primary-border-subtle:   #B5D2DA;
  --bs-secondary-border-subtle: #BBC1C9;
  --bs-success-border-subtle:   #B3CFB5;
  --bs-info-border-subtle:      #BCC8D6;
  --bs-warning-border-subtle:   #F0BD92;
  --bs-danger-border-subtle:    #DBB1B1;

  --bs-link-color: var(--ajk-teal);
  --bs-link-color-rgb: 15, 83, 102;
  --bs-link-hover-color: var(--ajk-teal-dark);
  --bs-link-hover-color-rgb: 10, 61, 77;

  --bs-focus-ring-color: rgba(15, 83, 102, 0.25);

  --bs-form-valid-color: var(--ajk-green);
  --bs-form-valid-border-color: var(--ajk-green);
  --bs-form-invalid-color: var(--ajk-red);
  --bs-form-invalid-border-color: var(--ajk-red);

  --bs-body-bg: var(--ajk-surface-alt);
  --bs-body-bg-rgb: 247, 248, 250;
  --bs-body-color: var(--ajk-text);
  --bs-heading-color: var(--ajk-ink);

  /* Sidebar */
  --bs-sidebar-item-hover: var(--ajk-teal);
  --bs-sidebar-item-active: var(--ajk-teal);
  --bs-sidebar-item-active-bg: rgba(15, 83, 102, 0.10);
}

/* Force light theme regardless of data-bs-theme value (dark mode disabled) */
html[data-bs-theme=dark] { color-scheme: light; }

/* ===== Typography polish — formal but not stuffy ===== */
body {
  font-family: 'Source Sans 3', 'Segoe UI', system-ui, sans-serif;
  color: var(--ajk-text);
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
  color: var(--ajk-ink);
  letter-spacing: -0.005em;
}
.text-muted { color: var(--ajk-muted) !important; }

/* ===== Government emblem strip (sits above admin topbar) =====
   The default Hando layout fixes the topbar AND sidebar to top:0, so
   placing the strip in normal flow gets covered. We pin the strip to
   the viewport top with a high z-index, then push the rest of the
   chrome down by its height (--gov-strip-h). */
:root { --gov-strip-h: 46px; }

.gov-strip {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1101;                /* above .topbar-custom (z-index 1000) */
  height: var(--gov-strip-h);
  background: linear-gradient(90deg, var(--ajk-teal) 0%, var(--ajk-teal-dark) 100%);
  color: #fff;
  border-bottom: 3px solid var(--ajk-gold);
  padding: 6px 0;
  font-size: 12px;
  box-shadow: 0 2px 4px rgba(15, 83, 102, 0.12);
}
.gov-strip .gov-emblem {
  width: 28px; height: 28px; border-radius: 50%;
  background: #fff; color: var(--ajk-teal);
  display: inline-flex; align-items: center; justify-content: center;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 11px; font-weight: 700;
  border: 2px solid var(--ajk-gold);
  flex-shrink: 0;
}
.gov-strip .gov-strip-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600; letter-spacing: 0.02em;
  font-size: 13px; line-height: 1.1;
}
.gov-strip .gov-strip-sub { opacity: 0.85; font-size: 11px; line-height: 1.1; }

/* Push the fixed Hando chrome down so it clears the gov-strip */
.topbar-custom    { top: var(--gov-strip-h) !important; }
.app-sidebar-menu { top: var(--gov-strip-h) !important; }
.logo-box         { top: var(--gov-strip-h) !important; }
.content-page     { margin-top: calc(70px + var(--gov-strip-h)) !important; }

/* On narrow screens the strip text wraps less prettily — shrink it a bit */
@media (max-width: 575.98px) {
  :root { --gov-strip-h: 44px; }
  .gov-strip .gov-strip-title { font-size: 12px; }
  .gov-strip .gov-strip-sub   { display: none; }
}

/* ===== Topbar polish ===== */
.topbar-custom {
  background: var(--ajk-surface) !important;
  border-bottom: 1px solid var(--ajk-border);
  box-shadow: 0 1px 3px rgba(15, 83, 102, 0.04);
}

/* ===== Sidebar (formal-government look with subtle depth) ===== */
.app-sidebar-menu {
  background: linear-gradient(180deg, #FFFFFF 0%, #FAFBFC 100%) !important;
  border-right: 1px solid var(--ajk-border);
  box-shadow: 1px 0 0 rgba(15, 83, 102, 0.04);
}

/* Logo strip — gold underline echoes the gov-strip border */
.logo-box {
  background: var(--ajk-surface) !important;
  border-bottom: 2px solid var(--ajk-gold) !important;
  box-shadow: 0 1px 0 rgba(15, 83, 102, 0.06);
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 1000;
}

/* Section dividers — small caps, gold dot */
#side-menu .menu-title {
  color: var(--ajk-teal-dark) !important;
  font-size: 10px !important;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  padding: 18px 22px 6px !important;
  position: relative;
}
#side-menu .menu-title::before {
  content: "";
  display: inline-block;
  width: 6px; height: 6px;
  background: var(--ajk-gold);
  border-radius: 50%;
  margin-right: 8px;
  vertical-align: middle;
}

/* Menu items */
#side-menu li a.tp-link {
  position: relative;
  border-left: 3px solid transparent;
  padding: 10px 18px !important;
  margin: 1px 8px;
  border-radius: 0 6px 6px 0;
  color: #374151 !important;
  font-weight: 500;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, padding-left 0.18s ease;
}
#side-menu li a.tp-link svg,
#side-menu li a.tp-link i[data-feather] {
  width: 18px !important;
  height: 18px !important;
  margin-right: 10px;
  color: var(--ajk-muted);
  transition: color 0.18s ease, transform 0.18s ease;
}
#side-menu li a.tp-link:hover {
  background: linear-gradient(90deg, var(--ajk-teal-light) 0%, rgba(230, 241, 244, 0) 100%);
  border-left-color: var(--ajk-gold);
  color: var(--ajk-teal-dark) !important;
  padding-left: 22px !important;
}
#side-menu li a.tp-link:hover svg,
#side-menu li a.tp-link:hover i[data-feather] {
  color: var(--ajk-gold);
  transform: translateX(2px);
}
#side-menu li.active > a.tp-link,
#side-menu li a.tp-link.active {
  background: linear-gradient(90deg, var(--ajk-teal-light) 0%, rgba(230, 241, 244, 0.4) 100%) !important;
  border-left-color: var(--ajk-teal) !important;
  color: var(--ajk-teal-dark) !important;
  font-weight: 600;
}
#side-menu li.active > a.tp-link svg,
#side-menu li a.tp-link.active svg,
#side-menu li.active > a.tp-link i[data-feather],
#side-menu li a.tp-link.active i[data-feather] {
  color: var(--ajk-teal) !important;
}

/* Sub-menu (audit logs nested) — dimmer, slimmer */
#side-menu .nav-second-level li a.tp-link {
  padding: 7px 18px 7px 38px !important;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--ajk-muted) !important;
}
#side-menu .nav-second-level li a.tp-link:hover {
  color: var(--ajk-teal-dark) !important;
  background: var(--ajk-teal-light);
}
#side-menu .menu-arrow {
  color: var(--ajk-muted);
  transition: transform 0.2s ease;
}

/* SimpleBar (the inner scroller inside .app-sidebar-menu) gets the accent track */
.app-sidebar-menu .simplebar-scrollbar::before {
  background: var(--ajk-teal) !important;
  opacity: 0.35;
}

/* ===== Cards ===== */
.card {
  border: 1px solid var(--ajk-border);
  border-radius: 0.6rem;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04);
}
.card .card-header {
  background: var(--ajk-surface);
  border-bottom: 1px solid var(--ajk-border);
  font-weight: 600;
}

/* ===== Buttons ===== */
.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--ajk-teal);
  --bs-btn-border-color: var(--ajk-teal);
  --bs-btn-hover-bg: var(--ajk-teal-dark);
  --bs-btn-hover-border-color: var(--ajk-teal-dark);
  --bs-btn-active-bg: var(--ajk-teal-dark);
  --bs-btn-active-border-color: var(--ajk-teal-dark);
  --bs-btn-disabled-bg: var(--ajk-teal);
  --bs-btn-disabled-border-color: var(--ajk-teal);
}
.btn-secondary {
  --bs-btn-bg: #5C6B7A; --bs-btn-border-color: #5C6B7A;
  --bs-btn-hover-bg: #4F5C69; --bs-btn-hover-border-color: #4F5C69;
  --bs-btn-active-bg: #4F5C69; --bs-btn-active-border-color: #4F5C69;
}
.btn-success {
  --bs-btn-bg: var(--ajk-green); --bs-btn-border-color: var(--ajk-green);
  --bs-btn-hover-bg: #154D17; --bs-btn-hover-border-color: #154D17;
}
.btn-warning {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--ajk-amber); --bs-btn-border-color: var(--ajk-amber);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #8C4308; --bs-btn-hover-border-color: #8C4308;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #8C4308;
}
.btn-danger {
  --bs-btn-bg: var(--ajk-red); --bs-btn-border-color: var(--ajk-red);
  --bs-btn-hover-bg: #7E1414; --bs-btn-hover-border-color: #7E1414;
}
.btn-info {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--ajk-navy); --bs-btn-border-color: var(--ajk-navy);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #152840; --bs-btn-hover-border-color: #152840;
}

/* Outline */
.btn-outline-primary {
  --bs-btn-color: var(--ajk-teal); --bs-btn-border-color: var(--ajk-teal);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ajk-teal); --bs-btn-hover-border-color: var(--ajk-teal);
  --bs-btn-active-bg: var(--ajk-teal); --bs-btn-active-border-color: var(--ajk-teal);
}
.btn-outline-secondary {
  --bs-btn-color: #5C6B7A; --bs-btn-border-color: #5C6B7A;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #5C6B7A; --bs-btn-hover-border-color: #5C6B7A;
}
.btn-outline-success {
  --bs-btn-color: var(--ajk-green); --bs-btn-border-color: var(--ajk-green);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ajk-green); --bs-btn-hover-border-color: var(--ajk-green);
}
.btn-outline-warning {
  --bs-btn-color: var(--ajk-amber); --bs-btn-border-color: var(--ajk-amber);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ajk-amber); --bs-btn-hover-border-color: var(--ajk-amber);
}
.btn-outline-danger {
  --bs-btn-color: var(--ajk-red); --bs-btn-border-color: var(--ajk-red);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ajk-red); --bs-btn-hover-border-color: var(--ajk-red);
}
.btn-outline-info {
  --bs-btn-color: var(--ajk-navy); --bs-btn-border-color: var(--ajk-navy);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ajk-navy); --bs-btn-hover-border-color: var(--ajk-navy);
}

/* Gold accent button — for hero / CTA */
.btn-gold {
  background: var(--ajk-gold); border-color: var(--ajk-gold); color: #fff;
}
.btn-gold:hover { background: #A57820; border-color: #A57820; color: #fff; }

/* ===== Background utilities ===== */
.bg-primary   { background-color: var(--ajk-teal)  !important; }
.bg-secondary { background-color: #5C6B7A          !important; }
.bg-success   { background-color: var(--ajk-green) !important; }
.bg-info      { background-color: var(--ajk-navy)  !important; }
.bg-warning   { background-color: var(--ajk-amber) !important; }
.bg-danger    { background-color: var(--ajk-red)   !important; }

.text-primary   { color: var(--ajk-teal)  !important; }
.text-secondary { color: #5C6B7A          !important; }
.text-success   { color: var(--ajk-green) !important; }
.text-info      { color: var(--ajk-navy)  !important; }
.text-warning   { color: var(--ajk-amber) !important; }
.text-danger    { color: var(--ajk-red)   !important; }

.bg-primary-subtle   { background-color: var(--ajk-teal-light)  !important; }
.bg-secondary-subtle { background-color: #ECEEF1                !important; }
.bg-success-subtle   { background-color: var(--ajk-green-light) !important; }
.bg-info-subtle      { background-color: #E2E8F0                !important; }
.bg-warning-subtle   { background-color: #FBE4CB                !important; }
.bg-danger-subtle    { background-color: #F1D6D6                !important; }

/* ===== Hero / gradient panels ===== */
.hero-section,
.bg-gradient-primary {
  background: linear-gradient(135deg, var(--ajk-teal) 0%, var(--ajk-teal-dark) 100%) !important;
  border-bottom: 4px solid var(--ajk-gold);
}

/* ===== Forms ===== */
.form-control:focus,
.form-select:focus {
  border-color: var(--ajk-teal);
  box-shadow: 0 0 0 0.2rem rgba(15, 83, 102, 0.18);
}
.btn:focus, .btn:active:focus,
.btn-link.nav-link:focus,
.form-check-input:focus {
  box-shadow: 0 0 0 0.1rem #fff, 0 0 0 0.25rem var(--ajk-teal);
}

/* ===== Tables ===== */
.table > thead {
  background: var(--ajk-teal-light);
}
.table > thead th {
  color: var(--ajk-teal-dark);
  font-weight: 600;
  letter-spacing: 0.02em;
  border-bottom: 2px solid var(--ajk-teal);
}
.table-light, thead.table-light {
  --bs-table-bg: var(--ajk-teal-light);
  --bs-table-color: var(--ajk-teal-dark);
}

/* ===== Badges ===== */
.badge { font-weight: 600; letter-spacing: 0.02em; }

/* ===== Verify page certificate ===== */
.cert-card       { border-color: var(--ajk-teal) !important; }
.cert-header     { border-color: var(--ajk-teal) !important; }
.cert-header h2  { color: var(--ajk-teal) !important; }
.cert-number     { color: var(--ajk-green) !important; }

/* ===== Stat tiles (dashboards) ===== */
.stat-tile { transition: transform .2s, box-shadow .2s; }
.stat-tile:hover {
  transform: translateY(-2px);
  box-shadow: 0 0.5rem 1.25rem rgba(15, 83, 102, 0.10) !important;
}

/* ===== Module cards (home page) ===== */
.module-card { transition: transform .2s, box-shadow .2s; border-radius: 0.75rem; }
.module-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 0.5rem 1.5rem rgba(15, 83, 102, 0.12) !important;
}

/* ===== Footer ===== */
.footer {
  background: var(--ajk-surface) !important;
  border-top: 1px solid var(--ajk-border);
  border-top-color: var(--ajk-gold);
  border-top-width: 2px;
}

/* ===== DataTables polish — match palette ===== */
table.dataTable thead th { border-bottom: 2px solid var(--ajk-teal) !important; }
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: var(--ajk-teal) !important;
  border-color: var(--ajk-teal) !important;
  color: #fff !important;
}

/* ===== Print ===== */
@media print {
  .gov-strip, .topbar-custom, .app-sidebar-menu, .footer, .no-print { display: none !important; }
  .content-page { margin-left: 0 !important; margin-top: 0 !important; }
}
