/* =================================================================
   dark-mode.css — System-wide dark mode overrides
   Activated when .dark-style class is present on <html>.
   Do NOT add page-specific rules here; keep them in page <style>.
   ================================================================= */

/* ── Bootstrap token overrides ─────────────────────────────── */
.dark-style {
    color-scheme: dark;
    --bs-body-bg:                #0f172a;
    --bs-body-color:             #e2e8f0;
    --bs-secondary-color:        #94a3b8;
    --bs-border-color:           #334155;
    --bs-card-bg:                #1e293b;
    --bs-card-border-color:      #334155;
    --bs-modal-bg:               #1e293b;
    --bs-modal-border-color:     #334155;
    --bs-dropdown-bg:            #1e293b;
    --bs-dropdown-border-color:  #334155;
    --bs-dropdown-link-color:    #e2e8f0;
    --bs-list-group-bg:          #1e293b;
    --bs-list-group-border-color:#334155;
    --bs-input-bg:               #1e293b;
}

/* ── Tables ─────────────────────────────────────────────────── */
.dark-style .table {
    --bs-table-color:         #e2e8f0;
    --bs-table-bg:            transparent;
    --bs-table-border-color:  #334155;
    --bs-table-striped-bg:    rgba(255,255,255,0.04);
    --bs-table-striped-color: #e2e8f0;
    --bs-table-hover-bg:      rgba(255,255,255,0.06);
    --bs-table-hover-color:   #e2e8f0;
    --bs-table-active-bg:     rgba(99,102,241,0.12);
    color: #e2e8f0;
    border-color: #334155;
}
.dark-style .table > :not(caption) > * > * {
    border-bottom-color: #334155;
    background-color: transparent;
}
.dark-style .table thead th,
.dark-style .table thead td {
    background-color: rgba(15,23,42,0.60);
    color: #94a3b8;
    border-color: #334155;
}
.dark-style .table-bordered > :not(caption) > *,
.dark-style .table-bordered > :not(caption) > * > * {
    border-color: #334155;
}
.dark-style .table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-accent-bg: rgba(255,255,255,0.04);
    color: #e2e8f0;
}

