@import url("https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&family=Geist:wght@300..700&family=Geist+Mono:wght@400;500&display=swap");
/* Sistema de diseño — tokens (generado desde tokens.json) */
:root {
  --color-neutral-0: #FFFFFF;
  --color-neutral-25: #FAFAF8;
  --color-neutral-50: #F5F5F2;
  --color-neutral-100: #F1F2EC;
  --color-neutral-150: #EDEDEA;
  --color-neutral-200: #E4E4E0;
  --color-neutral-300: #D9D8D4;
  --color-neutral-400: #B4B3AE;
  --color-neutral-500: #8A8A86;
  --color-neutral-600: #70706E;
  --color-neutral-700: #4F504F;
  --color-neutral-800: #2E2F30;
  --color-neutral-900: #1B1B1B;
  --color-neutral-950: #0B0B0A;
  --color-navy-900: #0A1428;
  --color-navy-700: #26324A;
  --color-blue-50: #EEF6FF;
  --color-blue-100: #C7E7FF;
  --color-blue-300: #7DBBFF;
  --color-blue-500: #0A84FF;
  --color-blue-600: #0071E3;
  --color-blue-700: #0058B8;
  --color-aurora-rose: #F7D3DC;
  --color-aurora-mint: #CFF3D8;
  --color-aurora-sky: #CFE3FA;
  --color-aurora-lavender: #DCD5F7;
  --color-aurora-indigo: #5C69AD;
  --color-sage-100: #E6ECE5;
  --color-sage-600: #5E7A63;
  --color-status-success: #2F7A4F;
  --color-status-success-bg: #E5F2EA;
  --color-status-warning: #A8661B;
  --color-status-warning-bg: #FBF0DF;
  --color-status-danger: #C2412D;
  --color-status-danger-bg: #FBE7E3;
  --color-bg-canvas: var(--color-neutral-100);
  --color-bg-surface: var(--color-neutral-0);
  --color-bg-subtle: var(--color-neutral-25);
  --color-bg-muted: var(--color-neutral-50);
  --color-bg-inverse: var(--color-neutral-900);
  --color-text-primary: var(--color-neutral-900);
  --color-text-secondary: var(--color-neutral-600);
  --color-text-tertiary: var(--color-neutral-500);
  --color-text-display: var(--color-navy-900);
  --color-text-inverse: var(--color-neutral-0);
  --color-text-link: var(--color-neutral-900);
  --color-border-subtle: var(--color-neutral-150);
  --color-border-default: var(--color-neutral-200);
  --color-border-strong: var(--color-neutral-300);
  --color-border-focus: var(--color-blue-500);
  --color-accent-default: var(--color-blue-500);
  --color-accent-hover: var(--color-blue-600);
  --color-accent-pressed: var(--color-blue-700);
  --color-accent-selection: var(--color-blue-100);
  --color-accent-soft: var(--color-blue-50);
  --color-action-primary-bg: var(--color-neutral-900);
  --color-action-primary-bg-hover: var(--color-neutral-800);
  --color-action-primary-fg: var(--color-neutral-0);
  --color-action-secondary-bg: var(--color-neutral-0);
  --color-action-secondary-border: var(--color-neutral-200);
  --color-action-ghost-hover: var(--color-neutral-100);
  --color-action-chip-bg: #0000000A;
  --color-action-chip-bg-hover: #00000012;
  --font-family-sans: Geist, "Inter Tight", "Helvetica Neue", Arial, sans-serif;
  --font-family-serif: "EB Garamond", "Apple Garamond", Garamond, Georgia, serif;
  --font-family-mono: "Geist Mono", ui-monospace, SFMono-Regular, monospace;
  --font-weight-regular: 400;
  --font-weight-book: 450;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --typography-display-xl-family: var(--font-family-serif);
  --typography-display-xl-size: 88px;
  --typography-display-xl-line: 1.0;
  --typography-display-xl-weight: 400;
  --typography-display-xl-tracking: -0.02em;
  --typography-display-lg-family: var(--font-family-serif);
  --typography-display-lg-size: 64px;
  --typography-display-lg-line: 1.04;
  --typography-display-lg-weight: 400;
  --typography-display-lg-tracking: -0.015em;
  --typography-display-md-family: var(--font-family-serif);
  --typography-display-md-size: 44px;
  --typography-display-md-line: 1.1;
  --typography-display-md-weight: 500;
  --typography-display-md-tracking: -0.01em;
  --typography-heading-lg-family: var(--font-family-sans);
  --typography-heading-lg-size: 32px;
  --typography-heading-lg-line: 1.2;
  --typography-heading-lg-weight: 450;
  --typography-heading-lg-tracking: -0.02em;
  --typography-heading-md-family: var(--font-family-sans);
  --typography-heading-md-size: 24px;
  --typography-heading-md-line: 1.25;
  --typography-heading-md-weight: 450;
  --typography-heading-md-tracking: -0.015em;
  --typography-heading-sm-family: var(--font-family-sans);
  --typography-heading-sm-size: 19px;
  --typography-heading-sm-line: 1.35;
  --typography-heading-sm-weight: 450;
  --typography-heading-sm-tracking: -0.01em;
  --typography-body-lg-family: var(--font-family-sans);
  --typography-body-lg-size: 17px;
  --typography-body-lg-line: 1.55;
  --typography-body-lg-weight: 400;
  --typography-body-lg-tracking: -0.005em;
  --typography-body-md-family: var(--font-family-sans);
  --typography-body-md-size: 15px;
  --typography-body-md-line: 1.55;
  --typography-body-md-weight: 400;
  --typography-body-md-tracking: 0em;
  --typography-body-sm-family: var(--font-family-sans);
  --typography-body-sm-size: 13.5px;
  --typography-body-sm-line: 1.5;
  --typography-body-sm-weight: 400;
  --typography-body-sm-tracking: 0em;
  --typography-label-family: var(--font-family-sans);
  --typography-label-size: 14px;
  --typography-label-line: 1.3;
  --typography-label-weight: 500;
  --typography-label-tracking: -0.005em;
  --typography-caption-family: var(--font-family-sans);
  --typography-caption-size: 12px;
  --typography-caption-line: 1.4;
  --typography-caption-weight: 450;
  --typography-caption-tracking: 0.01em;
  --typography-overline-family: var(--font-family-mono);
  --typography-overline-size: 11px;
  --typography-overline-line: 1.3;
  --typography-overline-weight: 500;
  --typography-overline-tracking: 0.08em;
  --space-0: 0px;
  --space-0-5: 2px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;
  --space-32: 128px;
  --radius-xs: 4px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-2xl: 32px;
  --radius-3xl: 44px;
  --radius-hero: 56px;
  --radius-pill: 9999px;
  --radius-circle: 50%;
  --shadow-xs: 0px 1px 2px 0px #0000000A;
  --shadow-sm: 0px 1px 2px 0px #0000000A, 0px 4px 12px 0px #0000000A;
  --shadow-md: 0px 2px 4px 0px #00000007, 0px 12px 32px 0px #00000011;
  --shadow-lg: 0px 4px 8px 0px #00000007, 0px 24px 64px 0px #00000016;
  --shadow-glow: 0px 0px 0px 6px #FFFFFFE5, 0px 10px 30px 0px #5C69AD19;
  --shadow-focus: 0px 0px 0px 4px #0A84FF59;
  --border-hairline: 1px solid var(--color-border-subtle);
  --border-default: 1px solid var(--color-border-default);
  --border-dashed: 1.25px dashed var(--color-neutral-900);
  --gradient-aurora: linear-gradient(120deg, var(--color-aurora-rose) 0%, var(--color-aurora-mint) 35%, var(--color-aurora-sky) 70%, var(--color-aurora-lavender) 100%);
  --gradient-fade-surface: linear-gradient(120deg, #FFFFFF 0%, #FFFFFF00 100%);
  --motion-duration-instant: 80ms;
  --motion-duration-fast: 140ms;
  --motion-duration-base: 220ms;
  --motion-duration-slow: 360ms;
  --motion-duration-spin: 1600ms;
  --motion-easing-standard: cubic-bezier(0.2, 0, 0, 1);
  --motion-easing-emphasized: cubic-bezier(0.3, 0, 0, 1.2);
  --motion-easing-exit: cubic-bezier(0.4, 0, 1, 1);
  --size-control-sm: 32px;
  --size-control-md: 40px;
  --size-control-lg: 52px;
  --size-control-xl: 64px;
  --size-avatar-sm: 32px;
  --size-avatar-md: 48px;
  --size-avatar-lg: 64px;
}

/* Tema oscuro (opcional): mismo sistema, neutros cálidos invertidos */
[data-theme="dark"] {
  --color-bg-canvas: #121211;
  --color-bg-surface: #1B1B1A;
  --color-bg-subtle: #222221;
  --color-bg-muted: #262624;
  --color-bg-inverse: #F1F2EC;
  --color-text-primary: #F1F2EC;
  --color-text-secondary: #A3A39E;
  --color-text-tertiary: #7D7D78;
  --color-text-display: #E8ECF5;
  --color-text-inverse: #1B1B1B;
  --color-text-link: #F1F2EC;
  --color-border-subtle: #2A2A28;
  --color-border-default: #34342F;
  --color-border-strong: #4A4A45;
  --color-accent-selection: #0A84FF55;
  --color-accent-soft: #0A84FF1F;
  --color-action-primary-bg: #F1F2EC;
  --color-action-primary-bg-hover: #FFFFFF;
  --color-action-primary-fg: #1B1B1B;
  --color-action-secondary-bg: #1B1B1A;
  --color-action-secondary-border: #34342F;
  --color-action-ghost-hover: #262624;
  --color-action-chip-bg: #FFFFFF14;
  --color-action-chip-bg-hover: #FFFFFF1F;
}

::selection { background: var(--color-accent-selection); }

/* ============================================================
   Arquetipo Ministros — capa visual alineada al sistema de diseño
   (fuentes, composición editorial, superficies y paleta de datos)
   ============================================================ */

/* Paleta de datos: tonos del sistema, apagados para convivir con el lino */
:root {
  --data-constitucional: #5C69AD;
  --data-penal: #C2412D;
  --data-fiscal: #B98A3E;
  --data-administrativo: #5E7A63;
  --data-civil: #8FB3E0;
  --data-laboral: #6FA39A;
  --data-agrario: #A9B27E;
  --data-mercantil: #4F504F;
  --data-familiar: #D9A0B3;
  --data-electoral: #B4B3AE;
  --bar-ink: var(--color-neutral-900);
}

html { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
html body {
  font-size: var(--typography-body-md-size);
  line-height: var(--typography-body-md-line);
  background:
    radial-gradient(1200px 420px at 85% -120px, #DCD5F755 0%, transparent 60%),
    radial-gradient(900px 380px at 10% -160px, #CFF3D855 0%, transparent 60%),
    var(--color-bg-canvas);
  background-repeat: no-repeat;
}
b, strong { font-weight: var(--font-weight-medium); color: var(--color-text-primary); }

/* ---------- Contenedor + encabezado editorial ---------- */
.wrap {
  max-width: 1200px !important;
  padding: var(--space-20) var(--space-10) var(--space-16) !important;
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  column-gap: var(--space-16);
}
.wrap > * { grid-column: 1 / -1; }
.wrap > .overline:first-child { grid-column: 1; grid-row: 1; }
.wrap > h1.display { grid-column: 1; grid-row: 2; }
.wrap > .lede { grid-column: 2; grid-row: 1 / span 2; align-self: end; }

.overline { line-height: var(--typography-overline-line); }

h1.display {
  font-size: var(--typography-display-lg-size) !important;
  line-height: var(--typography-display-lg-line) !important;
  font-weight: var(--typography-display-lg-weight) !important;
  letter-spacing: var(--typography-display-lg-tracking) !important;
  margin: var(--space-4) 0 0 !important;
}
.lede {
  font-size: var(--typography-body-lg-size);
  color: var(--color-text-secondary);
  margin: 0 0 var(--space-2);
  max-width: 460px !important;
}

/* ---------- KPIs ---------- */
.kpis {
  gap: var(--space-4) !important;
  margin: var(--space-16) 0 var(--space-20) !important;
}
.kpi {
  border: 0 !important;
  border-radius: var(--radius-xl) !important;
  padding: var(--space-6) var(--space-6) var(--space-5) !important;
  box-shadow: var(--shadow-xs);
  display: flex; flex-direction: column-reverse; gap: var(--space-3);
}
.kpi .n {
  font-size: 48px !important;
  line-height: 1;
  letter-spacing: -0.02em;
  font-variant-numeric: lining-nums tabular-nums;
}
.kpi .l {
  font-family: var(--font-family-mono);
  font-size: var(--typography-overline-size) !important;
  letter-spacing: var(--typography-overline-tracking);
  text-transform: uppercase;
  font-weight: var(--typography-overline-weight);
  margin: 0 !important;
}
.kpi:nth-child(3) { background: var(--gradient-aurora) !important; }

/* ---------- Encabezado de sección ---------- */
h2.sec {
  font-family: var(--font-family-serif);
  font-size: var(--typography-display-md-size) !important;
  line-height: var(--typography-display-md-line);
  font-weight: var(--typography-display-md-weight) !important;
  letter-spacing: var(--typography-display-md-tracking);
  margin: 0 0 var(--space-8) !important;
}

/* ---------- Tarjetas de persona ---------- */
.ministros { gap: var(--space-4) !important; margin-bottom: var(--space-20); }
.card {
  border: 0 !important;
  border-radius: var(--radius-xl) !important;
  box-shadow: var(--shadow-xs);
}
.ministros .card {
  padding: var(--space-5) var(--space-6) !important;
  transition: box-shadow var(--motion-duration-base) var(--motion-easing-standard), transform var(--motion-duration-base) var(--motion-easing-standard);
}
.ministros .card:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }
.persona { gap: var(--space-4) !important; align-items: flex-start !important; }
.persona img {
  width: 56px !important; height: 56px !important;
  background: radial-gradient(circle at 35% 30%, #FFFFFF 0%, var(--color-neutral-150) 100%);
  box-shadow: inset 0 0 0 1px var(--color-border-subtle);
  mix-blend-mode: multiply;
}
.persona .nm {
  font-size: var(--typography-body-md-size) !important;
  font-weight: var(--font-weight-medium) !important;
  letter-spacing: -0.005em;
  line-height: 1.3;
}
.persona .aq {
  font-size: 17px !important;
  line-height: 1.25;
  color: var(--color-text-display) !important;
  margin: 2px 0 var(--space-2);
}
.persona .st {
  font-size: var(--typography-caption-size) !important;
  line-height: 1.55;
  color: var(--color-text-tertiary);
}
.persona .st b { color: var(--color-text-primary); }

/* ---------- Bloques métricos ---------- */
.metric {
  grid-template-columns: 320px minmax(0, 1fr) !important;
  gap: var(--space-12) !important;
  padding: var(--space-16) 0 !important;
  border-top: var(--border-hairline) !important;
}
.metric-side { position: sticky; top: var(--space-8); align-self: start; }
.metric-side h2 {
  font-family: var(--font-family-serif);
  font-size: 30px !important;
  line-height: 1.12;
  font-weight: 500 !important;
  letter-spacing: -0.01em;
  color: var(--color-text-display) !important;
  margin: var(--space-3) 0 var(--space-4) !important;
}
.metric-side p {
  font-size: var(--typography-body-sm-size);
  line-height: 1.6 !important;
  color: var(--color-text-secondary);
}
.viz {
  padding: var(--space-8) !important;
  border-radius: var(--radius-2xl) !important;
}

/* ---------- Barras ---------- */
.bar-row { margin: 10px 0 !important; font-size: var(--typography-body-sm-size) !important; gap: var(--space-4) !important; }
.bar-label { width: 96px; white-space: nowrap; color: var(--color-text-secondary); }
.bar-track { height: 8px !important; border-radius: var(--radius-pill) !important; background: var(--color-neutral-100) !important; overflow: hidden; }
.bar-fill { height: 8px !important; border-radius: var(--radius-pill) !important; }
.bar-val { width: auto !important; min-width: 56px; font-family: var(--font-family-mono); font-size: 12px; color: var(--color-text-primary); }
.bar-fill[style*="accent-default"] { background: var(--bar-ink) !important; }
.bar-fill[style*="status-success"] { background: var(--color-sage-600) !important; }
.bar-fill[style*="status-danger"] { background: var(--color-status-danger) !important; }
.viz .overline { margin: var(--space-2) 0 var(--space-1); }
.viz .overline:not(:first-child) { margin-top: var(--space-6); }

/* ---------- Chips y controles ---------- */
.chip {
  font-family: var(--font-family-sans);
  font-size: var(--typography-caption-size) !important;
  font-weight: var(--font-weight-book);
  color: var(--color-text-primary) !important;
  padding: 6px 12px !important;
  line-height: 1.3;
  border: 0 !important;
}
button.chip, select.chip {
  background: var(--color-action-secondary-bg) !important;
  box-shadow: inset 0 0 0 1px var(--color-action-secondary-border);
  min-height: var(--size-control-sm);
  padding: 0 14px !important;
  cursor: pointer;
  transition: background var(--motion-duration-fast) var(--motion-easing-standard);
}
button.chip:hover, select.chip:hover { background: var(--color-action-ghost-hover) !important; }
button.chip:focus-visible, select.chip:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
select.chip { appearance: none; -webkit-appearance: none; padding-right: 30px !important;
  background-image: linear-gradient(45deg, transparent 50%, var(--color-text-tertiary) 50%), linear-gradient(135deg, var(--color-text-tertiary) 50%, transparent 50%) !important;
  background-position: calc(100% - 16px) 50%, calc(100% - 11px) 50% !important;
  background-size: 5px 5px, 5px 5px !important; background-repeat: no-repeat !important; }
#tl-tip, #sk-tip { border-radius: var(--radius-md) !important; box-shadow: var(--shadow-lg); font-family: var(--font-family-sans); }

/* ---------- SVG ---------- */
svg text { font-family: var(--font-family-sans) !important; }
.sk-link { transition: opacity var(--motion-duration-fast) var(--motion-easing-standard); }

/* Remapeo de la paleta de ramas (atributos SVG + estilos en línea) */
[stroke="#0A84FF"] { stroke: var(--data-constitucional); }
[stroke="#C2412D"] { stroke: var(--data-penal); }
[stroke="#A8661B"] { stroke: var(--data-fiscal); }
[stroke="#2F7A4F"] { stroke: var(--data-administrativo); }
[stroke="#5C69AD"] { stroke: var(--data-civil); }
[stroke="#0d9488"] { stroke: var(--data-laboral); }
[stroke="#65a30d"] { stroke: var(--data-agrario); }
[stroke="#0891b2"] { stroke: var(--data-mercantil); }
[stroke="#ec4899"] { stroke: var(--data-familiar); }
[stroke="#8A8A86"] { stroke: var(--data-electoral); }
[fill="#0A84FF"] { fill: var(--data-constitucional); }
[fill="#C2412D"] { fill: var(--data-penal); }
[fill="#A8661B"] { fill: var(--data-fiscal); }
[fill="#2F7A4F"] { fill: var(--data-administrativo); }
[fill="#5C69AD"] { fill: var(--data-civil); }
[fill="#0d9488"] { fill: var(--data-laboral); }
[fill="#65a30d"] { fill: var(--data-agrario); }
[fill="#0891b2"] { fill: var(--data-mercantil); }
[fill="#ec4899"] { fill: var(--data-familiar); }
[fill="#8A8A86"] { fill: var(--data-electoral); }
[style*="background:#0A84FF"] { background: var(--data-constitucional) !important; }
[style*="background:#C2412D"] { background: var(--data-penal) !important; }
[style*="background:#A8661B"] { background: var(--data-fiscal) !important; }
[style*="background:#2F7A4F"] { background: var(--data-administrativo) !important; }
[style*="background:#5C69AD"] { background: var(--data-civil) !important; }
[style*="background:#0d9488"] { background: var(--data-laboral) !important; }
[style*="background:#65a30d"] { background: var(--data-agrario) !important; }
[style*="background:#0891b2"] { background: var(--data-mercantil) !important; }
[style*="background:#ec4899"] { background: var(--data-familiar) !important; }
[style*="background:#8A8A86"] { background: var(--data-electoral) !important; }
/* barras apiladas por materia: separador fino y extremos redondeados */
div[title*=": "][style*="height:"] { box-shadow: inset -1px 0 0 #FFFFFFAA; }

/* ---------- Pie ---------- */
.foot {
  margin-top: var(--space-4) !important;
  padding-top: var(--space-6) !important;
  max-width: 720px;
  line-height: 1.6;
}

/* ---------- Responsivo ---------- */
@media (max-width: 960px) {
  .wrap { grid-template-columns: 1fr; padding: var(--space-12) var(--space-6) !important; }
  .wrap > .overline:first-child, .wrap > h1.display, .wrap > .lede { grid-column: 1; grid-row: auto; }
  .lede { margin-top: var(--space-5); max-width: 640px !important; }
  .metric { grid-template-columns: 1fr !important; gap: var(--space-6) !important; padding: var(--space-12) 0 !important; }
  .metric-side { position: static; }
  .ministros { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 720px) {
  .wrap { padding: var(--space-10) var(--space-4) !important; }
  h1.display { font-size: 44px !important; }
  h2.sec { font-size: 34px !important; }
  .kpis { grid-template-columns: repeat(2, 1fr) !important; margin: var(--space-10) 0 var(--space-12) !important; }
  .kpi .n { font-size: 34px !important; }
  .ministros { grid-template-columns: 1fr !important; }
  .viz { padding: var(--space-5) !important; }
}

/* ============ Componentes añadidos en el HTML ============ */
html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 96px; }
.topbar {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--color-bg-canvas) 82%, transparent);
  backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: var(--border-hairline);
}
.tb-in { max-width: 1200px; margin: 0 auto; padding: 0 var(--space-10); height: 64px; display: flex; align-items: center; gap: var(--space-6); }
.brand { display: inline-flex; align-items: center; gap: var(--space-3); text-decoration: none; color: var(--color-text-primary); font-size: var(--typography-label-size); font-weight: var(--font-weight-medium); letter-spacing: -0.005em; white-space: nowrap; }
.brand-sub { color: var(--color-text-tertiary); font-weight: var(--font-weight-regular); }
.mark { width: 28px; height: 28px; border-radius: var(--radius-circle); background: var(--color-action-primary-bg); color: var(--color-action-primary-fg); display: inline-grid; place-items: center; font-family: var(--font-family-serif); font-size: 13px; letter-spacing: 0; }
.tb-nav { margin: 0 auto; display: flex; gap: 2px; padding: 4px; border-radius: var(--radius-pill); background: var(--color-action-chip-bg); }
.tb-nav a { text-decoration: none; color: var(--color-text-secondary); font-size: 13px; font-weight: var(--font-weight-book); padding: 6px 12px; border-radius: var(--radius-pill); transition: background var(--motion-duration-fast) var(--motion-easing-standard), color var(--motion-duration-fast); }
.tb-nav a:hover { color: var(--color-text-primary); background: var(--color-bg-surface); }
.tb-nav a.on { color: var(--color-text-primary); background: var(--color-bg-surface); box-shadow: var(--shadow-xs); }
.tb-status { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-family-mono); font-size: var(--typography-overline-size); letter-spacing: var(--typography-overline-tracking); text-transform: uppercase; color: var(--color-text-tertiary); white-space: nowrap; }
.tb-status i { width: 6px; height: 6px; border-radius: 50%; background: var(--color-status-warning); box-shadow: 0 0 0 3px var(--color-status-warning-bg); }
.sec-head { display: grid; grid-template-columns: minmax(0,7fr) minmax(0,5fr); column-gap: var(--space-16); align-items: end; margin-bottom: var(--space-8); }
.sec-head h2.sec { margin: var(--space-3) 0 0 !important; }
.sec-head p { margin: 0; color: var(--color-text-secondary); font-size: var(--typography-body-md-size); line-height: 1.6; max-width: 460px; }
.metric-side { top: 96px !important; }
.foot-row { display: flex; justify-content: space-between; align-items: center; margin-top: var(--space-12); padding-top: var(--space-6); border-top: var(--border-hairline); }
.foot-row .brand { font-weight: var(--font-weight-regular); color: var(--color-text-secondary); font-size: var(--typography-body-sm-size); }
.foot-row a { color: var(--color-text-primary); font-size: var(--typography-body-sm-size); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--color-border-strong); }
.foot { border-top: 0 !important; padding-top: var(--space-3) !important; margin-top: 0 !important; }
@media (max-width: 1100px) { .tb-nav { display: none; } .tb-status { margin-left: auto; } }
@media (max-width: 960px) { .sec-head { grid-template-columns: 1fr; } .sec-head p { margin-top: var(--space-4); } .tb-in { padding: 0 var(--space-6); } }
@media (max-width: 720px) { .tb-in { padding: 0 var(--space-4); } .brand-sub { display: none; } }
/* ===== v3: hero editorial, KPIs en panel, personas con medidores, revelado ===== */
.wrap{padding-top:var(--space-24)!important}
h1.display{font-size:var(--typography-display-xl-size)!important;line-height:.98!important;letter-spacing:-.025em!important}
h1.display em{font-style:italic;font-weight:400}
h1.display .hl{background:var(--color-accent-selection);box-shadow:0 0 0 .06em var(--color-accent-selection);border-radius:4px;padding:0 .04em;margin-left:-.04em}
.lede{font-size:18px!important;line-height:1.55!important}
.hero-glow{position:absolute;left:0;right:0;top:0;height:640px;pointer-events:none;z-index:-1;background:radial-gradient(520px 300px at 78% 120px,#DCD5F7AA,transparent 70%),radial-gradient(420px 260px at 92% 260px,#CFF3D899,transparent 70%),radial-gradient(460px 260px at 62% 300px,#F7D3DC88,transparent 70%);filter:blur(10px)}
body{position:relative}
.kpis{background:var(--color-bg-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-sm);gap:0!important;padding:var(--space-2);margin:var(--space-16) 0 var(--space-6)!important}
.kpi{box-shadow:none!important;border-radius:var(--radius-xl)!important;background:transparent!important;padding:var(--space-6)!important;position:relative}
.kpi+.kpi:before{content:"";position:absolute;left:0;top:24px;bottom:24px;width:1px;background:var(--color-border-subtle)}
.kpi:nth-child(3){background:var(--gradient-aurora)!important}
.kpi:nth-child(3):before,.kpi:nth-child(4):before{display:none}
.kpi .n{font-size:60px!important}
.kpi .ok{align-self:flex-start;display:inline-flex;gap:6px;align-items:center;font-size:12px;color:var(--color-status-success);background:#FFFFFFB3;border-radius:999px;padding:4px 10px;margin-top:2px;order:-1}
.insights{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin:0 0 var(--space-24)}
.ins{display:block;text-decoration:none;color:inherit;background:var(--color-bg-subtle);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:inset 0 0 0 1px var(--color-border-subtle);transition:background var(--motion-duration-base),box-shadow var(--motion-duration-base),transform var(--motion-duration-base) var(--motion-easing-standard)}
.ins:hover{background:var(--color-bg-surface);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.ins .k{font-family:var(--font-family-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary)}
.ins .v{font-family:var(--font-family-serif);font-size:40px;line-height:1;color:var(--color-text-display);margin:var(--space-4) 0 var(--space-3);letter-spacing:-.02em}
.ins .t{font-size:14px;line-height:1.5;color:var(--color-text-secondary)}
.ins .t b{color:var(--color-text-primary)}
.ins .go{display:inline-block;margin-top:var(--space-4);font-size:13px;color:var(--color-text-primary);border-bottom:1px solid var(--color-border-strong)}
/* personas */
.ministros .card{padding:var(--space-6)!important;position:relative}
.persona img{width:72px!important;height:72px!important}
.persona>div{flex:1;min-width:0}
.persona .nm{font-size:13.5px!important;color:var(--color-text-secondary);font-weight:450!important}
.persona .aq{font-size:21px!important;line-height:1.15!important;margin:4px 0 var(--space-4)!important;font-style:italic}
.rank{position:absolute;top:var(--space-5);right:var(--space-6);font-family:var(--font-family-mono);font-size:11px;color:var(--color-text-tertiary);letter-spacing:.06em}
.meters{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-5)}
.mt span{display:flex;justify-content:space-between;font-size:11.5px;color:var(--color-text-tertiary);margin-bottom:6px}
.mt span b{font-family:var(--font-family-mono);font-weight:500;font-size:11.5px;color:var(--color-text-primary)}
.mt i{display:block;height:4px;border-radius:999px;background:var(--color-neutral-100);overflow:hidden;position:relative}
.mt i:after{content:"";position:absolute;inset:0;width:calc(var(--v)*1%);border-radius:inherit;background:var(--bar-ink);transform-origin:left;transition:transform .9s var(--motion-easing-standard)}
.mt.dis i:after{background:var(--color-status-danger)}
.rama{display:inline-flex;align-items:center;gap:6px;margin-top:var(--space-4);font-size:12px;color:var(--color-text-secondary);background:var(--color-action-chip-bg);border-radius:999px;padding:4px 10px 4px 8px}
.rama:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c,var(--color-neutral-400))}
/* secciones */
.metric-side .overline{display:flex;align-items:baseline;gap:var(--space-3)}
.metric-side .overline .num{font-family:var(--font-family-serif);font-size:15px;letter-spacing:0;color:var(--color-text-display);text-transform:none}
.metric-side .overline .lbl{flex:1;display:flex;align-items:center;gap:var(--space-3)}
.metric-side .overline .lbl:after{content:"";flex:1;height:1px;background:var(--color-border-default)}
.metric{border-top:0!important}
.metric-side h2{font-size:36px!important;line-height:1.06!important}
.metric-side p{font-size:14px!important}
.metric-side p .lead{display:block;font-family:var(--font-family-serif);font-size:19px;line-height:1.35;color:var(--color-text-display);margin-bottom:var(--space-3)}
.viz{box-shadow:var(--shadow-sm)!important}
.bar-row{border-radius:8px;padding:2px 6px;margin:6px -6px!important;transition:background var(--motion-duration-fast)}
.bar-row:hover{background:var(--color-bg-muted)}
.bar-row:hover .bar-label{color:var(--color-text-primary)}
.viz.rankd .bar-fill[style*="accent-default"]{background:var(--color-neutral-400)!important}
.viz.rankd .bar-row.top .bar-fill[style*="accent-default"]{background:var(--bar-ink)!important}
.viz.rankd .bar-row.top .bar-label,.viz.rankd .bar-row.top .bar-val{color:var(--color-text-primary);font-weight:500}
.viz.rankd .bar-row.top .bar-val:after{content:" ↑ máx";font-family:var(--font-family-sans);font-size:11px;color:var(--color-text-tertiary);font-weight:400}
/* revelado */
.js .rv{opacity:0;transform:translateY(14px);transition:opacity .7s var(--motion-easing-standard),transform .7s var(--motion-easing-standard)}
.js .rv.in{opacity:1;transform:none}
.js .metric .bar-fill{transform:scaleX(0);transform-origin:left;transition:transform 1s var(--motion-easing-standard);transition-delay:calc(var(--i,0)*45ms + 150ms)}
.js .metric.in .bar-fill{transform:none}
.js .card .mt i:after{transform:scaleX(0)}
.js .card.in .mt i:after{transform:none}
@media (prefers-reduced-motion:reduce){.js .rv,.js .metric .bar-fill,.js .card .mt i:after{transition:none!important;opacity:1!important;transform:none!important}}
@media (max-width:960px){.insights{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)!important}.kpi:nth-child(3):before{display:none}h1.display{font-size:64px!important}}
@media (max-width:720px){h1.display{font-size:48px!important}.kpi .n{font-size:40px!important}.metric-side h2{font-size:30px!important}}

/* ============ Disenso v2 ============ */
.dz{position:relative}
.dz-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:18px}
.dz-seg{display:inline-flex;gap:2px;padding:4px;border-radius:999px;background:var(--color-action-chip-bg)}
.dz-seg button,.dz-chips button{border:0;font:inherit;font-size:12.5px;cursor:pointer;border-radius:999px;padding:6px 12px;background:transparent;color:var(--color-text-secondary);transition:background var(--motion-duration-fast)}
.dz-seg button.on{background:#fff;color:var(--color-text-primary);box-shadow:var(--shadow-xs)}
.dz-chips{display:flex;flex-wrap:wrap;gap:6px}
.dz-chips button{background:var(--color-action-chip-bg);font-family:var(--font-family-mono);font-size:11.5px}
.dz-chips button:hover{background:var(--color-action-chip-bg-hover)}
.dz-chips button.on{background:var(--color-neutral-900);color:#fff}
.dz-seg button:focus-visible,.dz-chips button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.dz-legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12px;color:var(--color-text-secondary);padding:12px 0 14px;border-top:1px solid var(--color-border-subtle)}
.dz-legend span{display:inline-flex;align-items:center;gap:7px}
.dz-legend i{display:inline-block;width:3px;border-radius:1px}
.dz-legend i.rc{width:14px;height:10px;border-radius:2px;background:repeating-linear-gradient(45deg,#F5F5F2 0 3px,#E4E4E0 3px 5px)}
.dz-legend em{font-style:normal;font-family:var(--font-family-mono);font-size:11px;color:var(--color-text-tertiary)}
.dz-chart{position:relative;min-height:200px}
.dz-load{padding:60px 0;text-align:center;color:var(--color-text-tertiary);font-size:13px}
#dzSvg{display:block;overflow:visible;cursor:crosshair}
#dzSvg text{font-family:var(--font-family-sans)}
.dz-ax{font-size:10.5px;fill:var(--color-text-tertiary)}
.dz-rt{font-size:10px;fill:var(--color-text-tertiary);font-family:var(--font-family-mono)!important;letter-spacing:.06em}
.dz-row{cursor:pointer;outline:none}
.dz-hit{fill:transparent;transition:fill var(--motion-duration-fast)}
.dz-row:hover .dz-hit,.dz-row:focus-visible .dz-hit{fill:var(--color-bg-muted)}
.dz-row.on .dz-hit{fill:var(--color-neutral-900)}
.dz-row.on .dz-nm,.dz-row.on .dz-rate{fill:#fff}
.dz-row.dim{opacity:.45}
.dz-nm{font-size:13px;font-weight:500;fill:var(--color-text-primary)}
.dz-rate{font-size:10.5px;fill:var(--color-text-tertiary)}
.dz-rate .up{fill:var(--color-status-danger)}
.dz-rate .dn{fill:var(--color-status-success)}
.dz-m{transition:opacity .15s}
.dz-m.dim{opacity:.1}
#dzSvg.hovering .dz-m:not(.hot){opacity:.28}
.dz-m.hot{opacity:1!important;stroke:#1B1B1B;stroke-width:.75}
.dz-tip{position:absolute;z-index:5;width:300px;background:var(--color-neutral-900);color:#fff;border-radius:14px;padding:12px 14px;font-size:12.5px;line-height:1.45;box-shadow:var(--shadow-lg);pointer-events:none}
.dz-tip .mut{color:#A3A39E}
.dz-tk{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.dz-tk .mono{font-family:var(--font-family-mono);font-size:13px}
.dz-te{font-family:var(--font-family-mono);font-size:12px}
.dz-tq{color:#D9D8D4;margin:2px 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dz-tw{margin-bottom:6px}
.dz-badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;border-radius:999px;padding:2px 9px 2px 7px;background:color-mix(in srgb,var(--c) 16%,#fff);color:var(--color-text-primary);white-space:nowrap;font-family:var(--font-family-sans)}
.dz-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c)}
.dz-tip .dz-badge{background:#FFFFFF1F;color:#fff}
.dz-detail{margin-top:16px;border-radius:20px;background:var(--color-bg-subtle);box-shadow:inset 0 0 0 1px var(--color-border-subtle);padding:20px 22px;animation:dzIn .3s var(--motion-easing-standard)}
@keyframes dzIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.dz-dh{display:flex;justify-content:space-between;gap:16px}
.dz-dt{font-family:var(--font-family-serif);font-size:24px;color:var(--color-text-display);margin-top:6px}
.dz-dq{font-size:13.5px;color:var(--color-text-secondary)}
.dz-dq .mut,.dz-more{color:var(--color-text-tertiary)}
.dz-x{border:0;background:#fff;width:32px;height:32px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--color-border-default);cursor:pointer;font-size:18px;line-height:1;flex:0 0 auto}
.dz-dv{display:flex;align-items:center;gap:14px;margin:16px 0 12px;font-size:13.5px}
.dz-dots{display:flex;gap:4px}
.dz-dots i{width:12px;height:12px;border-radius:50%;background:var(--color-neutral-900)}
.dz-dots i.no{background:var(--color-status-danger)}
.dz-faces{display:flex;flex-wrap:wrap;gap:6px}
.dz-faces span{font-size:12px;padding:4px 10px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--color-border-default)}
.dz-faces span.no{background:var(--color-status-danger-bg);color:var(--color-status-danger);box-shadow:none}
.dz-more{font-size:12px;margin-top:10px}
.dz-links{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.dz-links span{font-size:12px;color:var(--color-text-tertiary);border-bottom:1px dashed var(--color-border-strong)}
.dz-foot{margin-top:14px;font-size:11.5px;color:var(--color-text-tertiary)}
/* criterios en el filo */
.dz-edge{grid-column:2;margin-top:20px;background:#fff;border-radius:32px;box-shadow:var(--shadow-sm);padding:32px}
.dz-eh{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:end}
.dz-eh h3{font-family:var(--font-family-serif);font-weight:500;font-size:28px;line-height:1.1;color:var(--color-text-display);margin:10px 0 0}
.dz-eh p{margin:0;font-size:13.5px;color:var(--color-text-secondary)}
.dz-eh p b{color:var(--color-text-primary);font-weight:500}
.dz-ek{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}
.dz-ek>div{background:var(--color-bg-subtle);border-radius:16px;padding:14px 16px;box-shadow:inset 0 0 0 1px var(--color-border-subtle)}
.dz-ek .v{display:block;font-family:var(--font-family-serif);font-size:30px;line-height:1;color:var(--color-text-display)}
.dz-ek .l{display:block;font-size:12px;color:var(--color-text-tertiary);margin-top:6px}
.dz-tbl{overflow-x:auto}
.dz-tbl table{width:100%;border-collapse:collapse;font-size:13px}
.dz-tbl th{text-align:left;font-family:var(--font-family-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);font-weight:500;padding:0 12px 10px 0}
.dz-tbl td{padding:12px 12px 12px 0;border-top:1px solid var(--color-border-subtle);vertical-align:top}
.dz-tbl td.mono{font-family:var(--font-family-mono);font-size:12px;white-space:nowrap}
.dz-tbl td.as .mono{font-family:var(--font-family-mono);font-size:12px;white-space:nowrap}
.dz-tbl td.as small{display:block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--color-text-tertiary);margin-top:2px}
.dz-tbl tbody tr{cursor:pointer;transition:background var(--motion-duration-fast)}
.dz-tbl tbody tr:hover{background:var(--color-bg-muted)}
.dz-ef{margin-top:14px;font-size:12px;color:var(--color-text-tertiary)}
@media (max-width:960px){.dz-edge{grid-column:1}.dz-eh{grid-template-columns:1fr}}
@media (max-width:720px){.dz-edge{padding:20px;border-radius:24px}.dz-ek{grid-template-columns:1fr}.dz-tbl td.as small{max-width:160px}#disenso .dz-chart{overflow-x:auto}#dzSvg{min-width:620px}}
.dz-tbl td:last-child{min-width:170px;font-size:12.5px}

/* ============ Flujo v3 (sankey que se abre en su lugar) ============ */
.fx{position:relative}
#fxSvg{display:block;overflow:visible}
#fxSvg text{font-family:var(--font-family-sans)}
.fx-halo{paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round}
.fx-big{font-size:14px;font-weight:600;fill:var(--color-text-primary)}
.fx-sm{font-size:11px;fill:var(--color-text-tertiary)}
.fx-sm2{font-size:11px;font-weight:400;fill:var(--color-text-tertiary)}
.fx-rl{font-size:13px;font-weight:500}
.fx-chev{fill:var(--color-text-tertiary);font-weight:400}
.fx-cl{font-size:12.5px;font-weight:450;fill:var(--color-text-primary)}
.fx-l{fill-opacity:.42;cursor:pointer;transition:fill-opacity var(--motion-duration-fast)}
.fx-l:hover{fill-opacity:.62}
.fx-n.big,.fx-hd{cursor:pointer;outline:none}
.fx-n.big:hover .fx-chev,.fx-hd:hover .fx-chev{fill:var(--color-text-primary)}
.fx-n.big:focus-visible rect:nth-child(2){stroke:var(--color-border-focus);stroke-width:3}
.fx-note{margin-top:14px;font-size:12.5px;color:var(--color-text-tertiary);display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:36px}
.fx-note b{color:var(--color-text-primary)}
.fx-seg{display:inline-flex;gap:2px;padding:4px;border-radius:999px;background:var(--color-action-chip-bg)}
.fx-seg button{border:0;font:inherit;font-size:12px;cursor:pointer;border-radius:999px;padding:5px 12px;background:transparent;color:var(--color-text-secondary)}
.fx-seg button.on{background:#fff;color:var(--color-text-primary);box-shadow:var(--shadow-xs)}
.fx-seg button:disabled{opacity:.4;cursor:default}
.fx-seg button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.fx-badge{font-size:11px;border-radius:999px;padding:3px 9px;font-weight:500}
.fx-badge.ok{background:var(--color-status-success-bg);color:var(--color-status-success)}
.fx-badge.il{background:var(--color-status-warning-bg);color:var(--color-status-warning)}
.fx-tip{position:absolute;z-index:5;max-width:260px;background:var(--color-neutral-900);color:#fff;border-radius:12px;padding:10px 12px;font-size:12.5px;line-height:1.45;box-shadow:var(--shadow-lg);pointer-events:none}
.fx-tip .mut{color:#A3A39E}
@media (max-width:720px){#flujo .fx-chart{overflow-x:auto}#fxSvg{min-width:600px}}
.fx-l2{fill-opacity:.34}
.fx-cl{font-size:12px}

/* ============ Sesiones (calendario) ============ */
.cal-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.cal-stats>div{background:var(--color-bg-subtle);border-radius:14px;padding:12px 14px;box-shadow:inset 0 0 0 1px var(--color-border-subtle)}
.cal-stats .v{display:block;font-family:var(--font-family-serif);font-size:26px;line-height:1;color:var(--color-text-display)}
.cal-stats .v.cap{font-size:20px;text-transform:capitalize}
.cal-stats .l{display:block;font-size:11.5px;color:var(--color-text-tertiary);margin-top:6px;line-height:1.35}
.cal-stats .hi .v{color:#D4532B}
.cal-bar{display:flex;justify-content:flex-end;margin-bottom:16px}
.cal-seg{display:inline-flex;gap:2px;padding:4px;border-radius:999px;background:var(--color-action-chip-bg);flex-wrap:wrap}
.cal-seg button{border:0;font:inherit;font-size:12px;cursor:pointer;border-radius:999px;padding:5px 12px;background:transparent;color:var(--color-text-secondary)}
.cal-seg button.on{background:#fff;color:var(--color-text-primary);box-shadow:var(--shadow-xs)}
.cal-seg button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.cal-wrap{overflow-x:auto;padding-bottom:4px}
.cal-load{padding:40px 0;text-align:center;font-size:13px;color:var(--color-text-tertiary)}
.cal-svg{display:block}
.cal-svg text{font-family:var(--font-family-sans)}
.cal-ml{font-size:11px;fill:var(--color-text-tertiary)}
.cal-dl{font-size:10px;fill:var(--color-text-tertiary)}
.cal-c{transition:fill var(--motion-duration-fast),stroke var(--motion-duration-fast)}
.cal-c.l0{fill:#EDEDEA}
.cal-c.l1{fill:#D9D8D4}
.cal-c.l2{fill:#B4B3AE}
.cal-c.l3{fill:#70706E}
.cal-c.l4{fill:#1B1B2E}
.cal-c.hi{fill:#E2582B}
.cal-c.has{cursor:pointer;outline:none}
.cal-c.has:hover,.cal-c.has:focus-visible{stroke:var(--color-neutral-900);stroke-width:1.5}
.cal-c.sel{stroke:var(--color-neutral-900);stroke-width:2}
.cal-legend{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:14px;font-size:11.5px;color:var(--color-text-tertiary)}
.cal-legend i{display:inline-block;width:11px;height:11px;border-radius:3px}
.cal-legend i.l0{background:#EDEDEA}.cal-legend i.l1{background:#D9D8D4}.cal-legend i.l2{background:#B4B3AE}.cal-legend i.l3{background:#70706E}.cal-legend i.l4{background:#1B1B2E}.cal-legend i.hi{background:#E2582B}
.cal-legend .sep{width:1px;height:12px;background:var(--color-border-default);margin:0 8px}
.cal-legend .mut{color:var(--color-text-tertiary)}
.cal-tip{position:absolute;z-index:6;width:220px;transform:translateY(-100%);background:var(--color-neutral-900);color:#fff;border-radius:12px;padding:10px 12px;font-size:12px;line-height:1.45;box-shadow:var(--shadow-lg);pointer-events:none}
.cal-tip .mut{color:#A3A39E}
.cal-tip .t-hi{color:#F4A27F}
.viz:has(.cal-wrap){position:relative}
.cal-detail{margin-top:18px;border-radius:20px;background:var(--color-bg-subtle);box-shadow:inset 0 0 0 1px var(--color-border-subtle);padding:18px 20px;animation:calIn .3s var(--motion-easing-standard)}
@keyframes calIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.cal-dh{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}
.cal-dt{font-family:var(--font-family-serif);font-size:22px;color:var(--color-text-display);margin-top:6px}
.cal-dt::first-letter{text-transform:uppercase}
.cal-ds{font-size:12.5px;color:var(--color-text-tertiary)}
.cal-x{border:0;background:#fff;width:32px;height:32px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--color-border-default);cursor:pointer;font-size:18px;line-height:1;flex:0 0 auto}
.cal-detail table{width:100%;border-collapse:collapse;font-size:13px}
.cal-detail th{text-align:left;font-family:var(--font-family-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);font-weight:500;padding:0 10px 8px 0}
.cal-detail td{padding:10px 10px 10px 0;border-top:1px solid var(--color-border-subtle);vertical-align:top}
.cal-detail td .mono{font-family:var(--font-family-mono);font-size:12px;white-space:nowrap}
.cal-detail td small{display:block;font-size:11.5px;color:var(--color-text-tertiary);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-v{font-family:var(--font-family-mono);font-size:12px;padding:2px 8px;border-radius:999px;background:var(--color-neutral-100)}
.cal-v.filo{background:#FBE3D8;color:#B23F17}
.cal-v.rech{background:#26324A;color:#fff}
.cal-detail .mut{font-size:12px;color:var(--color-text-tertiary)}
@media (max-width:960px){.cal-stats{grid-template-columns:repeat(4,1fr)}}
@media (max-width:720px){.cal-stats{grid-template-columns:1fr 1fr}.cal-bar{justify-content:flex-start}.cal-detail td small{max-width:160px}}
/* sección a todo lo ancho: el calendario necesita espacio horizontal */
.metric.cal-sec{grid-template-columns:1fr!important;gap:28px!important}
.cal-sec .metric-side{position:static!important;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:48px;align-items:end}
.cal-sec .metric-side .overline,.cal-sec .metric-side h2,.cal-sec .metric-side p{grid-column:1}
.cal-sec .cal-stats{grid-column:2;grid-row:1/span 3;grid-template-columns:repeat(4,1fr);margin:0;align-self:end}
.cal-rel{display:inline-block;margin-left:6px;font-size:10.5px;color:#B23F17;font-weight:500}
@media (max-width:960px){.cal-sec .metric-side{grid-template-columns:1fr}.cal-sec .cal-stats{grid-column:1;grid-row:auto;margin-top:20px}}
@media (max-width:720px){.cal-sec .cal-stats{grid-template-columns:1fr 1fr}}

/* ============ Redes sociales en tarjetas ============ */
.persona .nm{padding-right:30px}
.redes{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px}
.red{width:30px;height:30px;border-radius:50%;display:inline-grid;place-items:center;background:var(--color-bg-subtle);box-shadow:inset 0 0 0 1px var(--color-border-subtle);color:var(--color-text-secondary);transition:background var(--motion-duration-fast),color var(--motion-duration-fast),transform var(--motion-duration-fast)}
.red svg{width:14px;height:14px;fill:currentColor}
.red:hover{background:var(--color-neutral-900);color:#fff;transform:translateY(-1px)}
.red:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.red.tbc{box-shadow:none;outline:1.25px dashed var(--color-border-strong);outline-offset:-1px;background:transparent}
.redes-src{margin-left:4px;font-family:var(--font-family-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary)}
.redes-none{font-size:12px;color:var(--color-text-tertiary);font-style:italic}
.redes-note{grid-column:1/-1;margin:-56px 0 var(--space-16);font-size:12px;color:var(--color-text-tertiary);max-width:760px}

/* ============ Estructura (La Corte por dentro) ============ */
.metric.es-sec{grid-template-columns:1fr!important;gap:28px!important}
.es-sec .metric-side{position:static!important;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:48px;align-items:end}
.es-sec .metric-side .overline,.es-sec .metric-side h2,.es-sec .metric-side p{grid-column:1}
.es-kpis{grid-column:2;grid-row:1/span 3;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-self:end}
.es-kpis>div{background:var(--color-bg-subtle);border-radius:14px;padding:12px 14px;box-shadow:inset 0 0 0 1px var(--color-border-subtle)}
.es-kpis .v{display:block;font-family:var(--font-family-serif);font-size:28px;line-height:1;color:var(--color-text-display)}
.es-kpis .l{display:block;font-size:11.5px;color:var(--color-text-tertiary);margin-top:6px;line-height:1.35}
.es-viz{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;padding:24px!important;background:linear-gradient(180deg,#FBFBF9,#fff)!important}
.es-stage{position:relative;min-width:0}
.es-svg{display:block;overflow:visible}
.es-svg text{font-family:var(--font-family-sans)}
.es-ring{fill:none;stroke:#DCDCD7;stroke-width:1}
.es-mer{fill:none;stroke:#E6E6E1;stroke-width:1}
.es-rl{font-family:var(--font-family-mono)!important;font-size:9.5px;letter-spacing:.1em;fill:var(--color-text-tertiary)}
.es-dot{fill:#E2E2DD}
.es-dot.aux{fill:#B4B3AE}
.es-dot.sel{fill:#C9C9C3}.es-dot.aux.sel{fill:#70706E}
.es-s circle{fill:#fff;stroke:#B4B3AE;stroke-width:1}
.es-s.sel circle{fill:#fff;stroke:#1B1B1B;stroke-width:1.2;filter:drop-shadow(0 2px 4px rgba(0,0,0,.12))}
.es-s.rC.sel circle{fill:#1B1B1B}
.es-s.rC.sel text{fill:#fff}
.es-s.rA.sel circle{stroke:#8A8A86}
.es-s.rX circle{stroke:#5C69AD}.es-s.rX.sel circle{stroke:#5C69AD;fill:#EEF0FA}
.es-s text{font-size:9px;font-weight:600;fill:#1B1B1B;pointer-events:none}
.es-s{cursor:pointer}
.es-m{cursor:pointer;outline:none}
.es-m .ring{fill:#fff;stroke:#E4E4E0;stroke-width:1;filter:drop-shadow(0 4px 10px rgba(0,0,0,.10))}
.es-m.sel .ring{stroke:#C2412D;stroke-width:2}
.es-m:focus-visible .ring{stroke:var(--color-border-focus);stroke-width:3}
.es-mn{font-size:12px;font-weight:600;fill:var(--color-text-primary)}
.es-ln{fill:none;stroke:#E2582B;stroke-width:1.2;opacity:.55}
.es-ln.hot{opacity:1;stroke-width:1.8}
.es-ln.soft{stroke:#B4B3AE;stroke-dasharray:3 3;opacity:.8}
.es-lb{font-size:10.5px;font-weight:500;fill:var(--color-text-secondary)}
.es-lb.c{fill:#C2412D;font-weight:600}
.es-arrow{position:absolute;top:44%;z-index:2;width:42px;height:42px;border-radius:50%;border:0;cursor:pointer;font-size:18px;background:#fff;box-shadow:inset 0 0 0 1px var(--color-border-default),var(--shadow-sm);color:var(--color-text-primary);transition:background .14s}
.es-arrow:hover{background:var(--color-neutral-900);color:#fff}
.es-arrow.l{left:0}.es-arrow.r{right:0}
.es-panel{border-left:1px solid var(--color-border-subtle);padding-left:24px;min-width:0;display:flex;flex-direction:column}
.es-ph{display:flex;justify-content:space-between;gap:12px;align-items:flex-end}
.es-pn{font-family:var(--font-family-serif);font-size:22px;line-height:1.15;color:var(--color-text-display);margin-top:6px}
.es-pt .v{display:block;font-family:var(--font-family-serif);font-size:30px;line-height:1;text-align:right;color:var(--color-text-display)}
.es-pt .l{display:block;font-size:11px;color:var(--color-text-tertiary);text-align:right}
.es-bar{display:flex;gap:2px;height:8px;border-radius:999px;overflow:hidden;margin:16px 0 10px;min-width:40%}
.es-bar span{display:block;height:100%}
.es-leg{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--color-text-tertiary);margin-bottom:14px}
.es-leg i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}
.es-leg b{color:var(--color-text-primary);font-weight:500}
.es-list{flex:1;max-height:360px;overflow:auto;margin:0 -6px;padding:0 6px}
.es-it{display:flex;gap:10px;align-items:center;padding:7px 6px;border-radius:10px;cursor:default;transition:background .14s}
.es-it:hover{background:var(--color-bg-muted)}
.es-av{flex:0 0 28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:600;background:#fff;box-shadow:inset 0 0 0 1px #B4B3AE}
.es-it.rC .es-av{background:#1B1B1B;color:#fff;box-shadow:none}
.es-it.rX .es-av{background:#EEF0FA;box-shadow:inset 0 0 0 1px #5C69AD;color:#26324A}
.es-it b{display:block;font-size:13px;font-weight:500;line-height:1.25}
.es-it small{display:block;font-size:11px;color:var(--color-text-tertiary)}
.es-src{margin-top:14px;font-size:11px;line-height:1.5;color:var(--color-text-tertiary)}
.es-src a{color:var(--color-text-secondary);text-decoration:underline;text-underline-offset:2px}
.es-tip{position:absolute;z-index:6;max-width:260px;background:var(--color-neutral-900);color:#fff;border-radius:12px;padding:10px 12px;font-size:12px;line-height:1.45;box-shadow:var(--shadow-lg);pointer-events:none}
.es-tip .mut{color:#A3A39E}
@media (max-width:1100px){.es-viz{grid-template-columns:1fr}.es-panel{border-left:0;padding-left:0;border-top:1px solid var(--color-border-subtle);padding-top:18px}}
@media (max-width:960px){.es-sec .metric-side{grid-template-columns:1fr}.es-kpis{grid-column:1;grid-row:auto;margin-top:20px}}
@media (max-width:720px){.es-kpis{grid-template-columns:1fr 1fr}.es-stage{overflow-x:auto}.es-svg{min-width:600px}}

/* ============ Persona frente a autoridad ============ */
/* Mismo esquema que el resto del tablero: texto a la izquierda, tarjeta a la derecha, segunda tarjeta debajo. */
.pp-sec{position:relative}
#ppDek{display:block;margin-bottom:8px}
#ppDek b{font-weight:600;color:var(--color-text-primary)}
#ppDek b.a{color:#C2412D}#ppDek b.p{color:#4553C8}
#ppDek .a{color:#C2412D}#ppDek .p{color:#4553C8}
.pp-legend{align-items:center}
.pp-legend i.sw{width:14px;height:10px;border-radius:2px}
.pp-legend i.sw.a{background:#C2412D}.pp-legend i.sw.p{background:#4553C8}
.pp-legend i.pl{width:0;height:12px;border-left:1.5px dashed #1B1B1B}
.pp-flag{margin-left:auto;font-family:var(--font-family-mono);font-size:11px;color:#8A6A1E}
.pp-flag i{display:none}
.pp-sec:not(.pp-demo) .pp-flag{color:var(--color-text-tertiary)}
.pp-spec{position:relative;min-height:200px}
.pp-svg{display:block;overflow:visible}
.pp-svg text{font-family:var(--font-family-sans)}
.pp-axis{stroke-width:2}
.pp-tick{stroke-width:1.4}
.pp-tk{font-size:10.5px;fill:var(--color-text-tertiary);stroke:none}
.pp-mid{stroke:#D2D2CD;stroke-width:1}
.pp-court{stroke:#1B1B1B;stroke-width:1;stroke-dasharray:3 3}
.pp-cl{font-size:10.5px;font-weight:600;fill:#1B1B1B}
.pp-band{opacity:.18}
.pp-stem{stroke-width:1}
.pp-lead{fill:none;stroke:#D2D2CD;stroke-width:1}
.pp-lb{font-size:12.5px;font-weight:500}
.pp-lb.sel{font-weight:700}
.pp-lv{font-size:10.5px;fill:var(--color-text-tertiary)}
.pp-pt{cursor:pointer;outline:none;transition:opacity .18s}
.pp-pt .bg{fill:#fff}
.pp-pt .rg{fill:none;stroke-width:2}
.pp-pt.sel .rg{stroke-width:3}
.pp-pt:focus-visible .rg{stroke:var(--color-border-focus)!important;stroke-width:3}
.pp-pt.dim{opacity:.3}.pp-pt.few{opacity:.45}

/* segunda tarjeta: ministro por ministro */
.pp-edge .dz-eh{margin-bottom:18px}
.pp-tbl{border-top:1px solid var(--color-border-subtle)}
.pp-tr{display:grid;grid-template-columns:150px 60px minmax(0,1fr) 104px 60px;align-items:center;gap:14px;padding:7px 4px;border-bottom:1px solid var(--color-border-subtle)}
.pp-th{padding:10px 4px;font-size:11.5px;color:var(--color-text-tertiary)}
.pp-tr .r{text-align:right}
.pp-row{cursor:pointer;outline:none;border-radius:10px;transition:background var(--motion-duration-fast),opacity .18s}
.pp-row:hover,.pp-row:focus-visible{background:var(--color-bg-muted)}
.pp-row.sel{background:var(--color-bg-muted)}
.pp-row.dim{opacity:.4}.pp-row.few{opacity:.5}
.pp-row .who{display:grid;grid-template-columns:28px 1fr;column-gap:10px;align-items:center}
.pp-row .who img{grid-row:1/span 2;width:28px;height:28px;border-radius:50%;object-fit:cover;background:#fff}
.pp-row .who b{font-size:13px;font-weight:500;color:var(--color-text-primary);line-height:1.2}
.pp-row .who small{font-size:10.5px;color:var(--color-text-tertiary)}
.pp-row .idx{font-family:var(--font-family-mono);font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}
.pp-row .idx.a{color:#C2412D}.pp-row .idx.p{color:#4553C8}.pp-row .idx.c{color:var(--color-text-secondary)}
.pp-row .pc{font-family:var(--font-family-mono);font-size:12.5px;color:var(--color-text-secondary)}
.pp-strip,.pp-spark{display:block;overflow:visible}
.pp-strip .z{stroke:#B4B3AE;stroke-width:1}
.pp-strip .c{stroke:#1B1B1B;stroke-width:1;stroke-dasharray:2 2}
.pp-strip .m{stroke-width:5;stroke-linecap:round;opacity:.22}
.pp-strip .d{stroke:#fff;stroke-width:1.5}
.pp-tr .tr{display:flex;align-items:center;gap:6px}
.pp-spark .z{stroke:#E6E6E1;stroke-width:1}
.pp-spark .c{fill:none;stroke:#B4B3AE;stroke-width:1;stroke-dasharray:2 2}
.pp-spark .l{fill:none;stroke-width:1.6;stroke-linejoin:round}
.pp-tr .mv{font-style:normal;font-size:12px;color:var(--color-text-tertiary);width:10px}
.pp-tr .mv.a{color:#C2412D}.pp-tr .mv.p{color:#4553C8}
.pp-qr{margin-top:10px;font-size:11.5px;color:var(--color-text-tertiary)}

/* codificador */
.pp-code{margin-top:18px;padding-top:2px}
.pp-code summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;font-size:13.5px}
.pp-code summary::-webkit-details-marker{display:none}
.pp-code summary b::before{content:"＋ ";color:var(--color-text-tertiary)}
.pp-code[open] summary b::before{content:"－ "}
.pp-code summary span{font-family:var(--font-family-mono);font-size:11.5px;color:var(--color-text-tertiary)}
.pp-how{font-size:12.5px;line-height:1.55;color:var(--color-text-secondary);margin:12px 0}
.pp-how code{font-family:var(--font-family-mono);font-size:11.5px;background:var(--color-bg-muted);padding:1px 5px;border-radius:5px}
.pp-cbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.pp-act{margin-left:auto;display:flex;gap:6px}
.pp-act button,.pp-act label{font:inherit;font-size:12px;cursor:pointer;border:0;border-radius:999px;padding:6px 12px;background:#fff;box-shadow:inset 0 0 0 1px var(--color-border-default);color:var(--color-text-primary)}
.pp-act button:hover,.pp-act label:hover{background:var(--color-neutral-900);color:#fff}
.pp-t{width:100%;border-collapse:collapse;font-size:12.5px}
.pp-t th{text-align:left;font-weight:500;font-size:11px;color:var(--color-text-tertiary);padding:8px;border-bottom:1px solid var(--color-border-subtle)}
.pp-t td{padding:9px 8px;border-bottom:1px solid var(--color-border-subtle);vertical-align:top}
.pp-t td small{display:block;font-size:11px;color:var(--color-text-tertiary);margin-top:3px;max-width:420px}
.pp-t td.mono small{white-space:normal;font-family:var(--font-family-sans);max-width:240px}
.pp-t .mono{font-family:var(--font-family-mono);font-size:11.5px;white-space:nowrap}
.pp-k{display:inline-block;font-size:10px;border-radius:999px;padding:1px 7px;margin-left:4px;background:var(--color-bg-muted);color:var(--color-text-secondary);font-weight:500}
.pp-rj{font-family:var(--font-family-sans);font-size:10px;color:#C2412D;font-weight:600}
.pp-opt{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:var(--color-action-chip-bg);flex-wrap:nowrap;white-space:nowrap}
.pp-opt button{border:0;font:inherit;font-size:11.5px;cursor:pointer;border-radius:999px;padding:4px 10px;background:transparent;color:var(--color-text-secondary)}
.pp-opt button:hover{color:var(--color-text-primary)}
.pp-opt button.on{background:#fff;color:var(--color-text-primary);box-shadow:var(--shadow-xs);font-weight:600}
.pp-opt button.s-p{color:#8A6A1E}

.pp-tip{position:absolute;z-index:6;max-width:250px;background:var(--color-neutral-900);color:#fff;border-radius:14px;padding:12px 14px;font-size:12.5px;line-height:1.45;box-shadow:var(--shadow-lg);pointer-events:none}
.pp-tip .mut{color:#A3A39E}
@media (max-width:720px){.pp-spec{overflow-x:auto}.pp-tr{grid-template-columns:120px 48px minmax(0,1fr) 48px}.pp-tr>:nth-child(4){display:none}.pp-act{margin-left:0}.pp-t td small{max-width:200px}}

/* ============ Logo Lawgic en el pie ============ */
.foot-brand{display:block}
.foot-brand .mark{vertical-align:middle}
.foot-brand .lawgic-logo{display:block;height:20px;width:auto;margin-top:10px}

/* ============ Símbolo SCJN Vibes ============ */
.sv-mark{height:28px;width:28px}
.foot-brand .svm{height:26px;width:26px;vertical-align:middle}

/* ============ by Lawgic en el hero ============ */
.bylg{display:flex;align-items:center;gap:10px;margin:16px 0 0;font-family:var(--font-family-serif);font-style:italic;font-size:17px;color:var(--color-text-secondary)}
.bylg img{height:20px;width:auto}
