/* ==========================================================================
   Reservas de Espacios — Rediseño v15 · Fase 1: base visual
   --------------------------------------------------------------------------
   Se carga la ÚLTIMA (prioridad 100 en wp_enqueue_scripts) para poder ajustar
   los estilos existentes SIN tocar la lógica ni el HTML.
   - Tokens nuevos: --rs-*
   - Re-mapeo del design system del gestor (--ad-*) a la paleta nueva.
   - Ajustes del dashboard del vecino (.ud-*), que trae su CSS inline: por eso
     los selectores van precedidos de "body" (más especificidad que el inline).
   Para desactivar todo el rediseño basta con no encolar este archivo.
   ========================================================================== */

:root {
    /* Fondo y texto */
    --rs-fondo: #f5f1e8;
    --rs-fondo-2: #fbf8f2;
    --rs-superficie: #ffffff;
    --rs-borde: #e7e0d0;
    --rs-borde-suave: #efe8d8;
    --rs-tinta: #1f1d2b;
    --rs-gris-2: #8a8496;
    /* Superficies oscuras fijas (cabeceras, menús): no se invierten en modo oscuro */
    --rs-panel: #1f1d2b;
    --rs-panel-2: #2e2b3d;
    --rs-tinta-2: #3f3b4d;
    --rs-gris: #5f5a6e;

    /* Base índigo (acciones principales). El -600 da contraste AA con texto blanco */
    --rs-primario: #6366f1;
    --rs-primario-600: #4f46e5;
    --rs-primario-700: #4338ca;
    --rs-primario-claro: #eef0ff;

    /* Un color por espacio: tono base / relleno con texto blanco / fondo suave / texto oscuro */
    --rs-escuela: #10b981;   --rs-escuela-600: #059669;   --rs-escuela-claro: #e3f8ef;   --rs-escuela-osc: #065f46;
    --rs-coworking: #6366f1; --rs-coworking-600: #4f46e5; --rs-coworking-claro: #eef0ff; --rs-coworking-osc: #3730a3;
    --rs-gimnasio: #ec4899;  --rs-gimnasio-600: #db2777;  --rs-gimnasio-claro: #fdeaf3;  --rs-gimnasio-osc: #9d174d;
    --rs-nave: #0ea5e9;      --rs-nave-600: #0369a1;      --rs-nave-claro: #e0f2fe;      --rs-nave-osc: #075985;
    --rs-aviso: #f59e0b;     --rs-aviso-600: #b45309;     --rs-aviso-claro: #fef3d7;     --rs-aviso-osc: #78350f;

    /* Estados (iguales en todo el plugin) */
    --rs-ok-fondo: #d1fae5;     --rs-ok-texto: #065f46;
    --rs-val-fondo: #fef3d7;    --rs-val-texto: #92400e;
    --rs-pago-fondo: #ffedd5;   --rs-pago-texto: #9a3412;
    --rs-canc-fondo: #fee2e2;   --rs-canc-texto: #991b1b;
    --rs-pasada-fondo: #ece9e2; --rs-pasada-texto: #57534e;

    /* Formas */
    --rs-radio-s: 10px;
    --rs-radio-m: 14px;
    --rs-radio-l: 18px;
    --rs-radio-xl: 22px;
    --rs-sombra: 0 1px 0 #e7e0d0, 0 8px 24px -16px rgba(31, 29, 43, .25);
    --rs-boton-alto: 48px;
    --rs-boton-alto-grande: 64px;
}

/* --------------------------------------------------------------------------
   1. Gestor: re-mapeo del design system existente (admin-dashboard.css)
   -------------------------------------------------------------------------- */
:root,
.admin-dashboard-pro,
#tab-nave-municipal {
    --ad-primary: var(--rs-primario-600);
    --ad-primary-hover: var(--rs-primario-700);
    --ad-primary-light: var(--rs-primario-claro);
    --ad-primary-dark: var(--rs-primario-700);

    --ad-success: var(--rs-escuela-600);
    --ad-success-light: var(--rs-ok-fondo);
    --ad-success-dark: var(--rs-ok-texto);

    --ad-danger: #b91c1c;
    --ad-danger-light: var(--rs-canc-fondo);
    --ad-danger-dark: var(--rs-canc-texto);

    --ad-warning: var(--rs-aviso);
    --ad-warning-light: var(--rs-aviso-claro);
    --ad-warning-dark: var(--rs-val-texto);

    --ad-info: var(--rs-nave);
    --ad-info-light: var(--rs-nave-claro);
    --ad-info-dark: var(--rs-nave-600);

    --ad-bg: var(--rs-fondo);
    --ad-surface: var(--rs-superficie);
    --ad-border: var(--rs-borde);
    --ad-border-light: var(--rs-borde-suave);
    --ad-text: var(--rs-tinta);
    --ad-text-light: var(--rs-gris);
    --ad-text-lighter: #8a8496;

    --ad-radius-sm: var(--rs-radio-s);
    --ad-radius-md: 12px;
    --ad-radius-lg: var(--rs-radio-m);
    --ad-radius-xl: var(--rs-radio-l);
}

/* --------------------------------------------------------------------------
   2. Componentes nuevos reutilizables (rs-*). Se irán usando en las fases 2-5
   -------------------------------------------------------------------------- */
.rs-badge {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 4px 10px; border-radius: 999px;
    font-size: 12px; font-weight: 700; line-height: 1.4; white-space: nowrap;
}
.rs-badge--activa     { background: var(--rs-ok-fondo);     color: var(--rs-ok-texto); }
.rs-badge--validacion { background: var(--rs-val-fondo);    color: var(--rs-val-texto); }
.rs-badge--pago       { background: var(--rs-pago-fondo);   color: var(--rs-pago-texto); }
.rs-badge--cancelada  { background: var(--rs-canc-fondo);   color: var(--rs-canc-texto); }
.rs-badge--pasada     { background: var(--rs-pasada-fondo); color: var(--rs-pasada-texto); }
.rs-badge--info       { background: var(--rs-primario-claro); color: var(--rs-coworking-osc); }

