/* =============================================================
   dark-theme.css
   Dark mode overrides for the admin dashboard.
   Loaded last so it wins over the base theme stylesheet.

   Selector strategy:
     • html.dark-theme  — class added by JS on <html>
     • body[data-sidebar="dark"]  — kept for sidebar-specific Sneat overrides
     • !important used only where the base stylesheet forces inline or !important styles

   Palette (government / formal):
     Page background  : #0F172A
     Sidebar          : #16212B
     Card surface     : #111827
     Elevated surface : #1E293B
     Active menu bg   : #273442
     Border           : #334155
     Strong border    : #475569
     Main text        : #F8FAFC
     Secondary text   : #CBD5E1
     Muted text       : #94A3B8
     Primary btn      : #1D4ED8
     Primary btn hover: #2563EB
   ============================================================= */

/* --------------------------------------------------
   CSS custom properties — dark values
   -------------------------------------------------- */
html.dark-theme {
    --dk-bg:           #0F172A;   /* page background */
    --dk-sidebar:      #16212B;   /* sidebar */
    --dk-surface:      #111827;   /* cards, panels, tables */
    --dk-surface-2:    #1E293B;   /* elevated: card headers, tr:hover, tooltips */
    --dk-active:       #273442;   /* active / selected menu item */
    --dk-bdr:          #334155;   /* default border */
    --dk-bdr-strong:   #475569;   /* table dividers, header borders */
    --dk-txt:          #F8FAFC;   /* primary text */
    --dk-txt-2:        #CBD5E1;   /* secondary text */
    --dk-txt-muted:    #94A3B8;   /* placeholder, muted labels */
    --dk-primary:      #1D4ED8;   /* primary button */
    --dk-primary-h:    #2563EB;   /* primary button hover */
    --dk-blue-accent:  #3B82F6;   /* active sidebar left-border accent */
    --dk-danger:       #EF4444;
    --dk-success:      #22C55E;
    --dk-warning:      #F59E0B;
}


/* --------------------------------------------------
   Body + page chrome
   -------------------------------------------------- */
html.dark-theme body {
    background-color: var(--dk-bg) !important;
    color: var(--dk-txt) !important;
}

html.dark-theme #layout-wrapper {
    background-color: var(--dk-bg);
}

html.dark-theme .main-content {
    background-color: var(--dk-bg) !important;
    color: var(--dk-txt);
}

html.dark-theme .page-content {
    background-color: var(--dk-bg) !important;
}

html.dark-theme .container-fluid {
    background-color: transparent;
    color: var(--dk-txt);
}

html.dark-theme .page-title-box {
    background-color: transparent;
}

html.dark-theme .page-title-box h4,
html.dark-theme .page-title-box .breadcrumb,
html.dark-theme .page-title-box .breadcrumb-item,
html.dark-theme .page-title-box .breadcrumb-item a,
html.dark-theme .page-title-box .breadcrumb-item.active {
    color: var(--dk-txt-2) !important;
}

html.dark-theme .breadcrumb-item + .breadcrumb-item::before {
    color: var(--dk-txt-muted);
}

/* --------------------------------------------------
   Topbar / Navbar
   -------------------------------------------------- */
html.dark-theme #page-topbar,
html.dark-theme .navbar-header {
    background-color: var(--dk-surface) !important;
    border-bottom: 1px solid var(--dk-bdr) !important;
    box-shadow: 0 2px 8px rgba(2, 6, 23, 0.55) !important;
}

html.dark-theme #page-topbar *,
html.dark-theme .navbar-header * {
    color: var(--dk-txt-2);
}

html.dark-theme #page-topbar a,
html.dark-theme #page-topbar button,
html.dark-theme #page-topbar i,
html.dark-theme #page-topbar .bx {
    color: var(--dk-txt-2) !important;
}

html.dark-theme .navbar-brand-box {
    background-color: var(--dk-sidebar) !important;
    border-bottom: 1px solid rgba(255,255,255,0.04) !important;
}

/* ---- User dropdown in topbar ---- */
html.dark-theme .dropdown-menu {
    background-color: var(--dk-surface) !important;
    border: 1px solid var(--dk-bdr) !important;
    box-shadow: 0 4px 16px rgba(2,6,23,0.6) !important;
}

html.dark-theme .dropdown-item {
    color: var(--dk-txt-2) !important;
}

html.dark-theme .dropdown-item:hover,
html.dark-theme .dropdown-item:focus {
    background-color: var(--dk-surface-2) !important;
    color: var(--dk-txt) !important;
}

