/**
 * DMS dark-theme compatibility (works with Boron theme data-bs-theme toggling).
 */

/* Bulk action bar (collections) */
.dms-bulk-bar {
    position: fixed;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1050;
    display: none;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
    padding: 0.85rem 1.25rem;
    max-width: calc(100vw - 2rem);
    background: var(--bs-primary);
    color: var(--bs-white);
    border-radius: 0.75rem;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
}
.dms-bulk-bar.is-visible { display: flex; }
.dms-bulk-bar .bulk-count { font-weight: 600; white-space: nowrap; margin-right: 0.25rem; }
.dms-bulk-bar .btn { white-space: nowrap; }
body.dms-bulk-active .page-content { padding-bottom: 5rem; }

/* Routes overview map panel */
:root {
    --dms-map-bg: #e8eef4;
    --dms-panel-bg: #fafbfc;
    --dms-panel-header-bg: #fff;
    --dms-panel-border: #e9ecef;
    --dms-panel-item-bg: #fff;
    --dms-panel-item-hover: #f0f4ff;
    --dms-panel-muted: #64748b;
    --dms-tooltip-bg: #fff;
    --dms-tooltip-border: #dee2e6;
    --dms-pin-border: #fff;
}
[data-bs-theme="dark"] {
    --dms-map-bg: #1a1b22;
    --dms-panel-bg: #1e1f26;
    --dms-panel-header-bg: #252630;
    --dms-panel-border: #343a40;
    --dms-panel-item-bg: #252630;
    --dms-panel-item-hover: #2d3140;
    --dms-panel-muted: #adb5bd;
    --dms-tooltip-bg: #252630;
    --dms-tooltip-border: #495057;
    --dms-pin-border: #343a40;
}

.routes-side-panel {
    display: flex;
    flex-direction: column;
    height: 480px;
    background: var(--dms-panel-bg);
}
.routes-side-panel-header {
    padding: 12px 14px;
    border-bottom: 1px solid var(--dms-panel-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--dms-panel-header-bg);
}
.routes-side-panel-body { flex: 1; overflow-y: auto; }
.routes-side-item {
    display: block;
    padding: 12px 14px;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--dms-panel-border);
    background: var(--dms-panel-item-bg);
    transition: background 0.15s;
}
.routes-side-item:hover,
.routes-side-item.active {
    background: var(--dms-panel-item-hover);
    color: inherit;
}
.routes-side-name { font-weight: 600; font-size: 14px; }
.routes-side-meta { font-size: 12px; color: var(--dms-panel-muted); margin-top: 4px; }
.routes-side-stats { font-size: 12px; margin-top: 6px; display: flex; flex-wrap: wrap; gap: 10px; }
.routes-color-swatch {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 3px;
    border: 1px solid rgba(0, 0, 0, 0.15);
}
.routes-map-tooltip { min-width: 220px; font-size: 13px; line-height: 1.45; padding: 10px 12px; }
.leaflet-tooltip.routes-leaflet-tooltip {
    background: var(--dms-tooltip-bg);
    color: var(--bs-body-color);
    border: 1px solid var(--dms-tooltip-border);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    padding: 0;
}
.hub-pin-inner {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #1e293b;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid var(--dms-pin-border);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
    font-size: 18px;
}
#routes-overview-map,
#dashboard-map,
#tracking-map,
#route-map,
#driver-map {
    background: var(--dms-map-bg);
}

/* Leaflet popups & controls */
[data-bs-theme="dark"] .leaflet-popup-content-wrapper,
[data-bs-theme="dark"] .leaflet-popup-tip {
    background: var(--dms-tooltip-bg);
    color: var(--bs-body-color);
}
[data-bs-theme="dark"] .leaflet-bar a {
    background: var(--dms-panel-header-bg);
    color: var(--bs-body-color);
    border-color: var(--dms-panel-border);
}
[data-bs-theme="dark"] .leaflet-bar a:hover {
    background: var(--dms-panel-item-hover);
}