.rs-btn {
    min-height: var(--rs-boton-alto); padding: 0 18px;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    border: none; border-radius: var(--rs-radio-m);
    font: inherit; font-weight: 700; font-size: 16px; line-height: 1.2;
    cursor: pointer; text-decoration: none; box-sizing: border-box;
}
.rs-btn--grande   { min-height: var(--rs-boton-alto-grande); font-size: 18px; border-radius: var(--rs-radio-l); }
.rs-btn--primario { background: var(--rs-primario-600); color: #fff; }
.rs-btn--escuela  { background: var(--rs-escuela-600);  color: #fff; }
.rs-btn--gimnasio { background: var(--rs-gimnasio-600); color: #fff; }
.rs-btn--nave     { background: var(--rs-nave-600);     color: #fff; }
.rs-btn--fantasma { background: var(--rs-superficie); color: var(--rs-tinta); border: 2px solid var(--rs-borde); }
.rs-btn:focus-visible { outline: 3px solid var(--rs-primario); outline-offset: 2px; }

.rs-card {
    background: var(--rs-superficie); border-radius: var(--rs-radio-xl);
    padding: 18px; box-shadow: var(--rs-sombra);
}

/* --------------------------------------------------------------------------
   3. Vecino: dashboard (.ud-*). Solo color, forma y tamaño; nada de lógica
   -------------------------------------------------------------------------- */
body .ud-wrap {
    background: var(--rs-fondo);
    color: var(--rs-tinta);
    border-radius: var(--rs-radio-xl);
}

/* Hero: de degradado morado a tinta sólida, más sobrio y legible */
body .ud-hero {
    background: var(--rs-panel);
    box-shadow: none;
    border-radius: 24px;
}
body .ud-hero-cita { backdrop-filter: none; }
body .ud-hero-cita.t-coworking   { border-left-color: var(--rs-coworking); background: rgba(99,102,241,.22); }
body .ud-hero-cita.t-escuela     { border-left-color: var(--rs-escuela);   background: rgba(16,185,129,.20); }
body .ud-hero-cita.t-gimnasio    { border-left-color: var(--rs-gimnasio);  background: rgba(236,72,153,.20); }
body .ud-hero-cita.t-nave_evento { border-left-color: var(--rs-nave);      background: rgba(14,165,233,.20); }

/* Tarjetas */
body .ud-acceso,
body .ud-agenda,
body .ud-msg-card {
    border-radius: var(--rs-radio-xl);
    box-shadow: var(--rs-sombra);
}

/* Etiquetas de estado de acceso con la paleta común */
body .ud-acceso-chip.ok     { background: var(--rs-ok-fondo);   color: var(--rs-ok-texto); }
body .ud-acceso-chip.warn   { background: var(--rs-val-fondo);  color: var(--rs-val-texto); }
body .ud-acceso-chip.danger { background: var(--rs-canc-fondo); color: var(--rs-canc-texto); }

/* Botones grandes y con contraste suficiente (texto blanco sobre -600) */
body .ud-acceso-btn {
    min-height: var(--rs-boton-alto);
    border-radius: var(--rs-radio-m);
    font-weight: 700;
}
body .ud-acceso-btn.primary   { background: var(--rs-primario-600); }
body .ud-acceso-btn.secondary { background: var(--rs-gimnasio-600); }
body .ud-puerta-boton {
    min-height: var(--rs-boton-alto-grande);
    border-radius: var(--rs-radio-l);
    font-size: 17px;
    font-weight: 700;
}

/* Agenda: colores de espacio y de estado unificados */
body .ud-item.t-escuela     { border-left-color: var(--rs-escuela); }
body .ud-item.t-coworking   { border-left-color: var(--rs-coworking); }
body .ud-item.t-gimnasio    { border-left-color: var(--rs-gimnasio); }
body .ud-item.t-nave_evento { border-left-color: var(--rs-nave); }
body .ud-item.ud-item-pdte-val  { border-left-color: var(--rs-aviso); background: var(--rs-val-fondo); }
body .ud-item.ud-item-pdte-pago { border-left-color: #f97316;         background: var(--rs-pago-fondo); }
body .ud-item { border-radius: var(--rs-radio-m); }

/* Mensajes con el Ayuntamiento */
body .ud-msg-title { color: var(--rs-coworking-osc); }
body .ud-msg-sub   { color: var(--rs-gris); opacity: 1; }

/* Hoja inferior "¿Qué quieres reservar?" */
body .ud-selector-sheet { background: var(--rs-fondo); border-radius: 24px 24px 0 0; }
body .ud-selector-item  { min-height: 64px; border-radius: var(--rs-radio-l); background: var(--rs-superficie); }
body .ud-selector-cancel { min-height: var(--rs-boton-alto); border-radius: var(--rs-radio-m); }

/* Accesibilidad: foco visible en todo el plugin */
body .ud-wrap a:focus-visible,
body .ud-wrap button:focus-visible,
body .admin-dashboard-pro a:focus-visible,
body .admin-dashboard-pro button:focus-visible {
    outline: 3px solid var(--rs-primario);
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    body .ud-wrap *, body .admin-dashboard-pro * { transition: none !important; animation: none !important; }
}

/* ==========================================================================
   FASE 2 (v14.47.0) — Inicio del vecino + barra de navegación inferior
   ========================================================================== */

/* Espaciado uniforme entre bloques del inicio (los bloques traen margin-top inline) */
body .ud-wrap > .ud-section,
body .ud-wrap > .ud-acceso { margin-top: 0 !important; margin-bottom: 16px !important; }

/* --- Mis accesos: código grande sobre índigo oscuro --- */
body .ud-acceso {
    border-left: none;
    padding: 18px;
}
body .ud-acceso-unificado-title,
body .ud-section-head h3 {
    font-size: 19px;
    font-weight: 800;
    letter-spacing: -.01em;
    color: var(--rs-tinta);
}
body .ud-acceso-codigo {
    background: #312e81 !important;
    border: none !important;
    border-radius: var(--rs-radio-l);
    padding: 16px 18px;
    color: #fff;
}
body .ud-acceso-codigo-label {
    color: #c7d2fe !important;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}
body .ud-acceso-codigo-num {
    color: #fff !important;
    font-size: 42px;
    font-weight: 800;
    letter-spacing: .14em;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}

/* Puertas: dos columnas, botón grande del color de cada espacio */
body .ud-puertas-grid { gap: 12px; }
body .ud-puerta {
    background: var(--rs-fondo-2);
    border: 1px solid var(--rs-borde-suave);
    border-radius: var(--rs-radio-l);
    padding: 12px;
}
body .ud-puerta-name { font-weight: 800; }
body .ud-puerta-boton .nuki-remoto-btn {
    min-height: var(--rs-boton-alto-grande);
    width: 100%;
    border: none !important;
    border-radius: var(--rs-radio-l) !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    padding: 12px 8px !important;
    color: #fff !important;
    box-shadow: none !important;
}
body .ud-puerta-gim .nuki-remoto-btn { background: var(--rs-gimnasio-600) !important; box-shadow: 0 5px 0 var(--rs-gimnasio-osc) !important; }
body .ud-puerta-esc .nuki-remoto-btn { background: var(--rs-escuela-600)  !important; box-shadow: 0 5px 0 var(--rs-escuela-osc)  !important; }
body .ud-puerta-msg { border-radius: 10px; font-size: .8rem; }

/* Tarjeta de un solo acceso (solo gimnasio o solo escuela) */
body .ud-acceso:not(.ud-acceso-unificado) .nuki-remoto-btn {
    min-height: var(--rs-boton-alto-grande);
    border-radius: var(--rs-radio-l) !important;
    font-weight: 800 !important;
}

/* --- Invitaciones --- */
body .ud-inv-card {
    background: var(--rs-primario-claro);
    border: 1px solid #c7cbfb;
    border-radius: var(--rs-radio-xl);
}
body .ud-inv-item-acciones button,
body .ud-inv-item-acciones a { min-height: 44px; border-radius: var(--rs-radio-m); font-weight: 700; }

/* --- Mis espacios: rejilla 2×2 de tarjetas grandes --- */
body .ud-spaces { gap: 10px; }
body .ud-space {
    border-radius: var(--rs-radio-l);
    min-height: 118px;
    box-shadow: none;
    border: 1px solid var(--rs-borde-suave);
}

/* --- Agenda --- */
body .ud-agenda { background: var(--rs-superficie); padding: 16px; }
body .ud-day-label {
    font-size: 12px; font-weight: 800; letter-spacing: .05em;
    text-transform: uppercase; color: var(--rs-gris);
}
body .ud-item { background: var(--rs-fondo-2); border-top: 1px solid var(--rs-borde-suave); border-right: 1px solid var(--rs-borde-suave); border-bottom: 1px solid var(--rs-borde-suave); }

/* --- Barra inferior (shortcode [menu_reservas_dual]) --- */
body .reservas-menu-movil {
    left: 10px;
    right: 10px;
    bottom: calc(10px + env(safe-area-inset-bottom, 0px));
    padding: 6px;
    border-radius: 22px;
    background: var(--rs-panel);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-top: none;
    box-shadow: 0 10px 30px -10px rgba(31, 29, 43, .55);
    gap: 2px;
}
body .reservas-menu-movil .nav-item-movil {
    min-height: 56px;
    border-radius: 16px;
    color: #e5e3ee;
}
body .reservas-menu-movil .nav-item-movil:hover { color: #fff; }
body .reservas-menu-movil .nav-item-movil.active {
    background: var(--rs-primario-600);
    color: #fff;
}
body .reservas-menu-movil .nav-item-movil.active::before { display: none; }
body .reservas-menu-movil .nav-item-movil.nav-item-destacado .nav-icon-movil {
    background: var(--rs-primario-600);
    color: #fff;
    box-shadow: 0 0 0 4px var(--rs-panel);
}
body .reservas-menu-movil .nav-item-movil.nav-item-destacado .nav-label-movil { color: #fff; }
body .reservas-menu-movil .nav-icon-movil { font-size: 20px; }
body .reservas-menu-movil .nav-label-movil { font-size: 11px; font-weight: 700; color: inherit; }
body .reservas-menu-movil .nav-badge-notif {
    background: var(--rs-gimnasio-600);
    border-color: var(--rs-panel);
    box-shadow: none;
}

/* Menú de escritorio: mismos colores */
body .reservas-menu-desktop .menu-link-primary { background: var(--rs-primario-600); color: #fff; border-radius: var(--rs-radio-m); }
body .reservas-menu-desktop .menu-link-badge   { background: var(--rs-gimnasio-600); box-shadow: none; }

/* ==========================================================================
   FASE 3 (v14.48.0) — Reservar: elegir espacio + formularios
   ========================================================================== */

/* --- Elegir espacio ([reservas_selector]): de tarjetas a filas grandes --- */
body .reservas-selector-wrapper { background: var(--rs-fondo); border-radius: var(--rs-radio-xl); padding: 16px; }
body .reservas-selector-wrapper .selector-header h2,
body .reservas-selector-wrapper .selector-header h3 {
    font-weight: 800; letter-spacing: -.02em; color: var(--rs-tinta);
}
body .reservas-selector-wrapper .espacios-grid {
    display: grid; grid-template-columns: 1fr; gap: 12px;
}
@media (min-width: 900px) {
    body .reservas-selector-wrapper .espacios-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
body .reservas-selector-wrapper .espacio-card {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    column-gap: 14px; row-gap: 4px;
    align-items: start;
    background: var(--rs-superficie);
    border: 2px solid transparent;
    border-radius: var(--rs-radio-xl);
    box-shadow: var(--rs-sombra);
    padding: 16px;
    text-align: left;
    transform: none;
}
body .reservas-selector-wrapper .espacio-card:hover { border-color: #c7cbfb; transform: none; }
body .reservas-selector-wrapper .espacio-card > * { grid-column: 2; margin: 0; }
body .reservas-selector-wrapper .espacio-card .card-icon {
    grid-column: 1; grid-row: 1 / span 4;
    width: 64px; height: 64px; border-radius: 18px;
    display: flex; align-items: center; justify-content: center;
    font-size: 30px; margin: 0;
}
body .reservas-selector-wrapper .escuela-card   .card-icon { background: var(--rs-escuela-claro); }
body .reservas-selector-wrapper .coworking-card .card-icon { background: var(--rs-coworking-claro); }
body .reservas-selector-wrapper .gimnasio-card  .card-icon { background: var(--rs-gimnasio-claro); }
body .reservas-selector-wrapper .nave-card      .card-icon { background: var(--rs-nave-claro); }
body .reservas-selector-wrapper .espacio-card h3 { font-size: 20px; font-weight: 800; color: var(--rs-tinta); }
body .reservas-selector-wrapper .card-description { color: var(--rs-gris); font-size: 14px; }
body .reservas-selector-wrapper .card-badge { justify-self: start; border-radius: 999px; font-size: 12px; font-weight: 700; }
body .reservas-selector-wrapper .card-badge.free { background: var(--rs-ok-fondo); color: var(--rs-ok-texto); }
body .reservas-selector-wrapper .card-badge.premium { background: var(--rs-primario-claro); color: var(--rs-coworking-osc); }
body .reservas-selector-wrapper .card-features { font-size: 13px; color: var(--rs-gris); }
@media (max-width: 600px) {
    body .reservas-selector-wrapper .card-features { display: none; }
}
body .reservas-selector-wrapper .btn-select-space {
    margin-top: 8px;
    min-height: var(--rs-boton-alto);
    border-radius: var(--rs-radio-m);
    font-weight: 800;
    color: #fff;
    border: none;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    width: 100%;
}
body .reservas-selector-wrapper .escuela-card   .btn-select-space { background: var(--rs-escuela-600); }
body .reservas-selector-wrapper .coworking-card .btn-select-space { background: var(--rs-coworking-600); }
body .reservas-selector-wrapper .gimnasio-card  .btn-select-space { background: var(--rs-gimnasio-600); }
body .reservas-selector-wrapper .nave-card      .btn-select-space { background: var(--rs-nave-600); }

/* --- Formulario de reserva ([reservas_formulario]) --- */
body .reservas-formulario-wrapper {
    background: var(--rs-fondo);
    border-radius: var(--rs-radio-xl);
    box-shadow: none;
    color: var(--rs-tinta);
}
body .reservas-formulario-wrapper .form-header h3 { font-weight: 800; letter-spacing: -.02em; color: var(--rs-tinta); }
body .reservas-formulario-wrapper .form-header p { color: var(--rs-gris); }
body .reservas-formulario-wrapper .form-group {
    background: var(--rs-superficie);
    border-radius: var(--rs-radio-xl);
    padding: 16px;
    box-shadow: var(--rs-sombra);
}
body .reservas-formulario-wrapper .form-group > label {
    font-size: 17px; font-weight: 800; color: var(--rs-tinta);
}
body .reservas-formulario-wrapper input[type="text"],
body .reservas-formulario-wrapper input[type="email"],
body .reservas-formulario-wrapper input[type="tel"],
body .reservas-formulario-wrapper input[type="number"],
body .reservas-formulario-wrapper input[type="date"],
body .reservas-formulario-wrapper input[type="time"],
body .reservas-formulario-wrapper select,
body .reservas-formulario-wrapper textarea {
    min-height: 52px;
    border: 2px solid var(--rs-borde);
    border-radius: var(--rs-radio-m);
    background: var(--rs-fondo-2);
    font-size: 16px; /* evita el zoom automático en iPhone */
    color: var(--rs-tinta);
}
body .reservas-formulario-wrapper input:focus,
body .reservas-formulario-wrapper select:focus,
body .reservas-formulario-wrapper textarea:focus {
    border-color: var(--rs-primario);
    box-shadow: 0 0 0 3px rgba(99, 102, 241, .2);
    outline: none;
}
body .reservas-formulario-wrapper button[type="submit"],
body .reservas-formulario-wrapper .btn-primary {
    min-height: 60px;
    border-radius: var(--rs-radio-l);
    background: var(--rs-primario-600);
    font-size: 18px; font-weight: 800;
    box-shadow: 0 6px 0 var(--rs-primario-700);
    border: none; color: #fff;
}
body .reservas-formulario-wrapper .info-box {
    border-radius: var(--rs-radio-l);
    border-left: none;
}

/* Turnos de La Escuela: de chips pequeños a tarjetas 2×2 */
body .esc-turnos-wrap {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px !important;
}
body .esc-turno-chip {
    min-height: 76px;
    border-radius: var(--rs-radio-l) !important;
    padding: 12px 14px !important;
    background: var(--rs-fondo-2) !important;
    border: 2px solid var(--rs-borde-suave) !important;
    font-size: 16px !important;
    font-weight: 700;
    justify-content: flex-start;
}
body .esc-turno-chip .esc-turno-emoji { font-size: 24px !important; }
body .esc-turno-chip input { width: 20px; height: 20px; accent-color: var(--rs-escuela-600) !important; }
body .esc-turno-chip:has(input:checked) {
    background: var(--rs-escuela-claro) !important;
    border-color: var(--rs-escuela-600) !important;
    color: var(--rs-escuela-osc) !important;
}
body .esc-todo-dia-btn {
    min-height: 44px;
    border-radius: var(--rs-radio-m) !important;
    background: var(--rs-fondo-2) !important;
    border: 2px dashed #c9bfa8 !important;
    color: var(--rs-tinta-2) !important;
}

/* Porción y zonas: opciones grandes, verde de la escuela al elegir */
body .esc-porcion-opt,
body .esc-zona-opt {
    min-height: 64px;
    border-radius: var(--rs-radio-l) !important;
    border: 2px solid var(--rs-borde-suave) !important;
    background: var(--rs-fondo-2) !important;
    font-size: 16px; font-weight: 700;
}
body .esc-porcion-opt.sel,
body .esc-zona-opt.sel {
    border-color: var(--rs-escuela-600) !important;
    background: var(--rs-escuela-claro) !important;
    color: var(--rs-escuela-osc);
}
body .esc-porcion-emoji, body .esc-zona-emoji { font-size: 24px !important; }

/* Calendario de La Escuela */
body .esc-cal-day { border-radius: 12px !important; background: var(--rs-fondo-2); }
body .esc-cal-day:hover:not(.esc-cal-day-disabled) { border-color: var(--rs-escuela) !important; background: var(--rs-escuela-claro) !important; }
body .esc-cal-day-sel { background: var(--rs-escuela-600) !important; border-color: var(--rs-escuela-osc) !important; }
body .esc-cal-day-hoy .esc-cal-day-num { color: var(--rs-escuela-osc); }
body .esc-cal-day-cerrado { background: var(--rs-pasada-fondo) !important; }
body .esc-cal-day-cerrado .esc-cal-day-num { color: var(--rs-pasada-texto) !important; }

/* Calendario del Coworking */
body .cwcal-dia { border-radius: 12px; }
body .cwcal-dia.cwcal-hoy { outline: 2px solid var(--rs-coworking); }
body .cwcal-btn { min-height: 44px; border-radius: var(--rs-radio-m); }
body .cwcal-btn-usar { background: var(--rs-coworking-600); color: #fff; }

/* --- Gimnasio ([nave_gimnasio_reserva]) --- */
body .nave-gim-wrapper { background: var(--rs-fondo); border-radius: var(--rs-radio-xl); }
body .nave-gim-btn-primary {
    min-height: var(--rs-boton-alto);
    border-radius: var(--rs-radio-m) !important;
    background: var(--rs-gimnasio-600) !important;
    color: #fff !important;
    font-weight: 800;
    border: none !important;
}
body .nave-gim-slot-badge.mio   { background: var(--rs-ok-fondo);     color: var(--rs-ok-texto); }
body .nave-gim-slot-badge.lleno { background: var(--rs-pasada-fondo); color: var(--rs-pasada-texto); }
body .nave-gim-slot-badge.libre,
body .nave-gim-slot-badge.libre-parcial { background: var(--rs-gimnasio-claro); color: var(--rs-gimnasio-osc); }

/* --- Formularios de la Nave (registro, solicitar evento) --- */
body .nave-form-section {
    background: var(--rs-superficie);
    border-radius: var(--rs-radio-xl);
    box-shadow: var(--rs-sombra);
    border: none;
}
body .nave-form-group input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body .nave-form-group select,
body .nave-form-group textarea {
    min-height: 52px;
    border: 2px solid var(--rs-borde) !important;
    border-radius: var(--rs-radio-m) !important;
    background: var(--rs-fondo-2) !important;
    font-size: 16px !important;
}
body .nave-btn { min-height: var(--rs-boton-alto); border-radius: var(--rs-radio-m); font-weight: 800; }
body .nave-btn-primary { background: var(--rs-nave-600); border-color: var(--rs-nave-600); color: #fff; }
body .nave-nav { background: var(--rs-fondo-2); border-radius: var(--rs-radio-m); }
body .nave-nav a { min-height: 44px; display: inline-flex; align-items: center; border-radius: 12px; }
body .nave-nav a.active,
body .nave-nav a:hover { background: var(--rs-primario-600); border-color: var(--rs-primario-600); }

/* ==========================================================================
   FASE 4 (v14.49.0) — Mis reservas, avisos, mensajes y perfil
   ========================================================================== */

/* --- Mis reservas ([reservas_activas] / [mis_reservas]) --- */
body .mis-reservas-wrapper { background: var(--rs-fondo); border-radius: var(--rs-radio-xl); color: var(--rs-tinta); }
body .mis-reservas-seccion-titulo {
    font-size: 12px; font-weight: 800; letter-spacing: .05em;
    text-transform: uppercase; color: var(--rs-gris);
}
body .rc2-card {
    border-radius: var(--rs-radio-xl);
    border-left: none !important;
    box-shadow: var(--rs-sombra);
    overflow: hidden;
}
body .rc2-head { padding: 14px 18px; }
body .rc2-escuela .rc2-head        { background: var(--rs-escuela-600); }
body .rc2-coworking .rc2-head      { background: var(--rs-coworking-600); }
body .rc2-nave_municipal .rc2-head { background: var(--rs-nave-600); }
body .rc2-pasada .rc2-head         { background: #78716c; }
body .rc2-pasada { opacity: 1; filter: none; }
body .rc2-pasada .rc2-body { background: #f6f3ec; color: var(--rs-pasada-texto); }

body .rc2-head-badge { border-radius: 999px; font-weight: 800; }
body .rc2-head-badge.rc2-badge-pdte   { background: var(--rs-val-fondo);  color: var(--rs-val-texto); }
body .rc2-head-badge.rc2-badge-pago   { background: var(--rs-pago-fondo); color: var(--rs-pago-texto); }
body .rc2-head-badge.rc2-badge-pasada { background: var(--rs-pasada-fondo); color: var(--rs-pasada-texto); }
body .rc2-banner { border-radius: var(--rs-radio-m); font-weight: 600; }
body .rc2-banner-pdte { background: var(--rs-val-fondo);  color: var(--rs-aviso-osc); border-color: #f5d58a; }
body .rc2-banner-pago { background: var(--rs-pago-fondo); color: #7c2d12;           border-color: #fdba74; }
body .rc2-fecha-hero { font-weight: 800; color: var(--rs-tinta); }
body .rc2-chip { background: var(--rs-fondo-2); border: 1px solid var(--rs-borde-suave); border-radius: 999px; color: var(--rs-tinta-2); }

/* Código de acceso dentro de la reserva: mismo bloque índigo que en el inicio */
body .rc2-codigo { background: #312e81; box-shadow: none; border-radius: var(--rs-radio-l); }
body .rc2-codigo-numero { font-weight: 800; letter-spacing: .12em; font-variant-numeric: tabular-nums; }
body .rc2-codigo-copiar { min-height: 44px; border-radius: 12px; }

/* Botones de la tarjeta: grandes; cancelar en rojo suave, nunca relleno rojo */
body .rc2-acciones { gap: 8px; }
body .rc2-btn-cancelar,
body .rc2-btn-ver-quien,
body .rc2-btn-invitar {
    min-height: var(--rs-boton-alto);
    border-radius: var(--rs-radio-m);
    font-weight: 700;
}
body .rc2-btn-cancelar { background: var(--rs-superficie); color: #b91c1c; border: 2px solid #fecaca; }
body .rc2-btn-invitar  { background: var(--rs-primario-600); color: #fff; border: none; }
body .rc2-btn-ver-quien { background: var(--rs-superficie); color: var(--rs-tinta); border: 2px solid var(--rs-borde); }
body .rc2-invit-chip-ok   { background: var(--rs-ok-fondo);   color: var(--rs-ok-texto); }
body .rc2-invit-chip-pdte { background: var(--rs-val-fondo);  color: var(--rs-val-texto); }
body .rc2-invit-chip-ko   { background: var(--rs-canc-fondo); color: var(--rs-canc-texto); }

/* Vista clásica de [mis_reservas] */
body .mis-reservas-wrapper .reserva-card-header { border-radius: var(--rs-radio-l) var(--rs-radio-l) 0 0; }
body .mis-reservas-wrapper .btn-cancelar { min-height: var(--rs-boton-alto); border-radius: var(--rs-radio-m); }
body .mis-reservas-wrapper .reservas-empty { background: var(--rs-superficie); border-radius: var(--rs-radio-xl); }

/* --- Avisos del Ayuntamiento (render_avisos_usuario) --- */
body .nave-aviso-card { border-radius: var(--rs-radio-xl); }
body .nave-aviso-header { background: var(--rs-aviso-claro); color: var(--rs-aviso-osc); }
body .nave-aviso-btn { min-height: var(--rs-boton-alto); border-radius: var(--rs-radio-m); font-weight: 800; }
body .nave-aviso-confirm { background: var(--rs-primario-600); color: #fff; }

/* --- Notificaciones push (widget) --- */
body .notificaciones-widget {
    background: var(--rs-primario-600);
    color: #fff;
    border-radius: var(--rs-radio-xl);
    border: none;
}
body .notificaciones-widget .btn-notificacion,
body .notificaciones-widget .btn-activar-notificaciones,
body .notificaciones-widget .btn-instalar-pwa {
    min-height: var(--rs-boton-alto);
    border-radius: var(--rs-radio-m);
    background: #fff;
    color: #3730a3;
    font-weight: 800;
    border: none;
}
body .notificaciones-widget .btn-desactivar-notificaciones { min-height: 44px; border-radius: var(--rs-radio-m); }

/* --- Chat con el Ayuntamiento --- */
body .rchat-fab { background: var(--rs-primario-600); box-shadow: 0 8px 20px -6px rgba(79, 70, 229, .6); }
body .rchat-badge { background: var(--rs-gimnasio-600); }
body .rchat-panel { background: var(--rs-fondo); border-radius: var(--rs-radio-xl); }
body .rchat-header { background: var(--rs-panel); color: #fff; }
body .rchat-msg { border-radius: 18px; font-size: 15px; line-height: 1.4; }
body .rchat-msg-usuario { background: var(--rs-primario-600); color: #fff; border-bottom-right-radius: 6px; }
body .rchat-msg-admin   { background: var(--rs-superficie); color: var(--rs-tinta); border-bottom-left-radius: 6px; }
body .rchat-msg-admin .rchat-msg-meta { color: var(--rs-gris); }
body .rchat-msg-separador { color: var(--rs-gris); }
body .rchat-form input,
body .rchat-form textarea {
    min-height: 52px; border-radius: var(--rs-radio-m);
    border: 2px solid var(--rs-borde); background: var(--rs-superficie); font-size: 16px;
}
body .rchat-send { min-width: 52px; min-height: 52px; border-radius: var(--rs-radio-m); background: var(--rs-primario-600); color: #fff; }
body .rchat-close { min-width: 44px; min-height: 44px; }

/* --- Perfil ([perfil_cliente]) --- */
body .perfil-container { background: var(--rs-fondo); border-radius: var(--rs-radio-xl); color: var(--rs-tinta); }
body .perfil-info-box {
    background: var(--rs-superficie);
    border: none;
    border-radius: var(--rs-radio-xl);
    box-shadow: var(--rs-sombra);
}
body .perfil-info-box h3 { font-weight: 800; color: var(--rs-tinta); }
body .perfil-info-box .info-row { min-height: 48px; border-color: var(--rs-borde-suave); }
body .btn-nave-perfil { min-height: var(--rs-boton-alto); border-radius: var(--rs-radio-m); font-weight: 700; }
body .nave-estado-chip { border-radius: 999px; font-weight: 700; }
body .zona-peligro-widget { border: 2px solid #fecaca; border-radius: var(--rs-radio-xl); background: var(--rs-superficie); }

/* ==========================================================================
   FASE 5 (v14.50.0) — Panel del gestor ([dashboard_admin])
   ========================================================================== */

body .admin-dashboard-pro { background: var(--rs-fondo); color: var(--rs-tinta); }

/* Menú lateral oscuro en 4 bloques */
body .dash-sidebar.dashboard-tabs {
    background: var(--rs-panel);
    border-radius: var(--rs-radio-xl);
    box-shadow: none;
    padding: 14px 10px;
    gap: 4px;
}
body .dash-sidebar .dash-group { border-bottom: 1px solid #2e2b3d; }
body .dash-sidebar .dash-group-header {
    color: #a09cb3;
    font-size: 11px;
    min-height: 32px;
}
body .dash-sidebar .dash-group-header:hover { background: #2e2b3d; color: #e5e3ee; }
body .dash-sidebar .tab-btn {
    min-height: 44px;
    border-radius: 12px;
    color: #e5e3ee;
    font-size: 15px;
}
body .dash-sidebar .tab-btn:hover { background: #2e2b3d; color: #fff; }
body .dash-sidebar .tab-btn.active {
    background: var(--rs-primario-600);
    color: #fff;
    box-shadow: none;
}
body .dash-sidebar .tab-btn .dash-count { color: #a09cb3; }
body .dash-sidebar .tab-btn.active .dash-count { color: #e0e7ff; }
body .dash-sidebar .dash-badge-notif {
    background: var(--rs-aviso);
    color: #1f1d2b;
    font-weight: 800;
}
body .dash-sidebar .dash-sidebar-close { background: #2e2b3d; color: #fff; }
@media (max-width: 1023.98px) {
    body .dash-sidebar.dashboard-tabs { border-radius: 0 var(--rs-radio-xl) var(--rs-radio-xl) 0; }
}
body .dash-hamburger {
    min-height: var(--rs-boton-alto);
    border-radius: var(--rs-radio-m);
    background: var(--rs-panel);
    color: #fff;
    font-weight: 700;
}
body .dash-hamb-badge { background: var(--rs-aviso); color: #1f1d2b; }

/* Cabecera del panel y tarjetas de contenido */
body .admin-dashboard-pro .dashboard-pro-header {
    background: var(--rs-superficie);
    border-radius: var(--rs-radio-xl);
    box-shadow: var(--rs-sombra);
}
body .admin-dashboard-pro .tab-content > .ad-card,
body .admin-dashboard-pro .ad-card,
body .admin-dashboard-pro .stat-card {
    border-radius: var(--rs-radio-xl);
    box-shadow: var(--rs-sombra);
    border-color: transparent;
}

/* Botones y etiquetas del design system del gestor */
body .admin-dashboard-pro .ad-btn { min-height: 44px; border-radius: 12px; font-weight: 700; }
body .admin-dashboard-pro .ad-badge { border-radius: 999px; font-weight: 700; }

/* Tablas: filas más altas y cabecera discreta */
body .admin-dashboard-pro table th {
    font-size: 12px; text-transform: uppercase; letter-spacing: .04em;
    color: var(--rs-gris); background: var(--rs-fondo-2);
}
body .admin-dashboard-pro table td { padding-top: 11px; padding-bottom: 11px; border-color: var(--rs-borde-suave); }

/* ==========================================================================
   v14.51.0 — Un poco más de color (decisión de Nacho tras probar en Local)
   ========================================================================== */

/* Cabecera del inicio: degradado índigo limpio (sin el morado de antes) */
body .ud-hero {
    background: linear-gradient(135deg, #3730a3 0%, var(--rs-primario-600) 100%);
    box-shadow: 0 12px 28px -14px rgba(55, 48, 163, .6);
}
body .ud-hero-cita { border: 1px solid rgba(255, 255, 255, .18); }

/* Mis espacios: cada tarjeta con el fondo suave de su espacio (usa --c, que ya pone el PHP) */
body .ud-space {
    background: color-mix(in srgb, var(--c) 13%, #fff);
    border: 1px solid color-mix(in srgb, var(--c) 28%, #fff);
    border-top: 1px solid color-mix(in srgb, var(--c) 28%, #fff);
}
body .ud-space-num,
body .ud-space-cta { color: color-mix(in srgb, var(--c) 75%, #000); }
body .ud-space-meta { color: color-mix(in srgb, var(--c) 55%, #1f1d2b); }

/* ==========================================================================
   MODO OSCURO (v15.0.0-beta) — html[data-rs-tema="oscuro"]
   - El atributo lo pone un script en <head> antes de pintar (sin parpadeo):
     preferencia guardada (auto / claro / oscuro); "auto" sigue al sistema.
   - Aquí: paleta oscura (los --rs-* cambian de valor), Divi en las páginas
     del plugin y ajustes finos. Las reglas generadas automáticamente para los
     colores fijos del plugin están en assets/rediseno-oscuro.css.
   ========================================================================== */
html[data-rs-tema="oscuro"] {
    color-scheme: dark;
    --rs-fondo: #15141c;
    --rs-fondo-2: #1c1b25;
    --rs-superficie: #23212e;
    --rs-borde: #3a3749;
    --rs-borde-suave: #2d2b3a;
    --rs-tinta: #eceaf4;
    --rs-tinta-2: #d5d2e0;
    --rs-gris: #aaa6b8;
    --rs-gris-2: #8b8799;
    --rs-panel: #0e0d14;
    --rs-panel-2: #24222f;

    --rs-primario-claro: #262650;
    --rs-escuela-claro: #0f3a2d;   --rs-escuela-osc: #6ee7b7;
    --rs-coworking-claro: #262650; --rs-coworking-osc: #c7d2fe;
    --rs-gimnasio-claro: #4a1631;  --rs-gimnasio-osc: #f9a8d4;
    --rs-nave-claro: #0b2f45;      --rs-nave-osc: #7dd3fc;
    --rs-aviso-claro: #3f2e0b;     --rs-aviso-osc: #fcd34d;

    --rs-ok-fondo: #0f3a2d;     --rs-ok-texto: #6ee7b7;
    --rs-val-fondo: #3f2e0b;    --rs-val-texto: #fcd34d;
    --rs-pago-fondo: #47220f;   --rs-pago-texto: #fdba74;
    --rs-canc-fondo: #47161a;   --rs-canc-texto: #fca5a5;
    --rs-pasada-fondo: #2a2832; --rs-pasada-texto: #b9b4c3;

    --rs-sombra: 0 1px 0 #2d2b3a, 0 8px 24px -16px rgba(0, 0, 0, .7);
    --ad-text-lighter: #8b8799;
}

/* --- Divi en las páginas del plugin: fondo, cabecera y pie también oscuros --- */
html[data-rs-tema="oscuro"] body,
html[data-rs-tema="oscuro"] #page-container,
html[data-rs-tema="oscuro"] #et-main-area,
html[data-rs-tema="oscuro"] #main-content,
html[data-rs-tema="oscuro"] .et-l--body .et_pb_section,
html[data-rs-tema="oscuro"] #main-content .et_pb_section,
html[data-rs-tema="oscuro"] .et_pb_row {
    background-color: var(--rs-fondo) !important;
}
html[data-rs-tema="oscuro"] body { color: var(--rs-tinta); }
html[data-rs-tema="oscuro"] #main-header,
html[data-rs-tema="oscuro"] #top-header,
html[data-rs-tema="oscuro"] #main-footer,
html[data-rs-tema="oscuro"] #footer-bottom,
html[data-rs-tema="oscuro"] .et-l--header .et_pb_section,
html[data-rs-tema="oscuro"] .et-l--footer .et_pb_section {
    background-color: var(--rs-panel) !important;
}
html[data-rs-tema="oscuro"] #top-menu a,
html[data-rs-tema="oscuro"] .et-l--header a,
html[data-rs-tema="oscuro"] .et-l--footer a,
html[data-rs-tema="oscuro"] .et-l--header .et_pb_text_inner,
html[data-rs-tema="oscuro"] .et-l--footer .et_pb_text_inner,
html[data-rs-tema="oscuro"] #main-footer,
html[data-rs-tema="oscuro"] #footer-bottom { color: #e5e3ee !important; }
html[data-rs-tema="oscuro"] .et_pb_text_inner,
html[data-rs-tema="oscuro"] .et_pb_text_inner :where(h1, h2, h3, h4, h5, h6, p, li),
html[data-rs-tema="oscuro"] .entry-content :where(h1, h2, h3, h4, h5, h6) {
    color: var(--rs-tinta);
}

/* --- Campos de formulario dentro del plugin --- */
html[data-rs-tema="oscuro"] :is(.ud-wrap, .reservas-formulario-wrapper, .perfil-container, .admin-dashboard-pro, .nave-gim-wrapper, .nave-registro-container, .rchat-panel, .mis-reservas-wrapper) :is(input, select, textarea) {
    background-color: var(--rs-fondo-2);
    color: var(--rs-tinta);
    border-color: var(--rs-borde);
}
html[data-rs-tema="oscuro"] ::placeholder { color: var(--rs-gris-2); }

/* --- Ajustes finos --- */
html[data-rs-tema="oscuro"] body .ud-puerta-gim .nuki-remoto-btn,
html[data-rs-tema="oscuro"] body .ud-puerta-esc .nuki-remoto-btn,
html[data-rs-tema="oscuro"] body .reservas-formulario-wrapper button[type="submit"],
html[data-rs-tema="oscuro"] body .reservas-formulario-wrapper .btn-primary { box-shadow: none !important; }
html[data-rs-tema="oscuro"] body .ud-hero { box-shadow: none; }
html[data-rs-tema="oscuro"] body .ud-space {
    background: color-mix(in srgb, var(--c) 20%, var(--rs-superficie));
    border-color: color-mix(in srgb, var(--c) 35%, var(--rs-superficie));
}
html[data-rs-tema="oscuro"] body .ud-space-num,
html[data-rs-tema="oscuro"] body .ud-space-cta { color: color-mix(in srgb, var(--c) 55%, #fff); }
html[data-rs-tema="oscuro"] body .ud-space-meta { color: color-mix(in srgb, var(--c) 30%, #d5d2e0); }
html[data-rs-tema="oscuro"] body .rc2-pasada .rc2-body { background: var(--rs-fondo-2); }
html[data-rs-tema="oscuro"] body .rc2-pasada .rc2-head { background: #4a4655; }
html[data-rs-tema="oscuro"] body .rc2-btn-cancelar { color: #fca5a5; border-color: #7f1d1d; }
html[data-rs-tema="oscuro"] body .zona-peligro-widget { border-color: #7f1d1d; }
html[data-rs-tema="oscuro"] body .reservas-menu-movil { box-shadow: 0 10px 30px -10px rgba(0, 0, 0, .9); border: 1px solid #2d2b3a; }
html[data-rs-tema="oscuro"] body .dash-sidebar.dashboard-tabs { border: 1px solid #2d2b3a; }
html[data-rs-tema="oscuro"] body .esc-cal-day-disabled { opacity: .45; }
html[data-rs-tema="oscuro"] img { filter: none; }

/* --- Selector de apariencia (lo crea assets/rediseno.js) --- */
.rs-tema {
    display: inline-grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px; padding: 4px;
    background: var(--rs-fondo-2);
    border: 1px solid var(--rs-borde);
    border-radius: 14px;
}
.rs-tema-opcion {
    min-height: 44px; padding: 0 12px;
    border: none; border-radius: 10px;
    background: transparent; color: var(--rs-tinta-2);
    font: inherit; font-size: 14px; font-weight: 700;
    cursor: pointer; white-space: nowrap;
}
.rs-tema-opcion[aria-pressed="true"] { background: var(--rs-superficie); color: var(--rs-tinta); box-shadow: 0 1px 3px rgba(0, 0, 0, .15); }
.rs-tema-opcion:focus-visible { outline: 3px solid var(--rs-primario); outline-offset: 2px; }
.rs-tema-card { margin: 0 0 16px; display: flex; flex-direction: column; gap: 10px; }
.rs-tema-card h3 { margin: 0; font-size: 18px; font-weight: 800; color: var(--rs-tinta); }
.rs-tema-card p { margin: 0; font-size: 14px; color: var(--rs-gris); }
.rs-tema-card .rs-tema { width: 100%; }
.rs-tema-sidebar { padding: 12px 6px 4px; border-top: 1px solid #2e2b3d; margin-top: 6px; }
.rs-tema-sidebar .rs-tema { width: 100%; background: var(--rs-panel-2); border-color: #3a3749; }
.rs-tema-sidebar .rs-tema-opcion { color: #d5d2e0; padding: 0 6px; font-size: 13px; }
.rs-tema-sidebar .rs-tema-opcion[aria-pressed="true"] { background: var(--rs-primario-600); color: #fff; }
.reservas-menu-desktop .rs-tema { margin-right: 10px; }
.reservas-menu-desktop .rs-tema-opcion { min-height: 36px; padding: 0 8px; font-size: 13px; }

/* v14.52.4 — Editor de texto de WordPress (TinyMCE, p. ej. "Publicar condiciones"):
   se mantiene en claro también en modo oscuro. Su zona de escritura es un documento
   aparte (iframe) que siempre es blanco; así la barra de herramientas va a juego y
   los iconos se ven. */
html[data-rs-tema="oscuro"] .wp-editor-wrap {
    color-scheme: light;
    border-radius: var(--rs-radio-m);
    overflow: hidden;
}
html[data-rs-tema="oscuro"] .wp-editor-wrap .mce-panel,
html[data-rs-tema="oscuro"] .wp-editor-wrap .mce-toolbar-grp,
html[data-rs-tema="oscuro"] .wp-editor-wrap .mce-container,
html[data-rs-tema="oscuro"] .wp-editor-wrap .mce-statusbar,
html[data-rs-tema="oscuro"] .wp-editor-wrap .quicktags-toolbar,
html[data-rs-tema="oscuro"] .wp-editor-wrap .wp-editor-tools {
    background-color: #f6f7f7 !important;
    color: #1d2327 !important;
    border-color: #dcdcde !important;
}
html[data-rs-tema="oscuro"] .wp-editor-wrap .mce-btn,
html[data-rs-tema="oscuro"] .wp-editor-wrap .mce-btn button,
html[data-rs-tema="oscuro"] .wp-editor-wrap .mce-ico { color: #1d2327 !important; background-color: transparent !important; }
html[data-rs-tema="oscuro"] .wp-editor-wrap .mce-btn:hover { background-color: #fff !important; }
html[data-rs-tema="oscuro"] .wp-editor-wrap .mce-listbox button,
html[data-rs-tema="oscuro"] .wp-editor-wrap .mce-listbox { background-color: #fff !important; color: #1d2327 !important; }
html[data-rs-tema="oscuro"] .wp-editor-wrap textarea.wp-editor-area { background-color: #fff !important; color: #1d2327 !important; }

/* v14.52.7 — Bordes grises claros en el editor de condiciones (en los dos modos). La barra
   apilada se debía a una regla de nave-municipal.css, ya corregida allí. */
body .wp-editor-wrap,
body .wp-editor-wrap * { border-color: #dcdcde !important; }

/* ==========================================================================
   FASE 6 — Pantalla "Avisos" del vecino ([reservas_avisos], página /avisos/)
   ========================================================================== */
.rs-avisos {
    max-width: 760px; margin: 0 auto; padding: 16px;
    background: var(--rs-fondo); border-radius: var(--rs-radio-xl);
    color: var(--rs-tinta); display: flex; flex-direction: column; gap: 14px;
    box-sizing: border-box;
}
.rs-avisos *, .rs-avisos *::before, .rs-avisos *::after { box-sizing: border-box; }
.rs-avisos-cab { display: flex; flex-direction: column; gap: 2px; padding: 4px 2px; }
.rs-avisos-eyebrow { font-size: 13px; font-weight: 700; color: var(--rs-gris); }
.rs-avisos .rs-avisos-titulo { margin: 0; font-size: 28px; font-weight: 800; letter-spacing: -.02em; color: var(--rs-tinta); }
.rs-avisos-bloque { display: flex; flex-direction: column; gap: 10px; }
.rs-avisos .rs-avisos-bloque h3 { margin: 0; font-size: 18px; font-weight: 800; color: var(--rs-tinta); }
.rs-avisos-vacio { margin: 0; font-size: 15px; color: var(--rs-gris); }
.rs-aviso {
    padding: 12px 14px; border-radius: var(--rs-radio-m);
    background: var(--rs-fondo-2); border: 1px solid var(--rs-borde-suave);
    display: flex; flex-direction: column; gap: 6px;
}
.rs-aviso--nuevo { background: var(--rs-aviso-claro); border-color: color-mix(in srgb, var(--rs-aviso) 45%, transparent); }
.rs-aviso-cab { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rs-aviso-ico { font-size: 20px; }
.rs-aviso-tit { flex: 1; min-width: 0; font-size: 16px; color: var(--rs-tinta); }
.rs-aviso-txt { font-size: 15px; line-height: 1.5; color: var(--rs-tinta-2); }
.rs-aviso-txt p { margin: 0 0 6px; }
.rs-aviso-txt p:last-child { margin-bottom: 0; }
.rs-aviso-pie { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.rs-aviso-fecha { font-size: 13px; color: var(--rs-gris); }
.rs-cierre {
    display: flex; flex-direction: column; gap: 2px;
    padding: 10px 14px; border-radius: var(--rs-radio-m);
    background: var(--rs-fondo-2); border-left: 4px solid var(--rs-aviso);
}
.rs-cierre span { font-size: 15px; font-weight: 700; color: var(--rs-tinta-2); }
.rs-cierre small { font-size: 13px; color: var(--rs-gris); }
.rs-avisos .rs-btn { align-self: flex-start; }