html.dark-theme .dropdown-divider {
    border-color: var(--dk-bdr) !important;
}

/* --------------------------------------------------
   Sidebar / Vertical Menu
   -------------------------------------------------- */
html.dark-theme .vertical-menu {
    background-color: var(--dk-sidebar) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.03) !important;
    box-shadow: 2px 0 12px rgba(2, 6, 23, 0.5);
}

/* Ensure simplebar wrapper is transparent */
html.dark-theme .vertical-menu [data-simplebar],
html.dark-theme #sidebar-menu {
    background-color: transparent !important;
}

/* ---- Side menu links ---- */
html.dark-theme #side-menu a,
html.dark-theme #side-menu > li > a {
    color: var(--dk-txt-2) !important;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 10px 16px;
    transition: background-color 0.15s ease, color 0.15s ease;
}

html.dark-theme #side-menu a i,
html.dark-theme #side-menu a .bx {
    color: var(--dk-txt-muted) !important;
    font-size: 18px;
    min-width: 22px;
    text-align: center;
    flex-shrink: 0;
}

/* sub-menu items */
html.dark-theme #side-menu ul.sub-menu,
html.dark-theme #side-menu ul.mm-show {
    background-color: rgba(0, 0, 0, 0.15) !important;
}

html.dark-theme #side-menu ul.sub-menu li a {
    padding: 8px 28px;
    font-size: 14px;
    color: var(--dk-txt-2) !important;
}

/* ---- Hover state ---- */
html.dark-theme #side-menu a:hover,
html.dark-theme #side-menu ul.sub-menu li a:hover {
    background-color: var(--dk-surface-2) !important;
    color: var(--dk-txt) !important;
}

html.dark-theme #side-menu a:hover i,
html.dark-theme #side-menu a:hover .bx {
    color: var(--dk-txt) !important;
}

/* ---- mm-active (metisMenu open parent) ---- */
html.dark-theme #side-menu li.mm-active > a {
    color: var(--dk-txt) !important;
    background-color: transparent !important;
}

/* --------------------------------------------------
   Active menu item overrides
   NOTE: The inline <style> in default.blade.php uses
   #a5a5a5 !important — those overrides are applied
   AFTER this file. The matching dark-theme overrides
   are also placed inside that <style> block (see blade).
   The rules below act as a reinforcement layer.
   -------------------------------------------------- */
html.dark-theme #side-menu > li.menu-current > a,
html.dark-theme #side-menu li.menu-current-child > a,
html.dark-theme #side-menu li.mm-active.menu-current > a {
    background-color: var(--dk-active) !important;
    color: var(--dk-txt) !important;
    border-inline-start: 4px solid var(--dk-blue-accent) !important;
}

html.dark-theme #side-menu > li.menu-current > a i,
html.dark-theme #side-menu li.menu-current-child > a i,
html.dark-theme #side-menu > li.menu-current > a .bx,
html.dark-theme #side-menu li.menu-current-child > a .bx {
    color: var(--dk-txt) !important;
}

html.dark-theme #side-menu li.menu-current-child .font-size-15,
html.dark-theme #side-menu li.menu-current-child span {
    color: var(--dk-txt) !important;
}

/* ---- metisMenu arrow ---- */
html.dark-theme .has-arrow::after {
    border-color: var(--dk-txt-muted) !important;
}

html.dark-theme li.mm-active > .has-arrow::after {
    border-color: var(--dk-txt-2) !important;
}

/* --------------------------------------------------
   Cards / Panels
   -------------------------------------------------- */
html.dark-theme .card {
    background-color: var(--dk-surface) !important;
    border: 1px solid var(--dk-bdr) !important;
    color: var(--dk-txt) !important;
    box-shadow: 0 4px 24px rgba(2, 6, 23, 0.5) !important;
}

html.dark-theme .card-header {
    background-color: var(--dk-surface-2) !important;
    border-bottom: 1px solid var(--dk-bdr) !important;
    color: var(--dk-txt) !important;
}

html.dark-theme .card-footer {
    background-color: var(--dk-surface-2) !important;
    border-top: 1px solid var(--dk-bdr) !important;
    color: var(--dk-txt-2) !important;
}

html.dark-theme .card-body {
    color: var(--dk-txt);
}

html.dark-theme .card-title,
html.dark-theme .card-subtitle {
    color: var(--dk-txt) !important;
}

html.dark-theme .card-text,
html.dark-theme .card-body p {
    color: var(--dk-txt-2);
}

