/*
 * SITI Voice - Brand UI Theme
 * Visual-only override layer. No business logic or backend behavior is changed.
 * Corporate palette: #185FA2, #E4F2F4, #575756, #B4B4B4.
 */

:root {
  --siti-blue: #185fa2;
  --siti-blue-hover: #124d85;
  --siti-blue-active: #0e416f;
  --siti-blue-soft: #e4f2f4;
  --siti-charcoal: #575756;
  --siti-gray: #b4b4b4;
  --siti-ink: #25313d;
  --siti-muted: #6f7b86;
  --siti-bg: #f4f7f9;
  --siti-surface: #ffffff;
  --siti-border: #dce3e8;
  --siti-border-strong: #cbd5dc;
  --siti-shadow: 0 8px 24px rgba(37, 49, 61, 0.06);
  --siti-shadow-hover: 0 12px 30px rgba(37, 49, 61, 0.09);
  --siti-radius: 10px;
  --siti-radius-sm: 7px;

  --color-primary: var(--siti-blue);
  --bs-primary: var(--siti-blue);
  --bs-primary-rgb: 24, 95, 162;
  --bs-link-color: var(--siti-blue);
  --bs-link-hover-color: var(--siti-blue-hover);
  --bs-body-color: var(--siti-ink);
  --bs-body-bg: var(--siti-bg);
  --bs-border-color: var(--siti-border);
}

