@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap");

/* ---------- 1. VARIABLES ---------- */
:root {
  --ink: #1a1f2b;          /* títulos y texto principal */
  --muted: #5b6470;        /* etiquetas y texto auxiliar */
  --red: #a6101c;          /* cifras clave, iconos, barras */
  --red-dark: #8c0b16;
  --red-bg: #fbeceb;       /* píldoras y bloques rosados */
  --red-bd: #f1cfcd;
  --dark: #111c2d;         /* barras de nota oscuras */
  --bg: #f3f4f6;           /* fondo del área de contenido */
  --soft: #f1f3f5;         /* ítems internos grises */
  --line: #e1e4e8;
  --shadow: 0 1px 2px rgb(16 24 40 / 6%);

  --navy: var(--ink);
  --navy-2: var(--red);
  --label: var(--muted);
  --panel: #fff;
  --panel-bd: var(--line);
  --card: #fff;
  --card-bd: var(--line);
  --circle: transparent;
  --note: var(--soft);
  --divider: var(--line);
  --red-bd-old: var(--red-bd);
  --kpi: var(--red);

  --fuente: "IBM Plex Sans", "Droid Sans", "Trebuchet MS", Arial, Helvetica, sans-serif;
  --radio: 10px;

  --f-navy: brightness(0) saturate(100%) invert(21%) sepia(96%) saturate(2024%) hue-rotate(212deg) brightness(63%) contrast(97%);
  --f-red:  brightness(0) saturate(100%) invert(27%) sepia(84%) saturate(2647%) hue-rotate(334deg) brightness(74%) contrast(119%);

  /* Compatibilidad con bloques antiguos */
  --blanco: #fff; --fondo: #fff; --fondo-card: var(--bg);
  --hover-notas: var(--soft); --hover-notas-azul: var(--soft);
  --borde: var(--line); --divisores: var(--line);
  --azul: var(--ink); --azul-1: var(--red); --cifras: var(--red);
  --rojo: var(--red); --rojo-oscuro: var(--red-dark);
  --rojo-100: var(--red-bg); --rojo-borde: var(--red-bd);
  --verde: var(--red); --verde-bg: var(--red-bg);
  --violeta: var(--red); --violeta-bg: var(--red-bg);
  --naranja: var(--red); --naranja-bg: var(--red-bg);
  --cian: var(--red); --cian-bg: var(--red-bg);
  --radio-legacy: 8px;
  --texto: var(--ink);
  --texto-suave: var(--muted);
}