/* DataTables */
[data-bs-theme="dark"] table.dataTable thead th,
[data-bs-theme="dark"] table.dataTable tbody td {
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter input,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_length select {
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_info,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button {
    color: var(--bs-body-color) !important;
}
[data-bs-theme="dark"] .page-item .page-link {
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

/* Search modal */
[data-bs-theme="dark"] #searchModal .card {
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] #searchModal .form-control {
    background: transparent;
    color: var(--bs-body-color);
}

/* Megamenu third column uses bg-light in theme — keep readable in dark */
[data-bs-theme="dark"] .topbar-menu .dropdown-menu .bg-light {
    background-color: rgba(var(--bs-light-rgb), 0.08) !important;
}

/* Pickup / address blocks */
.pickup-address-block {
    background-color: var(--bs-light) !important;
}
[data-bs-theme="dark"] .pickup-address-block {
    background-color: rgba(var(--bs-light-rgb), 0.12) !important;
}

/* Invoice / table headers that use table-light */
[data-bs-theme="dark"] .table-light {
    --bs-table-bg: rgba(var(--bs-light-rgb), 0.08);
    --bs-table-color: var(--bs-body-color);
    --bs-table-border-color: var(--bs-border-color);
}

/* Driver list presence & vehicle icons */
.driver-presence-badge { display: inline-flex; align-items: center; gap: 6px; font-weight: 500; white-space: nowrap; }
.driver-presence-dot {
    width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex-shrink: 0;
}
.driver-presence-dot.online { background: #16a34a; box-shadow: 0 0 0 3px rgba(22,163,74,.2); }
.driver-presence-dot.idle { background: #ca8a04; box-shadow: 0 0 0 3px rgba(202,138,4,.2); }
.driver-presence-dot.offline { background: #94a3b8; }
.driver-vehicle-wrap {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.driver-vehicle-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: var(--bs-light);
    color: var(--bs-body-color);
    cursor: default;
    flex-shrink: 0;
}
.driver-vehicle-icon .ti { font-size: 1.25rem; line-height: 1; }
.driver-vehicle-icon:hover { background: rgba(var(--bs-primary-rgb), 0.12); color: var(--bs-body-color); }
.driver-vehicle-plate {
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.02em;
    color: var(--bs-body-color);
    white-space: nowrap;
}
td .driver-vehicle-plate:only-child,
.driver-vehicle-wrap .driver-vehicle-plate {
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Connector docs markdown */
.doc-connector-guide .connector-markdown {
    font-size: 0.9rem;
    line-height: 1.6;
    max-width: 900px;
}
.doc-connector-guide .connector-markdown code {
    background: rgba(var(--bs-light-rgb), 0.65);
    padding: 0.1em 0.35em;
    border-radius: 3px;
    font-size: 0.85em;
}
[data-bs-theme="dark"] .doc-connector-guide .connector-markdown code {
    background: rgba(var(--bs-light-rgb), 0.12);
}

/* Dragula (route reorder) ghost in dark mode */
[data-bs-theme="dark"] .gu-mirror {
    background: var(--dms-panel-item-bg);
    color: var(--bs-body-color);
    border: 1px solid var(--bs-border-color);
}

/* Select2 / form extras if present */
[data-bs-theme="dark"] .select2-container--default .select2-selection--single,
[data-bs-theme="dark"] .select2-container--default .select2-selection--multiple {
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}
[data-bs-theme="dark"] .select2-dropdown {
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background-color: rgba(var(--bs-primary-rgb), 0.25);
}

/* Auth / error standalone pages */
.auth-theme-toggle {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 1050;
}

/* Install wizard (Bootstrap-only layout) */
[data-bs-theme="dark"] body.install-body {
    background: #1a1b22 !important;
    color: var(--bs-body-color);
}
[data-bs-theme="dark"] .install-card .card {
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .install-card .card-header.bg-white {
    background-color: rgba(var(--bs-light-rgb), 0.08) !important;
}
