/* =============================================================================
   HALO TRUST LAOS — Custom Bootstrap 5 Theme
   Load order: adminlte.css → custom.css → style.css

   HOW TO REBRAND
   ──────────────
   Only edit Section 1 (BRAND TOKENS). Everything else derives from those values
   automatically via color-mix(). You never need to touch hover/active/subtle
   colors manually.
   ============================================================================= */


/* =============================================================================
   1. BRAND TOKENS  ◄── THE ONLY PLACE WITH RAW HEX VALUES
   =============================================================================
   Change a color here → all buttons, alerts, badges, sidebar, etc. update.

   RGB triplets are needed by Bootstrap's rgba() internals.
   Keep each triplet in sync with its hex partner above it.
   ============================================================================= */
:root {
    /* ── Hex values ── */
    --c-primary:   #0B3C61;
    --c-secondary: #717171;
    --c-success:   #4E5F29;
    --c-danger:    #d45658;
    --c-warning:   #E87D1E;
    --c-info:      #008DA8;

    /* ── RGB triplets (keep in sync with hex above) ── */
    --c-primary-rgb:   11, 60, 97;
    --c-secondary-rgb: 166, 180, 172;
    --c-success-rgb:   78, 95, 41;
    --c-danger-rgb:    212, 86, 88;
    --c-warning-rgb:   232, 125, 30;
    --c-info-rgb:      0, 141, 168;
}


/* =============================================================================
   2. COMPUTED TOKENS  ◄── AUTO-DERIVED, DO NOT EDIT
   =============================================================================
   color-mix() darkens a color by mixing it with black/white.
   Supported: Chrome 111+, Firefox 113+, Safari 16.2+ (all modern browsers).
   ============================================================================= */
:root,
[data-bs-theme="light"] {

    /* ── Bootstrap 5 system variables ── */
    --bs-primary:           var(--c-primary);
    --bs-primary-rgb:       var(--c-primary-rgb);
    --bs-secondary:         var(--c-secondary);
    --bs-secondary-rgb:     var(--c-secondary-rgb);
    --bs-success:           var(--c-success);
    --bs-success-rgb:       var(--c-success-rgb);
    --bs-danger:            var(--c-danger);
    --bs-danger-rgb:        var(--c-danger-rgb);
    --bs-warning:           var(--c-warning);
    --bs-warning-rgb:       var(--c-warning-rgb);
    --bs-info:              var(--c-info);
    --bs-info-rgb:          var(--c-info-rgb);

    /* ── Hover / active shades (15% / 22% darker) ── */
    --c-primary-hover:      color-mix(in srgb, var(--c-primary)   85%, black);
    --c-primary-active:     color-mix(in srgb, var(--c-primary)   78%, black);
    --c-secondary-hover:    color-mix(in srgb, var(--c-secondary) 85%, black);
    --c-secondary-active:   color-mix(in srgb, var(--c-secondary) 78%, black);
    --c-success-hover:      color-mix(in srgb, var(--c-success)   85%, black);
    --c-success-active:     color-mix(in srgb, var(--c-success)   78%, black);
    --c-danger-hover:       color-mix(in srgb, var(--c-danger)    85%, black);
    --c-danger-active:      color-mix(in srgb, var(--c-danger)    78%, black);
    --c-warning-hover:      color-mix(in srgb, var(--c-warning)   85%, black);
    --c-warning-active:     color-mix(in srgb, var(--c-warning)   78%, black);
    --c-info-hover:         color-mix(in srgb, var(--c-info)      85%, black);
    --c-info-active:        color-mix(in srgb, var(--c-info)      78%, black);

    /* ── Subtle tints (10% color / 25% color mixed with white) ── */
    --c-primary-subtle:     color-mix(in srgb, var(--c-primary)   10%, white);
    --c-primary-border:     color-mix(in srgb, var(--c-primary)   25%, white);
    --c-success-subtle:     color-mix(in srgb, var(--c-success)   10%, white);
    --c-success-border:     color-mix(in srgb, var(--c-success)   25%, white);
    --c-danger-subtle:      color-mix(in srgb, var(--c-danger)    10%, white);
    --c-danger-border:      color-mix(in srgb, var(--c-danger)    25%, white);
    --c-warning-subtle:     color-mix(in srgb, var(--c-warning)   10%, white);
    --c-warning-border:     color-mix(in srgb, var(--c-warning)   25%, white);
    --c-info-subtle:        color-mix(in srgb, var(--c-info)      10%, white);
    --c-info-border:        color-mix(in srgb, var(--c-info)      25%, white);

    /* ── Bootstrap subtle variables (wired to computed tokens) ── */
    --bs-primary-bg-subtle:         var(--c-primary-subtle);
    --bs-primary-border-subtle:     var(--c-primary-border);
    --bs-primary-text-emphasis:     var(--c-primary);
    --bs-success-bg-subtle:         var(--c-success-subtle);
    --bs-success-border-subtle:     var(--c-success-border);
    --bs-success-text-emphasis:     var(--c-success);
    --bs-danger-bg-subtle:          var(--c-danger-subtle);
    --bs-danger-border-subtle:      var(--c-danger-border);
    --bs-danger-text-emphasis:      var(--c-danger);
    --bs-warning-bg-subtle:         var(--c-warning-subtle);
    --bs-warning-border-subtle:     var(--c-warning-border);
    --bs-warning-text-emphasis:     var(--c-warning);
    --bs-info-bg-subtle:            var(--c-info-subtle);
    --bs-info-border-subtle:        var(--c-info-border);
    --bs-info-text-emphasis:        var(--c-info);

    /* ── Links ── */
    --bs-link-color:                var(--c-primary);
    --bs-link-hover-color:          var(--c-info);
    --bs-link-color-rgb:            var(--c-primary-rgb);

    /* ── Focus ring ── */
    --bs-focus-ring-color:          rgba(var(--c-primary-rgb), 0.25);
    --bs-focus-ring-width:          0.2rem;

    /* ── AdminLTE sidebar (dark theme on primary background) ── */
    --lte-sidebar-dark-bg:          var(--c-primary);
    --lte-sidebar-dark-color:       rgba(255, 255, 255, 0.75);
    --lte-sidebar-dark-hover-bg:    rgba(255, 255, 255, 0.08);
    --lte-sidebar-dark-active-bg:   rgba(255, 255, 255, 0.18);
    --lte-sidebar-dark-active-color:#fff;
}