/* Foundation */
html, body { background: var(--siti-bg); color: var(--siti-ink); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
a { color: var(--siti-blue); }
a:hover { color: var(--siti-blue-hover); }
.content-page, .page-content, .wrapper { background: var(--siti-bg); }
.page-title-box { padding-top: 1rem; padding-bottom: .75rem; }
.page-title, h1, h2, h3, h4, h5, h6 { color: var(--siti-ink); }
.page-title { font-weight: 600; letter-spacing: -.015em; }
.text-primary { color: var(--siti-blue) !important; }
.text-muted, .text-secondary { color: var(--siti-muted) !important; }
.fw-bold { font-weight: 600 !important; }

/* Top bar */
.navbar-custom, .topbar, .topbar-custom {
  background: var(--siti-charcoal) !important;
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: none !important;
}
.navbar-custom .nav-link, .navbar-custom .button-menu-mobile,
.topbar .nav-link, .topbar-custom .nav-link { color: rgba(255,255,255,.88) !important; }
.navbar-custom .nav-link:hover, .navbar-custom .button-menu-mobile:hover,
.topbar .nav-link:hover { color: #fff !important; background: rgba(255,255,255,.06); }
.nav-user { border-left-color: rgba(255,255,255,.12) !important; }
.nav-user b { font-weight: 500 !important; }

/* Sidebar */
.app-menu, .left-side-menu { background: var(--siti-surface) !important; border-right: 1px solid var(--siti-border); box-shadow: none !important; }
.logo-box { background: var(--siti-surface) !important; border-bottom: 1px solid var(--siti-border); }
.logo-box .logo img { object-fit: contain; }
.menu .menu-title { color: #8a959e !important; font-size: .68rem; letter-spacing: .08em; font-weight: 600; }
.menu .menu-item .menu-link { color: var(--siti-charcoal) !important; border-radius: 8px; margin: 2px 10px; padding-left: 12px; transition: background-color .16s ease, color .16s ease; }
.menu .menu-item .menu-link .menu-icon { color: #7d8993 !important; transition: color .16s ease; }
.menu .menu-item .menu-link:hover { background: #f0f5f7 !important; color: var(--siti-blue) !important; }
.menu .menu-item .menu-link:hover .menu-icon { color: var(--siti-blue) !important; }
.menu .menu-item.active > .menu-link,
.menu .menu-item .menu-link.active,
.menu .menu-item .menu-link[aria-current="page"] { background: var(--siti-blue-soft) !important; color: var(--siti-blue) !important; font-weight: 500; }
.menu .menu-item.active > .menu-link .menu-icon,
.menu .menu-item .menu-link.active .menu-icon { color: var(--siti-blue) !important; }

/* Cards and panels */
.card { border: 1px solid var(--siti-border) !important; border-radius: var(--siti-radius) !important; box-shadow: var(--siti-shadow) !important; background: var(--siti-surface); }
.card.shadow-sm, .card.shadow-lg { box-shadow: var(--siti-shadow) !important; }
.card-header { background: var(--siti-surface) !important; border-bottom: 1px solid var(--siti-border) !important; padding: 1rem 1.15rem; }
.card-header strong, .card-header .card-title { font-weight: 600; color: var(--siti-ink); }
.card-body { color: var(--siti-ink); }

/* KPI cards: one restrained visual language */
.dashboard-home .kpi-card { border: 1px solid var(--siti-border) !important; box-shadow: none !important; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.dashboard-home .kpi-card:hover { transform: translateY(-2px); border-color: #b8cad6 !important; box-shadow: var(--siti-shadow-hover) !important; }
.dashboard-home .kpi-icon,
.dashboard-home [class*="bg-"][class*="-subtle"].kpi-icon { background: var(--siti-blue-soft) !important; color: var(--siti-blue) !important; border-radius: 10px !important; }
.dashboard-home .kpi-value { color: var(--siti-ink); font-weight: 600 !important; }
.dashboard-home .kpi-label { color: var(--siti-muted) !important; font-weight: 500; letter-spacing: .04em; }
.dashboard-home .event-icon,
.dashboard-home [class*="bg-"][class*="-subtle"].event-icon { background: #f0f4f6 !important; color: var(--siti-charcoal) !important; }
.dashboard-home .event-item:hover { background: #f7fafb !important; }

/* Buttons */
.btn { border-radius: var(--siti-radius-sm); font-weight: 500; box-shadow: none !important; transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .12s ease; }
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--siti-blue) !important; border-color: var(--siti-blue) !important; color: #fff !important; }
.btn-primary:hover, .btn-primary:focus { background: var(--siti-blue-hover) !important; border-color: var(--siti-blue-hover) !important; }
.btn-primary:active, .btn-primary.active { background: var(--siti-blue-active) !important; border-color: var(--siti-blue-active) !important; }
.btn-outline-primary { color: var(--siti-blue) !important; border-color: var(--siti-blue) !important; background: transparent !important; }
.btn-outline-primary:hover { color: #fff !important; background: var(--siti-blue) !important; }
.btn-secondary, .btn-dark { background: var(--siti-charcoal) !important; border-color: var(--siti-charcoal) !important; color: #fff !important; }
.btn-secondary:hover, .btn-dark:hover { background: #454544 !important; border-color: #454544 !important; }
.btn-light { background: #f3f6f8 !important; border-color: var(--siti-border) !important; color: var(--siti-charcoal) !important; }
.btn-light:hover { background: #eaf0f3 !important; border-color: var(--siti-border-strong) !important; }
.btn-link { color: var(--siti-blue) !important; }
.btn-group .btn, .fixed-table-toolbar .btn { border-radius: 7px !important; }

/* Forms */
.form-label { color: var(--siti-charcoal); font-weight: 500; margin-bottom: .45rem; }
.form-control, .form-select, .select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple, .input-group-text {
  background-color: #fff !important; border: 1px solid var(--siti-border-strong) !important; color: var(--siti-ink) !important; border-radius: var(--siti-radius-sm) !important;
}
.form-control:hover, .form-select:hover { border-color: #aebdc7 !important; }
.form-control:focus, .form-select:focus,
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--siti-blue) !important; box-shadow: 0 0 0 3px rgba(24,95,162,.12) !important;
}
.form-control::placeholder { color: #98a4ad; }
.form-check-input:checked { background-color: var(--siti-blue) !important; border-color: var(--siti-blue) !important; }
.form-switch .form-check-input:focus { box-shadow: 0 0 0 3px rgba(24,95,162,.12); }
.switchery { box-shadow: none !important; border-color: var(--siti-border-strong) !important; }

/* Tables */
.table { color: var(--siti-ink); --bs-table-hover-bg: #f7fafb; }
.table > thead > tr > th, .bootstrap-table .fixed-table-container .table thead th {
  background: #f5f8fa !important; color: var(--siti-charcoal) !important; border-bottom: 1px solid var(--siti-border-strong) !important; font-weight: 600; text-transform: none; letter-spacing: 0;
}
.table > :not(caption) > * > * { border-bottom-color: var(--siti-border); padding-top: .85rem; padding-bottom: .85rem; }
.table-hover > tbody > tr:hover > * { background: #f7fafb !important; }
.bootstrap-table .fixed-table-toolbar .search input { min-width: 220px; }
.fixed-table-pagination .pagination .page-link, .pagination .page-link { color: var(--siti-charcoal); border-color: var(--siti-border); }
.pagination .page-item.active .page-link { background: var(--siti-blue) !important; border-color: var(--siti-blue) !important; }

/* Status badges: muted, consistent, semantic only where useful */
.badge { border-radius: 999px; font-weight: 600; letter-spacing: .01em; padding: .38em .65em; }
.badge.bg-primary, .badge.text-bg-primary { background: var(--siti-blue) !important; }
.badge.bg-secondary, .badge.text-bg-secondary { background: #6c777f !important; }
.badge.bg-success, .badge.text-bg-success { background: #28785f !important; }
.badge.bg-danger, .badge.text-bg-danger { background: #a94848 !important; }
.badge.bg-warning, .badge.text-bg-warning { background: #b47a22 !important; color: #fff !important; }
.badge.bg-info, .badge.text-bg-info { background: #3e778a !important; }
.bg-primary-subtle { background-color: var(--siti-blue-soft) !important; }
.text-primary-emphasis { color: var(--siti-blue) !important; }
.bg-secondary-subtle { background-color: #eef2f4 !important; }
.text-secondary-emphasis { color: var(--siti-charcoal) !important; }
.bg-success-subtle { background-color: #e6f2ed !important; }
.text-success-emphasis { color: #25694f !important; }
.bg-danger-subtle { background-color: #f6eaea !important; }
.text-danger-emphasis { color: #984040 !important; }
.bg-warning-subtle { background-color: #f8f0e2 !important; }
.text-warning-emphasis { color: #94621b !important; }
.bg-info-subtle { background-color: #e8f1f4 !important; }
.text-info-emphasis { color: #356a7b !important; }

/* Alerts */
.alert { border-radius: var(--siti-radius-sm); border-width: 1px; box-shadow: none; }
.alert-primary, .alert-info { background: var(--siti-blue-soft); border-color: #bfdde2; color: #244f69; }
.alert-secondary { background: #f0f3f5; border-color: var(--siti-border); color: var(--siti-charcoal); }

/* Modals, dropdowns and offcanvas */
.modal-content, .dropdown-menu, .offcanvas { border: 1px solid var(--siti-border) !important; border-radius: var(--siti-radius) !important; box-shadow: 0 18px 48px rgba(37,49,61,.16) !important; }
.modal-header { border-bottom: 1px solid var(--siti-border); padding: 1rem 1.15rem; }
.modal-footer { border-top: 1px solid var(--siti-border); }
.modal-title { color: var(--siti-ink); font-weight: 600; }
.dropdown-item { color: var(--siti-charcoal); }
.dropdown-item:hover, .dropdown-item:focus { background: var(--siti-blue-soft); color: var(--siti-blue); }
.dropdown-item.active, .dropdown-item:active { background: var(--siti-blue); color: #fff; }

/* Tabs and accordions */
.nav-tabs { border-bottom-color: var(--siti-border); }
.nav-tabs .nav-link { color: var(--siti-muted); border: 0; border-bottom: 2px solid transparent; border-radius: 0; }
.nav-tabs .nav-link:hover { color: var(--siti-blue); }
.nav-tabs .nav-link.active { color: var(--siti-blue); border-bottom-color: var(--siti-blue); background: transparent; font-weight: 600; }
.accordion-item { border-color: var(--siti-border) !important; }
.accordion-button { color: var(--siti-charcoal); background: #fff; font-weight: 500; }
.accordion-button:not(.collapsed) { color: var(--siti-blue); background: var(--siti-blue-soft); box-shadow: inset 0 -1px 0 var(--siti-border); }
.accordion-button:focus { box-shadow: 0 0 0 3px rgba(24,95,162,.10); }

/* Icons/actions: neutral at rest, brand on hover */
.table .btn-link, .table a:not(.btn), .action-buttons a, td .mdi, td .bi { color: var(--siti-charcoal); }
.table .btn-link:hover, .table a:not(.btn):hover, .action-buttons a:hover, td a:hover .mdi, td a:hover .bi { color: var(--siti-blue); }

/* SweetAlert */
.swal2-popup { border-radius: 12px !important; box-shadow: 0 18px 48px rgba(37,49,61,.18) !important; }
.swal2-title { color: var(--siti-ink) !important; font-weight: 600 !important; }
.swal2-confirm { background: var(--siti-blue) !important; border-radius: 7px !important; }
.swal2-cancel { background: var(--siti-charcoal) !important; border-radius: 7px !important; }

/* Focus accessibility */
:focus-visible { outline: 2px solid var(--siti-blue); outline-offset: 2px; }
.btn:focus-visible, a:focus-visible, .form-control:focus-visible, .form-select:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(24,95,162,.18) !important; }

/* Login */
body.siti-login-page {
  min-height: 100vh; background: var(--siti-blue) !important; position: relative; overflow-x: hidden;
}
body.siti-login-page::before, body.siti-login-page::after {
  content: ""; position: fixed; border-radius: 50%; pointer-events: none; opacity: .08; background: #fff;
}
body.siti-login-page::before { width: 520px; height: 520px; right: -180px; top: -220px; }
body.siti-login-page::after { width: 380px; height: 380px; left: -170px; bottom: -180px; }
.siti-login-page .account-pages { position: relative; z-index: 1; }
.siti-login-page .card { border: 0 !important; border-radius: 14px !important; box-shadow: 0 24px 60px rgba(22,44,68,.22) !important; }
.siti-login-page .logo img { height: 92px !important; max-width: 220px; }
.siti-login-page h3.text-primary { color: var(--siti-ink) !important; font-weight: 600 !important; }
.siti-login-page .form-control.bg-light, .siti-login-page .input-group.bg-light,
.siti-login-page .input-group-text.bg-light { background: #f7f9fa !important; }
.siti-login-page .btn-primary { min-height: 48px; }
.siti-login-page .login-lang-switcher .btn-lang { border-color: rgba(255,255,255,.25); }

/* Responsive refinement */
@media (max-width: 991.98px) {
  .card-body { padding: 1rem; }
  .page-title-box { padding-top: .75rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Global Bootstrap color normalization */
.bg-primary, .bg-purple, .bg-pink { background-color: var(--siti-blue) !important; }
.text-info, .text-warning { color: var(--siti-blue) !important; }
.table-action-icon, .action-icon { color: var(--siti-charcoal) !important; transition: color .15s ease, background-color .15s ease; }
.table-action-icon:hover, .action-icon:hover { color: var(--siti-blue) !important; }
.table-action-icon.text-danger:hover, .action-icon.text-danger:hover { color: #984040 !important; }
.text-success { color: #28785f !important; }
.text-danger { color: #a94848 !important; }
.text-warning { color: #94621b !important; }
.text-info { color: #356a7b !important; }

/* Dashboard cards from the current template */
.dashboard-home .card, .dashboard-home .widget-rounded-circle { min-height: 100%; }
.dashboard-home .avatar-title,
.dashboard-home .rounded-circle[class*="bg-"],
.dashboard-home [class*="icon-box"] {
  background-color: var(--siti-blue-soft) !important;
  color: var(--siti-blue) !important;
}
.dashboard-home .avatar-title i,
.dashboard-home [class*="icon-box"] i { color: var(--siti-blue) !important; }

/* Bootstrap-table toolbar */
.bootstrap-table .fixed-table-toolbar .columns .btn,
.bootstrap-table .fixed-table-toolbar .keep-open .btn {
  background: var(--siti-charcoal) !important;
  border-color: var(--siti-charcoal) !important;
  color: #fff !important;
}
.bootstrap-table .fixed-table-toolbar .columns .btn:hover,
.bootstrap-table .fixed-table-toolbar .keep-open .btn:hover {
  background: #454544 !important;
  border-color: #454544 !important;
}

/* Plugin selection states */
.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: var(--siti-blue) !important;
  color: #fff !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
  background: var(--siti-blue-soft) !important;
  border-color: #bfdde2 !important;
  color: var(--siti-blue) !important;
}
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange {
  background: var(--siti-blue) !important;
  border-color: var(--siti-blue) !important;
}

/* Switchery generated inline colors are visually normalized */
.switchery > small { background: #fff !important; }
.switchery[style*="background-color"] { background-color: var(--siti-blue) !important; border-color: var(--siti-blue) !important; }

/* Profile / security blocks */
.bg-primary-light { background-color: var(--siti-blue-soft) !important; }
.border-primary { border-color: var(--siti-blue) !important; }

/* Footer and empty states */
.footer { background: transparent !important; border-top: 1px solid var(--siti-border); color: var(--siti-muted); }
.empty-state, .no-records-found { color: var(--siti-muted); }

/* Login and authentication pages */
.siti-login-page {
  background: linear-gradient(145deg, #124d85 0%, var(--siti-blue) 58%, #2d6ea9 100%) !important;
}
.siti-login-page .account-pages { margin-top: 0 !important; margin-bottom: 0 !important; min-height: 100vh; display: flex; align-items: center; padding: 2rem 0; }
.siti-login-page .card-body { padding-top: 2.25rem !important; padding-bottom: 2.25rem !important; }
.siti-login-page .login-lang-switcher { z-index: 20; }
.siti-login-page .login-email-chip { color: var(--siti-blue) !important; border-color: var(--siti-border) !important; }
.siti-login-page .login-email-chip:hover { background: var(--siti-blue-soft) !important; border-color: #bfdde2 !important; }

/* Keep destructive and semantic feedback recognizable, but restrained */
.btn-danger { background: #a94848 !important; border-color: #a94848 !important; }
.btn-danger:hover { background: #913b3b !important; border-color: #913b3b !important; }
.btn-success { background: #28785f !important; border-color: #28785f !important; }
.btn-success:hover { background: #21634e !important; border-color: #21634e !important; }
.btn-warning { background: #b47a22 !important; border-color: #b47a22 !important; color: #fff !important; }
.btn-info { background: #3e778a !important; border-color: #3e778a !important; color: #fff !important; }

/* --------------------------------------------------------------------------
   Patch 2026-08-05 — visual refinements after QA review
   Scope: CSS only. Keeps the single global override approach.
   -------------------------------------------------------------------------- */
:root {
  --siti-success-soft: #dceee5;
  --siti-success-text: #2f6d56;
  --siti-secondary-soft: #ebe7e1;
  --siti-secondary-text: #6f675f;
  --siti-warning-soft: #f8e6ad;
  --siti-warning-text: #8a6519;
  --siti-switch-off: #d4dbe1;
  --siti-switch-off-border: #c6d0d7;
}

/* SweetAlert / delete confirmation popup */
.swal2-popup {
  border: 1px solid var(--siti-border) !important;
  background: #fff !important;
}
.swal2-html-container {
  color: var(--siti-charcoal) !important;
}
.swal2-actions .swal2-styled {
  min-width: 136px;
  font-weight: 500 !important;
  box-shadow: none !important;
}
.swal2-styled.swal2-confirm,
button.swal2-confirm {
  background: var(--siti-blue) !important;
  border: 1px solid var(--siti-blue) !important;
  color: #fff !important;
}
.swal2-styled.swal2-confirm:hover,
button.swal2-confirm:hover {
  background: var(--siti-blue-hover) !important;
  border-color: var(--siti-blue-hover) !important;
}
.swal2-styled.swal2-cancel,
button.swal2-cancel {
  background: var(--siti-charcoal) !important;
  border: 1px solid var(--siti-charcoal) !important;
  color: #fff !important;
}
.swal2-styled.swal2-confirm:focus,
.swal2-styled.swal2-cancel:focus,
.swal2-styled:focus {
  box-shadow: 0 0 0 3px rgba(24,95,162,.18) !important;
}
.swal2-icon.swal2-warning {
  border-color: #ebb03f !important;
  color: #ebb03f !important;
}
.swal2-icon.swal2-warning [class^='swal2-'],
.swal2-icon.swal2-warning [class*=' swal2-'] {
  color: #ebb03f !important;
}

/* Status badges */
.badge.bg-success,
.badge.text-bg-success,
.badge-success,
.text-bg-success {
  background: var(--siti-success-soft) !important;
  color: var(--siti-success-text) !important;
}
.badge.bg-success i,
.badge.text-bg-success i,
.badge-success i,
.text-bg-success i {
  color: var(--siti-success-text) !important;
}
.badge.bg-secondary,
.badge.text-bg-secondary,
.badge-secondary,
.text-bg-secondary {
  background: var(--siti-secondary-soft) !important;
  color: var(--siti-secondary-text) !important;
}
.badge.bg-secondary i,
.badge.text-bg-secondary i,
.badge-secondary i,
.text-bg-secondary i {
  color: var(--siti-secondary-text) !important;
}
.badge.bg-warning,
.badge.text-bg-warning,
.badge-warning,
.text-bg-warning {
  background: var(--siti-warning-soft) !important;
  color: var(--siti-warning-text) !important;
}
.badge.bg-warning i,
.badge.text-bg-warning i,
.badge-warning i,
.text-bg-warning i {
  color: var(--siti-warning-text) !important;
}
.badge.bg-primary i,
.badge.text-bg-primary i,
.badge-primary i,
.text-bg-primary i {
  color: #fff !important;
}

/* Permission headings and counters */
#perm_user_name {
  color: var(--siti-charcoal) !important;
  font-weight: 500 !important;
}
#role-perm-container .accordion-button,
#user-permissions-container .accordion-button,
.permission-group .accordion-button,
.accordion .accordion-button {
  background: #f1f7f9 !important;
}
#role-perm-container .accordion-button:not(.collapsed),
#user-permissions-container .accordion-button:not(.collapsed),
.permission-group .accordion-button:not(.collapsed),
.accordion .accordion-button:not(.collapsed) {
  background: var(--siti-blue-soft) !important;
  color: var(--siti-blue) !important;
}

/* Switchery: off must look off, on must use the brand blue */
input[type="checkbox"][data-switchery] + .switchery,
input[type="checkbox"].js-switch-small + .switchery,
.user-perm-switch + .switchery,
.perm-checkbox + .switchery,
.hours-is-open + .switchery {
  background-color: var(--siti-switch-off) !important;
  border-color: var(--siti-switch-off-border) !important;
  box-shadow: inset 0 0 0 0 var(--siti-switch-off) !important;
}
input[type="checkbox"][data-switchery]:checked + .switchery,
input[type="checkbox"].js-switch-small:checked + .switchery,
.user-perm-switch:checked + .switchery,
.perm-checkbox:checked + .switchery,
.hours-is-open:checked + .switchery {
  background-color: var(--siti-blue) !important;
  border-color: var(--siti-blue) !important;
  box-shadow: inset 0 0 0 30px var(--siti-blue) !important;
}
input[type="checkbox"][data-switchery] + .switchery > small,
input[type="checkbox"].js-switch-small + .switchery > small,
.user-perm-switch + .switchery > small,
.perm-checkbox + .switchery > small,
.hours-is-open + .switchery > small {
  background: #fff !important;
  box-shadow: 0 1px 3px rgba(37,49,61,.22) !important;
}
input[type="checkbox"][data-switchery][disabled] + .switchery,
input[type="checkbox"].js-switch-small[disabled] + .switchery,
.user-perm-switch[disabled] + .switchery,
.perm-checkbox[disabled] + .switchery,
.hours-is-open[disabled] + .switchery {
  opacity: .6 !important;
}

/* Native checkboxes (e.g. column selector) */
input[type="checkbox"] {
  accent-color: var(--siti-blue);
}
.dropdown-menu input[type="checkbox"],
.bootstrap-table .dropdown-menu input[type="checkbox"] {
  accent-color: var(--siti-blue);
}
.form-check-input:focus {
  border-color: var(--siti-blue) !important;
  box-shadow: 0 0 0 3px rgba(24,95,162,.12) !important;
}

/* Pagination visibility */
.fixed-table-pagination .pagination .page-link,
.pagination .page-link {
  color: var(--siti-charcoal) !important;
}
.fixed-table-pagination .pagination .active > .page-link,
.fixed-table-pagination .pagination .active > span,
.pagination .active > .page-link,
.pagination .active > span,
.pagination .page-item.active .page-link {
  background: var(--siti-blue) !important;
  border-color: var(--siti-blue) !important;
  color: #fff !important;
}

/* Warm warning treatment for MFA-required pill */
.badge.bg-warning.text-dark,
.badge.text-bg-warning.text-dark {
  color: var(--siti-warning-text) !important;
}
.badge.bg-warning.text-dark i,
.badge.text-bg-warning.text-dark i {
  color: var(--siti-warning-text) !important;
}

/* --------------------------------------------------------------------------
   Final QA refinements — 2026-08-05
   -------------------------------------------------------------------------- */

/* Top navigation bar: corporate blue */
.navbar-custom,
.topbar,
.topbar-custom {
  background: var(--siti-blue) !important;
  border-bottom-color: rgba(255,255,255,.12) !important;
}

/* SweetAlert: palette icon and outlined cancel action */
.swal2-icon.swal2-warning {
  border-color: var(--siti-blue) !important;
  color: var(--siti-blue) !important;
}
.swal2-icon.swal2-warning [class^='swal2-'],
.swal2-icon.swal2-warning [class*=' swal2-'] {
  color: var(--siti-blue) !important;
}
.swal2-styled.swal2-cancel,
button.swal2-cancel {
  background: #fff !important;
  border: 1px solid var(--siti-charcoal) !important;
  color: var(--siti-charcoal) !important;
}
.swal2-styled.swal2-cancel:hover,
button.swal2-cancel:hover {
  background: #f3f0ec !important;
  border-color: #746d66 !important;
  color: #4f4a45 !important;
}

/* Permission page title: one unified color */
.page-title #perm_user_name,
.page-title-box #perm_user_name,
h1 #perm_user_name,
h2 #perm_user_name,
h3 #perm_user_name,
h4 #perm_user_name,
h5 #perm_user_name,
h6 #perm_user_name {
  color: inherit !important;
  font-weight: inherit !important;
}

/* --------------------------------------------------------------------------
   Mobile QA fix — 2026-08-05
   The generic .logo-box rule was also styling the topbar's mobile logo slot,
   producing the empty white rectangle visible around 376–767 px widths.
   -------------------------------------------------------------------------- */

/* Keep the white brand container only in the desktop sidebar. */
.app-menu > .logo-box,
.left-side-menu > .logo-box {
  background: var(--siti-surface) !important;
  border-bottom: 1px solid var(--siti-border) !important;
}

/* Never paint a white block inside the blue top navigation. */
.navbar-custom .logo-box,
.topbar .logo-box,
.topbar-custom .logo-box {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* On phones the sidebar toggle is the navigation entry point; removing the
   duplicate topbar logo slot also restores the available horizontal space. */
@media (max-width: 767.98px) {
  .navbar-custom .topbar > .topbar-menu:first-child .logo-box,
  .navbar-custom .topbar-menu .logo-box,
  .topbar-custom .topbar-menu .logo-box {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .navbar-custom,
  .navbar-custom .topbar,
  .topbar-custom {
    width: 100% !important;
  }

  .navbar-custom .topbar {
    padding-left: .5rem;
    padding-right: .5rem;
  }
}

/* Final QA: neutral light-gray hover for SweetAlert cancel */
.swal2-styled.swal2-cancel:hover,
.swal2-styled.swal2-cancel:focus,
button.swal2-cancel:hover,
button.swal2-cancel:focus {
  background: #f5f6f7 !important;
  border-color: #aeb7bf !important;
  color: var(--siti-charcoal) !important;
}

/* ========================================================================== 
   FINAL CORRECTION — 2026-08-05
   Source: current production ZIP supplied by the user.
   Scope: authentication background, Bootstrap Table controls and modal close.
   ========================================================================== */

/* Authentication pages: approved light background, no decorative circles. */
html:has(body.siti-login-page),
body.siti-login-page {
  min-height: 100vh !important;
  background: #f4f7f9 !important;
  background-image: linear-gradient(180deg, #f7f9fb 0%, #eef3f6 100%) !important;
  position: relative;
  overflow-x: hidden;
}
body.siti-login-page::before,
body.siti-login-page::after {
  content: none !important;
  display: none !important;
  background: none !important;
}

/* Language selector on the approved light authentication background. */
.siti-login-page .login-lang-switcher .btn-lang {
  color: var(--siti-blue) !important;
  background: #fff !important;
  border: 1px solid rgba(24,95,162,.45) !important;
}
.siti-login-page .login-lang-switcher .btn-lang:hover,
.siti-login-page .login-lang-switcher .btn-lang:focus-visible {
  color: #fff !important;
  background: var(--siti-blue) !important;
  border-color: var(--siti-blue) !important;
}

/* Bootstrap Table toolbar actions beside Search. */
.bootstrap-table .fixed-table-toolbar .columns .btn,
.bootstrap-table .fixed-table-toolbar .keep-open .btn,
.bootstrap-table .fixed-table-toolbar .btn-group > .btn,
.fixed-table-toolbar .columns .btn,
.fixed-table-toolbar .keep-open .btn {
  background: var(--siti-blue) !important;
  border-color: var(--siti-blue) !important;
  color: #fff !important;
}
.bootstrap-table .fixed-table-toolbar .columns .btn:hover,
.bootstrap-table .fixed-table-toolbar .keep-open .btn:hover,
.bootstrap-table .fixed-table-toolbar .btn-group > .btn:hover,
.fixed-table-toolbar .columns .btn:hover,
.fixed-table-toolbar .keep-open .btn:hover {
  background: var(--siti-blue-hover) !important;
  border-color: var(--siti-blue-hover) !important;
  color: #fff !important;
}

/* Results-per-page selector: neutral control, not a primary action. */
.bootstrap-table .fixed-table-pagination .page-list .btn,
.fixed-table-pagination .page-list .btn,
.fixed-table-pagination .page-list .dropdown-toggle {
  background: #fff !important;
  border: 1px solid var(--siti-border-strong) !important;
  color: var(--siti-charcoal) !important;
}
.bootstrap-table .fixed-table-pagination .page-list .btn:hover,
.bootstrap-table .fixed-table-pagination .page-list .btn:focus,
.fixed-table-pagination .page-list .btn:hover,
.fixed-table-pagination .page-list .btn:focus,
.fixed-table-pagination .page-list .dropdown-toggle:hover,
.fixed-table-pagination .page-list .dropdown-toggle:focus {
  background: #f3f6f8 !important;
  border-color: var(--siti-blue) !important;
  color: var(--siti-charcoal) !important;
}

/* Secondary close/cancel actions in modals use one consistent light style. */
.modal-footer .btn-secondary,
.modal-footer .btn-light,
.modal-footer [data-bs-dismiss="modal"],
.modal-footer button[type="button"] {
  background: #f3f6f8 !important;
  border: 1px solid var(--siti-border) !important;
  color: var(--siti-charcoal) !important;
}
.modal-footer .btn-secondary:hover,
.modal-footer .btn-light:hover,
.modal-footer [data-bs-dismiss="modal"]:hover,
.modal-footer button[type="button"]:hover {
  background: #e9eef2 !important;
  border-color: var(--siti-border-strong) !important;
  color: var(--siti-charcoal) !important;
}

/* --------------------------------------------------------------------------
   Ajuste puntual 2026-08-06
   Unicamente: flechas de ordenacion y contadores de permisos.
   -------------------------------------------------------------------------- */

/* Bootstrap Table: flechas de ordenacion en azul corporativo. */
.bootstrap-table .fixed-table-container .table thead th .both,
.bootstrap-table .fixed-table-container .table thead th .asc,
.bootstrap-table .fixed-table-container .table thead th .desc {
  background-repeat: no-repeat !important;
  background-position: right .55rem center !important;
  padding-right: 1.65rem !important;
}

.bootstrap-table .fixed-table-container .table thead th .both {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='16' viewBox='0 0 10 16'%3E%3Cpath fill='%23185FA2' fill-opacity='.38' d='M5 1 9 6H1z'/%3E%3Cpath fill='%23185FA2' fill-opacity='.38' d='m5 15-4-5h8z'/%3E%3C/svg%3E") !important;
}

.bootstrap-table .fixed-table-container .table thead th .asc {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='16' viewBox='0 0 10 16'%3E%3Cpath fill='%23185FA2' d='M5 2 9 8H1z'/%3E%3C/svg%3E") !important;
}

.bootstrap-table .fixed-table-container .table thead th .desc {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='16' viewBox='0 0 10 16'%3E%3Cpath fill='%23185FA2' d='m5 14-4-6h8z'/%3E%3C/svg%3E") !important;
}

/* Contadores 1/1, 2/2, etc.: azul corporativo con texto blanco. */
#user-permissions-container .badge[id^="user-perm-count-"],
#role-perm-container .badge[id^="role-perm-count-"],
.badge[id^="user-perm-count-"],
.badge[id^="role-perm-count-"] {
  background: var(--siti-blue) !important;
  color: #fff !important;
  border-color: var(--siti-blue) !important;
}

/* --------------------------------------------------------------------------
   Ajuste puntual v1.1 — 2026-08-06
   Unicamente: boton Guardar en modales y titulo de permisos de usuario.
   -------------------------------------------------------------------------- */

/* Los botones primarios de los modales conservan el azul corporativo.
   Esta regla va despues de la normalizacion de Cerrar/Cancelar para evitar
   que el selector generico button[type="button"] vuelva gris a Guardar. */
.modal-footer .btn-primary,
.modal-footer button.btn-primary,
.modal-footer [type="submit"].btn-primary {
  background: var(--siti-blue) !important;
  border-color: var(--siti-blue) !important;
  color: #fff !important;
}

.modal-footer .btn-primary:hover,
.modal-footer .btn-primary:focus,
.modal-footer button.btn-primary:hover,
.modal-footer button.btn-primary:focus,
.modal-footer [type="submit"].btn-primary:hover,
.modal-footer [type="submit"].btn-primary:focus {
  background: var(--siti-blue-hover) !important;
  border-color: var(--siti-blue-hover) !important;
  color: #fff !important;
}

/* Titulo de permisos de usuario: agrega los dos puntos y presenta el nombre
   en azul corporativo, igual que la pantalla de permisos por rol. */
#perm_user_name {
  color: var(--siti-blue) !important;
  font-weight: 600 !important;
}

#perm_user_name::before {
  content: ": ";
  color: var(--siti-ink);
}

/* --------------------------------------------------------------------------
   Ajuste puntual v1.2 - 2026-08-06
   Unicamente: nombre del rol sin color azul en el titulo de permisos.
   -------------------------------------------------------------------------- */
#perm_role_name {
  color: inherit !important;
  font-weight: inherit !important;
}