/* Small info boxes */
html.dark-theme .mini-stat,
html.dark-theme .small-box {
    background-color: var(--dk-surface) !important;
    border: 1px solid var(--dk-bdr) !important;
    color: var(--dk-txt) !important;
}

/* --------------------------------------------------
   Tables
   -------------------------------------------------- */
html.dark-theme .table,
html.dark-theme table {
    background-color: var(--dk-surface) !important;
    color: var(--dk-txt-2) !important;
    border-color: var(--dk-bdr) !important;
}

html.dark-theme .table thead th,
html.dark-theme table thead th {
    background-color: var(--dk-surface-2) !important;
    color: var(--dk-txt) !important;
    border-bottom: 2px solid var(--dk-bdr-strong) !important;
    font-weight: 600;
    letter-spacing: 0.02em;
}

html.dark-theme .table tbody tr,
html.dark-theme table tbody tr {
    border-bottom: 1px solid var(--dk-bdr) !important;
}

html.dark-theme .table tbody td,
html.dark-theme table tbody td {
    color: var(--dk-txt-2) !important;
    background-color: transparent;
    border-color: var(--dk-bdr) !important;
}

html.dark-theme .table tbody tr:hover td,
html.dark-theme table tbody tr:hover td {
    background-color: var(--dk-surface-2) !important;
    color: var(--dk-txt) !important;
}

html.dark-theme .table-hover > tbody > tr:hover {
    --bs-table-accent-bg: var(--dk-surface-2);
    color: var(--dk-txt) !important;
}

html.dark-theme .table-striped tbody tr:nth-of-type(odd) {
    background-color: rgba(30, 41, 59, 0.35) !important;
}

html.dark-theme .table-bordered,
html.dark-theme .table-bordered td,
html.dark-theme .table-bordered th {
    border-color: var(--dk-bdr) !important;
}

/* DataTables wrapper */
html.dark-theme .dataTables_wrapper,
html.dark-theme .dataTables_filter label,
html.dark-theme .dataTables_length label,
html.dark-theme .dataTables_info {
    color: var(--dk-txt-2) !important;
}

html.dark-theme .dataTables_paginate .paginate_button {
    color: var(--dk-txt-2) !important;
}

html.dark-theme .dataTables_paginate .paginate_button.current,
html.dark-theme .dataTables_paginate .paginate_button:hover {
    background: var(--dk-surface-2) !important;
    color: var(--dk-txt) !important;
    border-color: var(--dk-bdr) !important;
}

/* --------------------------------------------------
   Forms / Inputs
   -------------------------------------------------- */
html.dark-theme .form-control,
html.dark-theme input[type="text"],
html.dark-theme input[type="email"],
html.dark-theme input[type="password"],
html.dark-theme input[type="number"],
html.dark-theme input[type="search"],
html.dark-theme input[type="tel"],
html.dark-theme input[type="url"],
html.dark-theme input[type="date"],
html.dark-theme textarea,
html.dark-theme select {
    background-color: var(--dk-surface-2) !important;
    border: 1px solid var(--dk-bdr) !important;
    color: var(--dk-txt) !important;
}

html.dark-theme .form-control:focus,
html.dark-theme input:focus,
html.dark-theme textarea:focus,
html.dark-theme select:focus {
    background-color: var(--dk-surface-2) !important;
    border-color: var(--dk-blue-accent) !important;
    color: var(--dk-txt) !important;
    box-shadow: 0 0 0 0.15rem rgba(59, 130, 246, 0.2) !important;
    outline: none !important;
}

html.dark-theme .form-control::placeholder,
html.dark-theme input::placeholder,
html.dark-theme textarea::placeholder {
    color: var(--dk-txt-muted) !important;
    opacity: 1;
}

html.dark-theme .form-label,
html.dark-theme label {
    color: var(--dk-txt-2);
}

html.dark-theme .form-text,
html.dark-theme .text-muted {
    color: var(--dk-txt-muted) !important;
}

html.dark-theme .input-group-text {
    background-color: var(--dk-surface-2) !important;
    border-color: var(--dk-bdr) !important;
    color: var(--dk-txt-muted) !important;
}

/* ---- Select2 ---- */
html.dark-theme .select2-container--default .select2-selection--single,
html.dark-theme .select2-container--default .select2-selection--multiple {
    background-color: var(--dk-surface-2) !important;
    border: 1px solid var(--dk-bdr) !important;
    color: var(--dk-txt) !important;
}

