/*
 * Piel de la propuesta para el panel de Research del equipo de GPS.
 * Se carga después de panel-base.css (el SCSS original compilado) y solo cambia el aspecto: la estructura,
 * los filtros, el mapa, el recorrido automático y la pantalla completa son los del panel vigente.
 * Reglas: el fondo claro del sitio, tarjetas blancas con línea fina, Graphie, esquinas rectas, íconos Lucide
 * de trazo fino y la paleta web de GPS (amarillo como relleno de lo activo, azul Oxford como tinta,
 * azul verdoso para los datos). El banner con la foto de cada mercado se mantiene como encabezado.
 */

@font-face { font-family: Graphie; src: url("/fonts/Graphie-Light.otf") format("opentype"); font-weight: 300; font-display: swap; }
@font-face { font-family: Graphie; src: url("/fonts/Graphie-Regular.otf") format("opentype"); font-weight: 400 500; font-display: swap; }
@font-face { font-family: Graphie; src: url("/fonts/Graphie-SemiBold.otf") format("opentype"); font-weight: 600 900; font-display: swap; }

body.rp-propuesta {
  --rp-ink: #172032;
  --rp-paper: #f5f4f0;
  --rp-panel: #ffffff;
  --rp-tint: #faf9f6;
  --rp-line: #dedfdb;
  --rp-line-strong: #b9bbb6;
  --rp-text: #172032;
  --rp-soft: #3d4454;
  --rp-muted: #626875;
  --rp-yellow: #ffd11a;
  --rp-yellow-d: #f0c000;
  --rp-blue: #1a98bf;
  --rp-blue-d: #137a9a;
  --rp-ease: cubic-bezier(0.23, 1, 0.32, 1);
  margin: 0;
  background: var(--rp-paper);
  color: var(--rp-text);
}

/* Tipografía única */
body.rp-propuesta,
body.rp-propuesta :where(h1, h2, h3, h4, p, span, a, button, input, select, textarea, label, li, td, th, div) {
  font-family: Graphie, Inter, Arial, sans-serif !important;
}
body.rp-propuesta :where(b, strong, .font-bold, .font-semibold, .font-extrabold) { font-weight: 600; }

/* Esquinas rectas (solo quedan circulares los indicadores de estado) */
body.rp-propuesta *:not(.rp-auto-dot):not(.rp-spinner):not(.leaflet-marker-icon):not(.leaflet-interactive),
body.rp-propuesta *::before,
body.rp-propuesta *::after {
  border-radius: 0 !important;
}

body.rp-propuesta .rp-dashboard-theme {
  background: var(--rp-paper) !important;
  color: var(--rp-text);
}

/* Íconos Lucide */
body.rp-propuesta .rp-ico { display: inline-flex; flex: 0 0 auto; line-height: 0; }
body.rp-propuesta .rp-ico svg { display: block; }
body.rp-propuesta .rp-ico-kpi { color: var(--rp-blue); }
body.rp-propuesta .rp-ico-kpi svg { width: 20px; height: 20px; }
body.rp-propuesta .rp-ico-tab { margin-right: 8px; color: currentColor; opacity: 0.85; }
body.rp-propuesta .rp-ico-tab svg { width: 16px; height: 16px; }
body.rp-propuesta .rp-ico-check { color: var(--rp-muted); }
body.rp-propuesta .rp-ico-check svg { width: 15px; height: 15px; }