/* =============================================================================
   3. BUTTONS
   =============================================================================
   Uses Bootstrap 5's --bs-btn-* variables so ALL states (hover, active,
   disabled, focus) are covered in one block per button variant.
   Hover/active colors reference the computed tokens from Section 2.
   ============================================================================= */

/* ── Solid buttons ── */
.btn-primary {
    --bs-btn-color:              #fff;
    --bs-btn-bg:                 var(--c-primary);
    --bs-btn-border-color:       var(--c-primary);
    --bs-btn-hover-color:        #fff;
    --bs-btn-hover-bg:           var(--c-primary-hover);
    --bs-btn-hover-border-color: var(--c-primary-hover);
    --bs-btn-active-color:       #fff;
    --bs-btn-active-bg:          var(--c-primary-active);
    --bs-btn-active-border-color:var(--c-primary-active);
    --bs-btn-disabled-color:     #fff;
    --bs-btn-disabled-bg:        var(--c-primary);
    --bs-btn-disabled-border-color: var(--c-primary);
    --bs-btn-focus-shadow-rgb:   var(--c-primary-rgb);
}

.btn-secondary {
    --bs-btn-color:              #ffffff;
    --bs-btn-bg:                 var(--c-secondary);
    --bs-btn-border-color:       var(--c-secondary);
    --bs-btn-hover-color:        #d1d1d1;
    --bs-btn-hover-bg:           var(--c-secondary-hover);
    --bs-btn-hover-border-color: var(--c-secondary-hover);
    --bs-btn-active-color:       #ffffff;
    --bs-btn-active-bg:          var(--c-secondary-active);
    --bs-btn-active-border-color:var(--c-secondary-active);
    --bs-btn-disabled-bg:        var(--c-secondary);
    --bs-btn-disabled-border-color: var(--c-secondary);
    --bs-btn-focus-shadow-rgb:   var(--c-secondary-rgb);
}

