/* Perumapa ? modo oscuro global (html/body.modo-oscuro) */

:root {
    --pm-ink: #1A1A1A;
    --pm-muted: #5C5C5C;
    --pm-line: #E6E2DE;
    --pm-paper: #F4F7F5;
    --pm-card: #FFFFFF;
    --pm-red: #B11226;
}

html.modo-oscuro,
html.modo-oscuro body,
body.modo-oscuro {
    --pm-ink: #F3F4F6;
    --pm-muted: #A1A1AA;
    --pm-line: #2A2F36;
    --pm-paper: #0F1419;
    --pm-card: #171B22;
    --pm-red: #EF4444;
    /* Compat con p?ginas que usan sus propias vars */
    --ink: #F3F4F6;
    --muted: #A1A1AA;
    --line: #2A2F36;
    --paper: #0F1419;
    --white: #171B22;
    --card: #171B22;
    --meta: #A1A1AA;
    --red: #EF4444;
    --red-deep: #DC2626;
    --tur-ink: #F3F4F6;
    --tur-muted: #A1A1AA;
    --tur-line: #2A2F36;
    --tur-paper: #0F1419;
    --tur-card: #171B22;
    color-scheme: dark;
}

html.modo-oscuro body,
body.modo-oscuro {
    background-color: var(--pm-paper) !important;
    color: var(--pm-ink) !important;
}

/* Preferencias: idioma + tema */
.prefs-bar {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 999px;
    padding: .28rem;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .16);
    font-family: Manrope, Nunito, system-ui, sans-serif;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    z-index: 9999;
}
.prefs-bar .prefs-sep {
    width: 1px;
    height: 1.35rem;
    background: rgba(15, 23, 42, .12);
    flex-shrink: 0;
}
.prefs-bar .lang-switch,
.prefs-bar .theme-toggle {
    position: static !important;
    display: inline-flex;
    gap: .25rem;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    border-radius: 0;
    backdrop-filter: none;
    right: auto !important;
    left: auto !important;
    bottom: auto !important;
}
.prefs-bar .lang-switch button,
.prefs-bar .theme-toggle button {
    border: 0;
    background: transparent;
    min-width: 2.35rem;
    height: 2.05rem;
    padding: 0 .55rem;
    border-radius: 999px;
    cursor: pointer;
    font-size: .68rem;
    font-weight: 800;
    color: #64748b;
    letter-spacing: .04em;
    text-transform: uppercase;
    transition: background .2s ease, color .2s ease, transform .15s ease;
}
.prefs-bar .lang-switch button:hover,
.prefs-bar .theme-toggle button:hover { transform: translateY(-1px); }
.prefs-bar .lang-switch button.on,
.prefs-bar .theme-toggle button.on {
    background: #0f172a;
    color: #fff;
    box-shadow: 0 4px 12px rgba(15, 23, 42, .2);
}
.prefs-dock {
    position: fixed;
    top: .85rem;
    right: .85rem;
    left: auto;
    bottom: auto;
}
@media (max-width: 720px) {
    /* En móvil no tapa “Entrar / Ingresar” del header */
    .prefs-dock {
        top: auto;
        bottom: calc(.85rem + env(safe-area-inset-bottom, 0px));
        right: .75rem;
        z-index: 40;
    }
}

/* Botón tema en header móvil (mapa / descubrir) */
.tm-mobile-theme {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    color: #334155;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    cursor: pointer;
    font-size: 0.95rem;
    padding: 0;
}
.tm-mobile-theme:active { transform: scale(0.96); }
html.modo-oscuro .tm-mobile-theme,
body.modo-oscuro .tm-mobile-theme {
    background: #151A22 !important;
    border-color: #2A3340 !important;
    color: #fbbf24 !important;
}

