/*
 * Protrip's dark theme, hand-written part (Marex, 2026-10-01: black-grey, not blue; and everything turns dark).
 * Loaded after the Able Pro sheets and protrip-dark.generated.css (tools/theme/neutral-dark.py), which already turns
 * Able Pro's own dark rules grey. This file sets what Able Pro never did for dark — most of Bootstrap's colour
 * variables kept their light values, which is why forms, tables, dropdowns, .bg-light boxes and the like stayed light.
 *
 *   page #181818 · card #222 · raised #2a2a2a · border #3d3d3d · muted text #8c8c8c · text #bfbfbf · headings #fafafa
 */
[data-pc-theme="dark"] {
    color-scheme: dark; /* native controls, scrollbars, date pickers */
    --bs-body-color-rgb: 191, 191, 191; /* Able Pro ships the SCSS call `to-rgb(#bfbfbf)` here, which is no colour */
    --bs-emphasis-color: #ffffff;
    --bs-emphasis-color-rgb: 255, 255, 255;
    --bs-secondary-color: rgba(191, 191, 191, 0.72);
    --bs-secondary-color-rgb: 191, 191, 191;
    --bs-tertiary-color: rgba(191, 191, 191, 0.5);
    --bs-tertiary-color-rgb: 191, 191, 191;
    --bs-secondary-bg: #2a2a2a;
    --bs-secondary-bg-rgb: 42, 42, 42;
    --bs-tertiary-bg: #1f1f1f;
    --bs-tertiary-bg-rgb: 31, 31, 31;
    --bs-border-color-translucent: rgba(255, 255, 255, 0.1);
    --bs-light: #262626; /* used as a quiet fill (photo placeholders, bar tracks); no view uses it as text colour */
    --bs-light-rgb: 38, 38, 38;
    --bs-dark-rgb: 12, 12, 12;
    --bs-gray-dark: #2a2a2a;
    --bs-gray-100: #262626;
    --bs-gray-200: #2a2a2a;
    --bs-gray-300: #333333;
    --bs-gray-400: #4a4a4a;
    --bs-gray-500: #6e6e6e;
    --bs-gray-600: #8c8c8c;
    --bs-gray-700: #a6a6a6;
    --bs-gray-800: #d0d0d0;
    --bs-gray-900: #ececec;
    --bs-secondary: #8c8c8c;
    --bs-secondary-rgb: 140, 140, 140;

    /* subtle fills and their text, as Bootstrap's own dark mode has them — greys made neutral */
    --bs-primary-text-emphasis: rgb(110, 168, 254);
    --bs-secondary-text-emphasis: #b3b3b3;
    --bs-success-text-emphasis: rgb(117, 183, 152);
    --bs-info-text-emphasis: rgb(110, 223, 246);
    --bs-warning-text-emphasis: rgb(255, 218, 106);
    --bs-danger-text-emphasis: rgb(234, 134, 143);
    --bs-light-text-emphasis: #f2f2f2;
    --bs-dark-text-emphasis: #dedede;
    --bs-primary-bg-subtle: rgb(3, 22, 51);
    --bs-secondary-bg-subtle: #1c1c1c;
    --bs-success-bg-subtle: rgb(5, 27, 17);
    --bs-info-bg-subtle: rgb(3, 40, 48);
    --bs-warning-bg-subtle: rgb(51, 39, 1);
    --bs-danger-bg-subtle: rgb(44, 11, 14);
    --bs-light-bg-subtle: #2a2a2a;
    --bs-dark-bg-subtle: #141414;
    --bs-primary-border-subtle: rgb(8, 66, 152);
    --bs-secondary-border-subtle: #404040;
    --bs-success-border-subtle: rgb(15, 81, 50);
    --bs-info-border-subtle: rgb(8, 121, 144);
    --bs-warning-border-subtle: rgb(153, 116, 4);
    --bs-danger-border-subtle: rgb(132, 32, 41);
    --bs-light-border-subtle: #474747;
    --bs-dark-border-subtle: #333333;
    --bs-highlight-color: #f2f2f2;
    --bs-highlight-bg: rgb(102, 77, 3);
    --bs-code-color: rgb(230, 133, 181);
    --bs-form-valid-color: rgb(117, 183, 152);
    --bs-form-valid-border-color: rgb(117, 183, 152);
    --bs-form-invalid-color: rgb(234, 134, 143);
    --bs-form-invalid-border-color: rgb(234, 134, 143);
    --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%);
}