/* ---------- Banner con la foto del mercado ---------- */
body.rp-propuesta .rp-banner { background: var(--rp-ink) !important; }
body.rp-propuesta .rp-hero-shade {
  background:
    linear-gradient(90deg, rgba(23, 32, 50, 0.9) 0%, rgba(23, 32, 50, 0.62) 50%, rgba(23, 32, 50, 0.38) 100%),
    linear-gradient(180deg, rgba(23, 32, 50, 0.1) 0%, rgba(23, 32, 50, 0.55) 100%) !important;
}
body.rp-propuesta .rp-hero-slide { filter: grayscale(0.25) contrast(1.04); }
body.rp-propuesta .rp-hero { padding: clamp(40px, 5vw, 76px) 0 clamp(30px, 3.4vw, 48px) !important; }
body.rp-propuesta .rp-hero-container { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 28px; }
body.rp-propuesta .rp-hero-header { align-items: flex-start !important; text-align: left !important; gap: 14px !important; }
body.rp-propuesta .rp-hero-header::before {
  content: "Inteligencia de mercado · Vacancia, precios, absorción y stock por corredor";
  color: rgba(255, 255, 255, 0.78);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
@media (max-width: 760px) {
  body.rp-propuesta .rp-hero-header::before { content: "Inteligencia de mercado"; }
  body.rp-propuesta .rp-hero-container { padding: 0 16px; }
}
body.rp-propuesta .rp-hero-title {
  font-size: clamp(2.4rem, 4.4vw, 4.6rem) !important;
  line-height: 0.98;
  letter-spacing: -0.02em !important;
  text-shadow: none !important;
}
body.rp-propuesta .rp-hero-research { font-weight: 300 !important; color: #fff !important; }
body.rp-propuesta .rp-hero-accent { font-weight: 300 !important; color: var(--rp-yellow) !important; letter-spacing: -0.02em !important; }
body.rp-propuesta .rp-hero-info { border-color: rgba(255, 255, 255, 0.4) !important; color: #fff !important; font-size: 12px; }
body.rp-propuesta .rp-hero-tip {
  background: #fff !important;
  color: var(--rp-ink) !important;
  border: 1px solid var(--rp-line) !important;
  box-shadow: 0 12px 30px rgba(23, 32, 50, 0.16) !important;
}
/* La franja de indicadores ya está fija sobre el menú del sitio: no se repite dentro del banner */
body.rp-propuesta #hero-zona { display: none !important; }

/* ---------- Barra de mercados y controles (sobre el fondo claro) ---------- */
body.rp-propuesta .rp-mercados-bar {
  background: var(--rp-paper) !important;
  border-bottom: 1px solid var(--rp-line);
  padding-top: 22px !important;
}
body.rp-propuesta .rp-mercados-bar .rp-map-title > div:first-child h2 {
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--rp-ink) !important;
}
body.rp-propuesta .rp-mercados-bar .rp-map-title > div:first-child p { color: var(--rp-muted) !important; font-size: 13px !important; }

body.rp-propuesta .rp-auto-btn,
body.rp-propuesta #btn-reset-filtros,
body.rp-propuesta #btn-ampliar-mercados {
  border: 1px solid var(--rp-line-strong) !important;
  background: var(--rp-panel) !important;
  color: var(--rp-ink) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  padding: 0.5rem 0.95rem !important;
  box-shadow: none !important;
  transition: border-color 0.16s ease, background-color 0.16s ease !important;
}
body.rp-propuesta :is(.rp-auto-btn, #btn-reset-filtros, #btn-ampliar-mercados):hover { border-color: var(--rp-ink) !important; box-shadow: none !important; }
body.rp-propuesta .rp-auto-btn .rp-auto-dot { background: var(--rp-line-strong) !important; box-shadow: none !important; }
body.rp-propuesta .rp-auto-btn.is-activo .rp-auto-dot {
  background: var(--rp-yellow) !important;
  box-shadow: 0 0 0 4px rgba(255, 209, 26, 0.28) !important;
  animation: rp-latido 1.8s var(--rp-ease) infinite;
}
@keyframes rp-latido { 50% { box-shadow: 0 0 0 7px rgba(255, 209, 26, 0); } }
@media (prefers-reduced-motion: reduce) { body.rp-propuesta .rp-auto-btn.is-activo .rp-auto-dot { animation: none; } }

/* Pestañas de mercado: el activo se rellena en amarillo GPS */
body.rp-propuesta #map-mercados-tabs { gap: 0 !important; }
body.rp-propuesta #map-mercados-tabs .mercado-tab-btn {
  display: inline-flex !important;
  align-items: center;
  background: transparent !important;
  border: 0 !important;
  color: var(--rp-soft) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  padding: 0.75rem 1rem !important;
  box-shadow: none !important;
  transition: color 0.16s ease, background-color 0.16s ease !important;
}
body.rp-propuesta #map-mercados-tabs .mercado-tab-btn img { display: none !important; }
body.rp-propuesta #map-mercados-tabs .mercado-tab-btn:hover { color: var(--rp-ink) !important; background: rgba(23, 32, 50, 0.05) !important; }
body.rp-propuesta #map-mercados-tabs .mercado-tab-btn.bg-sky-500 {
  background: var(--rp-yellow) !important;
  color: var(--rp-ink) !important;
  font-weight: 600 !important;
}
body.rp-propuesta .rp-mk-flecha {
  background: var(--rp-panel) !important;
  border: 1px solid var(--rp-line-strong) !important;
  color: var(--rp-ink) !important;
  box-shadow: none !important;
}
body.rp-propuesta .rp-mk-flecha:hover { border-color: var(--rp-ink) !important; }