/* Make select2 look like other inputs (height, padding, radius) */
html.dark-theme .select2-container,
html.dark-theme .select2-container--bootstrap-5 .select2-selection,
html.dark-theme .select2-container--default .select2-selection--single,
html.dark-theme .select2-container--default .select2-selection--multiple {
    min-height: 42px !important;
    padding: 6px 12px !important;
    border-radius: 4px !important;
    box-sizing: border-box !important;
}

html.dark-theme .select2-container--default .select2-selection--single .select2-selection__rendered,
html.dark-theme .select2-container--bootstrap-5 .select2-selection .select2-selection__rendered {
    color: var(--dk-txt) !important;
}

html.dark-theme .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--dk-txt) !important;
}

/* Generic selector to ensure the visible Select2 control uses the same background as inputs */
html.dark-theme .select2-container .select2-selection {
    background-color: var(--dk-surface-2) !important;
    border: 1px solid var(--dk-bdr) !important;
    color: var(--dk-txt) !important;
}

html.dark-theme .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: var(--dk-txt-muted) transparent transparent transparent !important;
}

html.dark-theme .select2-dropdown {
    background-color: var(--dk-surface) !important;
    border: 1px solid var(--dk-bdr) !important;
}

html.dark-theme .select2-container--default .select2-results__option {
    color: var(--dk-txt-2) !important;
}

html.dark-theme .select2-container--default .select2-results__option--highlighted[aria-selected],
html.dark-theme .select2-container--default .select2-results__option--highlighted[data-selected] {
    background-color: var(--dk-surface-2) !important;
    color: var(--dk-txt) !important;
}

html.dark-theme .select2-search--dropdown .select2-search__field {
    background-color: var(--dk-surface-2) !important;
    border-color: var(--dk-bdr) !important;
    color: var(--dk-txt) !important;
}

/* ---- Datepicker ---- */
html.dark-theme .datepicker,
html.dark-theme .datepicker table,
html.dark-theme .datepicker-dropdown {
    background-color: var(--dk-surface) !important;
    color: var(--dk-txt-2) !important;
    border: 1px solid var(--dk-bdr) !important;
}

html.dark-theme .datepicker td,
html.dark-theme .datepicker th {
    background-color: transparent !important;
    color: var(--dk-txt-2) !important;
}

html.dark-theme .datepicker td.active,
html.dark-theme .datepicker td.active:hover {
    background-color: var(--dk-primary) !important;
    color: #fff !important;
}

/* --------------------------------------------------
   Buttons
   -------------------------------------------------- */
html.dark-theme .btn-primary {
    background-color: var(--dk-primary) !important;
    border-color: var(--dk-primary) !important;
    color: #fff !important;
}

html.dark-theme .btn-primary:hover,
html.dark-theme .btn-primary:focus {
    background-color: var(--dk-primary-h) !important;
    border-color: var(--dk-primary-h) !important;
    color: #fff !important;
}

html.dark-theme .btn-secondary,
html.dark-theme .btn-outline-secondary {
    color: var(--dk-txt-2) !important;
    border-color: var(--dk-bdr) !important;
    background-color: transparent !important;
}

html.dark-theme .btn-secondary:hover,
html.dark-theme .btn-outline-secondary:hover {
    background-color: var(--dk-surface-2) !important;
    color: var(--dk-txt) !important;
}

html.dark-theme .btn-light {
    background-color: var(--dk-surface-2) !important;
    border-color: var(--dk-bdr) !important;
    color: var(--dk-txt-2) !important;
}

html.dark-theme .btn-link {
    color: var(--dk-blue-accent) !important;
}

/* --------------------------------------------------
   Headings & text utilities
   -------------------------------------------------- */
html.dark-theme h1, html.dark-theme h2,
html.dark-theme h3, html.dark-theme h4,
html.dark-theme h5, html.dark-theme h6 {
    color: var(--dk-txt) !important;
}

html.dark-theme p,
html.dark-theme span:not(.badge),
html.dark-theme li:not(.page-item),
html.dark-theme strong,
html.dark-theme b {
    color: inherit;
}

html.dark-theme a {
    color: var(--dk-txt-2);
}

html.dark-theme a:hover {
    color: var(--dk-txt);
}

html.dark-theme hr,
html.dark-theme .divider {
    border-color: var(--dk-bdr) !important;
    opacity: 1;
}

/* --------------------------------------------------
   Modals
   -------------------------------------------------- */
html.dark-theme .modal-content {
    background-color: var(--dk-surface) !important;
    border: 1px solid var(--dk-bdr) !important;
    color: var(--dk-txt);
}

