/* System-wide UI Unifier
   Applied after all theme/report styles to normalize old page-specific styles. */

:root {
  --ui-font-family: 'Inter', 'Segoe UI', Tahoma, sans-serif;
  --ui-font-size: 15px;
  --ui-line-height: 1.45;
  --ui-heading-weight: 500;
  --ui-body-weight: 400;
  --ui-sidebar-bg: #123aab;
  --ui-surface: #ffffff;
  --ui-muted: #64748b;
  --ui-border: #e2e8f0;
  --ui-head-bg: #f1f5f9;
}

html, body {
  font-family: var(--ui-font-family) !important;
  font-size: var(--ui-font-size) !important;
}

body,
input,
select,
textarea,
button {
  font-family: var(--ui-font-family) !important;
  font-weight: var(--ui-body-weight) !important;
}

main.flex-grow-1,
main.flex-grow-1 p,
main.flex-grow-1 span,
main.flex-grow-1 label,
main.flex-grow-1 a,
main.flex-grow-1 td,
main.flex-grow-1 th,
main.flex-grow-1 li,
main.flex-grow-1 input,
main.flex-grow-1 select,
main.flex-grow-1 textarea,
main.flex-grow-1 button,
main.flex-grow-1 .form-control,
main.flex-grow-1 .form-select,
main.flex-grow-1 .btn,
main.flex-grow-1 .table,
main.flex-grow-1 .card,
main.flex-grow-1 .card-title,
main.flex-grow-1 .card-header,
main.flex-grow-1 .card-body,
main.flex-grow-1 .alert,
main.flex-grow-1 .badge,
main.flex-grow-1 .nav-link,
main.flex-grow-1 .text-muted,
main.flex-grow-1 .small,
main.flex-grow-1 small {
  font-family: var(--ui-font-family) !important;
  font-size: var(--ui-font-size) !important;
  line-height: var(--ui-line-height) !important;
  font-weight: var(--ui-body-weight) !important;
}

main.flex-grow-1 h1,
main.flex-grow-1 h2,
main.flex-grow-1 h3,
main.flex-grow-1 h4,
main.flex-grow-1 h5,
main.flex-grow-1 h6,
main.flex-grow-1 .title,
main.flex-grow-1 .card-header strong,
main.flex-grow-1 .table thead th {
  font-family: var(--ui-font-family) !important;
  font-weight: var(--ui-heading-weight) !important;
  color: #0f172a !important;
}

/* Keep icon font untouched */
.bi,
[class^="bi-"],
[class*=" bi-"] {
  font-family: 'bootstrap-icons' !important;
  font-size: inherit !important;
}

/* Sidebar force-dark + consistent item look */
.sidebar {
  background: var(--ui-sidebar-bg) !important;
}

.sidebar .nav-link {
  font-size: 15px !important;
  font-weight: 400 !important;
}

.sidebar .nav-link.active,
.sidebar .nav-link[aria-current="page"] {
  background: rgba(255,255,255,.18) !important;
}

/* Unified surfaces */
.container-fluid.p-4,
main.flex-grow-1 .card,
main.flex-grow-1 .table-responsive {
  background: var(--ui-surface) !important;
}

main.flex-grow-1 .card,
main.flex-grow-1 .table,
main.flex-grow-1 .form-control,
main.flex-grow-1 .form-select,
main.flex-grow-1 .btn,
main.flex-grow-1 .alert {
  border-color: var(--ui-border) !important;
}

main.flex-grow-1 .table thead th,
main.flex-grow-1 table thead th {
  background: var(--ui-head-bg) !important;
  border-bottom: 1px solid var(--ui-border) !important;
}

main.flex-grow-1 .table td,
main.flex-grow-1 .table th {
  padding-top: .55rem !important;
  padding-bottom: .55rem !important;
}

main.flex-grow-1 .table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-accent-bg: #f8fafc;
}

main.flex-grow-1 .btn,
main.flex-grow-1 .btn-sm,
main.flex-grow-1 .btn-lg {
  border-radius: 8px !important;
}

main.flex-grow-1 .text-muted,
main.flex-grow-1 .small,
main.flex-grow-1 small {
  color: var(--ui-muted) !important;
}

main.flex-grow-1 .badge,
main.flex-grow-1 .pill,
main.flex-grow-1 .chip {
  border-radius: 999px !important;
}

/* Override old inline typography declarations */
main.flex-grow-1 [style*="font-size"],
main.flex-grow-1 [style*="font-weight"],
main.flex-grow-1 [style*="font-family"] {
  font-size: var(--ui-font-size) !important;
  font-family: var(--ui-font-family) !important;
  font-weight: var(--ui-body-weight) !important;
}

/* Keep print layout pages unaffected */
@media print {
  #ui-unifier-inline { display:none !important; }
}