/* ---------- Paneles: blancos, línea fina, sin sombras ni brillos ---------- */
body.rp-propuesta :is(.rp-kpi-block, .rp-map-panel, .rp-graficos, .rp-chart-panel, .rp-vacancia-card, .rp-side-panel, .rp-informe, .rp-contacto-card, .rp-main-shell > section, #kpi-section-content > .grid > div:not(.rp-informe-fila)) {
  background: var(--rp-panel) !important;
  background-image: none !important;
  border: 1px solid var(--rp-line) !important;
  box-shadow: none !important;
  color: var(--rp-text) !important;
}
body.rp-propuesta :is(.rp-kpi-block, .rp-map-panel, .rp-graficos, .rp-chart-panel, .rp-vacancia-card, .rp-side-panel, .rp-main-shell > section)::before,
body.rp-propuesta :is(.rp-kpi-block, .rp-map-panel, .rp-graficos, .rp-chart-panel, .rp-vacancia-card, .rp-side-panel, .rp-main-shell > section)::after {
  display: none !important;
}
/* Mismos paneles, con la especificidad de las reglas del original que usan el id del contenedor */
body.rp-propuesta #kpi-section-content > .grid > div:not(.rp-informe-fila),
body.rp-propuesta #kpi-section-content > .grid > :is(.rp-map-col, .rp-graficos) > div:not(.rp-informe-fila),
body.rp-propuesta #kpi-section-content > .grid > div:not(.rp-informe-fila):hover,
body.rp-propuesta #kpi-section-content > .grid > :is(.rp-map-col, .rp-graficos) > div:not(.rp-informe-fila):hover,
body.rp-propuesta #kpi-section-content .rp-map-panel,
body.rp-propuesta .rp-dashboard-theme .max-w-7xl > section,
body.rp-propuesta .rp-dashboard-theme .max-w-7xl > section:hover {
  background: var(--rp-panel) !important;
  background-image: none !important;
  border: 1px solid var(--rp-line) !important;
  box-shadow: none !important;
}
body.rp-propuesta .rp-graficos :is(.rp-chart-panel, .rp-vacancia-card) { background: transparent !important; }
body.rp-propuesta .rp-informe-fila { background: transparent !important; border: 0 !important; box-shadow: none !important; }

/* Textos: todo lo que el panel original pintaba claro pasa a tinta */
body.rp-propuesta :is(.text-white, .text-slate-100, .text-slate-200, .text-slate-300, .text-slate-700, .text-slate-800, .text-slate-900, h1, h2, h3, h4):not(.rp-hero-title):not(.rp-hero-title *) {
  color: var(--rp-text) !important;
}
body.rp-propuesta .rp-banner .rp-hero :is(h1, h1 *) { color: inherit; }
/* El original fuerza celeste claro en todo .text-xs/.text-sm; aquí van en gris legible. Va con :where para que
   las reglas puntuales de más abajo (correos, kickers, títulos) sigan mandando. */
body.rp-propuesta .rp-dashboard-theme :where(.text-xs, .text-sm) { color: var(--rp-soft) !important; }
body.rp-propuesta .rp-dashboard-theme :where([class*="text-sky-"], [class*="text-blue-"], [class*="text-cyan-"]) { color: var(--rp-blue-d) !important; }
body.rp-propuesta .rp-dashboard-theme :where([class*="text-amber-"], [class*="text-yellow-"]) { color: var(--rp-ink) !important; }
body.rp-propuesta :is(.text-slate-400, .text-slate-500, .text-slate-600) { color: var(--rp-muted) !important; }
body.rp-propuesta .rp-main-shell :is(p, span, li, td, th, div) { color: inherit; }
body.rp-propuesta .rp-main-shell { color: var(--rp-text) !important; }
/* Barra «Tus mercados» (aparece tras enviar el formulario de informes): conserva su fondo azul oscuro, así que el
   rótulo y los nombres de las casillas van claros, y al pasar el mouse toman el amarillo de realce que ya usaba el panel. */