/* ── Cards ──────────────────────────────────────────────────── */
.dark-style .card {
    background: linear-gradient(180deg, #1e293b 0%, #152232 100%);
    border-color: #334155;
    color: #e2e8f0;
}
.dark-style .card-header {
    border-bottom-color: #334155;
    color: #f1f5f9;
}
.dark-style .card-footer {
    background-color: rgba(255,255,255,0.02);
    border-top-color: #334155;
}
.dark-style .card-title  { color: #f1f5f9; }
.dark-style .card-text   { color: #94a3b8; }

/* ── Design-system panels (.panel / .panel--*) ──────────────── */
/* Light mode: softer header tint matching accent bar colour */
.panel__header {
    background: linear-gradient(135deg, rgba(79,70,229,0.07) 0%, rgba(16,185,129,0.05) 100%);
}
.panel--blue .panel__header {
    background: linear-gradient(135deg, rgba(59,130,246,0.07) 0%, rgba(99,102,241,0.04) 100%);
}
.panel--green .panel__header {
    background: linear-gradient(135deg, rgba(16,185,129,0.07) 0%, rgba(20,184,166,0.04) 100%);
}
.panel--amber .panel__header {
    background: linear-gradient(135deg, rgba(245,158,11,0.09) 0%, rgba(249,115,22,0.05) 100%);
}

/* Dark mode: same tints but more visible against dark background */
.dark-style .panel,
.dark-style .panel__header ~ .panel__body {
    background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
    border-color: #334155;
    color: #e2e8f0;
}
.dark-style .panel__header {
    background: linear-gradient(135deg, rgba(99,102,241,0.14) 0%, rgba(16,185,129,0.09) 100%);
    border-bottom-color: #334155;
    color: #f1f5f9;
}
.dark-style .panel--blue .panel__header {
    background: linear-gradient(135deg, rgba(59,130,246,0.16) 0%, rgba(99,102,241,0.10) 100%);
}
.dark-style .panel--green .panel__header {
    background: linear-gradient(135deg, rgba(16,185,129,0.16) 0%, rgba(20,184,166,0.10) 100%);
}
.dark-style .panel--amber .panel__header {
    background: linear-gradient(135deg, rgba(245,158,11,0.18) 0%, rgba(249,115,22,0.11) 100%);
}
.dark-style .panel__title    { color: #f1f5f9; }
.dark-style .panel__subtitle { color: #94a3b8; }

/* ── Form controls ──────────────────────────────────────────── */
.dark-style .form-control,
.dark-style .form-select {
    background-color: #1e293b;
    border-color: #475569;
    color: #e2e8f0;
}
.dark-style .form-control:focus,
.dark-style .form-select:focus {
    background-color: #1e293b;
    border-color: #6366f1;
    color: #e2e8f0;
    box-shadow: 0 0 0 0.2rem rgba(99,102,241,0.20);
}
.dark-style .form-control::placeholder { color: #64748b; }
.dark-style .form-control:disabled,
.dark-style .form-select:disabled {
    background-color: #0f172a;
    color: #64748b;
    border-color: #334155;
}
.dark-style .form-label,
.dark-style label { color: #e2e8f0; }
.dark-style .form-text,
.dark-style .form-floating > label { color: #94a3b8; }
.dark-style .input-group-text {
    background-color: #334155;
    border-color: #475569;
    color: #e2e8f0;
}

/* ── Dropdowns ──────────────────────────────────────────────── */
.dark-style .dropdown-menu {
    background-color: #1e293b;
    border-color: #334155;
    box-shadow: 0 8px 24px rgba(0,0,0,0.35);
}
.dark-style .dropdown-item         { color: #e2e8f0; }
.dark-style .dropdown-item:hover,
.dark-style .dropdown-item:focus   { background-color: rgba(99,102,241,0.12); color: #a5b4fc; }
.dark-style .dropdown-divider      { border-color: #334155; }
.dark-style .dropdown-header       { color: #94a3b8; }

/* ── Modals ─────────────────────────────────────────────────── */
.dark-style .modal-content         { background-color: #1e293b; border-color: #334155; color: #e2e8f0; }
.dark-style .modal-header          { border-bottom-color: #334155; }
.dark-style .modal-body            { background-color: #152232; }
.dark-style .modal-footer          { background-color: #1e293b; border-top-color: #334155; }
.dark-style .btn-close             { filter: invert(1) grayscale(100%) brightness(200%); }

/* ── Navigation ─────────────────────────────────────────────── */
.dark-style .nav-tabs              { border-bottom-color: #334155; }
.dark-style .nav-tabs .nav-link    { color: #94a3b8; border-color: transparent; }
.dark-style .nav-tabs .nav-link:hover { color: #e2e8f0; border-color: #475569 #475569 transparent; }
.dark-style .nav-tabs .nav-link.active {
    background-color: #1e293b; border-color: #334155 #334155 #1e293b; color: #a5b4fc;
}
.dark-style .nav-pills .nav-link           { color: #94a3b8; }
.dark-style .nav-pills .nav-link.active    { background-color: rgba(99,102,241,0.20); color: #a5b4fc; }
.dark-style .tab-content                   { color: #e2e8f0; }
.dark-style .tab-pane                      { background-color: #1e293b; border-color: #334155; }

/* ── List group ─────────────────────────────────────────────── */
.dark-style .list-group-item               { background-color: #1e293b; border-color: #334155; color: #e2e8f0; }
.dark-style .list-group-item:hover         { background-color: rgba(255,255,255,0.04); }
.dark-style .list-group-item.active        {
    background-color: rgba(99,102,241,0.20);
    border-color: rgba(99,102,241,0.30);
    color: #a5b4fc;
}

/* ── Alerts ─────────────────────────────────────────────────── */
.dark-style .alert-primary   { background: rgba(99,102,241,0.15);  border-color: rgba(99,102,241,0.25);  color: #a5b4fc; }
.dark-style .alert-success   { background: rgba(16,185,129,0.15);  border-color: rgba(16,185,129,0.25);  color: #34d399; }
.dark-style .alert-warning   { background: rgba(245,158,11,0.15);  border-color: rgba(245,158,11,0.25);  color: #fbbf24; }
.dark-style .alert-danger    { background: rgba(239,68,68,0.15);   border-color: rgba(239,68,68,0.25);   color: #f87171; }
.dark-style .alert-info      { background: rgba(59,130,246,0.15);  border-color: rgba(59,130,246,0.25);  color: #60a5fa; }
.dark-style .alert-secondary { background: rgba(100,116,139,0.15); border-color: rgba(100,116,139,0.25); color: #94a3b8; }

/* ── Utility overrides ──────────────────────────────────────── */
.dark-style .text-muted      { color: #94a3b8 !important; }
.dark-style .text-dark       { color: #e2e8f0 !important; }
.dark-style .text-secondary  { color: #94a3b8 !important; }
.dark-style .border          { border-color: #334155 !important; }
.dark-style .border-bottom   { border-bottom-color: #334155 !important; }
.dark-style .border-top      { border-top-color: #334155 !important; }
.dark-style .bg-white        { background-color: #1e293b !important; }
.dark-style .bg-light        { background-color: #0f172a !important; }
.dark-style .bg-body         { background-color: #0f172a !important; }
.dark-style hr               { border-color: #334155; opacity: 1; }
.dark-style small,
.dark-style .small           { color: #94a3b8; }

/* ── DataTables ─────────────────────────────────────────────── */
.dark-style .dataTables_wrapper .dataTables_length label,
.dark-style .dataTables_wrapper .dataTables_filter label,
.dark-style .dataTables_wrapper .dataTables_info,
.dark-style .dataTables_wrapper .dataTables_processing { color: #94a3b8; }

.dark-style .dataTables_wrapper .dataTables_filter input,
.dark-style .dataTables_wrapper .dataTables_length select {
    background-color: #1e293b;
    border: 1px solid #475569;
    border-radius: 0.5rem;
    color: #e2e8f0;
    padding: 0.25rem 0.5rem;
}
.dark-style .dataTables_wrapper .dataTables_paginate .paginate_button {
    color: #94a3b8 !important;
    border-color: transparent !important;
    background: transparent !important;
}
.dark-style .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: rgba(99,102,241,0.12) !important;
    border-color: rgba(99,102,241,0.20) !important;
    color: #a5b4fc !important;
}
.dark-style .dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dark-style .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: rgba(99,102,241,0.22) !important;
    border-color: rgba(99,102,241,0.35) !important;
    color: #a5b4fc !important;
}
.dark-style .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.dark-style .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover {
    color: #475569 !important;
}

/* ── Toastr ──────────────────────────────────────────────────────
   !important required: toastr.css loads in @push('page-styles')
   which comes AFTER dark-mode.css — later rules win on equal
   specificity, so we must force our values.
   ──────────────────────────────────────────────────────────────── */
.dark-style #toast-container > .toast {
    background-color: #1e293b !important;
    border: 1px solid #334155 !important;
    border-left-width: 4px !important;
    color: #f1f5f9 !important;
    box-shadow: 0 8px 32px rgba(0,0,0,0.55) !important;
    opacity: 1 !important;
}
.dark-style #toast-container > .toast .toast-title   { color: #f1f5f9 !important; font-weight: 700; }
.dark-style #toast-container > .toast .toast-message { color: #cbd5e1 !important; }
.dark-style #toast-container > .toast .toast-progress { opacity: 0.30 !important; }
.dark-style #toast-container > .toast .toast-close-button {
    color: #94a3b8 !important;
    text-shadow: none !important;
    opacity: 0.85;
}
.dark-style #toast-container > .toast .toast-close-button:hover {
    color: #ffffff !important;
    opacity: 1;
}

/* success */
.dark-style #toast-container > .toast-success {
    background-color: #052e16 !important;
    border-color: rgba(16,185,129,0.30) !important;
    border-left-color: #10b981 !important;
}
.dark-style #toast-container > .toast-success .toast-title,
.dark-style #toast-container > .toast-success .toast-message { color: #6ee7b7 !important; }

/* error */
.dark-style #toast-container > .toast-error {
    background-color: #2d0a0a !important;
    border-color: rgba(239,68,68,0.30) !important;
    border-left-color: #ef4444 !important;
}
.dark-style #toast-container > .toast-error .toast-title,
.dark-style #toast-container > .toast-error .toast-message { color: #fca5a5 !important; }

/* warning */
.dark-style #toast-container > .toast-warning {
    background-color: #1c1007 !important;
    border-color: rgba(245,158,11,0.30) !important;
    border-left-color: #f59e0b !important;
}
.dark-style #toast-container > .toast-warning .toast-title,
.dark-style #toast-container > .toast-warning .toast-message { color: #fde68a !important; }

/* info */
.dark-style #toast-container > .toast-info {
    background-color: #0a1628 !important;
    border-color: rgba(59,130,246,0.30) !important;
    border-left-color: #3b82f6 !important;
}
.dark-style #toast-container > .toast-info .toast-title,
.dark-style #toast-container > .toast-info .toast-message { color: #93c5fd !important; }

/* ── Select2 — selection control (widget, not dropdown) ─────── */
.dark-style .select2-container--default .select2-selection--single {
    background-color: #1e293b;
    border-color: #475569;
}
.dark-style .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #e2e8f0;
}
.dark-style .select2-container--default .select2-selection--single .select2-selection__placeholder { color: #64748b; }
.dark-style .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: #64748b transparent transparent;
}
.dark-style .select2-container--default.select2-container--focus .select2-selection--single,
.dark-style .select2-container--default.select2-container--open .select2-selection--single {
    border-color: #818cf8;
    box-shadow: 0 0 0 0.2rem rgba(99,102,241,0.18);
}
.dark-style .select2-container--default .select2-selection--multiple {
    background-color: #1e293b;
    border-color: #475569;
}
.dark-style .select2-search--inline .select2-search__field { color: #e2e8f0; }

/* ── Flatpickr ──────────────────────────────────────────────── */
.dark-style .flatpickr-calendar {
    background: #1e293b;
    border: 1px solid #334155;
    box-shadow: 0 12px 32px rgba(0,0,0,0.40);
    color: #e2e8f0;
}
.dark-style .flatpickr-calendar::before { border-bottom-color: #334155; }
.dark-style .flatpickr-calendar::after  { border-bottom-color: #1e293b; }
.dark-style .flatpickr-months .flatpickr-month { background: #1e293b; color: #f1f5f9; fill: #f1f5f9; }
.dark-style .flatpickr-months .flatpickr-prev-month,
.dark-style .flatpickr-months .flatpickr-next-month { fill: #94a3b8; }
.dark-style .flatpickr-months .flatpickr-prev-month:hover svg,
.dark-style .flatpickr-months .flatpickr-next-month:hover svg { fill: #a5b4fc; }
.dark-style .flatpickr-current-month { color: #f1f5f9; }
.dark-style .flatpickr-current-month .numInputWrapper span.arrowUp::after  { border-bottom-color: #94a3b8; }
.dark-style .flatpickr-current-month .numInputWrapper span.arrowDown::after { border-top-color: #94a3b8; }
.dark-style .flatpickr-current-month .flatpickr-monthDropdown-months {
    background: #1e293b;
    color: #f1f5f9;
}
.dark-style .flatpickr-current-month .flatpickr-monthDropdown-months option { background: #1e293b; }
.dark-style .flatpickr-current-month input.cur-year { color: #f1f5f9; }
.dark-style span.flatpickr-weekday       { background: #1e293b; color: #94a3b8; }
.dark-style .flatpickr-weekdaycontainer  { background: #1e293b; }
.dark-style .flatpickr-innerContainer,
.dark-style .flatpickr-rContainer        { background: #1e293b; }
.dark-style .flatpickr-day               { color: #e2e8f0; border-color: transparent; }
.dark-style .flatpickr-day:hover,
.dark-style .flatpickr-day:focus {
    background: rgba(99,102,241,0.18);
    border-color: transparent;
    color: #a5b4fc;
}
.dark-style .flatpickr-day.selected,
.dark-style .flatpickr-day.selected:hover,
.dark-style .flatpickr-day.selected:focus {
    background: #4f46e5;
    border-color: #4f46e5;
    color: #fff;
}
.dark-style .flatpickr-day.today         { border-color: rgba(99,102,241,0.50); }
.dark-style .flatpickr-day.today:hover   { background: rgba(99,102,241,0.18); color: #a5b4fc; border-color: transparent; }
.dark-style .flatpickr-day.flatpickr-disabled,
.dark-style .flatpickr-day.flatpickr-disabled:hover { color: #475569; background: transparent; }
.dark-style .flatpickr-day.prevMonthDay,
.dark-style .flatpickr-day.nextMonthDay  { color: #475569; }
.dark-style .numInputWrapper:hover       { background: rgba(99,102,241,0.10); }
.dark-style .flatpickr-time              { border-top-color: #334155; background: #1e293b; }
.dark-style .flatpickr-time input        { background: #1e293b; color: #e2e8f0; border-color: #334155; }
.dark-style .flatpickr-time input:hover,
.dark-style .flatpickr-time input:focus  { background: rgba(99,102,241,0.12); }
.dark-style .flatpickr-time .flatpickr-time-separator,
.dark-style .flatpickr-time .flatpickr-am-pm { color: #94a3b8; }

/* ── SweetAlert2 ────────────────────────────────────────────── */
.dark-style .swal2-popup {
    background: #1e293b;
    color: #e2e8f0;
    border: 1px solid #334155;
}
.dark-style .swal2-title            { color: #f1f5f9; }
.dark-style .swal2-html-container   { color: #94a3b8; }
.dark-style .swal2-input,
.dark-style .swal2-select,
.dark-style .swal2-textarea {
    background-color: #0f172a;
    border-color: #475569;
    color: #e2e8f0;
}
