/*=============================================
SISTEMA SYSTRANSPORT - MODO OSCURO (DARK THEME)
=============================================*/

/* -------------------------------------------
   WIDGET BOTÓN MODO OSCURO (EN CABEZOTE)
   ------------------------------------------- */
.widget-theme-toggle {
    display: inline-flex;
    align-items: center;
    margin-right: 18px;
}

.btn-theme-switch {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f1f5f9;
    color: #475569;
    border: 1px solid #cbd5e1;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.25s ease;
    outline: none;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.btn-theme-switch:hover {
    background: #e2e8f0;
    color: #0f172a;
    border-color: #94a3b8;
    transform: translateY(-1px);
}

.btn-theme-switch .icon-sun {
    display: none;
    color: #f59e0b;
    font-size: 15px;
}

.btn-theme-switch .icon-moon {
    display: inline-block;
    color: #6366f1;
    font-size: 14px;
}

/* Modo oscuro activado en el botón */
body.dark-mode .btn-theme-switch,
html.dark-mode .btn-theme-switch {
    background: #28283c;
    color: #e2e8f0;
    border-color: #3f3f5a;
    box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

body.dark-mode .btn-theme-switch:hover,
html.dark-mode .btn-theme-switch:hover {
    background: #32324d;
    border-color: #00c3aa;
    color: #ffffff;
}

body.dark-mode .btn-theme-switch .icon-sun,
html.dark-mode .btn-theme-switch .icon-sun {
    display: inline-block;
}

body.dark-mode .btn-theme-switch .icon-moon,
html.dark-mode .btn-theme-switch .icon-moon {
    display: none;
}


/* -------------------------------------------
   ESTILOS GENERALES DEL MODO OSCURO (COLOR NOCHE)
   ------------------------------------------- */
body.dark-mode,
html.dark-mode body {
    background-color: #13141f !important;
    color: #e2e8f0 !important;
}

body.dark-mode .page-content {
    background-color: #13141f !important;
    color: #e2e8f0 !important;
}

/* Cabecera Principal (Site Header) */
body.dark-mode .site-header,
html.dark-mode .site-header {
    background-color: #1b1b28 !important;
    background: #1b1b28 !important;
    border-bottom: 1px solid #28283c !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.4) !important;
}

body.dark-mode .site-header .hamburger span,
body.dark-mode .site-header .hamburger span:before,
body.dark-mode .site-header .hamburger span:after {
    background-color: #94a3b8 !important;
}

body.dark-mode .site-header .hamburger:hover span,
body.dark-mode .site-header .hamburger:hover span:before,
body.dark-mode .site-header .hamburger:hover span:after {
    background-color: #00c3aa !important;
}

/* Botón / Perfil de Usuario en el Header (Pill) */
body.dark-mode .site-header .user-menu.dropdown .dropdown-toggle,
body.dark-mode .site-header .user-menu .dropdown-toggle,
html.dark-mode .site-header .user-menu.dropdown .dropdown-toggle,
html.dark-mode .site-header .user-menu .dropdown-toggle {
    background-color: #242436 !important;
    background: #242436 !important;
    border: 1px solid #33334d !important;
    border-radius: 30px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.3) !important;
    color: #f8fafc !important;
}

body.dark-mode .site-header .user-menu.dropdown .dropdown-toggle:hover,
body.dark-mode .site-header .user-menu.dropdown .dropdown-toggle:focus,
body.dark-mode .site-header .user-menu.dropdown .dropdown-toggle:active,
body.dark-mode .site-header .user-menu.dropdown.open .dropdown-toggle,
body.dark-mode .site-header .user-menu.dropdown.show .dropdown-toggle,
html.dark-mode .site-header .user-menu.dropdown .dropdown-toggle:hover {
    background-color: #2b2b40 !important;
    background: #2b2b40 !important;
    border-color: #00c3aa !important;
    box-shadow: 0 3px 10px rgba(0, 195, 170, 0.25) !important;
}

body.dark-mode .site-header .user-menu.dropdown .dropdown-toggle strong,
body.dark-mode .site-header .user-menu .dropdown-toggle strong {
    color: #ffffff !important;
}

body.dark-mode .site-header .user-menu.dropdown .dropdown-toggle small,
body.dark-mode .site-header .user-menu .dropdown-toggle small {
    color: #00c3aa !important;
}

body.dark-mode .site-header .user-menu.dropdown .dropdown-toggle:after,
body.dark-mode .site-header .user-menu .dropdown-toggle:after {
    color: #94a3b8 !important;
}

/* Menú Desplegable de Usuario (Donde está Cerrar Sesión) */
body.dark-mode .site-header .user-menu.dropdown .dropdown-menu,
body.dark-mode .site-header .user-menu .dropdown-menu,
body.dark-mode .dropdown-menu,
html.dark-mode .dropdown-menu {
    background-color: #1e1e2d !important;
    background: #1e1e2d !important;
    border: 1px solid #2e2e44 !important;
    box-shadow: 0 10px 30px rgba(0,0,0,0.6) !important;
    border-radius: 8px !important;
}

body.dark-mode .site-header .user-menu.dropdown .dropdown-menu .dropdown-item,
body.dark-mode .dropdown-item,
html.dark-mode .dropdown-item {
    background-color: transparent !important;
    background: transparent !important;
    color: #cbd5e1 !important;
    transition: all 0.2s ease-in-out !important;
}

body.dark-mode .site-header .user-menu.dropdown .dropdown-menu .dropdown-item:hover,
body.dark-mode .site-header .user-menu.dropdown .dropdown-menu .dropdown-item:focus,
body.dark-mode .dropdown-item:hover,
body.dark-mode .dropdown-item:focus {
    background-color: #28283c !important;
    background: #28283c !important;
    color: #00c3aa !important;
}

body.dark-mode .site-header .user-menu.dropdown .dropdown-menu .dropdown-item.text-danger,
body.dark-mode .dropdown-item.text-danger {
    color: #f87171 !important;
}

body.dark-mode .site-header .user-menu.dropdown .dropdown-menu .dropdown-item.text-danger i,
body.dark-mode .dropdown-item.text-danger i {
    color: #ef4444 !important;
}

body.dark-mode .site-header .user-menu.dropdown .dropdown-menu .dropdown-item.text-danger:hover,
body.dark-mode .site-header .user-menu.dropdown .dropdown-menu .dropdown-item.text-danger:focus,
body.dark-mode .dropdown-item.text-danger:hover,
body.dark-mode .dropdown-item.text-danger:focus {
    background-color: rgba(239, 68, 68, 0.15) !important;
    background: rgba(239, 68, 68, 0.15) !important;
    color: #ffffff !important;
}

body.dark-mode .site-header .user-menu.dropdown .dropdown-menu .dropdown-item.text-danger:hover i,
body.dark-mode .dropdown-item.text-danger:hover i {
    color: #ffffff !important;
}

body.dark-mode .site-header .user-menu.dropdown .dropdown-divider,
body.dark-mode .dropdown-divider {
    border-top: 1px solid #2e2e44 !important;
    background-color: transparent !important;
    margin: 6px 0 !important;
}

/* Menú lateral (Sidebar) */
body.dark-mode .side-menu {
    background-color: #171723 !important;
    border-right: 1px solid #252538 !important;
}

/* Encabezados y títulos de sección */
body.dark-mode .section-header h2 {
    color: #ffffff !important;
}

body.dark-mode .section-header .subtitle {
    color: #94a3b8 !important;
}

body.dark-mode .breadcrumb-simple {
    background: transparent !important;
}

body.dark-mode .breadcrumb-simple li a {
    color: #00c3aa !important;
}

body.dark-mode .breadcrumb-simple li.active {
    color: #cbd5e1 !important;
}

/* Tarjetas (Cards y Box-Typical) */
body.dark-mode .card,
body.dark-mode .box-typical {
    background-color: #1e1e2d !important;
    border: 1px solid #2b2b40 !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.25) !important;
    color: #e2e8f0 !important;
}

body.dark-mode .card-header {
    background-color: #242436 !important;
    border-bottom: 1px solid #2b2b40 !important;
    color: #ffffff !important;
}

body.dark-mode .card-header strong,
body.dark-mode .card-header h1,
body.dark-mode .card-header h2,
body.dark-mode .card-header h3,
body.dark-mode .card-header h4,
body.dark-mode .card-header h5,
body.dark-mode .card-header h6 {
    color: #ffffff !important;
}

body.dark-mode .card-block {
    background-color: transparent !important;
    color: #e2e8f0 !important;
}

/* Form Controls, Inputs, Selects, Textareas */
body.dark-mode .form-control,
body.dark-mode input[type="text"],
body.dark-mode input[type="password"],
body.dark-mode input[type="email"],
body.dark-mode input[type="number"],
body.dark-mode input[type="date"],
body.dark-mode input[type="time"],
body.dark-mode select.form-control,
body.dark-mode textarea.form-control {
    background-color: #151522 !important;
    border: 1px solid #2d2d44 !important;
    color: #f8fafc !important;
}

body.dark-mode input[type="date"]::-webkit-calendar-picker-indicator,
body.dark-mode input[type="time"]::-webkit-calendar-picker-indicator {
    filter: invert(0.85);
    cursor: pointer;
}

body.dark-mode .form-control:focus,
body.dark-mode select.form-control:focus,
body.dark-mode textarea.form-control:focus {
    border-color: #00c3aa !important;
    background-color: #181827 !important;
    color: #ffffff !important;
    box-shadow: 0 0 0 2px rgba(0, 195, 170, 0.2) !important;
}

body.dark-mode .form-control[readonly],
body.dark-mode .form-control[disabled] {
    background-color: #1c1c2a !important;
    color: #94a3b8 !important;
    border-color: #2a2a3e !important;
}

body.dark-mode .input-group-addon {
    background-color: #242436 !important;
    border: 1px solid #2d2d44 !important;
    color: #94a3b8 !important;
}

body.dark-mode label {
    color: #e2e8f0 !important;
}

body.dark-mode .text-muted {
    color: #94a3b8 !important;
}

body.dark-mode small {
    color: #94a3b8;
}

/* Tablas y DataTables en Modo Oscuro */
body.dark-mode table,
body.dark-mode .table,
body.dark-mode table.dataTable,
body.dark-mode .modal table,
body.dark-mode .modal .table {
    background-color: #1e1e2d !important;
    background: #1e1e2d !important;
    color: #e2e8f0 !important;
    border-color: #2b2b40 !important;
}

/* Encabezados de tablas */
body.dark-mode table thead th,
body.dark-mode .table thead th,
body.dark-mode table.dataTable thead th,
body.dark-mode table th,
body.dark-mode .table th {
    background-color: #242436 !important;
    background: #242436 !important;
    color: #ffffff !important;
    border-color: #2d2d44 !important;
    border-bottom: 2px solid #2d2d44 !important;
}

/* Filas y encabezados con clase bg-gray */
body.dark-mode .bg-gray,
body.dark-mode tr.bg-gray,
body.dark-mode th.bg-gray,
body.dark-mode td.bg-gray,
body.dark-mode table thead tr.bg-gray,
body.dark-mode table tbody tr.bg-gray {
    background-color: #242436 !important;
    background: #242436 !important;
    color: #ffffff !important;
    border-color: #2d2d44 !important;
}

/* Celdas generales */
body.dark-mode table tbody td,
body.dark-mode .table tbody td,
body.dark-mode table.dataTable tbody td,
body.dark-mode table td,
body.dark-mode .table td {
    border-color: #25253a !important;
    color: #cbd5e1 !important;
    background-color: transparent !important;
}

/* Filas base */
body.dark-mode table tbody tr,
body.dark-mode .table tbody tr,
body.dark-mode table.dataTable tbody tr {
    background-color: #1e1e2d !important;
    background: #1e1e2d !important;
    color: #cbd5e1 !important;
}

/* Filas alternadas (Striped) - Tanto impares como pares NUNCA blancas */
body.dark-mode table.table-striped tbody tr:nth-of-type(odd),
body.dark-mode .table-striped tbody tr:nth-of-type(odd),
body.dark-mode table.dataTable.stripe tbody tr.odd,
body.dark-mode table.dataTable.display tbody tr.odd {
    background-color: #1e1e2d !important;
    background: #1e1e2d !important;
}

body.dark-mode table.table-striped tbody tr:nth-of-type(even),
body.dark-mode .table-striped tbody tr:nth-of-type(even),
body.dark-mode table.dataTable.stripe tbody tr.even,
body.dark-mode table.dataTable.display tbody tr.even {
    background-color: #181827 !important;
    background: #181827 !important;
}

/* Hover en filas */
body.dark-mode table.table-hover tbody tr:hover,
body.dark-mode .table-hover tbody tr:hover,
body.dark-mode table.dataTable.hover tbody tr:hover,
body.dark-mode table.dataTable.display tbody tr:hover,
body.dark-mode table tbody tr:hover,
body.dark-mode .table tbody tr:hover {
    background-color: #28283f !important;
    background: #28283f !important;
    color: #ffffff !important;
}

body.dark-mode table.table-hover tbody tr:hover > td,
body.dark-mode .table-hover tbody tr:hover > td,
body.dark-mode table.dataTable.hover tbody tr:hover > td,
body.dark-mode table.dataTable.display tbody tr:hover > td {
    color: #ffffff !important;
}

/* Columnas ordenadas de DataTables (sorting_1, 2, 3) */
body.dark-mode table.dataTable.order-column tbody tr > .sorting_1,
body.dark-mode table.dataTable.order-column tbody tr > .sorting_2,
body.dark-mode table.dataTable.order-column tbody tr > .sorting_3,
body.dark-mode table.dataTable.display tbody tr > .sorting_1,
body.dark-mode table.dataTable.display tbody tr > .sorting_2,
body.dark-mode table.dataTable.display tbody tr > .sorting_3 {
    background-color: rgba(255, 255, 255, 0.02) !important;
}

body.dark-mode table.dataTable.order-column.stripe tbody tr.odd > .sorting_1,
body.dark-mode table.dataTable.display tbody tr.odd > .sorting_1 {
    background-color: rgba(255, 255, 255, 0.015) !important;
}

body.dark-mode table.dataTable.order-column.stripe tbody tr.even > .sorting_1,
body.dark-mode table.dataTable.display tbody tr.even > .sorting_1 {
    background-color: rgba(255, 255, 255, 0.035) !important;
}

/* Bordes en tablas */
body.dark-mode .table-bordered,
body.dark-mode .table-bordered th,
body.dark-mode .table-bordered td,
body.dark-mode table.dataTable.cell-border tbody th,
body.dark-mode table.dataTable.cell-border tbody td {
    border-color: #2b2b40 !important;
}

/* Clases de estado contextual en tablas */
body.dark-mode .table-active,
body.dark-mode .table-active > td,
body.dark-mode .table-active > th {
    background-color: #252538 !important;
    color: #ffffff !important;
}

body.dark-mode .table-success,
body.dark-mode .table-success > td,
body.dark-mode .table-success > th {
    background-color: #143523 !important;
    color: #bbf7d0 !important;
}

body.dark-mode .table-warning,
body.dark-mode .table-warning > td,
body.dark-mode .table-warning > th {
    background-color: #3f2f18 !important;
    color: #fde68a !important;
}

body.dark-mode .table-danger,
body.dark-mode .table-danger > td,
body.dark-mode .table-danger > th {
    background-color: #3b181b !important;
    color: #fecaca !important;
}

body.dark-mode .table-info,
body.dark-mode .table-info > td,
body.dark-mode .table-info > th {
    background-color: #162a3f !important;
    color: #bae6fd !important;
}

/* Elementos de código y texto dentro de tablas */
body.dark-mode code {
    background-color: #151522 !important;
    color: #00c3aa !important;
    border: 1px solid #2d2d44 !important;
    padding: 2px 6px !important;
    border-radius: 4px !important;
}

body.dark-mode kbd {
    background-color: #242436 !important;
    color: #ffffff !important;
    border: 1px solid #3b3b55 !important;
}

/* Paginación y controles de DataTables */
body.dark-mode div.dataTables_wrapper div.dataTables_length,
body.dark-mode div.dataTables_wrapper div.dataTables_filter,
body.dark-mode div.dataTables_wrapper div.dataTables_info,
body.dark-mode div.dataTables_wrapper div.dataTables_paginate {
    color: #94a3b8 !important;
}

body.dark-mode div.dataTables_wrapper div.dataTables_paginate .paginate_button {
    color: #cbd5e1 !important;
}

body.dark-mode div.dataTables_wrapper div.dataTables_paginate .paginate_button.disabled {
    color: #475569 !important;
}

body.dark-mode div.dataTables_wrapper div.dataTables_paginate .paginate_button.current,
body.dark-mode div.dataTables_wrapper div.dataTables_paginate .paginate_button.current:hover {
    background: #00c3aa !important;
    border-color: #00c3aa !important;
    color: #ffffff !important;
}

body.dark-mode .dt-bootstrap .pagination .paginate_button a,
body.dark-mode .pagination .page-link {
    background-color: #1e1e2d !important;
    border-color: #2b2b40 !important;
    color: #cbd5e1 !important;
}

body.dark-mode .dt-bootstrap .pagination .paginate_button.active a,
body.dark-mode .pagination .page-item.active .page-link {
    background-color: #00c3aa !important;
    border-color: #00c3aa !important;
    color: #ffffff !important;
}

body.dark-mode .dt-bootstrap .pagination .paginate_button.disabled a,
body.dark-mode .pagination .page-item.disabled .page-link {
    background-color: #171723 !important;
    border-color: #252538 !important;
    color: #475569 !important;
}

/* Modales */
body.dark-mode .modal-content {
    background-color: #1e1e2d !important;
    background: #1e1e2d !important;
    border: 1px solid #2e2e44 !important;
    color: #e2e8f0 !important;
    box-shadow: 0 10px 40px rgba(0,0,0,0.6) !important;
}

body.dark-mode .modal-header {
    background-color: #242436 !important;
    background: #242436 !important;
    border-bottom: 1px solid #2e2e44 !important;
    color: #ffffff !important;
}

body.dark-mode .modal-title {
    color: #ffffff !important;
}

body.dark-mode .modal-body {
    background-color: #1e1e2d !important;
    background: #1e1e2d !important;
    color: #e2e8f0 !important;
}

body.dark-mode .modal-footer {
    background-color: #171723 !important;
    background: #171723 !important;
    border-top: 1px solid #2e2e44 !important;
}

body.dark-mode .modal .close {
    color: #ffffff !important;
    text-shadow: none !important;
    opacity: 0.8 !important;
}

body.dark-mode .modal .close:hover {
    opacity: 1 !important;
}

/* Pestañas (Tabs) y Contenedor de Pestañas (Tabs Section) */
body.dark-mode .tabs-section {
    background-color: transparent !important;
}

body.dark-mode .tabs-section > .tab-content:not(.no-styled),
body.dark-mode .tabs-section .tab-content,
body.dark-mode .tab-content {
    background-color: #1e1e2d !important;
    background: #1e1e2d !important;
    border: 1px solid #2b2b40 !important;
    border-radius: 8px !important;
    color: #e2e8f0 !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.25) !important;
}

body.dark-mode .tabs-section-nav {
    border-color: #2b2b40 !important;
    background-color: transparent !important;
}

body.dark-mode .tabs-section-nav.tabs-section-nav-inline .nav {
    background-color: #1e1e2d !important;
    background: #1e1e2d !important;
    border: 1px solid #2b2b40 !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2) !important;
}

body.dark-mode .tabs-section-nav.tabs-section-nav-inline .nav-link {
    background-color: #171725 !important;
    background: #171725 !important;
    border: 1px solid #2d2d44 !important;
    color: #cbd5e1 !important;
    border-radius: 6px !important;
}

body.dark-mode .tabs-section-nav.tabs-section-nav-inline .nav-link:hover {
    color: #00c3aa !important;
    border-color: #00c3aa !important;
    background-color: #242436 !important;
    background: #242436 !important;
}

body.dark-mode .tabs-section-nav.tabs-section-nav-inline .nav-link.active {
    background-color: #00c3aa !important;
    background: #00c3aa !important;
    color: #ffffff !important;
    border-color: #00c3aa !important;
    box-shadow: 0 2px 8px rgba(0, 195, 170, 0.35) !important;
}

body.dark-mode .tabs-section-nav.tabs-section-nav-inline .nav-link.active i,
body.dark-mode .tabs-section-nav.tabs-section-nav-inline .nav-link.active strong {
    color: #ffffff !important;
}

/* Callouts y Avisos */
body.dark-mode .callout {
    background-color: #1a1a29 !important;
    background: #1a1a29 !important;
    border: 1px solid #2e2e44 !important;
    color: #e2e8f0 !important;
    border-radius: 4px !important;
}

body.dark-mode .callout-info {
    background-color: #132438 !important;
    background: #132438 !important;
    border-left: 5px solid #00a8ff !important;
    color: #bae6fd !important;
}

body.dark-mode .callout-info p,
body.dark-mode .callout-info strong {
    color: #e0f2fe !important;
}

body.dark-mode .callout-success {
    background-color: #12281e !important;
    background: #12281e !important;
    border-left: 5px solid #00c3aa !important;
    color: #bbf7d0 !important;
}

body.dark-mode .callout-success p,
body.dark-mode .callout-success strong {
    color: #dcfce7 !important;
}

body.dark-mode .callout-warning {
    background-color: #33230e !important;
    background: #33230e !important;
    border-left: 5px solid #f39c12 !important;
    color: #fde68a !important;
}

body.dark-mode .callout-danger {
    background-color: #331317 !important;
    background: #331317 !important;
    border-left: 5px solid #dd4b39 !important;
    color: #fecaca !important;
}

/* Info Boxes (Saldos y Resumen) */
body.dark-mode .info-box {
    background-color: #1e1e2d !important;
    background: #1e1e2d !important;
    border: 1px solid #2b2b40 !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.25) !important;
    color: #e2e8f0 !important;
}

body.dark-mode .info-box-text {
    color: #94a3b8 !important;
}

body.dark-mode .info-box-number {
    color: #ffffff !important;
}

body.dark-mode .info-box.bg-aqua {
    background-color: #0099cc !important;
    background: #0099cc !important;
    color: #ffffff !important;
    border-color: #0088b6 !important;
}

body.dark-mode .info-box.bg-red {
    background-color: #c9302c !important;
    background: #c9302c !important;
    color: #ffffff !important;
    border-color: #ac2925 !important;
}

body.dark-mode .info-box.bg-green {
    background-color: #008d4c !important;
    background: #008d4c !important;
    color: #ffffff !important;
    border-color: #00733e !important;
}

body.dark-mode .info-box.bg-yellow {
    background-color: #d58512 !important;
    background: #d58512 !important;
    color: #ffffff !important;
    border-color: #b06d0f !important;
}

body.dark-mode .info-box.bg-aqua .info-box-text,
body.dark-mode .info-box.bg-red .info-box-text,
body.dark-mode .info-box.bg-green .info-box-text,
body.dark-mode .info-box.bg-yellow .info-box-text {
    color: rgba(255, 255, 255, 0.88) !important;
}

body.dark-mode .info-box.bg-aqua .info-box-number,
body.dark-mode .info-box.bg-red .info-box-number,
body.dark-mode .info-box.bg-green .info-box-number,
body.dark-mode .info-box.bg-yellow .info-box-number {
    color: #ffffff !important;
}

/* Pie de Página (Footer Fijo) */
body.dark-mode .site-footer {
    background: #1b1b28 !important;
    border-top: 1px solid #28283c !important;
    color: #94a3b8 !important;
    box-shadow: 0 -2px 10px rgba(0,0,0,0.3) !important;
}

body.dark-mode .site-footer a {
    color: #00c3aa !important;
}

/* Componentes de Buses y Asientos */
body.dark-mode .bus-container,
body.dark-mode .vehiculo-canvas {
    background: #171725 !important;
    border-color: #2e3448 !important;
    box-shadow: inset 0 2px 8px rgba(0,0,0,0.4) !important;
}

body.dark-mode .frontal-bus,
body.dark-mode .vehiculo-cabina-header {
    background: #24283c !important;
    border-color: #00c3aa !important;
    color: #00c3aa !important;
}

body.dark-mode .pasillo {
    background: repeating-linear-gradient(45deg, #202030, #202030 6px, #26263a 6px, #26263a 12px) !important;
}

body.dark-mode .asiento-btn.asiento-libre {
    background-color: #10b981 !important;
    color: #ffffff !important;
}

body.dark-mode .asiento-btn.asiento-vendido {
    background-color: #ef4444 !important;
    color: #ffffff !important;
}

body.dark-mode .asiento-btn.asiento-reservado {
    background-color: #f59e0b !important;
    color: #ffffff !important;
}

body.dark-mode .asiento-btn.asiento-seleccionado {
    background-color: #8b5cf6 !important;
    color: #ffffff !important;
}

/* Alertas */
body.dark-mode .alert-info {
    background-color: #162a3f !important;
    border-color: #0284c7 !important;
    color: #bae6fd !important;
}

body.dark-mode .alert-warning {
    background-color: #3f2f18 !important;
    border-color: #d97706 !important;
    color: #fde68a !important;
}

body.dark-mode .alert-success {
    background-color: #143523 !important;
    border-color: #16a34a !important;
    color: #bbf7d0 !important;
}

body.dark-mode .alert-danger {
    background-color: #3b181b !important;
    border-color: #dc2626 !important;
    color: #fecaca !important;
}

/* Select2 en Modo Oscuro - Alineado idéntico a form-control */
body.dark-mode .select2-container,
body.dark-mode .select2-container .selection {
    color: #f8fafc !important;
}

body.dark-mode .select2-container .select2-selection--single,
body.dark-mode .select2-container--default .select2-selection--single,
body.dark-mode .select2-container--arrow .select2-selection--single,
body.dark-mode .select2-container--white .select2-selection--single {
    background-color: #151522 !important;
    border: 1px solid #2d2d44 !important;
    border-radius: 4px !important;
    height: 38px !important;
    min-height: 38px !important;
    color: #f8fafc !important;
    box-shadow: none !important;
    position: relative !important;
}

/* Texto seleccionado dentro del contenedor */
body.dark-mode .select2-container .select2-selection--single .select2-selection__rendered,
body.dark-mode .select2-container--default .select2-selection--single .select2-selection__rendered,
body.dark-mode .select2-container--arrow .select2-selection--single .select2-selection__rendered,
body.dark-mode .select2-container--white .select2-selection--single .select2-selection__rendered {
    background-color: #151522 !important;
    border: none !important;
    color: #f8fafc !important;
    line-height: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
    padding-left: 12px !important;
    padding-right: 32px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    font-size: 1rem !important;
}

/* Placeholder */
body.dark-mode .select2-container--default .select2-selection--single .select2-selection__placeholder,
body.dark-mode .select2-selection__placeholder {
    color: #94a3b8 !important;
}

/* Flecha select2 (StartUI y Default) */
body.dark-mode .select2-container .select2-selection--single .select2-selection__arrow,
body.dark-mode .select2-container--default .select2-selection--single .select2-selection__arrow,
body.dark-mode .select2-container--arrow .select2-selection--single .select2-selection__arrow,
body.dark-mode .select2-container--white .select2-selection--single .select2-selection__arrow {
    background: transparent !important;
    border: none !important;
    height: 36px !important;
    width: 28px !important;
    top: 1px !important;
    right: 2px !important;
}

body.dark-mode .select2-container--default .select2-selection--single .select2-selection__arrow:before,
body.dark-mode .select2-container--arrow .select2-selection--single .select2-selection__arrow:before,
body.dark-mode .select2-container--white .select2-selection--single .select2-selection__arrow:before {
    border-color: transparent transparent #94a3b8 transparent !important;
}

body.dark-mode .select2-container--default .select2-selection--single .select2-selection__arrow:after,
body.dark-mode .select2-container--arrow .select2-selection--single .select2-selection__arrow:after,
body.dark-mode .select2-container--white .select2-selection--single .select2-selection__arrow:after {
    border-color: #94a3b8 transparent transparent transparent !important;
}

body.dark-mode .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: #94a3b8 transparent transparent transparent !important;
}

body.dark-mode .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
    border-color: transparent transparent #00c3aa transparent !important;
}