body.rp-propuesta #reports-change-markets :is(label, span) { color: #e2e8f0 !important; }
body.rp-propuesta #reports-change-markets label:hover { color: var(--rp-yellow) !important; }
/* Tarjetas de informes (aparecen tras enviar el formulario): el pie conserva su degradado azul oscuro (panel-base.css),
   así que título, botón «Ver» y mercado van claros, y la etiqueta de mercado en el amarillo de realce. El botón «PDF»
   (<a>, fondo amarillo) no se toca. La portada del último informe también conserva su fondo oscuro mientras carga. */
body.rp-propuesta #report-cards-grid .report-card :is(p, .btn-view-pdf) { color: #e2e8f0 !important; }
body.rp-propuesta #report-cards-grid .report-card span.uppercase { color: var(--rp-yellow) !important; }
body.rp-propuesta .rp-informe-portada .rp-informe-cargando { color: #e2e8f0 !important; }
/* Visor PDF a pantalla completa: la barra superior conserva su fondo #0f172a (panel-base.css), así que su leyenda
   («Vista en pantalla completa», span.text-slate-200) va clara y no en tinta. El botón «Volver a la web» no se toca. */
body.rp-propuesta #pdf-viewer-container .pdf-fullscreen-bar span { color: #e2e8f0 !important; }

body.rp-propuesta :is(#vacancia-title, .rp-chart-panel h3, .rp-map-panel h3, .rp-side-panel h3) {
  font-size: 17px !important;
  font-weight: 400 !important;
  letter-spacing: -0.005em;
}
body.rp-propuesta label.block,
body.rp-propuesta .rp-map-label,
body.rp-propuesta .rp-mk-label {
  color: var(--rp-muted) !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase;
}

/* Bloque de indicadores del mercado */
body.rp-propuesta .rp-kpi-mercado {
  font-size: clamp(1.9rem, 2.4vw, 2.6rem) !important;
  font-weight: 300 !important;
  letter-spacing: -0.02em !important;
  line-height: 1 !important;
}
body.rp-propuesta .rp-kpi-title {
  color: var(--rp-muted) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase;
  margin-top: 0.7rem !important;
}
body.rp-propuesta .rp-kpi-subtitle { color: var(--rp-muted) !important; font-size: 13px !important; }
body.rp-propuesta #chart-mercado-icon { display: none !important; }
body.rp-propuesta #kpi-block-zona { color: var(--rp-blue-d) !important; font-weight: 400 !important; }

/* Tarjetas de indicadores, con el lenguaje de las cifras del sitio: sin caja, una línea fina arriba, la cifra
   alineada a la izquierda y el período anterior como una fila de libro mayor. La elegida lleva la línea gruesa
   azul Oxford que usa el sitio para el indicador activo. */
body.rp-propuesta .rp-dashboard-theme #kpi-cards-container {
  column-gap: 28px !important;
  row-gap: 0 !important;
}
body.rp-propuesta #kpi-cards-container .kpi-indicator-card,
body.rp-propuesta #kpi-cards-container .kpi-indicator-card:is(:hover, :focus, :active) {
  background: transparent !important;
  border: 0 !important;
  border-top: 1px solid var(--rp-line) !important;
  box-shadow: none !important;
  min-height: 0 !important;
  padding: 18px 0 20px !important;
  gap: 14px !important;
  cursor: pointer;
}
body.rp-propuesta #kpi-cards-container .kpi-indicator-card::after { display: none !important; }
body.rp-propuesta #kpi-cards-container .kpi-indicator-card:hover {
  border-top-color: var(--rp-line-strong) !important;
  transition: border-color 0.16s ease !important;
}
body.rp-propuesta .rp-dashboard-theme #kpi-cards-container .kpi-indicator-card.is-active,
body.rp-propuesta .rp-dashboard-theme #kpi-cards-container .kpi-indicator-card.is-active:hover {
  background: transparent !important;
  border-top: 3px solid var(--rp-ink) !important;
  padding-top: 16px !important;
}
body.rp-propuesta #kpi-cards-container .kpi-indicator-card:focus-visible { outline: 2px solid var(--rp-ink); outline-offset: 4px; }