/* ---------- 2. PALETAS (todas iguales: blanco + rojo) ---------- */
.palette-rose, .palette-amber, .palette-blue, .palette-green, .palette-lilac {
  --palette-surface: #fff;
  --palette-border: var(--line);
  --palette-soft: var(--soft);
  --palette-icon: transparent;
  --palette-accent: var(--red);
}
.palette-surface { border-color: var(--palette-border); background: var(--palette-surface); }
.palette-icon    { background: var(--palette-icon); color: var(--red); }
.palette-icon .dashboard-icon-image { filter: var(--f-red); }
.palette-soft    { border-color: transparent; background: var(--palette-soft); border-radius: 8px; }
.palette-accent  { color: var(--palette-accent); }
.palette-outline { border-color: var(--palette-border); background: #fff; }
.palette-track   { background: var(--soft); }
.palette-fill    { background: var(--red); }
.num_rojo { color: var(--kpi) !important; }

/* ---------- 3. BASE Y LAYOUT ---------- */
body.pagina-responsable #contenedor { box-sizing: border-box; width: 100%; max-width: 1140px; }
body.pagina-responsable #cabecera   { width: 100%; }
body.pagina-responsable .container.dashboard { width: 100%; max-width: none; }
body.pagina-responsable .responsable-layout [hidden] { display: none !important; }

.resumen_general-content { box-sizing: border-box; width: 100%; min-width: 0; margin: 0; padding: 0; background: var(--bg); border-radius: 4px; overflow: hidden; }

body.pagina-responsable .section-dashboard,
.dashboard-data-error { font-family: var(--fuente); }

body.pagina-responsable .section-dashboard {
  box-sizing: border-box; display: grid; gap: 14px; width: 100%;
  padding: 0 0 16px; color: var(--ink);
  background: var(--bg);
}
/* todo lo que no es cabecera lleva margen lateral */
.section-dashboard > *:not(.regulation-header) { margin-left: 16px; margin-right: 16px; min-width: 0; }

.responsable-layout {
  box-sizing: border-box; display: grid;
  grid-template-columns: minmax(175px, 210px) minmax(0, 1fr);
  align-items: start; gap: 16px; width: calc(100% - 32px); margin: 16px auto;
}
.dashboard-data-error {
  margin: 16px; padding: 14px; border: 1px solid var(--red-bd);
  border-radius: var(--radio); background: var(--red-bg); color: var(--ink);
}

/* ---------- 3b. MENÚ LATERAL ---------- */
.responsable-layout .wrap { display: grid; gap: 8px; }
.responsable-layout .button { width: 100%; border-collapse: separate; border-spacing: 0; }
.responsable-layout .button td { padding: 0; }
.section-switch {
  display: block; box-sizing: border-box; padding: 12px 14px;
  border: 1px solid #d5d9df; border-radius: 3px; background: #fff;
  color: #2b3340; font-family: var(--fuente); font-size: 13px; line-height: 1.3; text-decoration: none;
}
.section-switch:hover, .section-switch:focus-visible { border-color: #8b94a1; }
.section-switch[aria-current="page"], .section-switch.is-active, .section-switch.active {
  border-color: var(--ink); color: var(--red); font-weight: 500; text-decoration: underline;
}

/* ---------- 4. SUPERFICIES COMPARTIDAS ---------- */
.stat-card, .stat-card-red, .dashboard-control-card,
.responsible-card, .responsible-panel,
.revenue-highlight, .revenue-message, .revenue-panel,
.regulation-metric, .regulation-panel, .integrity-result-card {
  box-sizing: border-box; min-width: 0;
  border: 1px solid var(--line); border-radius: var(--radio);
  background: #fff; box-shadow: var(--shadow);
}

/* Iconos: sin círculo, rojos y pequeños */
.stat-icon, .responsible-icon, .responsible-campaign-icon, .responsible-location-icon,
.revenue-icon, .revenue-message-icon, .regulation-metric-icon,
.integrity-result-icon, .red-bars {
  --size: 26px; --img: 22px;
  display: flex; flex: 0 0 var(--size); width: var(--size); height: var(--size); min-width: var(--size);
  align-items: center; justify-content: center; border-radius: 50%;
  background: transparent; color: var(--red);
}
.dashboard-icon-image {
  display: block; width: var(--img); height: var(--img); flex: 0 0 var(--img);
  object-fit: contain; filter: var(--f-red);
}

.stat-content, .responsible-card-copy, .revenue-highlight-copy,
.regulation-metric-copy, .integrity-result-copy { display: flex; min-width: 0; flex-direction: column; }

/* Etiquetas en mayúsculas pequeñas */
.stat-label,
.stat-card .stat-content > span:first-child,
.regulation-metric-copy > span,
.revenue-highlight-copy > span:first-child,
.regulation-time-content h2 {
  margin-bottom: 8px; color: var(--muted); font-size: 11px; font-weight: 600;
  letter-spacing: .06em; line-height: 1.3; text-transform: uppercase;
}

/* Cifras clave en rojo */
.stat-value, .palette-accent, .num_rojo,
.responsible-card-copy > strong, .revenue-highlight-copy strong,
.regulation-metric-copy strong, .responsible-campaign-metric b,
.responsible-geography-copy strong, .responsible-geography-percentage,
.responsible-percentage, .integrity-subject-count,
.integrity-action > strong, .integrity-certification-year strong,
.integrity-splaft-metrics .integrity-result-copy strong {
  color: var(--red) !important; font-weight: 700; line-height: 1;
}

/* Títulos de panel */
.responsible-panel > h2, .revenue-panel > h2, .regulation-panel > h2, .revenue-message h2 {
  margin: 0 0 10px; color: var(--ink); font-weight: 600; line-height: 1.25;
}

/* Barras de nota: oscuras (pie de página) */
.revenue-footnote.palette-surface, .regulation-footnote.palette-surface {
  display: flex; align-items: center; gap: 10px; margin: 0 16px;
  padding: 14px 18px; border: 0; border-radius: 8px;
  background: var(--dark); color: #fff; font-size: 13px; line-height: 1.35; box-shadow: none;
}
.revenue-footnote.palette-surface .regulation-info-icon,
.regulation-footnote.palette-surface .regulation-info-icon {
  background: transparent; border: 1.5px solid #ff6b78; color: #ff6b78;
}
/* Barras de nota: rosadas (dentro de paneles) */
.regulation-concentration, .jaad-chart-summary {
  display: flex; align-items: center; gap: 8px; margin: 10px 0 0; padding: 10px 12px;
  border: 0; border-radius: 8px; background: var(--red-bg); color: var(--ink);
  font-size: 12px; line-height: 1.35;
}
.regulation-info-icon {
  display: inline-flex; flex: 0 0 20px; width: 20px; height: 20px; box-sizing: border-box;
  align-items: center; justify-content: center; border: 1.5px solid var(--red); border-radius: 50%;
  background: transparent; color: var(--red); font-size: 11px; font-weight: 700;
}
.regulation-info-icon.palette-icon { background: transparent; color: var(--red); }

/* Donuts */
.revenue-donut, .procedure-donut {
  position: relative; aspect-ratio: 1; justify-self: center; border-radius: 50%; background: var(--line);
}
.revenue-donut::before, .procedure-donut::before { position: absolute; inset: 25%; border-radius: 50%; background: #fff; content: ""; }
.revenue-donut-center, .procedure-donut-center {
  position: absolute; z-index: 1; inset: 25%; display: flex; flex-direction: column;
  align-items: center; justify-content: center; color: var(--ink); text-align: center;
}
.procedure-donut::before, .procedure-donut-center,
.revenue-donut::before, .revenue-donut-center { inset: 17%; }
.revenue-donut { width: min(100%, 150px); }
.procedure-donut { width: min(100%, 150px); }
.revenue-donut-center { font-size: 22px; }
.revenue-donut-center strong { font-size: 22px; }
.procedure-donut-center { font-size: var(--procedure-chart-text-size); }
.procedure-donut-center strong { font-size: 17px; line-height: 1; color: var(--ink); }
.procedure-donut-center span { margin-top: 2px; color: var(--muted); font-size: 9px; line-height: 1.15; }

/* Leyendas */
.revenue-legend, .procedure-legend { display: grid; margin: 0; padding: 0; list-style: none; }
.revenue-legend { gap: 12px; }
.procedure-legend { gap: 8px; }
.revenue-legend li, .procedure-legend li { display: grid; align-items: center; color: var(--muted); line-height: 1.2; }
.revenue-legend li { grid-template-columns: 10px minmax(0, 1fr); gap: 4px 8px; font-size: 13px; }
.procedure-chart .procedure-legend li { grid-template-columns: 10px minmax(0, 1fr) auto; gap: 8px; font-size: var(--procedure-chart-text-size); }
.revenue-legend-swatch, .procedure-legend-swatch { width: 9px; height: 9px; border-radius: 2px; }
.revenue-legend li strong { grid-column: 2; color: var(--ink); font-size: 19px; font-weight: 600; }
.procedure-legend strong { color: var(--ink); white-space: nowrap; font-size: 12px; font-weight: 600; }

/* Barras horizontales */
.procedure-bar-track { height: 6px; border-radius: 3px; background: #eceef1; }
.procedure-bar-fill { display: block; height: 100%; border-radius: 3px; background: var(--red-dark); }

/* ---------- 5. ENCABEZADO COMÚN ---------- */
.regulation-header {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
  padding: 18px 20px 16px; border-bottom: 1px solid var(--line); background: #fff;
}
.regulation-header h1 { margin: 0; color: var(--ink); font-size: 28px; font-weight: 600; line-height: 1.15; }
.regulation-header > div > p { margin: 6px 0 0; color: var(--muted); font-size: 14px; line-height: 1.45; }
.regulation-header > div > p strong { color: var(--ink); font-weight: 600; }
.regulation-updated {
  display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; margin: 8px 0 0;
  padding: 6px 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--soft);
  color: var(--muted); font-size: 12px; white-space: nowrap;
}
.regulation-updated svg { width: 14px; height: 14px; fill: none; stroke: var(--red); stroke-width: 2; }
.regulation-updated strong { color: var(--ink); font-weight: 600; }

/* ---------- 6. RESUMEN GENERAL ---------- */
.dashboard-group { min-width: 0; margin-bottom: 0; border-radius: 12px; }
.dashboard-group:has(> .section-title) { padding: 0; border: 0; background: transparent; }
.section-title { margin: 0 0 10px; color: var(--ink); font-size: 16px; font-weight: 600; line-height: 1.25; }

.dashboard-grid { display: grid; overflow-x: auto; gap: 12px; margin: 0; }
.dashboard-grid--1 { grid-template-columns: repeat(1, minmax(220px, 1fr)); }
.dashboard-grid--2 { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
.dashboard-grid--3 { grid-template-columns: repeat(3, minmax(220px, 1fr)); }
.dashboard-grid--4 { grid-template-columns: repeat(4, minmax(220px, 1fr)); }
.dashboard-grid--5 { grid-template-columns: repeat(5, minmax(220px, 1fr)); }
.regulation-dashboard .dashboard-grid, .control-dashboard .dashboard-grid { overflow-x: visible; }
.regulation-dashboard .dashboard-grid--1, .control-dashboard .dashboard-grid--1 { grid-template-columns: minmax(0, 1fr); }
.regulation-dashboard .dashboard-grid--2, .control-dashboard .dashboard-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.regulation-dashboard .dashboard-grid--3, .control-dashboard .dashboard-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.regulation-dashboard .dashboard-grid--4, .control-dashboard .dashboard-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.regulation-dashboard .dashboard-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

/* Tarjeta de cifra: etiqueta + número a la izquierda, icono arriba a la derecha */
.stat-card { display: flex; align-items: flex-start; gap: 12px; min-height: 96px; padding: 16px 18px; }
.stat-card .stat-content { flex: 1 1 auto; }
.stat-card > .stat-icon, .regulation-metric > .regulation-metric-icon,
.revenue-highlight > .revenue-icon { order: 2; align-self: flex-start; }
.stat-value { font-size: 36px; }

/* Bloque de recaudación en el resumen */
.dashboard-group-red, .dashboard-group-red:has(> .section-title) {
  padding: 14px; border: 1px solid var(--red-bd); background: var(--red-bg);
}
.dashboard-group-red .section-title { color: var(--ink); }
.stat-card-red { display: flex; flex-direction: column; justify-content: center; min-height: 99px; padding: 12px 14px; background: #fff; }
.red-value-container { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 0; }
.red-bars { --size: 34px; --img: 28px; }
.red-amount { color: var(--red) !important; font-size: 40px; font-weight: 700; text-align: center; }
.red-footer { margin-top: 8px; color: var(--muted); font-size: 11px; text-align: center; }

.dashboard-stat-link { color: inherit; text-decoration: none; }
.dashboard-stat-link:hover { border-color: var(--red); }

.stat-card-split, .dashboard-control-card { display: flex; align-items: center; justify-content: space-between; min-height: 99px; padding: 8px; }
.dashboard-control-card .split-item { display: flex; flex: 1 1 0; min-width: 0; align-items: center; gap: 6px; }
.dashboard-control-card .stat-label { font-size: 10px; overflow-wrap: anywhere; }
.dashboard-control-card .stat-value { margin-top: 3px; font-size: 24px; }
.split-divider { flex: 0 0 1px; width: 1px; height: 64px; margin: 0 3px; background: var(--line); }

/* ---------- 7. REGULACIÓN / JAAD ---------- */
.regulation-metric { display: flex; min-height: 96px; align-items: flex-start; gap: 12px; padding: 16px 18px; }
.regulation-metric-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.regulation-metric-copy { flex: 1 1 auto; gap: 4px; line-height: 1.3; }
.regulation-metric-copy strong { font-size: 32px; }
.regulation-metric-copy small { color: var(--muted); font-size: 11px; line-height: 1.3; }

#regulacion_y_autorizaciones .stat-card .stat-content strong { font-size: 40px; line-height: 1; }

.regulation-time-content { display: flex; min-width: 0; flex: 1; flex-direction: column; gap: 8px; font-size: 12px; }
.regulation-time-content h2 { margin: 0; }
.regulation-time-content ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 0; padding: 0; list-style: none; }
.regulation-time-content li {
  display: block; padding: 8px 4px; border-radius: 6px; background: var(--soft);
  color: var(--muted); font-size: 10px; line-height: 1.3; text-align: center;
}
.regulation-time-content li strong { color: var(--red); font-size: 18px; font-weight: 700; }
.regulation-time-note {
  align-self: flex-start; padding: 3px 8px; border-radius: 4px; background: var(--red-bg);
  color: var(--red); font-size: 11px; font-weight: 600; text-align: left;
}

.regulation-panel { padding: 18px 20px; background: #fff; }
.regulation-panel > h2 { font-size: 15px; }

.procedure-chart { --procedure-chart-text-size: 12px; align-items: start; }
.procedure-bars { display: grid; gap: 12px; }
.procedure-chart .procedure-bar-row, .procedure-chart .jaad-procedure-row { display: grid; align-items: center; font-size: var(--procedure-chart-text-size); }
.procedure-bar-row { grid-template-columns: minmax(110px, 0.9fr) minmax(0, 1.1fr) 44px; gap: 10px; min-height: 24px; }
.procedure-chart .procedure-bar-label, .procedure-chart .jaad-procedure-label { overflow: hidden; color: var(--ink); text-overflow: ellipsis; }
.procedure-chart .procedure-bar-value, .procedure-chart .jaad-procedure-count, .procedure-chart .jaad-procedure-percentage {
  color: var(--ink); font-size: 13px; font-weight: 600; white-space: nowrap; text-align: right;
}
.procedure-axis { display: flex; justify-content: space-between; margin: 6px 40px 0 calc(45% + 8px); color: var(--muted); font-size: var(--procedure-chart-text-size); }
.composition-content { display: grid; grid-template-columns: minmax(130px, 0.9fr) minmax(0, 1.1fr); align-items: center; gap: 12px; min-height: 130px; }

.jaad-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; }
.jaad-metrics .regulation-metric { min-height: 96px; gap: 8px; padding: 14px 14px; }
.jaad-metrics .regulation-metric-copy > span { font-size: 10px; }
.jaad-metrics .regulation-metric-copy strong { font-size: 28px; }
.jaad-procedure-panels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.jaad-procedure-chart { display: grid; gap: 12px; min-height: 165px; align-content: center; }
.jaad-procedure-row { grid-template-columns: minmax(100px, 1.05fr) minmax(35px, 1.35fr) 40px 48px; gap: 6px; min-height: 22px; }
.jaad-procedure-label { line-height: 1.15; }
.jaad-procedure-row .procedure-bar-track { height: 6px; }
.jaad-chart-summary { justify-content: space-between; }
.jaad-chart-summary strong { color: var(--ink); }

/* ---------- 8. CONTROL Y FISCALIZACIÓN ---------- */
.control-dashboard .dashboard-grid--4 .stat-card { min-height: 100px; gap: 10px; padding: 16px 14px; }
.control-dashboard .dashboard-grid--4 .stat-content { min-width: 0; overflow-wrap: anywhere; }
.control-dashboard .dashboard-grid--4 .stat-value { font-size: 30px; line-height: 1.1; }
.control-dashboard .stat-content small { color: var(--muted); font-size: 11px; }
.stat-period { color: var(--muted); }

/* ---------- 9. JUEGO RESPONSABLE ---------- */
.responsible-overview { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr); gap: 12px; }
.responsible-card { display: flex; min-height: 190px; align-items: center; gap: 16px; padding: 16px 18px; }
.responsible-card .responsible-icon { --size: 72px; --img: 44px; }
.responsible-card-copy { gap: 4px; color: var(--muted); font-size: 14px; line-height: 1.2; }
.responsible-card-copy > strong { font-size: 24px; line-height: 1.05; }
.responsible-total { background: var(--red-bg); border-color: var(--red-bd); }
.responsible-total .responsible-card-copy { align-self: stretch; justify-content: center; padding-left: 16px; border-left: 2px solid var(--red-bd); }
.responsible-total .responsible-card-copy > strong { font-size: clamp(48px, 5.5vw, 72px); letter-spacing: -2px; line-height: .95; }
.responsible-total-label { color: var(--ink); font-size: 18px; font-weight: 600; line-height: 1.15; }
.responsible-total-note { color: var(--muted); font-size: 13px; line-height: 1.2; }

.responsible-panel { padding: 16px; background: #fff; }
.responsible-panel > h2 { font-size: 15px; }
.responsible-overview > .responsible-panel { min-height: 190px; }
.responsible-breakdown { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.responsible-breakdown-item { display: flex; min-height: 74px; align-items: center; gap: 10px; padding: 8px 12px; border: 0; border-radius: 8px; background: var(--soft); box-shadow: none; }
.responsible-breakdown-item .responsible-icon { --size: 44px; --img: 26px; background: #fff; }
.responsible-breakdown-item .responsible-card-copy { flex: 1; gap: 1px; font-size: 13px; }
.responsible-breakdown-item .responsible-card-copy > strong { font-size: 22px; }
.responsible-percentage { font-size: 13px; line-height: 1.1; }

.responsible-campaign-panel, .responsible-geography-panel { margin-top: 0; }
.responsible-campaigns, .responsible-geography { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.responsible-campaigns { align-items: stretch; }
.responsible-campaign, .responsible-geography-item { display: grid; min-width: 0; align-items: center; justify-items: center; color: var(--muted); font-size: 14px; }
.responsible-campaign {
  grid-template-columns: 82px minmax(0, 1fr); align-content: center; justify-items: stretch; gap: 12px;
  padding: 10px 14px; border: 0; border-radius: 8px; background: var(--soft); box-shadow: none;
}
.responsible-campaign-heading { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; }
.responsible-campaign-icon { --size: 38px; --img: 22px; background: #fff; }
.responsible-campaign-year { padding: 3px 10px; border-radius: 999px; background: #fff; color: var(--ink); font-size: 18px; font-weight: 600; }
.responsible-campaign-data { grid-column: 2; grid-row: 1; display: flex; min-width: 0; flex-direction: column; justify-content: center; padding-left: 12px; border-left: 1px solid var(--line); }
.responsible-campaign-metric { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: 4px; padding: 8px 0; color: var(--muted); font-size: 14px; }
.responsible-campaign-metric + .responsible-campaign-metric { border-top: 1px solid var(--line); }
.responsible-campaign-metric b { font-size: 32px; }

.responsible-geography-item {
  grid-template-columns: 48px minmax(0, 1fr) 1px minmax(70px, .8fr); gap: 10px; min-height: 64px;
  padding: 6px 12px; border: 0; border-radius: 8px; background: var(--soft); box-shadow: none;
}
.responsible-location-icon { --size: 40px; --img: 22px; background: #fff; }
.responsible-geography-copy { display: flex; flex-direction: column; justify-self: start; gap: 2px; }
.responsible-geography-copy strong { font-size: 22px; }
.responsible-geography-divider { width: 1px; height: 44px; background: var(--line); }
.responsible-geography-percentage { font-size: 20px; white-space: nowrap; }

/* ---------- 10. RECAUDACIÓN ---------- */
.revenue-highlights { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; }
.revenue-highlight { display: flex; min-height: 90px; align-items: flex-start; gap: 12px; padding: 16px 18px; }
.revenue-highlight-copy { flex: 1 1 auto; gap: 4px; color: var(--ink); font-size: 14px; line-height: 1.3; }
.revenue-highlight-copy strong { font-size: clamp(20px, 2.4vw, 30px); white-space: nowrap; }
.revenue-total { background: var(--red-bg); border-color: var(--red-bd); }

.revenue-composition { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 12px; }
.revenue-panel { padding: 18px 20px; }
.revenue-panel > h2 { font-size: 15px; }
.revenue-composition-content { display: grid; grid-template-columns: minmax(120px, .75fr) minmax(0, 1.25fr); min-height: 160px; align-items: center; gap: 14px; }
.revenue-message { display: flex; align-items: center; gap: 14px; padding: 18px; background: var(--red-bg); border-color: var(--red-bd); box-shadow: none; }
.revenue-message-icon { --size: 56px; --img: 30px; background: #fff; }
.revenue-message h2 { font-size: 17px; }
.revenue-message p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.4; }

.revenue-distributions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.revenue-distribution-total { margin: 0 0 10px; color: var(--muted); font-size: 13px; }
.revenue-distribution-total strong { color: var(--ink); }
.revenue-recipient-list { display: grid; gap: 8px; }
.revenue-recipient {
  box-sizing: border-box; display: grid; grid-template-columns: 22px minmax(0, 1fr) auto;
  min-width: 0; min-height: 38px; align-items: center; gap: 10px; padding: 8px 12px;
  border-radius: 8px; background: var(--soft); color: var(--ink); font-size: 13px;
}
.revenue-recipient > img { display: block; width: 18px; height: 18px; object-fit: contain; filter: var(--f-red); }
.revenue-recipient > strong { color: var(--ink); font-size: 13px; font-weight: 600; white-space: nowrap; }

/* ---------- 11. INTEGRIDAD Y TRANSPARENCIA ---------- */
.integrity-content-grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); align-items: stretch; gap: 12px; }
.integrity-overview-panel, .integrity-splaft-panel { display: grid; align-content: start; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.integrity-intro, .integrity-splaft-heading { display: flex; min-width: 0; align-items: center; gap: 10px; }
.integrity-intro h2, .integrity-splaft-heading h2 { margin: 0 0 3px; color: var(--ink); font-size: clamp(18px, 2vw, 24px); font-weight: 600; line-height: 1.1; }
.integrity-intro p, .integrity-splaft-heading p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.35; }
.integrity-intro .stat-icon, .integrity-splaft-heading .stat-icon { --size: 28px; --img: 24px; }

.integrity-certification-row { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: stretch; gap: 12px; }
.integrity-certification-logo {
  box-sizing: border-box; width: 112px; height: 100%; min-height: 130px; padding: 8px;
  border: 1px dashed #c3c8d0; border-radius: 8px; object-fit: contain;
}
.integrity-certification-content { display: grid; min-width: 0; align-content: start; gap: 10px; }
.integrity-certification-years { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 8px; }
.integrity-certification-year.palette-surface {
  display: grid; align-content: center; gap: 6px; padding: 12px 6px; border: 0; border-radius: 8px;
  background: var(--soft); color: var(--muted); font-size: 12px; font-weight: 400; text-align: center; box-shadow: none;
}
.integrity-certification-year strong { padding: 0; background: transparent; font-size: 28px; }
.integrity-summary { margin: 0; color: var(--ink); font-size: 13px; line-height: 1.45; }

.integrity-link-list { display: grid; gap: 8px; }
.integrity-link-list > a {
  display: flex; min-width: 0; min-height: 40px; align-items: center; justify-content: space-between; gap: 6px;
  padding: 8px 12px; border: 1px solid var(--line); border-radius: 6px; background: #fff;
  color: var(--ink); font-size: 13px; line-height: 1.3; text-decoration: none;
}
.integrity-link-list > a:hover { background: var(--soft); }
.integrity-link-list > a:nth-child(-n+3)::after { flex: 0 0 auto; color: var(--muted); content: "›"; font-size: 20px; }
.integrity-contact-links { display: grid; gap: 4px; padding: 8px 10px; border: 0; border-radius: 6px; background: var(--soft); color: var(--muted); font-size: 13px; line-height: 1.3; }
.integrity-contact-links > div { padding: 0; border: 0; background: transparent; }
.integrity-contact-links a { color: var(--red); text-decoration: underline; }

.integrity-splaft-panel > .dashboard-group { margin: 0; }
.integrity-subject-card { display: grid !important; grid-template-columns: 34px 1px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 78px; padding: 10px 14px; border-radius: 10px; color: var(--ink); box-shadow: none; }
.integrity-subject-card > .stat-icon { order: 0; align-self: center; --size: 28px; --img: 24px; }
.integrity-subject-divider { height: 40px; background: var(--line); }
.integrity-subject-copy { display: flex; min-width: 0; flex-direction: column; font-size: 13px; line-height: 1.25; }
.integrity-subject-heading { margin-bottom: 2px; color: var(--ink); font-weight: 600; }
.integrity-subject-copy .stat-label { margin: 0; font-size: 12px; text-transform: none; letter-spacing: 0; font-weight: 400; }
.integrity-subject-count { font-size: clamp(36px, 4.5vw, 52px); }

.integrity-actions-card { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 10px; padding: 12px 14px; border-radius: 10px; background: #fff; box-shadow: none; }
.integrity-actions-card > .stat-icon { --size: 28px; --img: 24px; }
.integrity-actions-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.integrity-action { display: grid; align-content: center; gap: 6px; padding: 10px 8px; color: var(--muted); text-align: center; }
.integrity-action > span { font-size: 12px; line-height: 1.15; }
.integrity-action > strong { padding: 0; background: transparent; font-size: 28px; }

.integrity-splaft-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 8px; }
.integrity-splaft-metrics .integrity-result-card {
  display: grid; grid-template-columns: 34px minmax(0, 1fr); grid-template-rows: auto 1fr;
  min-height: 110px; gap: 8px; padding: 14px; border-radius: 10px; background: #fff; box-shadow: none;
}
.integrity-splaft-metrics .integrity-result-icon { --size: 28px; --img: 22px; grid-row: 1; }
.integrity-splaft-metrics .integrity-result-copy { display: contents; }
.integrity-splaft-metrics .integrity-result-copy > span { grid-column: 2; grid-row: 1; align-self: center; color: var(--ink); font-size: 12px; line-height: 1.25; text-transform: none; letter-spacing: 0; font-weight: 400; margin: 0; }
.integrity-splaft-metrics .integrity-result-copy strong {
  grid-column: 1 / -1; grid-row: 2; align-self: end; padding: 10px; border-radius: 8px;
  background: var(--soft); font-size: 32px; text-align: center;
}
.integrity-splaft-metrics .integrity-result-card:last-child { grid-column: 1 / -1; grid-template-columns: 34px minmax(0, 1fr); grid-template-rows: 1fr; min-height: 82px; align-items: center; }
.integrity-splaft-metrics .integrity-result-card:last-child .integrity-result-icon { grid-column: 1; grid-row: 1; }
.integrity-splaft-metrics .integrity-result-card:last-child .integrity-result-copy { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.integrity-splaft-metrics .integrity-result-card:last-child .integrity-result-copy > span { grid-column: 1; grid-row: 1; }
.integrity-splaft-metrics .integrity-result-card:last-child .integrity-result-copy strong { grid-column: 2; grid-row: 1; min-width: 90px; align-self: center; }
.integrity-splaft-footnote { margin: 0; color: var(--muted); font-size: 12px; font-style: italic; }

/* ---------- 12. RESPONSIVE ---------- */
@media (max-width: 1000px) {
  .jaad-metrics, .revenue-composition { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .regulation-dashboard .dashboard-grid--3, .regulation-dashboard .dashboard-grid--4, .regulation-dashboard .dashboard-grid--5,
  .control-dashboard .dashboard-grid--3, .control-dashboard .dashboard-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jaad-procedure-panels { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .responsable-layout { grid-template-columns: minmax(0, 1fr); gap: 12px; width: calc(100% - 24px); margin: 12px auto; }
  .responsable-layout .wrap { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
  .integrity-content-grid { grid-template-columns: minmax(0, 1fr); }
  .regulation-header { flex-direction: column; gap: 4px; }
}
@media (max-width: 600px) {
  .dashboard-grid--1, .dashboard-grid--2, .dashboard-grid--3, .dashboard-grid--4, .dashboard-grid--5,
  .regulation-dashboard .dashboard-grid--2, .regulation-dashboard .dashboard-grid--3,
  .regulation-dashboard .dashboard-grid--4, .regulation-dashboard .dashboard-grid--5,
  .control-dashboard .dashboard-grid--2, .control-dashboard .dashboard-grid--3, .control-dashboard .dashboard-grid--4,
  .jaad-metrics, .responsible-overview, .responsible-breakdown, .responsible-campaigns, .responsible-geography,
  .revenue-highlights, .revenue-distributions, .integrity-splaft-metrics, .integrity-actions-grid { grid-template-columns: minmax(0, 1fr); }
  .composition-content, .revenue-composition-content { grid-template-columns: minmax(110px, .8fr) minmax(0, 1.2fr); }
  .responsible-card { min-height: 150px; gap: 12px; padding: 12px; }
  .responsible-card .responsible-icon { --size: 56px; --img: 36px; }
  .responsible-overview > .responsible-panel { min-height: 0; }
  .procedure-bar-row { grid-template-columns: minmax(100px, .8fr) minmax(0, 1.2fr) 36px; }
  .jaad-procedure-row { grid-template-columns: minmax(85px, 1fr) minmax(35px, 1.2fr) 32px 38px; }
  .integrity-splaft-metrics .integrity-result-card:last-child { grid-column: auto; }
  .integrity-certification-row { grid-template-columns: 84px minmax(0, 1fr); gap: 8px; }
  .integrity-certification-logo { width: 84px; }
  .red-amount { font-size: 32px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }