/* ============================================================
   WowTicket — Dark Mode
   Activado via html.dark (puesto por JS en <head>)
   ============================================================ */

/* Transiciones suaves solo al hacer clic en el toggle
   (evita flash en el page load) */
html.dark-transitions,
html.dark-transitions * {
    transition: background-color 0.25s ease,
                border-color 0.25s ease,
                color 0.25s ease !important;
}

/* ============================================================
   BODY & WRAPPER
   ============================================================ */

/* Override Bootstrap CSS variables para dark mode */
html.dark {
    --bs-border-color:         rgba(255, 255, 255, 0.1);
    --bs-border-color-translucent: rgba(255, 255, 255, 0.1);
    --bs-secondary-color:      #94a3b8;
    --bs-tertiary-bg:          #1a1a1a;
    --bs-secondary-bg:         #111111;
    --bs-emphasis-color:       #f1f5f9;
    --bs-body-bg:              #000000;
    --bs-body-color:           #cbd5e1;
    --bs-heading-color:        #f1f5f9;
    color-scheme: dark;
}

html.dark body {
    background-color: #000000;
    color: #cbd5e1;
}

html.dark .db-wrapper {
    background-color: #000000;
}

html.dark hr {
    border-color: rgba(255, 255, 255, 0.1);
    opacity: 1;
}

/* ============================================================
   TIPOGRAFÍA
   ============================================================ */
html.dark h1, html.dark h2, html.dark h3,
html.dark h4, html.dark h5, html.dark h6 {
    color: #f1f5f9;
}