/* light boxes that are light by class */
[data-pc-theme="dark"] .bg-white,
[data-pc-theme="dark"] .bg-body { background-color: var(--bs-body-bg) !important; }
[data-pc-theme="dark"] .bg-light,
[data-pc-theme="dark"] .bg-gray-100,
[data-pc-theme="dark"] .bg-gray-200,
[data-pc-theme="dark"] .bg-body-tertiary { background-color: #262626 !important; }
[data-pc-theme="dark"] .bg-body-secondary { background-color: #2a2a2a !important; }
[data-pc-theme="dark"] .text-dark,
[data-pc-theme="dark"] .text-black { color: var(--bs-heading-color) !important; }
[data-pc-theme="dark"] .text-body-secondary { color: var(--bs-secondary-color) !important; }
[data-pc-theme="dark"] .border-light { border-color: #333333 !important; }

/* Bootstrap components whose light values are baked into the component variables */
[data-pc-theme="dark"] .table {
    --bs-table-color: var(--bs-body-color);
    --bs-table-bg: transparent;
    --bs-table-border-color: #333333;
    --bs-table-striped-bg: rgba(255, 255, 255, 0.03);
    --bs-table-striped-color: var(--bs-body-color);
    --bs-table-hover-bg: rgba(255, 255, 255, 0.04);
    --bs-table-hover-color: var(--bs-body-color);
    --bs-table-active-bg: rgba(255, 255, 255, 0.06);
    --bs-table-active-color: var(--bs-body-color);
}
[data-pc-theme="dark"] .table-light {
    --bs-table-color: var(--bs-heading-color);
    --bs-table-bg: #262626;
    --bs-table-border-color: #333333;
    --bs-table-striped-bg: #2a2a2a;
    --bs-table-hover-bg: #2e2e2e;
    --bs-table-active-bg: #2e2e2e;
    color: var(--bs-table-color);
}
[data-pc-theme="dark"] .table > thead,
[data-pc-theme="dark"] .table thead th { --bs-table-bg: transparent; }
[data-pc-theme="dark"] .form-control,
[data-pc-theme="dark"] .form-select,
[data-pc-theme="dark"] .datatable-input,
[data-pc-theme="dark"] .datatable-selector {
    background-color: #1c1c1c;
    border-color: #3d3d3d;
    color: var(--bs-body-color);
}
[data-pc-theme="dark"] .form-control:disabled,
[data-pc-theme="dark"] .form-control[readonly]:not(.flatpickr-input):not([data-range-picker]),
[data-pc-theme="dark"] .form-select:disabled { background-color: #262626; }
[data-pc-theme="dark"] .form-control::placeholder { color: #6e6e6e; }
[data-pc-theme="dark"] .form-check-input:not(:checked) { background-color: #1c1c1c; border-color: #4a4a4a; }
[data-pc-theme="dark"] .input-group-text { background-color: #262626; border-color: #3d3d3d; color: var(--bs-body-color); }
[data-pc-theme="dark"] .modal { --bs-modal-bg: #222222; --bs-modal-border-color: #333333; --bs-modal-header-border-color: #333333; --bs-modal-footer-border-color: #333333; }
[data-pc-theme="dark"] .popover { --bs-popover-bg: #2a2a2a; --bs-popover-border-color: #3d3d3d; --bs-popover-header-bg: #262626; --bs-popover-body-color: var(--bs-body-color); }
[data-pc-theme="dark"] .toast { --bs-toast-bg: rgba(34, 34, 34, 0.92); --bs-toast-header-bg: rgba(42, 42, 42, 0.92); --bs-toast-border-color: #333333; --bs-toast-color: var(--bs-body-color); --bs-toast-header-color: var(--bs-heading-color); }
[data-pc-theme="dark"] .accordion { --bs-accordion-bg: transparent; --bs-accordion-border-color: #333333; --bs-accordion-btn-bg: transparent; --bs-accordion-active-bg: #262626; --bs-accordion-color: var(--bs-body-color); --bs-accordion-btn-color: var(--bs-heading-color); --bs-accordion-active-color: var(--bs-heading-color); }
[data-pc-theme="dark"] .nav-tabs { --bs-nav-tabs-border-color: #333333; --bs-nav-tabs-link-hover-border-color: #333333; --bs-nav-tabs-link-active-bg: transparent; --bs-nav-tabs-link-active-border-color: #333333; }
[data-pc-theme="dark"] .btn-close { filter: var(--bs-btn-close-filter); }
[data-pc-theme="dark"] .btn-light,
[data-pc-theme="dark"] .btn-outline-light { --bs-btn-bg: #2a2a2a; --bs-btn-border-color: #3d3d3d; --bs-btn-color: var(--bs-body-color); --bs-btn-hover-bg: #333333; --bs-btn-hover-border-color: #474747; --bs-btn-hover-color: var(--bs-heading-color); --bs-btn-active-bg: #333333; --bs-btn-active-border-color: #474747; }
[data-pc-theme="dark"] .btn-outline-secondary { --bs-btn-color: #b3b3b3; --bs-btn-border-color: #4a4a4a; --bs-btn-hover-bg: #333333; --bs-btn-hover-border-color: #4a4a4a; --bs-btn-hover-color: #ffffff; --bs-btn-active-bg: #3d3d3d; --bs-btn-active-border-color: #4a4a4a; }
[data-pc-theme="dark"] .btn-outline-dark { --bs-btn-color: #d0d0d0; --bs-btn-border-color: #5a5a5a; --bs-btn-hover-bg: #d0d0d0; --bs-btn-hover-color: #121212; }
[data-pc-theme="dark"] .btn-secondary { --bs-btn-bg: #3d3d3d; --bs-btn-border-color: #3d3d3d; --bs-btn-hover-bg: #474747; --bs-btn-hover-border-color: #474747; --bs-btn-color: #f2f2f2; }
[data-pc-theme="dark"] .badge.bg-light,
[data-pc-theme="dark"] .badge.text-bg-light { background-color: #333333 !important; color: var(--bs-body-color) !important; }
[data-pc-theme="dark"] .text-bg-light { background-color: #262626 !important; color: var(--bs-body-color) !important; }
[data-pc-theme="dark"] .list-group-item { --bs-list-group-color: var(--bs-body-color); }
[data-pc-theme="dark"] hr { color: #3d3d3d; }
[data-pc-theme="dark"] .shadow,
[data-pc-theme="dark"] .shadow-sm { --bs-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .5); --bs-box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .4); }

/* round initials where there's no photo (chat, call dock): Able Pro gives them a fixed dark grey */
[data-pc-theme="dark"] .avatar-initials { color: var(--bs-body-color); }

/* maps (Leaflet: hotel pages): dark tiles by inverting the light ones, hue turned back so water stays blue */
[data-pc-theme="dark"] .leaflet-container { background: #1c1c1c; }
[data-pc-theme="dark"] .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) brightness(.95) contrast(.9); }
[data-pc-theme="dark"] .leaflet-bar a,
[data-pc-theme="dark"] .leaflet-bar a:hover { background: #2a2a2a; color: var(--bs-body-color); border-bottom-color: #3d3d3d; }
[data-pc-theme="dark"] .leaflet-control-attribution { background: rgba(24, 24, 24, .8) !important; color: #8c8c8c; }
[data-pc-theme="dark"] .leaflet-control-attribution a { color: #b3b3b3; }
[data-pc-theme="dark"] .leaflet-popup-content-wrapper,
[data-pc-theme="dark"] .leaflet-popup-tip { background: #2a2a2a; color: var(--bs-body-color); }

/* the calendar (FullCalendar): today's cell and the grid */
[data-pc-theme="dark"] .fc {
    --fc-today-bg-color: rgba(var(--bs-primary-rgb), .14);
    --fc-border-color: #333333;
    --fc-page-bg-color: transparent;
    --fc-neutral-bg-color: #262626;
    --fc-list-event-hover-bg-color: #2a2a2a;
    --fc-highlight-color: rgba(var(--bs-primary-rgb), .2);
}
[data-pc-theme="dark"] .fc .fc-daygrid-day.fc-day-today { background-image: none; background-color: rgba(var(--bs-primary-rgb), .14); } /* Able Pro paints a pale photo there */

/* the date picker (vanillajs-datepicker, every date field — protrip-dates.js): its sheet is white-only */
[data-pc-theme="dark"] .datepicker-picker { background-color: #262626; color: var(--bs-body-color); }
[data-pc-theme="dark"] .datepicker-dropdown .datepicker-picker { box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .55); border: 1px solid #333333; }
[data-pc-theme="dark"] .datepicker-title,
[data-pc-theme="dark"] .datepicker-footer { background-color: #222222; box-shadow: none; }
[data-pc-theme="dark"] .datepicker-controls .btn { background-color: #262626; border-color: transparent; color: var(--bs-heading-color); }
[data-pc-theme="dark"] .datepicker-controls .btn:hover,
[data-pc-theme="dark"] .datepicker-controls .btn:focus { background-color: #333333; border-color: #333333; color: #ffffff; }
[data-pc-theme="dark"] .datepicker-controls .btn:disabled { background-color: #262626; border-color: transparent; color: #6e6e6e; }
[data-pc-theme="dark"] .datepicker .week,
[data-pc-theme="dark"] .datepicker .dow { color: #8c8c8c; }
[data-pc-theme="dark"] .datepicker-cell:not(.disabled):hover { background-color: #333333; }
[data-pc-theme="dark"] .datepicker-cell.focused:not(.selected) { background-color: #3a3a3a; }
[data-pc-theme="dark"] .datepicker-cell.disabled { color: #555555; }
[data-pc-theme="dark"] .datepicker-cell.next:not(.disabled),
[data-pc-theme="dark"] .datepicker-cell.prev:not(.disabled) { color: #6e6e6e; }
[data-pc-theme="dark"] .datepicker-cell.highlighted:not(.selected):not(.range):not(.today) { background-color: #2a2a2a; }
[data-pc-theme="dark"] .datepicker-cell.range { background-color: rgba(var(--bs-primary-rgb), .22); }
[data-pc-theme="dark"] .datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover { background-color: rgba(var(--bs-primary-rgb), .32); }
[data-pc-theme="dark"] .datepicker-cell.range.focused { background-color: rgba(var(--bs-primary-rgb), .38); }
[data-pc-theme="dark"] .datepicker-cell.range.disabled { color: #555555; }

/* the top bar and its dropdowns (static top nav, .tn-*) sit on the page colour */
[data-pc-theme="dark"] .pc-header { --pc-header-background: rgba(24, 24, 24, 0.85); }

/* Protrip's own logo turns white on the dark theme (Marex, 2026-10-01); an agency's own logo is never touched —
   only the platform's carries .pt-platform-logo (layouts: app header, sign-in screens, landing) */
[data-pc-theme="dark"] img.pt-platform-logo { filter: brightness(0) invert(1); } /* black first, then inverted: pure white, transparency kept (brightness() alone left blue as cyan) */