.btn-success {
    --bs-btn-color:              #fff;
    --bs-btn-bg:                 var(--c-success);
    --bs-btn-border-color:       var(--c-success);
    --bs-btn-hover-color:        #fff;
    --bs-btn-hover-bg:           var(--c-success-hover);
    --bs-btn-hover-border-color: var(--c-success-hover);
    --bs-btn-active-color:       #fff;
    --bs-btn-active-bg:          var(--c-success-active);
    --bs-btn-active-border-color:var(--c-success-active);
    --bs-btn-disabled-bg:        var(--c-success);
    --bs-btn-disabled-border-color: var(--c-success);
    --bs-btn-focus-shadow-rgb:   var(--c-success-rgb);
}

.btn-danger {
    --bs-btn-color:              #fff;
    --bs-btn-bg:                 var(--c-danger);
    --bs-btn-border-color:       var(--c-danger);
    --bs-btn-hover-color:        #fff;
    --bs-btn-hover-bg:           var(--c-danger-hover);
    --bs-btn-hover-border-color: var(--c-danger-hover);
    --bs-btn-active-color:       #fff;
    --bs-btn-active-bg:          var(--c-danger-active);
    --bs-btn-active-border-color:var(--c-danger-active);
    --bs-btn-disabled-bg:        var(--c-danger);
    --bs-btn-disabled-border-color: var(--c-danger);
    --bs-btn-focus-shadow-rgb:   var(--c-danger-rgb);
}

.btn-warning {
    --bs-btn-color:              #fff;
    --bs-btn-bg:                 var(--c-warning);
    --bs-btn-border-color:       var(--c-warning);
    --bs-btn-hover-color:        #fff;
    --bs-btn-hover-bg:           var(--c-warning-hover);
    --bs-btn-hover-border-color: var(--c-warning-hover);
    --bs-btn-active-color:       #fff;
    --bs-btn-active-bg:          var(--c-warning-active);
    --bs-btn-active-border-color:var(--c-warning-active);
    --bs-btn-disabled-bg:        var(--c-warning);
    --bs-btn-disabled-border-color: var(--c-warning);
    --bs-btn-focus-shadow-rgb:   var(--c-warning-rgb);
}

.btn-info {
    --bs-btn-color:              #fff;
    --bs-btn-bg:                 var(--c-info);
    --bs-btn-border-color:       var(--c-info);
    --bs-btn-hover-color:        #fff;
    --bs-btn-hover-bg:           var(--c-info-hover);
    --bs-btn-hover-border-color: var(--c-info-hover);
    --bs-btn-active-color:       #fff;
    --bs-btn-active-bg:          var(--c-info-active);
    --bs-btn-active-border-color:var(--c-info-active);
    --bs-btn-disabled-bg:        var(--c-info);
    --bs-btn-disabled-border-color: var(--c-info);
    --bs-btn-focus-shadow-rgb:   var(--c-info-rgb);
}

/* ── Outline buttons ── */
.btn-outline-primary {
    --bs-btn-color:              var(--c-primary);
    --bs-btn-border-color:       var(--c-primary);
    --bs-btn-hover-color:        #fff;
    --bs-btn-hover-bg:           var(--c-primary);
    --bs-btn-hover-border-color: var(--c-primary);
    --bs-btn-active-color:       #fff;
    --bs-btn-active-bg:          var(--c-primary-hover);
    --bs-btn-focus-shadow-rgb:   var(--c-primary-rgb);
}

.btn-outline-secondary {
    --bs-btn-color:              var(--c-secondary);
    --bs-btn-border-color:       var(--c-secondary);
    --bs-btn-hover-color:        #212529;
    --bs-btn-hover-bg:           var(--c-secondary);
    --bs-btn-hover-border-color: var(--c-secondary);
    --bs-btn-active-bg:          var(--c-secondary-hover);
    --bs-btn-focus-shadow-rgb:   var(--c-secondary-rgb);
}