html.dark p { color: #cbd5e1; }

html.dark .text-dark    { color: #e2e8f0 !important; }
html.dark .text-black   { color: #f1f5f9 !important; }
html.dark .text-muted   { color: #64748b !important; }
html.dark .text-secondary { color: #94a3b8 !important; }
html.dark .text-body    { color: #cbd5e1 !important; }

/* ============================================================
   BACKGROUNDS
   ============================================================ */
html.dark .bg-white     { background-color: #111111 !important; }
html.dark .bg-light     { background-color: #0d0d0d !important; }
html.dark .bg-body      { background-color: #000000 !important; }
html.dark .bg-secondary { background-color: #050505 !important; }

html.dark .section-bg,
html.dark .section-bg-white,
html.dark .bg-section {
    background-color: #0d0d0d !important;
}

/* ============================================================
   CARDS
   ============================================================ */
html.dark .card {
    background-color: #111111;
    border-color: rgba(255, 255, 255, 0.08);
    color: #cbd5e1;
}

html.dark .card-header {
    background-color: #0d0d0d;
    border-bottom-color: rgba(255, 255, 255, 0.08);
    color: #f1f5f9;
}

html.dark .card-footer {
    background-color: #0d0d0d;
    border-top-color: rgba(255, 255, 255, 0.08);
}

html.dark .card-body  { color: #cbd5e1; }
html.dark .card-title { color: #f1f5f9; }
html.dark .card-text  { color: #94a3b8; }

/* ============================================================
   FORMULARIOS
   ============================================================ */
html.dark .form-control {
    background-color: #0d0d0d;
    border-color: rgba(255, 255, 255, 0.12);
    color: #e2e8f0;
}

html.dark .form-control:focus {
    background-color: #111111;
    border-color: #ff1b7f;
    color: #f1f5f9;
    box-shadow: 0 0 0 0.2rem rgba(255, 27, 127, 0.15);
}

html.dark .form-control::placeholder { color: #475569; }

html.dark .form-control:disabled,
html.dark .form-control[readonly] {
    background-color: #080808;
    color: #64748b;
}

html.dark .form-select {
    background-color: #0d0d0d;
    border-color: rgba(255, 255, 255, 0.12);
    color: #e2e8f0;
}

html.dark .form-select:focus {
    border-color: #ff1b7f;
    box-shadow: 0 0 0 0.2rem rgba(255, 27, 127, 0.15);
}

html.dark .input-group-text {
    background-color: #0d0d0d;
    border-color: rgba(255, 255, 255, 0.12);
    color: #94a3b8;
}

html.dark .form-check-input {
    background-color: #0d0d0d;
    border-color: rgba(255, 255, 255, 0.2);
}

html.dark .form-check-input:checked {
    background-color: #ff1b7f;
    border-color: #ff1b7f;
}

html.dark label       { color: #94a3b8; }
html.dark .form-label { color: #94a3b8; }

/* ============================================================
   DROPDOWNS (Bootstrap)
   ============================================================ */
html.dark .dropdown-menu {
    background-color: #111111 !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5) !important;
}

html.dark .dropdown-item { color: #cbd5e1 !important; }

html.dark .dropdown-item:hover,
html.dark .dropdown-item:focus {
    background-color: rgba(255, 27, 127, 0.1) !important;
    color: #ff1b7f !important;
}

html.dark .dropdown-item.active,
html.dark .dropdown-item:active {
    background-color: #ff1b7f !important;
    color: #fff !important;
}

html.dark .dropdown-divider { border-color: rgba(255, 255, 255, 0.08); }
html.dark .dropdown-header  { color: #64748b; }

/* Dropdown personalizado (eventmie-custom.css) */
html.dark .dropdownmenu {
    background-color: #111111;
    border-color: rgba(255, 255, 255, 0.1);
}

html.dark .dropdownmenu a { color: #cbd5e1; }

/* ============================================================
   TABLAS
   Jerarquía: card(#111) → thead(#0a0a0a) → tbody(#1a1a1a)
   El thead es más oscuro que el card para crear contraste visual.
   Las filas del body flotan por encima del card con #1a1a1a.
   ============================================================ */
html.dark .table {
    color: #e2e8f0;
    border-color: rgba(255, 255, 255, 0.1);
    --bs-table-color: #e2e8f0;
    --bs-table-bg: #1a1a1a;
    --bs-table-striped-color: #e2e8f0;
    --bs-table-striped-bg: rgba(255, 255, 255, 0.04);
    --bs-table-hover-color: #f1f5f9;
    --bs-table-hover-bg: rgba(255, 255, 255, 0.07);
    --bs-table-border-color: rgba(255, 255, 255, 0.09);
}

html.dark .table tbody {
    background-color: #1a1a1a;
}

html.dark .table tbody tr {
    background-color: #1a1a1a;
}

html.dark .table tbody tr:hover > * {
    background-color: #222 !important;
    color: #f1f5f9 !important;
}

html.dark .table thead th,
html.dark .table th {
    color: #94a3b8;
    border-color: rgba(255, 255, 255, 0.12);
    background-color: #0a0a0a;
}

html.dark .table td {
    border-color: rgba(255, 255, 255, 0.07);
    color: #e2e8f0;
}

html.dark .table-bordered td,
html.dark .table-bordered th {
    border-color: rgba(255, 255, 255, 0.1);
}

/* table-light: mismo que thead oscuro */
html.dark .table-light,
html.dark .table-light > :not(caption) > * > * {
    background-color: #0a0a0a !important;
    color: #94a3b8 !important;
    border-color: rgba(255,255,255,0.1) !important;
    --bs-table-bg: #0a0a0a !important;
    --bs-table-color: #94a3b8 !important;
    --bs-table-border-color: rgba(255,255,255,0.1) !important;
}

/* Separador visual entre thead y tbody */
html.dark .table thead {
    border-bottom: 2px solid rgba(255, 255, 255, 0.12) !important;
}

/* Links dentro de tablas — legibles en fondo oscuro */
html.dark .table a,
html.dark .table a:hover {
    color: #93c5fd;
}
html.dark .table a.text-inherit,
html.dark .table a.text-inherit:hover {
    color: #e2e8f0;
}

/* Card-headers sin borde: añadir separador sutil */
html.dark .card-header.border-bottom-0 {
    border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
}

/* ============================================================
   INPUT GROUP
   ============================================================ */
html.dark .input-group-text {
    background-color: #1a1a1a;
    border-color: rgba(255,255,255,0.12);
    color: #94a3b8;
}

/* ============================================================
   TOM SELECT (selector evento en dashboard)
   ============================================================ */
html.dark .ts-wrapper .ts-control {
    background-color: #0d0d0d !important;
    border-color: rgba(255,255,255,0.12) !important;
    color: #e2e8f0 !important;
    box-shadow: none !important;
}

html.dark .ts-wrapper.focus .ts-control {
    border-color: rgba(255,12,129,0.4) !important;
    box-shadow: 0 0 0 0.2rem rgba(255,12,129,0.12) !important;
}

html.dark .ts-wrapper .ts-control input {
    color: #e2e8f0 !important;
}

html.dark .ts-wrapper .ts-control input::placeholder {
    color: #64748b !important;
}

html.dark .ts-wrapper .ts-control .item {
    color: #e2e8f0 !important;
}

html.dark .ts-dropdown {
    background-color: #111 !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
    box-shadow: 0 8px 24px rgba(0,0,0,0.6) !important;
}

html.dark .ts-dropdown .option {
    color: #cbd5e1 !important;
}

html.dark .ts-dropdown .option.active,
html.dark .ts-dropdown .option:hover {
    background-color: rgba(255,12,129,0.1) !important;
    color: #f1f5f9 !important;
}

html.dark .ts-dropdown .option.selected {
    background-color: rgba(255,12,129,0.15) !important;
    color: #f472b6 !important;
}

html.dark .ts-dropdown-header {
    background-color: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.08) !important;
}

/* ============================================================
   MODALES
   ============================================================ */
html.dark .modal-content {
    background-color: #111111;
    border-color: rgba(255, 255, 255, 0.1);
    color: #cbd5e1;
}

html.dark .modal-header {
    background-color: #0d0d0d;
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

html.dark .modal-header .modal-title { color: #f1f5f9; }

html.dark .modal-footer {
    background-color: #0d0d0d;
    border-top-color: rgba(255, 255, 255, 0.1);
}

html.dark .btn-close {
    filter: invert(1) grayscale(1) brightness(2);
}

/* ============================================================
   ALERTAS
   ============================================================ */
html.dark .alert-primary {
    background-color: rgba(255, 27, 127, 0.1);
    border-color: rgba(255, 27, 127, 0.2);
    color: #ff8fb8;
}

html.dark .alert-secondary {
    background-color: rgba(100, 116, 139, 0.15);
    border-color: rgba(100, 116, 139, 0.25);
    color: #94a3b8;
}

html.dark .alert-success {
    background-color: rgba(34, 197, 94, 0.1);
    border-color: rgba(34, 197, 94, 0.2);
    color: #86efac;
}

html.dark .alert-danger {
    background-color: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.2);
    color: #fca5a5;
}

html.dark .alert-warning {
    background-color: rgba(245, 158, 11, 0.1);
    border-color: rgba(245, 158, 11, 0.2);
    color: #fde68a;
}

html.dark .alert-info {
    background-color: rgba(6, 182, 212, 0.1);
    border-color: rgba(6, 182, 212, 0.2);
    color: #67e8f9;
}

html.dark .alert-light {
    background-color: #0d0d0d;
    border-color: rgba(255, 255, 255, 0.08);
    color: #94a3b8;
}

/* ============================================================
   LIST GROUPS
   ============================================================ */
html.dark .list-group-item {
    background-color: #111111;
    border-color: rgba(255, 255, 255, 0.08);
    color: #cbd5e1;
}

html.dark .list-group-item:hover { background-color: #1a1a1a; }

html.dark .list-group-item.active {
    background-color: #ff1b7f;
    border-color: #ff1b7f;
    color: #fff;
}

html.dark .list-group-item-action { color: #cbd5e1; }

html.dark .list-group-item-action:hover,
html.dark .list-group-item-action:focus {
    background-color: rgba(255, 27, 127, 0.05);
    color: #f1f5f9;
}

/* ============================================================
   NAV TABS & PILLS
   ============================================================ */
html.dark .nav-tabs { border-bottom-color: rgba(255, 255, 255, 0.1); }

html.dark .nav-tabs .nav-link         { color: #94a3b8; }
html.dark .nav-tabs .nav-link:hover   { color: #e2e8f0; }

html.dark .nav-tabs .nav-link.active {
    background-color: #111111;
    border-color: rgba(255, 255, 255, 0.1) rgba(255, 255, 255, 0.1) #111111;
    color: #ff1b7f;
}

html.dark .nav-pills .nav-link       { color: #94a3b8; }
html.dark .nav-pills .nav-link:hover {
    color: #e2e8f0;
    background-color: rgba(255, 255, 255, 0.05);
}

html.dark .nav-pills .nav-link.active,
html.dark .nav-pills .show > .nav-link {
    background-color: #ff1b7f;
    color: #fff;
}

/* ============================================================
   PAGINACIÓN
   ============================================================ */
html.dark .page-link {
    background-color: #1e1e1e !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
    color: #e2e8f0 !important;
    box-shadow: none !important;
}

html.dark .page-link:hover {
    background-color: rgba(255, 27, 127, 0.15) !important;
    border-color: rgba(255, 27, 127, 0.35) !important;
    color: #ff6bb5 !important;
}

html.dark .page-item.active .page-link {
    background-color: #ff1b7f !important;
    border-color: #ff1b7f !important;
    color: #fff !important;
}

html.dark .page-item.disabled .page-link {
    background-color: #111 !important;
    border-color: rgba(255, 255, 255, 0.07) !important;
    color: #475569 !important;
    opacity: 0.5;
}

/* ============================================================
   BREADCRUMB
   ============================================================ */
html.dark .breadcrumb-section,
html.dark .breadcrumb-bar,
html.dark section.breadcrumb-section {
    background-color: #080808 !important;
}

html.dark .breadcrumb               { background-color: transparent; }
html.dark .breadcrumb-item          { color: #94a3b8; }
html.dark .breadcrumb-item.active   { color: #e2e8f0; }
html.dark .breadcrumb-item a        { color: #ff1b7f; }

html.dark .breadcrumb-item + .breadcrumb-item::before { color: #475569; }

/* ============================================================
   BADGES
   ============================================================ */
html.dark .badge.bg-light {
    background-color: #1a1a1a !important;
    color: #e2e8f0 !important;
}

html.dark .badge.bg-secondary {
    background-color: #334155 !important;
    color: #e2e8f0 !important;
}

/* ============================================================
   BORDERS
   ============================================================ */
html.dark .border        { border-color: rgba(255, 255, 255, 0.1) !important; }
html.dark .border-top    { border-top-color: rgba(255, 255, 255, 0.1) !important; }
html.dark .border-bottom { border-bottom-color: rgba(255, 255, 255, 0.1) !important; }
html.dark .border-start  { border-left-color: rgba(255, 255, 255, 0.1) !important; }
html.dark .border-end    { border-right-color: rgba(255, 255, 255, 0.1) !important; }
html.dark .border-secondary { border-color: rgba(255, 255, 255, 0.08) !important; }
html.dark .border-light  { border-color: rgba(255, 255, 255, 0.06) !important; }

/* ============================================================
   BOTONES (variantes claras)
   ============================================================ */
html.dark .btn-light {
    background-color: #1a1a1a;
    border-color: rgba(255, 255, 255, 0.1);
    color: #e2e8f0;
}

html.dark .btn-light:hover {
    background-color: #222222;
    color: #f1f5f9;
}

html.dark .btn-outline-secondary {
    border-color: rgba(255, 255, 255, 0.2);
    color: #94a3b8;
}

html.dark .btn-outline-secondary:hover {
    background-color: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.3);
    color: #e2e8f0;
}

html.dark .btn-outline-dark {
    border-color: rgba(255, 255, 255, 0.3);
    color: #e2e8f0;
}

html.dark .btn-outline-dark:hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: #f1f5f9;
}

/* ============================================================
   FOOTER
   ============================================================ */
html.dark .footer {
    background-color: #050505 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

html.dark .footer h5          { color: #f1f5f9; }
html.dark .footer a           { color: rgba(255, 255, 255, 0.6) !important; }
html.dark .footer a:hover     { color: #ff1b7f !important; }
html.dark .footer .text-gray-500 { color: rgba(255, 255, 255, 0.35) !important; }

html.dark .footer .list-group-item  { background-color: transparent !important; }
html.dark .footer .list-group-item a { color: rgba(255,255,255,0.6) !important; }

/* ============================================================
   NAVBAR COLLAPSE — menú móvil expandido
   ============================================================ */

/* theme.css aplica background:#fff y box-shadow al .navbar-collapse */
html.dark .nav-header .navbar-collapse {
    background-color: #000000 !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6) !important;
}

html.dark #navbarSupportedContent {
    background-color: #000000 !important;
}

/* theme.css aplica border-top: 1px solid #dee2e6 a cada .nav-link del navbar
   — esa es la línea gris que aparece en modo oscuro */
html.dark .nav-header .navbar-nav .nav-link {
    border-top-color: rgba(255, 255, 255, 0.06) !important;
}

html.dark .mobile-collapse-top {
    background-color: #000000;
}

html.dark .mobile-user-name   { color: #e2e8f0; }
html.dark .mobile-profile-link { color: #ff1b7f !important; }

html.dark .mobile-quick-btn {
    background-color: #0d0d0d !important;
    color: #e2e8f0 !important;
}

html.dark .mobile-quick-btn:hover {
    background-color: rgba(255, 27, 127, 0.15) !important;
    color: #ff1b7f !important;
}

html.dark .mobile-quick-btn.active {
    background-color: rgba(255, 27, 127, 0.2) !important;
    color: #ff1b7f !important;
}

/* Panel de notificaciones móvil */
html.dark .mobile-notif-dropdown {
    background-color: #111111 !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

/* ============================================================
   HOME / WELCOME — cards de eventos, búsqueda
   ============================================================ */
html.dark .event-card {
    background-color: #111111;
    border-color: rgba(255, 255, 255, 0.08);
}

html.dark .event-title { color: #f1f5f9; }
html.dark .event-date  { color: #94a3b8; }

html.dark .home-search,
html.dark .banner-search {
    background-color: #111111;
}

/* ============================================================
   EVENTS LISTING — sidebar de filtros, skeleton loaders
   ============================================================ */
html.dark .filter-sidebar,
html.dark .filter-area,
html.dark .sidebar {
    background-color: #111111;
}

/* Clase .skeleton del tema compilado — shimmer claro → oscuro */
html.dark .skeleton,
html.dark .skeleton-loader {
    background-color: #1a1a1a !important;
    background-image: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0),
        rgba(255, 255, 255, 0.05),
        rgba(255, 255, 255, 0)
    ) !important;
}

/* ── /events — tarjeta wrapper del skeleton (Events.vue, scoped CSS) ── */
html.dark .ev-skeleton-card {
    background: #111111 !important;
    border-bottom-color: rgba(255, 255, 255, 0.06) !important;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.5) !important;
}

/* ── /events — bloques internos del skeleton ── */
html.dark .ev-sk-img,
html.dark .ev-sk-line,
html.dark .ev-sk-line--lg,
html.dark .ev-sk-line--price {
    background-color: #1a1a1a !important;
    background-image: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0),
        rgba(255, 255, 255, 0.05),
        rgba(255, 255, 255, 0)
    ) !important;
}

/* ============================================================
   EVENT DETAIL — box de tickets, staff card
   ============================================================ */
html.dark .event-detail,
html.dark .ticket-area,
html.dark .booking-box {
    background-color: #111111;
    border-color: rgba(255, 255, 255, 0.08);
}

html.dark .staff-card {
    background-color: #111111;
    border-color: rgba(255, 255, 255, 0.08);
}

/* ============================================================
   ORGANIZER PROFILE — info card
   ============================================================ */
html.dark .organizer-info,
html.dark .organizer-bio {
    background-color: #111111;
    color: #cbd5e1;
}

/* ============================================================
   CHECKOUT / BOOKING — formulario de tarjeta
   ============================================================ */
html.dark .card-form__inner {
    background: #111111;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
}

html.dark .card-input__label { color: #94a3b8; }

html.dark .card-input__input {
    background-color: #0d0d0d;
    border-color: rgba(255, 255, 255, 0.12);
    color: #e2e8f0;
}

html.dark .card-input__input:focus {
    border-color: #ff1b7f;
    box-shadow: 0 0 0 0.15rem rgba(255, 27, 127, 0.2);
}

/* ============================================================
   ACCORDION
   ============================================================ */
html.dark .accordion-item {
    background-color: #111111;
    border-color: rgba(255, 255, 255, 0.08);
}

html.dark .accordion-button {
    background-color: #0d0d0d;
    color: #e2e8f0;
}

html.dark .accordion-button:not(.collapsed) {
    background-color: rgba(255, 27, 127, 0.1);
    color: #ff1b7f;
    box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.08);
}

html.dark .accordion-button::after { filter: invert(1); }

html.dark .accordion-body {
    background-color: #111111;
    color: #cbd5e1;
}

/* ============================================================
   PROGRESS BAR
   ============================================================ */
html.dark .progress { background-color: #0d0d0d; }

/* ============================================================
   POPOVER & TOOLTIP
   ============================================================ */
html.dark .popover {
    background-color: #111111;
    border-color: rgba(255, 255, 255, 0.1);
}

html.dark .popover-header {
    background-color: #0d0d0d;
    border-bottom-color: rgba(255, 255, 255, 0.08);
    color: #f1f5f9;
}

html.dark .popover-body { color: #cbd5e1; }

/* ============================================================
   SCROLLBAR PERSONALIZADO
   ============================================================ */
html.dark ::-webkit-scrollbar-track { background: #080808; }
html.dark ::-webkit-scrollbar-thumb { background: #222222; border-radius: 4px; }
html.dark ::-webkit-scrollbar-thumb:hover { background: #2f2f2f; }

/* ============================================================
   DARK MODE TOGGLE BUTTON
   ============================================================ */
.dark-mode-toggle {
    background: none;
    border: none;
    cursor: pointer;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.75);
    padding: 0;
    flex-shrink: 0;
    line-height: 1;
}

.dark-mode-toggle:hover {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

/* Modo claro: muestra luna; modo oscuro: muestra sol */
.dark-mode-toggle .icon-sun  { display: none; }
.dark-mode-toggle .icon-moon { display: inline; }

html.dark .dark-mode-toggle .icon-sun  { display: inline; }
html.dark .dark-mode-toggle .icon-moon { display: none; }

/* ============================================================
   HOME — BARRA DE BÚSQUEDA (HomeSearch.vue, scoped)
   ============================================================ */
html.dark .home-search-bar {
    background: #111111 !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5) !important;
}

html.dark .home-search-input {
    color: #e2e8f0 !important;
}

html.dark .home-search-input::placeholder {
    color: #475569 !important;
}

/* ============================================================
   /events — BARRA DE BÚSQUEDA Y CHIPS (Events.vue, scoped)
   ============================================================ */
html.dark .ev-search-wrap {
    background: #111111 !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

html.dark .ev-search-wrap:focus-within {
    border-color: #ff0c81 !important;
    box-shadow: 0 0 0 3px rgba(255, 12, 129, 0.1) !important;
}

html.dark .ev-search-input {
    color: #e2e8f0 !important;
}

html.dark .ev-search-input::placeholder {
    color: #475569 !important;
}

html.dark .ev-search-icon {
    color: #475569 !important;
}

html.dark .ev-search-clear {
    color: #475569 !important;
}

html.dark .ev-search-clear:hover {
    color: #ff0c81 !important;
}

/* Category chips */
html.dark .ev-chip {
    background: #111111 !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    color: #94a3b8 !important;
}

html.dark .ev-chip:hover {
    border-color: #ff0c81 !important;
    color: #ff0c81 !important;
}

html.dark .ev-chip.active {
    background: #ff0c81 !important;
    border-color: #ff0c81 !important;
    color: #fff !important;
}

/* ============================================================
   /events — SKELETON BLADE (index.blade.php, carga antes de Vue)
   ============================================================ */

/* Contenedor mobile: tiene background:#fff desde el <style> inline del blade */
html.dark .events-list-grid-blade {
    background: transparent !important;
    box-shadow: none !important;
}

/* Card desktop: tiene style="background:#fff" inline → solo !important lo puede vencer */
html.dark .ev-blade-sk-card {
    background: #111111 !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.5) !important;
}

/* Sección de datos (padding div) dentro del card desktop */
html.dark .ev-blade-sk-body {
    background: #111111 !important;
}

/* ============================================================
   HOME — BANNER CTA "¿Produces Eventos?"
   Inline style background-color:black → sobreescribir con !important
   ============================================================ */
html.dark .cta-produces-eventos {
    background-color: rgb(5, 5, 5) !important;
}

/* ============================================================
   HOME — EVENT CARDS (Event.vue, scoped CSS → necesita !important)
   ============================================================ */

/* Fondo de la card — mobile y desktop */
html.dark .evc {
    background: #111111 !important;
}

/* Separador inferior entre cards (mobile) */
html.dark .evc-link {
    border-bottom-color: rgba(255, 255, 255, 0.07) !important;
    color: inherit !important;
}

html.dark .evc-link:hover {
    background: rgba(255, 27, 127, 0.06) !important;
}

/* Sombra en desktop (el default rgba(0,0,0,0.06) no se ve sobre negro) */
html.dark .evc {
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.45) !important;
}

html.dark .evc:hover {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6) !important;
}

/* Título */
html.dark .evc-title {
    color: #f1f5f9 !important;
}

/* Venue y meta (fecha/hora) */
html.dark .evc-venue {
    color: #64748b !important;
}

html.dark .evc-meta {
    color: #64748b !important;
}

html.dark .evc-meta-sep {
    color: #334155 !important;
}

/* Badge lista pública */
html.dark .evc-public-list-badge {
    background: rgba(34, 197, 94, 0.12) !important;
    color: #86efac !important;
}

/* Tour stat badge */
html.dark .evc-tour-stat {
    background: rgba(255, 12, 129, 0.12) !important;
    color: #ff8fb8 !important;
}

/* ============================================================
   HOME — SKELETON LOADERS (InfiniteEventsHome.vue, scoped)
   ============================================================ */
html.dark .sk-block {
    background: linear-gradient(90deg, #1a1a1a 25%, #222222 50%, #1a1a1a 75%) !important;
    background-size: 1200px 100% !important;
}

html.dark .sk-block-dark {
    background: linear-gradient(90deg, #222222 25%, #2f2f2f 50%, #222222 75%) !important;
    background-size: 1200px 100% !important;
}

html.dark .sk-card {
    background: #111111 !important;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.4) !important;
}

/* ============================================================
   CHECKOUT — events/show.blade.php (estilos inline + clases blade)
   ============================================================ */

/* Tarjeta principal del checkout usa bg-light (ya cubierto genéricamente),
   pero la reforzamos con specificity para #buy-tickets */
html.dark #buy-tickets.bg-light,
html.dark #buy-tickets.card {
    background-color: #0d0d0d !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
}

/* Coming-soon card: tiene style="background:#fff" inline */
html.dark #buy-tickets[style*="background:#fff"],
html.dark #buy-tickets[style*="background: #fff"] {
    background: #111111 !important;
}

/* Cards de info lateral (Dónde / Cuándo) — color del título viene del blade inline */
html.dark .info-card {
    border-color: rgba(255, 255, 255, 0.08) !important;
}

html.dark .info-card .info-card-value {
    color: #e2e8f0 !important;
}

html.dark .info-card .info-card-value a {
    color: #e2e8f0 !important;
}

/* Banner de referido (Blade) — background: #fff0f7, texto: #08142f */
html.dark .referral-banner {
    background: #1a0a12 !important;
    border-color: rgba(255, 12, 129, 0.25) !important;
}

html.dark .referral-banner .referral-text {
    color: #cbd5e1 !important;
}

/* Staff cards — borde azulado al seleccionar */
html.dark .staff-card.selected {
    background-color: #1a0d1a !important;
    border-color: #ff0c81 !important;
}

/* Avatar del staff — borde claro */
html.dark .staff-card .rounded-circle {
    border-color: rgba(255, 255, 255, 0.15) !important;
}

/* Countdown "Próximamente" — fondo e inline colors */
html.dark #buy-tickets .card-body[style] {
    background: #111111 !important;
}

/* ============================================================
   CHECKOUT — TicketList.vue (scoped CSS → necesita !important)
   ============================================================ */

/* Banner de referido con lock (TicketList.vue) */
html.dark .referral-lock-banner {
    background: #1a0a12 !important;
    border-color: rgba(255, 12, 129, 0.25) !important;
    color: #e2e8f0 !important;
}

/* Precio del ticket */
html.dark .ticket-price {
    color: #f1f5f9 !important;
}

/* Cortesías — states */
html.dark .courtesy-preview-item {
    background: rgba(34, 197, 94, 0.1) !important;
    color: #86efac !important;
    border-color: rgba(34, 197, 94, 0.2) !important;
}

html.dark .courtesy-preview-item.invalid {
    background: rgba(239, 68, 68, 0.1) !important;
    color: #fca5a5 !important;
    border-color: rgba(239, 68, 68, 0.2) !important;
}

html.dark .courtesy-preview-item.duplicate {
    background: rgba(245, 158, 11, 0.1) !important;
    color: #fde68a !important;
    border-color: rgba(245, 158, 11, 0.2) !important;
}

/* Secciones con background: #f8f9fa inline (tabla de tickets, resumen) */
html.dark [style*="background: #f8f9fa"],
html.dark [style*="background:#f8f9fa"] {
    background: #0d0d0d !important;
}

/* thead sticky con background: white inline */
html.dark [style*="background: white"],
html.dark [style*="background:white"] {
    background: #0d0d0d !important;
}

/* Borders inline: border: 1px solid #dee2e6 */
html.dark [style*="border: 1px solid #dee2e6"],
html.dark [style*="border:1px solid #dee2e6"] {
    border-color: rgba(255, 255, 255, 0.08) !important;
}

/* v-select del organizador (TicketList.vue) */
html.dark .organizer-vselect .vs__dropdown-toggle {
    background: #0d0d0d !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
}

html.dark .organizer-vselect .vs__selected {
    color: #e2e8f0 !important;
}

html.dark .organizer-vselect .vs__search {
    color: #e2e8f0 !important;
}

html.dark .organizer-vselect .vs__dropdown-menu {
    background: #111111 !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

html.dark .organizer-vselect .vs__dropdown-option {
    color: #cbd5e1 !important;
}

html.dark .organizer-vselect .vs__dropdown-option--highlight {
    background: rgba(255, 12, 129, 0.1) !important;
    color: #ff0c81 !important;
}

/* ============================================================
   CHECKOUT — SelectDates.vue (tour calendar & city selector)
   ============================================================ */

/* Texto dark blue que se usa en varios labels del tour */
html.dark .tour-cal-select-label,
html.dark .tour-cal-detalle-ciudad,
html.dark .tour-ciudad-nombre {
    color: #e2e8f0 !important;
}

/* Box del calendario */
html.dark .tour-cal-box {
    background: #111111 !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

/* Selector de mes/año dentro del calendario */
html.dark .tour-cal-select {
    background: #0d0d0d !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
    color: #e2e8f0 !important;
}

/* Celdas del calendario — estados */
html.dark .tour-cal-cell--agotado {
    background: #1a1a1a !important;
    color: #475569 !important;
}

html.dark .tour-cal-cell--expirado {
    background: #111111 !important;
    color: #334155 !important;
}

/* Info box del tour (aviso superior) */
html.dark .tour-info-box {
    color: #e2e8f0 !important;
}

/* Aviso de función agotada */
html.dark .tour-info-agotada {
    background: #111111 !important;
    border-left-color: rgba(255, 255, 255, 0.2) !important;
    color: #64748b !important;
}

/* Panel detalle de función seleccionada */
html.dark .tour-cal-detalle-muestra {
    background: #111111 !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

/* Selector de ciudad/venue (tour multi-ciudad) */
html.dark .tour-ciudad-wrap {
    background: #111111 !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
}

html.dark .tour-ciudad-header {
    background: #111111 !important;
    color: #e2e8f0 !important;
}

html.dark .tour-ciudad-header:hover:not(:disabled) {
    background: #1a1a1a !important;
}

/* Panel de shows dentro de cada ciudad */
html.dark .tour-ciudad-shows {
    background: #0d0d0d !important;
    border-top-color: rgba(255, 255, 255, 0.06) !important;
}

html.dark .tour-ciudad-show {
    border-bottom-color: rgba(255, 255, 255, 0.06) !important;
}

html.dark .tour-ciudad-show:hover:not(.tour-ciudad-show--expirado) {
    background: #1a1a1a !important;
}

html.dark .tour-ciudad-show--seleccionado {
    background: rgba(255, 12, 129, 0.08) !important;
}

html.dark .tour-ciudad-show-fecha {
    color: #e2e8f0 !important;
}

/* Tab vista lista/calendario */
html.dark .tour-vista-tabs {
    border-color: rgba(255, 255, 255, 0.1) !important;
}

html.dark .tour-vista-tab:not(.active) {
    background: #0d0d0d !important;
    color: #64748b !important;
}

html.dark .tour-vista-tab:first-child {
    border-right-color: rgba(255, 255, 255, 0.1) !important;
}

html.dark .tour-vista-tab:not(.active):hover {
    background: #1a0a12 !important;
    color: #ff0c81 !important;
}

/* ============================================================
   CHECKOUT — TourInfoCard.vue (sidebar Dónde/Cuándo para tour)
   ============================================================ */

html.dark .tour-info-card-vue {
    background: #111111 !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
    color: #e2e8f0 !important;
}

/* ============================================================
   CHECKOUT — Attendee.vue (selector de prefijo telefónico)
   ============================================================ */

/* Botón con la bandera y el código de país */
html.dark .phone-prefix-btn {
    background: #0d0d0d !important;
    color: #e2e8f0 !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
}

/* Dropdown con la lista de países */
html.dark .phone-prefix-dropdown {
    background: #111111 !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
}

/* Cada opción del dropdown */
html.dark .phone-prefix-option {
    color: #cbd5e1 !important;
    border-bottom-color: rgba(255, 255, 255, 0.06) !important;
}

html.dark .phone-prefix-option:hover,
html.dark .phone-prefix-option:focus {
    background: rgba(255, 12, 129, 0.08) !important;
    color: #f1f5f9 !important;
}

html.dark .phone-prefix-option.bg-light {
    background: rgba(255, 12, 129, 0.12) !important;
}

/* ============================================================
   CHECKOUT — estados generales de contraste
   ============================================================ */

/* Cualquier elemento con color #08142f inline (dark navy text) */
html.dark [style*="color:#08142f"],
html.dark [style*="color: #08142f"] {
    color: #e2e8f0 !important;
}

/* Cualquier elemento con color #1a3b5d inline */
html.dark [style*="color:#1a3b5d"],
html.dark [style*="color: #1a3b5d"] {
    color: #e2e8f0 !important;
}

/* ============================================================
   PANEL ORGANIZADOR — OrganiserBooking.vue (.ob-*)
   ============================================================ */

html.dark .ob-page {
    background: #000 !important;
}

html.dark .ob-header__title {
    color: #e2e8f0 !important;
}

html.dark .ob-header__sub {
    color: #94a3b8 !important;
}

html.dark .ob-filter-panel {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}

html.dark .ob-filter-select,
html.dark .ob-filter-input {
    color: #e2e8f0 !important;
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.12) !important;
}

html.dark .ob-filter-select option,
html.dark .ob-filter-input option {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}

html.dark .ob-search-box {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}

html.dark .ob-search-input {
    background: #111 !important;
    color: #e2e8f0 !important;
    border-color: rgba(255,255,255,0.1) !important;
}

html.dark .ob-search-input::placeholder {
    color: #64748b !important;
}

html.dark .ob-card-row {
    border-bottom-color: rgba(255,255,255,0.06) !important;
}

html.dark .ob-customer__name {
    color: #e2e8f0 !important;
}

html.dark .ob-customer__email {
    color: #94a3b8 !important;
}

html.dark .ob-customer__rut {
    color: #64748b !important;
}

html.dark .ob-body__ticket {
    color: #cbd5e1 !important;
}

html.dark .ob-body__price {
    color: #e2e8f0 !important;
}

html.dark .ob-body__currency {
    color: #94a3b8 !important;
}

/* Tags de estado */
html.dark .ob-tag--online {
    background: rgba(46,125,50,0.18) !important;
    color: #86efac !important;
}

html.dark .ob-tag--offline {
    background: rgba(100,116,139,0.18) !important;
    color: #94a3b8 !important;
}

html.dark .ob-tag--paid {
    background: rgba(27,94,32,0.2) !important;
    color: #86efac !important;
}

html.dark .ob-tag--unpaid {
    background: rgba(230,81,0,0.18) !important;
    color: #fdba74 !important;
}

html.dark .ob-tag--checkin {
    background: rgba(21,101,192,0.18) !important;
    color: #93c5fd !important;
}

html.dark .ob-tag--reward {
    background: rgba(255,12,129,0.15) !important;
    color: #f472b6 !important;
}

html.dark .ob-tag--pending {
    background: rgba(230,81,0,0.15) !important;
    color: #fbbf24 !important;
}

html.dark .ob-tag--cancelled {
    background: rgba(198,40,40,0.18) !important;
    color: #fca5a5 !important;
}

html.dark .ob-tag--refunded {
    background: rgba(46,125,50,0.15) !important;
    color: #86efac !important;
}

/* Separador tipo ticket tear */
html.dark .ob-tear {
    border-top-color: rgba(255,255,255,0.08) !important;
}

html.dark .ob-tear::before,
html.dark .ob-tear::after {
    background: #000 !important;
    border-color: rgba(255,255,255,0.08) !important;
}

html.dark .ob-actions__view {
    border-top-color: rgba(255,255,255,0.06) !important;
}

html.dark .ob-btn {
    border-color: rgba(255,255,255,0.15) !important;
    color: #94a3b8 !important;
}

html.dark .ob-btn:hover {
    background: rgba(255,255,255,0.05) !important;
    color: #e2e8f0 !important;
}

html.dark .ob-reset-btn {
    border-color: rgba(255,255,255,0.1) !important;
    background: #111 !important;
    color: #94a3b8 !important;
}

html.dark .ob-reset-btn:hover {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}

html.dark .ob-empty__icon {
    color: #334155 !important;
}

html.dark .ob-empty__text {
    color: #64748b !important;
}

/* Paginación del panel de reservas */
html.dark .ob-pg-btn {
    border-color: rgba(255,255,255,0.1) !important;
    background: #111 !important;
    color: #94a3b8 !important;
}

html.dark .ob-pg-btn:hover {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}

html.dark .ob-pg-btn--active {
    background: rgba(255,12,129,0.12) !important;
    color: #ff6bb5 !important;
    border-color: rgba(255,12,129,0.25) !important;
}

/* v-select y datepicker dentro del panel */
html.dark .ob-page .vs__dropdown-toggle {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.12) !important;
}

html.dark .ob-page .vs__dropdown-menu {
    background: #111 !important;
    border-color: rgba(255,255,255,0.1) !important;
}

html.dark .ob-page .vs__search,
html.dark .ob-page .vs__selected {
    color: #e2e8f0 !important;
}

html.dark .ob-page .vs__option {
    color: #cbd5e1 !important;
}

html.dark .ob-page .vs__option--highlight {
    background: rgba(255,12,129,0.1) !important;
    color: #e2e8f0 !important;
}

html.dark .ob-page .mx-calendar,
html.dark .ob-page .mx-datepicker-popup {
    background: #111 !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}

html.dark .ob-page .mx-table-date td,
html.dark .ob-page .mx-table-date th {
    color: #cbd5e1 !important;
}

/* Clases correctas (las anteriores usaban nombres que no existen en el componente) */
html.dark .ob-filters {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .ob-label {
    color: #64748b !important;
}
html.dark .ob-input {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
    border-color: rgba(255,255,255,0.12) !important;
}
html.dark .ob-input:focus {
    border-color: rgba(232,33,124,0.4) !important;
    background: #1a1a1a !important;
}
html.dark .ob-input option {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}
html.dark .ob-input-icon__icon {
    color: #64748b !important;
}
html.dark .ob-card {
    background: #111 !important;
    border-color: rgba(255,255,255,0.07) !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .ob-card:hover {
    box-shadow: 0 6px 28px rgba(0,0,0,0.6) !important;
}
html.dark .ob-customer {
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .ob-body__bkdate {
    color: #475569 !important;
}
html.dark .ob-order {
    color: #ff6bb5 !important;
}
html.dark .ob-tear__notch {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .ob-pg-ellipsis {
    color: #475569 !important;
}
html.dark .ob-pg-info {
    color: #64748b !important;
}
html.dark .ob-page .ob-datepicker .mx-input {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
    border-color: rgba(255,255,255,0.12) !important;
}
html.dark .ob-page .ob-datepicker .mx-icon-calendar,
html.dark .ob-page .ob-datepicker .mx-icon-clear {
    color: #64748b !important;
}

html.dark .ob-page .mx-calendar-header-label button {
    color: #e2e8f0 !important;
}

/* ============================================================
   TICKET SCAN — TicketScan.vue (.scan-*, .carnet-*, .urc-*)
   ============================================================ */

html.dark .scan-mode-btn:not(.active):hover {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}

html.dark .scan-mode-btn:not(.active) {
    color: #94a3b8 !important;
}

html.dark .scanner-filter-bar {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
    color: #94a3b8 !important;
}

html.dark .scanner-filter-bar--active {
    background: rgba(255,12,129,0.12) !important;
    border-color: rgba(255,12,129,0.3) !important;
    color: #f472b6 !important;
}

html.dark .scan-result-panel {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}

html.dark .scan-result-info {
    background: #0d0d0d !important;
    border-color: rgba(255,255,255,0.06) !important;
}

html.dark .carnet-result-card {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}

html.dark .carnet-result-card.carnet-guest-checked {
    background: rgba(16,185,129,0.08) !important;
}

html.dark .carnet-result-name {
    color: #e2e8f0 !important;
}

html.dark .carnet-result-event {
    color: #cbd5e1 !important;
}

html.dark .carnet-result-notes {
    color: #fbbf24 !important;
    background: rgba(146,64,14,0.2) !important;
}

html.dark .urc-pill--success {
    background: rgba(6,95,70,0.25) !important;
    color: #6ee7b7 !important;
}

html.dark .urc-pill--error {
    background: rgba(153,27,27,0.25) !important;
    color: #fca5a5 !important;
}

html.dark .urc-pill--warning,
html.dark .urc-pill--horario {
    background: rgba(71,85,105,0.25) !important;
    color: #94a3b8 !important;
}

html.dark .urc-pill--carnet {
    background: rgba(30,58,138,0.25) !important;
    color: #93c5fd !important;
}

html.dark .urc-card {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}

html.dark .urc--checked {
    background: rgba(16,185,129,0.07) !important;
}

html.dark .urc-field--event {
    color: #e2e8f0 !important;
}

html.dark .urc-field--notes {
    color: #fbbf24 !important;
    background: rgba(146,64,14,0.18) !important;
}

html.dark .urc-info-box {
    color: #cbd5e1 !important;
    background: #1a1a1a !important;
}

html.dark .guest-result-list {
    background: rgba(190,24,93,0.12) !important;
    color: #f9a8d4 !important;
}

/* ============================================================
   MIS EVENTOS — MyEvents.vue (.pos-*, tabla, dropdown)
   ============================================================ */

html.dark .pos-header {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}

html.dark .pos-title {
    color: #e2e8f0 !important;
}

html.dark .pos-subtitle {
    color: #94a3b8 !important;
}

html.dark .pos-code-chip {
    background: rgba(255,12,129,0.1) !important;
    border-color: rgba(255,12,129,0.2) !important;
    color: #f472b6 !important;
}

html.dark .pos-search-input {
    border-color: rgba(255,255,255,0.1) !important;
    background: #111 !important;
    color: #e2e8f0 !important;
    box-shadow: none !important;
}

html.dark .pos-search-input::placeholder {
    color: #64748b !important;
}

html.dark .pos-empty {
    background: #111 !important;
    color: #64748b !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}

html.dark .pos-empty-icon {
    color: #4b2332 !important;
}

html.dark .pos-card {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}

html.dark .pos-card:hover {
    box-shadow: 0 6px 24px rgba(255,12,129,0.18) !important;
}

html.dark .pos-card-name {
    color: #e2e8f0 !important;
}

html.dark .pos-card-name:hover {
    color: #ff6bb5 !important;
}

html.dark .pos-card-stat {
    color: #94a3b8 !important;
}

html.dark .pos-ref-chip {
    background: rgba(190,24,93,0.12) !important;
    color: #f9a8d4 !important;
}

html.dark .pos-link-row {
    border-color: rgba(255,255,255,0.1) !important;
}

html.dark .pos-link-input {
    background: #0d0d0d !important;
    color: #94a3b8 !important;
}

html.dark .pos-stats-btn {
    background: #111 !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #94a3b8 !important;
}

html.dark .pos-stats-btn:hover {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}

html.dark .pos-stats-panel {
    background: #0d0d0d !important;
    border-color: rgba(255,255,255,0.06) !important;
}

html.dark .pos-stats-head {
    color: #64748b !important;
}

html.dark .pos-stats-row {
    color: #cbd5e1 !important;
    border-bottom-color: rgba(255,255,255,0.05) !important;
}

html.dark .pos-stats-total {
    border-top-color: rgba(255,255,255,0.08) !important;
}

html.dark .pos-stats-empty {
    color: #64748b !important;
}

html.dark .pos-card-footer {
    border-top-color: rgba(255,255,255,0.06) !important;
}

html.dark .pos-event-chip {
    background: rgba(190,24,93,0.12) !important;
    color: #f9a8d4 !important;
}

/* Modal suborg */
html.dark .suborg-modal-dialog {
    background: #111 !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
}

html.dark .suborg-modal-body {
    color: #e2e8f0 !important;
}

/* Dropdown de acciones en tabla de eventos */
html.dark .custom-dropdown .dropdownmenu {
    background: #111 !important;
    border-color: rgba(255,255,255,0.1) !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.6) !important;
}

html.dark .custom-dropdown .dropdownmenu li a {
    color: #cbd5e1 !important;
}

html.dark .custom-dropdown .dropdownmenu li a:hover {
    background-color: #1a1a1a !important;
    color: #e2e8f0 !important;
}

html.dark .custom-dropdown .dropdownmenu li a.btn-dark {
    color: #94a3b8 !important;
}

html.dark .custom-dropdown .dropdownmenu li a.btn-dark:hover {
    background-color: #1a1a1a !important;
    color: #e2e8f0 !important;
}

/* Tabla responsive — fondo oscuro */
html.dark .table-responsive {
    background-color: #000 !important;
}

/* Mobile MyEvents — tarjetas de fila */
@media (max-width: 768px) {
    html.dark .table tbody tr {
        background: #1a1a1a !important;
        border-color: rgba(255,255,255,0.1) !important;
    }
    html.dark .table tbody tr td {
        border-bottom-color: rgba(255,255,255,0.06) !important;
    }
    html.dark .table tbody tr td::before {
        color: #64748b !important;
    }
}

/* ============================================================
   DASHBOARD BLADE — fondos de circulos de icono y badges
   ============================================================ */

/* Círculos de icono rosa (dashboard stats) */
html.dark [style*="background:#fce4f0"],
html.dark [style*="background: #fce4f0"] {
    background: rgba(255,12,129,0.12) !important;
}

/* Círculos de icono verde */
html.dark [style*="background:#ecfdf5"],
html.dark [style*="background: #ecfdf5"],
html.dark [style*="background:#e8f5e9"],
html.dark [style*="background: #e8f5e9"] {
    background: rgba(16,185,129,0.1) !important;
}

/* Círculos de icono morado */
html.dark [style*="background:#ede9fe"],
html.dark [style*="background: #ede9fe"] {
    background: rgba(124,58,237,0.12) !important;
}

/* Color violeta (avg por ticket) — más visible en fondo oscuro */
html.dark [style*="color:#7c3aed"] {
    color: #c4b5fd !important;
}

/* Badge azul claro (estado online en tabla) */
html.dark [style*="background:rgba(59,130,246,.1)"] {
    background: rgba(59,130,246,0.15) !important;
}

html.dark [style*="color:#2563eb"] {
    color: #93c5fd !important;
}

/* Filas alternas y headers f8f9fa en HTML generado por JS */
html.dark [style*="background:#f8f9fa"],
html.dark [style*="background: #f8f9fa"] {
    background: #0d0d0d !important;
    color: inherit !important;
}

/* background:#fafafa */
html.dark [style*="background:#fafafa"],
html.dark [style*="background: #fafafa"] {
    background: #0d0d0d !important;
}

/* background: white / background:white en HTML generado */
html.dark [style*="background: white"],
html.dark [style*="background:white"] {
    background: #111 !important;
}

/* Tarjeta tour fecha en modal (tour picker) */
html.dark [style*="background:#fff5f8"] {
    background: rgba(255,12,129,0.06) !important;
}

/* Bordes #f3f4f6 en HTML generado */
html.dark [style*="border-color:#f3f4f6"] {
    border-color: rgba(255,255,255,0.06) !important;
}

/* border: 1px solid #dee2e6 en HTML generado (preview tabla cortesías) */
html.dark [style*="border: 1px solid #dee2e6"],
html.dark [style*="border:1px solid #dee2e6"] {
    border-color: rgba(255,255,255,0.1) !important;
}

/* background:white thead sticky (tabla preview cortesías) */
html.dark thead[style*="background: white"],
html.dark thead[style*="background:white"] {
    background: #111 !important;
}

/* Separadores de filas en HTML generado */
html.dark [style*="border-bottom: 1px solid #eee"],
html.dark [style*="border-bottom:1px solid #eee"] {
    border-bottom-color: rgba(255,255,255,0.06) !important;
}

html.dark [style*="border: 1px solid #eee"],
html.dark [style*="border:1px solid #eee"] {
    border-color: rgba(255,255,255,0.06) !important;
}

/* border-bottom:#f0f0f0 (phone options, table rows, etc.) */
html.dark [style*="border-bottom:1px solid #f0f0f0"],
html.dark [style*="border-bottom: 1px solid #f0f0f0"] {
    border-bottom-color: rgba(255,255,255,0.05) !important;
}

/* ============================================================
   V-SELECT — override global (profile, formulario de evento)
   ============================================================ */

html.dark .vs__dropdown-toggle {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.12) !important;
    color: #e2e8f0 !important;
}

html.dark .vs__dropdown-toggle:focus-within {
    border-color: rgba(255,12,129,0.4) !important;
}

html.dark .vs__search {
    color: #e2e8f0 !important;
}

html.dark .vs__search::placeholder {
    color: #64748b !important;
}

html.dark .vs__selected {
    color: #e2e8f0 !important;
}

html.dark .vs__clear,
html.dark .vs__open-indicator {
    color: #64748b !important;
}

html.dark .vs__dropdown-menu {
    background: #111 !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}

html.dark .vs__dropdown-option {
    color: #cbd5e1 !important;
}

html.dark .vs__dropdown-option--highlight {
    background: rgba(232,33,124,0.15) !important;
    color: #e2e8f0 !important;
}

html.dark .vs__dropdown-option--selected {
    background: rgba(232,33,124,0.1) !important;
    color: #f472b6 !important;
}

html.dark .vs__dropdown-option--disabled {
    color: #475569 !important;
}

/* ============================================================
   MIS RESERVAS — MyBooking.vue (.bk-*)
   ============================================================ */

html.dark .bk-page {
    background: #000 !important;
}

html.dark .bk-page .vs__dropdown-toggle {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.12) !important;
}

html.dark .bk-filters {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}

html.dark .bk-label {
    color: #64748b !important;
}

html.dark .bk-reset-btn {
    background: #111 !important;
    color: #94a3b8 !important;
    border-color: rgba(255,255,255,0.12) !important;
}

html.dark .bk-reset-btn:hover {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}

html.dark .bk-card {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}

html.dark .bk-card:hover {
    box-shadow: 0 8px 28px rgba(0,0,0,0.6) !important;
}

html.dark .bk-body__ticket {
    color: #cbd5e1 !important;
}

html.dark .bk-body__price {
    color: #e2e8f0 !important;
}

html.dark .bk-body__currency {
    color: #94a3b8 !important;
}

/* Tags de estado (customer bookings) */
html.dark .bk-tag--online {
    background: rgba(46,125,50,0.18) !important;
    color: #86efac !important;
}

html.dark .bk-tag--offline {
    background: rgba(100,116,139,0.18) !important;
    color: #94a3b8 !important;
}

html.dark .bk-tag--unpaid {
    background: rgba(230,81,0,0.18) !important;
    color: #fdba74 !important;
}

html.dark .bk-tag--checkin {
    background: rgba(21,101,192,0.18) !important;
    color: #93c5fd !important;
}

html.dark .bk-tag--pending {
    background: rgba(230,81,0,0.15) !important;
    color: #fbbf24 !important;
}

html.dark .bk-tag--cancelled {
    background: rgba(198,40,40,0.18) !important;
    color: #fca5a5 !important;
}

html.dark .bk-tag--refunded {
    background: rgba(46,125,50,0.15) !important;
    color: #86efac !important;
}

html.dark .bk-tag--reward {
    background: rgba(255,12,129,0.15) !important;
    color: #f472b6 !important;
}

/* Tear separator en tarjeta de reserva */
html.dark .bk-tear {
    border-top-color: rgba(255,255,255,0.08) !important;
}

html.dark .bk-tear__notch {
    background: #000 !important;
    border-color: rgba(255,255,255,0.08) !important;
}

html.dark .bk-actions__cal {
    border-top-color: rgba(255,255,255,0.06) !important;
}

html.dark .bk-btn {
    border-color: rgba(255,255,255,0.18) !important;
    color: #94a3b8 !important;
}

html.dark .bk-btn--cal {
    border-color: rgba(255,255,255,0.14) !important;
    color: #64748b !important;
}

html.dark .bk-empty__icon {
    color: #334155 !important;
}

html.dark .bk-empty__text {
    color: #64748b !important;
}

/* ============================================================
   FORMULARIO DE EVENTO — EventFormPage.vue
   ============================================================ */

html.dark .event-summary-bar {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.5) !important;
}

html.dark .summary-thumb--empty {
    background: #1a1a1a !important;
    color: #475569 !important;
}

html.dark .summary-event-name {
    color: #e2e8f0 !important;
}

html.dark .summary-chip {
    color: #64748b !important;
}

html.dark .summary-chip i {
    color: #334155 !important;
}

html.dark .summary-stat-value {
    color: #e2e8f0 !important;
}

html.dark .summary-stat-label {
    color: #64748b !important;
}

html.dark .section-group-label {
    color: #475569 !important;
}

html.dark .accordion-section {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}

html.dark .accordion-section.section-open {
    border-color: rgba(232,33,124,0.25) !important;
}

html.dark .accordion-header:hover {
    background: #1a1a1a !important;
}

html.dark .section-open .accordion-header {
    border-bottom-color: rgba(255,255,255,0.06) !important;
}

html.dark .section-title {
    color: #e2e8f0 !important;
}

html.dark .accordion-chevron {
    color: #64748b !important;
}

html.dark .section-status-bar {
    border-bottom-color: rgba(255,255,255,0.05) !important;
}

html.dark .sections-locked {
    background: #0d0d0d !important;
    border-color: rgba(255,255,255,0.12) !important;
    color: #94a3b8 !important;
}

/* Selector de tipo de evento */
html.dark .type-selector-title {
    color: #e2e8f0 !important;
}

html.dark .type-selector-subtitle {
    color: #94a3b8 !important;
}

html.dark .type-card {
    background: #111 !important;
    border-color: rgba(255,255,255,0.1) !important;
}

html.dark .type-card:hover {
    border-color: rgba(232,33,124,0.5) !important;
}

html.dark .type-card--tour {
    border-color: rgba(124,58,237,0.3) !important;
}

html.dark .type-card--tour:hover {
    border-color: rgba(124,58,237,0.6) !important;
}

html.dark .type-card-name {
    color: #e2e8f0 !important;
}

html.dark .type-card-desc {
    color: #94a3b8 !important;
}

/* ============================================================
   GESTIÓN DE TICKETS — Tickets.vue (.ticket-card-*)
   ============================================================ */

html.dark .ticket-card {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
    border-left-color: #e8217c !important;
}

html.dark .ticket-card-header {
    border-bottom-color: rgba(255,255,255,0.06) !important;
}

html.dark .ticket-card-title {
    color: #e2e8f0 !important;
}

html.dark .ticket-card-label {
    color: #64748b !important;
}

html.dark .ticket-card-value {
    color: #cbd5e1 !important;
}

html.dark .ticket-progress-container {
    background: #0d0d0d !important;
}

html.dark .ticket-progress-label {
    color: #64748b !important;
}

html.dark .ticket-progress-text {
    color: #e2e8f0 !important;
}

html.dark .progress {
    background-color: #1a1a1a !important;
}

/* ============================================================
   PERFIL — OrganiserInfo.vue / SellerInfo.vue (.oi-*, .si-*)
   ============================================================ */

html.dark .oi-img-preview-wrap,
html.dark .oi-avatar-preview,
html.dark .oi-cover-preview-wrap,
html.dark .oi-slide-preview-wrap {
    border-color: rgba(255,255,255,0.1) !important;
    background: #1a1a1a !important;
}

html.dark .oi-cover-placeholder,
html.dark .oi-slide-delete-btn {
    background: #1a1a1a !important;
    color: #475569 !important;
}

html.dark .oi-crop-box {
    background: #111 !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
}

html.dark .oi-crop-title {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.08) !important;
    color: #e2e8f0 !important;
}

html.dark .oi-crop-actions {
    background: #0d0d0d !important;
    border-top-color: rgba(255,255,255,0.08) !important;
}

/* SellerInfo: firma / imagen */
html.dark .si-sig-preview-wrap {
    border-color: rgba(255,255,255,0.12) !important;
    background: #1a1a1a !important;
}

html.dark .si-sig-placeholder {
    color: #475569 !important;
}

/* ============================================================
   MAILING — mis_plantillas.blade.php
   ============================================================ */

html.dark .tpl-thumb {
    background: #1a1a1a !important;
}

html.dark #campModalLinks {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.08) !important;
}

/* ============================================================
   MODAL VER RESERVA — ViewBookingModal.vue (.vbm-*)
   ============================================================ */

html.dark .vbm-dialog {
    background: #111 !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
}

html.dark .vbm-content {
    background: #111 !important;
}

html.dark .vbm-header {
    background: #0d0d0d !important;
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
}

html.dark .vbm-title {
    color: #e2e8f0 !important;
}

html.dark .vbm-close {
    color: #94a3b8 !important;
}

html.dark .vbm-close:hover {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}

html.dark .vbm-body {
    background: #000 !important;
}

html.dark .vbm-section {
    background: #111 !important;
    border: 1px solid rgba(255,255,255,0.06) !important;
}

html.dark .vbm-section-title {
    color: #94a3b8 !important;
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
}

html.dark .vbm-label {
    color: #94a3b8 !important;
}

html.dark .vbm-val {
    color: #e2e8f0 !important;
}

html.dark .vbm-val--strong {
    color: #f1f5f9 !important;
}

html.dark .vbm-badge--active,
html.dark .vbm-badge--paid {
    background: rgba(27,94,32,0.2) !important;
    color: #86efac !important;
}

html.dark .vbm-badge--inactive {
    background: rgba(100,116,139,0.18) !important;
    color: #94a3b8 !important;
}

html.dark .vbm-badge--unpaid {
    background: rgba(230,81,0,0.18) !important;
    color: #fdba74 !important;
}

html.dark .vbm-attendee {
    background: #0d0d0d !important;
    border: 1px solid rgba(255,255,255,0.05) !important;
}

html.dark .vbm-attendee-name {
    color: #e2e8f0 !important;
}

html.dark .vbm-attendee-meta {
    color: #94a3b8 !important;
}

/* ============================================================
   MIS EVENTOS — SubOrganizers.vue (modal add vendedores)
   Scoped CSS no alcanzado por dark-mode.css sin !important
   ============================================================ */
html.dark .suborg-list {
    background: #0d0d0d !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .suborg-row {
    border-bottom-color: rgba(255,255,255,0.05) !important;
    color: #e2e8f0 !important;
}
html.dark .suborg-row:hover {
    background: rgba(255,255,255,0.04) !important;
}
html.dark .suborg-row--checked {
    background: rgba(255,12,129,0.08) !important;
}
html.dark .suborg-row--checked:hover {
    background: rgba(255,12,129,0.12) !important;
}
html.dark .suborg-email {
    color: #64748b !important;
}
html.dark .suborg-name {
    color: #e2e8f0 !important;
}

/* ============================================================
   MIS EVENTOS — Courtesy stat boxes (modal cortesías)
   ============================================================ */
html.dark .courtesy-stat-box {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}
html.dark .courtesy-stat-box.success {
    background: rgba(34,197,94,0.08) !important;
}
html.dark .courtesy-stat-box.warning {
    background: rgba(245,158,11,0.08) !important;
}
html.dark .courtesy-stat-box.error {
    background: rgba(239,68,68,0.08) !important;
}
html.dark .courtesy-stat-number {
    color: #f1f5f9 !important;
}
html.dark .courtesy-stat-label {
    color: #64748b !important;
}

/* background-color inline (checkins table alternating rows & courtesy) */
html.dark [style*="background-color: #f8f9fa"],
html.dark [style*="background-color:#f8f9fa"] {
    background-color: #0d0d0d !important;
}
html.dark [style*="background-color: #f0f8ff"],
html.dark [style*="background-color:#f0f8ff"] {
    background-color: rgba(59,130,246,0.06) !important;
}

/* Tour fecha selector day header */
html.dark [style*="background:#fff5f8"],
html.dark [style*="background: #fff5f8"] {
    background: rgba(255,12,129,0.06) !important;
}

/* ============================================================
   FORM-SWITCH (toggle) — knob invisible fix
   Bootstrap usa un SVG oscuro por defecto (rgba(0,0,0,0.25))
   que se vuelve invisible sobre un fondo oscuro
   ============================================================ */
html.dark .form-switch .form-check-input {
    --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255%2c255%2c255%2c0.65%29'/%3e%3c/svg%3e") !important;
    background-color: rgba(255,255,255,0.15) !important;
    border-color: rgba(255,255,255,0.3) !important;
}
html.dark .form-switch .form-check-input:checked {
    --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") !important;
    background-color: #ff1b7f !important;
    border-color: #ff1b7f !important;
}
html.dark .form-switch .form-check-input:disabled {
    opacity: 0.45 !important;
}

/* ============================================================
   MANAGE EVENTO — Location.vue (venue preview & search)
   ============================================================ */
html.dark .loc-label {
    color: #e2e8f0 !important;
}
html.dark .venue-preview-card {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .venue-preview-img {
    background: #1a1a1a !important;
}
html.dark .venue-preview-img--empty {
    color: #334155 !important;
}
html.dark .venue-preview-title {
    color: #e2e8f0 !important;
}
html.dark .venue-preview-address {
    color: #94a3b8 !important;
}
html.dark .venue-preview-capacity {
    color: #64748b !important;
}
html.dark .venue-preview-capacity i {
    color: #334155 !important;
}
html.dark .venue-preview-map-wrap {
    background: #1a1a1a !important;
}
html.dark .venue-opt-thumb {
    background: #1a1a1a !important;
}
html.dark .venue-opt-thumb--empty {
    color: #334155 !important;
}
html.dark .venue-opt-title {
    color: #e2e8f0 !important;
}
html.dark .google-search-box {
    background: rgba(59,130,246,0.06) !important;
    border-color: rgba(59,130,246,0.2) !important;
}
html.dark .no-result-hint {
    color: #94a3b8 !important;
}

/* ============================================================
   MANAGE EVENTO — Media.vue (image upload cards)
   ============================================================ */
html.dark .img-upload-card {
    background: #111 !important;
    border-color: rgba(255,255,255,0.12) !important;
}
html.dark .img-upload-card:hover {
    border-color: rgba(232,33,124,0.5) !important;
    box-shadow: 0 2px 12px rgba(232,33,124,0.12) !important;
}
html.dark .img-upload-card.has-image {
    border-color: rgba(255,255,255,0.12) !important;
    border-style: solid !important;
}
html.dark .image-preview-wrapper {
    background-color: #1a1a1a !important;
}

/* ============================================================
   MANAGE EVENTO — TourFecha.vue (fecha cards & panel modal)
   ============================================================ */
html.dark .tour-fechas-empty {
    background: #111 !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #94a3b8 !important;
}
html.dark .tour-fecha-grupo-header {
    background: #1a1a1a !important;
    color: #94a3b8 !important;
}
html.dark .tf-card {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
    border-left-color: #e8217c !important;
}
html.dark .tf-card-hora {
    color: #e2e8f0 !important;
}
html.dark .tf-card-lugar {
    color: #94a3b8 !important;
}
html.dark .tf-card-pendiente {
    color: #334155 !important;
}
html.dark .tf-panel {
    background: #111 !important;
    box-shadow: 0 24px 60px rgba(0,0,0,0.7) !important;
}
html.dark .tf-panel-head {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .tf-panel-title {
    color: #e2e8f0 !important;
}
html.dark .tf-close-btn:hover {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}
html.dark .tf-panel-footer {
    border-top-color: rgba(255,255,255,0.06) !important;
    background: #0d0d0d !important;
}
html.dark .tf-label {
    color: #64748b !important;
}
html.dark .tf-autosave-status {
    color: #64748b !important;
}

/* ============================================================
   MANAGE EVENTO — TourPricing.vue (pricing cards & panel)
   ============================================================ */
html.dark .tp-grupo-header {
    background: #1a1a1a !important;
    color: #94a3b8 !important;
}
html.dark .fecha-card {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .fecha-card--ok {
    border-color: rgba(34,197,94,0.4) !important;
}
html.dark .fecha-card-head {
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .fecha-card-date {
    color: #e2e8f0 !important;
}
html.dark .fecha-card-place {
    color: #94a3b8 !important;
}
html.dark .fecha-ticket-row {
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .fecha-ticket-name {
    color: #e2e8f0 !important;
}
html.dark .fecha-no-tickets {
    color: #64748b !important;
}
html.dark .tp-panel {
    background: #111 !important;
    box-shadow: 0 24px 60px rgba(0,0,0,0.7) !important;
}
html.dark .tp-panel-head {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .tp-panel-title {
    color: #e2e8f0 !important;
}
html.dark .tp-close-btn:hover {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}

/* ============================================================
   MANAGE EVENTO — ImageCropper.vue (modal recorte de imágenes)
   ============================================================ */
html.dark .img-cropper-modal {
    background: #111 !important;
    box-shadow: 0 20px 60px rgba(0,0,0,0.7) !important;
}
html.dark .img-cropper-header {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.08) !important;
}
html.dark .img-cropper-header h5 {
    color: #e2e8f0 !important;
}
html.dark .btn-cropper-close {
    color: #94a3b8 !important;
}
html.dark .btn-cropper-close:hover {
    color: #e2e8f0 !important;
    background: #1a1a1a !important;
}
html.dark .img-cropper-body {
    background: #111 !important;
}
html.dark .img-cropper-dropzone {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.12) !important;
}
html.dark .img-cropper-dropzone:hover {
    background: rgba(232,33,124,0.05) !important;
    border-color: rgba(232,33,124,0.45) !important;
}
html.dark .img-cropper-footer {
    background: #0d0d0d !important;
    border-top-color: rgba(255,255,255,0.08) !important;
}

/* ============================================================
   TICKET SCAN — TicketScan.vue
   ============================================================ */

/* Último escaneo (tarjeta compacta) */
html.dark .scan-last-result {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
    border-left-color: #e8217c !important;
}
html.dark .scan-last-customer { color: #94a3b8 !important; }
html.dark .scan-last-ticket   { color: #e2e8f0 !important; }
html.dark .scan-last-price    { color: #34d399 !important; }

/* Toggle Reservas / Listas */
html.dark .scan-mode-toggle {
    border-color: rgba(255,255,255,0.1) !important;
}
html.dark .scan-mode-btn {
    background: #111 !important;
    color: #94a3b8 !important;
}
html.dark .scan-mode-btn:first-child {
    border-right-color: rgba(255,255,255,0.1) !important;
}
html.dark .scan-mode-btn:not(.active):hover {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}
html.dark .scan-mode-btn.active {
    background: linear-gradient(135deg, #e8217c, #ff0c81) !important;
    color: #fff !important;
}

/* Barra de filtro */
html.dark .scanner-filter-bar {
    border-color: rgba(255,255,255,0.1) !important;
}
html.dark .scanner-filter-bar--empty {
    background: #111 !important;
    color: #94a3b8 !important;
}
html.dark .scanner-filter-bar--empty:hover {
    background: #1a1a1a !important;
}
html.dark .scanner-filter-bar--active {
    background: rgba(232,33,124,0.1) !important;
    border-color: rgba(232,33,124,0.3) !important;
    color: #f9a8d4 !important;
}

/* Panel de filtro expandido */
html.dark .scanner-filter-panel {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
    box-shadow: 0 3px 12px rgba(0,0,0,0.5) !important;
}
html.dark .filter-ticket-list {
    background: #0d0d0d !important;
    border-color: rgba(255,255,255,0.08) !important;
}

/* Modal de feedback (inner white box) */
html.dark .scan-feedback-modal {
    background: #111 !important;
    box-shadow: 0 10px 40px rgba(0,0,0,0.6) !important;
}
html.dark .feedback-title {
    color: #f1f5f9 !important;
}
html.dark .feedback-ticket-info {
    color: #e2e8f0 !important;
    background: #1a1a1a !important;
}
html.dark .feedback-detalle {
    color: #94a3b8 !important;
}
html.dark .info-row {
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .info-row strong { color: #94a3b8 !important; }
html.dark .info-row span   { color: #e2e8f0 !important; }

/* Type pills (dentro del modal) */
html.dark .urc-pill--success    { background: rgba(34,197,94,0.15) !important;  color: #86efac !important; }
html.dark .urc-pill--error      { background: rgba(239,68,68,0.15) !important;  color: #fca5a5 !important; }
html.dark .urc-pill--warning    { background: rgba(100,116,139,0.2) !important; color: #94a3b8 !important; }
html.dark .urc-pill--horario    { background: rgba(100,116,139,0.2) !important; color: #94a3b8 !important; }
html.dark .urc-pill--carnet     { background: rgba(59,130,246,0.15) !important; color: #93c5fd !important; }
html.dark .urc-pill--reservas_rut { background: rgba(34,197,94,0.15) !important; color: #86efac !important; }

/* URC (Unified Result Card) — tarjeta de reserva dentro del modal */
html.dark .urc {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .urc--checked {
    background: rgba(34,197,94,0.08) !important;
    border-color: rgba(34,197,94,0.25) !important;
}
html.dark .urc-primary        { color: #f1f5f9 !important; }
html.dark .urc-field          { color: #cbd5e1 !important; }
html.dark .urc-field i        { color: #475569 !important; }
html.dark .urc-field--event   { color: #e2e8f0 !important; }
html.dark .urc-field--muted   { color: #64748b !important; }
html.dark .urc-field--checked { color: #34d399 !important; }
html.dark .urc-field--notes {
    color: #fbbf24 !important;
    background: rgba(245,158,11,0.1) !important;
}
html.dark .urc-searching { color: #94a3b8 !important; }
html.dark .urc-empty     { color: #f87171 !important; }
html.dark .urc-date      { color: #64748b !important; }

/* Sección de búsqueda de invitados/reservas */
html.dark .guest-search-section {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .guest-search-body {
    background: #111 !important;
}

/* Tarjeta de resultado de búsqueda */
html.dark .guest-result-card {
    border-color: rgba(255,255,255,0.06) !important;
    background: #111 !important;
}
html.dark .guest-result-card:hover {
    background: #1a1a1a !important;
}
html.dark .guest-checked {
    background: rgba(34,197,94,0.08) !important;
    border-color: rgba(34,197,94,0.2) !important;
}
html.dark .guest-result-name  { color: #f1f5f9 !important; }
html.dark .guest-result-doc   { color: #64748b !important; }
html.dark .guest-result-event { color: #e2e8f0 !important; }
html.dark .guest-result-list  { color: #94a3b8 !important; }
html.dark .guest-result-checkin-time { color: #34d399 !important; }
html.dark .guest-result-notes { color: #fbbf24 !important; }
html.dark .guest-result-reward { color: #c4b5fd !important; }
html.dark .guest-doc-type {
    background: #1a1a1a !important;
    color: #64748b !important;
}
html.dark .guest-reward-badge {
    background: rgba(232,33,124,0.1) !important;
    color: #f9a8d4 !important;
}

/* Tarjetas de resultado carnet */
html.dark .carnet-result-card {
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .carnet-result-card.carnet-guest-checked {
    background: rgba(34,197,94,0.06) !important;
}
html.dark .carnet-result-name  { color: #f1f5f9 !important; }
html.dark .carnet-result-event { color: #e2e8f0 !important; }
html.dark .carnet-result-list  { color: #94a3b8 !important; }
html.dark .carnet-result-reward { color: #c4b5fd !important; }
html.dark .carnet-result-notes {
    color: #fbbf24 !important;
    background: rgba(245,158,11,0.1) !important;
}
html.dark .carnet-result-checkin-time { color: #34d399 !important; }
html.dark .carnet-not-found    { color: #f87171 !important; }
html.dark .carnet-searching    { color: #94a3b8 !important; }

/* ============================================================
   CORTESÍAS — dashboard.blade.php (CSS global en @section head)
   ============================================================ */

/* Header */
html.dark .cort-header {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .cort-title    { color: #e2e8f0 !important; }
html.dark .cort-subtitle { color: #64748b !important; }
html.dark .cort-btn-new.open {
    background: #1a1a1a !important;
    color: #94a3b8 !important;
    box-shadow: none !important;
}

/* Wizard panel */
html.dark .cort-wizard {
    background: #111 !important;
    border-color: rgba(255,255,255,0.07) !important;
    box-shadow: 0 2px 16px rgba(0,0,0,0.4) !important;
}
html.dark .wizard-steps {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .wizard-step { color: #475569 !important; }
html.dark .wizard-step.done { color: #34d399 !important; }
html.dark .ws-num {
    background: #1a1a1a !important;
    color: #64748b !important;
}
html.dark .wizard-field label { color: #94a3b8 !important; }
html.dark .wizard-select {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
    border-color: rgba(255,255,255,0.12) !important;
}
html.dark .wizard-select:disabled {
    background: #0d0d0d !important;
    color: #475569 !important;
}
html.dark .wizard-select option {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}

/* Cuota disponible */
html.dark .wizard-quota {
    background: rgba(34,197,94,0.07) !important;
    border-color: rgba(34,197,94,0.2) !important;
}
html.dark .wizard-quota.warn {
    background: rgba(245,158,11,0.07) !important;
    border-color: rgba(245,158,11,0.2) !important;
}
html.dark .wizard-quota.danger {
    background: rgba(239,68,68,0.07) !important;
    border-color: rgba(239,68,68,0.2) !important;
}
html.dark .quota-label { color: #94a3b8 !important; }

/* Toolbar destinatarios */
html.dark .dest-label { color: #cbd5e1 !important; }
html.dark .dest-count { color: #475569 !important; }
html.dark .wt-btn {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #94a3b8 !important;
}
html.dark .wt-btn:hover {
    background: #222 !important;
    border-color: rgba(255,255,255,0.15) !important;
    color: #e2e8f0 !important;
}
html.dark .wt-btn--pink {
    background: rgba(232,33,124,0.08) !important;
    border-color: rgba(232,33,124,0.2) !important;
    color: #f9a8d4 !important;
}
html.dark .wt-btn--pink:hover {
    background: rgba(232,33,124,0.14) !important;
}
html.dark .wt-btn--green {
    background: rgba(34,197,94,0.07) !important;
    border-color: rgba(34,197,94,0.2) !important;
    color: #86efac !important;
}
html.dark .wt-btn--green:hover {
    background: rgba(34,197,94,0.12) !important;
}

/* Tabla de filas */
html.dark .wizard-rows-wrap {
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .wizard-rows-table thead th {
    background: #0d0d0d !important;
    color: #64748b !important;
    border-bottom-color: rgba(255,255,255,0.08) !important;
}
html.dark .wizard-rows-table tbody tr {
    border-bottom-color: rgba(255,255,255,0.04) !important;
}
html.dark .wizard-rows-table tbody tr:hover td {
    background: rgba(255,255,255,0.03) !important;
}
html.dark .td-num { color: #475569 !important; }
html.dark .row-input {
    color: #e2e8f0 !important;
}
html.dark .row-input:focus {
    background: #1a1a1a !important;
    border-color: rgba(232,33,124,0.5) !important;
}
html.dark .row-input.email-invalid {
    border-color: #ef4444 !important;
    background: rgba(239,68,68,0.07) !important;
}
html.dark .row-del-btn { color: #334155 !important; }
html.dark .row-del-btn:hover {
    color: #f87171 !important;
    background: rgba(239,68,68,0.1) !important;
}
html.dark .wizard-rows-empty {
    color: #475569 !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .wizard-rows-empty i { color: #334155 !important; }

/* Wizard actions */
html.dark .wizard-actions {
    border-top-color: rgba(255,255,255,0.06) !important;
}
html.dark .wizard-btn--ghost {
    background: #1a1a1a !important;
    color: #94a3b8 !important;
}
html.dark .wizard-btn--ghost:hover {
    background: #222 !important;
    color: #e2e8f0 !important;
}

/* Preview chips */
html.dark .preview-chip--ok   { background: rgba(34,197,94,0.12) !important;   color: #86efac !important; }
html.dark .preview-chip--warn { background: rgba(245,158,11,0.12) !important;  color: #fbbf24 !important; }
html.dark .preview-chip--err  { background: rgba(239,68,68,0.12) !important;   color: #fca5a5 !important; }
html.dark .preview-chip--info { background: rgba(139,92,246,0.12) !important;  color: #c4b5fd !important; }

/* Preview table */
html.dark .preview-table th {
    background: #0d0d0d !important;
    color: #64748b !important;
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .preview-table td {
    border-bottom-color: rgba(255,255,255,0.04) !important;
    color: #cbd5e1 !important;
}
html.dark .prev-qty-badge {
    background: rgba(232,33,124,0.12) !important;
    color: #f9a8d4 !important;
}
html.dark .prev-already {
    background: rgba(245,158,11,0.1) !important;
    color: #fbbf24 !important;
}
html.dark .preview-errors-box {
    background: rgba(239,68,68,0.07) !important;
    border-color: rgba(239,68,68,0.2) !important;
}
html.dark .preview-errors-title { color: #fca5a5 !important; }
html.dark .preview-err-item     { color: #f87171 !important; }

/* Batch progress card */
html.dark .cort-batch-card {
    background: #111 !important;
    border-color: rgba(255,255,255,0.07) !important;
    box-shadow: 0 2px 16px rgba(0,0,0,0.4) !important;
}
html.dark .batch-header {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .batch-title    { color: #e2e8f0 !important; }
html.dark .batch-subtitle { color: #64748b !important; }
html.dark .batch-close-btn { color: #64748b !important; }
html.dark .batch-close-btn:hover {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}
html.dark .batch-progress-track   { background: #1a1a1a !important; }
html.dark .batch-progress-label   { color: #64748b !important; }
html.dark .batch-chip--ok  { background: rgba(34,197,94,0.12) !important;  color: #86efac !important; }
html.dark .batch-chip--err { background: rgba(239,68,68,0.12) !important;  color: #fca5a5 !important; }
html.dark .batch-chip--rem { background: #1a1a1a !important; color: #64748b !important; }
html.dark .batch-email-list  { border-top-color: rgba(255,255,255,0.06) !important; }
html.dark .batch-email-row   { border-bottom-color: rgba(255,255,255,0.04) !important; }
html.dark .batch-email-addr  { color: #cbd5e1 !important; }
html.dark .batch-email-qty   { color: #475569 !important; }
html.dark .batch-errors-panel {
    background: rgba(239,68,68,0.07) !important;
    border-top-color: rgba(239,68,68,0.2) !important;
}
html.dark .batch-errors-title { color: #fca5a5 !important; }
html.dark .batch-err-item     { color: #f87171 !important; }
html.dark .batch-cancel-btn {
    background: rgba(239,68,68,0.1) !important;
    border-color: rgba(239,68,68,0.25) !important;
    color: #fca5a5 !important;
}
html.dark .batch-cancel-btn:hover {
    background: rgba(239,68,68,0.18) !important;
}

/* Filtro de evento */
html.dark .cort-filter {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .cort-filter label { color: #94a3b8 !important; }
html.dark .cort-filter select {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.12) !important;
    color: #e2e8f0 !important;
}
html.dark .cort-filter select option {
    background: #1a1a1a !important;
}

/* Stat cards */
html.dark .cort-stat-card {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .cort-stat-card:hover {
    box-shadow: 0 6px 24px rgba(255,12,129,0.15) !important;
}
html.dark .cort-stat-value { color: #f1f5f9 !important; }
html.dark .cort-stat-label { color: #64748b !important; }

/* Grupos de historial */
html.dark .hist-group {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .hist-group:hover {
    box-shadow: 0 4px 20px rgba(255,12,129,0.1) !important;
}
html.dark .hist-group-header:hover { background: rgba(255,255,255,0.02) !important; }
html.dark .hist-group-name  { color: #e2e8f0 !important; }
html.dark .hist-group-meta  { color: #475569 !important; }
html.dark .hist-group-count {
    background: rgba(232,33,124,0.1) !important;
    color: #f9a8d4 !important;
}
html.dark .hist-toggle-icon { color: #475569 !important; }
html.dark .hist-group-body  { border-top-color: rgba(255,255,255,0.06) !important; }

/* Tabla de detalle del grupo */
html.dark .hist-detail-table thead th {
    background: rgba(232,33,124,0.06) !important;
    color: #f9a8d4 !important;
    border-bottom-color: rgba(232,33,124,0.12) !important;
}
html.dark .hist-detail-table tbody tr {
    border-bottom-color: rgba(255,255,255,0.04) !important;
}
html.dark .hist-detail-table tbody tr:hover td {
    background: rgba(255,255,255,0.02) !important;
}
html.dark .hist-detail-table td { color: #cbd5e1 !important; }

/* Badges de estado */
html.dark .badge-sent {
    background: rgba(34,197,94,0.12) !important;
    color: #86efac !important;
}
html.dark .badge-used {
    background: rgba(139,92,246,0.12) !important;
    color: #c4b5fd !important;
}
html.dark .badge-cancelled {
    background: #1a1a1a !important;
    color: #475569 !important;
}

/* Búsqueda dentro del grupo */
html.dark .group-search-wrap {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .group-search-input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}
html.dark .group-search-input:focus {
    border-color: rgba(232,33,124,0.4) !important;
}
html.dark .group-footer {
    background: #0d0d0d !important;
    border-top-color: rgba(255,255,255,0.06) !important;
}
html.dark .group-footer-info { color: #475569 !important; }
html.dark .group-loadmore {
    background: rgba(232,33,124,0.07) !important;
    border-color: rgba(232,33,124,0.18) !important;
    color: #f9a8d4 !important;
}
html.dark .group-loadmore:hover {
    background: rgba(232,33,124,0.12) !important;
}

/* Empty / Loading */
html.dark .cort-empty   { color: #475569 !important; }
html.dark .cort-empty i { color: rgba(232,33,124,0.3) !important; }
html.dark .cort-loading { color: #64748b !important; }

/* ============================================================
   MY TAGS — Tags.vue + Tag.vue (scoped → !important)
   ============================================================ */

/* Tags.vue — Header */
html.dark .tl-header {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .tl-header-title { color: #e2e8f0 !important; }
html.dark .tl-header-sub   { color: #64748b !important; }

/* Tags.vue — Search */
html.dark .tl-search-input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}
html.dark .tl-search-input::placeholder { color: #475569 !important; }
html.dark .tl-search-icon              { color: #475569 !important; }

/* Tags.vue — Empty state */
html.dark .tl-empty {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .tl-empty-text { color: #cbd5e1 !important; }

/* Tags.vue — Cards */
html.dark .tl-card {
    background: #111 !important;
    box-shadow: 0 1px 8px rgba(0,0,0,0.35) !important;
}
html.dark .tl-card:hover {
    box-shadow: 0 4px 18px rgba(255,12,129,0.18) !important;
}
html.dark .tl-card-avatar {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .tl-card-avatar-empty { color: #334155 !important; }
html.dark .tl-card-title        { color: #e2e8f0 !important; }
html.dark .tl-card-type         { background: rgba(255,255,255,0.12) !important; }
html.dark .tl-btn-delete {
    background: rgba(239,68,68,0.08) !important;
    border-color: rgba(239,68,68,0.2) !important;
    color: #f87171 !important;
}
html.dark .tl-btn-delete:hover {
    background: rgba(239,68,68,0.16) !important;
}

/* Tag.vue — Modal content */
html.dark .tg-modal-content {
    background: #111 !important;
    box-shadow: 0 10px 40px rgba(0,0,0,0.6) !important;
}
html.dark .tg-modal-header {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.07) !important;
}
html.dark .tg-modal-title    { color: #e2e8f0 !important; }
html.dark .tg-modal-subtitle { color: #64748b !important; }
html.dark .tg-modal-close {
    background: #1a1a1a !important;
    color: #64748b !important;
}
html.dark .tg-modal-close:hover {
    background: rgba(255,12,129,0.1) !important;
    color: #ff0c81 !important;
}

/* Tag.vue — Sections */
html.dark .tg-section {
    border-bottom-color: rgba(255,255,255,0.05) !important;
}
html.dark .tg-section-title { color: #cbd5e1 !important; }

/* Tag.vue — Image upload zone */
html.dark .tg-img-zone {
    background: rgba(255,12,129,0.04) !important;
    border-color: rgba(255,12,129,0.2) !important;
}
html.dark .tg-img-zone:hover {
    background: rgba(255,12,129,0.08) !important;
    border-color: rgba(255,12,129,0.4) !important;
}
html.dark .tg-img-circle {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.07) !important;
}
html.dark .tg-upload-text { color: #cbd5e1 !important; }

/* Tag.vue — Form fields */
html.dark .tg-label { color: #94a3b8 !important; }
html.dark .tg-input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}
html.dark .tg-input::placeholder { color: #334155 !important; }
html.dark .tg-input:focus {
    border-color: rgba(255,12,129,0.5) !important;
    box-shadow: 0 0 0 3px rgba(255,12,129,0.08) !important;
}
html.dark .tg-input-icon { color: #334155 !important; }

/* Tag.vue — Toggle */
html.dark .tg-toggle-slider { background: #2a2a2a !important; }
html.dark .tg-toggle-label  { color: #64748b !important; }

/* Tag.vue — Modal footer */
html.dark .tg-modal-footer {
    background: #0d0d0d !important;
    border-top-color: rgba(255,255,255,0.06) !important;
}
html.dark .tg-btn-cancel {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #94a3b8 !important;
}
html.dark .tg-btn-cancel:hover {
    background: #222 !important;
    color: #e2e8f0 !important;
}

/* ============================================================
   MY VENUES — Venues.vue + Venue.vue (global styles, no scoped)
   ============================================================ */

/* Venues.vue — Info alert */
html.dark .venue-info-alert {
    background: rgba(255,12,129,0.06) !important;
    border-left-color: #ff0c81 !important;
    color: #94a3b8 !important;
}

/* Venues.vue — Cards */
html.dark .venue-card {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .venue-card:hover {
    box-shadow: 0 8px 24px rgba(255,12,129,0.18) !important;
}
html.dark .venue-card-title a { color: #e2e8f0 !important; }
html.dark .venue-card-location { color: #64748b !important; }
html.dark .venue-cap-badge {
    background: #1a1a1a !important;
    color: #64748b !important;
}
html.dark .venue-card-actions {
    border-top-color: rgba(255,255,255,0.05) !important;
}
html.dark .venue-empty { color: #475569 !important; }

/* Venue.vue — Google Maps autocomplete */
html.dark .pac-container {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.08) !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.5) !important;
}
html.dark .pac-item {
    background: #1a1a1a !important;
    color: #cbd5e1 !important;
    border-top-color: rgba(255,255,255,0.05) !important;
}
html.dark .pac-item:hover { background: #222 !important; }
html.dark .pac-item-query { color: #e2e8f0 !important; }
html.dark .pac-matched { color: #ff6bb5 !important; }

/* Venue.vue — Modal */
html.dark .venue-modal-content {
    background: #111 !important;
    box-shadow: 0 10px 40px rgba(0,0,0,0.6) !important;
}
html.dark .venue-modal-footer {
    background: #0d0d0d !important;
    border-top-color: rgba(255,255,255,0.06) !important;
}

/* Venue.vue — Form sections */
html.dark .form-section {
    border-bottom-color: rgba(255,255,255,0.05) !important;
}
html.dark .form-section-header {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.05) !important;
}
html.dark .form-section-title { color: #cbd5e1 !important; }

/* Venue.vue — Image upload zone */
html.dark .venue-upload-zone {
    background: rgba(255,12,129,0.04) !important;
    border-color: rgba(255,12,129,0.2) !important;
}
html.dark .venue-upload-zone:hover {
    background: rgba(255,12,129,0.08) !important;
    border-color: rgba(255,12,129,0.4) !important;
}
html.dark .venue-upload-text { color: #cbd5e1 !important; }

/* ============================================================
   MY VENUES — eventmie-pro/Venues.vue (vl-*) + Venue.vue (vs-*)
   ============================================================ */

/* Venues.vue — Header */
html.dark .vl-header {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .vl-header-title { color: #e2e8f0 !important; }
html.dark .vl-header-sub   { color: #64748b !important; }

/* Venues.vue — Search */
html.dark .vl-search-input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}
html.dark .vl-search-input::placeholder { color: #475569 !important; }
html.dark .vl-search-icon              { color: #475569 !important; }

/* Venues.vue — Empty */
html.dark .vl-empty {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .vl-empty-text { color: #cbd5e1 !important; }

/* Venues.vue — Cards */
html.dark .vl-card {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .vl-card:hover {
    box-shadow: 0 6px 24px rgba(255,12,129,0.18) !important;
}
html.dark .vl-card-img-wrap      { background: #1a1a1a !important; }
html.dark .vl-card-img-placeholder { color: #334155 !important; }
html.dark .vl-card-title         { color: #e2e8f0 !important; }
html.dark .vl-card-location      { color: #64748b !important; }
html.dark .vl-card-footer {
    background: #0d0d0d !important;
    border-top-color: rgba(255,255,255,0.06) !important;
}
html.dark .vl-btn-delete {
    background: rgba(239,68,68,0.08) !important;
    border-color: rgba(239,68,68,0.2) !important;
    color: #f87171 !important;
}
html.dark .vl-btn-delete:hover {
    background: #dc3545 !important;
    border-color: #dc3545 !important;
    color: #fff !important;
}

/* Venue.vue — Google Maps autocomplete */
html.dark .pac-container {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.08) !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.5) !important;
}
html.dark .pac-item {
    background: #1a1a1a !important;
    color: #cbd5e1 !important;
    border-top-color: rgba(255,255,255,0.05) !important;
}
html.dark .pac-item:hover        { background: #222 !important; }
html.dark .pac-item-query        { color: #e2e8f0 !important; }
html.dark .pac-matched           { color: #ff6bb5 !important; }

/* Venue.vue — Modal */
html.dark .venue-modal-content {
    background: #111 !important;
    box-shadow: 0 10px 40px rgba(0,0,0,0.6) !important;
}
html.dark .venue-modal-header {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.07) !important;
}
html.dark .venue-modal-title    { color: #e2e8f0 !important; }
html.dark .venue-modal-subtitle { color: #64748b !important; }
html.dark .venue-modal-close {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #64748b !important;
}
html.dark .venue-modal-close:hover {
    background: rgba(255,12,129,0.15) !important;
    color: #ff0c81 !important;
}
html.dark .venue-modal-footer {
    background: #0d0d0d !important;
    border-top-color: rgba(255,255,255,0.06) !important;
}

/* Venue.vue — Form sections (vs-*) */
html.dark .vs-section {
    border-bottom-color: rgba(255,255,255,0.05) !important;
}
html.dark .vs-section-hdr {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.05) !important;
}
html.dark .vs-section-title { color: #cbd5e1 !important; }

/* Venue.vue — Image upload / crop */
html.dark .venue-crop-preview {
    background: rgba(255,12,129,0.04) !important;
    border-color: rgba(255,12,129,0.2) !important;
}
html.dark .venue-crop-preview:hover {
    background: rgba(255,12,129,0.08) !important;
    border-color: rgba(255,12,129,0.4) !important;
}
html.dark .venue-upload-text { color: #cbd5e1 !important; }

/* Venue.vue — Map container & location preview */
html.dark .venue-map-container {
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .venue-location-preview {
    background: rgba(34,197,94,0.07) !important;
    border-color: rgba(34,197,94,0.2) !important;
    color: #86efac !important;
}

/* input-group-text inside search address (inside modal body) */
html.dark .venue-modal-content .input-group-text {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #64748b !important;
}

/* ============================================================
   GUEST LISTS — GuestListsIndex.vue (scoped → !important)
   ============================================================ */

/* Header */
html.dark .gl-header {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .gl-title    { color: #e2e8f0 !important; }
html.dark .gl-subtitle { color: #64748b !important; }

/* Buttons */
html.dark .gl-btn {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #94a3b8 !important;
}
html.dark .gl-btn:hover {
    background: #222 !important;
    color: #e2e8f0 !important;
}
html.dark .gl-btn-copy {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #94a3b8 !important;
}
html.dark .gl-btn-copy:hover { background: #222 !important; }
html.dark .gl-icon-btn { color: #475569 !important; }
html.dark .gl-icon-btn:hover {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}
html.dark .gl-icon-btn-danger:hover {
    background: rgba(239,68,68,0.1) !important;
    color: #f87171 !important;
}

/* Search bar */
html.dark .gl-search-input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}
html.dark .gl-search-input::placeholder { color: #475569 !important; }
html.dark .gl-search-icon              { color: #475569 !important; }

/* Loading / Empty */
html.dark .gl-loading,
html.dark .gl-empty {
    background: #111 !important;
    color: #64748b !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}

/* Cards */
html.dark .gl-card {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .gl-card:hover {
    box-shadow: 0 6px 24px rgba(255,12,129,0.18) !important;
}
html.dark .gl-card-name    { color: #e2e8f0 !important; }
html.dark .gl-card-stat    { color: #64748b !important; }
html.dark .gl-badge-public {
    background: rgba(34,197,94,0.1) !important;
    color: #86efac !important;
}
html.dark .gl-event-chip {
    background: rgba(232,33,124,0.1) !important;
    color: #f9a8d4 !important;
}
html.dark .gl-no-events { color: #334155 !important; }
html.dark .gl-public-url-row {
    background: rgba(34,197,94,0.06) !important;
    border-color: rgba(34,197,94,0.15) !important;
}
html.dark .gl-public-url-text { color: #86efac !important; }
html.dark .gl-copy-btn       { color: #34d399 !important; }
html.dark .gl-copy-btn:hover { color: #86efac !important; }
html.dark .gl-card-footer {
    border-top-color: rgba(255,255,255,0.05) !important;
}
html.dark .gl-card-creator { color: #475569 !important; }
html.dark .gl-reward-badge { color: #fbbf24 !important; }

/* Pagination */
html.dark .gl-page-info { color: #64748b !important; }

/* Modal */
html.dark .gl-modal {
    background: #111 !important;
    box-shadow: 0 20px 60px rgba(0,0,0,0.6) !important;
}
html.dark .gl-modal-header {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .gl-modal-header h5 { color: #e2e8f0 !important; }
html.dark .gl-modal-close     { color: #475569 !important; }
html.dark .gl-modal-footer {
    background: #0d0d0d !important;
    border-top-color: rgba(255,255,255,0.06) !important;
}

/* Form */
html.dark .gl-label { color: #94a3b8 !important; }
html.dark .gl-input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}
html.dark .gl-input::placeholder { color: #334155 !important; }
html.dark .gl-input-url {
    background: #0d0d0d !important;
    color: #94a3b8 !important;
}
html.dark .gl-hint { color: #475569 !important; }

/* Searchable select dropdown */
html.dark .gl-select-options {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.08) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.4) !important;
}
html.dark .gl-select-option { color: #cbd5e1 !important; }
html.dark .gl-select-option:hover {
    background: rgba(232,33,124,0.08) !important;
}
html.dark .gl-select-option-active {
    background: rgba(232,33,124,0.12) !important;
    color: #f9a8d4 !important;
}
html.dark .gl-select-empty { color: #475569 !important; }

/* Staff checkboxes */
html.dark .gl-search-inline input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}
html.dark .gl-search-inline i { color: #475569 !important; }
html.dark .gl-staff-checkboxes {
    background: #0d0d0d !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .gl-staff-check-item {
    background: #111 !important;
    color: #94a3b8 !important;
}
html.dark .gl-staff-check-item:hover { background: #1a1a1a !important; }
html.dark .gl-staff-name  { color: #e2e8f0 !important; }
html.dark .gl-staff-email { color: #475569 !important; }
html.dark .gl-staff-role-badge {
    background: #1a1a1a !important;
    color: #64748b !important;
}
html.dark .gl-role--pos          { background: rgba(59,130,246,0.12) !important; color: #93c5fd !important; }
html.dark .gl-role--manager      { background: rgba(34,197,94,0.10)  !important; color: #86efac !important; }
html.dark .gl-role--suborganizer { background: rgba(245,158,11,0.10) !important; color: #fbbf24 !important; }
html.dark .gl-btn-link { color: #f9a8d4 !important; }
html.dark .gl-btn-link:hover { color: #ff6bb5 !important; }

/* Switch toggle */
html.dark .gl-switch-slider { background: #2a2a2a !important; }

/* Public info box */
html.dark .gl-public-info-box {
    background: rgba(59,130,246,0.07) !important;
    border-color: rgba(59,130,246,0.2) !important;
    color: #93c5fd !important;
}

/* Fields config table */
html.dark .gl-fields-table {
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .gl-fields-row {
    border-bottom-color: rgba(255,255,255,0.05) !important;
    color: #cbd5e1 !important;
}
html.dark .gl-fields-header {
    background: #0d0d0d !important;
    color: #64748b !important;
}
html.dark .gl-field-label { color: #94a3b8 !important; }

/* ============================================================
   SUB ORGANIZERS — MySubOrganizers.vue (scoped → !important)
   ============================================================ */

/* Header */
html.dark .suborg-header {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .suborg-title    { color: #e2e8f0 !important; }
html.dark .suborg-subtitle { color: #475569 !important; }

/* Role description cards */
html.dark .suborg-role-card {
    background: #111 !important;
    border-color: rgba(255,255,255,0.07) !important;
    box-shadow: 0 1px 6px rgba(0,0,0,0.3) !important;
}
html.dark .suborg-role-name { color: #e2e8f0 !important; }
html.dark .suborg-role-desc { color: #64748b !important; }

/* Search */
html.dark .suborg-search-input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}
html.dark .suborg-search-input::placeholder { color: #334155 !important; }
html.dark .suborg-search-icon              { color: #475569 !important; }
html.dark .suborg-search-clear             { color: #475569 !important; }
html.dark .suborg-search-clear:hover       { color: #f9a8d4 !important; }

/* Empty */
html.dark .suborg-empty { color: #475569 !important; }

/* Sections */
html.dark .suborg-section {
    background: #111 !important;
    border-color: rgba(255,255,255,0.06) !important;
}
html.dark .suborg-section-header {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.05) !important;
}
html.dark .suborg-section-title { color: #cbd5e1 !important; }
html.dark .suborg-section-count {
    background: #1a1a1a !important;
    color: #64748b !important;
}

/* Cards */
html.dark .suborg-card {
    border-color: rgba(255,255,255,0.06) !important;
}
html.dark .suborg-card:hover {
    box-shadow: 0 1px 6px rgba(0,0,0,0.4) !important;
}
html.dark .suborg-card-name  { color: #e2e8f0 !important; }
html.dark .suborg-card-email { color: #64748b !important; }

/* Ref code row */
html.dark .suborg-refcode {
    border-top-color: rgba(255,255,255,0.06) !important;
}
html.dark .suborg-refcode-label { color: #475569 !important; }

/* ── /dashboard/mis-campanas/crear ──────────────────────────────────────── */

/* Block editor — be-* classes (defined inline in blade <style>) */
html.dark .be-pal-btn { background: #1a1a1a !important; border-color: rgba(255,255,255,0.1) !important; color: #cbd5e1 !important; }
html.dark .be-pal-btn:hover { background: rgba(255,12,129,0.08) !important; border-color: rgba(255,12,129,0.3) !important; color: #ff6bb2 !important; }
html.dark .be-block { background: #111 !important; border-color: rgba(255,255,255,0.08) !important; }
html.dark .be-block.be-open { border-color: rgba(255,12,129,0.4) !important; }
html.dark .be-open > .be-hdr { background: rgba(255,12,129,0.06) !important; }
html.dark .be-lbl { color: #cbd5e1 !important; }
html.dark .be-fl { color: #94a3b8 !important; }
html.dark .be-ab { color: #64748b !important; }
html.dark .be-ab:hover { background: #1a1a1a !important; color: #cbd5e1 !important; }
html.dark .be-ab.be-del:hover { background: rgba(239,68,68,0.1) !important; color: #f87171 !important; }
html.dark .be-chev { color: #475569 !important; }
html.dark .be-body { border-top-color: rgba(255,255,255,0.05) !important; }
html.dark .be-inp { background: #1a1a1a !important; border-color: rgba(255,255,255,0.1) !important; color: #e2e8f0 !important; }
html.dark .be-crown { background: #1a1a1a !important; border-color: rgba(255,255,255,0.1) !important; color: #e2e8f0 !important; }
html.dark .be-txt-ed { background: #1a1a1a !important; border-color: rgba(255,255,255,0.1) !important; color: #e2e8f0 !important; }
html.dark .be-fb { background: #1a1a1a !important; border-color: rgba(255,255,255,0.08) !important; color: #cbd5e1 !important; }
html.dark .be-empty { color: #475569 !important; }
html.dark .be-swatch.be-swatch-active { border-color: #e2e8f0 !important; box-shadow: 0 0 0 2px rgba(255,255,255,0.5) !important; }
html.dark .be-fmt-bar { background: #0d0d0d !important; border-color: rgba(255,255,255,0.07) !important; }

/* Block editor list container (inline style) */
html.dark #block-editor-list { background: #0d0d0d !important; border-color: rgba(255,255,255,0.08) !important; }

/* Audience selector tabs container (inline style background:#f1f5f9) */
html.dark #audience-tabs { background: #0d0d0d !important; border-color: rgba(255,255,255,0.07) !important; }
/* Inactive aud-tab buttons (active ones have #ff0183 set by JS — leave them) */
html.dark .aud-tab { color: #94a3b8 !important; }

/* Audience panels — city/category filter boxes */
html.dark .aud-panel > div { background: #111 !important; border-color: rgba(255,255,255,0.08) !important; }
html.dark #city-summary, html.dark #cat-summary { color: #64748b !important; }
html.dark .city-item, html.dark .cat-item { border-bottom-color: rgba(255,255,255,0.04) !important; color: #cbd5e1 !important; }
html.dark #city-search, html.dark #cat-search,
html.dark #own-city-filter, html.dark #event-audience-select { background: #1a1a1a !important; border-color: rgba(255,255,255,0.1) !important; color: #e2e8f0 !important; }

/* Preview audience box (inline style background:#fdf2f8) */
html.dark #preview-box { background: rgba(190,24,93,0.07) !important; border-color: rgba(190,24,93,0.2) !important; }
html.dark #preview-content { color: #e2e8f0 !important; }
html.dark #tpl-loaded-badge { color: #94a3b8 !important; }
html.dark #draft-status { color: #94a3b8 !important; }

/* Picker modals (template / event / glist) — inline background:#fff on wrapper */
html.dark #tplPickerModal > div   { background: #111 !important; border-color: rgba(255,255,255,0.08) !important; }
html.dark #eventPickerModal > div { background: #111 !important; border-color: rgba(255,255,255,0.08) !important; }
html.dark #glistPickerModal > div { background: #111 !important; border-color: rgba(255,255,255,0.08) !important; }
html.dark .ev-modal-item    { background: #1a1a1a !important; border-color: rgba(255,255,255,0.06) !important; color: #e2e8f0 !important; }
html.dark .ev-modal-item:hover { background: rgba(255,12,129,0.06) !important; }
html.dark .tpl-load-btn, html.dark .tpl-delete-btn { background: #1a1a1a !important; }
html.dark #ev-modal-search, html.dark #tpl-search, html.dark #glist-modal-search { background: #1a1a1a !important; border-color: rgba(255,255,255,0.1) !important; color: #e2e8f0 !important; }

/* Picker modal headers (inline style background:#f8f9fa or #fff) */
html.dark #tplPickerModal .fw-semibold,
html.dark #eventPickerModal .fw-semibold,
html.dark #glistPickerModal .fw-semibold { color: #e2e8f0 !important; }

/* ── Fix: panel WowTicket (platform) — city/category filter boxes ────────── */
/* Outer filter box wrapper (inline style="background:#fff;") */
html.dark #panel-platform .border.rounded-2 { background: #111 !important; border-color: rgba(255,255,255,0.08) !important; }
/* "Todo Chile / Todas las categorías" row (inline style="background:#f8f9fa;") */
html.dark #panel-platform .border.rounded-2 > .border-bottom { background: #0d0d0d !important; border-bottom-color: rgba(255,255,255,0.06) !important; }
/* Inner border-top of summary row */
html.dark #panel-platform .border.rounded-2 > .border-top { border-top-color: rgba(255,255,255,0.06) !important; }
/* Search input inside filter box (inherits border:0 shadow-none but bg may leak) */
html.dark #panel-platform .form-control.border-0 { background: #111 !important; color: #e2e8f0 !important; }
/* City/category item labels */
html.dark .city-item, html.dark .cat-item { color: #cbd5e1 !important; }
html.dark .city-item:hover, html.dark .cat-item:hover { background: rgba(255,255,255,0.03) !important; }
/* Summary text (inline color:#6b7280) */
html.dark #city-summary, html.dark #cat-summary { color: #475569 !important; }

/* ── /dashboard/mis-contactos ───────────────────────────────────────────── */

/* Card headers/footers con clase bg-white pierden contraste (bg-white wins !important).
   Re-establecemos separación visual con reglas más específicas. */
html.dark .card-header.bg-white { background-color: #0d0d0d !important; }
html.dark .card-footer.bg-white  { background-color: #0d0d0d !important; }

/* Tarjeta "Eliminar todos": inline style="border:1px solid #fee2e2!important;"
   El inline !important requiere atributo selector para ganar */
html.dark [style*="#fee2e2"] { border-color: rgba(239,68,68,0.25) !important; }

/* code inline (email, nombre, telefono, ciudad) */
html.dark code {
    background-color: rgba(255,255,255,0.06) !important;
    color: #f9a8d4 !important;
    border-radius: 3px;
}

/* Encabezado de página (bg-white rounded-3): ya es #111 pero sin borde visible */
html.dark .bg-white.rounded-3 { border: 1px solid rgba(255,255,255,0.06) !important; }

/* Badge "Manual" — bg-light text-dark border: ya cubierto globalmente,
   pero el border inline puede quedar muy claro */
html.dark .badge.bg-info.text-dark {
    background-color: rgba(6,182,212,0.15) !important;
    color: #67e8f9 !important;
}

/* ── /profile — nav tabs + card wrapper ─────────────────────────────────── */

/* Nav tab strip container (bg-gray-200) */
html.dark .bg-gray-200 { background-color: #0d0d0d !important; }

/* Tab links default */
html.dark .nav-lb-tab { border-bottom-color: rgba(255,255,255,0.07) !important; }
html.dark .nav-lb-tab .nav-item .nav-link { color: #64748b !important; }

/* Active + hover tabs — override eventmie-custom.css color:black */
html.dark .nav-lb-tab .nav-item .nav-link.active,
html.dark .nav-lb-tab .nav-item .nav-link:hover {
    color: #ff6bb2 !important;
    border-color: #ff0183 !important;
}

/* ── MiCuenta.vue — phone code selector (inline styles) ─────────────────── */
html.dark .input-group .btn.rounded-start[style*="background:#f8f9fa"],
html.dark .input-group .btn.rounded-0[style*="background:#f8f9fa"] {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #cbd5e1 !important;
}
/* Country picker dropdown items (inline border-bottom:#f0f0f0) */
html.dark .position-absolute.bg-white a[style*="border-bottom"] {
    border-bottom-color: rgba(255,255,255,0.05) !important;
    color: #cbd5e1 !important;
}
html.dark .position-absolute.bg-white a.bg-light {
    background: rgba(255,255,255,0.06) !important;
}

/* ── OrganiserInfo.vue + SellerInfo.vue — image/crop UI ─────────────────── */
html.dark .oi-img-preview-wrap {
    border-color: rgba(255,255,255,0.1) !important;
    background: #1a1a1a !important;
}
html.dark .oi-cover-preview-wrap {
    border-color: rgba(255,255,255,0.1) !important;
    background: #1a1a1a !important;
}
html.dark .oi-cover-placeholder { color: #475569 !important; }
html.dark .oi-slide-preview-wrap {
    border-color: rgba(255,255,255,0.1) !important;
    background: #1a1a1a !important;
}

/* Crop modal (OrganiserInfo + SellerInfo) */
html.dark .oi-crop-box {
    background: #111 !important;
    box-shadow: 0 8px 32px rgba(0,0,0,.7) !important;
}
html.dark .oi-crop-title {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.07) !important;
    color: #e2e8f0 !important;
}
html.dark .oi-crop-actions {
    background: #0d0d0d !important;
    border-top-color: rgba(255,255,255,0.07) !important;
}

/* ── SellerInfo.vue — signature preview ─────────────────────────────────── */
html.dark .si-sig-preview-wrap {
    border-color: rgba(255,255,255,0.12) !important;
    background: #1a1a1a !important;
}
html.dark .si-sig-placeholder { color: #475569 !important; }
html.dark .si-sig-placeholder small { color: #374151 !important; }

/* ── Integraciones.vue ───────────────────────────────────────────────────── */
html.dark .badge-ok  { background: rgba(34,197,94,0.12) !important; color: #86efac !important; }
html.dark .badge-off { background: rgba(255,255,255,0.06) !important; color: #64748b !important; }
html.dark .integ-divider { border-color: rgba(255,255,255,0.06) !important; }

/* ── BankDetails.vue — v-select (non-scoped global) ─────────────────────── */
html.dark .vs__dropdown-toggle {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
}
html.dark .vs__selected { color: #e2e8f0 !important; }
html.dark .vs__search { color: #e2e8f0 !important; }
html.dark .vs__search::placeholder { color: #475569 !important; }
html.dark .vs__open-indicator { fill: #64748b !important; }
html.dark .vs__clear svg { fill: #64748b !important; }
html.dark .vs__dropdown-menu {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .vs__dropdown-option { color: #cbd5e1 !important; }
html.dark .vs__dropdown-option--highlight {
    background: #e8217c !important;
    color: #fff !important;
}
html.dark .vs__dropdown-option--selected { color: #ff6bb2 !important; }

/* ── PersonalDetails.vue — Bootstrap 3 panel (legacy) ───────────────────── */
html.dark .panel-default { background: #111 !important; border-color: rgba(255,255,255,0.08) !important; }
html.dark .panel-heading  { background: #0d0d0d !important; border-bottom-color: rgba(255,255,255,0.07) !important; color: #e2e8f0 !important; }
html.dark .lgx-panel { background: #111 !important; }

/* ── /profile — fixes adicionales ───────────────────────────────────────── */

/* pnav-active: clase que Vue Router pone en el tab activo
   (linkExactActiveClass: "pnav-active") — tiene background:#fff0f7 !important */
html.dark .pnav-active,
html.dark .pnav-item.active {
    background: rgba(255,12,129,0.12) !important;
    border-left-color: #ff0183 !important;
    color: #ff6bb2 !important;
}
html.dark .pnav-active i,
html.dark .pnav-item.active i { color: #ff6bb2 !important; }

/* pnav-item hover */
html.dark .pnav-item:hover {
    background: rgba(255,12,129,0.06) !important;
    border-left-color: rgba(255,12,129,0.4) !important;
}

/* Tab links — color por defecto en modo oscuro (texto gris legible) */
html.dark .nav-lb-tab .nav-item .nav-link { color: #94a3b8 !important; }

/* bg-gray-200 — si Bootstrap lo genera, dale fondo oscuro */
html.dark .bg-gray-200 { background-color: #111 !important; }

/* input-group-text en SocialMedia (@, ícono teléfono) */
html.dark .input-group-text {
    background-color: #1a1a1a !important;
    border-color: rgba(255,255,255,0.12) !important;
    color: #94a3b8 !important;
}

/* Panel Bootstrap 3 — body del panel debajo del heading */
html.dark .panel-body { background: #111 !important; color: #cbd5e1 !important; }
html.dark .panel { border-color: rgba(255,255,255,0.07) !important; }

/* form-label en modo oscuro */
html.dark .form-label { color: #cbd5e1 !important; }

/* Teléfono: botón selector de código de país (inline style background:#f8f9fa) */
html.dark .btn[style*="background:#f8f9fa"] {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #cbd5e1 !important;
}
/* Dropdown de países (bg-white position-absolute) */
html.dark .position-absolute.bg-white {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .position-absolute.bg-white a {
    color: #cbd5e1 !important;
    border-bottom-color: rgba(255,255,255,0.05) !important;
}
html.dark .position-absolute.bg-white a:hover,
html.dark .position-absolute.bg-white a.bg-light {
    background: rgba(255,255,255,0.05) !important;
}

/* Badge documento de identidad (bg-light text-dark border) */
html.dark .badge.bg-light.text-dark.border {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
    border-color: rgba(255,255,255,0.12) !important;
}

/* v-select: dropdown-toggle con border-radius específico en BankDetails */
html.dark .phone-code-vselect .vs__dropdown-toggle {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
}

/* Alert en OrganiserInfo (.alert-info antes de estar aprobado) */
html.dark .card.bg-light { background: #0d0d0d !important; }

/* hr separadores dentro de formularios */
html.dark hr { border-color: rgba(255,255,255,0.07) !important; }

/* ── BecomeOrganiser.vue — scoped .bo-* classes ──────────────────────────── */
html.dark .bo-benefit {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.07) !important;
}
html.dark .bo-benefit-icon {
    background: rgba(255,12,129,0.12) !important;
    color: #ff6bb2 !important;
}
html.dark .bo-benefit strong { color: #e2e8f0 !important; }
html.dark .bo-benefit span   { color: #94a3b8 !important; }
html.dark .bo-steps-title,
html.dark .bo-form-title     { color: #e2e8f0 !important; }
html.dark .bo-step           { color: #94a3b8 !important; }
html.dark .bo-hero-sub       { color: #94a3b8 !important; }
html.dark .bo-form-card {
    background: #0d0d0d !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .bo-pending        { color: #94a3b8 !important; }

/* ── Teléfono con código de país (MiCuenta.vue) ─────────────────────────── */
/* Botón selector de bandera: .btn.rounded-0.rounded-start dentro de input-group
   (Chrome normaliza colores hex a rgb en el DOM, attr selector no funciona) */
html.dark .input-group .btn.rounded-0.rounded-start {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.12) !important;
    color: #cbd5e1 !important;
}
html.dark .input-group .btn.rounded-0.rounded-start i {
    color: #64748b !important;
}
/* Input de número de teléfono */
html.dark .input-group input[type="tel"].form-control {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.12) !important;
    color: #e2e8f0 !important;
}
html.dark .input-group input[type="tel"].form-control::placeholder {
    color: #64748b !important;
}
/* Dropdown lista de países: position-absolute bg-white border rounded */
html.dark .position-absolute.bg-white.border.rounded {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .position-absolute.bg-white.border.rounded a {
    color: #cbd5e1 !important;
    border-bottom-color: rgba(255,255,255,0.05) !important;
}
html.dark .position-absolute.bg-white.border.rounded a:hover,
html.dark .position-absolute.bg-white.border.rounded a.bg-light {
    background: rgba(255,12,129,0.08) !important;
    color: #ff6bb2 !important;
}
html.dark .position-absolute.bg-white.border.rounded .text-muted {
    color: #64748b !important;
}

/* Nav-link color en navbar principal en modo oscuro (fuerza legibilidad) */
html.dark .nav-header .navbar-nav > li > .nav-link {
    color: rgba(255,255,255,0.88) !important;
}
html.dark .nav-header .navbar-nav > li > .nav-link:hover {
    color: #ff6bb2 !important;
}
html.dark .nav-header .navbar-nav > li > .nav-link.dropdown-toggle {
    color: rgba(255,255,255,0.88) !important;
}

/* ── CORTESÍAS DASHBOARD (/dashboard/cortesias) ──────────────────────────── */
/* Clases definidas en <style> inline dentro de cortesias/dashboard.blade.php */

/* Header y wizard container */
html.dark .cort-header,
html.dark .cort-wizard,
html.dark .cort-batch-card {
    background: #0d0d0d !important;
    border-color: rgba(255,255,255,0.07) !important;
}
html.dark .cort-title,
html.dark .hist-group-name,
html.dark .batch-title {
    color: #e2e8f0 !important;
}
html.dark .cort-subtitle,
html.dark .hist-group-meta,
html.dark .batch-subtitle { color: #94a3b8 !important; }

/* Botón abrir wizard en estado "open" (gris claro) */
html.dark .cort-btn-new.open {
    background: #1a1a1a !important;
    color: #cbd5e1 !important;
}

/* Wizard steps tab */
html.dark .wizard-steps {
    background: #0a0a0a !important;
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .wizard-step { color: #64748b !important; }
html.dark .ws-num {
    background: #1a1a1a !important;
    color: #94a3b8 !important;
}
html.dark .wizard-step.active .ws-num { background: #ff0c81 !important; color: #fff !important; }
html.dark .wizard-step.done .ws-num   { background: #10b981 !important; color: #fff !important; }

/* Wizard selects y labels */
html.dark .wizard-select,
html.dark .row-input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}
html.dark .wizard-select:disabled { background: #111 !important; color: #64748b !important; }
html.dark .wizard-field label,
html.dark .quota-label,
html.dark .dest-label,
html.dark .cort-filter label,
html.dark .batch-email-addr { color: #cbd5e1 !important; }

/* Quota panels */
html.dark .wizard-quota {
    background: rgba(16,185,129,0.08) !important;
    border-color: rgba(16,185,129,0.2) !important;
}
html.dark .wizard-quota.warn {
    background: rgba(245,158,11,0.08) !important;
    border-color: rgba(245,158,11,0.2) !important;
}
html.dark .wizard-quota.danger {
    background: rgba(239,68,68,0.08) !important;
    border-color: rgba(239,68,68,0.2) !important;
}

/* Botones toolbar */
html.dark .wt-btn {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #cbd5e1 !important;
}
html.dark .wt-btn:hover { background: #222 !important; }
html.dark .wt-btn--pink {
    background: rgba(255,12,129,0.08) !important;
    border-color: rgba(255,12,129,0.15) !important;
    color: #ff6bb2 !important;
}
html.dark .wt-btn--pink:hover { background: rgba(255,12,129,0.14) !important; }
html.dark .wt-btn--green {
    background: rgba(16,185,129,0.08) !important;
    border-color: rgba(16,185,129,0.2) !important;
    color: #34d399 !important;
}
html.dark .wt-btn--green:hover { background: rgba(16,185,129,0.14) !important; }
html.dark .wizard-btn--ghost {
    background: #1a1a1a !important;
    color: #cbd5e1 !important;
}
html.dark .wizard-btn--ghost:hover { background: #222 !important; }

/* Tabla de filas del wizard */
html.dark .wizard-rows-wrap,
html.dark .wizard-rows-table {
    border-color: rgba(255,255,255,0.07) !important;
}
html.dark .wizard-rows-table thead th {
    background: #0a0a0a !important;
    color: #94a3b8 !important;
    border-color: rgba(255,255,255,0.06) !important;
}
html.dark .wizard-rows-table tbody tr { border-bottom-color: rgba(255,255,255,0.04) !important; }
html.dark .wizard-rows-table tbody tr:hover td { background: rgba(255,255,255,0.02) !important; }
html.dark .row-input.email-invalid {
    border-color: rgba(239,68,68,0.4) !important;
    background: rgba(239,68,68,0.06) !important;
}

/* Chips de preview */
html.dark .preview-chip--ok   { background: rgba(16,185,129,0.12) !important; color: #34d399 !important; }
html.dark .preview-chip--warn { background: rgba(245,158,11,0.12) !important; color: #fbbf24 !important; }
html.dark .preview-chip--err  { background: rgba(239,68,68,0.12) !important;  color: #f87171 !important; }
html.dark .preview-chip--info { background: rgba(124,58,237,0.12) !important; color: #a78bfa !important; }

/* Preview table */
html.dark .preview-table th {
    background: #0a0a0a !important;
    color: #94a3b8 !important;
    border-color: rgba(255,255,255,0.06) !important;
}
html.dark .preview-table td { border-bottom-color: rgba(255,255,255,0.04) !important; }
html.dark .prev-qty-badge {
    background: rgba(255,12,129,0.12) !important;
    color: #ff6bb2 !important;
}
html.dark .prev-already {
    background: rgba(245,158,11,0.12) !important;
    color: #fbbf24 !important;
}
html.dark .preview-errors-box {
    background: rgba(239,68,68,0.06) !important;
    border-color: rgba(239,68,68,0.2) !important;
}
html.dark .preview-errors-title,
html.dark .preview-err-item,
html.dark .batch-errors-title,
html.dark .batch-err-item { color: #f87171 !important; }

/* Batch card header */
html.dark .batch-header {
    background: #0a0a0a !important;
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .batch-close-btn:hover { background: #1a1a1a !important; color: #cbd5e1 !important; }
html.dark .batch-progress-track { background: #1a1a1a !important; }
html.dark .batch-chip--ok  { background: rgba(16,185,129,0.12) !important; color: #34d399 !important; }
html.dark .batch-chip--err { background: rgba(239,68,68,0.12) !important;  color: #f87171 !important; }
html.dark .batch-chip--rem { background: #1a1a1a !important; color: #94a3b8 !important; }
html.dark .batch-email-list { border-top-color: rgba(255,255,255,0.06) !important; }
html.dark .batch-email-row { border-bottom-color: rgba(255,255,255,0.04) !important; }
html.dark .batch-errors-panel {
    background: rgba(239,68,68,0.06) !important;
    border-top-color: rgba(239,68,68,0.2) !important;
}

/* Filter bar */
html.dark .cort-filter select {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #cbd5e1 !important;
}

/* Stat cards */
html.dark .cort-stat-card {
    background: #111 !important;
}
html.dark .cort-stat-value { color: #e2e8f0 !important; }
html.dark .cort-stat-label { color: #94a3b8 !important; }

/* Grupos de historial */
html.dark .hist-group {
    background: #111 !important;
}
html.dark .hist-group-header:hover { background: rgba(255,255,255,0.02) !important; }
html.dark .hist-group-body { border-top-color: rgba(255,255,255,0.06) !important; }
html.dark .hist-group-count {
    background: rgba(255,12,129,0.10) !important;
    color: #ff6bb2 !important;
}

/* Tabla de detalle */
html.dark .hist-detail-table thead th {
    background: rgba(255,12,129,0.08) !important;
    color: #ff6bb2 !important;
    border-bottom-color: rgba(255,12,129,0.12) !important;
}
html.dark .hist-detail-table tbody tr { border-bottom-color: rgba(255,255,255,0.04) !important; }
html.dark .hist-detail-table tbody tr:hover td { background: rgba(255,255,255,0.02) !important; }

/* Badges estado */
html.dark .badge-sent {
    background: rgba(16,185,129,0.12) !important;
    color: #34d399 !important;
}
html.dark .badge-used {
    background: rgba(124,58,237,0.12) !important;
    color: #a78bfa !important;
}
html.dark .badge-cancelled {
    background: #1a1a1a !important;
    color: #64748b !important;
}

/* Búsqueda dentro del grupo */
html.dark .group-search-wrap {
    background: #0a0a0a !important;
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .group-search-input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}

/* Footer de paginación */
html.dark .group-footer {
    background: #0a0a0a !important;
    border-top-color: rgba(255,255,255,0.06) !important;
}
html.dark .group-loadmore {
    background: rgba(255,12,129,0.08) !important;
    border-color: rgba(255,12,129,0.15) !important;
    color: #ff6bb2 !important;
}
html.dark .group-loadmore:hover { background: rgba(255,12,129,0.14) !important; }

/* Botón anular cortesía */
html.dark .cort-cancel-btn {
    border-color: rgba(239,68,68,0.3) !important;
    color: #f87171 !important;
}
html.dark .cort-cancel-btn:hover { background: rgba(239,68,68,0.1) !important; }

/* Botón cancelar batch */
html.dark .batch-cancel-btn {
    background: rgba(239,68,68,0.1) !important;
    border-color: rgba(239,68,68,0.2) !important;
    color: #f87171 !important;
}
html.dark .batch-cancel-btn:hover { background: rgba(239,68,68,0.18) !important; }

/* ── PANEL PRINCIPAL (o_dashboard) + ESTADÍSTICAS + TRANSACCIONES ───────── */

/* Círculos de íconos (38px) con colores pastel inline:
   Chrome mantiene px values en atributos, pero normaliza hex a rgb.
   Usamos !important para sobrepasar incluso el inline style. */
html.dark .rounded-circle.d-flex.align-items-center.justify-content-center[style*="38px"] {
    background: rgba(255,255,255,0.07) !important;
}
/* Iconos dentro de los círculos: darkgreen/darkpurple → versiones más claras */
html.dark .rounded-circle.d-flex[style*="38px"] i[style*="color:#059669"],
html.dark .rounded-circle.d-flex[style*="38px"] i[style*="color:#2e7d32"] {
    color: #34d399 !important;
}
html.dark .rounded-circle.d-flex[style*="38px"] i[style*="color:#7c3aed"] {
    color: #a78bfa !important;
}
html.dark .rounded-circle.d-flex[style*="38px"] i[style*="color:#e8217c"],
html.dark .rounded-circle.d-flex[style*="38px"] i[style*="color:#be185d"] {
    color: #ff6bb2 !important;
}

/* Métricas coloreadas en admin_stats (id específicos) */
html.dark #sales-summary-avg { color: #a78bfa !important; }
html.dark #tx-summary-profit { color: #34d399 !important; }

/* Botones de presets de período (btn-outline-secondary.active) */
html.dark .sales-preset.active,
html.dark .tx-preset.active {
    background-color: rgba(255,12,129,0.15) !important;
    border-color: #ff0c81 !important;
    color: #ff6bb2 !important;
}

/* Valores de color inline en columnas de tabla (color:#2e7d32 para ganancia) */
html.dark td[style*="color:#2e7d32"],
html.dark span[style*="color:#2e7d32"] { color: #34d399 !important; }
html.dark td[style*="color:#7c3aed"],
html.dark span[style*="color:#7c3aed"] { color: #a78bfa !important; }
html.dark td[style*="color:#dc2626"],
html.dark span[style*="color:#dc2626"] { color: #f87171 !important; }

/* ── TAGS (etiquetas) — Tags.vue scoped (tl-*) ──────────────────────────── */
html.dark .tl-header {
    background: #0d0d0d !important;
}
html.dark .tl-header-title { color: #e2e8f0 !important; }
html.dark .tl-header-sub   { color: #94a3b8 !important; }

html.dark .tl-search-input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}
html.dark .tl-search-icon { color: #64748b !important; }

html.dark .tl-empty {
    background: #0d0d0d !important;
}
html.dark .tl-empty-text { color: #e2e8f0 !important; }
html.dark .tl-empty-icon { color: rgba(255,12,129,0.4) !important; }

html.dark .tl-card {
    background: #111 !important;
}
html.dark .tl-card-avatar {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.07) !important;
}
html.dark .tl-card-avatar-empty { color: #475569 !important; }
html.dark .tl-card-title { color: #e2e8f0 !important; }

html.dark .tl-btn-delete {
    background: rgba(220,53,69,0.1) !important;
    border-color: rgba(220,53,69,0.2) !important;
    color: #f87171 !important;
}
html.dark .tl-btn-delete:hover { background: rgba(220,53,69,0.18) !important; }

/* ── FAILED BOOKINGS — usa solo Bootstrap, cubierto por reglas globales ─── */
/* .card-header.bg-white ya cubierto; table-light cubierto; sin CSS extra */

/* ── ADMIN STATS: btn-group presets active (ya cubierto arriba) ──────────── */
/* Resto usa Bootstrap cards + tables → cubierto por reglas globales */

/* =========================================================
   ADMIN STATS + ADMIN TRANSACTIONS — dark mode additions
   ========================================================= */

/* Encabezado estándar (bg-white rounded-3): ya cubierto por regla global bg-white.
   Borde al nivel unificado del sitio para delimitar la sección. */
html.dark .bg-white.rounded-3.shadow-sm {
    border: 1px solid rgba(255,255,255,0.12) !important;
}

/* Valores numéricos coloreados en verde oscuro (#2e7d32) — IDs específicos */
html.dark #sales-summary-lucro,
html.dark #tx-stat-profit { color: #34d399 !important; }

/* Clase .platform-profit usada en JS-rendered HTML de tablas y mobile cards */
html.dark .platform-profit { color: #34d399 !important; }

/* Mobile cards — cabecera (tx-card-top) y separadores internos (tx-sep) */
html.dark .tx-card-top { background: #1a1a1a !important; }
html.dark .tx-card-sub { background: #151515 !important; }

html.dark .tx-sep,
html.dark .tx-sep.border-top,
html.dark .tx-sep.border-end { border-color: rgba(255,255,255,0.07) !important; }

/* text-success en dark mode (Bootstrap usa #198754 — oscuro sobre fondo oscuro) */
html.dark .text-success { color: #34d399 !important; }

/* =========================================================
   AUTH PAGES — Login, Register, Forgot Password, Reset
   ========================================================= */

/* Fondo completo de pantalla — reemplaza el gradiente rosa */
html.dark div.bg-gradient {
    background: #0a0a0a !important;
}

/* Card central */
html.dark .login-wrapper .card {
    background: #111111 !important;
    border-color: rgba(255,255,255,0.07) !important;
    box-shadow: 0 8px 32px rgba(0,0,0,0.6) !important;
}

/* Título h3 dentro del card */
html.dark .login-wrapper h3 {
    color: #e2e8f0 !important;
}

/* Párrafos y spans */
html.dark .login-wrapper p,
html.dark .login-wrapper .card-body > div > span {
    color: #94a3b8 !important;
}

/* Labels */
html.dark .login-wrapper .form-label {
    color: #94a3b8 !important;
}

/* Inputs */
html.dark .login-wrapper .form-control,
html.dark .login-wrapper .wpcf7-form-control {
    background-color: #1a1a1a !important;
    border-color: rgba(255,255,255,0.12) !important;
    color: #e2e8f0 !important;
}
html.dark .login-wrapper .form-control::placeholder,
html.dark .login-wrapper .wpcf7-form-control::placeholder {
    color: #475569 !important;
}
html.dark .login-wrapper .form-control:focus,
html.dark .login-wrapper .wpcf7-form-control:focus {
    background-color: #1e1e1e !important;
    border-color: #ff0c81 !important;
    box-shadow: 0 0 0 0.2rem rgba(255,12,129,0.2) !important;
    color: #f1f5f9 !important;
}

/* Checkbox */
html.dark .login-wrapper .form-check-input {
    background-color: #1a1a1a !important;
    border-color: rgba(255,255,255,0.2) !important;
}
html.dark .login-wrapper .form-check-input:checked {
    background-color: #ff0c81 !important;
    border-color: #ff0c81 !important;
}
html.dark .login-wrapper .form-check-label {
    color: #94a3b8 !important;
}

/* HR separador (inline style border-color #eee) */
html.dark .login-wrapper hr {
    border-color: rgba(255,255,255,0.08) !important;
    border-top-color: rgba(255,255,255,0.08) !important;
}

/* Links */
html.dark .login-wrapper a {
    color: #ff6bb2 !important;
}
html.dark .login-wrapper a:hover {
    color: #ff0c81 !important;
}
html.dark .login-wrapper .btn-link {
    color: #94a3b8 !important;
}

/* Alertas */
html.dark .login-wrapper .alert-danger {
    background: rgba(220,53,69,0.12) !important;
    border-color: rgba(220,53,69,0.3) !important;
    color: #f87171 !important;
}
html.dark .login-wrapper .alert-success {
    background: rgba(16,185,129,0.1) !important;
    border-color: rgba(16,185,129,0.3) !important;
    color: #34d399 !important;
}
html.dark .login-wrapper .alert-info {
    background: rgba(59,130,246,0.1) !important;
    border-color: rgba(59,130,246,0.3) !important;
    color: #93c5fd !important;
}
html.dark .login-wrapper .alert-info a {
    color: #60a5fa !important;
}

/* Mensajes de error de validación */
html.dark .login-wrapper .invalid-feedback {
    color: #f87171 !important;
}
html.dark .login-wrapper .text-danger {
    color: #f87171 !important;
}
html.dark .login-wrapper .is-invalid {
    border-color: rgba(220,53,69,0.6) !important;
}

/* ============================================================
   GUEST LIST DETAIL — GuestListDetail.vue (scoped → !important)
   ============================================================ */

/* Header card */
html.dark .gd-header {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.45) !important;
}
html.dark .gd-title { color: #e2e8f0 !important; }
html.dark .gd-validity-info { color: #64748b !important; }
html.dark .gd-validity-info strong { color: #cbd5e1 !important; }
html.dark .gd-reward-info { color: #fbbf24 !important; }
html.dark .gd-stat { color: #64748b !important; }
html.dark .gd-staff-info { color: #64748b !important; }

/* Staff chip (purple pill) */
html.dark .gd-staff-chip {
    background: rgba(139,92,246,0.15) !important;
    color: #a78bfa !important;
}

/* Add-event dashed button */
html.dark .gd-add-event-btn {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.15) !important;
    color: #475569 !important;
}

/* Add form */
html.dark .gd-add-form {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .gd-section-title { color: #e2e8f0 !important; }
html.dark .gd-field label { color: #94a3b8 !important; }
html.dark .gd-field input,
html.dark .gd-field select {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}

/* Table wrap */
html.dark .gd-table-wrap {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}

/* Search bar inside table header */
html.dark .gd-search-input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}
html.dark .gd-search-input::placeholder { color: #334155 !important; }
html.dark .gd-search-ico   { color: #334155 !important; }
html.dark .gd-search-clear { color: #334155 !important; }

/* Table headers */
html.dark .gd-table th {
    color: #475569 !important;
    border-bottom-color: rgba(255,255,255,0.08) !important;
}

/* Table cells */
html.dark .gd-table td {
    color: #cbd5e1 !important;
    border-bottom-color: rgba(255,255,255,0.05) !important;
}

/* Guest rows */
html.dark .gd-guest-row {
    border-bottom-color: rgba(255,255,255,0.05) !important;
}
html.dark .gd-guest-row:hover {
    background: rgba(255,255,255,0.03) !important;
}
html.dark .gd-guest-row--checkedin {
    background: rgba(16,185,129,0.06) !important;
}
html.dark .gd-guest-row--checkedin:hover {
    background: rgba(16,185,129,0.1) !important;
}
html.dark .gd-guest-name { color: #e2e8f0 !important; }
html.dark .gd-doc-pill   { color: #64748b !important; }

/* Expanded guest detail panel */
html.dark .gd-guest-detail {
    background: #0d0d0d !important;
    border-top-color: rgba(255,255,255,0.05) !important;
}
html.dark .gd-detail-item { color: #94a3b8 !important; }

/* Inline badges */
html.dark .gd-doc-type {
    background: #1a1a1a !important;
    color: #64748b !important;
}
html.dark .gd-reward-badge {
    background: rgba(232,33,124,0.1) !important;
    color: #f9a8d4 !important;
}
html.dark .gd-no-reward { color: #334155 !important; }

/* Check-in status badges */
html.dark .gd-checkin-yes {
    background: rgba(16,185,129,0.12) !important;
    color: #34d399 !important;
}
html.dark .gd-checkin-no {
    background: #1a1a1a !important;
    color: #475569 !important;
}
html.dark .gd-row-checkedin {
    background: rgba(16,185,129,0.05) !important;
}

/* Import/export message banners */
html.dark .gd-import-msg.success {
    background: rgba(16,185,129,0.1) !important;
    color: #34d399 !important;
}
html.dark .gd-import-msg.error {
    background: rgba(239,68,68,0.1) !important;
    color: #f87171 !important;
}

/* Staff assignment modal — checkboxes list */
html.dark .gd-staff-checkboxes {
    scrollbar-color: #1a1a1a transparent;
}
html.dark .gd-staff-check-item {
    background: #111 !important;
    color: #94a3b8 !important;
}
html.dark .gd-staff-check-item:hover { background: #1a1a1a !important; }
html.dark .gd-staff-name  { color: #e2e8f0 !important; }
html.dark .gd-staff-email { color: #475569 !important; }

/* Staff search input inside modal */
html.dark .gd-search-inline i { color: #334155 !important; }
html.dark .gd-search-inline input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}

/* ============================================================
   ORGANISER BOOKINGS — OrganiserBooking.vue (ob-*)
   ============================================================ */

/* Page background */
html.dark .ob-page { background: #0a0a0a !important; }

/* Header card */
html.dark .ob-header {
    background: #111 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark .ob-header__title { color: #e2e8f0 !important; }
html.dark .ob-header__sub   { color: #475569 !important; }

/* Reset / secondary button */
html.dark .ob-reset-btn {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.12) !important;
    color: #94a3b8 !important;
}
html.dark .ob-reset-btn:hover {
    background: #222 !important;
    color: #e2e8f0 !important;
}

/* Filter panel */
html.dark .ob-filters {
    background: #111 !important;
    border-color: rgba(255,255,255,0.07) !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.35) !important;
}
html.dark .ob-label { color: #334155 !important; }
html.dark .ob-input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}
html.dark .ob-input-icon__icon { color: #334155 !important; }

/* vue-select inside ob-page (unscoped rules) */
html.dark .ob-page .vs__dropdown-toggle {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
}
html.dark .ob-page .vs__search,
html.dark .ob-page .vs__selected { color: #e2e8f0 !important; }
html.dark .ob-page .vs__search::placeholder { color: #334155 !important; }
html.dark .ob-page .vs__clear,
html.dark .ob-page .vs__open-indicator { color: #475569 !important; }
html.dark .ob-page .vs__dropdown-menu {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark .ob-page .vs__dropdown-option { color: #cbd5e1 !important; }
html.dark .ob-page .vs__dropdown-option--highlight,
html.dark .ob-page .vs__dropdown-option--selected {
    background: #ff0c81 !important;
    color: #fff !important;
}

/* Datepicker inside ob-page (unscoped rules) */
html.dark .ob-page .ob-datepicker .mx-input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #e2e8f0 !important;
}
html.dark .ob-page .ob-datepicker .mx-icon-calendar,
html.dark .ob-page .ob-datepicker .mx-icon-clear { color: #334155 !important; }

/* Booking card */
html.dark .ob-card {
    background: #111 !important;
    border-color: rgba(255,255,255,0.07) !important;
    box-shadow: 0 2px 14px rgba(0,0,0,0.4) !important;
}
html.dark .ob-card:hover {
    box-shadow: 0 6px 28px rgba(255,12,129,0.15) !important;
}

/* Card body */
html.dark .ob-customer {
    border-bottom-color: rgba(255,255,255,0.06) !important;
}
html.dark .ob-customer__name  { color: #e2e8f0 !important; }
html.dark .ob-customer__email { color: #64748b !important; }
html.dark .ob-customer__rut   { color: #475569 !important; }
html.dark .ob-body__ticket    { color: #94a3b8 !important; }
html.dark .ob-body__price     { color: #f1f5f9 !important; }
html.dark .ob-body__currency  { color: #475569 !important; }
html.dark .ob-body__bkdate    { color: #475569 !important; }

/* Tag badges — dark variants */
html.dark .ob-tag--online  { background: rgba(34,197,94,0.1) !important;  color: #86efac !important; }
html.dark .ob-tag--offline { background: #1a1a1a !important;              color: #64748b !important; }
html.dark .ob-tag--paid    { background: rgba(34,197,94,0.1) !important;  color: #86efac !important; }
html.dark .ob-tag--unpaid  { background: rgba(234,88,12,0.1) !important;  color: #fdba74 !important; }
html.dark .ob-tag--checkin { background: rgba(59,130,246,0.1) !important; color: #93c5fd !important; }
html.dark .ob-tag--reward  { background: rgba(255,12,129,0.1) !important; color: #f9a8d4 !important; }
html.dark .ob-tag--pending { background: rgba(234,88,12,0.1) !important;  color: #fdba74 !important; }
html.dark .ob-tag--cancelled { background: rgba(220,38,38,0.1) !important; color: #fca5a5 !important; }
html.dark .ob-tag--refunded  { background: rgba(34,197,94,0.1) !important;  color: #86efac !important; }

/* Tear dashed separator */
html.dark .ob-tear { border-top-color: rgba(255,255,255,0.08) !important; }
html.dark .ob-tear__notch {
    background: #111 !important;
    border-color: rgba(255,255,255,0.08) !important;
}

/* Actions section */
html.dark .ob-actions__view {
    border-top-color: rgba(255,255,255,0.06) !important;
}
html.dark .ob-btn {
    border-color: rgba(255,255,255,0.15) !important;
    color: #94a3b8 !important;
}
html.dark .ob-btn--edit {
    border-color: rgba(124,58,237,0.4) !important;
    color: #a78bfa !important;
}

/* Empty state */
html.dark .ob-empty__icon { color: #1e293b !important; }
html.dark .ob-empty__text { color: #334155 !important; }

/* Pagination */
html.dark .ob-pg-btn {
    background: #111 !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #64748b !important;
}
html.dark .ob-pg-btn:hover:not(:disabled) {
    border-color: #ff0c81 !important;
    color: #ff0c81 !important;
    background: rgba(255,12,129,0.08) !important;
}
html.dark .ob-pg-ellipsis { color: #334155 !important; }
html.dark .ob-pg-info     { color: #334155 !important; }

/* ============================================================
   /dashboard/mis-campanas/crear — HTML propio + multi-selección
   (modal de HTML, listas de grupos/eventos con buscador)
   ============================================================ */

/* Modal "Usar HTML propio" (inline background:#fff en wrapper) */
html.dark #htmlPickerModal > div { background: #111 !important; border-color: rgba(255,255,255,0.08) !important; }
html.dark #custom-html-input,
html.dark #custom-html-file { background: #1a1a1a !important; border-color: rgba(255,255,255,0.1) !important; color: #e2e8f0 !important; }
html.dark #custom-html-input::placeholder { color: #475569 !important; }

/* Listas con checkboxes: grupos propios y eventos (inline background:#fff) */
html.dark #panel-own_list .border.rounded-2,
html.dark #panel-event_audience .border.rounded-2 { background: #111 !important; border-color: rgba(255,255,255,0.08) !important; }
html.dark #panel-own_list .border.rounded-2 .border-bottom,
html.dark #panel-event_audience .border.rounded-2 .border-bottom { border-bottom-color: rgba(255,255,255,0.06) !important; }
html.dark .own-group-item, html.dark .event-aud-item { color: #cbd5e1 !important; }
html.dark .own-group-item .text-muted, html.dark .event-aud-item .text-muted { color: #64748b !important; }
html.dark .own-group-item:hover, html.dark .event-aud-item:hover { background: rgba(255,255,255,0.03) !important; }

/* Buscadores dentro de las listas (form-control border-0) */
html.dark #own-group-search, html.dark #event-aud-search { background: #111 !important; color: #e2e8f0 !important; }
html.dark #own-group-search::placeholder, html.dark #event-aud-search::placeholder { color: #475569 !important; }

/* Hint de seguridad del bloque "HTML propio" (inline background:#f1f5f9) */
html.dark .be-sec-hint { background: #1a1a1a !important; color: #94a3b8 !important; }

/* Textos de ayuda bajo los campos (Bootstrap .form-text, sin regla global) */
html.dark .form-text { color: #64748b !important; }

/* ============================================================
   /dashboard/mis-campanas/crear — Auditoría dark mode completa
   (contrastes, límites de sección, botones, textos)
   ============================================================ */

/* ── Límites de sección (global): cards con border-0 + shadow-sm pierden
      la sombra en oscuro y no se distinguen del fondo. Restaurar borde. ── */
html.dark .card.border-0.shadow-sm {
    border: 1px solid rgba(255,255,255,0.10) !important;
}

/* Botón outline-success sin regla dark (ej: "Importar CSV" en estados vacíos) */
html.dark .btn-outline-success {
    border-color: rgba(16,185,129,0.45) !important;
    color: #34d399 !important;
}
html.dark .btn-outline-success:hover {
    background: rgba(16,185,129,0.12) !important;
    color: #6ee7b7 !important;
}

/* ── Toolboxes del editor: paleta "Agregar:" y selector de color
      (inline background:#f8f9fa / border #e9ecef) ── */
html.dark .be-toolbox {
    background: #0d0d0d !important;
    border-color: rgba(255,255,255,0.08) !important;
}

/* Swatch de color personalizado (borde dashed gris claro) */
html.dark .be-toolbox label[title="Color personalizado"] { border-color: #475569 !important; }

/* ── Botones outline sin regla dark ── */
html.dark .btn-outline-primary {
    border-color: rgba(255,12,129,0.5) !important;
    color: #ff6bb2 !important;
}
html.dark .btn-outline-primary:hover {
    background: rgba(255,12,129,0.12) !important;
    border-color: #ff0c81 !important;
    color: #ff8ac2 !important;
}
html.dark .btn-outline-danger {
    border-color: rgba(239,68,68,0.45) !important;
    color: #f87171 !important;
}
html.dark .btn-outline-danger:hover {
    background: rgba(239,68,68,0.12) !important;
    color: #fca5a5 !important;
}

/* ── Vista previa en vivo: separadores, botón pantalla completa y marco.
      El interior del iframe se queda claro a propósito (es el email). ── */
html.dark .lp-sep { background: rgba(255,255,255,0.10) !important; }
html.dark .lp-btn { border-color: rgba(255,255,255,0.15) !important; color: #94a3b8 !important; }
html.dark .lp-btn:hover { border-color: rgba(255,255,255,0.3) !important; color: #e2e8f0 !important; }
html.dark .lp-frame { border-color: rgba(255,255,255,0.12) !important; }

/* ── Cajas informativas del panel de audiencia (inline claros; además
      la regla genérica .aud-panel > div las pintaba #111 dejando el
      borde claro inline) ── */
html.dark .aud-panel .aud-note-ok {
    background: rgba(16,185,129,0.08) !important;
    border-color: rgba(16,185,129,0.3) !important;
}
html.dark .aud-panel .aud-note-warn {
    background: rgba(245,158,11,0.08) !important;
    border-color: rgba(245,158,11,0.3) !important;
}
html.dark .aud-panel .aud-note-warn p { color: #fbbf24 !important; }
html.dark .aud-panel .aud-note-empty {
    background: #111 !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #94a3b8 !important;
}

/* ── Estimado de audiencia: título y cifras usan #be185d inline,
      ilegible sobre fondo oscuro ── */
html.dark .pv-title { color: #f472b6 !important; }
html.dark #preview-content [style*="#be185d"] { color: #f472b6 !important; }

/* Link "Descartar" del borrador (inline #e11d48, muy oscuro) */
html.dark #draft-status a { color: #f87171 !important; }

/* ── Modales: tarjetas internas con inline background:#fafafa ── */
html.dark #eventPickerModal .ev-modal-item > div {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.08) !important;
}
html.dark #glistPickerModal .p-4 .border.rounded-2 {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.08) !important;
}
/* Placeholder de imagen de evento (inline #e5e7eb) */
html.dark #eventPickerModal [style*="#e5e7eb"] { background: #222 !important; }

/* Miniaturas de plantilla: mantener fondo claro (muestran el email),
   pero dar borde para que no "floten" */
html.dark #tplPickerModal .tpl-picker-thumb { border-bottom: 1px solid rgba(255,255,255,0.08); }

/* Texto de fecha límite en listas públicas (inline #d97706) */
html.dark #glistPickerModal [style*="#d97706"] { color: #fbbf24 !important; }

/* ── Texto de cuota en el encabezado (text-danger sin regla) ── */
html.dark .text-danger { color: #f87171 !important; }

/* Pestaña de audiencia activa: la regla genérica .aud-tab (gris !important)
   pisaba el blanco inline sobre fondo rosa */
html.dark .aud-tab.aud-tab-active { color: #fff !important; }

/* ============================================================
   BARRIDO DARK MODE — dashboard completo (mis-campañas lista/
   detalle, mis-plantillas, dashboard, admin stats/transacciones,
   mailing-profiles)
   ============================================================ */

/* ── Colores de texto inline demasiado oscuros para fondo negro.
      Selectores por atributo: solo matchean la declaración color: ── */
html.dark [style*="color:#be185d"]  { color: #f472b6 !important; }  /* totales rosa marca */
html.dark [style*="color:#4f46e5"]  { color: #818cf8 !important; }  /* índigo "Asistentes" */
html.dark [style*="color:#2563eb"]  { color: #93c5fd !important; }  /* azul inscripciones */
html.dark [style*="color:#16a34a"]  { color: #4ade80 !important; }  /* verde tendencias/compras */
html.dark [style*="color:#2e7d32"]  { color: #4ade80 !important; }  /* verde utilidad/stats */
html.dark [style*="color:#0284c7"]  { color: #7dd3fc !important; }  /* celeste comisión pasarela */
html.dark [style*="color:#059669"]  { color: #34d399 !important; }  /* verde esmeralda íconos */
html.dark [style*="color:#92400e"]  { color: #fbbf24 !important; }  /* café avisos ámbar */
html.dark [style*="color:#0d9488"]  { color: #2dd4bf !important; }  /* teal "Mis contactos" */

/* ── Círculos de íconos con fondos pastel (dashboard + admin stats) ── */
html.dark [style*="background:#fce4f0"] { background: rgba(255,1,131,0.16) !important; }
html.dark [style*="background:#ecfdf5"] { background: rgba(16,185,129,0.16) !important; }
html.dark [style*="background:#ede9fe"] { background: rgba(139,92,246,0.18) !important; }
html.dark [style*="background:#e8f5e9"] { background: rgba(34,197,94,0.16) !important; }

/* ── Badge amarillo con texto oscuro: el .text-dark global lo dejaba
      con texto claro sobre amarillo brillante ── */
html.dark .badge.bg-warning.text-dark {
    background: rgba(245,158,11,0.2) !important;
    color: #fcd34d !important;
}

/* ── Miniaturas de plantillas (se quedan claras porque muestran el
      email real) — borde para separarlas de la card oscura ── */
html.dark .tpl-thumb { border-bottom: 1px solid rgba(255,255,255,0.08); }

/* ── /dashboard/mailing-profiles ── */
/* Panel de links de campaña (inline background:#fafafa) */
html.dark #campModalLinks {
    background: #0d0d0d !important;
    border-bottom-color: rgba(255,255,255,0.08) !important;
}
/* Filas de links generadas por JS (border-bottom #f0f0f0 inline) */
html.dark [style*="border-bottom:1px solid #f0f0f0"] {
    border-bottom-color: rgba(255,255,255,0.08) !important;
}

/* ============================================================
   Página pública de organizador — /organizador/{nombre}
   (clases op-* definidas en eventmie-custom.css con !important)
   ============================================================ */
html.dark .op-page { background: #000 !important; }
html.dark .op-card {
    background: #111 !important;
    box-shadow: 0 4px 32px rgba(0,0,0,.5) !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
}
html.dark .op-name { color: #f1f5f9 !important; }
html.dark .op-desc { color: #94a3b8 !important; }
html.dark .op-desc-more { color: #ff6bb2 !important; }
html.dark .op-badge {
    background: rgba(255,12,129,.15) !important;
    color: #ff6bb2 !important;
}
/* Avatar: el borde blanco se convierte al color de la card */
html.dark .op-avatar {
    border-color: #111 !important;
    background: #1a1a1a !important;
}
html.dark .op-socials a {
    background: rgba(255,255,255,.08) !important;
    color: #cbd5e1 !important;
}
html.dark .op-socials a:hover {
    background: #ff0c81 !important;
    color: #fff !important;
}
html.dark .op-spotify {
    background: #0d0d0d !important;
    border-color: rgba(255,255,255,.08) !important;
}
html.dark .op-events-section { background: #000 !important; }
html.dark .organizer-events h2 { color: #f1f5f9 !important; }
html.dark .organizer-events .row + .row h2 { border-top-color: rgba(255,255,255,.1) !important; }
html.dark .ev-not-found { color: #94a3b8 !important; }

/* ============================================================
   /dashboard/cortesias — MEJORA DE CONTRASTE
   Los textos secundarios usaban #475569/#64748b (≈2.4:1 sobre
   #111, ilegible). Va al final del archivo para ganar a las dos
   secciones anteriores. AA mínimo: #94a3b8 (≈7:1).
   ============================================================ */

/* Subtítulos y metadatos */
html.dark .cort-subtitle,
html.dark .batch-subtitle,
html.dark .hist-group-meta,
html.dark .cort-stat-label,
html.dark .batch-progress-label,
html.dark .group-footer-info,
html.dark .dest-count,
html.dark .batch-email-qty,
html.dark .cort-empty { color: #94a3b8 !important; }

/* Encabezados de tablas del wizard y preview */
html.dark .wizard-rows-table thead th,
html.dark .preview-table th { color: #94a3b8 !important; }

/* Pasos inactivos del wizard */
html.dark .wizard-step { color: #94a3b8 !important; }

/* Números de fila, íconos de colapso y botón eliminar fila */
html.dark .td-num,
html.dark .hist-toggle-icon,
html.dark .row-del-btn { color: #64748b !important; }

/* Estado vacío de la tabla de destinatarios */
html.dark .wizard-rows-empty   { color: #94a3b8 !important; }
html.dark .wizard-rows-empty i { color: #64748b !important; }

/* Chip "restantes" del lote y badge cancelada */
html.dark .batch-chip--rem  { color: #94a3b8 !important; }
html.dark .badge-cancelled  { color: #94a3b8 !important; }

/* Valores de cuota: verdes/ámbar/rojos oscuros ilegibles en oscuro */
html.dark .quota-val                      { color: #34d399 !important; }
html.dark .wizard-quota.warn .quota-val   { color: #fbbf24 !important; }
html.dark .wizard-quota.danger .quota-val { color: #f87171 !important; }

/* Error de email en lote */
html.dark .batch-email-err { color: #f87171 !important; }

/* Límites de sección en cortesías: las tarjetas usan solo sombra
   (invisible sobre negro) — borde sutil para delimitarlas */
html.dark .cort-header,
html.dark .cort-wizard,
html.dark .cort-batch-card,
html.dark .cort-stat-card,
html.dark .hist-group,
html.dark .cort-filter {
    border: 1px solid rgba(255,255,255,0.1) !important;
}

/* ============================================================
   /dashboard/mybookings — MEJORA DE CONTRASTE
   (rules bk-* existentes usaban grises ≤3:1; se corrige al final
   del archivo para prevalecer)
   ============================================================ */
html.dark .bk-label       { color: #94a3b8 !important; }
html.dark .bk-btn--cal    { color: #94a3b8 !important; border-color: rgba(255,255,255,0.2) !important; }
html.dark .bk-empty__text { color: #94a3b8 !important; }
html.dark .bk-empty__icon { color: #475569 !important; }

/* Botón cancelar reserva: rojo bootstrap oscuro ilegible sobre negro */
html.dark .bk-btn--danger {
    border-color: rgba(248,113,113,0.5) !important;
    color: #f87171 !important;
}
html.dark .bk-btn--danger:hover,
html.dark .bk-btn--danger:focus {
    background: #dc3545 !important;
    border-color: #dc3545 !important;
    color: #fff !important;
}

/* ============================================================
   /dashboard/bookings (organizador) — MEJORA DE CONTRASTE
   Mismos grises ≤3:1 que cortesías; se corrige al final del
   archivo para prevalecer sobre las reglas ob-* anteriores.
   ============================================================ */

/* Textos secundarios de las tarjetas de reserva */
html.dark .ob-customer__rut  { color: #94a3b8 !important; }
html.dark .ob-body__bkdate   { color: #94a3b8 !important; }

/* Etiquetas de filtros e íconos de inputs */
html.dark .ob-label            { color: #94a3b8 !important; }
html.dark .ob-input-icon__icon { color: #94a3b8 !important; }

/* Placeholder de búsqueda: un punto más visible sin gritar */
html.dark .ob-search-input::placeholder { color: #7c8ba1 !important; }

/* Estado vacío */
html.dark .ob-empty__text { color: #94a3b8 !important; }
html.dark .ob-empty__icon { color: #475569 !important; }

/* Paginación: info y puntos suspensivos */
html.dark .ob-pg-info     { color: #94a3b8 !important; }
html.dark .ob-pg-ellipsis { color: #64748b !important; }

/* Botón "Editar" (violeta #7c3aed ilegible sobre negro) */
html.dark .ob-btn--edit {
    border-color: rgba(167,139,250,0.5) !important;
    color: #a78bfa !important;
}
html.dark .ob-btn--edit:hover,
html.dark .ob-btn--edit:focus {
    background: #ff0c81 !important;
    border-color: #ff0c81 !important;
    color: #fff !important;
}

/* Íconos del datepicker */
html.dark .ob-page .ob-datepicker .mx-icon-calendar,
html.dark .ob-page .ob-datepicker .mx-icon-clear { color: #94a3b8 !important; }

/* ============================================================
   LÍNEA DE BORDE UNIFICADA EN MODO OSCURO
   Todos los contenedores de sección (headers de página, cards,
   paneles de filtros) llevan la misma línea visible que delimita
   dónde empieza y termina cada bloque. Al final del archivo para
   prevalecer sobre valores anteriores más tenues.
   ============================================================ */

/* Headers de página genéricos (mailing, contactos, stats, etc.) */
html.dark .bg-white.rounded-3 { border: 1px solid rgba(255,255,255,0.12) !important; }

/* Cards del dashboard (mailing, contactos, campañas, detalle) */
html.dark .card.border-0.shadow-sm { border: 1px solid rgba(255,255,255,0.12) !important; }

/* Reservas organizador: header, panel de filtros y buscador
   (sin borde base en claro — hay que crearlo completo) */
html.dark .ob-header,
html.dark .ob-filter-panel,
html.dark .ob-search-box { border: 1px solid rgba(255,255,255,0.12) !important; }

/* Reservas clientes: barra de filtros y tarjetas */
html.dark .bk-filters,
html.dark .bk-card { border: 1px solid rgba(255,255,255,0.12) !important; }

/* Tarjetas de reserva del organizador */
html.dark .ob-card { border: 1px solid rgba(255,255,255,0.12) !important; }

/* Cortesías: unificar al mismo nivel */
html.dark .cort-header,
html.dark .cort-wizard,
html.dark .cort-batch-card,
html.dark .cort-stat-card,
html.dark .hist-group,
html.dark .cort-filter { border: 1px solid rgba(255,255,255,0.12) !important; }

/* Listas / tags */
html.dark .tl-header,
html.dark .tl-card,
html.dark .tl-empty { border: 1px solid rgba(255,255,255,0.12) !important; }

/* ============================================================
   /dashboard/myevents — ajustes dark
   ============================================================ */

/* Gris-500 inline (etiquetas "Código:", avisos del panel POS y
   cualquier otro texto con color:#6b7280 inline): ~3.9:1 sobre
   negro → aclarar globalmente en oscuro */
html.dark [style*="color:#6b7280"] { color: #94a3b8 !important; }

/* Botón copiar link de venta (POS): azul marino casi negro */
html.dark .pos-copy-btn { background: #1e293b !important; }
html.dark .pos-copy-btn:hover { background: #334155 !important; }
html.dark .pos-copy-btn--ok { background: #10b981 !important; }

/* ============================================================
   /dashboard/guest-lists — MEJORA DE CONTRASTE
   (títulos correctos; textos secundarios usaban #475569/#64748b)
   ============================================================ */

/* Textos secundarios → legibles (~7:1) */
html.dark .gd-staff-email,
html.dark .gl-staff-email,
html.dark .gd-table th,
html.dark .gd-doc-pill,
html.dark .gd-validity-info,
html.dark .gd-reward-info,
html.dark .gd-no-reward,
html.dark .gd-stat,
html.dark .gl-card-stat,
html.dark .gl-card-creator,
html.dark .gl-subtitle,
html.dark .gl-hint,
html.dark .gl-no-events,
html.dark .gl-page-info,
html.dark .gl-select-empty { color: #94a3b8 !important; }

/* Quitar invitado de un evento (rosa oscuro ilegible) */
html.dark .gd-chip-remove { color: #f472b6 !important; }

/* Mensajes de resultado de importación CSV */
html.dark .gd-import-msg.success {
    background: rgba(16,185,129,0.12) !important;
    color: #34d399 !important;
}
html.dark .gd-import-msg.error {
    background: rgba(239,68,68,0.12) !important;
    color: #f87171 !important;
}

/* Mensajes de error de formularios */
html.dark .gl-error { color: #f87171 !important; }

/* Línea de borde unificada también en guest-lists (solo tenían sombra) */
html.dark .gl-header,
html.dark .gl-card,
html.dark .gd-header,
html.dark .gd-panel,
html.dark .gd-section,
html.dark .gd-staff-info-block,
html.dark .gl-staff-info-block { border: 1px solid rgba(255,255,255,0.12) !important; }

/* ============================================================
   /dashboard/myevents — modales de reportes (Check-ins, Ventas
   Referidas, Cortesías): HTML generado por JS con estilos inline
   claros que quedaban blancos dentro del modal oscuro
   ============================================================ */

/* Tarjetas blancas, filas cebra y thead sticky de los reportes */
html.dark #checkinsReportBody [style*="background: white"],
html.dark #referralSalesBody [style*="background: white"],
html.dark #checkinsReportBody [style*="background: #f8f9fa"],
html.dark #referralSalesBody [style*="background: #f8f9fa"],
html.dark #checkinsReportBody [style*="background-color: #f8f9fa"],
html.dark #referralSalesBody [style*="background-color: #f8f9fa"] {
    background: #1a1a1a !important;
}

/* Bordes #ddd de las tarjetas de reporte */
html.dark #checkinsReportBody [style*="#ddd"],
html.dark #referralSalesBody [style*="#ddd"] {
    border-color: rgba(255,255,255,0.12) !important;
}

/* Textos grises inline de los reportes */
html.dark #checkinsReportBody [style*="color: #999"],
html.dark #referralSalesBody [style*="color: #999"],
html.dark #checkinsReportBody [style*="color: #666"],
html.dark #referralSalesBody [style*="color: #666"],
html.dark #checkinsReportBody [style*="color: #333"],
html.dark #referralSalesBody [style*="color: #333"] { color: #94a3b8 !important; }

/* Items destacados rosa pastel (cortesías vinculadas) */
html.dark [style*="background:#fff5f8"] {
    background: rgba(236,64,122,0.12) !important;
}

/* Zona de arrastre de Excel (cortesías) */
html.dark #excelDropZone {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.2) !important;
}

/* Cajas de estadísticas del modal de cortesías (pasteles claros) */
html.dark .courtesy-stat-box.success { background: rgba(34,197,94,0.12) !important; }
html.dark .courtesy-stat-box.warning { background: rgba(245,158,11,0.12) !important; }
html.dark .courtesy-stat-box.error   { background: rgba(239,68,68,0.12) !important; }
html.dark .courtesy-stat-number { color: #f1f5f9 !important; }
html.dark .courtesy-stat-label  { color: #94a3b8 !important; }

/* Header de la vista POS (myevents rol punto de venta): misma línea unificada */
html.dark .pos-header { border: 1px solid rgba(255,255,255,0.12) !important; }
html.dark .pos-card   { border: 1px solid rgba(255,255,255,0.12) !important; }

/* ============================================================
   /dashboard/myvenues — header y contraste
   ============================================================ */

/* El header del título es transparente en esta página (sin card).
   En oscuro se le da el mismo tratamiento delimitado del resto. */
html.dark .venue-header {
    background: #111 !important;
    border: 1px solid rgba(255,255,255,0.12) !important;
    border-radius: 14px;
    padding-bottom: 1.5rem !important;
    margin-bottom: 1rem;
}

/* Tarjetas de lugares: línea unificada */
html.dark .venue-card { border: 1px solid rgba(255,255,255,0.12) !important; }

/* Textos secundarios tenues → legibles */
html.dark .venue-card-location    { color: #94a3b8 !important; }
html.dark .venue-cap-badge        { color: #94a3b8 !important; }
html.dark .venue-preview-capacity { color: #94a3b8 !important; }
html.dark .venue-preview-capacity i { color: #64748b !important; }
html.dark .venue-empty            { color: #94a3b8 !important; }

/* ============================================================
   /dashboard/myvenues (bundle real: clases vl-*)
   El div del título (.vl-header) tenía fondo oscuro pero sin la
   línea de borde unificada del sitio.
   ============================================================ */
html.dark .vl-header,
html.dark .vl-card,
html.dark .vl-empty { border: 1px solid rgba(255,255,255,0.12) !important; }

/* Contraste de textos secundarios */
html.dark .vl-header-sub    { color: #94a3b8 !important; }
html.dark .vl-card-location { color: #94a3b8 !important; }
html.dark .vl-search-icon   { color: #64748b !important; }
html.dark .vl-search-input::placeholder { color: #7c8ba1 !important; }

/* ============================================================
   /dashboard/sub_organizers — CONTRASTE + línea unificada
   ============================================================ */

/* Textos secundarios tenues → legibles */
html.dark .suborg-subtitle,
html.dark .suborg-card-email,
html.dark .suborg-email,
html.dark .suborg-role-desc,
html.dark .suborg-refcode-label,
html.dark .suborg-empty { color: #94a3b8 !important; }

/* Línea de borde unificada en header, tarjetas y secciones */
html.dark .suborg-header,
html.dark .suborg-card,
html.dark .suborg-role-card,
html.dark .suborg-section,
html.dark .suborg-empty { border: 1px solid rgba(255,255,255,0.12) !important; }

/* ============================================================
   /dashboard/guest-lists/{id} — tabla de invitados y buscador
   (placeholder/íconos del buscador estaban en #334155 ≈1.7:1)
   ============================================================ */
html.dark .gd-search-input::placeholder { color: #7c8ba1 !important; }
html.dark .gd-search-ico   { color: #64748b !important; }
html.dark .gd-search-clear { color: #64748b !important; }
html.dark .gd-search-clear:hover { color: #e2e8f0 !important; }

/* Chip "sin check-in" ilegible */
html.dark .gd-checkin-no { color: #94a3b8 !important; }

/* Filas de la tabla: texto principal más presente y hover visible */
html.dark .gd-table td { color: #e2e8f0 !important; }
html.dark .gd-table tbody tr:hover td { background: rgba(255,255,255,0.04) !important; }

/* Botones de acción por fila (lápiz/papelera): eran casi invisibles */
html.dark .gl-icon-btn { color: #94a3b8 !important; }
html.dark .gl-icon-btn-danger { color: #f87171 !important; }

/* ============================================================
   /events/{slug} — PÁGINA DE EVENTO / CHECKOUT — auditoría dark
   ============================================================ */

/* ── Stepper de cantidad de tickets ── */
html.dark .quantity-input {
    background: #1a1a1a !important;
    color: #e2e8f0 !important;
}

/* ── Banner de fecha seleccionada (texto azul marino ilegible) ── */
html.dark .selected-date-banner {
    background: rgba(255,12,129,0.1) !important;
    color: #e2e8f0 !important;
}

/* ── Calendario de tour ── */
html.dark .tour-cal-mes-label   { color: #e2e8f0 !important; }
html.dark .tour-cal-weekdays span { color: #94a3b8 !important; }
html.dark .tour-cal-cell        { color: #cbd5e1 !important; }
html.dark .tour-cal-instruccion {
    color: #cbd5e1 !important;
    background: rgba(255,12,129,0.1) !important;
}
html.dark .tour-no-tickets-msg {
    background: #1a1a1a !important;
    color: #94a3b8 !important;
    border-left-color: rgba(255,255,255,0.25) !important;
}

/* ── Tarjetas de ciudad del tour (fondo blanco) ── */
html.dark .tour-ciudad-card {
    background: #111 !important;
    border-color: rgba(255,255,255,0.12) !important;
}
html.dark .tour-ciudad-show-btn {
    background: #1a1a1a !important;
    color: #ff6bb2 !important;
    border-color: rgba(255,12,129,0.5) !important;
}
html.dark .tour-ciudad-show-btn:hover:not(:disabled) {
    background: #ff0c81 !important;
    color: #fff !important;
}
html.dark .tour-ciudad-show-hora { color: #e2e8f0 !important; }
html.dark .tour-ciudad-show-dir  { color: #94a3b8 !important; }

/* ── Selector de país del teléfono (menú blanco) ── */
html.dark .phone-country-menu {
    background: #111 !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,0.6) !important;
}
html.dark .phone-country-item {
    background: transparent !important;
    color: #cbd5e1 !important;
}
html.dark .phone-country-item:hover { background: rgba(255,255,255,0.06) !important; }

/* ── Buscador de staff (referidos) ── */
html.dark .staff-search-input {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.12) !important;
    color: #e2e8f0 !important;
}
html.dark .staff-search-input::placeholder { color: #7c8ba1 !important; }
/* Estado seleccionado de tarjeta de staff (celeste claro inline) */
html.dark .staff-card.selected .card-body { background: rgba(255,12,129,0.08) !important; }

/* ── Formulario de tarjeta (Stripe) ── */
html.dark .card-form { background: #111 !important; }
html.dark .card-input__label { color: #94a3b8 !important; }
html.dark .card-input input,
html.dark .card-form input,
html.dark .card-form select {
    background: #1a1a1a !important;
    border-color: rgba(255,255,255,0.12) !important;
    color: #e2e8f0 !important;
}

/* ── Descripción del evento: HTML libre del organizador. Se normaliza
      el color en oscuro (texto pegado desde Word suele venir negro)
      y se anulan fondos claros pegados ── */
html.dark .event-description-content,
html.dark .event-description-content * {
    color: #cbd5e1 !important;
    background-color: transparent !important;
}
html.dark .event-description-content a { color: #ff6bb2 !important; }
html.dark .event-description-content strong,
html.dark .event-description-content b,
html.dark .event-description-content h1,
html.dark .event-description-content h2,
html.dark .event-description-content h3,
html.dark .event-description-content h4 { color: #f1f5f9 !important; }

/* ── Countdown "Las ventas abren en": card blanca forzada + título navy ── */
html.dark [style*="border:2px solid #ff0c81"] { background: #111 !important; }
html.dark [style*="color:#1a3b5d"] { color: #e2e8f0 !important; }
html.dark [style*="color:#08142f"] { color: #e2e8f0 !important; }

/* ── Ícono TikTok negro en modal de staff ── */
html.dark #staffModalTiktok { color: #e2e8f0 !important; }