/* FAB tema si el topbar de prefs está oculto en móvil */
.tm-theme-fab {
    position: fixed;
    z-index: 55;
    right: 0.75rem;
    bottom: calc(0.85rem + env(safe-area-inset-bottom, 0px));
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 999px;
    border: 1px solid #e2e8f0;
    background: #fff;
    color: #0f172a;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
    display: none;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    cursor: pointer;
    padding: 0;
}
@media (max-width: 900px) {
    .tm-theme-fab { display: inline-flex; }
}
html.modo-oscuro .tm-theme-fab,
body.modo-oscuro .tm-theme-fab {
    background: #151A22 !important;
    border-color: #2A3340 !important;
    color: #fbbf24 !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}
.prefs-dock.prefs-compact {
    height: 2.35rem;
    padding: .2rem;
}
.prefs-inline {
    position: static;
    box-shadow: none;
    flex-shrink: 0;
}
.prefs-compact .theme-lbl { display: none !important; }
.prefs-compact button {
    min-width: 1.45rem;
    height: 1.7rem;
    padding: 0 .2rem;
    font-size: .58rem;
}
.prefs-compact .theme-toggle i { font-size: .68rem; }
.prefs-compact .lang-switch,
.prefs-compact .theme-toggle {
    gap: .08rem;
}

/* Un botón idioma + un botón tema */
.prefs-toggles {
    gap: .2rem;
    padding: .2rem;
}
.prefs-toggles .prefs-chip {
    border: 0;
    background: transparent;
    color: #64748b;
    min-width: 2.15rem;
    height: 2.15rem;
    padding: 0;
    border-radius: 999px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .02em;
    flex-shrink: 0;
}
.prefs-toggles .prefs-chip:hover {
    background: rgba(15, 23, 42, .08);
    color: #0f172a;
}
.prefs-toggles .prefs-chip i {
    font-size: .9rem;
}
.prefs-toggles.prefs-compact .prefs-chip {
    min-width: 2rem;
    height: 2rem;
    font-size: .7rem;
}
.prefs-toggles.prefs-compact .prefs-chip i {
    font-size: .85rem;
}
html.modo-oscuro .prefs-toggles .prefs-chip {
    color: #94A3B8;
}
html.modo-oscuro .prefs-toggles .prefs-chip:hover {
    background: rgba(255, 255, 255, .08);
    color: #f1f5f9;
}
html.modo-oscuro .prefs-toggles .prefs-chip i.fa-moon {
    color: #00c853;
}
html.modo-oscuro .prefs-bar,
body.modo-oscuro .prefs-bar {
    background: #151A22;
    border-color: #2A3340;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .35);
}
html.modo-oscuro .prefs-bar .prefs-sep,
body.modo-oscuro .prefs-bar .prefs-sep {
    background: rgba(255,255,255,.14);
}
html.modo-oscuro .prefs-bar .lang-switch button,
html.modo-oscuro .prefs-bar .theme-toggle button,
body.modo-oscuro .prefs-bar .lang-switch button,
body.modo-oscuro .prefs-bar .theme-toggle button {
    color: #94A3B8;
}
html.modo-oscuro .prefs-bar .lang-switch button.on,
html.modo-oscuro .prefs-bar .theme-toggle button.on,
body.modo-oscuro .prefs-bar .lang-switch button.on,
body.modo-oscuro .prefs-bar .theme-toggle button.on {
    background: #00c853;
    color: #042f1a;
    box-shadow: none;
}
.prefs-bar .theme-toggle .theme-lbl { display: none; }
.prefs-bar .theme-toggle button { min-width: 2.15rem; padding: 0 .5rem; }
.prefs-bar .theme-toggle i { font-size: .78rem; }
.prefs-inline.prefs-bar {
    box-shadow: none;
}
#sidebar .prefs-inline.prefs-bar {
    width: 100%;
    justify-content: center;
}
#sidebar .prefs-inline {
    background: rgba(15, 23, 42, 0.9);
    border-color: rgba(255,255,255,.12);
}
/* Compat tema suelto (si alguna página aún lo usa) */
.theme-switch {
    position: fixed;
    right: .85rem;
    bottom: calc(.85rem + env(safe-area-inset-bottom));
    z-index: 9999;
    display: flex;
    gap: .3rem;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 999px;
    padding: .3rem;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .16);
    font-family: Manrope, Nunito, system-ui, sans-serif;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.theme-switch button {
    border: 0;
    background: transparent;
    min-width: 2.55rem;
    height: 2.2rem;
    padding: 0 .65rem;
    border-radius: 999px;
    cursor: pointer;
    font-size: .7rem;
    font-weight: 800;
    color: #64748b;
    letter-spacing: .04em;
    text-transform: uppercase;
    transition: background .2s ease, color .2s ease, transform .15s ease, box-shadow .2s ease;
}
.theme-switch button:hover { transform: translateY(-1px); }
.theme-switch button.on {
    background: #0f172a;
    color: #fff;
    box-shadow: 0 4px 12px rgba(15, 23, 42, .2);
}
html.modo-oscuro .theme-switch,
body.modo-oscuro .theme-switch {
    background: #151A22;
    border-color: #2A3340;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .35);
}
html.modo-oscuro .theme-switch button,
body.modo-oscuro .theme-switch button {
    color: #94A3B8;
}
html.modo-oscuro .theme-switch button.on,
body.modo-oscuro .theme-switch button.on {
    background: #1E293B;
    color: #F8FAFC;
    box-shadow: none;
}

/* ?? Superficies gen?ricas ?? */
html.modo-oscuro .card,
html.modo-oscuro .wrap .card,
html.modo-oscuro .panel,
html.modo-oscuro .box,
html.modo-oscuro .modal-content,
html.modo-oscuro .modal-box,
html.modo-oscuro .sheet,
html.modo-oscuro .bottom-sheet,
html.modo-oscuro .drawer,
html.modo-oscuro .nav-panel,
html.modo-oscuro .place-panel,
html.modo-oscuro .place-panel-body,
html.modo-oscuro .ficha-card,
html.modo-oscuro .nf-card,
html.modo-oscuro .nf-box,
html.modo-oscuro .vitrina-card,
html.modo-oscuro .region,
html.modo-oscuro .trust,
html.modo-oscuro .mejores-btn,
html.modo-oscuro .mejores-tag,
html.modo-oscuro .mejores-nav,
html.modo-oscuro .partner,
html.modo-oscuro .pe-card,
html.modo-oscuro .sol-box,
html.modo-oscuro .admin-card,
html.modo-oscuro .stat-card,
html.modo-oscuro .table-wrap,
html.modo-oscuro table,
html.modo-oscuro .login-modal,
html.modo-oscuro .register-modal,
html.modo-oscuro .modal-card,
html.modo-oscuro .modal-box,
html.modo-oscuro .modal-content,
html.modo-oscuro .drop-menu {
    background-color: var(--pm-card) !important;
    color: var(--pm-ink) !important;
    border-color: var(--pm-line) !important;
}

html.modo-oscuro .mejores-wrap,
html.modo-oscuro .solicitar-destino,
html.modo-oscuro .partners,
html.modo-oscuro main,
html.modo-oscuro .content,
html.modo-oscuro .page,
html.modo-oscuro .dashboard,
html.modo-oscuro .nf-page,
html.modo-oscuro .descubrir-page {
    background-color: var(--pm-paper) !important;
    color: var(--pm-ink) !important;
}

html.modo-oscuro h1,
html.modo-oscuro h2,
html.modo-oscuro h3,
html.modo-oscuro h4,
html.modo-oscuro h5,
html.modo-oscuro h6,
html.modo-oscuro strong,
html.modo-oscuro .brand,
html.modo-oscuro label,
html.modo-oscuro th,
html.modo-oscuro .mejores-title,
html.modo-oscuro .mejores-info h3,
html.modo-oscuro .section-head h2,
html.modo-oscuro .solicitar-copy h2 {
    color: var(--pm-ink) !important;
}

html.modo-oscuro p,
html.modo-oscuro li,
html.modo-oscuro small,
html.modo-oscuro .muted,
html.modo-oscuro .hint,
html.modo-oscuro .subtitle,
html.modo-oscuro .mejores-sub,
html.modo-oscuro .mejores-info p,
html.modo-oscuro .desc,
html.modo-oscuro .meta,
html.modo-oscuro td {
    color: var(--pm-muted);
}