.btn-outline-success {
    --bs-btn-color:              var(--c-success);
    --bs-btn-border-color:       var(--c-success);
    --bs-btn-hover-color:        #fff;
    --bs-btn-hover-bg:           var(--c-success);
    --bs-btn-hover-border-color: var(--c-success);
    --bs-btn-active-bg:          var(--c-success-hover);
    --bs-btn-focus-shadow-rgb:   var(--c-success-rgb);
}

.btn-outline-danger {
    --bs-btn-color:              var(--c-danger);
    --bs-btn-border-color:       var(--c-danger);
    --bs-btn-hover-color:        #fff;
    --bs-btn-hover-bg:           var(--c-danger);
    --bs-btn-hover-border-color: var(--c-danger);
    --bs-btn-active-bg:          var(--c-danger-hover);
    --bs-btn-focus-shadow-rgb:   var(--c-danger-rgb);
}

.btn-outline-warning {
    --bs-btn-color:              var(--c-warning);
    --bs-btn-border-color:       var(--c-warning);
    --bs-btn-hover-color:        #fff;
    --bs-btn-hover-bg:           var(--c-warning);
    --bs-btn-hover-border-color: var(--c-warning);
    --bs-btn-active-bg:          var(--c-warning-hover);
    --bs-btn-focus-shadow-rgb:   var(--c-warning-rgb);
}

.btn-outline-info {
    --bs-btn-color:              var(--c-info);
    --bs-btn-border-color:       var(--c-info);
    --bs-btn-hover-color:        #fff;
    --bs-btn-hover-bg:           var(--c-info);
    --bs-btn-hover-border-color: var(--c-info);
    --bs-btn-active-bg:          var(--c-info-hover);
    --bs-btn-focus-shadow-rgb:   var(--c-info-rgb);
}


/* =============================================================================
   4. FORMS
   ============================================================================= */
.form-control:focus,
.form-select:focus {
    border-color: var(--c-primary);
    box-shadow:   0 0 0 var(--bs-focus-ring-width) var(--bs-focus-ring-color);
}

.form-check-input:checked,
.form-switch .form-check-input:checked {
    background-color: var(--c-primary);
    border-color:     var(--c-primary);
}

.form-check-input:focus {
    border-color: var(--c-primary);
    box-shadow:   0 0 0 var(--bs-focus-ring-width) var(--bs-focus-ring-color);
}

.input-group-text {
    background-color: var(--c-primary-subtle);
    border-color:     var(--c-primary-border);
    color:            var(--c-primary);
}


/* =============================================================================
   5. LINKS & PAGINATION
   ============================================================================= */
a         { color: var(--c-primary); }
a:hover   { color: var(--c-info); }

.pagination       { gap: 0.35rem; }
.page-link        { color: var(--c-primary); }
.page-link:hover  { color: var(--c-info); }
.page-link:focus  { box-shadow: 0 0 0 var(--bs-focus-ring-width) var(--bs-focus-ring-color); }

.page-link.active,
.active > .page-link {
    background-color: var(--c-primary);
    border-color:     var(--c-primary);
    color: #fff;
}


/* =============================================================================
   6. ALERTS
   ============================================================================= */
.alert-primary {
    --bs-alert-color:        var(--c-primary);
    --bs-alert-bg:           var(--c-primary-subtle);
    --bs-alert-border-color: var(--c-primary-border);
}
.alert-success {
    --bs-alert-color:        var(--c-success);
    --bs-alert-bg:           var(--c-success-subtle);
    --bs-alert-border-color: var(--c-success-border);
}
.alert-danger {
    --bs-alert-color:        var(--c-danger);
    --bs-alert-bg:           var(--c-danger-subtle);
    --bs-alert-border-color: var(--c-danger-border);
}
.alert-warning {
    --bs-alert-color:        var(--c-warning);
    --bs-alert-bg:           var(--c-warning-subtle);
    --bs-alert-border-color: var(--c-warning-border);
}
.alert-info {
    --bs-alert-color:        var(--c-info);
    --bs-alert-bg:           var(--c-info-subtle);
    --bs-alert-border-color: var(--c-info-border);
}


/* =============================================================================
   7. BADGES
   ============================================================================= */