html.dark-theme .modal-header {
    background-color: var(--dk-surface-2) !important;
    border-bottom: 1px solid var(--dk-bdr) !important;
    color: var(--dk-txt) !important;
}

html.dark-theme .modal-footer {
    background-color: var(--dk-surface-2) !important;
    border-top: 1px solid var(--dk-bdr) !important;
}

html.dark-theme .modal-title {
    color: var(--dk-txt) !important;
}

html.dark-theme .modal-backdrop {
    background-color: rgba(2, 6, 23, 0.75) !important;
}

html.dark-theme .btn-close {
    filter: invert(1) grayscale(100%) brightness(1.5);
}

/* --------------------------------------------------
   Alerts / Badges
   -------------------------------------------------- */
html.dark-theme .alert {
    border-color: var(--dk-bdr) !important;
}

html.dark-theme .alert-info {
    background-color: rgba(56, 189, 248, 0.1) !important;
    color: #7DD3FC !important;
    border-color: rgba(56, 189, 248, 0.25) !important;
}

html.dark-theme .alert-success {
    background-color: rgba(34, 197, 94, 0.1) !important;
    color: #86EFAC !important;
    border-color: rgba(34, 197, 94, 0.25) !important;
}

html.dark-theme .alert-warning {
    background-color: rgba(245, 158, 11, 0.1) !important;
    color: #FCD34D !important;
    border-color: rgba(245, 158, 11, 0.25) !important;
}

html.dark-theme .alert-danger {
    background-color: rgba(239, 68, 68, 0.1) !important;
    color: #FCA5A5 !important;
    border-color: rgba(239, 68, 68, 0.25) !important;
}

/* --------------------------------------------------
   Pagination
   -------------------------------------------------- */
html.dark-theme .pagination .page-item .page-link {
    background-color: var(--dk-surface) !important;
    border-color: var(--dk-bdr) !important;
    color: var(--dk-txt-2) !important;
}

html.dark-theme .pagination .page-item.active .page-link {
    background-color: var(--dk-primary) !important;
    border-color: var(--dk-primary) !important;
    color: #fff !important;
}

html.dark-theme .pagination .page-item .page-link:hover {
    background-color: var(--dk-surface-2) !important;
    color: var(--dk-txt) !important;
}

/* Make disabled pagination items visually separated in dark mode */
html.dark-theme .pagination .page-item.disabled .page-link,
html.dark-theme .pagination .page-item.disabled span.page-link {
    border: 1px solid var(--dk-bdr) !important;
    background-color: transparent !important;
    color: var(--dk-txt-muted) !important;
    opacity: 1 !important;
}

/* Ensure disabled items don't change appearance on hover/focus */
html.dark-theme .pagination .page-item.disabled .page-link:hover,
html.dark-theme .pagination .page-item.disabled .page-link:focus {
    background-color: transparent !important;
    color: var(--dk-txt-muted) !important;
    box-shadow: none !important;
}

/* --------------------------------------------------
   Footer
   -------------------------------------------------- */
html.dark-theme footer.footer {
    background-color: transparent !important;
    border-top: 1px solid var(--dk-bdr) !important;
    color: var(--dk-txt-2) !important;
}

html.dark-theme footer.footer .container-fluid {
    background-color: transparent !important;
}

html.dark-theme footer.footer span,
html.dark-theme footer.footer a {
    color: var(--dk-txt-2) !important;
}

/* --------------------------------------------------
   Scrollbar (Webkit)
   -------------------------------------------------- */
html.dark-theme ::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

html.dark-theme ::-webkit-scrollbar-track {
    background: var(--dk-bg);
}

html.dark-theme ::-webkit-scrollbar-thumb {
    background: var(--dk-bdr-strong);
    border-radius: 3px;
}

html.dark-theme ::-webkit-scrollbar-thumb:hover {
    background: #64748B;
}

/* --------------------------------------------------
   RTL safety — ensure inline-start works with RTL
   The <html> has dir="rtl" inline style, so
   border-inline-start maps to border-right in RTL.
   -------------------------------------------------- */
html.dark-theme[dir="rtl"] #side-menu > li.menu-current > a,
html.dark-theme[dir="rtl"] #side-menu li.menu-current-child > a {
    border-inline-start: 4px solid var(--dk-blue-accent) !important;
    border-inline-end: none !important;
}
html.dark-theme .table-striped > tbody > tr:nth-of-type(odd) {
    --bs-table-accent-bg: #0d1629;
    color: var(--bs-table-striped-color);
}
html.dark-theme pre {
    color: #eff2f7;
}
/* End of dark-theme.css */