html.modo-oscuro a:not(.btn):not(.btn-primary):not(.gate-btn):not(.region-cta):not(.mejores-go):not(.pp-title-link) {
    color: #93c5fd;
}

html.modo-oscuro .pp-title,
html.modo-oscuro .pp-title span,
html.modo-oscuro a.pp-title-link {
    color: #f8fafc !important;
    font-family: 'Nunito', system-ui, sans-serif !important;
    font-weight: 900 !important;
    text-shadow: none !important;
    -webkit-text-stroke: 0 !important;
    filter: none !important;
}
html.modo-oscuro .pp-desc {
    color: #94a3b8 !important;
    text-shadow: none !important;
    -webkit-text-stroke: 0 !important;
    filter: none !important;
}

html.modo-oscuro input,
html.modo-oscuro select,
html.modo-oscuro textarea,
html.modo-oscuro .inp,
html.modo-oscuro .regions-search {
    background-color: #0B0F14 !important;
    color: var(--pm-ink) !important;
    border-color: var(--pm-line) !important;
}
html.modo-oscuro input::placeholder,
html.modo-oscuro textarea::placeholder {
    color: #71717a !important;
}

html.modo-oscuro hr,
html.modo-oscuro .border,
html.modo-oscuro [class*="border-"] {
    border-color: var(--pm-line) !important;
}

html.modo-oscuro table thead,
html.modo-oscuro thead tr,
html.modo-oscuro tr:nth-child(even) {
    background-color: #12161c !important;
}
html.modo-oscuro tbody tr {
    background-color: var(--pm-card) !important;
}
html.modo-oscuro tbody tr:hover {
    background-color: #1f2937 !important;
}