/* Encabezado: ícono + nombre del indicador en una línea; la variación a la derecha */
body.rp-propuesta #kpi-cards-container .kpi-indicator-card > div:first-child { align-items: center !important; gap: 10px !important; }
body.rp-propuesta #kpi-cards-container .kpi-indicator-card > div:first-child > div { align-items: center !important; gap: 8px !important; }
body.rp-propuesta #kpi-cards-container .kpi-indicator-card > div:first-child p {
  font-weight: 400 !important;
  font-size: 13px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  line-height: 1.25 !important;
}
body.rp-propuesta #kpi-cards-container .rp-ico-kpi svg { width: 17px; height: 17px; }
body.rp-propuesta #kpi-cards-container .kpi-indicator-card > div:first-child > span {
  font-size: 12px !important;
  gap: 3px !important;
}
body.rp-propuesta #kpi-cards-container .kpi-indicator-card > div:first-child > span > span:first-child { font-size: 9px !important; }
body.rp-propuesta #kpi-cards-container .kpi-indicator-card > div:first-child > span > span:last-child { font-size: 12px !important; font-weight: 400 !important; }

/* El original fuerza #dce8ff (texto claro) en todo p/span de las tarjetas, por encima incluso del color en línea */
body.rp-propuesta .rp-dashboard-theme #kpi-cards-container :is(p, span) { color: inherit !important; }
body.rp-propuesta .rp-dashboard-theme #kpi-cards-container .kpi-indicator-card { color: var(--rp-ink) !important; }
body.rp-propuesta .rp-dashboard-theme #kpi-cards-container .rp-ico-kpi { color: var(--rp-blue) !important; }
/* Variación: el script pinta la flecha en línea (verde si mejora, rojo si empeora, gris sin cambio) */
body.rp-propuesta .rp-dashboard-theme #kpi-cards-container span[style*="#409D37"] { color: #3a8f32 !important; }
body.rp-propuesta .rp-dashboard-theme #kpi-cards-container span[style*="#C2412D"] { color: #c2412d !important; }
body.rp-propuesta .rp-dashboard-theme #kpi-cards-container span[style*="#94a3b8"] { color: var(--rp-muted) !important; }
body.rp-propuesta .rp-dashboard-theme #kpi-section-label,
body.rp-propuesta .rp-dashboard-theme :is(h2, h3, .text-slate-900, .text-slate-800, .text-slate-700) { color: var(--rp-ink) !important; }
body.rp-propuesta .rp-dashboard-theme :is(.text-slate-600, .text-slate-500, .text-slate-400) { color: var(--rp-muted) !important; }

/* Cifras. Orden fijo del script: valor actual · "Último período (…)" · valor anterior · "Período anterior (…)" */
body.rp-propuesta #kpi-cards-container .kpi-indicator-card > div:last-child {
  display: grid !important;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  justify-items: start;
  text-align: left !important;
  gap: 10px 12px !important;
}
body.rp-propuesta #kpi-cards-container .kpi-indicator-card > div:last-child > p:nth-child(1) {
  grid-column: 1 / -1;
  font-weight: 300 !important;
  letter-spacing: -0.025em !important;
  line-height: 1 !important;
  font-size: clamp(1.9rem, 2.3vw, 2.5rem) !important;
  color: var(--rp-ink) !important;
}
body.rp-propuesta #kpi-cards-container .kpi-indicator-card > div:last-child > p sup {
  font-size: 0.58em; vertical-align: baseline; position: relative; top: -0.72em; left: 0; margin: 0 0 0 0.03em !important; letter-spacing: 0;
}
/* La etiqueta "Último período" repite lo que ya dice el encabezado del bloque */
body.rp-propuesta #kpi-cards-container .kpi-indicator-card > div:last-child > p:nth-child(2) { display: none !important; }
body.rp-propuesta #kpi-cards-container .kpi-indicator-card > div:last-child > p:nth-child(4) {
  grid-column: 1; grid-row: 2;
  font-size: 12px !important;
  color: var(--rp-muted) !important;
  margin: 0 !important;
}
body.rp-propuesta #kpi-cards-container .kpi-indicator-card > div:last-child > p:nth-child(3) {
  grid-column: 2; grid-row: 2;
  justify-self: end;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: var(--rp-soft) !important;
  margin: 0 !important;
}