.badge.bg-primary   { background-color: var(--c-primary)   !important; }
.badge.bg-secondary { background-color: var(--c-secondary) !important; }
.badge.bg-success   { background-color: var(--c-success)   !important; }
.badge.bg-danger    { background-color: var(--c-danger)    !important; }
.badge.bg-warning   { background-color: var(--c-warning)   !important; }
.badge.bg-info      { background-color: var(--c-info)      !important; }


/* =============================================================================
   8. PROGRESS BARS
   ============================================================================= */
.progress-bar               { background-color: var(--c-primary); }
.progress-bar.bg-primary    { background-color: var(--c-primary)   !important; }
.progress-bar.bg-success    { background-color: var(--c-success)   !important; }
.progress-bar.bg-danger     { background-color: var(--c-danger)    !important; }
.progress-bar.bg-warning    { background-color: var(--c-warning)   !important; }
.progress-bar.bg-info       { background-color: var(--c-info)      !important; }


/* =============================================================================
   9. NAVS — TABS & PILLS
   ============================================================================= */
.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus           { color: var(--c-primary); }

.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link  {
    color:        var(--c-primary);
    border-color: var(--c-primary-border) var(--c-primary-border) #fff;
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link        { background-color: var(--c-primary); color: #fff; }

.nav-pills .nav-link:not(.active):hover { color: var(--c-primary); }


/* =============================================================================
   10. DROPDOWNS
   ============================================================================= */
.dropdown-item:hover,
.dropdown-item:focus {
    background-color: var(--c-primary-subtle);
    color:            var(--c-primary);
}
.dropdown-item.active,
.dropdown-item:active {
    background-color: var(--c-primary);
    color: #fff;
}


/* =============================================================================
   11. CARDS
   ============================================================================= */
.card-header.bg-primary,
.card.border-primary > .card-header { background-color: var(--c-primary) !important; color: #fff; }

.card.border-primary { border-color: var(--c-primary) !important; }
.card.border-success { border-color: var(--c-success) !important; }
.card.border-danger  { border-color: var(--c-danger)  !important; }
.card.border-warning { border-color: var(--c-warning) !important; }
.card.border-info    { border-color: var(--c-info)    !important; }


/* =============================================================================
   12. TABLES
   ============================================================================= */
.table > thead {
    background-color: var(--c-primary-subtle);
    color:            var(--c-primary);
}

.table-primary {
    --bs-table-bg:          var(--c-primary-subtle);
    --bs-table-border-color:var(--c-primary-border);
    --bs-table-hover-bg:    color-mix(in srgb, var(--c-primary) 12%, white);
    --bs-table-striped-bg:  color-mix(in srgb, var(--c-primary)  8%, white);
    --bs-table-active-bg:   color-mix(in srgb, var(--c-primary) 14%, white);
    color:                  var(--c-primary);
}


/* =============================================================================
   13. ADMINLTE SIDEBAR
   ============================================================================= */
.app-sidebar { background-color: var(--c-primary) !important; }

.app-sidebar .brand-link,
.app-sidebar .sidebar-brand {
    background-color: rgba(0, 0, 0, 0.0);
    color: #fff !important; 
}

.app-sidebar .nav-sidebar .nav-link {
    color: rgba(111, 111, 111, 0.75);
    border-radius: 0.375rem;
    transition: background-color 0.15s ease, color 0.15s ease;
}
.app-sidebar .nav-sidebar .nav-link:hover,
.app-sidebar .nav-sidebar .nav-link:focus {
    background-color: rgba(255, 255, 255, 0.08);
    color: #fff;
}
.app-sidebar .nav-sidebar .nav-link.active {
    background-color: rgba(255, 255, 255, 0.18);
    color: #fff !important;
}

.app-sidebar .nav-header {
    color: rgb(255, 255, 255);
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.app-sidebar .nav-sidebar .nav-link .nav-arrow { color: rgba(255, 255, 255, 0.836); }
.app-sidebar .os-scrollbar-track  { background: rgba(255, 255, 255, 0.05) !important; }
.app-sidebar .os-scrollbar-handle { background: rgba(255, 255, 255, 0.25) !important; }


/* =============================================================================
   14. TOP NAVBAR / APP HEADER
   ============================================================================= */
.app-header.navbar-primary,
.main-header.navbar-primary {
    background-color: var(--c-primary) !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.15);
}
.app-header .navbar-nav .nav-link       { color: rgb(86, 86, 86); }
.app-header .navbar-nav .nav-link:hover { color: rgb(86, 86, 86, 0.8); }


/* =============================================================================
   15. MODALS
   ============================================================================= */
.modal-header.bg-primary {
    background-color: var(--c-primary) !important;
    color: #fff;
}
.modal-header.bg-primary .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}


/* =============================================================================
   16. TEXT & BACKGROUND UTILITIES
   ============================================================================= */
.text-primary   { color: var(--c-primary)   !important; }
.text-secondary { color: var(--c-secondary) !important; }
.text-success   { color: var(--c-success)   !important; }
.text-danger    { color: var(--c-danger)    !important; }
.text-warning   { color: var(--c-warning)   !important; }
.text-info      { color: var(--c-info)      !important; }

.bg-primary     { background-color: var(--c-primary)   !important; }
.bg-secondary   { background-color: var(--c-secondary) !important; }
.bg-success     { background-color: var(--c-success)   !important; }
.bg-danger      { background-color: var(--c-danger)    !important; }
.bg-warning     { background-color: var(--c-warning)   !important; }
.bg-info        { background-color: var(--c-info)      !important; }

.bg-primary-subtle  { background-color: var(--c-primary-subtle)  !important; }
.bg-success-subtle  { background-color: var(--c-success-subtle)  !important; }
.bg-danger-subtle   { background-color: var(--c-danger-subtle)   !important; }
.bg-warning-subtle  { background-color: var(--c-warning-subtle)  !important; }
.bg-info-subtle     { background-color: var(--c-info-subtle)     !important; }


/* =============================================================================
   17. RESPONSIVE BORDER UTILITIES
   ============================================================================= */
@media (min-width: 992px) {
    .border-start-lg {
        border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
    }
}
@media (min-width: 1200px) {
    .border-start-xl {
        border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
    }
}


/* =============================================================================
   18. TYPOGRAPHY HELPERS
   ============================================================================= */
.title       { font-size: 1.125rem; font-weight: 500; }   /* 18px */
.sub-title   { font-size: 1rem;     font-weight: 500; }   /* 16px */
.small-title { font-size: 0.875rem; font-weight: 500; }   /* 14px */

/* =============================================================================
   19. DATATABLES
   ============================================================================= */
table.dataTable thead th:focus,
table.dataTable thead th:hover { outline: none !important; }

/* Wrapper must be relative so both the backdrop and spinner anchor to it */
.dt-scroll-body,
div.dataTables_wrapper { position: relative; }

/* Full-table dimming backdrop — shown via .dt-loading class (added by JS on preXhr) */
div.dataTables_wrapper.dt-loading::after {
    content        : '';
    position       : absolute;
    inset          : 0;
    background     : rgba(255, 255, 255, 0.6);
    z-index        : 9;
    border-radius  : 0.25rem;
    pointer-events : none;
    animation      : dt-fade-in 0.15s ease;
}

@keyframes dt-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* Spinner badge — positioning & card style (DataTables controls display: none/block via inline style) */
.dt-processing {
    position     : absolute !important;
    top          : 50% !important;
    left         : 50% !important;
    transform    : translate(-50%, -50%) !important;
    z-index      : 10 !important;
    background   : #fff !important;
    border       : 1px solid rgba(0, 0, 0, 0.08) !important;
    border-radius: 0.5rem !important;
    padding      : 0.55rem 1.1rem !important;
    font-size    : 0.8125rem !important;
    font-weight  : 500 !important;
    color        : #495057 !important;
    box-shadow   : 0 6px 20px rgba(0, 0, 0, 0.14) !important;
    white-space  : nowrap !important;
    margin       : 0 !important;
    width        : auto !important;
}

/* Override DataTables' display:block with flex so spinner + text lay out inline */
.dt-processing[style*="block"] {
    display     : flex !important;
    align-items : center !important;
    gap         : 0.55rem !important;
    animation   : dt-fade-in 0.15s ease !important;
}