/* ?? Tailwind utilities (p?ginas admin/explorador) ?? */
html.modo-oscuro .bg-white,
html.modo-oscuro .bg-gray-50,
html.modo-oscuro .bg-gray-100,
html.modo-oscuro .bg-slate-50,
html.modo-oscuro .bg-slate-100,
html.modo-oscuro .bg-zinc-50,
html.modo-oscuro .bg-zinc-100,
html.modo-oscuro .bg-neutral-50,
html.modo-oscuro .bg-neutral-100,
html.modo-oscuro .bg-stone-50,
html.modo-oscuro .bg-stone-100,
html.modo-oscuro .bg-\[\#FAF9F7\],
html.modo-oscuro .bg-\[\#F4F7F5\],
html.modo-oscuro .bg-\[\#fff\],
html.modo-oscuro .bg-\[\#ffffff\] {
    background-color: var(--pm-card) !important;
}

html.modo-oscuro .bg-slate-200,
html.modo-oscuro .bg-gray-200,
html.modo-oscuro .bg-zinc-200 {
    background-color: #1f2937 !important;
}

html.modo-oscuro .text-black,
html.modo-oscuro .text-gray-900,
html.modo-oscuro .text-gray-800,
html.modo-oscuro .text-slate-900,
html.modo-oscuro .text-slate-800,
html.modo-oscuro .text-zinc-900,
html.modo-oscuro .text-zinc-800,
html.modo-oscuro .text-neutral-900,
html.modo-oscuro .text-stone-900 {
    color: #F3F4F6 !important;
}

html.modo-oscuro .text-gray-700,
html.modo-oscuro .text-gray-600,
html.modo-oscuro .text-slate-700,
html.modo-oscuro .text-slate-600,
html.modo-oscuro .text-zinc-700,
html.modo-oscuro .text-zinc-600,
html.modo-oscuro .text-neutral-700,
html.modo-oscuro .text-stone-700 {
    color: #D4D4D8 !important;
}

html.modo-oscuro .text-gray-500,
html.modo-oscuro .text-slate-500,
html.modo-oscuro .text-zinc-500,
html.modo-oscuro .text-neutral-500 {
    color: #A1A1AA !important;
}

html.modo-oscuro .text-gray-400,
html.modo-oscuro .text-slate-400 {
    color: #71717a !important;
}

html.modo-oscuro .border-gray-100,
html.modo-oscuro .border-gray-200,
html.modo-oscuro .border-gray-300,
html.modo-oscuro .border-slate-100,
html.modo-oscuro .border-slate-200,
html.modo-oscuro .border-slate-300,
html.modo-oscuro .border-zinc-200,
html.modo-oscuro .divide-gray-100 > :not([hidden]) ~ :not([hidden]),
html.modo-oscuro .divide-gray-200 > :not([hidden]) ~ :not([hidden]),
html.modo-oscuro .divide-slate-200 > :not([hidden]) ~ :not([hidden]) {
    border-color: var(--pm-line) !important;
}

html.modo-oscuro .shadow,
html.modo-oscuro .shadow-sm,
html.modo-oscuro .shadow-md,
html.modo-oscuro .shadow-lg,
html.modo-oscuro .shadow-xl {
    --tw-shadow-color: rgba(0, 0, 0, .45);
    box-shadow: 0 10px 28px rgba(0, 0, 0, .35) !important;
}

html.modo-oscuro .ring-gray-200,
html.modo-oscuro .ring-slate-200 {
    --tw-ring-color: #2A2F36;
}

/* ?? P?ginas p?blicas (contacto, t?rminos?) ?? */
html.modo-oscuro .btn-ghost {
    background: #171B22 !important;
    color: #f87171 !important;
    border-color: #2A2F36 !important;
}
html.modo-oscuro .msg-ok {
    background: #0f1f18 !important;
    color: #6ee7b7 !important;
}
html.modo-oscuro .msg-err {
    background: #1f1214 !important;
    color: #fca5a5 !important;
}

/* ?? Landing / modales index ?? */
html.modo-oscuro .modal,
html.modo-oscuro .modal-overlay > div,
html.modo-oscuro #loginModal .modal-content,
html.modo-oscuro #registerModal .modal-content,
html.modo-oscuro .auth-card,
html.modo-oscuro .hero-card {
    background: #171B22 !important;
    color: #F3F4F6 !important;
    border-color: #2A2F36 !important;
}

/* ?? Negocio ficha ?? */
html.modo-oscuro .nf-shell,
html.modo-oscuro .nf-main,
html.modo-oscuro .nf-side,
html.modo-oscuro .nf-step,
html.modo-oscuro .nf-preview,
html.modo-oscuro .wizard-card {
    background-color: var(--pm-card) !important;
    color: var(--pm-ink) !important;
    border-color: var(--pm-line) !important;
}

/* ?? Descubrir / dashboard explorador ?? */
html.modo-oscuro .disc-card,
html.modo-oscuro .chip,
html.modo-oscuro .filter-bar,
html.modo-oscuro .map-panel,
html.modo-oscuro .list-panel,
html.modo-oscuro .overlay-panel {
    background-color: var(--pm-card) !important;
    color: var(--pm-ink) !important;
    border-color: var(--pm-line) !important;
}

/* ?? No tocar foto de hero / overlays de imagen ?? */
html.modo-oscuro .hero,
html.modo-oscuro .hero-bg,
html.modo-oscuro .mejores-photo,
html.modo-oscuro .region-visual,
html.modo-oscuro .partner-photo,
html.modo-oscuro .pe-photo,
html.modo-oscuro [style*="background-image"] {
    /* la imagen se mantiene; el color de texto encima se controla aparte */
}

/* Tags sobre fotos: contraste fijo */
html.modo-oscuro .mejores-tag,
html.modo-oscuro .partner-photo .tag,
html.modo-oscuro .pe-tag {
    background: #0B0F14 !important;
    color: #F87171 !important;
}

/* Botones s?lidos: texto blanco */
html.modo-oscuro .btn,
html.modo-oscuro .btn-primary,
html.modo-oscuro button[type="submit"]:not(.theme-switch button):not(.mejores-btn),
html.modo-oscuro .gate-btn,
html.modo-oscuro .region-cta {
    color: #fff !important;
}
/* Bot?n claro sobre hero: texto oscuro (no blanco invisible) */
html.modo-oscuro .btn-light,
html.modo-oscuro .btn-light * {
    color: #022c22 !important;
}
html.modo-oscuro .btn-light {
    background: #fff !important;
}

/* Excepci?n: textos ya blancos en fondos de color (mantener) */
html.modo-oscuro .text-white,
html.modo-oscuro .text-white * {
    color: #fff !important;
}

/* Scrollbars */
html.modo-oscuro ::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}
html.modo-oscuro ::-webkit-scrollbar-thumb {
    background: #475569;
    border-radius: 99px;
}
html.modo-oscuro ::-webkit-scrollbar-track {
    background: #0F1419;
}

/* ?? Landing index ?? */
html.modo-oscuro {
    --tm-ink: #F3F4F6;
    --tm-muted: #A1A1AA;
    --tm-line: #1f4d3a;
    --tm-soft: #12241c;
    --tm-deep: #6ee7b7;
    --tm-green: #34d399;
}
html.modo-oscuro body {
    background: #0F1419 !important;
}
html.modo-oscuro .header {
    background: rgba(15, 20, 25, .92) !important;
    border-color: #1f4d3a !important;
}
html.modo-oscuro .modal-card,
html.modo-oscuro .feature,
html.modo-oscuro .plan-card,
html.modo-oscuro .cta-box {
    background: #171B22 !important;
    color: #F3F4F6 !important;
    border-color: #2A2F36 !important;
}
html.modo-oscuro .logo {
    color: #F3F4F6 !important;
}
html.modo-oscuro .modal h2:not(.modal-card-top h2) {
    color: #F3F4F6 !important;
}

/* ?? Descubrir: estilos premium viven en descubrir.css (no aplastar aqu?) ?? */
html.modo-oscuro body.discover-body {
    /* fondo atmosf?rico lo define descubrir.css */
    color: var(--dx-ink, #E8F0EB) !important;
}
html.modo-oscuro .bottom-sheet,
html.modo-oscuro .sheet-card,
html.modo-oscuro .mobile-nav {
    background: rgba(10, 20, 16, 0.96) !important;
    color: #E8F0EB !important;
    border-color: rgba(110, 231, 183, 0.14) !important;
}

/* ?? Panel negocio ?? */
html.modo-oscuro .nf-user-chip,
html.modo-oscuro .nf-photo-slot,
html.modo-oscuro .nf-preview-card,
html.modo-oscuro .nf-step-card,
html.modo-oscuro .nf-field,
html.modo-oscuro .nf-choice,
html.modo-oscuro .nf-side-card,
html.modo-oscuro .nf-box,
html.modo-oscuro .nf-card {
    background: #171B22 !important;
    color: #F3F4F6 !important;
    border-color: #2A2F36 !important;
}
html.modo-oscuro .nf-pick-btn {
    background: #12241c !important;
    border-color: #1f4d3a !important;
    color: #e5e7eb !important;
}
html.modo-oscuro .nf-pick-btn.on {
    background: #134e3a !important;
    border-color: #059669 !important;
    color: #6ee7b7 !important;
}
html.modo-oscuro .nf-empty-box,
html.modo-oscuro .nf-choice-alt,
html.modo-oscuro .nf-warn {
    background: #1a1710 !important;
    border-color: #92400e !important;
    color: #fbbf24 !important;
}
html.modo-oscuro .nf-inp,
html.modo-oscuro .nf-inp:disabled {
    background: #0B0F14 !important;
    color: #F3F4F6 !important;
    border-color: #2A2F36 !important;
}
html.modo-oscuro .nf-alert.err,
html.modo-oscuro .nf-toast.err {
    background: #1f1214 !important;
    color: #fca5a5 !important;
}
html.modo-oscuro .ask-q {
    color: #bfdbfe !important;
}
html.modo-oscuro .ask-hint {
    color: #94a3b8 !important;
}
html.modo-oscuro .hotel-toolbar {
    background: #171b22 !important;
    border-color: #2a2f36 !important;
    box-shadow: none !important;
}
html.modo-oscuro .need-hero {
    background: linear-gradient(120deg, #1e3a8a 0%, #2563eb 65%, #3b82f6 100%) !important;
    color: #fff !important;
}
html.modo-oscuro .need-toggle-btn {
    background: rgba(255,255,255,.16) !important;
    border-color: rgba(255,255,255,.45) !important;
    color: #fff !important;
}
html.modo-oscuro .need-body {
    background: #171b22 !important;
}
html.modo-oscuro .need-body.is-collapsed {
    display: none !important;
}
html.modo-oscuro .need-section {
    background: #12161c !important;
    border-color: #334155 !important;
}
html.modo-oscuro .need-section-title {
    color: #bfdbfe !important;
}
html.modo-oscuro .need-section-title em {
    color: #94a3b8 !important;
}
html.modo-oscuro .need-summary span {
    background: #1e3a8a !important;
    color: #dbeafe !important;
}
html.modo-oscuro .need-summary span.empty {
    background: #1e293b !important;
    color: #94a3b8 !important;
}
html.modo-oscuro .need-q {
    background: #1e293b !important;
    color: #e2e8f0 !important;
    border-color: #475569 !important;
}
html.modo-oscuro .hotel-modo {
    background: #0f1419 !important;
}
html.modo-oscuro .hotel-modo a {
    color: #cbd5e1 !important;
}
html.modo-oscuro .hotel-modo a.is-on {
    background: #2563eb !important;
    color: #fff !important;
}
html.modo-oscuro .ask-chip span {
    background: #12161c !important;
    border-color: #334155 !important;
    color: #dbeafe !important;
}
html.modo-oscuro .ask-chip input:checked + span {
    background: #2563eb !important;
    border-color: #3b82f6 !important;
    color: #fff !important;
    box-shadow: 0 4px 14px rgba(37, 99, 235, .28) !important;
}
html.modo-oscuro .ask-qty-item {
    background: #12161c !important;
    border-color: #334155 !important;
}
html.modo-oscuro .ask-qty-item.is-on {
    background: #172554 !important;
    border-color: #3b82f6 !important;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, .2) !important;
}
html.modo-oscuro .ask-qty-item strong {
    color: #dbeafe !important;
}
html.modo-oscuro .ask-qty-item input[type="number"],
html.modo-oscuro .hotel-filtros .ask-row input[type="text"],
html.modo-oscuro .hotel-filtros .ask-row input[type="number"],
html.modo-oscuro .hotel-filtros input[type="text"],
html.modo-oscuro .hotel-filtros input[type="number"],
html.modo-oscuro #formSolicitudCuarto input,
html.modo-oscuro #formSolicitudCuarto textarea,
html.modo-oscuro #formNecesidadHotel input {
    background: #1e293b !important;
    color: #e2e8f0 !important;
    border-color: #475569 !important;
}
html.modo-oscuro .ask-qty-item input[type="number"]:focus,
html.modo-oscuro .hotel-filtros .ask-row input:focus,
html.modo-oscuro #formNecesidadHotel input:focus {
    border-color: #60a5fa !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, .22) !important;
    background: #0f172a !important;
}
html.modo-oscuro .hotel-filtros button[type="submit"] {
    background: linear-gradient(180deg, #3b82f6 0%, #1d4ed8 100%) !important;
    color: #fff !important;
    box-shadow: 0 6px 16px rgba(37, 99, 235, .35) !important;
}
html.modo-oscuro .busq-card,
html.modo-oscuro .sol-card {
    background: linear-gradient(135deg, #12261c 0%, #171b22 55%, #172554 100%) !important;
    border-color: #166534 !important;
    box-shadow: 0 8px 22px rgba(0,0,0,.28) !important;
}
html.modo-oscuro .busq-mine {
    background: linear-gradient(135deg, #12261c 0%, #171b22 60%, #172554 100%) !important;
    border-color: #166534 !important;
    box-shadow: 0 6px 16px rgba(0,0,0,.25) !important;
}
html.modo-oscuro .busq-mine-sum { color: #bbf7d0 !important; }
html.modo-oscuro .busq-mine-sum .meta { color: #94a3b8 !important; }
html.modo-oscuro .busq-mine-toggle {
    background: #1e293b !important;
    color: #86efac !important;
    border-color: #166534 !important;
}
html.modo-oscuro .busq-card.is-hist {
    background: #12161c !important;
    border-color: #334155 !important;
    box-shadow: none !important;
}
html.modo-oscuro .place-card-title {
    color: #f1f5f9 !important;
}
html.modo-oscuro .place-amenity {
    background: #1e293b !important;
    border-color: #334155 !important;
    color: #e2e8f0 !important;
}
html.modo-oscuro .place-card-rating { color: #fbbf24 !important; }
html.modo-oscuro .place-card-rating .count { color: #94a3b8 !important; }
html.modo-oscuro .hotel-benefits {
    background: #0b1220 !important;
    border-color: #1e293b !important;
}
html.modo-oscuro .busq-msg {
    color: #bbf7d0 !important;
}
html.modo-oscuro .busq-line {
    color: #94a3b8 !important;
}
html.modo-oscuro .sol-actions button {
    background: #1e293b !important;
    color: #e2e8f0 !important;
    border-color: #64748b !important;
}
html.modo-oscuro .sol-actions .ok {
    background: #047857 !important;
    color: #fff !important;
    border-color: #047857 !important;
}
html.modo-oscuro .sol-actions .cerrar {
    background: #3f1d1d !important;
    color: #fecaca !important;
    border-color: #f87171 !important;
}
html.modo-oscuro .sol-actions .editar {
    background: #1d4ed8 !important;
    color: #fff !important;
    border-color: #1d4ed8 !important;
}
html.modo-oscuro .busq-section-title {
    color: #93c5fd !important;
}
html.modo-oscuro .wa-preview-wrap {
    background: linear-gradient(160deg, #052e1a 0%, #0b3d2a 45%, #14532d 100%) !important;
    border-color: #166534 !important;
}
html.modo-oscuro .wa-preview-title {
    color: #bbf7d0 !important;
}
html.modo-oscuro .wa-bubble {
    background: #dcf8c6 !important;
    color: #0f172a !important;
}
html.modo-oscuro .pedido-datos.need-section {
    background: #12161c !important;
}
html.modo-oscuro .hotel-cta a {
    color: #60a5fa !important;
}
html.modo-oscuro .btn-filter-soft {
    background: #0f172a !important;
    border-color: #475569 !important;
    color: #cbd5e1 !important;
}
html.modo-oscuro details.busq-fold {
    background: #12161c !important;
    border-color: #334155 !important;
}
html.modo-oscuro details.busq-fold > summary {
    color: #e2e8f0 !important;
}
html.modo-oscuro .need-bubble {
    background: #12161c !important;
    border-color: #334155 !important;
}
html.modo-oscuro .need-bubble .need-label {
    color: #93c5fd !important;
}
html.modo-oscuro .need-bubble .need-pill {
    background: #1e293b !important;
    border-color: #334155 !important;
    color: #dbeafe !important;
}
html.modo-oscuro .need-bubble .need-pill.on {
    background: #2563eb !important;
    border-color: #3b82f6 !important;
    color: #fff !important;
}
html.modo-oscuro .nf-info-box,
html.modo-oscuro .nf-info-box p + p {
    background: #0f172a !important;
    color: #dbeafe !important;
    border-color: #334155 !important;
}
html.modo-oscuro .nf-info-wait,
html.modo-oscuro .nf-info-wait p + p {
    background: #1f1a10 !important;
    color: #facc15 !important;
    border-color: #713f12 !important;
}
html.modo-oscuro .nf-choice-card {
    background: #171b22 !important;
    border-color: #2a2f36 !important;
}
html.modo-oscuro .nf-choice-card strong {
    color: #f3f4f6 !important;
}
html.modo-oscuro .nf-h2 { color: #f1f5f9 !important; }
html.modo-oscuro .nf-steps-line span {
    background: #1e293b !important;
    border-color: #334155 !important;
    color: #94a3b8 !important;
}
html.modo-oscuro .nf-steps-line span.is-done {
    background: #12261c !important;
    border-color: #166534 !important;
    color: #86efac !important;
}
html.modo-oscuro .nf-steps-line span.is-on {
    background: #047857 !important;
    border-color: #047857 !important;
    color: #fff !important;
}
html.modo-oscuro .nf-actions-stack a.nf-btn.ghost {
    background: #171b22 !important;
    color: #86efac !important;
    border-color: #166534 !important;
    box-shadow: 0 3px 0 #0f172a, 0 5px 12px rgba(0,0,0,.25) !important;
}
html.modo-oscuro .nf-mode-bar {
    background: linear-gradient(135deg, #0f1d1a 0%, #111827 100%) !important;
    border-color: #1f4d3a !important;
}
html.modo-oscuro .nf-mode-bar p {
    color: #6ee7b7 !important;
}
html.modo-oscuro .nf-btn.map-preview,
html.modo-oscuro .nf-local-actions .nf-btn-map {
    background: #1f2937 !important;
    color: #e5e7eb !important;
    border-color: #374151 !important;
    box-shadow: 0 3px 0 #111827, 0 6px 14px rgba(2, 6, 23, .35) !important;
}
html.modo-oscuro .nf-local-actions .nf-btn-warn {
    background: #2a1f0f !important;
    color: #fbbf24 !important;
    border-color: #92400e !important;
    box-shadow: 0 3px 0 #713f12, 0 6px 14px rgba(146, 64, 14, .35) !important;
}
html.modo-oscuro .nf-local-actions .nf-btn-ok {
    background: #10261b !important;
    color: #86efac !important;
    border-color: #166534 !important;
    box-shadow: 0 3px 0 #14532d, 0 6px 14px rgba(20, 83, 45, .35) !important;
}
html.modo-oscuro .nf-local-actions .nf-btn-danger {
    background: #2b1115 !important;
    color: #fca5a5 !important;
    border-color: #991b1b !important;
    box-shadow: 0 3px 0 #7f1d1d, 0 6px 14px rgba(127, 29, 29, .35) !important;
}
html.modo-oscuro .nf-local-actions .nf-btn-warn:hover,
html.modo-oscuro .nf-local-actions .nf-btn-ok:hover,
html.modo-oscuro .nf-local-actions .nf-btn-danger:hover,
html.modo-oscuro .nf-btn.map-preview:hover,
html.modo-oscuro .nf-local-actions .nf-btn-map:hover {
    filter: brightness(1.08);
}
html.modo-oscuro .nf-steps-global span,
html.modo-oscuro .nf-dots span {
    background: #1f2937 !important;
    color: #cbd5e1 !important;
    border: 1px solid #374151 !important;
}
html.modo-oscuro .nf-steps-global span.done,
html.modo-oscuro .nf-dots span.on {
    background: #065f46 !important;
    color: #ecfdf5 !important;
    border-color: #047857 !important;
}
html.modo-oscuro .nf-steps-global span.active {
    background: #123a2d !important;
    color: #6ee7b7 !important;
    border-color: #1f4d3a !important;
}
html.modo-oscuro .nf-wizard-head h1,
html.modo-oscuro .nf-card h1,
html.modo-oscuro .nf-card h2 {
    color: #f8fafc !important;
}
html.modo-oscuro .nf-map-ok {
    color: #facc15 !important;
}
html.modo-oscuro .nf-map-ok.ok {
    color: #6ee7b7 !important;
}
html.modo-oscuro .nf-destino-locked,
html.modo-oscuro .nf-destino-sugerida {
    background: #0f291e !important;
    border-color: #047857 !important;
}
html.modo-oscuro .nf-destino-locked-name {
    color: #6ee7b7 !important;
}
html.modo-oscuro .nf-btn-sugerida-alt {
    background: #1e293b !important;
    color: #e2e8f0 !important;
    border-color: #475569 !important;
}
html.modo-oscuro .nf-ciudad-search-wrap > i { color: #64748b !important; }
html.modo-oscuro .nf-photo-preview-box,
html.modo-oscuro .nf-photo-box {
    background: #0b0f14 !important;
    border-color: #374151 !important;
}
html.modo-oscuro .nf-photo-thumb {
    background: #1f2937 !important;
    border-color: #374151 !important;
}
html.modo-oscuro .nf-photo-thumb.is-cover {
    border-color: #10b981 !important;
}
html.modo-oscuro .nf-photo-empty,
html.modo-oscuro .nf-photo-placeholder {
    color: #94a3b8 !important;
}

/* ?? Admin (Tailwind + paneles) ?? */
html.modo-oscuro .sidebar,
html.modo-oscuro nav.sidebar,
html.modo-oscuro .admin-shell,
html.modo-oscuro .main-content,
html.modo-oscuro .content-area {
    background-color: #0F1419 !important;
    color: #F3F4F6 !important;
    border-color: #2A2F36 !important;
}
html.modo-oscuro .bg-emerald-50,
html.modo-oscuro .bg-green-50,
html.modo-oscuro .bg-amber-50,
html.modo-oscuro .bg-yellow-50,
html.modo-oscuro .bg-red-50,
html.modo-oscuro .bg-rose-50,
html.modo-oscuro .bg-blue-50,
html.modo-oscuro .bg-indigo-50,
html.modo-oscuro .bg-purple-50,
html.modo-oscuro .bg-orange-50 {
    background-color: #12161c !important;
}
html.modo-oscuro .text-emerald-900,
html.modo-oscuro .text-green-900,
html.modo-oscuro .text-amber-900,
html.modo-oscuro .text-red-900,
html.modo-oscuro .text-blue-900 {
    color: #e5e7eb !important;
}
html.modo-oscuro .text-emerald-700,
html.modo-oscuro .text-green-700,
html.modo-oscuro .text-amber-700,
html.modo-oscuro .text-red-700,
html.modo-oscuro .text-blue-700,
html.modo-oscuro .text-slate-700 {
    color: #d4d4d8 !important;
}

/* ?? Vitrina / listados ?? */
html.modo-oscuro .vitrina-card,
html.modo-oscuro .vitrina-info,
html.modo-oscuro .cat-hero,
html.modo-oscuro .list-toolbar {
    background: #171B22 !important;
    color: #F3F4F6 !important;
    border-color: #2A2F36 !important;
}

/* ?? Modal registro/login ? modo oscuro ?? */
html.modo-oscuro .modal-card {
    --mc-bg: #141a16;
    --mc-text: #f1f5f9;
    --mc-muted: #94a3b8;
    --mc-border: #2a3a32;
    --mc-card: #1a2420;
    --mc-card-sel: #0d2e1f;
    --mc-input: #1a2420;
    --mc-shadow: rgba(20,26,22,.98);
    background: #141a16 !important;
    border-color: #24352c !important;
}
html.modo-oscuro .modal-card-top {
    background:
        radial-gradient(ellipse at 70% -10%, rgba(251,191,36,.16), transparent 45%),
        linear-gradient(165deg, #070b12 0%, #0c1a16 48%, #0e1c16 100%) !important;
    border-bottom-color: rgba(251,191,36,.2) !important;
}
html.modo-oscuro .modal-card-top .modal-brand strong {
    color: #fff8eb !important;
}
html.modo-oscuro .modal-card-top .modal-brand span {
    color: #fbbf24 !important;
    background: rgba(251,191,36,.14) !important;
    border-color: rgba(251,191,36,.35) !important;
}
html.modo-oscuro .modal-card-top h2 {
    color: #fff !important;
}
html.modo-oscuro .modal-card-top .sub {
    color: #94a3b8 !important;
}
html.modo-oscuro .modal-card-top .modal-ico {
    color: #fbbf24 !important;
    background: rgba(251,191,36,.12) !important;
    border-color: rgba(251,191,36,.35) !important;
}
html.modo-oscuro .modal-card .auth-google-hint {
    color: #94a3b8 !important;
}
html.modo-oscuro .modal-card .modal-close {
    color: #fff !important;
    background: rgba(0,0,0,.35) !important;
}
html.modo-oscuro .modal-card .form-control {
    background: #1a2420 !important;
    color: #f1f5f9 !important;
    border-color: #2a3a32 !important;
}
html.modo-oscuro .modal-card .form-control::placeholder {
    color: #64748b !important;
}
html.modo-oscuro .modal-card .account-type-card {
    background: #1a2420 !important;
    border-color: #2a3a32 !important;
    color: #f1f5f9 !important;
}
html.modo-oscuro .modal-card .account-type-text strong {
    color: #f1f5f9 !important;
}
html.modo-oscuro .modal-card .account-type-text small {
    color: #94a3b8 !important;
}
html.modo-oscuro .modal-card .auth-switch {
    color: #94a3b8 !important;
}
html.modo-oscuro .modal-card .auth-divider {
    color: #64748b !important;
}
html.modo-oscuro .modal-card .auth-divider::before,
html.modo-oscuro .modal-card .auth-divider::after {
    background: #334155 !important;
}
html.modo-oscuro .modal-card .btn-google {
    background: #ffffff !important;
    border-color: #dadce0 !important;
    color: #3c4043 !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .18) !important;
}
html.modo-oscuro .modal-card .btn-google:hover {
    background: #f8f9fa !important;
    border-color: #dadce0 !important;
    color: #202124 !important;
}
html.modo-oscuro .modal-card small[style*="color:#64748b"] {
    color: #64748b !important;
}
html.modo-oscuro .modal-card .field-ico > i {
    color: #64748b !important;
}
html.modo-oscuro .modal-card .form-group > label i {
    color: #34d399 !important;
}
html.modo-oscuro .modal-card .pass-toggle:hover {
    background: #1f2a24 !important;
    color: #34d399 !important;
}

/* ?? Portada index ?? */
html.modo-oscuro body { background: #0f1410 !important; color: #e8f0eb !important; }
html.modo-oscuro .header { background: rgba(15,20,16,.94) !important; border-color: #2A2F36 !important; }
html.modo-oscuro .logo-text em { color: #86efac !important; }
html.modo-oscuro .section-head h2 { color: #F3F4F6 !important; }
html.modo-oscuro .section-head p { color: #94a3b8 !important; }
html.modo-oscuro .section-link { color: #fb7185 !important; }
html.modo-oscuro .cat-card {
    background: #171B22 !important; color: #F3F4F6 !important;
}
html.modo-oscuro .cat-card small { color: #94a3b8 !important; }
html.modo-oscuro .cat-card.tone-teal { border-color: #134e4a !important; }
html.modo-oscuro .cat-card.tone-teal .cat-ico { background: #042f2e !important; border-color: #134e4a !important; color: #2dd4bf !important; }
html.modo-oscuro .cat-card.tone-teal strong { color: #5eead4 !important; }
html.modo-oscuro .cat-card.tone-amber { border-color: #78350f !important; }
html.modo-oscuro .cat-card.tone-amber .cat-ico { background: #451a03 !important; border-color: #78350f !important; color: #fbbf24 !important; }
html.modo-oscuro .cat-card.tone-amber strong { color: #fcd34d !important; }
html.modo-oscuro .cat-card.tone-violet { border-color: #4c1d95 !important; }
html.modo-oscuro .cat-card.tone-violet .cat-ico { background: #2e1065 !important; border-color: #4c1d95 !important; color: #c4b5fd !important; }
html.modo-oscuro .cat-card.tone-violet strong { color: #ddd6fe !important; }
html.modo-oscuro .cat-card.tone-sky { border-color: #0c4a6e !important; }
html.modo-oscuro .cat-card.tone-sky .cat-ico { background: #082f49 !important; border-color: #0c4a6e !important; color: #38bdf8 !important; }
html.modo-oscuro .cat-card.tone-sky strong { color: #7dd3fc !important; }
html.modo-oscuro .cat-card.tone-rose { border-color: #881337 !important; }
html.modo-oscuro .cat-card.tone-rose .cat-ico { background: #4c0519 !important; border-color: #881337 !important; color: #fb7185 !important; }
html.modo-oscuro .cat-card.tone-rose strong { color: #fda4af !important; }
html.modo-oscuro .cat-card.tone-lime { border-color: #365314 !important; }
html.modo-oscuro .cat-card.tone-lime .cat-ico { background: #1a2e05 !important; border-color: #365314 !important; color: #a3e635 !important; }
html.modo-oscuro .cat-card.tone-lime strong { color: #bef264 !important; }
html.modo-oscuro .cat-card.tone-red { border-color: #7f1d1d !important; }
html.modo-oscuro .cat-card.tone-red .cat-ico { background: #450a0a !important; border-color: #7f1d1d !important; color: #f87171 !important; }
html.modo-oscuro .cat-card.tone-red strong { color: #fca5a5 !important; }
html.modo-oscuro .trust { background: #141a16 !important; border-color: #2A2F36 !important; }
html.modo-oscuro .trust-item span { color: #94a3b8 !important; }
html.modo-oscuro .trust-item:nth-child(1) i { background: #042f2e !important; color: #2dd4bf !important; }
html.modo-oscuro .trust-item:nth-child(1) strong { color: #5eead4 !important; }
html.modo-oscuro .trust-item:nth-child(2) i { background: #1e3a8a !important; color: #93c5fd !important; }
html.modo-oscuro .trust-item:nth-child(2) strong { color: #bfdbfe !important; }
html.modo-oscuro .trust-item:nth-child(3) i { background: #7c2d12 !important; color: #fdba74 !important; }
html.modo-oscuro .trust-item:nth-child(3) strong { color: #fed7aa !important; }
html.modo-oscuro .btn-ghost {
    background: transparent !important; color: #6ee7b7 !important; border-color: #059669 !important;
}

/* Landing: prefs en el nav */
html.modo-oscuro .nav-actions .prefs-inline,
html.modo-oscuro .header .prefs-inline {
    background: #151A22 !important;
    border-color: #2A3340 !important;
}

/* Modales proponer / mis aportes (fondo claro forzado a oscuro) */
html.modo-oscuro .prop-modal-sheet {
    background: #151A22 !important;
    box-shadow: 0 -12px 40px rgba(0, 0, 0, .55) !important;
    color: #e2e8f0 !important;
}
html.modo-oscuro .prop-modal-head {
    border-bottom-color: #2A3340 !important;
}
html.modo-oscuro .prop-modal-head h2,
html.modo-oscuro .prop-modal-sheet h2 {
    color: #34d399 !important;
}
html.modo-oscuro .prop-modal-head p,
html.modo-oscuro .prop-hint,
html.modo-oscuro .prop-lab {
    color: #94a3b8 !important;
}
html.modo-oscuro .prop-modal-x {
    color: #cbd5e1 !important;
}
html.modo-oscuro .prop-inp,
html.modo-oscuro .prop-area {
    background: #0f1419 !important;
    border-color: #2A3340 !important;
    color: #f1f5f9 !important;
}
html.modo-oscuro .prop-inp::placeholder,
html.modo-oscuro .prop-area::placeholder {
    color: #64748b !important;
}
html.modo-oscuro .prop-slot {
    background: #0f1419 !important;
    border-color: #475569 !important;
    color: #94a3b8 !important;
}
html.modo-oscuro .prop-slot.has-file {
    border-color: #14b8a6 !important;
}
html.modo-oscuro .prop-pin-ok {
    background: rgba(16, 185, 129, .12) !important;
    border-color: rgba(52, 211, 153, .35) !important;
    color: #6ee7b7 !important;
}
html.modo-oscuro .prop-pin-fix {
    background: rgba(16, 185, 129, .1) !important;
    border-color: rgba(52, 211, 153, .4) !important;
    color: #6ee7b7 !important;
}
html.modo-oscuro .prop-warn {
    background: rgba(251, 146, 60, .12) !important;
    border-color: rgba(251, 146, 60, .35) !important;
    color: #fdba74 !important;
}
html.modo-oscuro .prop-warn a {
    color: #fb923c !important;
}
html.modo-oscuro .prop-msg.is-ok { color: #6ee7b7 !important; }
html.modo-oscuro .prop-msg.is-err { color: #fca5a5 !important; }
html.modo-oscuro .prop-aporte-row {
    border-bottom-color: #2A3340 !important;
}
html.modo-oscuro .prop-aporte-row strong {
    color: #f1f5f9 !important;
}
html.modo-oscuro .prop-aporte-meta {
    color: #94a3b8 !important;
}
html.modo-oscuro .prop-aporte-ph {
    background: #1e293b !important;
    color: #64748b !important;
}