/* Estados Focus y Abierto */
body.dark-mode .select2-container--default.select2-container--focus .select2-selection--single,
body.dark-mode .select2-container--default.select2-container--open .select2-selection--single,
body.dark-mode .select2-container.select2-container--open .select2-selection--single {
    border-color: #00c3aa !important;
    background-color: #181827 !important;
    box-shadow: 0 0 0 2px rgba(0, 195, 170, 0.2) !important;
}

body.dark-mode .select2-container--default.select2-container--open .select2-selection--single .select2-selection__rendered {
    background-color: #181827 !important;
    border-bottom-color: transparent !important;
}

/* Deshabilitado */
body.dark-mode .select2-container--default.select2-container--disabled .select2-selection--single {
    background-color: #1c1c2a !important;
    border-color: #2a2a3e !important;
    opacity: 0.7 !important;
}

body.dark-mode .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__rendered {
    color: #94a3b8 !important;
    background-color: transparent !important;
}

/* Selección Múltiple */
body.dark-mode .select2-container--default .select2-selection--multiple {
    background-color: #151522 !important;
    border: 1px solid #2d2d44 !important;
    border-radius: 4px !important;
    min-height: 38px !important;
}

body.dark-mode .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: #242436 !important;
    border: 1px solid #3b3b55 !important;
    color: #f8fafc !important;
}