/* El original fija el tamaño de la cifra por modo con una regla muy específica; se replica para ganarle */
body.rp-propuesta.rp-modo-monitor .rp-dashboard-theme .rp-main-shell > .rp-kpi-block #kpi-cards-container .kpi-indicator-card > div:nth-child(2) > p:first-child {
  font-size: clamp(1.45rem, 1.65vw, 1.75rem) !important;
}
body.rp-propuesta.rp-modo-laptop .rp-dashboard-theme .rp-main-shell > .rp-kpi-block #kpi-cards-container .kpi-indicator-card > div:nth-child(2) > p:first-child {
  font-size: clamp(1.4rem, 1.9vw, 1.7rem) !important;
}

/* Columnas del modo monitor con la misma altura: indicadores, mapa y gráficos terminan en la misma línea */
body.rp-propuesta.rp-modo-monitor .rp-main-shell > :is(.rp-kpi-block, .rp-graficos),
body.rp-propuesta.rp-modo-monitor .rp-main-shell .rp-graficos,
body.rp-propuesta.rp-modo-laptop .rp-main-shell > .rp-kpi-block,
body.rp-propuesta.rp-modo-laptop .rp-main-shell .rp-map-panel {
  align-self: stretch !important;
  max-height: none !important;
}
body.rp-propuesta:is(.rp-modo-monitor, .rp-modo-laptop) .rp-kpi-block { display: flex !important; flex-direction: column; }
body.rp-propuesta:is(.rp-modo-monitor, .rp-modo-laptop) .rp-kpi-block #kpi-cards-container { flex: 1; grid-auto-rows: minmax(min-content, 1fr); align-content: stretch; }
body.rp-propuesta.rp-modo-monitor #kpi-cards-container .kpi-indicator-card,
body.rp-propuesta.rp-modo-monitor #kpi-cards-container .kpi-indicator-card:is(:hover, :focus, :active) { padding: 24px 0 28px !important; gap: 18px !important; }
body.rp-propuesta.rp-modo-monitor .rp-dashboard-theme #kpi-cards-container .kpi-indicator-card.is-active { padding-top: 22px !important; }
body.rp-propuesta.rp-modo-monitor #kpi-cards-container .kpi-indicator-card > div:last-child > p:nth-child(1) { white-space: nowrap; }

