/* ==========================================
   THEME — ADVANCE
   Requires: your theme-vars first
   Behavior: Brand applied broadly; brand links.
========================================== */

/* Kill Bootstrap blue, map links to brand for ADVANCE */
:root{
    --bs-primary: var(--primary);
    --bs-link-color: var(--primary);
    --bs-link-hover-color: var(--primary-dark, #0c1e48);
    --tr-notification-trigger-radius: 999px;
    --tr-notification-trigger-bg: color-mix(in srgb, var(--primary) 8%, white);
    --tr-notification-trigger-color: var(--primary-700, var(--primary));
    --tr-notification-trigger-bg-hover: color-mix(in srgb, var(--primary) 14%, white);
    --tr-notification-trigger-color-hover: var(--primary-900, var(--primary-dark, #0c1e48));
    --tr-notification-trigger-shadow: inset 0 0 0 1px color-mix(in srgb, var(--primary) 10%, white);
    --tr-notification-trigger-shadow-hover: inset 0 0 0 1px color-mix(in srgb, var(--primary) 18%, white), 0 4px 12px rgba(var(--primary-rgb), 0.10);
    --tr-notification-trigger-shift-hover: -1px;
    --tr-notification-icon-size: 1.04rem;
    --tr-notification-badge-size: 1.12rem;
    --tr-notification-badge-padding-x: .25rem;
    --tr-notification-badge-font-size: .64rem;
    --tr-notification-badge-font-weight: 800;
    --tr-notification-badge-radius: 999px;
    --tr-notification-badge-top: .08rem;
    --tr-notification-badge-right: -.12rem;
    --tr-notification-badge-color: var(--primary-text, #fff);
    --tr-notification-badge-border: #ffffff;
    --tr-notification-badge-border-width: 2px;
    --tr-notification-badge-bg: linear-gradient(135deg, var(--primary-500, var(--primary)) 0%, var(--primary-700, var(--primary-dark, #0c1e48)) 100%);
    --tr-notification-badge-shadow: 0 3px 10px rgba(var(--primary-rgb), 0.16);
  }

  /* Core brand utility mappings */
  .text-primary { color: var(--primary) !important; }
  .bg-primary { background-color: var(--primary) !important; color: var(--primary-text, #fff) !important; }

  /* Buttons (ALWAYS brand) */
  .btn { box-shadow: none; }
  .btn.btn-primary{
    --bs-btn-bg: var(--primary);
    --bs-btn-border-color: var(--primary);
    --bs-btn-color: var(--primary-text, #fff);
    --bs-btn-hover-bg: var(--primary-dark, #0c1e48);
    --bs-btn-hover-border-color: var(--primary-dark, #0c1e48);
    --bs-btn-active-bg: var(--primary-darker, #0a173a);
    --bs-btn-active-border-color: var(--primary-darker, #0a173a);
    --bs-btn-disabled-bg: var(--primary);
    --bs-btn-disabled-border-color: var(--primary);
    background-color: var(--primary) !important;
    border-color: var(--primary) !important;
    color: var(--primary-text, #fff) !important;
  }
  .btn.btn-primary:hover,
  .btn.btn-primary:focus,
  .btn.btn-primary:active,
  .btn.btn-primary:not(:disabled):not(.disabled).active,
  .show > .btn.btn-primary.dropdown-toggle{
    background-color: var(--bs-btn-hover-bg) !important;
    border-color: var(--bs-btn-hover-border-color) !important;
    color: var(--primary-text, #fff) !important;
  }

  /* Outline primary */
  .btn.btn-outline-primary{
    --bs-btn-color: var(--primary);
    --bs-btn-border-color: var(--primary);
    --bs-btn-hover-color: var(--primary-text, #fff);
    --bs-btn-hover-bg: var(--primary);
    --bs-btn-hover-border-color: var(--primary);
    color: var(--primary) !important;
    border-color: var(--primary) !important;
    background: transparent !important;
  }
  .btn.btn-outline-primary:hover,
  .btn.btn-outline-primary:focus,
  .btn.btn-outline-primary:active,
  .btn.btn-outline-primary:not(:disabled):not(.disabled).active,
  .show > .btn.btn-outline-primary.dropdown-toggle{
    background-color: var(--primary) !important;
    border-color: var(--primary) !important;
    color: var(--primary-text, #fff) !important;
  }

  /* Icon color follows current text */
  .btn i, .btn .fa, .btn .bi { color: currentColor !important; }
  .btn-success, .btn-danger, .btn-warning, .btn-info, .btn-dark { color:#fff !important; }

  /* Always-brand utilities */
  .badge-primary, .badge.bg-primary{ background-color: var(--primary) !important; color: var(--primary-text, #fff) !important; }
  .progress .bg-primary{ background-color: var(--primary) !important; }
  .form-check-input:checked{ background-color: var(--primary) !important; border-color: var(--primary) !important; }

  /* Navs / Tabs / Breadcrumbs */
  .nav-pills .nav-link{ color: var(--bs-link-color); transition: background-color .2s, color .2s, border-color .2s; }
  .nav-pills .nav-link:hover{ color: var(--bs-link-hover-color); background-color: var(--primary-50, rgba(0,0,0,.03)); }
  .nav-pills .nav-link.active{ background-color: var(--primary) !important; color: var(--primary-text, #fff) !important; }

  .nav-tabs .nav-link{ color: var(--bs-link-color); border-bottom: 2px solid transparent; transition: border-color .2s, color .2s; }
  .nav-tabs .nav-link:hover{ color: var(--bs-link-hover-color); border-bottom-color: var(--primary-300, rgba(0,0,0,.12)); }
  .nav-tabs .nav-link.active{
    color: var(--primary-text, #fff) !important;
    background-color: var(--primary-dark, #0c1e48) !important;
    border-bottom-color: var(--primary-dark, #0c1e48) !important;
  }

  .breadcrumb .breadcrumb-item a{ color: var(--bs-link-color); }
  .breadcrumb .breadcrumb-item a:hover{ color: var(--bs-link-hover-color); }

  /* Tables & DataTables */
  .table thead th{ background-color: var(--primary) !important; color: var(--primary-text, #fff) !important; }
  .table-hover tbody tr:hover{ background-color: var(--primary-50, rgba(0,0,0,.03)) !important; }

  /* DataTables controls are shared in ui-components.css. */
  .dataTables_info{ color: var(--muted-text-color, var(--primary-800, #162446)); display:block !important; margin-top:.25rem; white-space:normal; }
  .dataTables_wrapper .dataTables_paginate .paginate_button{
    color: var(--content-text-color, var(--primary)) !important; border:1px solid var(--surface-border-color, var(--primary)) !important; border-radius: var(--component-corner-radius, 0) !important; background: var(--surface-background-color, #fff) !important; min-width: 48px;
  }
  .dataTables_wrapper .dataTables_paginate .paginate_button.current,
  .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{
    background-color: var(--primary) !important; border-color: var(--primary) !important; color: var(--primary-text, #fff) !important;
  }
  .dataTables_wrapper .dataTables_paginate .paginate_button:hover{
    color: var(--bs-link-hover-color) !important; border-color: var(--input-focus-border-color, var(--primary)) !important; background-color: var(--table-row-hover-background-color, var(--primary-50, rgba(0,0,0,.03))) !important;
  }

  /* Pagination */
  .pagination .page-link{ color: var(--content-text-color, var(--bs-link-color)); border-color: var(--surface-border-color, transparent); border-radius: var(--component-corner-radius, 0) !important; background-color: var(--surface-background-color, transparent); }
  .pagination .page-link:hover{ color: var(--bs-link-hover-color); background-color: var(--table-row-hover-background-color, var(--primary-50, rgba(0,0,0,.03))); border-color: var(--input-focus-border-color, var(--primary)); }
  .pagination .page-item.active .page-link{
    background-color: var(--primary) !important; border-color: var(--primary) !important; color: var(--primary-text, #fff) !important;
  }

  /* Alerts / Toasts */
  .alert-primary{
    background-color: var(--primary-100, rgba(0,0,0,.06)) !important;
    color: var(--primary-900, #0a0f1c) !important;
    border-left: 4px solid var(--primary) !important;
  }
  .toast-primary .toast-header{ background-color: var(--primary) !important; color: var(--primary-text, #fff) !important; }

  /* Modals / Bars */
  .modal-header.bg-primary, .modal-primary .modal-header{
    background-color: var(--primary-darker, #0a173a) !important; color: var(--primary-text, #fff) !important;
  }

  /* Focus & selection */
  :focus{ outline:none; box-shadow: 0 0 0 .2rem var(--primary-300, rgba(0,0,0,.18)) !important; }
  ::selection{ background-color: var(--primary-300, rgba(0,0,0,.18)); color: var(--primary-text, #fff); }

  /* Micro-interactions */
  .btn.btn-primary, .btn.btn-outline-primary, .nav-tabs .nav-link, .nav-pills .nav-link, .pagination .page-link{
    transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .12s ease;
  }
  .btn.btn-primary:hover{ transform: translateY(-1px); }

  /* ===== Sidebar — LIGHT ===== */
  .main-sidebar.sidebar-light-primary,
  .main-sidebar.sidebar-light-primary .sidebar { background-color: #fff; }

  .sidebar-light-primary .nav-sidebar > .nav-item > .nav-link {
    color: var(--primary-800, #162446) !important;
    background: transparent !important;
    border-left: 3px solid transparent !important;
    transition: background-color .2s, color .2s, border-color .2s;
  }
  .sidebar-light-primary .nav-sidebar > .nav-item > .nav-link .nav-icon,
  .sidebar-light-primary .nav-sidebar > .nav-item > .nav-link .right,
  .sidebar-light-primary .nav-sidebar > .nav-item > .nav-link i {
    color: var(--primary-600, #1f315d) !important;
  }
  .sidebar-light-primary .nav-sidebar > .nav-item > .nav-link:hover {
    background-color: var(--primary-50, rgba(0,0,0,.03)) !important;
    color: var(--primary-900, #0a0f1c) !important;
  }
  .sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active,
  .sidebar-light-primary .nav-sidebar > .nav-item.menu-open > .nav-link {
    background-color: var(--primary-100, rgba(0,0,0,.06)) !important;
    color: var(--primary-900, #0a0f1c) !important;
    border-left-color: var(--primary) !important;
    font-weight: 600 !important;
  }
  .sidebar-light-primary .nav-treeview > .nav-item > .nav-link { color: var(--primary-700, #1a2a51) !important; background: transparent !important; }
  .sidebar-light-primary .nav-treeview > .nav-item > .nav-link:hover { background-color: var(--primary-50, rgba(0,0,0,.03)) !important; color: var(--primary-900, #0a0f1c) !important; }
  .sidebar-light-primary .nav-treeview > .nav-item > .nav-link.active { background-color: var(--primary-50, rgba(0,0,0,.03)) !important; color: var(--primary-900, #0a0f1c) !important; }
  .sidebar-light-primary .nav-header{ color: var(--primary-700, #1a2a51) !important; background: transparent !important; font-weight: 700; letter-spacing: .02em; }
  .sidebar-light-primary .brand-link{ color: var(--primary-900, #0a0f1c) !important; background: #fff !important; }
  .sidebar-light-primary .brand-link:hover{ background: var(--primary-50, rgba(0,0,0,.03)) !important; }

  /* ===== Sidebar — DARK ===== */
  .main-sidebar.sidebar-dark-primary { background-color: var(--primary-800, #162446) !important; }
  .sidebar-dark-primary .sidebar { background-color: transparent !important; }

  .sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link{
    color: rgba(255,255,255,.85) !important;
    background: transparent !important;
    border-left: 3px solid transparent !important;
    transition: background-color .2s, color .2s, border-color .2s;
  }
  .sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link .nav-icon,
  .sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link .right,
  .sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link i{
    color: rgba(255,255,255,.75) !important;
  }
  .sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link:hover{
    background-color: var(--primary-700, #1a2a51) !important; color: #fff !important;
  }
  .sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,
  .sidebar-dark-primary .nav-sidebar > .nav-item.menu-open > .nav-link{
    background-color: var(--primary-700, #1a2a51) !important; color: #fff !important;
    border-left-color: var(--primary-300, #8fa1cf) !important; font-weight: 600 !important;
  }
  .sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active .nav-icon,
  .sidebar-dark-primary .nav-sidebar > .nav-item.menu-open > .nav-link .nav-icon{ color: #fff !important; }
  .sidebar-dark-primary .nav-treeview > .nav-item > .nav-link{ color: rgba(255,255,255,.8) !important; background: transparent !important; }
  .sidebar-dark-primary .nav-treeview > .nav-item > .nav-link:hover{ background-color: var(--primary-700, #1a2a51) !important; color: #fff !important; }
  .sidebar-dark-primary .nav-treeview > .nav-item > .nav-link.active{ background-color: var(--primary-700, #1a2a51) !important; color: #fff !important; border-left: 3px solid var(--primary-300, #8fa1cf) !important; }
  .sidebar-dark-primary .nav-header{ color: rgba(255,255,255,.6) !important; background: transparent !important; font-weight: 700; letter-spacing: .02em; }
  .sidebar-dark-primary .brand-link{ color: #fff !important; background: var(--primary-800, #162446) !important; }
  .sidebar-dark-primary .brand-link:hover{ background: var(--primary-700, #1a2a51) !important; }