body.dark-mode .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: #cbd5e1 !important;
}

body.dark-mode .select2-container--default .select2-selection--multiple .select2-search__field {
    color: #f8fafc !important;
}

/* Desplegable / Dropdown */
body.dark-mode .select2-dropdown {
    background-color: #1e1e2d !important;
    border: 1px solid #2d2d44 !important;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5) !important;
    color: #f8fafc !important;
    z-index: 1055 !important;
}

body.dark-mode .select2-dropdown--below {
    border-top: none !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
}

body.dark-mode .select2-dropdown--above {
    border-bottom: none !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

/* Búsqueda dentro del dropdown */
body.dark-mode .select2-search--dropdown {
    background-color: #1e1e2d !important;
    padding: 8px !important;
}

body.dark-mode .select2-search--dropdown .select2-search__field {
    background-color: #151522 !important;
    border: 1px solid #2d2d44 !important;
    color: #ffffff !important;
    border-radius: 4px !important;
    padding: 6px 10px !important;
    font-size: 14px !important;
    width: 100% !important;
}

body.dark-mode .select2-search--dropdown .select2-search__field:focus {
    border-color: #00c3aa !important;
    outline: none !important;
}

/* Opciones de la lista */
body.dark-mode .select2-results {
    background-color: #1e1e2d !important;
}

body.dark-mode .select2-results__options {
    background-color: #1e1e2d !important;
}

body.dark-mode .select2-results__option {
    background-color: transparent !important;
    color: #cbd5e1 !important;
    padding: 8px 12px !important;
    font-size: 14px !important;
}

body.dark-mode .select2-results__option--highlighted[aria-selected],
body.dark-mode .select2-container--default .select2-results__option--highlighted[aria-selected],
body.dark-mode .select2-container--arrow .select2-results__option--highlighted[aria-selected],
body.dark-mode .select2-container--white .select2-results__option--highlighted[aria-selected] {
    background-color: #00c3aa !important;
    color: #ffffff !important;
}

body.dark-mode .select2-container--default .select2-results__option[aria-selected="true"],
body.dark-mode .select2-container--arrow .select2-results__option[aria-selected="true"],
body.dark-mode .select2-container--white .select2-results__option[aria-selected="true"] {
    background-color: #252538 !important;
    color: #00c3aa !important;
    font-weight: 600 !important;
}

body.dark-mode .select2-results__option[aria-disabled="true"] {
    color: #64748b !important;
    background-color: transparent !important;
}

/* SweetAlert2 - Soporte Modo Oscuro Total */
body.dark-mode .swal2-popup,
html.dark-mode .swal2-popup,
body.dark-mode .swal2-modal,
html.dark-mode .swal2-modal {
    background-color: #1e1e2d !important;
    background: #1e1e2d !important;
    color: #e2e8f0 !important;
    border: 1px solid #2e2e44 !important;
    box-shadow: 0 10px 40px rgba(0,0,0,0.6) !important;
}

/* Fix crítico para el icono de éxito en Modo Oscuro (elimina el círculo blanco y la línea diagonal) */
body.dark-mode .swal2-icon.swal2-success .swal2-success-circular-line-left,
body.dark-mode .swal2-icon.swal2-success .swal2-success-circular-line-right,
body.dark-mode .swal2-icon.swal2-success .swal2-success-fix,
body.dark-mode .swal2-icon.swal2-success [class^='swal2-success-circular-line'],
html.dark-mode .swal2-icon.swal2-success .swal2-success-circular-line-left,
html.dark-mode .swal2-icon.swal2-success .swal2-success-circular-line-right,
html.dark-mode .swal2-icon.swal2-success .swal2-success-fix,
html.dark-mode .swal2-icon.swal2-success [class^='swal2-success-circular-line'] {
    background-color: #1e1e2d !important;
    background: #1e1e2d !important;
}

body.dark-mode .swal2-title,
html.dark-mode .swal2-title {
    color: #ffffff !important;
}

body.dark-mode .swal2-content,
html.dark-mode .swal2-content {
    color: #cbd5e1 !important;
}

body.dark-mode .swal2-input,
body.dark-mode .swal2-textarea,
html.dark-mode .swal2-input,
html.dark-mode .swal2-textarea {
    background: #252538 !important;
    border: 1px solid #3b3b54 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body.dark-mode .swal2-input:focus,
body.dark-mode .swal2-textarea:focus,
html.dark-mode .swal2-input:focus,
html.dark-mode .swal2-textarea:focus {
    border-color: #00c3aa !important;
    box-shadow: 0 0 10px rgba(0, 195, 170, 0.3) !important;
}

/* Contenedores de opciones específicas (Cajas, Empresa, etc.) */
body.dark-mode #contenedorCheckboxCaja {
    background-color: #181827 !important;
}

/*=============================================
PANELES (BOOTSTRAP / ADMINLTE)
=============================================*/
body.dark-mode .panel,
body.dark-mode .panel-default,
body.dark-mode .panel-info,
body.dark-mode .panel-primary,
body.dark-mode .panel-success,
body.dark-mode .panel-warning,
body.dark-mode .panel-danger {
    background-color: #1e1e2d !important;
    background: #1e1e2d !important;
    border: 1px solid #2b2b40 !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2) !important;
    color: #e2e8f0 !important;
}

body.dark-mode .panel-heading,
body.dark-mode .panel-default > .panel-heading,
body.dark-mode .panel-info > .panel-heading,
body.dark-mode .panel-primary > .panel-heading,
body.dark-mode .panel-success > .panel-heading,
body.dark-mode .panel-warning > .panel-heading,
body.dark-mode .panel-danger > .panel-heading,
body.dark-mode .panel-heading[style] {
    background-color: #242436 !important;
    background: #242436 !important;
    border-bottom: 1px solid #2b2b40 !important;
    color: #ffffff !important;
}

body.dark-mode .panel-heading small.text-muted,
body.dark-mode .panel-heading .text-muted {
    color: #94a3b8 !important;
}

body.dark-mode .panel-body,
body.dark-mode .panel-default > .panel-body,
body.dark-mode .panel-info > .panel-body,
body.dark-mode .panel-primary > .panel-body,
body.dark-mode .panel-success > .panel-body,
body.dark-mode .panel-warning > .panel-body,
body.dark-mode .panel-danger > .panel-body {
    background-color: #1e1e2d !important;
    background: #1e1e2d !important;
    color: #cbd5e1 !important;
}

body.dark-mode .panel-body p.text-muted,
body.dark-mode .panel-body .text-muted {
    color: #94a3b8 !important;
}

body.dark-mode .panel-footer,
body.dark-mode .panel-default > .panel-footer,
body.dark-mode .panel-info > .panel-footer {
    background-color: #171723 !important;
    background: #171723 !important;
    border-top: 1px solid #2b2b40 !important;
    color: #94a3b8 !important;
}

/*=============================================
WELLS (CUADROS DE DETALLE)
=============================================*/
body.dark-mode .well,
body.dark-mode .well-sm,
body.dark-mode .well-lg,
body.dark-mode .well[style] {
    background-color: #171725 !important;
    background: #171725 !important;
    border: 1px solid #2e2e44 !important;
    color: #cbd5e1 !important;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3) !important;
}

body.dark-mode .well h4,
body.dark-mode .well h5,
body.dark-mode .well strong,
body.dark-mode .well b {
    color: #f8fafc !important;
}

body.dark-mode .well small {
    color: #94a3b8 !important;
}

/*=============================================
DISEÑADOR DE LAYOUTS DE ASIENTOS
=============================================*/
body.dark-mode .designer-wrapper {
    background-color: #171725 !important;
    background: #171725 !important;
    border: 1px solid #2b2b40 !important;
}

body.dark-mode .toolbar-herramientas {
    background-color: #171725 !important;
    background: #171725 !important;
    border: 1px solid #2b2b40 !important;
}

body.dark-mode .btn-herramienta {
    background-color: #242436 !important;
    background: #242436 !important;
    color: #cbd5e1 !important;
    border: 1px solid #33334d !important;
}

body.dark-mode .btn-herramienta:hover {
    background-color: #2e2e44 !important;
    background: #2e2e44 !important;
    color: #ffffff !important;
}

body.dark-mode .btn-herramienta.activa {
    background-color: #123348 !important;
    background: #123348 !important;
    border-color: #00a8ff !important;
    color: #ffffff !important;
    box-shadow: 0 0 0 3px rgba(0, 168, 255, 0.25) !important;
}

body.dark-mode .btn-herramienta[data-tipo="VACIO"] .badge-tool {
    background: #3b3b55 !important;
    color: #cbd5e1 !important;
}

body.dark-mode .btnPreset {
    background-color: #242436 !important;
    background: #242436 !important;
    color: #cbd5e1 !important;
    border: 1px solid #2b2b40 !important;
}

body.dark-mode .btnPreset:hover {
    background-color: #2e2e44 !important;
    background: #2e2e44 !important;
    color: #00c3aa !important;
    border-color: #00c3aa !important;
}

body.dark-mode .btnPreset strong {
    color: #f1f5f9 !important;
}

body.dark-mode .btnPreset small.text-muted {
    color: #94a3b8 !important;
}

body.dark-mode .tarjeta-resumen {
    background-color: #171725 !important;
    background: #171725 !important;
    border-left: 4px solid #00c3aa !important;
    color: #e2e8f0 !important;
}

body.dark-mode .tarjeta-resumen h4 {
    color: #ffffff !important;
}

body.dark-mode .panel-controles-editor {
    background-color: #1e1e2d !important;
    background: #1e1e2d !important;
    border: 1px solid #2b2b40 !important;
}

body.dark-mode .vehiculo-canvas {
    background: #171725 !important;
    border-color: #00a8ff !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5) !important;
}

body.dark-mode .vehiculo-cabina-header {
    background: #1a2a3a !important;
    color: #7dd3fc !important;
    border-color: #0284c7 !important;
}

body.dark-mode .vehiculo-trasera-footer {
    background: #242436 !important;
    color: #94a3b8 !important;
}

body.dark-mode .fila-indicador {
    color: #64748b !important;
}

body.dark-mode .tipo-pasillo {
    background: #202030 !important;
    color: #94a3b8 !important;
    border: 1px dashed #3b3b55 !important;
}

body.dark-mode .tipo-vacio {
    background: #151522 !important;
    color: #555570 !important;
    border: 2px dashed #2b2b40 !important;
}

body.dark-mode .tipo-vacio:hover {
    border-color: #00c3aa !important;
    color: #00c3aa !important;
}