/* Barras de desplazamiento internas: finas y grises */
body.rp-propuesta * { scrollbar-width: thin; scrollbar-color: #c9cbc6 transparent; }
body.rp-propuesta *::-webkit-scrollbar { width: 6px; height: 6px; }
body.rp-propuesta *::-webkit-scrollbar-thumb { background: #c9cbc6 !important; }
body.rp-propuesta *::-webkit-scrollbar-track { background: transparent !important; }

/* ---------- Campos ---------- */
body.rp-propuesta :is(select, input:not([type="checkbox"]):not([type="radio"]), textarea, #mercado-dropdown-btn) {
  background: var(--rp-panel) !important;
  border: 1px solid var(--rp-line-strong) !important;
  color: var(--rp-ink) !important;
  font-size: 14px !important;
  box-shadow: none !important;
}
body.rp-propuesta :is(select, input, textarea):hover { border-color: var(--rp-soft) !important; box-shadow: none !important; }
body.rp-propuesta :is(select, input, textarea):focus,
body.rp-propuesta :is(select, input, textarea):focus-visible {
  outline: none !important;
  border-color: var(--rp-ink) !important;
  box-shadow: 0 0 0 1px var(--rp-ink) !important;
}
body.rp-propuesta select option { background: #fff; color: var(--rp-ink); }
body.rp-propuesta ::placeholder { color: #9a9ea6 !important; }
body.rp-propuesta input[type="checkbox"] { accent-color: var(--rp-ink); }
/* Casillas de la barra «Tus mercados» (fondo azul oscuro): la sombra y el accent-color en tinta no se ven, así que el foco
   de teclado lleva anillo amarillo y la casilla marcada el amarillo (el accent-amber-400 del original). */
body.rp-propuesta #reports-change-markets input[type="checkbox"] { accent-color: var(--rp-yellow); }
body.rp-propuesta #reports-change-markets input[type="checkbox"]:focus-visible { outline: 2px solid var(--rp-yellow) !important; outline-offset: 2px; }
body.rp-propuesta label:has(> input[name="rl-interes"]) { color: var(--rp-soft) !important; }

body.rp-propuesta :is(#mercado-dropdown-panel, #map-mercado-dd-panel) {
  background: #fff !important;
  border: 1px solid var(--rp-line-strong) !important;
  box-shadow: 0 18px 40px rgba(23, 32, 50, 0.14) !important;
}
body.rp-propuesta :is(#mercado-dropdown-panel, #map-mercado-dd-panel) .mercado-dd-opt:hover { background: var(--rp-paper) !important; }

/* ---------- Acciones ---------- */
body.rp-propuesta :is(.bg-sky-500, .bg-sky-600, .bg-amber-400, .bg-amber-500, .rp-informe-btn):not(.mercado-tab-btn):not(.report-pill) {
  background: var(--rp-yellow) !important;
  border-color: var(--rp-yellow) !important;
  color: var(--rp-ink) !important;
  font-weight: 600 !important;
  box-shadow: none !important;
  transition: background-color 0.16s ease, transform 0.12s ease !important;
}
body.rp-propuesta :is(.bg-sky-500, .bg-sky-600, .bg-amber-400, .bg-amber-500, .rp-informe-btn):not(.mercado-tab-btn):not(.report-pill):hover { background: var(--rp-yellow-d) !important; }
body.rp-propuesta :is(.bg-sky-500, .bg-sky-600, .rp-informe-btn):not(.mercado-tab-btn):active { transform: translateY(1px); }
body.rp-propuesta :is(.bg-sky-50, .bg-sky-100) { background: var(--rp-tint) !important; }
body.rp-propuesta :is(.text-sky-300, .text-sky-400, .text-sky-600, .text-sky-700, .text-sky-800) { color: var(--rp-blue-d) !important; }
/* Errores de los formularios (gate y reportes): el script los marca con data-estado="error". Mismo rojo de las
   variaciones negativas; sobre blanco y sobre el fondo del sitio cumple contraste AA en texto chico. */
body.rp-propuesta :is(#lead-form-status, #rl-status)[data-estado="error"] { color: #c2412d !important; }
body.rp-propuesta :is(.border-sky-100, .border-sky-300, .border-sky-500, .border-amber-400) { border-color: var(--rp-line-strong) !important; }
body.rp-propuesta a { color: var(--rp-blue-d); }
body.rp-propuesta #vacancia-toggle { border: 1px solid var(--rp-line-strong) !important; background: #fff !important; color: var(--rp-ink) !important; }

/* Filtros de los informes PDF */
body.rp-propuesta .report-pill {
  display: inline-flex !important;
  align-items: center;
  background: var(--rp-panel) !important;
  border: 1px solid var(--rp-line-strong) !important;
  color: var(--rp-soft) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  padding: 0.5rem 0.85rem !important;
}
body.rp-propuesta .report-pill:hover { border-color: var(--rp-ink) !important; color: var(--rp-ink) !important; }
body.rp-propuesta .report-pill.bg-sky-500 { background: var(--rp-yellow) !important; border-color: var(--rp-yellow) !important; color: var(--rp-ink) !important; font-weight: 600 !important; }

/* Leyenda de corredores (el script pinta los nombres en gris claro en línea) y pie del panel */
body.rp-propuesta #corridors-legend-items span[style] { color: var(--rp-soft) !important; font-size: 13px !important; font-weight: 400 !important; }
body.rp-propuesta #corridors-legend > p { color: var(--rp-muted) !important; letter-spacing: 0.18em; }
body.rp-propuesta .rp-intel-copy { color: var(--rp-muted) !important; }

/* ---------- Mapa ---------- */
body.rp-propuesta #map { border: 1px solid var(--rp-line) !important; }
body.rp-propuesta .leaflet-bar,
body.rp-propuesta .leaflet-control-layers { border: 1px solid var(--rp-line-strong) !important; box-shadow: none !important; }
body.rp-propuesta .leaflet-bar a {
  background: #fff !important;
  color: var(--rp-ink) !important;
  border-bottom-color: var(--rp-line) !important;
}
body.rp-propuesta .leaflet-bar a:hover { background: var(--rp-paper) !important; }
body.rp-propuesta :is(.leaflet-tooltip, .leaflet-tooltip-custom, .leaflet-popup-content-wrapper) {
  background: #fff !important;
  color: var(--rp-ink) !important;
  border: 1px solid var(--rp-line-strong) !important;
  box-shadow: 0 12px 28px rgba(23, 32, 50, 0.16) !important;
  font-family: Graphie, Inter, Arial, sans-serif !important;
}
body.rp-propuesta :is(.leaflet-tooltip, .leaflet-tooltip-custom) * { color: inherit !important; }
body.rp-propuesta .leaflet-tooltip::before { display: none !important; }
body.rp-propuesta .leaflet-control-attribution { background: rgba(255, 255, 255, 0.8) !important; color: var(--rp-muted) !important; }

/* ---------- Último informe, columna de opinión y contacto ---------- */
body.rp-propuesta :is(.rp-informe-kicker, .rp-opinion-kicker, .rp-contacto-title) {
  color: var(--rp-muted) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase;
}
body.rp-propuesta .rp-informe-titulo { font-size: 24px !important; font-weight: 400 !important; letter-spacing: -0.01em; color: var(--rp-ink) !important; }
body.rp-propuesta :is(.rp-informe-meta, .rp-informe-nota, .rp-informe-texto, .rp-opinion-cargo, .rp-contacto-cargo, .rp-contacto-info) { color: var(--rp-muted) !important; }
body.rp-propuesta .rp-informe-portada img { box-shadow: none !important; border: 1px solid var(--rp-line) !important; }
body.rp-propuesta .rp-opinion-frase {
  font-size: clamp(1.15rem, 1.35vw, 1.45rem) !important;
  font-weight: 300 !important;
  line-height: 1.45 !important;
  color: var(--rp-ink) !important;
}
body.rp-propuesta .rp-opinion-comilla { color: var(--rp-blue) !important; }
body.rp-propuesta :is(.rp-opinion-autor, .rp-contacto-nombre) { color: var(--rp-ink) !important; font-weight: 600 !important; }
body.rp-propuesta .rp-opinion { border-left: 1px solid var(--rp-line) !important; }
body.rp-propuesta .rp-opinion :is(.rp-opinion-frase, blockquote, figure) { border-left: 0 !important; }
body.rp-propuesta .rp-contacto-mail { color: var(--rp-blue-d) !important; }

/* Avisos y visores que el original pintaba con degradados oscuros */
body.rp-propuesta :is([class*="from-sky"], [class*="from-slate"], [class*="bg-gradient"]) { background-image: none !important; }
body.rp-propuesta .rounded-xl[style*="linear-gradient"],
body.rp-propuesta [style*="background: #0d1f3c"],
body.rp-propuesta [style*="background:#0d1f3c"] {
  background: var(--rp-tint) !important;
  border: 1px solid var(--rp-line) !important;
  box-shadow: none !important;
}
body.rp-propuesta :is(.bg-white, .bg-slate-50, .bg-slate-100, .bg-slate-800, .bg-slate-900) { background-color: var(--rp-panel) !important; }
body.rp-propuesta :is(.border-slate-200, .border-slate-300, .border-slate-600, .border-slate-700, .border) { border-color: var(--rp-line) !important; }
body.rp-propuesta :is(.shadow-sm, .shadow, .shadow-md, .shadow-lg) { box-shadow: none !important; }

/* Carga */
/* El iframe mide lo que mide el panel: el aviso de carga se ancla arriba, no al centro de 3.000 px */
body.rp-propuesta .rp-loading-overlay {
  position: absolute !important;
  inset: 0 0 auto 0 !important;
  height: min(100vh, 720px) !important;
  background: var(--rp-paper) !important;
}
body.rp-propuesta .rp-spinner { border-color: rgba(23, 32, 50, 0.12) !important; border-top-color: var(--rp-ink) !important; }
body.rp-propuesta .rp-loading-text { color: var(--rp-muted) !important; letter-spacing: 0.18em; text-transform: uppercase; font-size: 11px !important; }

body.rp-propuesta.rp-pantalla-completa { background: var(--rp-paper); }
