
  /* ── VARIABLES ──────────────────────────────────────────── */
  #vista-prof {
    --bg:        #EAF0F8;   /* warm white — fondo principal */
    --panel:     #E4ECF6;   /* off-white más cálido — paneles laterales (profundidad vs --bg) */
    --bg2:       #F2F6FB;   /* tinte suave — cajas internas de números/stats */
    --ink:       #111111;
    --ink1:      #111111;
    --ink2:      #444444;
    --ink3:      #888888;
    --border:    rgba(17,17,17,0.10);
    --border-s:  #111111;
    --accent:    #1A5FD6;
    --red:       #8a2020;
    --amber:     #b07a10;   /* ámbar real — advertencia, separado del naranja de marca */
  }

  /* ── RESET ──────────────────────────────────────────────── */
  #vista-prof *, #vista-prof *::before, #vista-prof *::after { box-sizing: border-box; margin: 0; padding: 0; }
  #vista-prof, #vista-prof { height: 100%; overflow: hidden; background: var(--bg); color: var(--ink); font-family: 'IBM Plex Sans', sans-serif; font-size: 13px; }
  #vista-prof a { color: inherit; text-decoration: none; }
  #vista-prof button { font-family: inherit; cursor: pointer; }
  #vista-prof ul, #vista-prof ol { list-style: none; }

  /* ── TOPBAR ─────────────────────────────────────────────── */
  #vista-prof #topbar {
    height: 52px; display: flex; align-items: center;
    padding: 0 20px; gap: 24px;
    background: var(--bg); border-bottom: 3px solid var(--accent);
    flex-shrink: 0;
  }
  #vista-prof .logo-wrap { flex-shrink: 0; }
  #vista-prof .logo-name { font-family: 'IBM Plex Sans', sans-serif; font-size: 18px; font-weight: 600; letter-spacing: 5px; text-transform: uppercase; line-height: 1; color: var(--ink); }
  #vista-prof .logo-sub  { font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; letter-spacing: 2px; color: var(--ink3); margin-top: 3px; }

  /* ── GLOBAL SEARCH (topbar) ─────────────────────────────── */
  #vista-prof #search-global {
    flex: 1 1 auto;
    max-width: 420px;
    min-width: 0;
    display: flex;
    align-items: stretch;
    height: 32px;
  }
  #vista-prof #search-global #search-inp {
    flex: 1; height: 32px; min-width: 0;
    border: 1px solid var(--border-s); border-right: none;
    background: transparent;
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 12px; font-weight: 400;
    color: var(--ink);
    padding: 0 12px;
    outline: none;
  }
  #vista-prof #search-global #search-inp::placeholder { color: var(--ink3); font-style: normal; }
  #vista-prof #search-global #search-inp:focus { background: rgba(26,24,20,.025); }
  #vista-prof #search-global #search-btn {
    width: 36px; height: 32px; padding: 0;
    background: var(--accent); border: 1px solid var(--accent);
    color: #fff; font-size: 14px; line-height: 1;
    display: flex; align-items: center; justify-content: center;
    transition: background .15s;
    letter-spacing: 0;
  }
  #vista-prof #search-global #search-btn:hover { background: #c8561a; border-color: #c8561a; }

  /* ── STATUS PILL (topbar) ───────────────────────────────── */
  #vista-prof #status-pill { margin-left: auto; flex-shrink: 0; display: flex; align-items: center; }
  #vista-prof .status-pill {
    display: flex; align-items: center; gap: 6px;
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 1px;
    padding: 4px 10px; border: 1px solid var(--border);
    color: var(--ink3); white-space: nowrap;
  }
  #vista-prof .status-dot {
    width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
  }
  #vista-prof .status-pill-ok    { border-color: rgba(26,90,74,0.3); color: #1a5a4a; background: rgba(26,90,74,0.04); }
  #vista-prof .status-dot-ok     { background: #1a5a4a; }
  #vista-prof .status-pill-old   { border-color: rgba(139,107,0,0.3); color: #8a6a00; background: rgba(139,107,0,0.04); }
  #vista-prof .status-dot-old    { background: #8a6a00; }
  #vista-prof .status-pill-error { border-color: rgba(138,32,32,0.3); color: var(--red); background: rgba(138,32,32,0.04); }
  #vista-prof .status-dot-error  { background: var(--red); }
  #vista-prof .status-pill-warn  { border-color: rgba(139,107,0,0.25); color: #8a6a00; background: rgba(139,107,0,0.04); }
  #vista-prof .status-dot-warn   { background: #e5a020; }

  /* ── NAV TABS ───────────────────────────────────────────── */
  #vista-prof #nav {
    height: 38px; display: flex; align-items: stretch;
    background: var(--bg); border-bottom: 1px solid var(--border);
    padding: 0 20px; gap: 0; flex-shrink: 0;
  }
  #vista-prof .nav-tab {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    letter-spacing: 1.5px; text-transform: uppercase;
    padding: 0 18px; background: transparent; border: none;
    color: var(--ink3); border-bottom: 2px solid transparent;
    cursor: pointer; transition: color .15s;
    margin-bottom: -1px;
  }
  #vista-prof .nav-tab:hover  { color: var(--ink2); }
  #vista-prof .nav-tab.active { color: var(--accent); border-bottom-color: var(--accent); }

  /* ── CONTENT WRAPPER ────────────────────────────────────── */
  #vista-prof #content { height: calc(100vh - 90px); display: flex; flex-direction: column; }
  #vista-prof .tab-pane { display: none; flex: 1; overflow: hidden; }
  #vista-prof .tab-pane.active { display: flex; }

  /* ── SHARED PANEL PIECES ────────────────────────────────── */
  #vista-prof .ph { padding: 10px 14px 8px; border-bottom: 1px solid var(--border); flex-shrink: 0; background: var(--panel); }
  #vista-prof .sec-lbl { font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; letter-spacing: 2px; color: var(--ink3); }
  #vista-prof .panel-scroll { flex: 1; overflow-y: auto; }

  /* ── BADGES ─────────────────────────────────────────────── */
  #vista-prof .bp { font-family: 'IBM Plex Mono', monospace; font-size: 8px; letter-spacing: 1px; padding: 2px 7px; border: 1px solid; text-transform: uppercase; display: inline-block; line-height: 1.7; }
  #vista-prof .bp.btn { cursor: pointer; transition: opacity .15s; }
  #vista-prof .bp.btn:hover { opacity: .65; }

  /* Partido (afiliación formal) — chip principal */
  #vista-prof .partido-LLA   { color: #6a1a8a; border-color: #6a1a8a; background: #f3ecf8; } /* violeta — La Libertad Avanza */
  #vista-prof .partido-PRO   { color: #a08020; border-color: #a08020; background: #fdf7e0; } /* amarillo dorado — PRO */
  #vista-prof .partido-UCR   { color: #b41a1a; border-color: #b41a1a; background: #fdeded; } /* rojo — UCR */
  #vista-prof .partido-UP    { color: #1a5a8a; border-color: #1a5a8a; background: #eaf2fb; } /* celeste — Unión por la Patria */
  #vista-prof .partido-INDEP { color: #5a5a5a; border-color: #5a5a5a; background: transparent; } /* gris — independiente/técnico */

  /* Polo (posición funcional) — chip secundario */
  #vista-prof .polo-presidente  { color: #8a5a00; border-color: #8a5a00; background: #fdf3e0; }
  #vista-prof .polo-karina      { color: #8a6a20; border-color: #8a6a20; background: #fdf7e8; }
  #vista-prof .polo-caputo      { color: #8a2020; border-color: #8a2020; background: #fdf0f0; }
  #vista-prof .polo-oficialismo { color: #4a4a4a; border-color: #4a4a4a; background: transparent; }
  #vista-prof .polo-propio      { color: #4a6a8a; border-color: #4a6a8a; background: #f0f4fa; }
  #vista-prof .polo-aliado      { color: #1a6a4a; border-color: #1a6a4a; background: #eaf6f0; }
  #vista-prof .polo-oposicion   { color: #5a5a5a; border-color: #5a5a5a; background: transparent; }
  /* Legacy — preservados por compat con datos viejos */
  #vista-prof .polo-central     { color: #8a8680; border-color: #8a8680; background: transparent; }
  #vista-prof .polo-economico   { color: #1a5a4a; border-color: #1a5a4a; background: #f0faf6; }

  /* ── SCROLLBARS ─────────────────────────────────────────── */
  #vista-prof ::-webkit-scrollbar { width: 4px; height: 4px; }
  #vista-prof ::-webkit-scrollbar-track { background: transparent; }
  #vista-prof ::-webkit-scrollbar-thumb { background: rgba(26,24,20,.15); border-radius: 2px; }

  /* ═══════════════════════════════════════════════════════════
     TAB — NOVEDADES (briefing editorial del día — 2 columnas en vista completa)
  ═══════════════════════════════════════════════════════════ */
  #vista-prof #tab-novedades { flex-direction: column; }

  /* ═══════════════════════════════════════════════════════════
     MONITOR — niveles de estado (paleta sobria institucional)
  ═══════════════════════════════════════════════════════════ */
  #vista-prof {
    --mon-pos:   #4f6b3a;  /* verde oliva apagado — mejora/estable */
    --mon-bad:   #8a2020;  /* bordó — deterioro */
    --mon-act:   #3a5f8c;  /* azul pizarra — actividad institucional */
    --mon-neu:   #8a857d;  /* gris cálido — sin cambios */
  }
  #vista-prof .mon-l-positivo  { --mon-c: var(--mon-pos); }
  #vista-prof .mon-l-deterioro { --mon-c: var(--mon-bad); }
  #vista-prof .mon-l-activo    { --mon-c: var(--mon-act); }
  #vista-prof .mon-l-neutral   { --mon-c: var(--mon-neu); }

  /* ── 1 · FRANJA SUPERIOR ─────────────────────────────────── */
  #vista-prof .mon-strip {
    display: flex; align-items: center; gap: 14px;
    padding: 10px 14px; margin-bottom: 16px;
    background: var(--panel); border: 1px solid var(--border);
    border-left: 3px solid var(--ink);
  }
  #vista-prof .mon-strip-label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 1.5px; color: var(--ink3);
    flex-shrink: 0; white-space: nowrap;
  }
  #vista-prof .mon-strip-chips {
    display: flex; flex-wrap: wrap; gap: 8px 18px; flex: 1;
  }
  #vista-prof .mon-chip {
    display: inline-flex; align-items: center; gap: 7px;
    background: none; border: none; padding: 2px 0;
  }
  #vista-prof .mon-chip-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--mon-c); flex-shrink: 0;
  }
  #vista-prof .mon-chip-area {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 11px; font-weight: 500; color: var(--ink1);
  }
  #vista-prof .mon-chip-estado {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px; color: var(--mon-c); font-weight: 500;
  }
  #vista-prof .mon-chip-arrow {
    font-size: 10px; color: var(--mon-c); line-height: 1;
  }

  /* ── 2 · SEMÁFORO CENTRAL ────────────────────────────────── */
  #vista-prof .mon-semaforo {
    display: grid; grid-template-columns: 300px 1fr; gap: 0;
    border: 1px solid var(--border); background: var(--bg);
    margin-bottom: 18px;
  }
  #vista-prof .mon-verdicto {
    padding: 22px 24px;
    border-right: 1px solid var(--border);
    border-left: 4px solid var(--mon-neu);
    display: flex; flex-direction: column; justify-content: center;
    background: var(--panel);
  }
  #vista-prof .mon-v-positivo  { border-left-color: var(--mon-pos); }
  #vista-prof .mon-v-deterioro { border-left-color: var(--mon-bad); }
  #vista-prof .mon-v-mixto     { border-left-color: var(--accent); }
  #vista-prof .mon-v-neutral   { border-left-color: var(--mon-neu); }
  #vista-prof .mon-verdicto-eyebrow {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 2px; color: var(--ink3); margin-bottom: 8px;
  }
  #vista-prof .mon-verdicto-titulo {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 25px; font-weight: 600; color: var(--ink); line-height: 1.1;
  }
  #vista-prof .mon-verdicto-desc {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 12px; color: var(--ink2); line-height: 1.5; margin-top: 8px;
  }
  #vista-prof .mon-verdicto-din {
    display: flex; align-items: center; gap: 6px; margin-top: 14px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; text-transform: uppercase; letter-spacing: 0.8px;
    color: var(--ink3);
  }
  #vista-prof .mon-din-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--mon-act); }

  #vista-prof .mon-luces {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  }
  #vista-prof .mon-luz {
    display: flex; align-items: center; gap: 11px;
    padding: 13px 18px; background: none; text-align: left;
    border: none; border-bottom: 1px solid var(--border); border-right: 1px solid var(--border);
    transition: background .15s;
  }
  #vista-prof .mon-luz:hover { background: var(--panel); }
  /* Grilla de 2 columnas × 3 filas (6 áreas) */
  #vista-prof .mon-luz:nth-child(even) { border-right: none; }
  #vista-prof .mon-luz:nth-child(5), #vista-prof .mon-luz:nth-child(6) { border-bottom: none; }
  #vista-prof .mon-luz-tag {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 7px; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.5px; color: var(--ink3);
    border: 1px solid var(--border); padding: 0 3px; margin-left: 5px;
    vertical-align: middle;
  }
  #vista-prof .mon-luz-led {
    width: 11px; height: 11px; border-radius: 50%;
    background: var(--mon-c); flex-shrink: 0;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--mon-c) 18%, transparent);
  }
  #vista-prof .mon-luz-body { display: flex; flex-direction: column; gap: 1px; flex: 1; min-width: 0; }
  #vista-prof .mon-luz-area {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 12px; font-weight: 500; color: var(--ink1);
  }
  #vista-prof .mon-luz-estado {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--mon-c); letter-spacing: 0.3px;
  }
  #vista-prof .mon-luz-arrow { font-size: 13px; color: var(--mon-c); }

  /* ── INFORME GENERAL (cards + briefing IA) ─────────────────── */
  #vista-prof .nov-informe-wrap {
    margin-bottom: 28px;
  }

  /* 4 cards horizontales */
  #vista-prof .nov-informe-cards {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 12px; margin-bottom: 16px;
  }
  #vista-prof .nov-area-card {
    border: 1px solid var(--border);
    border-top: 3px solid var(--border);
    background: var(--panel);
    padding: 12px 14px;
    cursor: pointer;
    transition: border-top-color .15s;
  }
  #vista-prof .nov-area-card:hover { border-top-color: var(--accent); }
  #vista-prof .nov-area-header {
    display: flex; align-items: baseline; justify-content: space-between;
    margin-bottom: 10px;
  }
  #vista-prof .nov-area-titulo {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 1.5px; color: var(--ink);
  }
  #vista-prof .nov-area-link {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; color: var(--accent); letter-spacing: 0.5px;
  }
  #vista-prof .nov-area-items { display: flex; flex-direction: column; gap: 6px; }
  #vista-prof .nov-area-item {
    display: flex; justify-content: space-between; align-items: baseline; gap: 8px;
  }
  #vista-prof .nov-area-label {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 10px; color: var(--ink3);
  }
  #vista-prof .nov-area-valor {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px; font-weight: 600; color: var(--ink2);
    white-space: nowrap; text-align: right;
  }
  #vista-prof .nov-trend { font-size: 9px; }
  #vista-prof .nov-trend.trend-up   { color: var(--mon-pos); }
  #vista-prof .nov-trend.trend-down { color: var(--mon-bad); }
  #vista-prof .nov-trend.trend-flat { color: var(--ink3); }

  /* Tarjetas con estado: borde superior por nivel + pill + pie */
  #vista-prof .nov-area-card.mon-card-positivo  { border-top-color: var(--mon-pos); }
  #vista-prof .nov-area-card.mon-card-deterioro { border-top-color: var(--mon-bad); }
  #vista-prof .nov-area-card.mon-card-activo    { border-top-color: var(--mon-act); }
  #vista-prof .nov-area-card.mon-card-neutral   { border-top-color: var(--mon-neu); }
  #vista-prof .nov-area-card:hover { border-top-color: var(--accent); }

  #vista-prof .mon-card-pill {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; font-weight: 600; letter-spacing: 0.3px;
    color: var(--mon-c); white-space: nowrap;
  }
  #vista-prof .mon-card-foot {
    margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--border);
    text-align: right;
  }
  #vista-prof .mon-card-foot .nov-area-link { font-size: 8px; }

  /* Briefing narrado — secundario, de bajo protagonismo */
  #vista-prof .nov-informe-briefing {
    border: 1px solid var(--border);
    border-left: 3px solid var(--border);
    background: var(--panel);
    padding: 16px 20px;
    opacity: 0.95;
  }
  #vista-prof .mon-brief-extra { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; }
  #vista-prof .mon-brief-toggle {
    margin-top: 10px; background: none; border: none;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; font-weight: 600; letter-spacing: 0.5px;
    text-transform: uppercase; color: var(--accent);
  }
  #vista-prof .mon-brief-toggle:hover { text-decoration: underline; }
  #vista-prof .nov-informe-briefing .nov-briefing-eyebrow { color: var(--ink3); }
  #vista-prof .nov-informe-briefing .nov-briefing-lead { font-size: 13px; font-weight: 400; }
  #vista-prof .nov-informe-briefing .nov-briefing-parrafo { font-size: 12px; line-height: 1.65; }

  /* (regla original conservada abajo, sobrescrita por la de arriba) */
  #vista-prof .nov-informe-briefing-legacy {
    border: 1px solid var(--border);
    border-left: 4px solid var(--accent);
    background: var(--bg);
    padding: 20px 24px;
  }
  #vista-prof .nov-briefing-header {
    display: flex; align-items: center; gap: 8px; margin-bottom: 6px;
  }
  #vista-prof .nov-briefing-eyebrow {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 2px; color: var(--accent);
  }
  #vista-prof .nov-briefing-badge {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; font-weight: 700; letter-spacing: 1px;
    color: #fff; background: var(--ink); padding: 1px 5px;
  }
  #vista-prof .nov-briefing-fecha {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3); margin-left: auto;
  }
  #vista-prof .nov-briefing-cuerpo { display: flex; flex-direction: column; gap: 12px; }
  #vista-prof .nov-briefing-parrafo {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 13px; color: var(--ink2); line-height: 1.75; margin: 0;
  }
  #vista-prof .nov-briefing-lead {
    font-size: 14px; font-weight: 500; color: var(--ink);
  }
  #vista-prof .nov-briefing-footer {
    margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--border);
    display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap;
  }
  #vista-prof .nov-briefing-modelo, #vista-prof .nov-briefing-nota {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; color: var(--ink3); letter-spacing: 0.3px;
  }

  /* Separador "Noticias del día" */
  #vista-prof .nov-informe-sep {
    display: flex; align-items: center; gap: 12px;
    margin: 24px 0 16px;
  }
  #vista-prof .nov-informe-sep::before, #vista-prof .nov-informe-sep::after {
    content: ''; flex: 1; height: 1px; background: var(--border);
  }
  #vista-prof .nov-informe-sep-label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; text-transform: uppercase; letter-spacing: 1.5px;
    color: var(--ink3); white-space: nowrap;
  }

  /* columna principal: briefing o resultado de búsqueda */
  #vista-prof #nov-main {
    flex: 1; min-width: 0;
    display: flex; flex-direction: column;
    overflow: hidden;
    background: var(--bg);
  }

  #vista-prof #nov-header {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0;
    flex-shrink: 0;
    gap: 12px;
  }

  #vista-prof #nov-body {
    flex: 1;
    overflow-y: auto;
    display: flex;
    justify-content: center;
    padding: 14px 24px 80px;
  }

  #vista-prof #nov-content-wrap {
    width: 100%;
    max-width: 720px;
  }

  /* Vista completa de Novedades: DOS columnas (feed izq · resumen del período
     der). El contenedor se ensancha SOLO en este modo (clase nov-2col, que pone
     el JS); al filtrar por categoría vuelve a una sola columna angosta. */
  #vista-prof #nov-content-wrap.nov-2col { max-width: 1340px; }
  #vista-prof .nov-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 560px;
    gap: 32px;
    align-items: start;
  }
  #vista-prof .nov-col-feed,
  #vista-prof .nov-col-resumen { min-width: 0; }
  @media (max-width: 1080px) {
    #vista-prof #nov-content-wrap.nov-2col { max-width: 720px; }
    #vista-prof .nov-grid { grid-template-columns: 1fr; gap: 24px; }
  }

  /* "Volver al briefing" — visible solo durante búsqueda/evento */
  #vista-prof .nov-back-btn {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; text-transform: uppercase; letter-spacing: 1px;
    margin: 14px 0 4px 24px;
    padding: 4px 12px;
    border: 1px solid var(--border-s);
    background: transparent;
    color: var(--ink);
    cursor: pointer;
    transition: background .15s;
    margin-right: auto;
  }
  #vista-prof .nov-back-btn:hover { background: rgba(26,24,20,.06); }

  /* ── MASTHEAD EDITORIAL ──────────────────────────────────── */
  #vista-prof #nov-masthead {
    text-align: center;
    margin-bottom: 32px;
  }
  #vista-prof .masthead-eyebrow {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 3px;
    color: var(--ink3);
    margin-bottom: 16px;
  }
  #vista-prof .masthead-title {
    font-family: 'IBM Plex Sans', sans-serif;
    font-weight: 300;
    font-size: 34px;
    line-height: 1.15;
    color: var(--ink);
    letter-spacing: -0.5px;
    margin-bottom: 24px;
  }
  #vista-prof .masthead-rule {
    border-top: 1px solid var(--ink);
    border-bottom: 1px solid var(--ink);
    height: 4px;
    width: 100%;
    margin: 0 auto;
  }

  /* ── PIE EDITORIAL ───────────────────────────────────────── */
  #vista-prof #nov-footer {
    margin-top: 56px;
    padding-bottom: 12px;
  }
  #vista-prof .footer-rule {
    border-top: 1px solid var(--ink);
    height: 1px;
    margin-bottom: 22px;
  }
  #vista-prof .footer-attrib {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 11px;
    line-height: 1.65;
    color: var(--ink3);
    text-align: center;
    margin-bottom: 18px;
    font-style: italic;
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
  }
  #vista-prof .footer-nav {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--ink3);
    text-align: center;
  }
  #vista-prof .footer-link {
    background: transparent;
    border: none;
    padding: 0 4px;
    font-family: inherit;
    font-size: inherit;
    text-transform: inherit;
    letter-spacing: inherit;
    color: var(--ink);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    text-decoration-color: var(--accent);
    transition: color .12s;
  }
  #vista-prof .footer-link:hover { color: var(--accent); }
  #vista-prof .footer-sep { color: var(--ink3); padding: 0 2px; }

  /* ═══════════════════════════════════════════════════════════
     TAB — ACTORES (lista de perfiles)
  ═══════════════════════════════════════════════════════════ */
  #vista-prof #tab-actores { flex-direction: column; }

  /* ── barra de sub-tabs ───────────────────────────────────── */
  #vista-prof #dir-tabs-bar { display: flex; border-bottom: 1px solid var(--border); background: var(--panel); flex-shrink: 0; padding: 0 20px; gap: 0; }
  #vista-prof .dir-tab { height: 36px; padding: 0 18px; background: transparent; border: none; font-family: 'IBM Plex Mono', monospace; font-size: 9px; text-transform: uppercase; letter-spacing: 1.4px; color: var(--ink3); cursor: pointer; border-bottom: 2px solid transparent; transition: color .12s; margin-bottom: -1px; }
  #vista-prof .dir-tab:hover  { color: var(--ink2); }
  #vista-prof .dir-tab.active { color: var(--accent); border-bottom-color: var(--accent); }

  /* ── panes (lista izq + detalle der) ────────────────────── */
  #vista-prof .dir-pane        { flex: 1; display: flex; overflow: hidden; }
  #vista-prof .dir-pane-hidden { display: none !important; }

  /* ── listas y detalles compartidos ──────────────────────── */
  #vista-prof #m-actor-list, #vista-prof #m-inst-list { width: 280px; min-width: 280px; background: var(--panel); border-right: 1px solid var(--border); display: flex; flex-direction: column; }
  #vista-prof #m-actor-detail, #vista-prof #m-inst-detail { flex: 1; overflow-y: auto; min-width: 0; background: var(--bg); }
  /* Cuando muestra el mapa, el overflow debe ser hidden para que el SVG no cause scroll */
  #vista-prof #m-actor-detail.mapa-visible { overflow: hidden; }
  #vista-prof #m-inst-detail { padding: 28px 32px; }

  /* ── items de lista (compartido) ─────────────────────────── */
  #vista-prof .actor-list-item { padding: 11px 16px; border-bottom: 1px solid var(--border); cursor: pointer; transition: background .12s; display: flex; gap: 11px; align-items: center; border-left: 2px solid transparent; }
  #vista-prof .actor-list-item:last-child { border-bottom: none; }
  #vista-prof .actor-list-item:hover { background: rgba(26,24,20,.04); }
  #vista-prof .actor-list-item.active { background: rgba(26,95,214,.06); border-left-color: var(--accent); }
  #vista-prof .ali-avatar { width: 30px; height: 30px; background: rgba(26,95,214,0.10); color: var(--accent); font-family: 'IBM Plex Mono', monospace; font-size: 10px; font-weight: 600; display: flex; align-items: center; justify-content: center; flex-shrink: 0; border-radius: 50%; }
  #vista-prof .ali-info { flex: 1; min-width: 0; overflow: hidden; }
  #vista-prof .ali-nombre { font-size: 12px; font-weight: 500; color: var(--ink); line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  #vista-prof .ali-cargo { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink3); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  #vista-prof .ali-alerta { font-family: 'IBM Plex Mono', monospace; font-size: 8px; color: var(--red); margin-top: 3px; }

  /* ── empty state (compartido entre Novedades, Actores y otros) */
  #vista-prof .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 280px; gap: 0; }
  #vista-prof .empty-wm { font-family: 'IBM Plex Sans', sans-serif; font-size: 22px; font-weight: 600; letter-spacing: 0.18em; color: rgba(26,24,20,0.08); text-transform: uppercase; user-select: none; }
  #vista-prof .empty-div { width: 48px; height: 1px; background: rgba(26,24,20,0.08); margin: 14px 0 12px; }
  #vista-prof .empty-sub { font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 2px; text-transform: uppercase; color: rgba(26,24,20,0.18); }
  #vista-prof .empty-date { font-family: 'IBM Plex Mono', monospace; font-size: 8px; color: rgba(26,24,20,0.12); margin-top: 6px; }
  #vista-prof .empty-txt { font-family: 'IBM Plex Sans', sans-serif; font-size: 16px; font-style: italic; color: var(--ink3); text-align: center; line-height: 1.7; }

  /* ── Directorio: headers de categoría ─────────────────────── */
  #vista-prof .dir-cat-header {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    font-weight: 700;
    text-transform: uppercase; letter-spacing: 1.8px;
    color: var(--ink); padding: 12px 16px 8px;
    background: rgba(26,24,20,0.04);
    border-bottom: 1px solid var(--border);
    border-top: 2px solid var(--accent);
    display: flex; align-items: center; justify-content: space-between;
  }
  #vista-prof .dir-cat-count {
    font-size: 8px; font-weight: 600;
    background: rgba(26,24,20,0.06); color: var(--ink3);
    padding: 1px 6px; border-radius: 8px;
  }

  /* ── Directorio: empty state con estadísticas ─────────────── */
  #vista-prof .dir-empty-state {
    display: flex; flex-direction: column; align-items: center;
    padding: 48px 40px; height: 100%;
  }
  #vista-prof .dir-empty-header {
    text-align: center; margin-bottom: 40px;
  }
  #vista-prof .dir-empty-stats { width: 100%; max-width: 360px; }

  #vista-prof .dir-stat-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
    margin-bottom: 28px;
  }
  #vista-prof .dir-stat-card {
    background: var(--panel); border: 1px solid var(--border);
    border-radius: 6px; padding: 16px; text-align: center;
  }
  #vista-prof .dir-stat-num {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 28px;
    font-weight: 700; color: var(--ink); line-height: 1;
  }
  #vista-prof .dir-stat-alert { color: var(--red); }
  #vista-prof .dir-stat-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    text-transform: uppercase; letter-spacing: 1px;
    color: var(--ink3); margin-top: 6px;
  }

  #vista-prof .dir-stat-section { margin-bottom: 20px; }
  #vista-prof .dir-stat-title {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 1.5px;
    color: var(--ink3); margin-bottom: 8px;
    padding-bottom: 4px; border-bottom: 1px solid var(--border);
  }
  #vista-prof .dir-stat-row {
    display: flex; align-items: center; gap: 8px;
    padding: 4px 0; font-size: 12px; color: var(--ink2);
  }
  #vista-prof .dir-stat-dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--accent); flex-shrink: 0; opacity: 0.5;
  }
  #vista-prof .dir-stat-name { flex: 1; font-family: 'IBM Plex Sans', sans-serif; font-size: 12px; }
  #vista-prof .dir-stat-val {
    font-family: 'IBM Plex Mono', monospace; font-size: 11px;
    font-weight: 600; color: var(--ink);
  }

  /* ── Red de Poder dentro del Directorio ─────────────────── */
  #vista-prof #dir-empty {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
  }

  #vista-prof #dir-mapa-header {
    display: flex;
    align-items: baseline;
    gap: 14px;
    padding: 9px 16px;
    background: var(--panel);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
  }
  #vista-prof .dir-mapa-title {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--ink2);
    font-weight: 600;
  }
  #vista-prof .dir-mapa-hint {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px;
    color: var(--ink3);
    letter-spacing: 0.5px;
  }

  #vista-prof #dir-mapa-body {
    flex: 1;
    display: flex;
    flex-direction: row;
    overflow: hidden;
    min-height: 0;
    position: relative;  /* containing block para #mapa-leyenda y zoom controls */
  }

  /* Botón volver al mapa desde el perfil */
  #vista-prof .dir-volver-mapa {
    padding: 10px 32px 0;
  }
  #vista-prof .dir-volver-mapa button {
    background: transparent;
    border: 1px solid var(--border);
    padding: 5px 12px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--ink3);
    cursor: pointer;
    transition: border-color .12s, color .12s;
  }
  #vista-prof .dir-volver-mapa button:hover {
    border-color: var(--accent);
    color: var(--accent);
  }

  /* Wrapper de perfil dentro del detail panel */
  #vista-prof #dir-actor-profile { padding: 28px 32px; }

  /* profile */
  #vista-prof .pf-name  { font-family: 'IBM Plex Sans', sans-serif; font-size: 24px; font-weight: 600; line-height: 1.18; letter-spacing: -0.3px; color: var(--ink); margin-bottom: 8px; }
  #vista-prof .pf-meta  { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
  #vista-prof .pf-cargo { font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: var(--ink2); }
  #vista-prof .alert-box { border-left: 3px solid var(--red); background: #fdf0f0; padding: 9px 13px; margin-bottom: 18px; }
  #vista-prof .alert-lbl { font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; letter-spacing: 1.5px; color: var(--red); margin-bottom: 3px; }
  #vista-prof .alert-txt { font-size: 12px; color: var(--red); line-height: 1.5; }
  #vista-prof .pf-sec { margin-bottom: 22px; }
  #vista-prof .pf-sec-t { font-family: 'IBM Plex Mono', monospace; font-size: 9px; text-transform: uppercase; letter-spacing: 1.8px; color: var(--ink3); padding-bottom: 6px; margin-bottom: 10px; border-bottom: 1px solid var(--border); }
  #vista-prof .pf-txt { font-size: 13px; line-height: 1.65; color: var(--ink2); }
  #vista-prof .sen-list { list-style: none; }
  #vista-prof .sen-item { font-size: 13px; color: var(--ink2); padding: 4px 0; border-bottom: 1px solid var(--border); display: flex; gap: 9px; line-height: 1.5; }
  #vista-prof .sen-item:last-child { border-bottom: none; }
  #vista-prof .sen-item::before { content: "—"; color: var(--ink3); flex-shrink: 0; font-family: 'IBM Plex Mono', monospace; }
  #vista-prof .decl-item { padding: 10px 0; border-bottom: 1px solid var(--border); }
  #vista-prof .decl-item:last-child { border-bottom: none; }
  #vista-prof .decl-meta { display: flex; gap: 9px; margin-bottom: 4px; flex-wrap: wrap; }
  #vista-prof .decl-fecha, #vista-prof .decl-fuente { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink3); }
  #vista-prof .decl-txt   { font-size: 13px; font-style: italic; color: var(--ink); line-height: 1.55; margin-bottom: 4px; }
  #vista-prof .decl-interp { font-size: 11px; color: var(--ink3); line-height: 1.4; }
  #vista-prof .consist-t { width: 100%; border-collapse: collapse; }
  #vista-prof .consist-t tr { border-bottom: 1px solid var(--border); }
  #vista-prof .consist-t tr:last-child { border-bottom: none; }
  #vista-prof .consist-t td { padding: 6px 4px; font-size: 12px; vertical-align: top; line-height: 1.4; }
  #vista-prof .ct-tema { color: var(--ink); font-weight: 500; width: 32%; }
  #vista-prof .ct-det  { color: var(--ink2); }
  #vista-prof .ct-chk  { width: 26px; text-align: center; }
  #vista-prof .rel-chips { display: flex; flex-wrap: wrap; gap: 6px; }
  #vista-prof .acto-mini { padding: 7px 0; border-bottom: 1px solid var(--border); cursor: pointer; display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
  #vista-prof .acto-mini:last-child { border-bottom: none; }
  #vista-prof .acto-mini:hover .acto-m-t { color: var(--ink); }
  #vista-prof .acto-m-tipo { font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; color: var(--ink3); flex-shrink: 0; }
  #vista-prof .acto-m-num  { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink2); flex-shrink: 0; }
  #vista-prof .acto-m-t    { font-size: 12px; color: var(--ink2); flex: 1; }
  #vista-prof .acto-m-date { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink3); }
  #vista-prof .not-found { font-family: 'IBM Plex Sans', sans-serif; font-size: 15px; font-style: italic; color: var(--ink3); text-align: center; padding: 60px 20px; line-height: 1.8; }
  #vista-prof .not-found strong { font-style: normal; color: var(--ink2); }

  /* right col (noticias) — alias for legacy + new id */
  #vista-prof .noticia-item { padding: 10px 14px; border-bottom: 1px solid var(--border); cursor: pointer; transition: background .12s; }
  #vista-prof .noticia-item:last-child { border-bottom: none; }
  #vista-prof .noticia-item:hover { background: rgba(26,24,20,.04); }
  #vista-prof .n-fuente { font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; letter-spacing: 1.5px; font-weight: 500; margin-bottom: 4px; }
  #vista-prof .n-titulo { font-size: 12px; color: var(--ink); line-height: 1.4; margin-bottom: 3px; }
  #vista-prof .n-fecha  { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink3); }
  #vista-prof .n-empty  { padding: 20px 14px; font-family: 'IBM Plex Sans', sans-serif; font-size: 13px; font-style: italic; color: var(--ink3); text-align: center; line-height: 1.6; }

  /* ═══════════════════════════════════════════════════════════
     TAB 2 — BOLETÍN OFICIAL
  ═══════════════════════════════════════════════════════════ */
  #vista-prof #tab-boletin { flex-direction: column; }

  /* Banner "Hoy en el Boletín" — eliminado; ahora se integra al dashboard
     inicial como sección "Lo más reciente" (ver .bol-reciente-box) */

  /* Cuerpo del tab (lista + detalle) */
  #vista-prof #bol-body {
    flex: 1; display: flex; flex-direction: row; overflow: hidden; padding: 14px 16px; gap: 14px;
  }

  #vista-prof #bol-left { width: 520px; min-width: 520px; background: var(--panel); border: 1px solid var(--border); border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; }
  #vista-prof .bol-search-wrap { padding: 10px 14px 0; flex-shrink: 0; }
  #vista-prof .bol-search-input { width: 100%; font-family: 'IBM Plex Sans', sans-serif; font-size: 11px; padding: 7px 10px; border: 1px solid var(--border); background: var(--bg); color: var(--ink); border-radius: 4px; outline: none; transition: border-color .15s; box-sizing: border-box; }
  #vista-prof .bol-search-input:focus { border-color: var(--accent); }
  #vista-prof .bol-search-input::placeholder { color: var(--ink3); }

  #vista-prof .bol-filters {
    padding: 10px 14px; border-bottom: 1px solid var(--border);
    display: flex; gap: 4px; flex-wrap: nowrap; flex-shrink: 0;
  }
  #vista-prof .bol-filter {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; text-transform: uppercase; letter-spacing: 0.8px;
    padding: 3px 7px; border: 1px solid var(--border);
    background: transparent; color: var(--ink3);
    cursor: pointer; transition: all .12s;
    white-space: nowrap; flex-shrink: 1;
  }
  #vista-prof .bol-filter:hover  { border-color: var(--accent); color: var(--accent); }
  #vista-prof .bol-filter.active { border-color: var(--accent); background: var(--accent); color: #fff; }
  /* Botón "Prioritarios" — destacado en estado inactivo también, para invitar
     al click. Cuando está activo (default) usa el mismo estilo .active. */
  #vista-prof .bol-filter-prio:not(.active) {
    border-color: rgba(26,95,214,0.4);
    color: var(--accent);
    background: rgba(26,95,214,0.06);
  }

  /* Cards de la lista — alineadas con .cong-feed-item del Congreso:
     padding/margin consistentes, border-radius sutil, hover idéntico. */
  #vista-prof .bol-item {
    padding: 10px 14px;
    margin: 4px 6px;
    border-radius: 8px;
    cursor: pointer;
    transition: all .12s;
    border-left: 3px solid transparent;
    background: var(--bg);
    border: 0.5px solid var(--border);
  }
  #vista-prof .bol-item:hover { background: rgba(26,24,20,.03); border-color: var(--border-s); }
  #vista-prof .bol-item.active {
    background: rgba(26,24,20,.05);
    border-left-color: var(--accent);
    border-color: var(--accent);
  }

  /* Chip de tipo de acto (DECRETO / LEY / RESOLUCIÓN / etc.)
     Estilo pill que matchea el lenguaje visual de los .fi-tag del Congreso:
     fondo color pastel, texto saturado del mismo tono, sin borde. */
  #vista-prof .bol-tipo-chip {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; padding: 2px 7px; border-radius: 6px;
    text-transform: uppercase; letter-spacing: 0.5px;
    display: inline-block; vertical-align: middle;
    white-space: nowrap; border: none;
  }
  /* Chips de tipo: pastel con borde fino (se ven sobre el fondo durazno de las
     cards prioritarias). Decreto = coral (sin amarillo). */
  #vista-prof .bol-tipo-chip.tipo-decreto    { background: #F5C4B3; color: #7A2E15; border: 1px solid #D98060; } /* coral */
  #vista-prof .bol-tipo-chip.tipo-ley        { background: #EAF3DE; color: #3B6D11; border: 1px solid #B9D68F; } /* verde pastel */
  #vista-prof .bol-tipo-chip.tipo-resolucion { background: #EEEDFE; color: #534AB7; border: 1px solid #B3AEEA; } /* violeta */
  #vista-prof .bol-tipo-chip.tipo-resgen     { background: #FCEBEB; color: #A32D2D; border: 1px solid #E88C8C; } /* rojo */
  #vista-prof .bol-tipo-chip.tipo-conjunta   { background: #E6F1FB; color: #185FA5; border: 1px solid #9FC3EA; } /* azul */
  #vista-prof .bol-tipo-chip.tipo-otro       { background: #F2F6FB; color: #5F5E5A; border: 1px solid #CFCDC4; } /* gris */

  #vista-prof .bi-top {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 5px; flex-wrap: wrap;
  }
  #vista-prof .bi-num    { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink3); letter-spacing: 0.3px; }
  #vista-prof .bi-titulo { font-size: 12px; color: var(--ink); line-height: 1.35; margin: 2px 0 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  /* Bajada explicativa: solo en cards expandidas (filtro = prioritarios).
     Sacada del primer párrafo del extracto del acto. */
  #vista-prof .bi-bajada {
    font-size: 11px; line-height: 1.45;
    color: var(--ink2);
    margin-top: 5px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  #vista-prof .bi-fecha  { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink3); }
  #vista-prof .bi-dot    { display: inline-block; width: 5px; height: 5px; background: var(--accent); border-radius: 50%; margin-right: 4px; vertical-align: middle; }
  #vista-prof .bi-relevante {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    letter-spacing: 0.8px; padding: 1px 5px;
    border: 1px solid #1a5a4a; color: #1a5a4a;
    background: rgba(26,90,74,0.05);
  }
  /* Chip "Prioritario" — actos con peso político.
     Estilo pill, fondo durazno, texto naranja oscuro — matchea la paleta
     de los chips "CLAVE" del Congreso pero en naranja (no rojo) para
     mantener la identidad del proyecto.
     Reglas en js/boletin.js → _esPrioritario(). */
  /* Chip "Nuevo": actos de la última edición publicada del BO (jul 2026).
     Naranja de marca, discreto, mismo lenguaje que los otros chips de la card. */
  #vista-prof .bi-nuevo {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; padding: 2px 7px; border-radius: 6px;
    background: transparent; color: var(--accent);
    border: 1px solid var(--accent);
    text-transform: uppercase; letter-spacing: 0.5px;
  }
  #vista-prof .bi-prioritario {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; padding: 2px 7px; border-radius: 6px;
    background: #FAEEDA; color: #A04210;
    text-transform: uppercase; letter-spacing: 0.5px;
    border: none;
  }
  /* Card prioritaria — usa el mismo lenguaje visual que .cong-feed-item.feed-clave
     del Congreso: fondo durazno claro, borde izquierdo naranja prominente. */
  #vista-prof .bol-item.is-prioritario {
    background: #FAEEDA;
    border-left: 3px solid #EF9F27;
    border-color: rgba(239,159,39,0.25);
  }
  #vista-prof .bol-item.is-prioritario:hover {
    background: #F5D9B0;
    border-color: rgba(239,159,39,0.4);
  }
  #vista-prof .bol-item.is-prioritario.active {
    background: #F0CC8E;
    border-left-color: #BA7517;
    border-color: #BA7517;
  }
  #vista-prof .bol-item.is-prioritario .bi-titulo { color: #412402; }
  #vista-prof .bol-item.is-prioritario .bi-num { color: #854F0B; }

  #vista-prof #bol-right { flex: 1; overflow-y: auto; padding: 0 28px 24px; position: relative; }
  #vista-prof #bol-empty { display: block; }

  /* Panel inicial del BO — usa las clases .feed-resumen-* del Congreso
     para estética consistente. Sólo agregamos el bloque "Lo más reciente"
     que es específico del BO (reemplaza al banner viejo). */

  /* Las labels "Decretos / Leyes / Resoluciones" del dashboard del BO van
     en title case (no en MAYÚSCULAS). Override scoped a #bol-empty para
     no afectar a las labels del Congreso. */
  #vista-prof #bol-empty .feed-resumen-stat-lbl {
    text-transform: none;
    letter-spacing: 0.2px;
    font-size: 10px;
    color: var(--ink2);
  }
  #vista-prof .bol-reciente-box {
    background: var(--bg);
    border: 1px solid var(--border);
    border-left: 3px solid var(--accent);
    padding: 12px 14px;
    margin: 0 0 20px;
  }
  #vista-prof .bol-reciente-lbl {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; letter-spacing: 1.8px;
    text-transform: uppercase;
    color: var(--ink3);
    margin-bottom: 6px;
  }
  #vista-prof .bol-reciente-titulo {
    display: block;
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 13px; line-height: 1.4;
    color: var(--ink);
    text-decoration: none;
  }
  #vista-prof .bol-reciente-titulo:hover { color: var(--accent); }
  #vista-prof .bol-d-head   { margin-bottom: 18px; }
  #vista-prof .bol-d-tipo   { font-family: 'IBM Plex Mono', monospace; font-size: 9px; text-transform: uppercase; letter-spacing: 1.5px; color: var(--ink3); margin-bottom: 5px; }
  #vista-prof .bol-d-titulo { font-family: 'IBM Plex Sans', sans-serif; font-size: 20px; font-weight: 600; line-height: 1.2; margin-bottom: 8px; }
  #vista-prof .bol-d-fecha  { font-family: 'IBM Plex Mono', monospace; font-size: 10px; color: var(--ink3); margin-bottom: 6px; }
  #vista-prof .bol-ext      { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink2); }
  #vista-prof .bol-ext:hover { color: var(--ink); }
  #vista-prof .bol-bloque { margin-bottom: 22px; }
  #vista-prof .bol-bloque-t { font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; letter-spacing: 2px; color: var(--ink3); border-bottom: 1px solid var(--border); padding-bottom: 4px; margin-bottom: 11px; }
  #vista-prof .ai-section { background: rgba(26,90,74,0.03); border-left: 2px solid rgba(26,90,74,0.15); padding-left: 14px; }

  /* Noticias AI badges */
  #vista-prof .noticia-item { border-bottom: 1px solid var(--border); padding: 10px 0; cursor: pointer; }
  #vista-prof .noticia-item:hover { background: rgba(26,24,20,0.03); }
  #vista-prof .noticia-item:last-child { border-bottom: none; }
  #vista-prof .n-badge-cobertura { display: inline-block; font-family: 'IBM Plex Mono', monospace; font-size: 8px; letter-spacing: 1px; padding: 1px 6px; border: 1px solid #1a5a4a; color: #1a5a4a; background: #f0faf6; margin-left: 6px; text-transform: uppercase; vertical-align: middle; }
  #vista-prof .n-badge-intl { display: inline-block; font-family: 'IBM Plex Mono', monospace; font-size: 8px; letter-spacing: 1px; padding: 1px 6px; border: 1px solid var(--ink3); color: var(--ink3); margin-left: 6px; text-transform: uppercase; vertical-align: middle; }
  #vista-prof .n-separator { text-align: center; padding: 16px 0 10px; margin: 8px 0 4px; position: relative; }
  #vista-prof .n-separator::before { content: ''; position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: var(--border-s); opacity: .25; }
  #vista-prof .n-separator span { position: relative; z-index: 1; font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; letter-spacing: 3px; color: var(--ink2); background: var(--panel); padding: 2px 12px; border: 1px solid var(--border); }
  #vista-prof .bol-txt { font-size: 13px; line-height: 1.7; color: var(--ink2); }
  /* actor mini card */
  #vista-prof .actor-card { display: flex; gap: 14px; align-items: flex-start; padding: 14px; border: 1px solid var(--border); background: var(--bg); }
  #vista-prof .ac-avatar  { width: 42px; height: 42px; background: var(--ink); color: var(--bg); font-family: 'IBM Plex Sans', sans-serif; font-size: 14px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  #vista-prof .ac-nombre  { font-family: 'IBM Plex Sans', sans-serif; font-size: 16px; font-weight: 600; margin-bottom: 3px; }
  #vista-prof .ac-cargo   { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink2); margin-bottom: 5px; }
  #vista-prof .ac-chips   { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 5px; }
  #vista-prof .ac-alert   { font-size: 11px; color: var(--red); margin: 4px 0; }
  #vista-prof .ac-btn     { display: inline-block; margin-top: 8px; font-family: 'IBM Plex Mono', monospace; font-size: 9px; text-transform: uppercase; letter-spacing: 1px; padding: 4px 10px; border: 1px solid var(--accent); background: transparent; color: var(--accent); cursor: pointer; transition: all .12s; }
  #vista-prof .ac-btn:hover { background: var(--accent); color: #fff; }
  /* co-firmantes */
  #vista-prof .cofirm-chips { display: flex; flex-wrap: wrap; gap: 6px; }
  /* actos relacionados */
  #vista-prof .rel-acto { padding: 8px 0; border-bottom: 1px solid var(--border); cursor: pointer; }
  #vista-prof .rel-acto:last-child { border-bottom: none; }
  #vista-prof .rel-acto:hover .ra-titulo { color: var(--ink); }
  #vista-prof .ra-tipo   { font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; color: var(--ink3); }
  #vista-prof .ra-titulo { font-size: 12px; color: var(--ink2); margin: 2px 0; line-height: 1.35; }
  #vista-prof .ra-fecha  { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink3); }
  /* votacion */
  #vista-prof .vot-table { width: 100%; border-collapse: collapse; font-size: 12px; }
  #vista-prof .vot-table th { font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; letter-spacing: 1px; color: var(--ink3); padding: 4px 8px; text-align: left; border-bottom: 1px solid var(--border); }
  #vista-prof .vot-table td { padding: 5px 8px; border-bottom: 1px solid var(--border); color: var(--ink2); }
  #vista-prof .vot-favor  { color: #1a6a1a; }
  #vista-prof .vot-contra { color: var(--red); }

  /* ═══════════════════════════════════════════════════════════
     TAB 4 — CONGRESO (Proyectos en tratamiento)
  ═══════════════════════════════════════════════════════════ */
  #vista-prof #tab-congreso { flex-direction: column; }

  /* congreso sub-tab bar con identidad visual */
  #vista-prof #cong-tabs-bar { display: flex; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; background: var(--panel); flex-shrink: 0; padding: 0 6px; gap: 0; margin: 14px 16px 0; }
  #vista-prof .cong-tab { height: 36px; padding: 0 18px; background: transparent; border: none; font-family: 'IBM Plex Mono', monospace; font-size: 10px; text-transform: uppercase; letter-spacing: 1px; color: var(--ink3); cursor: pointer; border-bottom: 3px solid transparent; transition: all .15s; margin-bottom: 0; display: flex; align-items: center; gap: 6px; }
  #vista-prof .cong-tab:hover  { color: var(--ink1); background: rgba(26,24,20,.02); }
  #vista-prof .cong-tab.active { font-weight: 500; }
  #vista-prof .ctab-icon { font-size: 8px; }

  /* Estado activo unificado en naranja de marca (antes: azul Diputados, púrpura Senado) */
  #vista-prof .cong-tab[data-ctab="actividad"].active { color: var(--accent); border-bottom-color: var(--accent); }
  #vista-prof .cong-tab-dip.active { color: var(--accent); border-bottom-color: var(--accent); }
  #vista-prof .cong-tab-sen.active { color: var(--accent); border-bottom-color: var(--accent); }

  /* congreso body — feed layout */
  #vista-prof #cong-body { flex: 1; overflow: hidden; display: flex; }
  #vista-prof .cong-feed-layout { display: flex; flex-direction: row; }
  #vista-prof .cong-pane { display: none; flex: 1; overflow: hidden; }
  #vista-prof .cong-pane.active { display: flex; flex-direction: row; padding: 14px 16px; gap: 14px; }

  /* feed column */
  #vista-prof .cong-feed-col { width: 340px; min-width: 280px; max-width: 400px; display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; background: var(--panel); }
  #vista-prof .cong-feed-filters { padding: 8px 12px; border-bottom: 1px solid var(--border); display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
  #vista-prof .cong-filter { font-family: 'IBM Plex Mono', monospace; font-size: 10px; padding: 3px 8px; border: 1px solid var(--border); background: transparent; color: var(--ink2); cursor: pointer; transition: all .15s; }
  #vista-prof .cong-filter:hover { border-color: var(--accent); color: var(--accent); }
  #vista-prof .cong-filter.active { background: var(--accent); color: #fff; border-color: var(--accent); }
  #vista-prof .cong-filter-sep { color: var(--ink3); font-size: 10px; margin: 0 2px; }
  #vista-prof .cong-feed-search { font-family: 'IBM Plex Sans', sans-serif; font-size: 11px; padding: 3px 8px; border: 1px solid var(--border); border-radius: 4px; background: var(--bg); color: var(--ink1); width: 100%; margin-top: 4px; }

  /* feed items */
  #vista-prof .cong-feed-item { padding: 10px 14px; margin: 4px 6px; border-radius: 8px; cursor: pointer; transition: all .12s; border-left: 3px solid transparent; background: var(--bg); border: 0.5px solid var(--border); }
  #vista-prof .cong-feed-item:hover { background: rgba(26,24,20,.03); border-color: var(--border-s); }
  #vista-prof .cong-feed-item.active { background: rgba(26,24,20,.05); border-left-color: var(--accent); border-color: var(--accent); }
  #vista-prof .cong-feed-item .fi-title { font-size: 12px; font-weight: 500; color: var(--ink1); line-height: 1.4; margin-bottom: 3px; }
  #vista-prof .cong-feed-item .fi-meta { font-size: 10px; color: var(--ink3); display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
  #vista-prof .cong-feed-item .fi-tag { font-family: 'IBM Plex Mono', monospace; font-size: 9px; padding: 2px 7px; border-radius: 6px; text-transform: uppercase; letter-spacing: 0.5px; }
  #vista-prof .fi-tag-dip { background: #E6F1FB; color: #185FA5; }
  #vista-prof .fi-tag-sen { background: #EEEDFE; color: #534AB7; }
  #vista-prof .fi-tag-votacion { background: #EAF3DE; color: #3B6D11; }
  #vista-prof .fi-tag-comision { background: #FAEEDA; color: #854F0B; }
  #vista-prof .fi-tag-od { background: #F2F6FB; color: #5F5E5A; }
  #vista-prof .fi-tag-tramite { background: #F2F6FB; color: #5F5E5A; }

  /* ── Feed: cards con jerarquía visual ── */
  #vista-prof .cong-feed-item.feed-clave {
    border-left: 3px solid #EF9F27;
    background: #FAEEDA;
    padding: 12px 14px;
    border-radius: 8px;
  }
  #vista-prof .cong-feed-item.feed-clave:hover { background: #F5D9B0; }
  #vista-prof .cong-feed-item.feed-clave.active { background: #F0CC8E; border-left-color: #BA7517; }
  #vista-prof .cong-feed-item.feed-clave .fi-title { font-size: 13px; color: #412402; }
  #vista-prof .cong-feed-item.feed-clave .fi-meta { color: #854F0B; }
  #vista-prof .cong-feed-item.feed-clave .fi-resultado {
    font-size: 11px; font-weight: 500; margin-top: 3px;
  }
  #vista-prof .fi-badge-clave {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; padding: 2px 7px; border-radius: 6px;
    background: #FCEBEB; color: #A32D2D;
    text-transform: uppercase; letter-spacing: 0.5px;
  }
  #vista-prof .fi-badge-relevante {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; padding: 2px 7px; border-radius: 6px;
    background: #FAEEDA; color: #854F0B;
    text-transform: uppercase; letter-spacing: 0.5px;
  }

  /* ── Panel derecho: resumen del período como estado default ── */
  #vista-prof .feed-resumen-panel { padding: 20px 24px; }
  #vista-prof .feed-resumen-header {
    display: flex; align-items: baseline; gap: 8px;
    margin-bottom: 16px;
  }
  #vista-prof .feed-resumen-header .ai-badge,
  #vista-prof .pf-sec-t .ai-badge {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; font-weight: 700;
    padding: 2px 6px; border-radius: 4px;
    border: 1px solid var(--accent);
    color: var(--accent); background: transparent;
    letter-spacing: 0.5px;
    position: relative; top: -1px;
  }
  #vista-prof .feed-resumen-titulo {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 11px; font-weight: 600; color: var(--ink1);
    text-transform: uppercase; letter-spacing: 1.5px;
  }
  #vista-prof .feed-resumen-section {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; text-transform: uppercase;
    letter-spacing: 1px; color: var(--ink3);
    margin: 14px 0 6px; padding-bottom: 4px;
    border-bottom: 1px dashed var(--border);
  }
  #vista-prof .feed-resumen-text {
    font-size: 13px; line-height: 1.65; color: var(--ink1);
    margin-bottom: 8px;
  }
  /* Lectura del día estructurada (apertura + subtítulos + viñetas) */
  #vista-prof .mon-lectura-lead {
    font-size: 14.5px; line-height: 1.5; font-weight: 500; color: var(--ink1);
    margin: 4px 0 14px; padding-bottom: 14px; border-bottom: 1px solid var(--border);
  }
  #vista-prof .mon-lectura-sub {
    font-size: 11.5px; letter-spacing: 0.5px; text-transform: uppercase;
    font-weight: 600; color: var(--accent); margin: 16px 0 6px;
  }
  #vista-prof .mon-lectura-list { list-style: none; margin: 6px 0 4px; padding: 0; }
  #vista-prof .mon-lectura-list li {
    position: relative; padding-left: 18px; margin-bottom: 7px;
    font-size: 13px; line-height: 1.5; color: var(--ink1);
  }
  #vista-prof .mon-lectura-list li::before {
    content: "→"; position: absolute; left: 0; color: var(--accent);
  }
  #vista-prof .mon-lectura-box {
    background: var(--panel); border-radius: 10px;
    padding: 13px 15px; margin-top: 16px;
  }
  #vista-prof .mon-lectura-box-lbl {
    font-size: 11.5px; letter-spacing: 0.5px; text-transform: uppercase;
    font-weight: 600; color: var(--ink3); margin-bottom: 9px;
  }
  #vista-prof .mon-lectura-box .mon-lectura-list { margin: 0; }
  #vista-prof .mon-lectura-box .mon-lectura-list li:last-child { margin-bottom: 0; }
  #vista-prof .feed-resumen-stats {
    display: flex; gap: 12px; flex-wrap: wrap;
    margin-top: 16px; padding-top: 14px;
    border-top: 1px solid var(--border);
  }
  #vista-prof .feed-resumen-stat {
    flex: 1; min-width: 80px;
    padding: 10px 12px;
    background: var(--bg2); border-radius: 6px;
    text-align: center;
  }
  #vista-prof .feed-resumen-stat-val {
    font-size: 20px; font-weight: 600; color: var(--accent);
    font-family: 'IBM Plex Mono', monospace;
  }
  #vista-prof .feed-resumen-stat-lbl {
    font-size: 9px; color: var(--ink3);
    text-transform: uppercase; letter-spacing: 0.5px;
    margin-top: 2px;
  }

  /* ── Indicador central: éxito del oficialismo ── */
  #vista-prof .feed-saldo-box {
    margin: 18px 0 6px;
    padding: 16px 20px;
    background: var(--bg2);
    border-radius: 8px;
    border: 1px solid var(--border);
    text-align: center;
  }
  #vista-prof .feed-saldo-val {
    font-size: 34px; font-weight: 600;
    color: var(--accent);
    font-family: 'IBM Plex Sans', sans-serif;
    line-height: 1;
    letter-spacing: -0.5px;
  }
  #vista-prof .feed-saldo-lbl {
    font-size: 11px; color: var(--ink2);
    margin-top: 4px;
    display: inline-flex; align-items: center; gap: 5px;
  }
  #vista-prof .feed-saldo-help {
    position: relative; display: inline-block;
  }
  #vista-prof .feed-saldo-help-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 15px; height: 15px; border-radius: 50%;
    border: 1px solid var(--border-s);
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3);
    cursor: help; user-select: none;
    transition: border-color .15s;
  }
  #vista-prof .feed-saldo-help-icon:hover { border-color: var(--accent); color: var(--accent); }
  #vista-prof .feed-saldo-tooltip {
    display: none;
    position: absolute;
    bottom: calc(100% + 8px); left: 50%;
    transform: translateX(-50%);
    width: 240px;
    padding: 10px 12px;
    background: var(--ink1);
    color: var(--bg);
    font-size: 11px; line-height: 1.5;
    border-radius: 6px;
    z-index: 20;
    pointer-events: none;
    text-align: left;
  }
  #vista-prof .feed-saldo-tooltip::after {
    content: '';
    position: absolute;
    top: 100%; left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: var(--ink1);
  }
  #vista-prof .feed-saldo-help:hover .feed-saldo-tooltip { display: block; }
  /* Sub-texto debajo del big number ("X prioritarios · Y administrativos") */
  #vista-prof .feed-saldo-sub {
    margin-top: 8px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; letter-spacing: 0.6px;
    color: var(--ink3);
    text-align: center;
    display: flex; align-items: center; justify-content: center; gap: 6px;
  }
  #vista-prof .feed-saldo-prio-dot {
    display: inline-block;
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--accent);
  }
  #vista-prof .fi-tag-tramite { background: #E1F5EE; color: #0F6E56; }
  #vista-prof .fi-result-ok { color: #1D9E75; font-weight: 500; }
  #vista-prof .fi-result-no { color: #E24B4A; font-weight: 500; }

  /* comisiones activas section */
  #vista-prof .cong-comisiones-section { border-top: 1px solid var(--border); margin-top: 8px; }
  #vista-prof .cong-comisiones-header { padding: 10px 14px; cursor: pointer; display: flex; align-items: center; justify-content: space-between; user-select: none; }
  #vista-prof .cong-comisiones-header:hover { background: rgba(26,24,20,.03); }
  #vista-prof .cong-com-caret { font-size: 10px; color: var(--ink3); transition: transform .2s; }
  #vista-prof .cong-comisiones-open .cong-com-caret { transform: rotate(180deg); }
  #vista-prof .cong-comisiones-body { padding: 0 14px 12px; }
  #vista-prof .cong-com-chip { display: inline-block; font-size: 11px; padding: 4px 10px; border-radius: 4px; border: 1px solid var(--border); margin: 2px; cursor: pointer; transition: all .15s; background: var(--bg); }
  #vista-prof .cong-com-chip:hover { border-color: var(--accent); color: var(--accent); }
  #vista-prof .cong-com-chip .com-chip-cam { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink3); margin-left: 4px; }

  /* detalle column */
  /* Sin padding superior: la primera card arranca a la misma altura que la
     columna del feed (pedido de Fran, jul 2026). En layouts apilados (mobile)
     las media queries restauran su propio padding. */
  #vista-prof .cong-detalle-col { flex: 1; overflow-y: auto; padding: 0 24px 20px; position: relative; }

  /* left panel — proyecto list */
  #vista-prof #proy-left { width: 240px; min-width: 240px; background: var(--panel); border-right: 1px solid var(--border); display: flex; flex-direction: column; }

  /* proyecto list items */
  #vista-prof .proy-item { padding: 11px 14px; border-bottom: 1px solid var(--border); cursor: pointer; transition: background .12s; border-left: 2px solid transparent; }
  #vista-prof .proy-item:last-child { border-bottom: none; }
  #vista-prof .proy-item:hover { background: rgba(26,24,20,.04); }
  #vista-prof .proy-item.active { border-left-color: var(--ink); background: var(--bg); }

  /* Cards prioritarias en Diputados / Senado — mismo lenguaje visual que .cong-feed-item.feed-clave */
  #vista-prof .proy-item.proy-item-clave {
    background: #FAEEDA;
    border-left: 3px solid #EF9F27;
  }
  #vista-prof .proy-item.proy-item-clave:hover { background: #F5D9B0; }
  #vista-prof .proy-item.proy-item-clave.active { background: #F0CC8E; border-left-color: #BA7517; }
  #vista-prof .proy-item.proy-item-clave .pi-titulo { color: #412402; }
  #vista-prof .proy-item.proy-item-clave .pi-tema { color: #854F0B; }
  #vista-prof .proy-item.proy-item-relevante {
    border-left: 3px solid #DDB37A;
    background: #FCF6EC;
  }
  #vista-prof .proy-item.proy-item-relevante:hover { background: #F8EBD4; }
  #vista-prof .proy-item.proy-item-relevante.active { background: #F0CC8E; border-left-color: #BA7517; }
  #vista-prof .pi-tema { font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; letter-spacing: 1.2px; color: var(--ink3); margin-bottom: 3px; }
  #vista-prof .pi-titulo { font-size: 12px; color: var(--ink); line-height: 1.35; margin-bottom: 5px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  #vista-prof .pi-meta { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
  #vista-prof .pi-camara { font-family: 'IBM Plex Mono', monospace; font-size: 8px; color: var(--ink3); }
  #vista-prof .pi-resumen { font-size: 10px; color: var(--ink2); line-height: 1.4; margin-top: 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

  /* probability badges */
  #vista-prof .prob-alta  { font-family: 'IBM Plex Mono', monospace; font-size: 8px; padding: 2px 7px; border-radius: 6px; border: 1px solid #1a5a4a; color: #1a5a4a; background: #f0faf6; text-transform: uppercase; letter-spacing: 0.5px; display: inline-block; }
  #vista-prof .prob-media { font-family: 'IBM Plex Mono', monospace; font-size: 8px; padding: 2px 7px; border-radius: 6px; border: 1px solid #8a6a20; color: #8a6a20; background: #fdf7e8; text-transform: uppercase; letter-spacing: 0.5px; display: inline-block; }
  #vista-prof .prob-baja  { font-family: 'IBM Plex Mono', monospace; font-size: 8px; padding: 2px 7px; border-radius: 6px; border: 1px solid #8a2020; color: #8a2020; background: #fdf0f0; text-transform: uppercase; letter-spacing: 0.5px; display: inline-block; }

  /* right panel — proyecto detail */
  #vista-prof #proy-right { flex: 1; overflow-y: auto; padding: 24px 28px; }
  #vista-prof .proy-breadcrumb { font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; letter-spacing: 1.5px; color: var(--ink3); margin-bottom: 10px; }
  #vista-prof .proy-titulo { font-family: 'IBM Plex Sans', sans-serif; font-size: 20px; font-weight: 600; line-height: 1.2; margin-bottom: 10px; }
  #vista-prof .proy-meta-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
  #vista-prof .proy-exp { font-family: 'IBM Plex Mono', monospace; font-size: 10px; color: var(--ink2); }

  /* estimation box */
  #vista-prof .proy-estim { background: var(--panel); border: 1px solid var(--border); padding: 10px 12px; margin-bottom: 20px; }
  #vista-prof .proy-estim-lbl { font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; letter-spacing: 1.5px; color: var(--ink3); margin-bottom: 4px; }
  #vista-prof .proy-estim-val { font-size: 13px; font-weight: 500; margin-bottom: 3px; }
  #vista-prof .proy-estim-razon { font-size: 11px; color: var(--ink2); line-height: 1.5; }

  /* ═══════════════════════════════════════════════════════════
     TAB — AMBA (mapa geográfico — Leaflet + CartoDB Positron)
  ═══════════════════════════════════════════════════════════ */
  #vista-prof #tab-amba {
    flex-direction: row;
    position: relative;
    padding: 14px;
    gap: 12px;
    background: var(--bg);
  }
  #vista-prof #amba-canvas {
    flex: 1;
    overflow: hidden;
    position: relative;
    min-height: 400px;
    border: 1px solid var(--border);
    background: var(--bg);
    box-shadow: 0 1px 3px rgba(17,17,17,0.05);
  }

  /* Override de Leaflet: tipografía y fondo coherentes con ARIA */
  #vista-prof #amba-canvas .leaflet-container {
    background: var(--bg);
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 12px;
    outline: none;
  }
  #vista-prof #amba-canvas .leaflet-control-attribution {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    background: rgba(250,249,245,0.88);
    color: var(--ink3);
    padding: 2px 6px;
  }
  #vista-prof #amba-canvas .leaflet-control-attribution a { color: var(--ink2); }
  #vista-prof #amba-canvas .leaflet-control-zoom a {
    background: var(--bg);
    color: var(--ink);
    border-color: var(--border);
    font-family: 'IBM Plex Sans', sans-serif;
  }
  #vista-prof #amba-canvas .leaflet-control-zoom a:hover { background: var(--panel); }

  /* Tooltip al pasar el mouse — estilo editorial */
  #vista-prof .leaflet-tooltip.amba-tip {
    background: rgba(17,17,17,0.92);
    border: none;
    color: #fff;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 4px 8px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.2);
  }
  #vista-prof .leaflet-tooltip.amba-tip::before { display: none; }

  /* Etiquetas permanentes — tooltips nativos de Leaflet */
  #vista-prof .leaflet-tooltip.amba-label-tt {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 0;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8.5px;
    color: rgba(17,17,17,0.82);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-shadow:
      -1px -1px 0 rgba(255,255,255,0.9),
       1px -1px 0 rgba(255,255,255,0.9),
      -1px  1px 0 rgba(255,255,255,0.9),
       1px  1px 0 rgba(255,255,255,0.9),
       0    0    4px rgba(255,255,255,0.9);
    white-space: nowrap;
    pointer-events: none;
  }
  #vista-prof .leaflet-tooltip.amba-label-tt::before { display: none; }
  #vista-prof .leaflet-tooltip.amba-label-tt-caba {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2.5px;
    color: rgba(17,17,17,0.5);
  }

  /* Panel lateral — empuja el mapa (no lo tapa) */
  #vista-prof #amba-panel {
    position: relative;
    flex: 0 0 340px;
    width: 340px;
    height: 100%;
    background: var(--panel);
    border: 1px solid var(--border);
    overflow-y: auto;
    padding: 22px 20px 24px;
    box-shadow: 0 1px 3px rgba(17,17,17,0.05);
    transition: flex-basis 0.25s ease, width 0.25s ease, opacity 0.2s ease, padding 0.25s ease;
  }
  #vista-prof .amba-panel-hidden {
    flex: 0 0 0 !important;
    width: 0 !important;
    opacity: 0 !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    pointer-events: none;
    overflow: hidden !important;
  }
  #vista-prof .amba-panel-close { position: absolute; top: 10px; right: 12px; background: transparent; border: none; font-size: 18px; color: var(--ink3); cursor: pointer; line-height: 1; z-index: 2; }
  #vista-prof .amba-panel-close:hover { color: var(--ink); }

  /* Ajustes tipográficos específicos del panel AMBA — el ancho es menor
     que el del Mapa Político, así que reducimos la jerarquía un poco. */
  #vista-prof #amba-panel .mp-header { gap: 12px; padding-bottom: 14px; margin-bottom: 16px; }
  #vista-prof #amba-panel .mp-avatar { width: 38px; height: 38px; font-size: 13px; }
  #vista-prof #amba-panel .mp-name { font-size: 16px; line-height: 1.2; margin-bottom: 3px; }
  #vista-prof #amba-panel .mp-sub { font-size: 8.5px; margin-bottom: 6px; }
  #vista-prof #amba-panel .mp-cluster-pill { font-size: 8px; padding: 2px 6px; letter-spacing: 1.2px; }
  #vista-prof #amba-panel .mp-section { margin-bottom: 16px; }
  #vista-prof #amba-panel .mp-section-title { font-size: 8.5px; margin-bottom: 8px; padding-bottom: 5px; }
  #vista-prof #amba-panel .mp-descripcion { font-size: 12px; line-height: 1.45; }
  #vista-prof #amba-panel .mp-cta { font-size: 9px; padding: 8px 10px; margin-top: 6px; }

  /* Concejales / bancas */
  #vista-prof .amba-concejales { display: flex; flex-direction: column; gap: 7px; margin-top: 4px; }
  #vista-prof .amba-conc-row { display: flex; align-items: center; gap: 7px; }
  #vista-prof .amba-conc-partido { font-family: 'IBM Plex Mono', monospace; font-size: 8.5px; color: var(--ink2); width: 110px; flex-shrink: 0; }
  #vista-prof .amba-conc-bar-wrap { flex: 1; background: var(--border); height: 6px; border-radius: 1px; overflow: hidden; }
  #vista-prof .amba-conc-bar { height: 100%; background: var(--accent); border-radius: 1px; }
  #vista-prof .amba-conc-num { font-family: 'IBM Plex Mono', monospace; font-size: 8.5px; color: var(--ink3); width: 18px; text-align: right; flex-shrink: 0; }

  /* Leyenda — montada como Leaflet control en bottomleft */
  #vista-prof .leaflet-control .amba-leyenda,
  #vista-prof .amba-leyenda {
    display: flex; flex-direction: column; gap: 5px;
    background: rgba(250,249,245,0.92);
    border: 1px solid var(--border);
    padding: 8px 10px;
    pointer-events: none;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  }
  #vista-prof .amba-ley-item { display: flex; align-items: center; gap: 6px; font-family: 'IBM Plex Mono', monospace; font-size: 8px; color: var(--ink2); text-transform: uppercase; letter-spacing: 0.5px; }
  #vista-prof .amba-ley-dot { width: 10px; height: 10px; border-radius: 1px; flex-shrink: 0; }

  @media (max-width: 768px) {
    #vista-prof #tab-amba { flex-direction: column; }
    #vista-prof #amba-canvas { min-height: 320px; }
    #vista-prof #amba-panel { position: relative; width: 100%; height: auto; border-left: none; border-top: 1px solid var(--border); max-height: 260px; }
  }

  /* bloque position chips */
  #vista-prof .bp-favor  { font-family: 'IBM Plex Mono', monospace; font-size: 9px; padding: 3px 8px; border: 1px solid #1a6a1a; color: #1a6a1a; background: #f0faf0; display: inline-flex; align-items: center; gap: 4px; }
  #vista-prof .bp-contra { font-family: 'IBM Plex Mono', monospace; font-size: 9px; padding: 3px 8px; border: 1px solid var(--red); color: var(--red); background: #fdf0f0; display: inline-flex; align-items: center; gap: 4px; }
  #vista-prof .bp-neutro { font-family: 'IBM Plex Mono', monospace; font-size: 9px; padding: 3px 8px; border-radius: 6px; border: 1px solid var(--ink3); color: var(--ink3); background: transparent; display: inline-flex; align-items: center; gap: 4px; }
  #vista-prof .bloques-grid { display: flex; flex-wrap: wrap; gap: 6px; }

  /* ── Congreso comisiones — 3-column layout ─────────────── */
  #vista-prof .cong-pane { display: none; flex: 1; overflow: hidden; }
  #vista-prof .cong-pane.active { display: flex; flex-direction: row; }

  /* col 1 — commission list */
  #vista-prof .com-col-list {
    width: 200px; min-width: 200px;
    background: var(--panel); border-right: 1px solid var(--border);
    display: flex; flex-direction: column; overflow: hidden;
  }
  /* col 2 — project list */
  #vista-prof .com-col-proy {
    width: 240px; min-width: 240px;
    background: var(--bg); border-right: 1px solid var(--border);
    display: flex; flex-direction: column; overflow: hidden;
  }
  /* col 3 — detail */
  #vista-prof .com-col-detalle {
    flex: 1; min-width: 0;
    background: var(--bg);
    display: flex; flex-direction: column; overflow-y: auto;
    padding: 24px 28px;
  }
  /* for the 2-column special layout (comisiones especiales) */
  #vista-prof #cong-comisiones .com-col-list { width: 260px; min-width: 260px; }

  /* commission list items */
  #vista-prof .com-item {
    padding: 10px 14px;
    margin: 4px 6px;
    border-radius: 8px;
    cursor: pointer; transition: all .12s;
    border-left: 2px solid transparent;
    background: var(--bg); border: 0.5px solid var(--border);
  }
  #vista-prof .com-item:last-child { border-bottom: none; }
  #vista-prof .com-item:hover { background: rgba(26,24,20,.04); }
  #vista-prof .com-item.active { background: rgba(26,95,214,.07); border-left-color: var(--accent); }
  #vista-prof .com-item-nombre { font-size: 11px; font-weight: 500; color: var(--ink); line-height: 1.35; margin-bottom: 3px; }
  #vista-prof .com-item-desc { font-size: 10px; color: var(--ink3); line-height: 1.4; margin-bottom: 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  #vista-prof .com-item-meta { font-family: 'IBM Plex Mono', monospace; font-size: 8px; color: var(--ink3); text-transform: uppercase; letter-spacing: 0.5px; margin-top: 2px; }
  #vista-prof .com-item-pdte { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink2); margin-top: 2px; }

  /* area color dots */
  #vista-prof .com-area-dot { display: inline-block; width: 5px; height: 5px; border-radius: 50%; margin-right: 5px; vertical-align: middle; }
  #vista-prof .area-economica   { background: #1a5a4a; }
  #vista-prof .area-legislativa { background: #4a6a8a; }
  #vista-prof .area-judicial    { background: #8a2020; }
  #vista-prof .area-social      { background: #8a6a20; }
  #vista-prof .area-exterior    { background: #3a3a8a; }
  #vista-prof .area-infraestructura { background: #5a4a2a; }
  #vista-prof .area-seguridad   { background: #5a1a1a; }
  #vista-prof .area-bicameral   { background: #6a3a8a; }
  #vista-prof .area-especial    { background: var(--accent); }

  /* commission card (inside col-3 or col-2 when special) */
  #vista-prof .com-card { margin-bottom: 20px; }
  #vista-prof .com-card-nombre { font-family: 'IBM Plex Sans', sans-serif; font-size: 20px; font-weight: 600; line-height: 1.2; margin-bottom: 6px; }
  #vista-prof .com-card-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
  #vista-prof .com-card-area { font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; letter-spacing: 1px; color: var(--ink3); }
  #vista-prof .com-card-row { display: flex; gap: 20px; flex-wrap: wrap; margin-bottom: 16px; }
  #vista-prof .com-card-field { flex: 1; min-width: 120px; }
  #vista-prof .com-card-lbl { font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; letter-spacing: 1.5px; color: var(--ink3); margin-bottom: 3px; }
  #vista-prof .com-card-val { font-size: 12px; color: var(--ink2); line-height: 1.4; }
  #vista-prof .com-card-desc { font-size: 13px; color: var(--ink2); line-height: 1.6; font-style: italic; border-left: 2px solid var(--border-s); padding-left: 12px; opacity: 0.7; margin-bottom: 16px; }
  #vista-prof .com-pdte-chip { font-family: 'IBM Plex Mono', monospace; font-size: 9px; padding: 3px 8px; border: 1px solid var(--accent); color: var(--accent); display: inline-block; margin-right: 6px; margin-bottom: 4px; }
  #vista-prof .com-vicepdte-chip { font-family: 'IBM Plex Mono', monospace; font-size: 9px; padding: 3px 8px; border: 1px solid var(--ink3); color: var(--ink2); display: inline-block; margin-right: 6px; margin-bottom: 4px; }
  #vista-prof .com-miembro-chip { font-family: 'IBM Plex Mono', monospace; font-size: 9px; padding: 2px 7px; border: 1px solid var(--border); color: var(--ink3); display: inline-block; margin-right: 4px; margin-bottom: 4px; }
  #vista-prof .com-reunion-box { background: var(--panel); border: 1px solid var(--border); padding: 10px 12px; margin-bottom: 16px; display: flex; gap: 16px; flex-wrap: wrap; }
  #vista-prof .com-reunion-item { flex: 1; min-width: 100px; }

  /* commission group labels (Clave / Todas) */
  #vista-prof .com-group-lbl {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; text-transform: uppercase; letter-spacing: 1.5px;
    color: var(--ink3); padding: 8px 14px 4px;
    border-bottom: 1px solid var(--border);
    background: var(--panel);
  }
  #vista-prof .com-group-lbl-resto { margin-top: 2px; }

  /* clave commission items */
  #vista-prof .com-item-clave { background: rgba(26,95,214,0.03); }
  #vista-prof .com-item-clave:hover { background: rgba(26,95,214,0.07); }
  #vista-prof .com-item-clave.active { background: rgba(26,95,214,0.10); border-left-color: var(--accent); }
  #vista-prof .com-clave-dot {
    display: inline-block; width: 6px; height: 6px;
    background: var(--accent); border-radius: 1px;
    margin-right: 5px; vertical-align: middle; flex-shrink: 0;
  }

  /* "Ver todo" button inside column header */
  #vista-prof .com-vertodo-btn {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    text-transform: uppercase; letter-spacing: 0.5px;
    color: var(--ink3); background: none; border: none;
    cursor: pointer; padding: 0 0 0 6px; vertical-align: middle;
    text-decoration: underline; text-underline-offset: 2px;
  }
  #vista-prof .com-vertodo-btn:hover { color: var(--accent); }

  /* "sin proyectos" message in middle column */
  #vista-prof .com-proy-sin-items { padding: 16px 14px; }

  /* project list inside com-col-proy */
  #vista-prof .com-proy-item {
    padding: 10px 14px;
    margin: 4px 6px;
    border-radius: 8px;
    cursor: pointer; transition: all .12s;
    border-left: 2px solid transparent;
    background: var(--bg); border: 0.5px solid var(--border);
  }
  #vista-prof .com-proy-item:last-child { border-bottom: none; }
  #vista-prof .com-proy-item:hover { background: rgba(26,24,20,.04); }
  #vista-prof .com-proy-item.active { background: rgba(26,95,214,.07); border-left-color: var(--accent); }
  #vista-prof .cp-titulo { font-size: 11px; color: var(--ink); line-height: 1.35; margin-bottom: 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  #vista-prof .cp-meta { font-family: 'IBM Plex Mono', monospace; font-size: 8px; color: var(--ink3); }

  /* empty states for commission columns */
  #vista-prof .com-empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 200px; gap: 0; padding: 20px; }
  #vista-prof .com-empty-wm { font-family: 'IBM Plex Sans', sans-serif; font-size: 20px; font-weight: 600; letter-spacing: 0.18em; color: rgba(26,24,20,0.06); text-transform: uppercase; user-select: none; }
  #vista-prof .com-empty-sub { font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(26,24,20,0.15); margin-top: 12px; text-align: center; }

  /* Novedades demo banner */
  #vista-prof .nov-demo-banner { border: 1px solid var(--accent); background: rgba(26,95,214,0.05); padding: 7px 14px; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; }
  #vista-prof .nov-demo-banner span { font-family: 'IBM Plex Mono', monospace; font-size: 9px; text-transform: uppercase; letter-spacing: 1px; color: var(--accent); }
  /* Card "Para entender": explica las polémicas de fondo para el lector sin contexto */
  /* "Para entender" — recuadro editorial con cabecera tinta (estilo C, jun 2026):
     se separa del Resumen blanco de arriba y se lee como el bloque explicativo.
     Colores propios (sin naranja); tipografía heredada de ARIA (no se cambia). */
  #vista-prof .nov-pe-panel {
    background: #F4F2EC; border: 1px solid #DDDACF;
    border-radius: 12px; overflow: hidden; margin-bottom: 24px;
  }
  #vista-prof .nov-pe-header {
    background: #0E2A5E; padding: 11px 18px;
    display: flex; align-items: center; gap: 9px;
  }
  #vista-prof .nov-pe-badge {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 700;
    letter-spacing: 0.5px; padding: 2px 6px; border-radius: 4px;
    border: 1px solid #6E6A62; color: #E8E4DA; background: transparent;
  }
  #vista-prof .nov-pe-titulo {
    font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 2.5px; color: #F3EFE6;
  }
  #vista-prof .nov-pe-cap {
    margin-left: auto; font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; letter-spacing: 0.5px; color: #A8A29A; text-transform: uppercase;
  }
  #vista-prof .nov-pe-cuerpo { padding: 16px 20px 18px; }
  #vista-prof .nov-pe-item { padding: 0; border: none; }
  #vista-prof .nov-pe-item + .nov-pe-item {
    border-top: 1px solid #E2DFD5; padding-top: 13px; margin-top: 14px;
  }
  #vista-prof .nov-pe-tema { font-size: 13.5px; font-weight: 700; color: #0E2A5E; margin-bottom: 4px; }
  #vista-prof .nov-pe-exp { font-size: 12.5px; color: #54504A; line-height: 1.6; }
  #vista-prof .nov-pe-exp strong { color: #2A2A28; font-weight: 700; }
  /* Nota discreta al pie: cómo se priorizan las novedades (aclaración, no protagonista) */
  #vista-prof .nov-criterio-nota {
    font-family: 'IBM Plex Mono', monospace; font-size: 9.5px;
    letter-spacing: 0.3px; color: var(--ink3); line-height: 1.5;
    margin-top: 22px; padding-top: 12px; border-top: 1px solid var(--border);
  }

  /* Novedades item fecha */
  #vista-prof .nov-item-fecha { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink3); }

  /* ═══════════════════════════════════════════════════════════
     CONGRESO V2 — Panel "Hoy en el Congreso" + Comisiones unificadas
  ═══════════════════════════════════════════════════════════ */

  /* Panel "Hoy en el Congreso" — banner fino, una sola línea */
  #vista-prof #hoy-congreso,
  #vista-prof #hoy-boletin,
  #vista-prof #hoy-ejecutivo,
  #vista-prof #hoy-novedades,
  #vista-prof #hoy-economia,
  #vista-prof #hoy-imagen,
  #vista-prof #hoy-monitor {
    background: var(--panel);
    border-bottom: 1px solid var(--border);
    padding: 6px 20px 7px;
    display: flex; align-items: center; gap: 16px;
    flex-shrink: 0; flex-wrap: nowrap; min-height: 30px;
    position: relative;
  }
  #vista-prof .hoy-congreso-fecha {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; letter-spacing: 1.2px;
    color: var(--ink2);
    padding-right: 14px;
    border-right: 1px solid var(--border);
    white-space: nowrap;
  }
  #vista-prof .hoy-congreso-fecha strong {
    color: var(--ink); font-weight: 600;
    text-transform: uppercase; letter-spacing: 1.5px;
    margin-right: 6px;
  }
  #vista-prof .hoy-sep {
    color: var(--border-s); margin: 0 8px; font-weight: 300;
  }
  #vista-prof .hoy-detail {
    color: var(--ink3); font-size: 9px;
    letter-spacing: 0.5px; margin-right: 8px;
  }
  #vista-prof .hoy-congreso-lbl {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; text-transform: uppercase; letter-spacing: 1.5px;
    color: var(--ink3);
  }
  #vista-prof .hoy-camara-chip {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; text-transform: uppercase; letter-spacing: 0.8px;
    padding: 2px 8px;
    border: 1px solid var(--border-s);
    color: var(--ink2); background: var(--bg);
    display: inline-flex; align-items: center; gap: 5px;
    white-space: nowrap;
  }
  #vista-prof .hoy-camara-chip .hoy-dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--ink3); display: inline-block;
  }
  #vista-prof .hoy-camara-chip.activa { border-color: var(--accent); color: var(--accent); }
  #vista-prof .hoy-camara-chip.activa .hoy-dot { background: var(--accent); }

  /* Botón "N comisiones hoy" — abre popover con la lista */
  #vista-prof .hoy-com-btn {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; text-transform: uppercase; letter-spacing: 0.8px;
    padding: 2px 9px;
    border: 1px solid var(--border-s);
    background: var(--bg); color: var(--ink2);
    cursor: pointer; transition: all .12s;
    display: inline-flex; align-items: center; gap: 6px;
    white-space: nowrap;
  }
  #vista-prof .hoy-com-btn:hover { border-color: var(--accent); color: var(--accent); }
  #vista-prof .hoy-com-btn[disabled] { cursor: default; opacity: 0.55; }
  #vista-prof .hoy-com-btn[disabled]:hover { border-color: var(--border-s); color: var(--ink2); }
  #vista-prof .hoy-com-btn .hoy-com-btn-num { font-weight: 700; font-size: 10px; }
  #vista-prof .hoy-com-btn .hoy-com-btn-caret {
    font-size: 7px; opacity: 0.55;
    transition: transform .12s;
  }
  #vista-prof .hoy-com-btn.open .hoy-com-btn-caret { transform: rotate(180deg); }
  #vista-prof .hoy-com-btn.open { border-color: var(--accent); color: var(--accent); background: rgba(26,95,214,0.04); }

  #vista-prof .hoy-congreso-nota {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; color: var(--ink3); letter-spacing: 0.4px;
    margin-left: auto;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    max-width: 280px;
  }

  /* Resumen IA del período — colapsable */
  #vista-prof .hoy-resumen-open .hoy-resumen-body { display: block !important; }
  #vista-prof .hoy-resumen-open .hoy-resumen-caret { transform: rotate(180deg); }

  /* Popover con la lista de comisiones reuniéndose hoy */
  #vista-prof #hoy-com-popover {
    position: absolute;
    top: calc(100% - 1px); left: 0;
    background: var(--bg);
    border: 1px solid var(--border-s);
    box-shadow: 0 8px 24px rgba(0,0,0,0.10);
    min-width: 320px; max-width: 420px; max-height: 380px;
    overflow-y: auto;
    z-index: 100;
    display: none;
  }
  #vista-prof #hoy-com-popover.open { display: block; }
  #vista-prof .hoy-com-popover-header {
    padding: 9px 14px;
    background: var(--panel);
    border-bottom: 1px solid var(--border);
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; text-transform: uppercase; letter-spacing: 1.8px;
    color: var(--ink3);
    display: flex; justify-content: space-between; align-items: center;
  }
  #vista-prof .hoy-com-popover-header .pop-close {
    background: none; border: none; cursor: pointer;
    color: var(--ink3); font-size: 14px; line-height: 1;
    padding: 0 0 0 8px;
  }
  #vista-prof .hoy-com-popover-header .pop-close:hover { color: var(--accent); }
  #vista-prof .hoy-com-popover-item {
    padding: 9px 14px;
    border-bottom: 1px solid var(--border);
    cursor: pointer; transition: background .12s;
    border-left: 2px solid transparent;
    display: flex; gap: 8px; align-items: center;
  }
  #vista-prof .hoy-com-popover-item:hover { background: rgba(26,95,214,0.05); border-left-color: var(--accent); }
  #vista-prof .hoy-com-popover-item:last-child { border-bottom: none; }
  #vista-prof .hoy-com-popover-item .pop-tag {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    padding: 2px 5px; letter-spacing: 0.6px;
    border: 1px solid var(--border-s); color: var(--ink3);
    flex-shrink: 0;
  }
  #vista-prof .hoy-com-popover-item .pop-tag.dip { border-color: #4a6a8a; color: #4a6a8a; }
  #vista-prof .hoy-com-popover-item .pop-tag.sen { border-color: #1a5a4a; color: #1a5a4a; }
  #vista-prof .hoy-com-popover-item .pop-tag.bicam { border-color: #6a3a8a; color: #6a3a8a; }
  #vista-prof .hoy-com-popover-item .pop-tag.especial { border-color: var(--accent); color: var(--accent); }
  #vista-prof .hoy-com-popover-item .pop-nombre {
    font-size: 11px; color: var(--ink); line-height: 1.3;
    flex: 1;
  }
  #vista-prof .hoy-com-popover-empty {
    padding: 18px 14px;
    font-size: 11px; color: var(--ink3);
    font-style: italic;
  }

  /* Layout 2-col genérico del nuevo sub-tab Comisiones (V2) */
  #vista-prof .com-col-list-v2 {
    width: 420px; min-width: 400px;
    background: var(--panel); border-right: 1px solid var(--border);
    display: flex; flex-direction: column; overflow: hidden;
  }
  #vista-prof .com-col-detalle-v2 {
    flex: 1; min-width: 0;
    background: var(--bg);
    display: flex; flex-direction: column; overflow-y: auto;
    padding: 24px 28px;
    position: relative;
  }

  /* Bloque "Análisis IA" — texto generado por Claude para comisiones y votaciones */
  #vista-prof .congreso-ai-block {
    margin: 16px 0 18px;
    border-left: 2px solid var(--accent);
    background: rgba(26,95,214,0.04);
    padding: 12px 16px 14px;
  }
  #vista-prof .congreso-ai-header {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; text-transform: uppercase; letter-spacing: 1.8px;
    color: var(--accent); font-weight: 600;
    margin-bottom: 9px;
    display: flex; align-items: center; gap: 8px;
  }
  #vista-prof .congreso-ai-header .ai-badge {
    font-size: 7px; padding: 2px 5px;
    border: 1px solid var(--accent);
    color: var(--accent); background: var(--bg);
    letter-spacing: 1px;
  }
  #vista-prof .congreso-ai-text {
    font-size: 12.5px; line-height: 1.65;
    color: var(--ink2);
    text-align: left;
    white-space: pre-line;
  }
  #vista-prof .congreso-ai-loading {
    font-style: italic; color: var(--ink3); font-size: 11px;
    display: inline-flex; align-items: center; gap: 8px;
  }
  #vista-prof .congreso-ai-loading::after {
    content: '';
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--accent);
    animation: aiPulse 1.4s ease-in-out infinite;
  }
  @keyframes aiPulse {
    0%, 100% { opacity: 0.3; }
    50%      { opacity: 1; }
  }
  #vista-prof .congreso-ai-fallback {
    font-size: 11px; color: var(--ink3); line-height: 1.5;
  }
  #vista-prof .congreso-ai-fallback em {
    font-style: normal; color: var(--ink2);
    border-bottom: 1px dotted var(--ink3);
  }

  /* Botón "× Volver" — inline arriba a la derecha del detalle */
  #vista-prof .detalle-close {
    display: inline-flex; align-items: center; gap: 5px;
    float: right;
    margin: 0 0 8px 12px;
    background: var(--bg);
    border: 1px solid var(--border-s);
    border-radius: 4px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; text-transform: uppercase; letter-spacing: 1px;
    padding: 5px 10px 5px 8px;
    color: var(--ink2);
    cursor: pointer;
    transition: all .12s;
  }
  #vista-prof .detalle-close:hover {
    border-color: var(--accent);
    color: var(--accent);
    background: rgba(26,95,214,0.04);
  }
  #vista-prof .detalle-close .dc-x {
    font-size: 13px; line-height: 1;
    margin-top: -1px;
  }
  /* Variante para Diputados / Senado: columna sesiones intermedia
     y borde derecho sutil + fade para suavizar la división */
  #vista-prof #cong-diputados .com-col-list-v2,
  #vista-prof #cong-senado    .com-col-list-v2 {
    width: 310px; min-width: 310px;
    background: var(--panel);
    border-right: none;
    box-shadow: 1px 0 0 rgba(17,17,17,0.04);
    position: relative;
  }
  /* Gradiente vertical sutil en el borde para que no haya línea dura */
  #vista-prof #cong-diputados .com-col-list-v2::after,
  #vista-prof #cong-senado    .com-col-list-v2::after {
    content: '';
    position: absolute;
    top: 14px; bottom: 14px; right: -1px;
    width: 1px;
    background: linear-gradient(
      to bottom,
      transparent 0%,
      rgba(17,17,17,0.10) 18%,
      rgba(17,17,17,0.10) 82%,
      transparent 100%
    );
    pointer-events: none;
  }

  /* Sección "Activas esta semana" */
  #vista-prof .com-act-header {
    padding: 11px 14px 8px;
    background: var(--panel);
    border-bottom: 1px solid var(--border);
    display: flex; align-items: baseline; justify-content: space-between;
  }
  #vista-prof .com-act-header .sec-lbl { font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; letter-spacing: 2px; color: var(--ink3); }
  #vista-prof .com-act-header .sec-count { font-family: 'IBM Plex Mono', monospace; font-size: 8px; color: var(--ink3); letter-spacing: 0.5px; }

  #vista-prof .com-act-card {
    padding: 11px 14px;
    margin: 4px 6px;
    border-radius: 8px;
    cursor: pointer; transition: all .12s;
    border-left: 2px solid transparent;
    background: var(--bg); border: 0.5px solid var(--border);
  }
  #vista-prof .com-act-card:hover { background: rgba(26,24,20,.04); }
  #vista-prof .com-act-card.active { background: rgba(26,95,214,.07); border-left-color: var(--accent); }
  #vista-prof .com-act-card-top { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; flex-wrap: wrap; }
  #vista-prof .com-camara-tag {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    padding: 2px 6px; letter-spacing: 0.8px; border-radius: 6px;
    border: 1px solid var(--border-s); color: var(--ink2);
    background: var(--bg);
  }
  #vista-prof .com-camara-tag.dip { border-color: #4a6a8a; color: #4a6a8a; }
  #vista-prof .com-camara-tag.sen { border-color: #1a5a4a; color: #1a5a4a; }
  #vista-prof .com-camara-tag.bicam { border-color: #6a3a8a; color: #6a3a8a; }
  #vista-prof .com-camara-tag.especial { border-color: var(--accent); color: var(--accent); }
  #vista-prof .com-act-score { display: inline-flex; gap: 2px; margin-left: auto; }
  #vista-prof .com-act-score .sc-dot {
    width: 6px; height: 6px; border-radius: 1px;
    background: var(--accent);
  }
  #vista-prof .com-act-score .sc-dot.empty { background: rgba(17,17,17,0.12); }
  #vista-prof .com-act-card-nombre { font-size: 12px; font-weight: 500; color: var(--ink); line-height: 1.3; margin-bottom: 4px; }
  #vista-prof .com-act-card-meta {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3);
    line-height: 1.4;
  }
  #vista-prof .com-act-card-meta .meta-pdte { color: var(--ink2); }
  #vista-prof .com-act-card-clave { display: inline-block; font-family: 'IBM Plex Mono', monospace; font-size: 8px; color: var(--accent); padding: 1px 5px; border: 1px solid var(--accent); margin-right: 4px; letter-spacing: 0.5px; }

  #vista-prof .com-act-empty {
    padding: 18px 14px;
    font-size: 11px; color: var(--ink3);
    line-height: 1.5;
    border-bottom: 1px solid var(--border);
  }

  /* ── Sub-tabs Diputados / Senado V2 — sesiones ──────── */
  /* Reusa .com-col-list-v2 y .com-col-detalle-v2 del bloque Comisiones V2 */

  /* Placeholder editorial — "DATA PENDIENTE" */
  #vista-prof .ses-pending {
    padding: 16px 18px 18px;
    border-bottom: 1px solid var(--border);
    position: relative;
  }
  #vista-prof .ses-pending::before {
    content: '';
    position: absolute; left: 0; top: 12px; bottom: 12px;
    width: 2px;
    background: repeating-linear-gradient(
      to bottom,
      var(--ink3) 0 3px,
      transparent 3px 7px
    );
    opacity: 0.35;
  }
  #vista-prof .ses-pending-tag {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; letter-spacing: 1.8px;
    color: var(--ink3); text-transform: uppercase;
    margin-bottom: 6px;
    display: inline-flex; align-items: center; gap: 6px;
  }
  #vista-prof .ses-pending-tag .pt-dot {
    width: 5px; height: 5px; border-radius: 50%;
    background: var(--ink3); display: inline-block;
    animation: ptPulse 2.5s ease-in-out infinite;
  }
  @keyframes ptPulse {
    0%, 100% { opacity: 0.4; }
    50%      { opacity: 1; }
  }
  #vista-prof .ses-pending-titulo {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 15px; color: var(--ink);
    font-weight: 700; line-height: 1.25;
    margin-bottom: 12px;
  }
  #vista-prof .ses-pending-skeleton {
    display: flex; flex-direction: column; gap: 5px;
    margin-bottom: 12px;
  }
  #vista-prof .ses-pending-skeleton .sk-line {
    height: 8px;
    background: linear-gradient(90deg, rgba(17,17,17,0.07), rgba(17,17,17,0.02));
    border-radius: 1px;
  }
  #vista-prof .ses-pending-skeleton .sk-line.short { width: 55%; }
  #vista-prof .ses-pending-skeleton .sk-line.med   { width: 78%; }
  #vista-prof .ses-pending-nota {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3);
    letter-spacing: 0.3px; line-height: 1.5;
  }
  #vista-prof .ses-pending-nota em {
    font-style: normal; color: var(--ink2);
    border-bottom: 1px dotted var(--ink3);
  }

  #vista-prof .ses-item {
    padding: 11px 14px;
    margin: 4px 6px;
    border-radius: 8px;
    cursor: pointer; transition: all .12s;
    border-left: 2px solid transparent;
    background: var(--bg); border: 0.5px solid var(--border);
  }
  #vista-prof .ses-item:hover { background: rgba(26,24,20,.03); border-color: var(--border-s); }
  #vista-prof .ses-item.active { background: rgba(26,95,214,.07); border-left-color: var(--accent); }

  /* Sesión prioritaria — mismo lenguaje visual que .cong-feed-item.feed-clave del feed de Actividad */
  #vista-prof .ses-item.ses-item-clave {
    background: #FAEEDA;
    border-left: 3px solid #EF9F27;
    border-color: rgba(239,159,39,0.25);
  }
  #vista-prof .ses-item.ses-item-clave:hover { background: #F5D9B0; }
  #vista-prof .ses-item.ses-item-clave.active { background: #F0CC8E; border-left-color: #BA7517; }
  #vista-prof .ses-item.ses-item-clave .ses-item-titulo { color: #412402; }
  #vista-prof .ses-item.ses-item-relevante {
    background: #FCF6EC;
    border-left: 3px solid #DDB37A;
    border-color: rgba(221,179,122,0.25);
  }
  #vista-prof .ses-item.ses-item-relevante:hover { background: #F8EBD4; }
  #vista-prof .ses-item.ses-item-relevante.active { background: #F0CC8E; border-left-color: #BA7517; }
  #vista-prof .ses-item-top {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 5px; flex-wrap: wrap; gap: 4px 6px;
  }
  #vista-prof .ses-tipo {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; padding: 2px 6px;
    border: 1px solid var(--border-s);
    color: var(--ink2); background: var(--bg);
    letter-spacing: 0.8px; white-space: nowrap;
  }
  #vista-prof .ses-fecha {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3);
    letter-spacing: 0.3px;
  }
  #vista-prof .ses-item-titulo {
    font-size: 12px; line-height: 1.35;
    color: var(--ink); margin-bottom: 6px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  }
  #vista-prof .ses-item-result {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3);
    display: flex; gap: 10px; flex-wrap: wrap;
  }
  #vista-prof .ses-result-favor  { color: #1a5a4a; }
  #vista-prof .ses-result-contra { color: #8a2020; }
  #vista-prof .ses-result-abs    { color: var(--ink3); }

  /* Tarjeta de ley agrupada: chip de cantidad + desplegable de capítulos */
  #vista-prof .grupo-ley-count {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; letter-spacing: 0.5px;
    padding: 2px 6px; margin-left: 6px; white-space: nowrap;
    color: var(--accent); border: 1px solid rgba(26,95,214,0.4);
    background: rgba(26,95,214,0.06);
  }
  #vista-prof .grupo-ley-toggle {
    margin-top: 8px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; letter-spacing: 0.5px; text-transform: uppercase;
    color: var(--accent); background: transparent;
    border: 1px solid rgba(26,95,214,0.35);
    padding: 4px 8px; cursor: pointer; transition: all .12s;
  }
  #vista-prof .grupo-ley-toggle:hover { background: rgba(26,95,214,0.08); border-color: var(--accent); }
  #vista-prof .grupo-ley-detalle { display: none; margin-top: 8px; border-top: 1px solid var(--border); padding-top: 4px; }
  #vista-prof .grupo-ley-detalle.open { display: block; }
  #vista-prof .grupo-ley-sub {
    display: flex; justify-content: space-between; align-items: center; gap: 10px;
    padding: 5px 6px; cursor: pointer;
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    border-left: 2px solid transparent; transition: all .1s;
  }
  #vista-prof .grupo-ley-sub:hover { background: rgba(26,24,20,.04); border-left-color: var(--accent); }
  #vista-prof .grupo-ley-sub-lbl { color: var(--ink2); font-size: 10px; letter-spacing: 0.3px; }

  /* Composición de la cámara — hemiciclo + tabla de bloques */
  #vista-prof .composicion-camara {
    padding: 4px 4px 8px;
  }
  #vista-prof .composicion-titulo {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 22px; font-weight: 700;
    color: var(--ink); line-height: 1.2;
    margin-bottom: 4px;
  }
  #vista-prof .composicion-subtitulo {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--ink3);
    margin-bottom: 18px;
  }
  /* Pieza protagónica: mapa del recinto */
  #vista-prof .recinto-section {
    margin: 0 -4px 22px;
    background: var(--panel);
    border: 1px solid var(--border);
    padding: 12px 18px 10px;
  }
  #vista-prof .recinto-header {
    display: flex; justify-content: space-between; align-items: baseline;
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border);
  }
  #vista-prof .recinto-titulo {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; text-transform: uppercase; letter-spacing: 2px;
    color: var(--ink2); font-weight: 600;
  }
  #vista-prof .recinto-sub {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; letter-spacing: 1px;
    color: var(--ink3);
  }
  #vista-prof .hemiciclo-wrap {
    display: flex; justify-content: center; align-items: flex-end;
    padding: 6px 4px 4px;
  }
  #vista-prof .hemiciclo-svg {
    width: 100%;
    max-width: 460px;
    height: auto;
    display: block;
  }
  #vista-prof .hemiciclo-base {
    stroke: var(--border-s);
    stroke-width: 0.8;
    opacity: 0.35;
  }
  #vista-prof .recinto-leyenda {
    display: flex; flex-wrap: wrap; gap: 10px 16px;
    padding: 8px 4px 2px;
    margin-top: 4px;
    border-top: 1px solid var(--border);
  }
  #vista-prof .recinto-leyenda-item {
    display: inline-flex; align-items: center; gap: 6px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3);
    letter-spacing: 0.4px;
  }
  #vista-prof .recinto-leyenda-dot {
    width: 9px; height: 9px;
    border: 1px solid rgba(0,0,0,0.2);
    border-radius: 50%;
    flex-shrink: 0;
  }

  #vista-prof .bloques-section-lbl {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; text-transform: uppercase; letter-spacing: 1.8px;
    color: var(--ink3);
    border-bottom: 1px solid var(--border-s);
    padding-bottom: 6px;
    margin-bottom: 4px;
  }
  #vista-prof .bloques-tabla { }
  #vista-prof .bloque-row {
    display: flex; align-items: center; gap: 12px;
    padding: 9px 2px;
    border-bottom: 1px solid var(--border);
    font-size: 12px;
  }
  #vista-prof .bloque-row:last-child { border-bottom: none; }
  #vista-prof .bloque-color {
    width: 14px; height: 14px; flex-shrink: 0;
    border: 1px solid rgba(0,0,0,0.15);
  }
  #vista-prof .bloque-sigla {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px; letter-spacing: 1px; font-weight: 600;
    color: var(--ink);
    width: 44px;
  }
  #vista-prof .bloque-nombre {
    flex: 1; color: var(--ink); line-height: 1.3;
  }
  #vista-prof .bloque-bancas {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 12px; color: var(--ink); font-weight: 600;
    min-width: 36px; text-align: right;
  }
  #vista-prof .bloque-bancas-pct {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3);
    min-width: 36px; text-align: right;
  }
  #vista-prof .bloque-pdte {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3);
    min-width: 130px; text-align: right; line-height: 1.3;
  }
  #vista-prof .composicion-nota {
    margin-top: 14px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3);
    letter-spacing: 0.3px; line-height: 1.5;
    border-top: 1px solid var(--border);
    padding-top: 10px;
  }

  /* Detalle: barra de resultado */
  #vista-prof .ses-resultado-bar {
    background: var(--panel);
    border: 1px solid var(--border);
    padding: 12px 14px; margin: 14px 0;
    display: flex; flex-direction: column; gap: 6px;
  }
  #vista-prof .ses-resultado-row {
    display: flex; align-items: center; gap: 10px;
    font-family: 'IBM Plex Mono', monospace; font-size: 11px;
  }
  #vista-prof .ses-resultado-lbl {
    text-transform: uppercase; letter-spacing: 1px;
    font-size: 9px; color: var(--ink3);
    width: 90px;
  }
  #vista-prof .ses-resultado-val { color: var(--ink); font-weight: 600; min-width: 40px; text-align: right; }
  #vista-prof .ses-resultado-pct { color: var(--ink2); font-size: 10px; }

  /* Leyenda de los cuadraditos de actividad */
  #vista-prof .com-act-leyenda {
    padding: 8px 14px 10px;
    border-bottom: 1px solid var(--border);
    background: rgba(26,95,214,0.025);
    display: flex; gap: 8px; align-items: flex-start;
  }
  #vista-prof .com-act-leyenda .leyenda-dots {
    display: inline-flex; gap: 2px; flex-shrink: 0;
    margin-top: 2px;
  }
  #vista-prof .com-act-leyenda .leyenda-txt {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; line-height: 1.4;
    color: var(--ink3);
    letter-spacing: 0.2px;
  }

  /* Sección "Catálogo completo" colapsable */
  #vista-prof .com-cat-header {
    padding: 11px 14px 8px;
    background: var(--panel);
    border-bottom: 1px solid var(--border);
    cursor: pointer;
    display: flex; align-items: center; justify-content: space-between;
    user-select: none;
  }
  #vista-prof .com-cat-header .sec-lbl { font-family: 'IBM Plex Mono', monospace; font-size: 8px; text-transform: uppercase; letter-spacing: 2px; color: var(--ink3); }
  #vista-prof .com-cat-header .cat-toggle {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    color: var(--ink3); transition: transform .15s;
  }
  #vista-prof .com-cat-section.collapsed .com-cat-body { display: none; }
  #vista-prof .com-cat-section.collapsed .cat-toggle { transform: rotate(-90deg); }

  #vista-prof .com-cat-filters {
    padding: 8px 12px 6px;
    border-bottom: 1px solid var(--border);
    background: var(--bg);
    display: flex; flex-wrap: wrap; gap: 4px;
  }
  #vista-prof .com-filter-chip {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    padding: 3px 8px; letter-spacing: 0.5px;
    border: 1px solid var(--border);
    background: transparent; color: var(--ink3);
    cursor: pointer; transition: all .12s;
    text-transform: uppercase;
  }
  #vista-prof .com-filter-chip:hover { color: var(--ink2); border-color: var(--border-s); }
  #vista-prof .com-filter-chip.active { color: var(--bg); background: var(--ink); border-color: var(--ink); }

  #vista-prof .com-cat-search {
    padding: 6px 10px;
    background: var(--bg);
    border-bottom: 1px solid var(--border);
  }
  #vista-prof .com-cat-search input {
    width: 100%; padding: 5px 8px;
    font-size: 11px; border: 1px solid var(--border);
    background: var(--bg); color: var(--ink);
    font-family: 'IBM Plex Mono', monospace;
  }

  #vista-prof .com-cat-group-lbl {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; text-transform: uppercase; letter-spacing: 1.5px;
    color: var(--ink3); padding: 7px 14px 3px;
    background: var(--panel);
    border-bottom: 1px solid var(--border);
  }
  #vista-prof .com-cat-item {
    padding: 8px 14px;
    border-bottom: 1px solid var(--border);
    cursor: pointer; transition: background .12s;
    border-left: 2px solid transparent;
    display: flex; align-items: center; gap: 6px;
  }
  #vista-prof .com-cat-item:hover { background: rgba(26,24,20,.04); }
  #vista-prof .com-cat-item.active { background: rgba(26,95,214,.07); border-left-color: var(--accent); }
  #vista-prof .com-cat-item-nombre { font-size: 11px; color: var(--ink); line-height: 1.3; flex: 1; }
  #vista-prof .com-cat-item .com-camara-tag { flex-shrink: 0; }

  /* ═══════════════════════════════════════════════════════════
     INSIGHT LAYER
  ═══════════════════════════════════════════════════════════ */

  /* Bloque contenedor */
  #vista-prof .insight-block {
    background: rgba(26, 60, 100, 0.03);
    border-left: 2px solid rgba(26, 60, 100, 0.18);
    padding-left: 14px;
  }

  /* Header con badge IA */
  #vista-prof .insight-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  #vista-prof .insight-badge {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 7px;
    letter-spacing: 1.5px;
    padding: 1px 5px;
    border: 1px solid rgba(26,60,100,0.3);
    color: rgba(26,60,100,0.6);
    background: rgba(26,60,100,0.06);
    text-transform: uppercase;
  }

  /* Texto de impacto */
  #vista-prof .insight-impacto {
    font-size: 13px;
    line-height: 1.6;
    color: var(--ink1);
    margin-bottom: 14px;
  }

  /* Fila ganadores/perdedores */
  #vista-prof .insight-chips-row {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 4px;
  }
  #vista-prof .insight-col { flex: 1; min-width: 120px; }
  #vista-prof .insight-col-lbl {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--ink3);
    margin-bottom: 6px;
  }
  #vista-prof .insight-chips { display: flex; flex-wrap: wrap; gap: 4px; }
  #vista-prof .insight-chip {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    padding: 2px 8px;
    border: 1px solid;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    display: inline-block;
  }
  #vista-prof .insight-chip-g {
    border-color: #1a5a4a;
    color: #1a5a4a;
    background: rgba(26,90,74,0.06);
  }
  #vista-prof .insight-chip-p {
    border-color: #8a2020;
    color: #8a2020;
    background: rgba(138,32,32,0.05);
  }
  #vista-prof .insight-nd { font-size: 11px; color: var(--ink3); }

  /* Barra de probabilidad */
  #vista-prof .insight-prob-row {
    display: flex;
    align-items: center;
    margin-bottom: 6px;
  }
  #vista-prof .insight-prob-bar-wrap {
    flex: 1;
    height: 4px;
    background: var(--border);
    border-radius: 2px;
    overflow: hidden;
  }
  #vista-prof .insight-prob-bar {
    height: 100%;
    background: var(--ink2);
    border-radius: 2px;
    transition: width .4s ease;
  }

  /* Lectura estratégica */
  #vista-prof .insight-interpretacion {
    font-size: 12px;
    line-height: 1.6;
    color: var(--ink2);
    font-style: italic;
  }

  /* Loading inline en noticias */
  #vista-prof .insight-loading-inline {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    color: var(--ink3);
    text-transform: uppercase;
    letter-spacing: 1px;
  }

  /* Wrapper del insight en noticia */
  #vista-prof .noticia-insight-wrap {
    border-top: 1px solid var(--border);
    padding: 0 14px 12px;
  }
  #vista-prof .noticia-insight-wrap .insight-block {
    margin-top: 12px;
  }

  /* Área clickable de noticia (sin el insight) */
  #vista-prof .n-clickable { cursor: pointer; }

  /* Fila de acciones: "Leer nota" + "Analizar" */
  #vista-prof .n-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 14px 8px;
    border-top: 1px solid var(--border);
  }
  #vista-prof .n-leer-btn {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--ink2);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: 2px;
  }
  #vista-prof .n-leer-btn:hover { color: var(--ink1); }
  #vista-prof .n-insight-btn {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: rgba(26,60,100,0.7);
    background: rgba(26,60,100,0.06);
    border: 1px solid rgba(26,60,100,0.2);
    cursor: pointer;
    padding: 2px 8px;
    transition: background .15s;
  }
  #vista-prof .n-insight-btn:hover { background: rgba(26,60,100,0.12); }

  /* ═══════════════════════════════════════════════════════════
     TAB 5 — RED DEL PODER
  ═══════════════════════════════════════════════════════════ */



  /* ── DATOS NO VERIFICADOS ────────────────────────────────── */
  /* Tab-level banner */
  #vista-prof .cong-data-banner {
    display: flex; align-items: flex-start; gap: 10px;
    padding: 9px 16px; background: #fffbf0;
    border-bottom: 1px solid #e8d87a;
    font-size: 11px; color: #6b5a00; line-height: 1.5;
    flex-shrink: 0;
  }
  #vista-prof .cong-banner-icon { font-size: 12px; flex-shrink: 0; margin-top: 1px; }
  #vista-prof .cong-data-banner a { color: #6b5a00; font-weight: 600; }
  #vista-prof .cong-data-banner a:hover { text-decoration: underline; }
  #vista-prof .cong-banner-close {
    margin-left: auto; flex-shrink: 0;
    background: none; border: none; cursor: pointer;
    color: #a89040; font-size: 11px; padding: 0 2px; line-height: 1;
  }
  #vista-prof .cong-banner-close:hover { color: #6b5a00; }

  /* Commission card inline badges */
  #vista-prof .com-verificado-badge {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    text-transform: uppercase; letter-spacing: 0.5px;
    padding: 1px 6px; border: 1px solid #1a5a4a;
    color: #1a5a4a; background: rgba(26,90,74,0.06);
    display: inline-block;
  }
  #vista-prof .com-noverif-badge {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    text-transform: uppercase; letter-spacing: 0.5px;
    padding: 1px 6px; border: 1px solid #8a6a00;
    color: #8a6a00; background: #fffbf0;
    display: inline-block;
  }

  /* Inline warning inside card */
  #vista-prof .com-unverified-banner {
    display: flex; align-items: flex-start; gap: 8px;
    padding: 8px 10px; margin-bottom: 14px;
    background: #fffbf0; border-left: 2px solid #e8c840;
    font-size: 11px; color: #6b5a00; line-height: 1.5;
  }
  #vista-prof .com-unverified-icon { flex-shrink: 0; font-size: 12px; }

  /* ── ERROR & LOADING STATES ──────────────────────────────── */
  #vista-prof .error-banner {
    padding: 8px 13px; background: #fdf0f0; border-left: 3px solid var(--red);
    font-family: 'IBM Plex Mono', monospace; font-size: 10px; color: var(--red);
    display: flex; align-items: center; gap: 8px; margin: 6px 0;
  }
  #vista-prof .error-banner button {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px; padding: 2px 8px;
    border: 1px solid var(--red); background: transparent; color: var(--red);
    cursor: pointer; text-transform: uppercase; letter-spacing: 1px;
  }
  #vista-prof .error-banner button:hover { background: var(--red); color: var(--bg); }
  #vista-prof .loading-spinner {
    display: inline-block; width: 12px; height: 12px;
    border: 2px solid var(--ink3); border-top-color: transparent;
    border-radius: 50%; animation: spin .6s linear infinite;
  }
  @keyframes spin { to { transform: rotate(360deg); } }

  /* ═══════════════════════════════════════════════════════════
     RESPONSIVE — TABLET (≤1024px)
  ═══════════════════════════════════════════════════════════ */
  @media (max-width: 1024px) {
    /* Novedades: ajustes de respiración en tablet */
    #vista-prof #nov-body { padding: 40px 22px 60px; }
    #vista-prof .masthead-title { font-size: 30px; }

    /* Directorio: colapsar panes en columna */
    #vista-prof .dir-pane { flex-direction: column; }
    #vista-prof #m-actor-list, #vista-prof #m-inst-list { width: 100%; min-width: 0; max-height: 180px; border-right: none; border-bottom: 1px solid var(--border); }
    #vista-prof #m-inst-detail { padding: 16px 18px; }
    #vista-prof #dir-actor-profile { padding: 16px 18px; }
    #vista-prof .dir-empty-state { padding: 24px 18px; }

    /* Boletín */
    #vista-prof #tab-boletin { flex-direction: column; }
    #vista-prof #bol-left { width: 100%; min-width: 0; max-height: 200px; border-right: none; border-bottom: 1px solid var(--border); }
    #vista-prof #bol-right { padding: 16px 18px; }

    /* Congreso proyectos (legacy) */
    #vista-prof #proy-left { width: 100%; min-width: 0; max-height: 200px; border-right: none; border-bottom: 1px solid var(--border); }
    #vista-prof #proy-right { padding: 16px 18px; }

    /* Congreso V2 — feed + detalle, sesiones + hemiciclo */
    #vista-prof .cong-feed-col { width: 280px; min-width: 220px; max-width: 300px; }
    #vista-prof .cong-detalle-col { padding: 0 18px 16px; }
    #vista-prof .com-col-list-v2 { width: 260px; min-width: 220px; }
    #vista-prof #cong-diputados .com-col-list-v2,
    #vista-prof #cong-senado    .com-col-list-v2 { width: 260px; min-width: 220px; }
    #vista-prof .com-col-detalle-v2 { padding: 16px 18px; }

    /* Sub-tabs más compactos */
    #vista-prof #cong-tabs-bar { gap: 0; }
    #vista-prof .cong-tab { font-size: 10px; padding: 8px 10px; }

    /* Hemiciclo: comprimir SVG */
    #vista-prof .hemiciclo-wrap { max-width: 100%; }
    #vista-prof .composicion-camara { padding: 16px; }
    #vista-prof .composicion-titulo { font-size: 16px; }

    /* Feed items más compactos */
    #vista-prof .cong-feed-item { padding: 10px 12px; }
    #vista-prof .fi-title { font-size: 12px; }

  }

  /* ═══════════════════════════════════════════════════════════
     RESPONSIVE — PANTALLA COMPARTIDA (≤900px)
     Para uso en split screen con Claude u otras apps
  ═══════════════════════════════════════════════════════════ */
  @media (max-width: 900px) {
    /* ── Layout general ── */
    #vista-prof #cong-body { overflow: auto; }
    #vista-prof #tab-congreso .cong-pane.active { flex-direction: column; overflow: auto; }

    /* ── Feed de Actividad: lista arriba, detalle abajo ── */
    #vista-prof .cong-feed-col {
      width: 100% !important; min-width: 0 !important; max-width: none !important;
      border-right: none; border-bottom: 1px solid var(--border);
      max-height: 35vh; flex-shrink: 0;
    }
    #vista-prof .cong-detalle-col {
      padding: 14px 16px; overflow-y: auto;
      flex: 1; min-height: 200px;
    }
    #vista-prof .cong-feed-filters { flex-wrap: wrap; gap: 4px; padding: 6px 10px; }
    #vista-prof .cong-feed-search { width: 100%; margin-top: 4px; }
    #vista-prof .cong-feed-item { padding: 8px 10px; }
    #vista-prof .fi-title { font-size: 12px; line-height: 1.35; }
    #vista-prof .fi-meta { gap: 4px; flex-wrap: wrap; }

    /* ── Diputados / Senado: lista arriba, hemiciclo abajo ── */
    #vista-prof .com-col-list-v2 {
      width: 100% !important; min-width: 0 !important;
      border-right: none; border-bottom: 1px solid var(--border);
      max-height: 30vh; flex-shrink: 0;
    }
    #vista-prof #cong-diputados .com-col-list-v2,
    #vista-prof #cong-senado    .com-col-list-v2 {
      width: 100% !important; min-width: 0 !important;
    }
    #vista-prof #cong-diputados .com-col-list-v2::after,
    #vista-prof #cong-senado    .com-col-list-v2::after { display: none; }
    #vista-prof .com-col-detalle-v2 {
      padding: 14px 16px; overflow-y: auto;
      flex: 1; min-height: 200px;
    }

    /* ── Hemiciclo responsivo ── */
    #vista-prof .hemiciclo-wrap { overflow: hidden; }
    #vista-prof .hemiciclo-wrap svg { max-height: 180px; width: 100%; }
    #vista-prof .composicion-camara { padding: 12px; }
    #vista-prof .composicion-titulo { font-size: 15px; }
    #vista-prof .composicion-subtitulo { font-size: 10px; }
    #vista-prof .bloques-tabla { font-size: 11px; }
    #vista-prof .bloque-nombre { display: none; }
    #vista-prof .bloque-row { padding: 3px 0; }
    #vista-prof .recinto-leyenda { flex-wrap: wrap; gap: 6px; font-size: 10px; }
    #vista-prof .composicion-nota { font-size: 10px; }

    /* ── Sub-tabs compactos ── */
    #vista-prof #cong-tabs-bar { gap: 0; padding: 0 8px; }
    #vista-prof .cong-tab { padding: 8px 8px; font-size: 10px; letter-spacing: 0.5px; }
    #vista-prof .ctab-icon { display: none; }

    /* ── Barra superior ── */
    #vista-prof .hoy-congreso-fecha { font-size: 12px; padding: 8px 12px; }
    #vista-prof .hoy-resumen-body { font-size: 11px; }

    /* ── Detalle de proyecto (briefing) ── */
    #vista-prof .com-card { padding: 14px 16px; }
    #vista-prof .com-card-nombre { font-size: 16px; }

    /* ── Items de sesión ── */
    #vista-prof .ses-item { padding: 8px 10px; }
    #vista-prof .ses-item-titulo { font-size: 12px; }

    /* ── Topbar y nav compactos ── */
    #vista-prof #topbar { padding: 8px 12px; }
    #vista-prof .logo-name { font-size: 16px; }
    #vista-prof #nav { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    #vista-prof .nav-tab { padding: 0 10px; font-size: 9px; white-space: nowrap; flex-shrink: 0; }
  }

  /* ═══════════════════════════════════════════════════════════
     RESPONSIVE — MOBILE (≤768px)
  ═══════════════════════════════════════════════════════════ */
  @media (max-width: 768px) {
    #vista-prof, #vista-prof { overflow: auto; }
    #vista-prof #content { height: auto; min-height: calc(100vh - 90px); }
    #vista-prof .tab-pane { overflow: visible; }
    #vista-prof .tab-pane.active { flex-direction: column; }

    /* Topbar — wrap search to second row */
    #vista-prof #topbar { height: auto; padding: 10px 14px; flex-wrap: wrap; gap: 12px; }
    #vista-prof .logo-name { font-size: 17px; }
    #vista-prof #search-global { order: 3; flex: 1 1 100%; max-width: none; }

    /* Nav tabs: scroll horizontal */
    #vista-prof #nav { overflow-x: auto; gap: 0; padding: 0 10px; -webkit-overflow-scrolling: touch; }
    #vista-prof .nav-tab { padding: 0 12px; font-size: 9px; white-space: nowrap; flex-shrink: 0; }

    /* Novedades */
    #vista-prof #nov-body { padding: 28px 16px 40px; }
    #vista-prof .masthead-title { font-size: 24px; }
    #vista-prof .masthead-eyebrow { font-size: 8px; letter-spacing: 2.5px; }
    #vista-prof #nov-masthead { margin-bottom: 24px; }
    #vista-prof #nov-footer { margin-top: 40px; }
    #vista-prof .footer-attrib { font-size: 10px; }

    /* Actores */
    #vista-prof #m-actor-list { max-height: 150px; }
    #vista-prof #dir-actor-profile { padding: 12px; }
    #vista-prof .dir-empty-state { padding: 16px 12px; }
    #vista-prof #search-global #search-inp { font-size: 13px; }
    #vista-prof .pf-name { font-size: 20px; }

    /* Organi tree */
    #vista-prof #org-tree-wrap { padding: 16px; min-width: 0; }
    #vista-prof .org-secs-row { flex-direction: column; align-items: center; }
    #vista-prof .org-sec-node { width: 100%; }

    /* Congreso */
    #vista-prof .proy-titulo { font-size: 17px; }
    #vista-prof .proy-breadcrumb { font-size: 7px; }

    /* Congreso — feed y detalle en columna */
    #vista-prof .cong-pane.active { flex-direction: column; }
    #vista-prof .cong-feed-col { width: 100%; min-width: 0; max-width: none; border-right: none; border-bottom: 1px solid var(--border); max-height: 40vh; }
    #vista-prof .cong-detalle-col { padding: 14px 16px; }
    #vista-prof .com-col-list-v2 { width: 100%; min-width: 0; border-right: none; border-bottom: 1px solid var(--border); max-height: 35vh; }
    #vista-prof .com-col-detalle-v2 { padding: 14px 16px; }
    #vista-prof #cong-diputados .com-col-list-v2,
    #vista-prof #cong-senado    .com-col-list-v2 { width: 100%; min-width: 0; }
  }

  /* ═══════════════════════════════════════════════════════════
     NOVEDADES — Estilos del contenido (cards del briefing)
  ═══════════════════════════════════════════════════════════ */

  /* ── Filtros por categoría (chips) ── */
  #vista-prof .nov-filtros {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    padding: 0 0 16px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 4px;
  }
  #vista-prof .nov-chip {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 5px 14px;
    border: 1px solid var(--border);
    background: transparent;
    color: var(--ink3);
    cursor: pointer;
    transition: all .2s ease;
  }
  #vista-prof .nov-chip:hover {
    border-color: var(--accent);
    color: var(--accent);
  }
  #vista-prof .nov-chip.active {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
  }
  #vista-prof .nov-filtro-count {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    color: var(--ink3);
    margin-left: 4px;
    letter-spacing: 0.5px;
  }

  /* Encabezado de bloque temático dentro del listado */
  #vista-prof .nov-cat-header {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--ink3);
    padding: 28px 0 10px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 0;
  }
  #vista-prof .nov-cat-header:first-child { padding-top: 4px; }

  #vista-prof .nov-ts {
    display: none;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    color: var(--ink3);
    text-transform: uppercase;
    letter-spacing: 1px;
  }

  #vista-prof .nov-regen-btn {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 4px 12px;
    border: 1px solid var(--border-s);
    background: transparent;
    color: var(--ink);
    cursor: pointer;
    transition: background .15s;
  }
  #vista-prof .nov-regen-btn:hover { background: rgba(26,24,20,.06); }
  #vista-prof .nov-regen-btn:disabled { opacity: .4; cursor: not-allowed; }

  /* Tarjeta de novedad */
  #vista-prof .nov-item {
    padding: 18px 22px;
    margin-bottom: 12px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--bg);
    transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
  }
  #vista-prof .nov-item:hover {
    background: rgba(26,24,20,.035);
    border-color: var(--ink3);
    box-shadow: 0 1px 3px rgba(26,24,20,.04);
  }

  /* Cada categoría en su card; las noticias van como filas adentro (no cards
     anidadas). El título lleva el mismo marcador naranja que las cards del Monitor. */
  /* Resumen del período (Novedades): encabezado en NARANJA DE MARCA (≠ el coral de
     la categoría Ejecutivo), cuerpo con Panorama + listas. */
  #vista-prof .nov-resumen-panel {
    background: #fff; border: 1px solid var(--border);
    border-radius: 12px; overflow: hidden; margin-bottom: 24px;
  }
  #vista-prof .nov-resumen-header {
    display: flex; align-items: center; gap: 9px;
    background: var(--accent); padding: 11px 18px;
  }
  #vista-prof .nov-resumen-badge {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 700;
    letter-spacing: 0.5px; color: #fff; background: transparent;
    border: 1px solid rgba(255,255,255,0.6); border-radius: 4px; padding: 2px 6px;
  }
  #vista-prof .nov-resumen-titulo {
    font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 700;
    letter-spacing: 2px; text-transform: uppercase; color: #FFF6F0;
  }
  #vista-prof .nov-resumen-body { padding: 16px 20px 18px; }
  #vista-prof .nov-resumen-fuente {
    margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--border);
    font-family: 'IBM Plex Mono', monospace; font-size: 8px; color: var(--ink3);
    text-align: center; letter-spacing: 0.5px;
  }

  #vista-prof .nov-seccion {
    background: var(--bg); border: 1px solid var(--border);
    border-radius: 12px; padding: 0; margin-bottom: 14px; overflow: hidden;
  }
  /* Encabezado: banda tintada en el color de la categoría (--cat-bg), con el
     nombre y el marcador en el tono fuerte (--cat-fg). El color codifica el
     área temática y unifica la identidad con el resto de ARIA. */
  #vista-prof .nov-seccion-titulo {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 1.5px;
    font-weight: 700; text-transform: uppercase;
    display: flex; align-items: center;
    padding: 9px 16px;
    background: var(--cat-bg, var(--panel));
    color: var(--cat-fg, var(--ink1));
  }
  #vista-prof .nov-seccion-titulo::before {
    content: ''; width: 4px; height: 13px; background: var(--cat-fg, var(--accent));
    border-radius: 1px; margin-right: 9px; flex-shrink: 0;
  }
  #vista-prof .nov-seccion-body { padding: 2px 18px 14px; }
  #vista-prof .nov-seccion .nov-item {
    padding: 13px 0; margin: 0; border: none; border-radius: 0; background: none;
  }
  #vista-prof .nov-seccion .nov-item:hover { background: none; border: none; box-shadow: none; }
  #vista-prof .nov-seccion .nov-item + .nov-item { border-top: 1px solid var(--border); }

  #vista-prof .nov-item-titulo {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--ink);
    margin-bottom: 10px;
  }

  #vista-prof .nov-item-contexto {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 13px;
    line-height: 1.7;
    color: var(--ink2);
    margin-bottom: 12px;
  }

  #vista-prof .nov-item-pie {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
  }

  #vista-prof .nov-item-fuente {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ink3);
  }

  #vista-prof .nov-item-fecha {
    display: inline-flex;
    align-items: center;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8.5px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    padding: 2px 7px;
    border: 1px solid var(--border);
    border-radius: 10px;
    color: var(--ink3);
    background: var(--panel);
  }

  #vista-prof .nov-item-link {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ink3);
    opacity: 0;
    transition: opacity .15s;
    margin-left: auto;
  }

  /* ── Buscador (estilo Congreso) ── */
  #vista-prof .nov-search-wrap {
    margin: 14px 0 18px;
  }
  #vista-prof .nov-search-input {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 12px;
    padding: 7px 12px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: var(--bg);
    color: var(--ink1);
    width: 100%;
    transition: border-color .15s;
  }
  #vista-prof .nov-search-input:focus {
    outline: none;
    border-color: var(--ink2);
  }
  #vista-prof .nov-search-input::placeholder {
    color: var(--ink3);
    font-family: 'IBM Plex Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.5px;
  }

  /* ── Header "Destacadas del día" ── */
  #vista-prof .nov-destacadas-header {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: #854F0B;
    padding: 8px 0 12px;
    margin-bottom: 0;
    display: flex;
    align-items: center;
    gap: 10px;
  }
  #vista-prof .nov-destacadas-header::after {
    content: "";
    flex: 1;
    height: 1px;
    background: #DDB37A;
  }
  #vista-prof .nov-destacadas-header .nov-dh-count {
    font-size: 9px;
    color: #BA7517;
    letter-spacing: 1px;
  }

  /* ── Item destacado (feed-clave estilo Congreso) ── */
  #vista-prof .nov-item.nov-item-clave {
    background: #FAEED5;
    border-color: #DDB37A;
    border-left: 3px solid #BA7517;
    padding-left: 20px;
  }
  #vista-prof .nov-item.nov-item-clave:hover {
    background: #F5D9B0;
    border-color: #BA7517;
    box-shadow: 0 1px 4px rgba(186,117,23,.12);
  }
  #vista-prof .nov-item.nov-item-clave .nov-item-titulo {
    color: #412402;
  }
  #vista-prof .nov-item.nov-item-clave .nov-item-contexto {
    color: #5A3608;
  }
  #vista-prof .nov-item.nov-item-clave .nov-item-fuente,
  #vista-prof .nov-item.nov-item-clave .nov-item-link {
    color: #854F0B;
  }
  #vista-prof .nov-item.nov-item-clave .nov-item-fecha {
    color: #854F0B;
    border-color: #DDB37A;
    background: rgba(255,255,255,0.4);
  }
  #vista-prof .nov-item.nov-item-clave .nov-priority {
    background: #BA7517;
    color: #FAEED5;
    border-color: #BA7517;
  }
  #vista-prof .nov-item.nov-item-clave .nov-motivos span {
    background: rgba(186,117,23,0.12);
    border-color: rgba(186,117,23,0.30);
    color: #854F0B;
  }

  /* ── Chip de prioridad ── */
  #vista-prof .nov-item-top {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
  }
  #vista-prof .nov-priority {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 1px;
    padding: 2px 8px;
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink3);
    background: transparent;
  }

  /* ── Motivos de prioridad (chips finos) ── */
  #vista-prof .nov-motivos {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 0 0 10px;
  }
  #vista-prof .nov-motivo {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8.5px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    padding: 2px 7px;
    border: 1px solid var(--border);
    border-radius: 10px;
    color: var(--ink3);
    background: var(--panel);
  }
  /* Motivos de alerta (Tema sensible / Bajo radar) — ámbar de advertencia */
  #vista-prof .nov-motivo-alerta {
    border-color: rgba(176,122,16,0.45);
    color: var(--amber);
    background: rgba(176,122,16,0.07);
  }
  #vista-prof .nov-motivo-clickable {
    cursor: pointer;
    transition: background .12s, border-color .12s, color .12s;
  }
  #vista-prof .nov-motivo-clickable:hover {
    background: var(--bg);
    border-color: var(--ink3);
    color: var(--ink1);
  }
  #vista-prof .nov-motivo-caret {
    font-size: 7px;
    line-height: 1;
    opacity: 0.7;
  }

  /* ── Listado expandible de fuentes (solo nombres de diarios, como chips) ── */
  #vista-prof .nov-fuentes-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 10px 12px;
    margin: 4px 0 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--panel);
  }
  #vista-prof .nov-fuente-item {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 4px 12px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--bg);
    color: var(--ink1);
    text-decoration: none;
    cursor: pointer;
    transition: background .12s, border-color .12s, color .12s;
  }
  #vista-prof .nov-fuente-item:hover {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--bg);
  }

  /* Dentro de un item destacado, los chips de fuentes con tono dorado */
  #vista-prof .nov-item-clave .nov-fuentes-list {
    border-color: #DDB37A;
    background: rgba(255,255,255,0.5);
  }
  #vista-prof .nov-item-clave .nov-fuente-item {
    border-color: #DDB37A;
    background: var(--bg);
    color: #412402;
  }
  #vista-prof .nov-item-clave .nov-fuente-item:hover {
    background: #BA7517;
    border-color: #BA7517;
    color: #FAEED5;
  }

  /* Estado de carga */
  #vista-prof .nov-loading {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 60px 0;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ink3);
  }

  /* Estado sin API key */
  #vista-prof .nov-demo-msg {
    background: var(--panel);
    border: 1px solid var(--border);
    padding: 28px 32px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px;
    line-height: 1.8;
    color: var(--ink2);
  }
  #vista-prof .nov-demo-msg strong { color: var(--ink); }

  #vista-prof .nov-demo-banner {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--accent);
    border: 1px solid rgba(26,95,214,0.25);
    background: rgba(26,95,214,0.05);
    padding: 6px 12px;
    margin: 20px 0;
    display: inline-block;
  }

  /* Fallback: lista de titulares RSS */
  #vista-prof .nov-titular-item {
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
  }
  #vista-prof .nov-titular-item:last-child { border-bottom: none; }
  #vista-prof .nov-titular-fuente {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ink3);
    margin-bottom: 3px;
  }
  #vista-prof .nov-titular-txt {
    font-size: 13px;
    color: var(--ink);
    line-height: 1.4;
  }

  /* ═══════════════════════════════════════════════════════════
     SUB-TAB ORGANIGRAMA (dentro de Actores)
  ═══════════════════════════════════════════════════════════ */
  /* Panel izquierdo — lista de organismos */
  #vista-prof #org-left {
    width: 240px; min-width: 240px;
    background: var(--panel); border-right: 1px solid var(--border);
    display: flex; flex-direction: column; flex-shrink: 0;
  }
  #vista-prof .org-list-item {
    padding: 10px 14px; border-bottom: 1px solid var(--border);
    cursor: pointer; transition: background .12s;
  }
  #vista-prof .org-list-item:hover   { background: rgba(26,24,20,.04); }
  #vista-prof .org-list-item.active  { background: var(--ink); color: var(--bg); }
  #vista-prof .org-list-nombre {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 11px;
    font-weight: 500; line-height: 1.35;
  }
  #vista-prof .org-list-titular {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    color: var(--ink3); margin-top: 2px; line-height: 1.3;
  }
  #vista-prof .org-list-item.active .org-list-titular { color: rgba(245,240,232,.6); }

  /* Panel derecho — detalle */
  #vista-prof #org-right {
    flex: 1; overflow-y: auto; padding: 28px 32px;
    background: var(--bg);
  }

  /* Cabecera del organismo */
  #vista-prof .org-header {
    padding-bottom: 18px; margin-bottom: 20px;
    border-bottom: 2px solid var(--ink);
  }
  #vista-prof .org-header-nombre {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 22px;
    font-weight: 700; line-height: 1.2; margin-bottom: 8px;
  }
  #vista-prof .org-header-row {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  }
  #vista-prof .org-header-cargo {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 1.5px; color: var(--ink3);
  }
  #vista-prof .org-header-titular {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 13px;
    font-weight: 500;
  }
  #vista-prof .org-actor-link {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    letter-spacing: 1px; padding: 2px 8px; border: 1px solid var(--ink);
    text-transform: uppercase; cursor: pointer; background: transparent;
    transition: background .12s, color .12s; display: inline-block;
  }
  #vista-prof .org-actor-link:hover { background: var(--ink); color: var(--bg); }

  /* Secretarías */
  #vista-prof .org-sec {
    border: 1px solid var(--border); margin-bottom: 8px;
    background: var(--panel);
  }
  #vista-prof .org-sec-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 14px; cursor: pointer; gap: 10px;
    transition: background .12s; user-select: none;
  }
  #vista-prof .org-sec-header:hover { background: rgba(26,24,20,.04); }
  #vista-prof .org-sec.open .org-sec-header { background: rgba(26,24,20,.06); }
  #vista-prof .org-sec-info { flex: 1; min-width: 0; }
  #vista-prof .org-sec-nombre {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 11px;
    font-weight: 500; line-height: 1.3;
  }
  #vista-prof .org-sec-titular {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    color: var(--ink3); margin-top: 2px;
  }
  #vista-prof .org-sec-toggle {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    color: var(--ink3); flex-shrink: 0; transition: transform .15s;
  }
  #vista-prof .org-sec.open .org-sec-toggle { transform: rotate(90deg); }
  #vista-prof .org-subsec-list {
    display: none; border-top: 1px solid var(--border);
    padding: 4px 0;
  }
  #vista-prof .org-sec.open .org-subsec-list { display: block; }
  #vista-prof .org-subsec-item {
    display: flex; align-items: baseline; gap: 10px;
    padding: 6px 14px 6px 20px; border-bottom: 1px solid rgba(26,24,20,.05);
  }
  #vista-prof .org-subsec-item:last-child { border-bottom: none; }
  #vista-prof .org-subsec-nombre {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 10px;
    color: var(--ink2); flex: 1; line-height: 1.3;
  }
  #vista-prof .org-subsec-titular {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    color: var(--ink3); flex-shrink: 0; text-align: right; max-width: 200px; line-height: 1.3;
  }
  #vista-prof .org-empty-state {
    display: flex; flex-direction: column; align-items: center;
    justify-content: center; height: 100%; text-align: center;
    color: var(--ink3);
  }
  #vista-prof .org-empty-wm {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 48px;
    font-weight: 700; opacity: .07; letter-spacing: 4px;
    margin-bottom: 12px;
  }
  #vista-prof .org-empty-sub {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 2px;
  }

  /* ═══════════════════════════════════════════════════════════
     RESPONSIVE — SMALL MOBILE (≤480px)
  ═══════════════════════════════════════════════════════════ */
  @media (max-width: 480px) {
    #vista-prof .pf-name { font-size: 18px; }
    #vista-prof .pf-meta { flex-direction: column; gap: 6px; }
    #vista-prof .bol-d-titulo { font-size: 17px; }
    #vista-prof .vot-card-titulo { font-size: 14px; }
    #vista-prof .proy-estim { padding: 8px 10px; }
  }

  /* ═══════════════════════════════════════════════════════════
     TAB — MAPA POLÍTICO
  ═══════════════════════════════════════════════════════════ */
  #vista-prof #tab-mapa {
    flex-direction: row;
    position: relative;
    overflow: hidden;
  }
  #vista-prof #mapa-canvas {
    flex: 1;
    min-width: 0;
    position: relative;
    background:
      radial-gradient(circle at 30% 20%, rgba(123,107,168,0.04), transparent 55%),
      radial-gradient(circle at 80% 70%, rgba(58,95,140,0.04), transparent 55%),
      var(--bg);
    overflow: hidden;
  }
  #vista-prof .mapa-svg {
    display: block;
    width: 100%;
    height: 100%;
  }
  #vista-prof .mapa-loading {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px; text-transform: uppercase; letter-spacing: 2px;
    color: var(--ink3);
  }

  /* ── Etiquetas de cluster ─────────────────────────────────── */
  #vista-prof .mp-cluster-label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 2.5px;
    fill: var(--ink3);
    pointer-events: none;
    user-select: none;
  }

  /* ── Etiquetas de sub-cluster institucional ──────────────── */
  #vista-prof .mp-subcluster-label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 7.5px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    opacity: 0.65;
    pointer-events: none;
    user-select: none;
  }

  /* ── Labels de nodos (debajo de cada nodo, estilo Obsidian) ─ */
  #vista-prof .mp-label {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 8.5px;
    font-weight: 400;
    fill: var(--ink2);
    pointer-events: none;
    user-select: none;
    transition: font-weight .15s, fill .15s;
    /* Halo blanco para que el nombre no quede tapado por nodos vecinos */
    stroke: #EAF0F8;
    stroke-width: 3px;
    stroke-linejoin: round;
    paint-order: stroke fill;
  }
  #vista-prof .mp-label-hecho {
    font-weight: 500;
    font-style: italic;
  }
  #vista-prof .mp-label-active {
    font-weight: 600;
    fill: var(--ink);
    font-size: 10.5px;
  }
  #vista-prof .mp-label-vecino {
    font-weight: 500;
    fill: var(--ink);
  }

  /* ── Hechos: aspecto de cuadrado ───────────────────────────── */
  #vista-prof .mp-node rect { transition: stroke-width .15s; }
  #vista-prof .mp-node circle { transition: stroke-width .15s; }

  /* ── Selección visual del nodo activo ─────────────────────── */
  #vista-prof .mp-node.mp-selected circle,
  #vista-prof .mp-node.mp-selected rect {
    stroke: var(--ink);
  }

  /* ── Panel lateral del Mapa ───────────────────────────────── */
  #vista-prof #mapa-panel {
    width: 340px; min-width: 340px; max-width: 340px;
    height: 100%;
    background: var(--panel);
    border-left: 1px solid var(--border);
    overflow-y: auto;
    padding: 22px 22px 28px;
    transition: transform .25s ease, width .2s ease, opacity .15s;
    position: relative;
    z-index: 5;
  }
  #vista-prof #mapa-panel.mapa-panel-hidden {
    width: 0; min-width: 0; max-width: 0;
    padding: 0;
    border-left: none;
    overflow: hidden;
    opacity: 0;
  }
  #vista-prof .mapa-panel-close {
    position: absolute; top: 10px; right: 12px;
    background: transparent; border: none;
    font-size: 22px; line-height: 1;
    color: var(--ink3);
    cursor: pointer;
    padding: 4px 8px;
    transition: color .12s;
  }
  #vista-prof .mapa-panel-close:hover { color: var(--ink); }

  #vista-prof .mp-header {
    display: flex; gap: 14px; align-items: flex-start;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 18px;
  }
  #vista-prof .mp-avatar {
    width: 44px; height: 44px;
    flex-shrink: 0;
    border-radius: 50%;
    color: #fff;
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 14px; font-weight: 600;
    display: flex; align-items: center; justify-content: center;
  }
  #vista-prof .mp-hecho-icon {
    width: 44px; height: 44px;
    flex-shrink: 0;
    border: 2px solid;
    background: transparent;
    font-size: 22px; line-height: 1;
    display: flex; align-items: center; justify-content: center;
    border-radius: 3px;
  }
  #vista-prof .mp-header-text { flex: 1; min-width: 0; padding-top: 2px; }
  #vista-prof .mp-name {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 18px; font-weight: 600;
    line-height: 1.25;
    color: var(--ink);
    margin-bottom: 4px;
  }
  #vista-prof .mp-sub {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ink3);
    margin-bottom: 8px;
  }
  #vista-prof .mp-cluster-pill {
    display: inline-block;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8.5px;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    border: 1px solid;
    padding: 2px 7px;
  }

  #vista-prof .mp-section { margin-bottom: 20px; }
  #vista-prof .mp-section-title {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--ink3);
    margin-bottom: 10px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--border);
  }
  #vista-prof .mp-vinculos { display: flex; flex-direction: column; gap: 6px; }
  #vista-prof .mp-vinculo {
    display: flex; gap: 8px;
    padding: 8px 10px;
    background: var(--bg);
    border: 1px solid var(--border);
    cursor: pointer;
    transition: border-color .12s, background .12s;
  }
  #vista-prof .mp-vinculo:hover {
    border-color: var(--accent);
    background: rgba(26,95,214,0.04);
  }
  #vista-prof .mp-vinculo-arrow {
    font-family: 'IBM Plex Mono', monospace;
    color: var(--ink3);
    font-size: 11px;
    line-height: 1.3;
  }
  #vista-prof .mp-vinculo-cuerpo { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
  #vista-prof .mp-vinculo-otro {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 12px;
    color: var(--ink);
    line-height: 1.3;
  }
  #vista-prof .mp-vinculo-tipo {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8.5px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ink3);
  }
  #vista-prof .mp-vinculo-tension { border-left: 2px solid #a02020; }

  #vista-prof .mp-briefing {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--ink2);
  }

  #vista-prof .mp-descripcion {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--ink2);
  }

  #vista-prof .mp-alerta {
    background: rgba(160, 32, 32, 0.07);
    border-left: 3px solid #a02020;
    padding: 10px 14px;
    margin-bottom: 20px;
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 11.5px;
    line-height: 1.55;
    color: #6a1818;
  }

  #vista-prof .mp-empty {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    color: var(--ink3);
    text-align: center;
    padding: 14px 0;
  }

  #vista-prof .mp-cta {
    width: 100%;
    margin-top: 8px;
    padding: 10px 14px;
    background: var(--ink);
    color: var(--bg);
    border: none;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9.5px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    cursor: pointer;
    transition: background .12s;
  }
  #vista-prof .mp-cta:hover { background: var(--accent); }

  /* ── Leyenda inferior del mapa ───────────────────────────── */
  #vista-prof #mapa-zoom-controls {
    position: absolute;
    top: 14px; right: 14px;
    display: flex; flex-direction: column; gap: 4px;
    z-index: 5;
  }
  #vista-prof #mapa-zoom-controls button {
    width: 30px; height: 30px;
    background: rgba(250,249,245,0.92);
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: 15px;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    color: var(--ink2);
    backdrop-filter: blur(2px);
    transition: background .12s, color .12s;
  }
  #vista-prof #mapa-zoom-controls button:hover {
    background: var(--bg2);
    color: var(--ink);
  }

  #vista-prof #mapa-leyenda {
    position: absolute;
    bottom: 14px; left: 14px;
    background: rgba(250,249,245,0.92);
    border: 1px solid var(--border);
    padding: 10px 14px;
    display: flex; gap: 26px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    color: var(--ink2);
    z-index: 4;
    backdrop-filter: blur(2px);
    max-width: calc(100% - 380px);
  }
  #vista-prof .leyenda-grupo { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
  #vista-prof .leyenda-titulo {
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--ink3);
    margin-bottom: 3px;
  }
  #vista-prof .leyenda-item {
    display: flex; align-items: center; gap: 6px;
    text-transform: capitalize;
  }
  #vista-prof .leyenda-item[data-filter] {
    cursor: pointer;
    border-radius: 3px;
    padding: 2px 5px;
    margin: -2px -5px;
    transition: opacity .15s, background .15s, font-weight .15s;
  }
  #vista-prof .leyenda-item[data-filter]:hover {
    background: rgba(0,0,0,0.07);
  }
  #vista-prof .leyenda-item.leyenda-activo {
    background: rgba(0,0,0,0.10);
    font-weight: 600;
    color: var(--ink);
  }
  #vista-prof .leyenda-item.leyenda-inactivo {
    opacity: 0.3;
  }
  #vista-prof .leyenda-dot {
    display: inline-block;
    width: 10px; height: 10px;
    border-radius: 50%;
  }
  #vista-prof .leyenda-oficialismo   { background: #7B6BA8; }
  #vista-prof .leyenda-aliados       { background: #C68847; }
  #vista-prof .leyenda-oposicion     { background: #3A5F8C; }
  #vista-prof .leyenda-medios        { background: #6B8847; }
  #vista-prof .leyenda-internacional { background: #8A8580; }
  #vista-prof .leyenda-institucional { background: #5C7A8A; }

  /* ── Responsive del Mapa ─────────────────────────────────── */
  @media (max-width: 1024px) {
    #vista-prof #mapa-panel { width: 280px; min-width: 280px; max-width: 280px; }
    #vista-prof #mapa-leyenda { max-width: calc(100% - 320px); gap: 18px; }
  }
  @media (max-width: 768px) {
    #vista-prof #tab-mapa { flex-direction: column; }
    #vista-prof #mapa-canvas { height: 60vh; min-height: 360px; }
    #vista-prof #mapa-panel {
      width: 100%; min-width: 0; max-width: none;
      max-height: 40vh;
      border-left: none; border-top: 1px solid var(--border);
    }
    #vista-prof #mapa-panel.mapa-panel-hidden {
      max-height: 0; border-top: none;
    }
    #vista-prof #mapa-leyenda {
      position: static; max-width: none;
      flex-direction: column; gap: 10px;
      margin: 0 14px 14px;
    }
  }

  /* ══════════════════════════════════════════════════════════════
     TAB · SEGUIMIENTO  (proyectos legislativos como procesos
     dinámicos y probabilísticos — lista filtrable + ficha detalle)
  ════════════════════════════════════════════════════════════════ */

  /* layout: subbar arriba + 2 columnas (lista + detalle) */
  #vista-prof #tab-seguimiento { flex-direction: column; }

  #vista-prof #seg-subbar {
    display: flex; align-items: center; gap: 14px;
    height: 44px; padding: 0 18px; flex-shrink: 0;
    background: var(--bg); border-bottom: 1px solid var(--border);
  }
  #vista-prof #seg-toggle {
    display: inline-flex; gap: 0;
    border: 1px solid var(--border-s);
  }
  #vista-prof .seg-toggle-btn {
    padding: 5px 12px; background: transparent; border: none;
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 1.5px;
    color: var(--ink3); cursor: pointer;
    border-right: 1px solid var(--border);
  }
  #vista-prof .seg-toggle-btn:last-child { border-right: none; }
  #vista-prof .seg-toggle-btn:hover { color: var(--ink2); }
  #vista-prof .seg-toggle-btn.active { background: var(--ink); color: #fff; }

  #vista-prof #seg-search {
    height: 28px; padding: 0 10px; min-width: 240px;
    border: 1px solid var(--border); background: var(--panel);
    font-family: 'IBM Plex Sans', sans-serif; font-size: 12px;
    color: var(--ink); outline: none;
  }
  #vista-prof #seg-search:focus { background: var(--bg); border-color: var(--border-s); }

  #vista-prof .seg-filters { display: flex; gap: 6px; }
  #vista-prof .seg-filter {
    padding: 5px 10px; background: var(--panel); border: 1px solid transparent;
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 1px;
    color: var(--ink2); cursor: pointer;
  }
  #vista-prof .seg-filter:hover  { background: rgba(17,17,17,0.06); }
  #vista-prof .seg-filter.active { border-color: var(--accent); color: var(--accent); background: var(--bg); }
  #vista-prof .seg-filter::after { content: ' ▾'; color: var(--ink3); font-size: 8px; }

  #vista-prof .seg-counter {
    margin-left: auto;
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 1.5px; color: var(--ink3);
  }

  /* ── 2 columnas ───────────────────────────────────────────── */
  #vista-prof #seg-main {
    display: grid; grid-template-columns: 380px 1fr;
    flex: 1; min-height: 0;
  }

  /* ══ LISTA ════════════════════════════════════════════════════ */
  #vista-prof #seg-list-col {
    border-right: 1px solid var(--border);
    background: var(--bg);
    display: flex; flex-direction: column;
    overflow: hidden;
  }
  #vista-prof #seg-list { overflow-y: auto; flex: 1; }

  #vista-prof .seg-empty {
    padding: 40px 20px; text-align: center;
    color: var(--ink3); font-size: 12px;
  }

  #vista-prof .seg-item {
    position: relative;
    padding: 14px 18px;
    border-bottom: 1px solid var(--border);
    cursor: pointer;
    transition: background .12s;
  }
  #vista-prof .seg-item:hover    { background: var(--panel); }
  #vista-prof .seg-item.selected { background: var(--panel); }
  #vista-prof .seg-item.selected::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 3px; background: var(--accent);
  }
  #vista-prof .seg-star {
    position: absolute; top: 14px; right: 16px;
    color: var(--accent); font-size: 12px;
  }

  #vista-prof .seg-meta-top {
    display: flex; gap: 6px; align-items: baseline;
    margin-bottom: 6px;
  }
  #vista-prof .seg-exp, #vista-prof .seg-cam {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 1.2px; color: var(--ink3);
  }
  #vista-prof .seg-titulo {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 13px; font-weight: 500; color: var(--ink);
    line-height: 1.35; margin-bottom: 8px; padding-right: 18px;
  }
  #vista-prof .seg-tags-row { display: flex; gap: 5px; flex-wrap: wrap; align-items: center; margin-bottom: 7px; }
  #vista-prof .seg-tag {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    padding: 2px 6px; background: rgba(17,17,17,0.06); color: var(--ink2);
    text-transform: uppercase; letter-spacing: 1px; line-height: 1.6;
  }

  /* ── escala cualitativa de probabilidad — chips y colores ── */
  #vista-prof .seg-prob {
    display: inline-block;
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    padding: 2px 7px; line-height: 1.7;
    text-transform: uppercase; letter-spacing: 1px; font-weight: 600;
    border: 1px solid;
  }
  #vista-prof .seg-prob-muyalta { color: #1d5a1d; border-color: #1d5a1d; background: rgba(29,90,29,0.08); }
  #vista-prof .seg-prob-alta    { color: #2f7a2f; border-color: #2f7a2f; background: rgba(47,122,47,0.07); }
  #vista-prof .seg-prob-posible { color: #8a6a00; border-color: #8a6a00; background: rgba(138,107,0,0.07); }
  #vista-prof .seg-prob-baja    { color: #a8462e; border-color: #a8462e; background: rgba(168,70,46,0.07); }
  #vista-prof .seg-prob-muybaja { color: var(--red); border-color: var(--red); background: rgba(138,32,32,0.07); }

  #vista-prof .seg-last {
    display: flex; align-items: center; gap: 6px;
    font-size: 11px; color: var(--ink2);
  }
  #vista-prof .seg-last-arrow { color: var(--ink3); font-size: 10px; }
  #vista-prof .seg-last-txt   { flex: 1; }
  #vista-prof .seg-delta {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    letter-spacing: 0.5px;
  }
  #vista-prof .seg-delta.up   { color: #2f7a2f; }
  #vista-prof .seg-delta.down { color: var(--red); }

  /* ══ DETALLE ════════════════════════════════════════════════════ */
  #vista-prof #seg-detalle {
    overflow-y: auto;
    background: var(--bg);
  }

  #vista-prof .seg-empty-detail {
    height: 100%; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 10px;
    color: var(--ink3);
  }
  #vista-prof .seg-empty-detail .empty-wm {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 60px;
    color: rgba(17,17,17,0.06); letter-spacing: 8px;
  }
  #vista-prof .seg-empty-detail .empty-sub {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    text-transform: uppercase; letter-spacing: 2px;
  }

  #vista-prof .seg-d-header {
    padding: 24px 32px 18px;
    border-bottom: 1px solid var(--border);
  }
  #vista-prof .seg-d-meta {
    display: flex; gap: 10px; align-items: center;
    margin-bottom: 10px;
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 1.5px; color: var(--ink3);
  }
  #vista-prof .seg-d-sep { opacity: 0.4; }
  #vista-prof .seg-d-titulo {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 26px; font-weight: 700;
    line-height: 1.18; letter-spacing: -0.4px;
    color: var(--ink); margin-bottom: 14px;
    max-width: 800px;
  }
  #vista-prof .seg-d-actions { display: flex; gap: 8px; flex-wrap: wrap; }
  #vista-prof .seg-btn {
    padding: 6px 12px;
    background: var(--bg); border: 1px solid var(--border-s);
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 1px;
    color: var(--ink); cursor: pointer;
  }
  #vista-prof .seg-btn:hover { background: var(--panel); }
  #vista-prof .seg-btn-primary {
    background: var(--accent); border-color: var(--accent); color: #fff;
  }
  #vista-prof .seg-btn-primary:hover { background: #c8561a; }
  #vista-prof .seg-btn-following {
    background: var(--bg); color: var(--accent); border-color: var(--accent);
  }

  #vista-prof .seg-d-body { padding: 22px 32px 60px; }

  #vista-prof .seg-section { margin-bottom: 26px; }
  #vista-prof .seg-sec-title {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 2px; color: var(--ink3);
    padding-bottom: 8px; margin-bottom: 12px;
    border-bottom: 1px solid var(--border);
    display: flex; align-items: baseline; gap: 8px;
  }
  #vista-prof .seg-sec-sub {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 10px;
    text-transform: none; letter-spacing: 0; color: var(--ink3);
  }

  #vista-prof .seg-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  #vista-prof .seg-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
  #vista-prof .seg-card {
    background: var(--panel); padding: 14px 16px;
    border: 1px solid var(--border);
  }
  #vista-prof .seg-card-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 1.5px;
    color: var(--ink3); margin-bottom: 8px;
  }
  #vista-prof .seg-card-val {
    font-size: 16px; font-weight: 500; color: var(--ink);
    line-height: 1.3;
  }
  #vista-prof .seg-card-sub {
    font-size: 11px; color: var(--ink3); margin-top: 6px;
  }

  #vista-prof .seg-prob-large {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 5px 12px;
    font-family: 'IBM Plex Mono', monospace; font-size: 13px;
    text-transform: uppercase; letter-spacing: 1.5px; font-weight: 600;
    border: 1px solid;
  }
  #vista-prof .seg-prob-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }

  /* ── línea de vida ───────────────────────────────────────── */
  #vista-prof .seg-lifeline-card {
    background: var(--panel); padding: 18px 16px 12px;
    border: 1px solid var(--border);
  }
  #vista-prof .seg-lifeline-svg { display: block; width: 100%; height: 230px; }
  #vista-prof .seg-leg {
    display: flex; gap: 16px; margin-top: 6px;
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    color: var(--ink3); text-transform: uppercase; letter-spacing: 1px;
  }
  #vista-prof .seg-leg-item { display: inline-flex; align-items: center; gap: 6px; }
  #vista-prof .seg-leg-marker {
    width: 9px; height: 9px; border-radius: 50%; background: var(--accent);
  }
  #vista-prof .seg-leg-marker.line { border-radius: 0; height: 2px; width: 16px; }
  #vista-prof .seg-leg-marker.muted { background: var(--ink3); }

  /* ── actores ─────────────────────────────────────────────── */
  #vista-prof .seg-actor-bucket {
    background: var(--panel); padding: 12px 14px;
    border: 1px solid var(--border);
  }
  #vista-prof .seg-bucket-title {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 1.5px;
    margin-bottom: 8px;
    display: flex; align-items: center; gap: 6px;
  }
  #vista-prof .seg-bucket-imp { color: #2f7a2f; }
  #vista-prof .seg-bucket-blo { color: var(--red); }
  #vista-prof .seg-bucket-neu { color: var(--ink2); }
  #vista-prof .seg-bucket-dot { width: 6px; height: 6px; border-radius: 50%; }
  #vista-prof .seg-bucket-dot.imp { background: #2f7a2f; }
  #vista-prof .seg-bucket-dot.blo { background: var(--red); }
  #vista-prof .seg-bucket-dot.neu { background: var(--ink3); }

  #vista-prof .seg-actor-row {
    display: flex; align-items: center; gap: 10px;
    padding: 5px 0; font-size: 12px;
    border-bottom: 1px solid rgba(17,17,17,0.04);
  }
  #vista-prof .seg-actor-row:last-child { border-bottom: none; }
  #vista-prof .seg-actor-avt {
    width: 24px; height: 24px; border-radius: 50%;
    background: rgba(17,17,17,0.08); color: var(--ink2);
    display: flex; align-items: center; justify-content: center;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; font-weight: 600;
    flex-shrink: 0;
  }
  #vista-prof .seg-actor-name { font-weight: 500; color: var(--ink); }
  #vista-prof .seg-actor-rol {
    margin-left: auto;
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 1px; color: var(--ink3);
  }

  /* ── reasoning (por qué la probabilidad) ──────────────── */
  #vista-prof .seg-reasoning {
    background: var(--panel); padding: 12px 16px;
    border: 1px solid var(--border);
  }
  #vista-prof .seg-reason {
    display: flex; gap: 12px; align-items: flex-start;
    padding: 9px 0; font-size: 12.5px;
    border-bottom: 1px solid rgba(17,17,17,0.05);
  }
  #vista-prof .seg-reason:last-child { border-bottom: none; }
  #vista-prof .seg-reason-icon {
    font-family: 'IBM Plex Mono', monospace; font-weight: 700;
    width: 18px; flex-shrink: 0; text-align: center;
  }
  #vista-prof .seg-reason-icon.up     { color: #2f7a2f; }
  #vista-prof .seg-reason-icon.down   { color: var(--red); }
  #vista-prof .seg-reason-icon.neutro { color: var(--ink3); }
  #vista-prof .seg-reason-txt { color: var(--ink); line-height: 1.5; }

  /* ── eventos ─────────────────────────────────────────────── */
  #vista-prof .seg-eventos { display: flex; flex-direction: column; }
  #vista-prof .seg-evento {
    display: grid; grid-template-columns: 80px 1fr 80px;
    gap: 14px; padding: 12px 0;
    border-bottom: 1px solid var(--border);
    align-items: start;
  }
  #vista-prof .seg-evento:last-child { border-bottom: none; }
  #vista-prof .seg-ev-fecha {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    text-transform: uppercase; letter-spacing: 1px; color: var(--ink3);
    padding-top: 2px;
  }
  #vista-prof .seg-ev-desc { font-size: 12.5px; color: var(--ink); line-height: 1.5; }
  #vista-prof .seg-ev-fuente {
    display: inline-block; margin-top: 4px; margin-right: 8px;
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    color: var(--accent); text-transform: uppercase; letter-spacing: 1px;
  }
  #vista-prof .seg-ev-fuente:hover { text-decoration: underline; }
  #vista-prof .seg-ev-impact {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    text-align: right; padding-top: 2px; letter-spacing: 0.5px;
  }
  #vista-prof .seg-ev-impact.up      { color: #2f7a2f; }
  #vista-prof .seg-ev-impact.down    { color: var(--red); }
  #vista-prof .seg-ev-impact.neutral { color: var(--ink3); }
  #vista-prof .seg-conf-low {
    display: inline-block;
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    padding: 1px 5px; letter-spacing: 0.8px;
    background: rgba(138,107,0,0.10); color: #8a6a00;
    text-transform: uppercase;
    vertical-align: middle;
  }

  #vista-prof .seg-placeholder {
    padding: 24px; background: var(--panel);
    border: 1px solid var(--border);
    color: var(--ink2); font-size: 13px; line-height: 1.55;
    text-align: center;
  }
  #vista-prof .seg-placeholder b { color: var(--ink); }

  /* responsive: en pantallas chicas pasar a 1 columna */
  @media (max-width: 1100px) {
    #vista-prof #seg-main { grid-template-columns: 1fr; }
    #vista-prof #seg-list-col { max-height: 280px; border-right: none; border-bottom: 1px solid var(--border); }
  }

  /* ══════════════════════════════════════════════════════════════
     TAB IMAGEN PÚBLICA — Rediseño v2
  ═══════════════════════════════════════════════════════════════ */
  #vista-prof #tab-imagen { flex-direction: column; }

  #vista-prof .img-pub-wrap {
    display: flex; flex-direction: column;
    flex: 1; min-height: 0; width: 100%; overflow: hidden;
  }
  #vista-prof .img-pub-header {
    padding: 14px 28px;
    border-bottom: 1px solid var(--border);
    display: flex; align-items: center; justify-content: space-between;
    flex-shrink: 0;
  }
  #vista-prof .img-pub-sub {
    font-size: 11px; color: var(--ink3); margin-left: 12px;
  }
  #vista-prof .img-pub-scroll {
    flex: 1; overflow-y: auto; padding: 28px 40px;
  }
  @media (max-width: 900px) { #vista-prof .img-pub-scroll { padding: 20px 16px; } }

  #vista-prof .ejec-updated { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink3); letter-spacing: 0.5px; }

  /* Chip de fuente (shared) */
  #vista-prof .ejec-fuente-chip { margin-top: 10px; }
  #vista-prof .ejec-fuente-chip, #vista-prof .ejec-fuente-chip a {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    text-transform: uppercase; letter-spacing: 1.2px;
    color: var(--ink3); text-decoration: none;
  }
  #vista-prof .ejec-fuente-chip a:hover { color: var(--accent); text-decoration: underline; }

  /* ── Lectura del momento ── */
  #vista-prof .img-narrativa {
    background: var(--panel); border-left: 3px solid var(--accent);
    padding: 16px 20px; margin-bottom: 32px;
  }
  #vista-prof .img-narr-label {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 1.5px;
    color: var(--accent); font-weight: 600; margin-bottom: 8px;
  }
  #vista-prof .img-narr-text {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 13px;
    color: var(--ink); line-height: 1.7;
  }

  /* ── Secciones numeradas ── */
  #vista-prof .img-seccion {
    margin-bottom: 40px;
    padding-bottom: 40px;
    border-bottom: 1px solid var(--border);
  }
  #vista-prof .img-seccion:last-child { border-bottom: none; }

  #vista-prof .img-seccion-num {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    color: var(--accent); letter-spacing: 1.5px; font-weight: 600;
    margin-bottom: 6px;
  }
  #vista-prof .img-seccion-head {
    display: flex; justify-content: space-between; align-items: flex-end;
    margin-bottom: 18px; padding-bottom: 12px;
    border-bottom: 1px solid var(--border);
  }
  #vista-prof .img-seccion-titulo {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 16px;
    font-weight: 600; color: var(--ink); margin-bottom: 3px;
  }
  #vista-prof .img-seccion-sub {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 11px; color: var(--ink3);
  }

  /* ── KPI row (generic) ── */
  #vista-prof .img-kpi-row {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px; margin-bottom: 18px;
  }
  #vista-prof .img-kpi {
    background: var(--panel); padding: 14px 16px;
    display: flex; flex-direction: column;
  }
  #vista-prof .img-kpi-label {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 0.8px;
    color: var(--ink3); margin-bottom: 6px;
  }
  #vista-prof .img-kpi-valor {
    font-size: 28px; font-weight: 700; color: var(--ink); line-height: 1;
    font-family: 'IBM Plex Sans', sans-serif;
  }
  #vista-prof .img-kpi-valor.pos { color: #2f7a2f; }
  #vista-prof .img-kpi-valor.neg { color: #b33a2a; }
  #vista-prof .img-kpi-valor.accent { color: var(--accent); }
  #vista-prof .img-kpi-delta {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    font-weight: 600; margin-top: 6px;
  }
  #vista-prof .img-kpi-delta.up { color: #2f7a2f; }
  #vista-prof .img-kpi-delta.down { color: #b33a2a; }
  #vista-prof .img-kpi-source {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    color: var(--ink3); margin-top: 6px;
  }

  /* ── Chart box ── */
  #vista-prof .img-chart-box {
    background: var(--panel); border: 1px solid var(--border);
    padding: 16px 12px 10px;
  }
  #vista-prof .img-chart-note {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    color: var(--ink3); text-align: right; margin-top: 6px;
    letter-spacing: 0.3px;
  }

  #vista-prof .img-pub-empty {
    padding: 24px; font-size: 11px; color: var(--ink3);
    font-style: italic; text-align: center;
  }

  /* ── Pollster legend ── */
  #vista-prof .img-pollster-legend {
    display: flex; flex-wrap: wrap; gap: 14px;
    margin-bottom: 14px;
    font-family: 'IBM Plex Sans', sans-serif; font-size: 11px; color: var(--ink3);
  }
  #vista-prof .img-poll-item { display: flex; align-items: center; gap: 5px; }
  #vista-prof .img-poll-dot {
    width: 8px; height: 8px; border-radius: 2px;
    display: inline-block;
  }

  /* ── Problemas del país ── */
  #vista-prof .img-problemas-grid { margin-bottom: 18px; }
  #vista-prof .img-prob-row {
    display: flex; align-items: center; gap: 12px;
    padding: 8px 12px; margin-bottom: 6px;
    background: var(--panel); border-radius: 4px;
  }
  #vista-prof .img-prob-name {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 13px;
    color: var(--ink); min-width: 130px;
  }
  #vista-prof .img-prob-bar-wrap {
    flex: 1; height: 8px; background: var(--border);
    border-radius: 4px; overflow: hidden;
  }
  #vista-prof .img-prob-bar {
    height: 100%; border-radius: 4px;
    transition: width 0.5s ease;
  }
  #vista-prof .img-prob-pct {
    font-family: 'IBM Plex Mono', monospace; font-size: 13px;
    font-weight: 600; min-width: 40px; text-align: right;
  }

  /* ── Timeline ── */
  #vista-prof .img-tl-wrap {
    position: relative; padding-left: 24px;
  }
  #vista-prof .img-tl-wrap::before {
    content: ''; position: absolute;
    left: 7px; top: 10px; bottom: 10px;
    width: 1px; background: var(--border);
  }
  #vista-prof .img-tl-item {
    position: relative; margin-bottom: 18px;
    padding-left: 18px;
  }
  #vista-prof .img-tl-dot {
    position: absolute; left: -21px; top: 8px;
    width: 9px; height: 9px; border-radius: 50%;
    border: 2px solid var(--bg);
  }
  #vista-prof .img-tl-content {}
  #vista-prof .img-tl-date {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    color: var(--ink3); letter-spacing: 0.5px;
  }
  #vista-prof .img-tl-title {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 13px;
    font-weight: 600; color: var(--ink); margin-top: 2px;
  }
  #vista-prof .img-tl-desc {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 12px;
    color: var(--ink2); line-height: 1.5; margin-top: 3px;
  }
  #vista-prof .img-tl-impact {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    color: var(--ink3); margin-top: 4px;
  }
  #vista-prof .img-tl-impact.up { color: #2f7a2f; }
  #vista-prof .img-tl-impact.down { color: #b33a2a; }

  /* ── Electoral tabs ── */
  #vista-prof .img-tabs-row {
    display: flex; gap: 0; margin-bottom: 18px;
    border-bottom: 1px solid var(--border);
  }
  #vista-prof .img-tab-btn {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 12px;
    color: var(--ink3); padding: 8px 18px;
    background: none; border: none; cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: all .15s;
  }
  #vista-prof .img-tab-btn:hover { color: var(--ink); }
  #vista-prof .img-tab-btn.active {
    color: var(--ink); font-weight: 600;
    border-bottom-color: var(--accent);
  }

  /* Electoral legend */
  #vista-prof .img-elec-legend {
    display: flex; gap: 18px; margin-bottom: 10px;
    font-family: 'IBM Plex Sans', sans-serif; font-size: 11px; color: var(--ink3);
  }
  #vista-prof .img-elec-leg-item { display: flex; align-items: center; gap: 5px; }
  #vista-prof .img-elec-swatch {
    width: 14px; height: 10px; border-radius: 2px;
    display: inline-block; background: var(--accent);
  }
  #vista-prof .img-elec-swatch.solid { opacity: 0.9; }
  #vista-prof .img-elec-swatch.light { opacity: 0.25; }

  /* Electoral datos grid */
  #vista-prof .img-elec-datos-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
  }
  @media (max-width: 900px) { #vista-prof .img-elec-datos-grid { grid-template-columns: 1fr; } }
  #vista-prof .img-elec-datos-col {
    background: var(--panel); padding: 18px 20px; border-radius: 4px;
  }
  #vista-prof .img-elec-datos-title {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 13px;
    font-weight: 600; color: var(--ink); margin-bottom: 12px;
  }
  #vista-prof .img-elec-datos-sub {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    color: var(--ink3); margin-bottom: 12px; letter-spacing: 0.3px;
  }

  /* Frontera de dolor */
  #vista-prof .img-dolor-row {
    display: flex; align-items: center; gap: 10px;
    padding: 6px 0;
  }
  #vista-prof .img-dolor-label {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 12px;
    color: var(--ink); min-width: 120px;
  }
  #vista-prof .img-dolor-bar-wrap {
    flex: 1; height: 8px; background: var(--border);
    border-radius: 4px; overflow: hidden;
  }
  #vista-prof .img-dolor-bar {
    height: 100%; border-radius: 4px;
    transition: width 0.5s ease;
  }
  #vista-prof .img-dolor-pct {
    font-family: 'IBM Plex Mono', monospace; font-size: 12px;
    font-weight: 600; min-width: 40px; text-align: right;
  }

  /* Disclaimer */
  #vista-prof .img-disclaimer {
    display: flex; gap: 10px; align-items: flex-start;
    background: var(--panel); padding: 14px 16px;
    border-radius: 4px; margin-top: 18px;
    border: 1px solid var(--border);
  }
  #vista-prof .img-disc-icon {
    font-size: 14px; flex-shrink: 0; margin-top: 1px;
  }
  #vista-prof .img-disc-text {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 11px;
    color: var(--ink3); line-height: 1.5; font-style: italic;
  }
  #vista-prof .img-disc-fuentes {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    color: var(--ink3); margin-top: 6px; letter-spacing: 0.3px;
  }

  /* ── Candidato card + layout ── */
  #vista-prof .img-cand-layout {
    display: flex; gap: 16px; align-items: flex-start;
  }
  #vista-prof .img-cand-chart-area { flex: 1; min-width: 0; }
  #vista-prof .img-cand-card {
    width: 0; overflow: hidden; transition: width 0.25s ease, opacity 0.2s;
    opacity: 0; flex-shrink: 0;
  }
  #vista-prof .img-cand-card.visible {
    width: 280px; opacity: 1;
  }
  #vista-prof .img-cand-card-inner {
    position: relative;
    background: var(--panel); border: 1px solid var(--border);
    border-radius: 8px; padding: 16px; width: 280px;
  }
  #vista-prof .img-cand-card-close {
    position: absolute; top: 8px; right: 10px;
    background: none; border: none; font-size: 14px;
    color: var(--ink3); cursor: pointer;
  }
  #vista-prof .img-cand-card-close:hover { color: var(--ink); }
  #vista-prof .img-cand-card-name {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 15px; font-weight: 700; color: var(--ink);
    margin-bottom: 2px;
  }
  #vista-prof .img-cand-card-cargo {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px; color: var(--ink3); margin-bottom: 10px;
  }
  #vista-prof .img-cand-card-bio {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 11px; color: var(--ink2); line-height: 1.5;
    margin-bottom: 10px;
  }
  #vista-prof .img-cand-card-section { margin-bottom: 12px; }
  #vista-prof .img-cand-card-label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--accent); text-transform: uppercase;
    letter-spacing: 0.5px; margin-bottom: 4px;
  }
  #vista-prof .img-cand-card-text {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 11px; color: var(--ink2); line-height: 1.5;
  }
  #vista-prof .img-cand-card-btn {
    display: block; width: 100%;
    padding: 8px 12px; border: 1px solid var(--accent);
    background: transparent; border-radius: 5px;
    font-family: 'IBM Plex Sans', sans-serif; font-size: 11px;
    color: var(--accent); cursor: pointer; text-align: center;
    transition: background 0.15s, color 0.15s;
  }
  #vista-prof .img-cand-card-btn:hover {
    background: var(--accent); color: #fff;
  }

  /* ── Botón volver a electoral (en directorio) ── */
  #vista-prof .img-volver-electoral {
    margin-bottom: 14px;
  }
  #vista-prof .img-volver-electoral button {
    background: var(--panel); border: 1px solid var(--accent);
    border-radius: 5px; padding: 8px 14px;
    font-family: 'IBM Plex Sans', sans-serif; font-size: 12px;
    color: var(--accent); cursor: pointer;
    transition: background 0.15s, color 0.15s;
  }
  #vista-prof .img-volver-electoral button:hover {
    background: var(--accent); color: #fff;
  }

  /* ── Mapa Político Provincial ── */
  #vista-prof #tab-mapa-politico { flex-direction: column; }
  #vista-prof .mapa-tab-wrap {
    max-width: 900px; margin: 0 auto; padding: 28px 24px;
    flex: 1; overflow-y: auto; width: 100%;
  }
  #vista-prof .mapa-toggle {
    display: flex; gap: 4px; margin-bottom: 14px;
  }
  #vista-prof .mapa-toggle-btn {
    padding: 6px 14px; border: 1px solid var(--border);
    background: transparent; border-radius: 4px;
    font-family: 'IBM Plex Sans', sans-serif; font-size: 11px;
    color: var(--ink3); cursor: pointer; transition: all 0.15s;
  }
  #vista-prof .mapa-toggle-btn:hover { color: var(--ink); border-color: var(--ink3); }
  #vista-prof .mapa-toggle-btn.active {
    background: var(--accent); color: #fff; border-color: var(--accent);
  }
  #vista-prof .mapa-legend {
    display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 14px;
    font-family: 'IBM Plex Sans', sans-serif; font-size: 11px; color: var(--ink2);
  }
  #vista-prof .mapa-leg-item { display: flex; align-items: center; gap: 5px; }
  #vista-prof .mapa-leg-dot {
    width: 10px; height: 10px; border-radius: 3px; display: inline-block;
  }
  #vista-prof .mapa-stats {
    display: flex; gap: 24px; margin-bottom: 16px;
    padding: 10px 14px; background: var(--panel);
    border: 1px solid var(--border); border-radius: 6px;
  }
  #vista-prof .mapa-stat { text-align: center; }
  #vista-prof .mapa-stat-num {
    display: block; font-family: 'IBM Plex Mono', monospace;
    font-size: 22px; font-weight: 700; line-height: 1.2;
  }
  #vista-prof .mapa-stat-label {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 10px;
    color: var(--ink3); text-transform: uppercase; letter-spacing: 0.3px;
  }
  #vista-prof .mapa-main-layout {
    position: relative; margin-bottom: 16px;
  }
  #vista-prof .mapa-svg-wrap {
    max-width: 380px; margin: 0 auto;
  }
  #vista-prof .mapa-prov-path {
    transition: opacity 0.12s, stroke-width 0.12s; cursor: pointer;
  }
  #vista-prof .mapa-tooltip {
    position: absolute; top: 0; left: 0;
    background: var(--ink); color: #fff; padding: 10px 14px;
    border-radius: 6px; font-family: 'IBM Plex Sans', sans-serif;
    font-size: 11px; pointer-events: none;
    opacity: 0; transition: opacity 0.15s;
    max-width: 260px; z-index: 10;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  }
  #vista-prof .mapa-tooltip.visible { opacity: 1; }
  #vista-prof .mapa-tt-name {
    font-weight: 700; font-size: 13px; margin-bottom: 3px;
  }
  #vista-prof .mapa-tt-gob {
    font-size: 10px; opacity: 0.7; margin-bottom: 5px;
  }
  #vista-prof .mapa-tt-tag {
    font-weight: 600; font-size: 11px; margin-bottom: 4px;
  }
  #vista-prof .mapa-tt-nota {
    font-size: 10px; opacity: 0.8; line-height: 1.4;
  }
  #vista-prof .mapa-tt-bal {
    font-size: 12px; font-weight: 600;
  }
  #vista-prof .mapa-table-wrap {
    overflow-x: auto; margin-top: 14px;
  }
  #vista-prof .mapa-table {
    width: 100%; border-collapse: collapse;
    font-family: 'IBM Plex Sans', sans-serif; font-size: 11px;
  }
  #vista-prof .mapa-table th {
    text-align: left; padding: 8px 10px;
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    color: var(--ink3); text-transform: uppercase; letter-spacing: 0.4px;
    border-bottom: 1px solid var(--border);
  }
  #vista-prof .mapa-table td {
    padding: 7px 10px; border-bottom: 1px solid var(--border);
    color: var(--ink2); vertical-align: middle;
  }
  #vista-prof .mapa-table tr:hover td { background: var(--panel); }
  #vista-prof .mapa-td-prov { font-weight: 600; color: var(--ink); white-space: nowrap; }
  #vista-prof .mapa-td-gob { }
  #vista-prof .mapa-td-partido {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    color: var(--ink3); display: block; margin-top: 1px;
  }
  #vista-prof .mapa-tag {
    display: inline-block; padding: 2px 8px; border-radius: 3px;
    font-size: 10px; font-weight: 600; white-space: nowrap;
  }

  /* ── Filtros ── */
  #vista-prof .mapa-filters {
    display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
    margin-bottom: 12px;
  }
  #vista-prof .mapa-filters-label {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    color: var(--ink3); text-transform: uppercase; letter-spacing: 0.4px;
    margin-right: 4px;
  }
  #vista-prof .mapa-filter-chip {
    padding: 4px 10px; border: 1px solid var(--border);
    background: transparent; border-radius: 20px;
    font-family: 'IBM Plex Sans', sans-serif; font-size: 10px;
    color: var(--ink2); cursor: pointer; transition: all 0.15s;
  }
  #vista-prof .mapa-filter-chip:hover {
    border-color: var(--chip-color, var(--ink3));
    color: var(--chip-color, var(--ink));
  }
  #vista-prof .mapa-filter-chip.active {
    background: var(--chip-color, var(--accent));
    color: #fff; border-color: var(--chip-color, var(--accent));
  }
  #vista-prof .mapa-filter-clear {
    padding: 4px 10px; border: none;
    background: transparent; border-radius: 20px;
    font-family: 'IBM Plex Sans', sans-serif; font-size: 10px;
    color: var(--ink3); cursor: pointer; text-decoration: underline;
  }
  #vista-prof .mapa-filter-clear:hover { color: var(--ink); }

  /* ── Layout mapa + panel ── */
  #vista-prof .mapa-main-layout.mapa-panel-open {
    display: flex; gap: 16px; align-items: flex-start;
  }
  #vista-prof .mapa-panel-open .mapa-svg-wrap {
    flex: 1; min-width: 0;
  }

  /* ── Panel detalle ── */
  #vista-prof .mp-detail-panel {
    flex: 0 0 280px; max-width: 280px;
    background: var(--bg); border: 1px solid var(--border);
    border-radius: 8px; padding: 16px;
    font-family: 'IBM Plex Sans', sans-serif;
    position: relative;
    animation: mp-slide-in 0.2s ease-out;
  }
  @keyframes mp-slide-in {
    from { opacity: 0; transform: translateX(12px); }
    to { opacity: 1; transform: translateX(0); }
  }
  #vista-prof .mp-detail-close {
    position: absolute; top: 8px; right: 10px;
    background: none; border: none; font-size: 20px;
    color: var(--ink3); cursor: pointer; line-height: 1;
  }
  #vista-prof .mp-detail-close:hover { color: var(--ink); }
  #vista-prof .mp-detail-header {
    display: flex; align-items: center; gap: 8px; margin-bottom: 8px;
    flex-wrap: wrap;
  }
  #vista-prof .mp-detail-nombre {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 18px; font-weight: 700; color: var(--ink);
  }
  #vista-prof .mp-detail-gob { margin-bottom: 8px; }
  #vista-prof .mp-detail-gob-name {
    font-size: 13px; font-weight: 600; color: var(--ink);
  }
  #vista-prof .mp-detail-gob-partido {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    color: var(--ink3); margin-top: 1px;
  }
  #vista-prof .mp-detail-nota {
    font-size: 11px; color: var(--ink2); line-height: 1.5;
    margin-bottom: 10px;
  }
  #vista-prof .mp-detail-divider {
    height: 1px; background: var(--border); margin: 10px 0;
  }
  #vista-prof .mp-detail-section { margin-bottom: 10px; }
  #vista-prof .mp-detail-section-title {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 0.4px;
    color: var(--ink3); margin-bottom: 6px;
  }
  #vista-prof .mp-detail-bar-row {
    display: flex; align-items: center; gap: 6px; margin-bottom: 4px;
  }
  #vista-prof .mp-detail-bar-label {
    font-size: 10px; font-weight: 600; min-width: 50px; text-align: right;
  }
  #vista-prof .mp-detail-bar {
    flex: 1; height: 8px; background: var(--panel);
    border-radius: 4px; overflow: hidden;
  }
  #vista-prof .mp-detail-bar-fill {
    height: 100%; border-radius: 4px;
    transition: width 0.3s ease;
  }
  #vista-prof .mp-detail-bar-pct {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    color: var(--ink2); min-width: 32px;
  }
  #vista-prof .mp-detail-meta {
    font-size: 11px; color: var(--ink2);
  }
  #vista-prof .mp-detail-meta-item { display: block; margin-bottom: 3px; }

  /* ── Lista de perfiles de gobernadores ── */
  #vista-prof .mp-profiles {
    margin-top: 24px;
  }
  #vista-prof .mp-profiles-title {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 18px; font-weight: 700; color: var(--ink);
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--accent);
  }
  #vista-prof .mp-profile-group {
    margin-bottom: 20px;
  }
  #vista-prof .mp-profile-group-head {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 10px;
  }
  #vista-prof .mp-profile-group-dot {
    width: 10px; height: 10px; border-radius: 3px;
  }
  #vista-prof .mp-profile-group-label {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    text-transform: uppercase; letter-spacing: 0.4px;
    color: var(--ink2); font-weight: 600;
  }
  #vista-prof .mp-profile-group-count {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    color: var(--ink3); background: var(--panel);
    padding: 1px 6px; border-radius: 8px;
  }
  #vista-prof .mp-profile-card {
    display: flex; gap: 12px; padding: 12px 14px;
    border: 1px solid var(--border); border-radius: 8px;
    margin-bottom: 8px; cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
    background: var(--bg);
  }
  #vista-prof .mp-profile-card:hover {
    border-color: var(--ink3);
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  }
  #vista-prof .mp-profile-avatar {
    flex: 0 0 40px; height: 40px;
    border-radius: 50%; display: flex;
    align-items: center; justify-content: center;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 14px; font-weight: 700;
    margin-top: 2px;
  }
  #vista-prof .mp-profile-body {
    flex: 1; min-width: 0;
  }
  #vista-prof .mp-profile-top {
    display: flex; justify-content: space-between;
    align-items: flex-start; gap: 8px; margin-bottom: 4px;
    flex-wrap: wrap;
  }
  #vista-prof .mp-profile-name {
    font-size: 13px; font-weight: 700; color: var(--ink);
    display: block;
  }
  #vista-prof .mp-profile-prov {
    font-size: 11px; color: var(--ink2); display: block;
  }
  #vista-prof .mp-profile-partido {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    color: var(--ink3); white-space: nowrap;
    margin-top: 2px;
  }
  #vista-prof .mp-profile-nota {
    font-size: 11px; color: var(--ink2); line-height: 1.5;
    margin-bottom: 6px;
  }
  #vista-prof .mp-profile-datos {
    display: flex; flex-wrap: wrap; gap: 10px;
    font-size: 10px;
  }
  #vista-prof .mp-profile-dato {
    color: var(--ink2);
  }
  #vista-prof .mp-profile-dato-label {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    color: var(--ink3); text-transform: uppercase;
    letter-spacing: 0.3px;
  }

  /* ── Análisis por región ── */
  #vista-prof .mp-regions {
    margin-top: 32px;
  }
  #vista-prof .mp-regions-title {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 18px; font-weight: 700; color: var(--ink);
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--accent);
  }
  #vista-prof .mp-region-card {
    border: 1px solid var(--border); border-radius: 8px;
    padding: 16px; margin-bottom: 12px;
    background: var(--bg);
    transition: box-shadow 0.15s;
  }
  #vista-prof .mp-region-card:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  }
  #vista-prof .mp-region-header {
    display: flex; align-items: baseline; gap: 10px;
    margin-bottom: 6px;
  }
  #vista-prof .mp-region-name {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 16px; font-weight: 700; color: var(--ink);
  }
  #vista-prof .mp-region-desc {
    font-size: 11px; color: var(--ink3);
  }
  #vista-prof .mp-region-provs {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    color: var(--ink3); margin-bottom: 8px;
    letter-spacing: 0.2px;
  }
  #vista-prof .mp-region-chips {
    display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px;
  }
  #vista-prof .mp-reg-chip {
    display: inline-block; padding: 3px 8px; border-radius: 4px;
    font-size: 10px; font-weight: 600; white-space: nowrap;
  }
  #vista-prof .mp-region-stats {
    display: flex; gap: 20px; margin-bottom: 10px;
    padding: 8px 12px; background: var(--panel);
    border-radius: 6px;
  }
  #vista-prof .mp-region-stat {
    display: flex; flex-direction: column; align-items: center;
  }
  #vista-prof .mp-region-stat-val {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 16px; font-weight: 700; color: var(--ink);
  }
  #vista-prof .mp-region-stat-label {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 9px;
    color: var(--ink3); text-transform: uppercase; letter-spacing: 0.3px;
  }
  #vista-prof .mp-region-lectura {
    font-size: 12px; color: var(--ink2); line-height: 1.6;
  }

  /* ── Rankings y datos clave ── */
  #vista-prof .mp-rankings {
    margin-top: 32px;
  }
  #vista-prof .mp-rankings-title {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 18px; font-weight: 700; color: var(--ink);
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--accent);
  }
  #vista-prof .mp-datos-grid {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 10px; margin-bottom: 24px;
  }
  #vista-prof .mp-dato-card {
    text-align: center; padding: 14px 10px;
    border: 1px solid var(--border); border-radius: 8px;
    background: var(--bg);
  }
  #vista-prof .mp-dato-big {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 28px; font-weight: 700; color: var(--ink);
    line-height: 1.1;
  }
  #vista-prof .mp-dato-of {
    font-size: 16px; font-weight: 400; color: var(--ink3);
  }
  #vista-prof .mp-dato-label {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 10px;
    color: var(--ink3); margin-top: 4px; line-height: 1.3;
  }
  #vista-prof .mp-rankings-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 16px; margin-bottom: 20px;
  }
  #vista-prof .mp-rank-section {
    padding: 14px; border: 1px solid var(--border);
    border-radius: 8px; background: var(--bg);
  }
  #vista-prof .mp-rank-section-title {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    text-transform: uppercase; letter-spacing: 0.4px;
    color: var(--ink3); font-weight: 600;
    margin-bottom: 10px;
  }
  #vista-prof .mp-rank-row {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 6px;
  }
  #vista-prof .mp-rank-name {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 11px;
    color: var(--ink); min-width: 100px; font-weight: 500;
  }
  #vista-prof .mp-rank-bar {
    flex: 1; height: 8px; background: var(--panel);
    border-radius: 4px; overflow: hidden;
  }
  #vista-prof .mp-rank-bar-fill {
    height: 100%; border-radius: 4px;
    transition: width 0.4s ease;
  }
  #vista-prof .mp-rank-pct {
    font-family: 'IBM Plex Mono', monospace; font-size: 11px;
    color: var(--ink2); min-width: 38px; text-align: right;
    font-weight: 600;
  }
  #vista-prof .mp-rank-swing {
    margin-bottom: 0;
  }
  #vista-prof .mp-swing-row {
    display: flex; align-items: center; gap: 10px;
    padding: 6px 0;
    border-bottom: 1px solid var(--border);
  }
  #vista-prof .mp-swing-row:last-child { border-bottom: none; }
  #vista-prof .mp-swing-result {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 11px;
    font-weight: 700;
  }
  #vista-prof .mp-swing-detail {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    color: var(--ink3); margin-left: auto;
  }

  /* ── Directorio alfabético de provincias ── */
  #vista-prof .mp-directorio {
    margin-top: 32px;
  }
  #vista-prof .mp-directorio-title {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 18px; font-weight: 700; color: var(--ink);
    margin-bottom: 4px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--accent);
  }
  #vista-prof .mp-directorio-sub {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    color: var(--ink3); margin-bottom: 16px;
    letter-spacing: 0.3px;
  }
  #vista-prof .mp-dir-card {
    display: flex; gap: 12px; padding: 14px 16px;
    border-bottom: 1px solid var(--border);
    cursor: pointer; transition: background 0.12s;
  }
  #vista-prof .mp-dir-card:hover { background: var(--panel); }
  #vista-prof .mp-dir-card:first-of-type {
    border-top: 1px solid var(--border);
  }
  #vista-prof .mp-dir-num {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 14px; font-weight: 700; color: var(--ink3);
    min-width: 24px; padding-top: 2px;
  }
  #vista-prof .mp-dir-body { flex: 1; min-width: 0; }
  #vista-prof .mp-dir-top {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 4px; flex-wrap: wrap;
  }
  #vista-prof .mp-dir-nombre {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 15px; font-weight: 700; color: var(--ink);
  }
  #vista-prof .mp-dir-gob {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 6px; flex-wrap: wrap;
  }
  #vista-prof .mp-dir-gob-name {
    font-size: 12px; font-weight: 600; color: var(--ink);
  }
  #vista-prof .mp-dir-gob-sep { color: var(--ink3); font-size: 10px; }
  #vista-prof .mp-dir-gob-partido {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    color: var(--ink3);
  }
  #vista-prof .mp-dir-meta-row {
    display: flex; flex-wrap: wrap; gap: 14px;
  }
  #vista-prof .mp-dir-meta {
    display: flex; flex-direction: column;
  }
  #vista-prof .mp-dir-meta-label {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    color: var(--ink3); text-transform: uppercase;
    letter-spacing: 0.4px; margin-bottom: 1px;
  }
  #vista-prof .mp-dir-meta-val {
    font-size: 11px; color: var(--ink2); font-weight: 500;
  }

  /* ── Responsive panel detalle + perfiles ── */
  @media (max-width: 700px) {
    #vista-prof .mapa-main-layout.mapa-panel-open {
      flex-direction: column;
    }
    #vista-prof .mp-detail-panel {
      flex: none; max-width: 100%;
    }
    #vista-prof .mp-profile-card {
      flex-direction: column; gap: 8px;
    }
    #vista-prof .mp-profile-avatar {
      flex: 0 0 32px; height: 32px; font-size: 12px;
    }
    #vista-prof .mp-profile-top {
      flex-direction: column; gap: 2px;
    }
    #vista-prof .mp-profile-datos {
      flex-direction: column; gap: 4px;
    }
    #vista-prof .mp-datos-grid {
      grid-template-columns: repeat(2, 1fr);
    }
    #vista-prof .mp-rankings-grid {
      grid-template-columns: 1fr;
    }
    #vista-prof .mp-region-stats {
      flex-wrap: wrap; gap: 12px;
    }
    #vista-prof .mp-rank-name { min-width: 70px; font-size: 10px; }
    #vista-prof .mp-dir-meta-row { gap: 8px; }
    #vista-prof .mp-dir-gob { flex-direction: column; gap: 2px; }
  }

  /*══════════════════════════════════════════════════════════��═══
     TAB GABINETE — Layout 2 columnas: Lista | Perfil
  ═══════════════════════════════════════════════════════════════ */
  #vista-prof #tab-gabinete { flex-direction: column; overflow: hidden; }

  #vista-prof .gab-layout {
    display: flex; flex: 1; min-height: 0; overflow: hidden;
    gap: 14px; padding: 14px 16px;
  }
  #vista-prof .gab-list-col {
    width: 380px; min-width: 380px;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
    display: flex; flex-direction: column;
  }
  #vista-prof .gab-list-header {
    padding: 14px 20px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
  }
  #vista-prof .gab-list-scroll { flex: 1; overflow-y: auto; }

  #vista-prof .gab-perfil-col {
    flex: 1; min-width: 0;
    display: flex; flex-direction: column;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
  }
  #vista-prof .gab-perfil-empty {
    flex: 1; display: flex; flex-direction: column;
    align-items: stretch; justify-content: stretch;
    color: var(--ink3); min-height: 0; overflow: hidden;
  }
  /* Mesa de gabinete — visualización circular */
  #vista-prof .mesa-wrap {
    display: flex; flex-direction: column; align-items: center;
    justify-content: center; flex: 1;
    padding: 12px; min-height: 0;
  }
  #vista-prof .mesa-svg {
    width: 100%; height: 100%; flex: 1;
  }
  #vista-prof .mesa-seat-click { cursor: pointer; }
  #vista-prof .mesa-seat-click:hover circle {
    opacity: 0.3;
    transition: opacity 0.15s;
  }
  #vista-prof .mesa-hint {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 10px;
    color: var(--ink3); opacity: 0.5; margin-top: 8px;
    font-style: italic;
  }

  #vista-prof .gab-perfil-header {
    padding: 12px 24px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
  }
  #vista-prof .gab-perfil-scroll {
    flex: 1; overflow-y: auto; padding: 24px 28px;
  }
  #vista-prof .gab-volver-btn {
    background: none; border: 1px solid var(--border); border-radius: 4px;
    padding: 5px 14px; cursor: pointer;
    font-family: 'IBM Plex Sans', sans-serif; font-size: 12px;
    color: var(--ink2); transition: all .15s;
  }
  #vista-prof .gab-volver-btn:hover { border-color: var(--accent); color: var(--accent); }

  #vista-prof #gab-perfil-content {
    display: flex; flex-direction: column; flex: 1; min-height: 0;
  }

  /* Gabinete — lista en columna izquierda */
  #vista-prof .gab-grupo { padding: 0; }
  #vista-prof .gab-grupo-label {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    text-transform: uppercase; letter-spacing: 1.8px;
    color: var(--ink3); padding: 10px 16px 6px;
    background: rgba(17,17,17,0.03);
    border-bottom: 1px solid var(--border);
  }

  #vista-prof .gab-row {
    display: flex; align-items: center; gap: 10px;
    padding: 9px 16px;
    border-bottom: 1px solid var(--border);
    transition: background .12s;
  }
  #vista-prof .gab-row:hover { background: rgba(26,24,20,.04); }

  #vista-prof .gab-avatar {
    width: 28px; height: 28px; border-radius: 50%;
    background: rgba(26,95,214,0.10); color: var(--accent);
    display: flex; align-items: center; justify-content: center;
    font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 600;
    flex-shrink: 0;
  }

  #vista-prof .gab-info { flex: 1; min-width: 0; overflow: hidden; }
  #vista-prof .gab-nombre { font-size: 12px; font-weight: 500; color: var(--ink); line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  #vista-prof .gab-cargo { font-size: 10px; color: var(--ink3); line-height: 1.3; margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

  #vista-prof .gab-antiguedad { text-align: right; flex-shrink: 0; }
  #vista-prof .gab-dias {
    display: block;
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    font-weight: 600; color: var(--ink2);
  }
  #vista-prof .gab-desde {
    display: block;
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    color: var(--ink3); letter-spacing: 0.3px; margin-top: 1px;
  }

  #vista-prof .gab-clickable { cursor: pointer; }
  #vista-prof .gab-clickable:hover { background: rgba(26,95,214,0.06); }
  #vista-prof .gab-active { background: rgba(26,95,214,0.10) !important; border-left: 3px solid var(--accent); padding-left: 13px; }
  #vista-prof .gab-arrow {
    font-size: 16px; color: var(--ink3); flex-shrink: 0;
    transition: transform .15s;
  }
  #vista-prof .gab-clickable:hover .gab-arrow { transform: translateX(2px); color: var(--accent); }

  /* ── Fila Presidente (tope de columna izquierda) ──────────── */
  #vista-prof #gab-presidente-row .gab-row {
    background: rgba(26,95,214,0.04);
    border-left: 3px solid var(--accent);
    padding-left: 13px;
  }
  #vista-prof #gab-presidente-row .gab-avatar {
    background: rgba(26,95,214,0.18);
  }

  /* ── Panel ejecutivo (columna derecha) ─────────────────────── */
  #vista-prof #ejec-feed-panel {
    display: flex; flex-direction: column;
    flex: 1; min-height: 0; overflow: hidden;
  }
  #vista-prof .ejec-feed-topbar {
    display: flex; align-items: center;
    padding: 10px 18px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
  }
  #vista-prof .ejec-feed-scroll {
    flex: 1; overflow-y: auto; min-height: 0;
  }

  /* ── Toggle Destacadas / Recientes ──────────────────────────── */
  #vista-prof .ejec-orden {
    display: flex; align-items: center; gap: 4px; margin-left: auto;
  }
  #vista-prof .ejec-orden-btn {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    padding: 3px 10px;
    border: 1px solid var(--border); background: transparent;
    color: var(--ink2); cursor: pointer; transition: all .15s;
  }
  #vista-prof .ejec-orden-btn:hover { border-color: var(--accent); color: var(--accent); }
  #vista-prof .ejec-orden-btn.active {
    background: var(--accent); border-color: var(--accent); color: #fff;
  }

  /* ── Badge "Clave" para acciones de prioridad alta ──────────── */
  #vista-prof .ejec-badge-clave {
    font-family: 'IBM Plex Mono', monospace; font-size: 7.5px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.8px;
    color: var(--accent); background: rgba(26,95,214,0.10);
    padding: 1px 5px; border-radius: 3px; margin-right: 6px;
    position: relative; top: -1px;
  }

  /* ═══════════════════════════════════════════════════════════
     TAB — MONITOR (portada / tablero de mando)
  ═══════════════════════════════════════════════════════════ */
  #vista-prof #tab-informe { flex-direction: column; overflow: hidden; }
  #vista-prof .mtab-scroll { flex: 1; overflow-y: auto; padding: 14px 20px 24px; }
  #vista-prof #mon-hero, #vista-prof #mon-lectura, #vista-prof #mon-cruce, #vista-prof #mon-destacados, #vista-prof #mtab-numeros, #vista-prof #mon-abajo {
    max-width: 1300px; margin: 0 auto; width: 100%;
  }

  #vista-prof .mtab-card {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px 18px;
  }
  #vista-prof .mtab-card-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    letter-spacing: 1.5px; color: var(--ink1); font-weight: 700; margin-bottom: 8px;
    position: relative; padding-left: 13px;
  }
  #vista-prof .mtab-card-lbl::before {
    content: ''; position: absolute; left: 0; top: 2px;
    width: 3px; height: 11px; background: var(--accent); border-radius: 1px;
  }

  /* Hero: valoración + frentes */
  #vista-prof .mtab-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 12px;
    align-items: start;
  }
  @media (max-width: 980px) { #vista-prof .mtab-hero-grid { grid-template-columns: minmax(0, 1fr); } }
  #vista-prof .mtab-valoracion { font-size: 27px; font-weight: 600; padding: 4px 0 2px; }
  #vista-prof .mtab-porque { font-size: 11.5px; color: var(--ink2); line-height: 1.5; margin-bottom: 14px; }
  #vista-prof .mtab-escala { display: flex; gap: 4px; align-items: flex-end; }
  #vista-prof .mtab-escala-seg { flex: 1; text-align: center; }
  #vista-prof .mtab-escala-barra { height: 7px; border-radius: 3px; }
  #vista-prof .mtab-escala-barra.actual { height: 13px; }
  #vista-prof .mtab-escala-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 7px;
    letter-spacing: 0.5px; color: var(--ink3); padding-top: 5px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }

  #vista-prof .mtab-frentes-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
  }
  /* Dos lecturas (estructural + clima) y grupos de frentes */
  #vista-prof .mtab-reads { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  @media (max-width: 760px) { #vista-prof .mtab-reads { grid-template-columns: minmax(0, 1fr); } }
  /* Dos columnas: cada lectura con su contenido debajo (Estructural+frentes | Clima+cruce) */
  #vista-prof .mtab-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-items: stretch; }
  @media (max-width: 760px) { #vista-prof .mtab-cols { grid-template-columns: minmax(0, 1fr); } }
  /* Columnas a la misma altura: el último bloque de cada columna (a la derecha,
     el Cruce) absorbe el sobrante para terminar alineado con la columna estructural,
     SIN abrir un hueco grande entre Clima y Cruce. */
  #vista-prof .mtab-col { display: flex; flex-direction: column; gap: 10px; }
  #vista-prof .mtab-col > :last-child { flex-grow: 1; }
  #vista-prof .mtab-card .mtab-grupo-lbl { margin: 0 0 9px; }
  #vista-prof .mtab-card-div { border-top: 1px solid var(--border); margin: 14px 0 12px; }
  #vista-prof .mtab-frentes-col { display: grid; grid-template-columns: 1fr; gap: 8px; }
  /* Claves del período: 3 ítems al pie de la card Estructural */
  #vista-prof .mtab-claves { display: flex; flex-direction: column; gap: 7px; }
  #vista-prof .mtab-clave { display: flex; gap: 8px; font-size: 12px; line-height: 1.45; color: var(--ink1); }
  #vista-prof .mtab-clave-mk { color: var(--accent); flex-shrink: 0; }
  #vista-prof .mtab-read-sub { display: block; margin-top: 4px; color: var(--ink3); font-weight: 400; letter-spacing: 0.3px; text-transform: none; font-size: 10.5px; }
  #vista-prof .mtab-grupo-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 1px;
    color: var(--ink3); text-transform: uppercase; margin: 16px 0 8px;
  }
  #vista-prof .mtab-grupo-lbl span { opacity: 0.6; letter-spacing: 0.3px; text-transform: none; }
  #vista-prof .mtab-frentes-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
  @media (max-width: 760px) { #vista-prof .mtab-frentes-3 { grid-template-columns: minmax(0, 1fr); } }
  #vista-prof .mtab-frente {
    border-radius: 10px; padding: 11px 13px;
    cursor: pointer; transition: transform .1s;
  }
  #vista-prof .mtab-frente:hover { transform: translateY(-1px); }
  #vista-prof .mtab-frente-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 8.5px;
    letter-spacing: 1px; font-weight: 600;
    display: flex; align-items: center; gap: 4px;
  }
  /* Marcador naranja solo en las cards de Contexto (Gobierno/Agenda); los frentes
     estructurales ya tienen color de estado, así que no llevan marcador. */
  #vista-prof .mtab-frentes-grid .mtab-frente-lbl::before {
    content: ''; width: 3px; height: 10px; background: var(--accent);
    border-radius: 1px; flex-shrink: 0;
  }
  #vista-prof .mtab-frente-ir { margin-left: auto; font-size: 10px; }
  #vista-prof .mtab-frente-estado { font-size: 14px; font-weight: 600; padding-top: 2px; }
  #vista-prof .mtab-frente-nota { font-size: 10.5px; line-height: 1.4; padding-top: 1px; }
  #vista-prof .mtab-frente-items {
    margin-top: 9px; padding-top: 8px;
    border-top: 1px solid rgba(26, 24, 20, 0.1);
    display: flex; flex-direction: column; gap: 4px;
  }
  #vista-prof .mtab-frente-items-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    letter-spacing: 0.8px; text-transform: uppercase; opacity: 0.85; margin-bottom: 2px;
  }
  #vista-prof .mtab-frente-item { display: flex; justify-content: space-between; gap: 10px; font-size: 11px; line-height: 1.35; }
  #vista-prof .mtab-frente-item .mfi-k { font-weight: 500; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  #vista-prof .mtab-frente-item .mfi-v { white-space: nowrap; flex-shrink: 0; opacity: 0.9; }

  /* Números vivos */
  #vista-prof .mtab-numeros-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
    gap: 10px; margin-top: 12px;
  }
  #vista-prof .mtab-num {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px; padding: 11px 13px;
    cursor: pointer; transition: border-color .12s;
  }
  #vista-prof .mtab-num:hover { border-color: var(--border-s); }
  #vista-prof .mtab-num-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    letter-spacing: 0.8px; color: var(--ink3);
    white-space: nowrap; overflow: hidden;
  }
  #vista-prof .mtab-num-val { font-size: 19px; font-weight: 600; color: var(--accent); padding-top: 2px; }
  #vista-prof .mtab-num-sub { font-size: 11px; font-weight: 400; color: var(--ink2); }
  #vista-prof .mtab-num-nota { font-size: 10px; color: var(--ink3); padding-top: 1px; }
  #vista-prof .mtab-num-barra {
    height: 6px; background: rgba(26,24,20,0.06);
    border-radius: 3px; margin-top: 8px; overflow: hidden;
  }
  #vista-prof .mtab-num-barra > div { height: 6px; background: #1D9E75; border-radius: 3px; }

  /* Hechos del día + cruce */
  #vista-prof .mtab-abajo-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 12px; margin-top: 12px;
  }
  @media (max-width: 860px) { #vista-prof .mtab-abajo-grid { grid-template-columns: minmax(0, 1fr); } }
  #vista-prof .mtab-hecho {
    display: flex; align-items: baseline; gap: 8px;
    padding: 8px 0; border-bottom: 1px solid var(--border);
    cursor: pointer;
  }
  #vista-prof .mtab-hecho:last-child { border-bottom: none; }
  #vista-prof .mtab-hecho:hover .mtab-hecho-txt { text-decoration: underline; }
  #vista-prof .mtab-hecho-cat {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px; font-weight: 600;
    padding: 1px 6px; border-radius: 3px; flex-shrink: 0; letter-spacing: 0.5px;
  }
  #vista-prof .mtab-hecho-txt { font-size: 12.5px; line-height: 1.5; color: var(--ink1); }

  #vista-prof .mtab-cruce {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px 18px;
    display: flex; flex-direction: column;
  }
  #vista-prof .mtab-cruce-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    letter-spacing: 1.5px; color: var(--ink1); font-weight: 700; margin-bottom: 8px;
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  }
  #vista-prof .mtab-cruce-lbl::before {
    content: ''; width: 3px; height: 11px; background: var(--accent);
    border-radius: 1px; flex-shrink: 0;
  }
  #vista-prof .mtab-cruce-grado {
    margin-left: auto; font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    letter-spacing: 0.5px; text-transform: uppercase; padding: 2px 9px; border-radius: 5px;
  }
  #vista-prof .mtab-cruce-txt { font-size: 12px; line-height: 1.6; color: var(--ink2); }
  #vista-prof .mtab-cruce-ir {
    font-family: 'IBM Plex Mono', monospace; font-size: 9.5px;
    color: var(--accent); margin-top: auto; padding-top: 12px; cursor: pointer;
  }
  #vista-prof .mtab-cruce-ir:hover { text-decoration: underline; }

  #vista-prof .mtab-fuentes {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    color: var(--ink3); text-align: center; padding-top: 14px;
    letter-spacing: 0.5px;
  }

  /* Hechos destacados (día + semana) — tarjetas limpias dentro de un contenedor por sección */
  #vista-prof .mtab-dest-sec { margin-top: 16px; }
  #vista-prof .mtab-dest-box {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 14px 16px;
  }
  #vista-prof .mtab-dest-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 9.5px;
    letter-spacing: 1.5px; color: var(--ink3); margin-bottom: 9px;
    display: flex; align-items: baseline; gap: 8px;
  }
  #vista-prof .mtab-dest-ctx { letter-spacing: 0.5px; opacity: 0.75; text-transform: none; }
  #vista-prof .mtab-dest-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  @media (max-width: 860px) { #vista-prof .mtab-dest-grid { grid-template-columns: minmax(0, 1fr); } }
  #vista-prof .mtab-dest-card {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 12px; padding: 12px 14px;
    cursor: pointer; transition: border-color .12s, transform .1s;
    display: flex; flex-direction: column;
  }
  #vista-prof .mtab-dest-card:hover { border-color: var(--border-s); transform: translateY(-1px); }
  #vista-prof .mtab-dest-top {
    display: flex; align-items: center; justify-content: space-between; margin-bottom: 7px;
  }
  #vista-prof .mtab-dest-cat {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px; font-weight: 600;
    padding: 2px 7px; border-radius: 3px; letter-spacing: 0.5px;
  }
  #vista-prof .mtab-dest-arrow { font-size: 12px; color: var(--ink3); }
  #vista-prof .mtab-dest-card:hover .mtab-dest-arrow { color: var(--accent); }
  #vista-prof .mtab-dest-head { font-size: 13.5px; font-weight: 500; line-height: 1.35; color: var(--ink1); }
  #vista-prof .mtab-dest-src {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink3);
    margin-top: auto; padding-top: 8px; letter-spacing: 0.3px;
  }
  #vista-prof .mtab-dest-vacio { font-size: 12px; color: var(--ink3); padding: 6px 0; }

  /* ═══════════════════════════════════════════════════════════
     TAB — IMAGEN PÚBLICA (v1)
     ═══════════════════════════════════════════════════════════ */
  #vista-prof .img-scroll { flex: 1; overflow-y: auto; padding: 14px 20px 24px; }
  #vista-prof #img-icg, #vista-prof #img-lectura, #vista-prof #img-funcionarios, #vista-prof #img-temas { max-width: 1300px; margin: 0 auto 12px; width: 100%; }
  #vista-prof .img-card { background: var(--bg); border: 1px solid var(--border); border-radius: 12px; padding: 15px 17px; }
  #vista-prof .img-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 9.5px; letter-spacing: 1.3px;
    color: var(--ink3); margin-bottom: 9px; text-transform: uppercase; display: flex; align-items: center;
  }
  #vista-prof .img-hero { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 18px; align-items: center; }
  @media (max-width: 640px) { #vista-prof .img-hero { grid-template-columns: 1fr; } }
  #vista-prof .img-big { font-size: 42px; font-weight: 600; line-height: 1; color: var(--accent); }
  #vista-prof .img-unit { font-size: 15px; color: var(--ink3); font-weight: 400; }
  #vista-prof .img-meta-row { display: flex; align-items: center; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
  #vista-prof .img-var { display: inline-block; font-family: 'IBM Plex Mono', monospace; font-size: 11px; border-radius: 5px; padding: 2px 8px; color: var(--ink2); background: var(--bg2); }
  #vista-prof .img-var.down { color: #8a2020; background: #f7e9e9; }
  #vista-prof .img-var.up { color: #0F6E56; background: #E1F5EE; }
  #vista-prof .img-nivel { font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: var(--ink2); background: var(--bg2); border-radius: 5px; padding: 2px 8px; }
  #vista-prof .img-scale { height: 6px; background: #ECE7DC; border-radius: 3px; margin: 12px 0 5px; position: relative; }
  #vista-prof .img-scale > i { position: absolute; top: -3px; width: 3px; height: 12px; background: var(--accent); border-radius: 2px; z-index: 1; }
  #vista-prof .img-scale-mid { position: absolute; left: 50%; top: -1px; width: 1px; height: 8px; background: rgba(17,17,17,0.22); }
  #vista-prof .img-scale-n { display: flex; justify-content: space-between; font-family: 'IBM Plex Mono', monospace; font-size: 10px; color: var(--ink3); }
  #vista-prof .img-ficha { font-family: 'IBM Plex Mono', monospace; font-size: 10px; color: var(--ink3); margin-top: 10px; }
  #vista-prof .img-ia { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--accent); border: 1px solid var(--accent); border-radius: 4px; padding: 1px 5px; margin-right: 7px; letter-spacing: 0.5px; }
  #vista-prof .img-lectura { font-size: 13.5px; line-height: 1.6; color: var(--ink2); }
  #vista-prof .img-tema { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; border-top: 1px solid rgba(17,17,17,0.08); }
  #vista-prof .img-tema:first-of-type { border-top: none; }
  #vista-prof .img-tema-main { flex: 1; min-width: 0; }
  #vista-prof .img-tema-nom { font-size: 13.5px; font-weight: 500; }
  #vista-prof .img-tema-desc { font-size: 11.5px; color: var(--ink2); line-height: 1.4; margin-top: 2px; }
  #vista-prof .img-tema-meta { display: flex; align-items: center; gap: 10px; flex-shrink: 0; padding-top: 1px; }
  #vista-prof .img-cnt { font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: var(--ink3); width: 24px; text-align: right; }
  #vista-prof .img-bar { height: 7px; border-radius: 4px; background: var(--accent); opacity: .85; flex-shrink: 0; }
  #vista-prof .img-chip { font-family: 'IBM Plex Mono', monospace; font-size: 9px; padding: 2px 7px; border-radius: 4px; letter-spacing: .3px; white-space: nowrap; }
  #vista-prof .img-sens { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--amber); background: #FAEFD6; border-radius: 4px; padding: 2px 6px; white-space: nowrap; }
  #vista-prof .img-src { font-family: 'IBM Plex Mono', monospace; font-size: 9.5px; color: var(--ink3); margin-top: 11px; }
  #vista-prof .img-empty { font-size: 12px; color: var(--ink3); padding: 6px 0; }
  /* Imagen en medios por actor: estado de tono + tendencia + curva (datos reales) */
  #vista-prof .img-func { padding: 12px 0; border-top: 1px solid rgba(17,17,17,0.08); }
  #vista-prof .img-func:first-of-type { border-top: none; }
  #vista-prof .img-func-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
  #vista-prof .img-func-nom { font-size: 14px; font-weight: 600; }
  #vista-prof .img-func-cargo { font-size: 11px; color: var(--ink3); font-weight: 400; }
  #vista-prof .img-spark { flex-shrink: 0; }
  #vista-prof .img-func-estado { display: flex; align-items: center; gap: 7px; margin: 6px 0 4px; flex-wrap: wrap; }
  #vista-prof .img-trend { font-size: 11px; }
  #vista-prof .img-func-menc { font-size: 10px; color: var(--ink3); margin-left: auto; }
  #vista-prof .img-func-pq { font-size: 12px; color: var(--ink2); line-height: 1.55; }
  #vista-prof .img-tono { font-family: 'IBM Plex Mono', monospace; font-size: 9px; padding: 2px 7px; border-radius: 4px; letter-spacing: .3px; white-space: nowrap; }

  /* ═══════════════════════════════════════════════════════════
     TAB — ECONOMÍA v2
  ═══════════════════════════════════════════════════════════ */
  #vista-prof #tab-economia { flex-direction: column; overflow: hidden; }
  #vista-prof .eco-scroll { flex: 1; overflow-y: auto; padding: 14px 20px 28px; }
  /* Contenido encapsulado: en monitores anchos no se estira de borde a borde */
  #vista-prof #eco-resumen, #vista-prof #eco-bloques, #vista-prof #eco-mensual {
    max-width: 1300px; margin: 0 auto; width: 100%;
  }

  /* Semáforo del resumen */
  #vista-prof .eco-sem-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px; margin-bottom: 16px;
  }
  #vista-prof .eco-sem-chip { border-radius: 8px; padding: 9px 13px; }
  #vista-prof .eco-sem-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 8.5px;
    letter-spacing: 1.2px; font-weight: 600;
  }
  #vista-prof .eco-sem-estado { font-size: 14px; font-weight: 600; padding-top: 1px; }
  #vista-prof .eco-sem-nota { font-size: 10.5px; line-height: 1.4; }

  /* Resumen: el panel reutiliza feed-resumen-*, solo lo encuadramos */
  #vista-prof #eco-resumen .feed-resumen-panel {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 12px;
    margin-bottom: 14px;
  }
  #vista-prof .eco-sem-chip { border-radius: 10px; }

  /* Bloques principales */
  #vista-prof .eco-bloques-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
    gap: 14px; margin-bottom: 18px;
  }
  #vista-prof .eco-card {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 14px 18px;
  }
  #vista-prof .eco-card-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 9.5px;
    letter-spacing: 1.5px; color: var(--ink3); margin-bottom: 8px;
  }
  #vista-prof .eco-fila {
    display: flex; justify-content: space-between; align-items: baseline;
    padding: 7px 0; border-bottom: 1px solid var(--border);
  }
  #vista-prof .eco-fila:last-of-type { border-bottom: none; }
  #vista-prof .eco-fila-lbl { font-size: 12.5px; color: var(--ink2); }
  #vista-prof .eco-fila-val { display: flex; align-items: baseline; gap: 8px; }
  #vista-prof .eco-num { font-size: 16px; font-weight: 600; color: var(--ink); }
  #vista-prof .eco-destacado {
    margin-top: 8px; border-radius: 8px; padding: 8px 12px;
    display: flex; justify-content: space-between; align-items: center;
  }
  #vista-prof .eco-destacado-lbl { font-size: 11.5px; color: var(--ink2); }
  #vista-prof .eco-destacado-val { font-size: 16px; font-weight: 600; color: var(--ink); }
  #vista-prof .eco-grande { padding: 6px 0 12px; border-bottom: 1px solid var(--border); }
  #vista-prof .eco-grande-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    color: var(--ink3); margin-bottom: 2px;
  }
  #vista-prof .eco-grande-val { font-size: 22px; font-weight: 600; color: var(--accent); }
  #vista-prof .eco-unidad { font-size: 11.5px; font-weight: 400; color: var(--ink2); }
  #vista-prof .eco-grande-nota { font-size: 10.5px; color: var(--ink3); padding-top: 2px; }

  /* Variaciones semanales */
  #vista-prof .eco-var {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 600;
  }
  #vista-prof .eco-var.bien { color: #15803D; }
  #vista-prof .eco-var.mal { color: #B91C1C; }
  #vista-prof .eco-var.neutro { color: var(--ink3); font-weight: 400; }
  #vista-prof .eco-sin-dato {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    color: var(--ink3); font-style: italic;
  }

  /* Tendencia mensual */
  #vista-prof .eco-seccion-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 9.5px;
    letter-spacing: 1.5px; color: var(--ink3); padding: 2px 2px 8px;
  }
  /* Inflación arriba (ancho completo del contenedor), fiscal debajo */
  #vista-prof .eco-mensual-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }
  #vista-prof .eco-mensual-grid .eco-card { min-width: 0; }
  #vista-prof .eco-barras { display: flex; gap: 3px; align-items: flex-end; height: 28px; margin-top: 10px; }
  #vista-prof .eco-barra { width: 11px; border-radius: 2px; }

  /* Gráfico grande interactivo (inflación) — el ancho lo da la grilla 2fr/1fr */
  #vista-prof .eco-barras-xl {
    display: flex; gap: 6px; align-items: flex-end;
    height: 96px; margin-top: 14px;
  }
  #vista-prof .eco-barra-xl-wrap {
    flex: 1; display: flex; flex-direction: column;
    align-items: center; justify-content: flex-end;
    cursor: default; min-width: 0;
  }
  #vista-prof .eco-barra-xl { width: 100%; max-width: 34px; border-radius: 3px 3px 0 0; transition: opacity .12s; }
  #vista-prof .eco-barra-xl-val {
    font-family: 'IBM Plex Mono', monospace; font-size: 9.5px; font-weight: 600;
    color: var(--ink1); margin-bottom: 3px; visibility: hidden;
  }
  #vista-prof .eco-barra-xl-wrap:hover .eco-barra-xl-val,
  #vista-prof .eco-barra-xl-wrap.ultima .eco-barra-xl-val { visibility: visible; }
  #vista-prof .eco-barra-xl-wrap:hover .eco-barra-xl { opacity: 0.75; }
  #vista-prof .eco-barra-xl-mes {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    color: var(--ink3); margin-top: 4px; white-space: nowrap;
  }
  #vista-prof .eco-barras-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    color: var(--ink3); margin-top: 4px;
  }
  #vista-prof .eco-fuentes {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px;
    color: var(--ink3); text-align: center; padding-top: 16px;
    letter-spacing: 0.5px;
  }

  /* Tooltips "?" — mismo lenguaje visual que Congreso y BO (.feed-saldo-*) */
  #vista-prof .eco-help { position: relative; display: inline-block; }
  #vista-prof .eco-help-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 15px; height: 15px; border-radius: 50%;
    border: 1px solid var(--border-s);
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3);
    cursor: help; user-select: none; font-style: normal;
    transition: border-color .15s;
  }
  #vista-prof .eco-help-icon:hover { border-color: var(--accent); color: var(--accent); }
  #vista-prof .eco-tooltip {
    display: none;
    position: absolute;
    bottom: calc(100% + 8px); left: 50%;
    transform: translateX(-50%);
    width: 240px;
    padding: 10px 12px;
    background: var(--ink1);
    color: var(--bg);
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 11px; line-height: 1.5; font-style: normal;
    font-weight: 400; letter-spacing: 0; text-transform: none;
    border-radius: 6px;
    z-index: 20;
    pointer-events: none;
    text-align: left;
  }
  #vista-prof .eco-tooltip::after {
    content: '';
    position: absolute;
    top: 100%; left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: var(--ink1);
  }
  #vista-prof .eco-help:hover .eco-tooltip { display: block; }
  /* Variante hacia abajo — cuando no hay lugar arriba (iconos cerca de la barra).
     La clase la asigna el detector de espacio en app.js. */
  #vista-prof .eco-help-abajo .eco-tooltip {
    bottom: auto;
    top: calc(100% + 8px);
  }
  #vista-prof .eco-help-abajo .eco-tooltip::after {
    top: auto;
    bottom: 100%;
    border-top-color: transparent;
    border-bottom-color: var(--ink1);
  }

  /* ── Perfil dentro del tab Ejecutivo: estética actualizada ──── */
  #vista-prof #gab-perfil-body .pf-name {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 19px; font-weight: 600; letter-spacing: 0;
    margin-bottom: 3px;
  }
  #vista-prof #gab-perfil-body .pf-meta { margin-bottom: 18px; padding-bottom: 14px; }
  #vista-prof #gab-perfil-body .pf-sec {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 14px;
  }
  #vista-prof #gab-perfil-body .pf-sec-t { border-bottom: none; padding-bottom: 0; margin-bottom: 8px; }
  #vista-prof #gab-perfil-body .ejec-item { background: var(--panel); }
  #vista-prof #gab-perfil-body .ejec-item:last-child { margin-bottom: 0; }
  #vista-prof .gab-perfil-cabecera {
    display: flex; align-items: center; gap: 14px; margin-bottom: 4px;
  }
  #vista-prof .gab-perfil-avatar {
    width: 44px; height: 44px; border-radius: 50%;
    font-family: 'IBM Plex Mono', monospace; font-size: 13px; font-weight: 600;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
  }

  /* ── Franja de protagonismo ─────────────────────────────────── */
  /* ── Situación política del Gobierno (bloque superior) ──────────
     Mirada política del Ejecutivo: estado cualitativo + frentes (interno /
     oposición). Marcador y chip en naranja de marca; texto con negrita. */
  /* Situación política y Acciones del Ejecutivo: header GRIS OSCURO (Opción B) con el
     badge IA en naranja. Cards separadas; la glosa y la fuente viven en Acciones. */
  #vista-prof .ejec-sit-panel, #vista-prof .ejec-acc-panel {
    background: #fff; border: 1px solid var(--border);
    border-radius: 12px; overflow: hidden; margin-bottom: 18px;
  }
  #vista-prof .ejec-sit-header, #vista-prof .ejec-acc-header {
    display: flex; align-items: center; gap: 9px;
    background: #0E2A5E; padding: 11px 18px;
  }
  #vista-prof .ejec-sit-badge, #vista-prof .ejec-acc-badge {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px; font-weight: 700;
    letter-spacing: 0.5px; color: var(--accent);
    border: 1px solid var(--accent); border-radius: 4px; padding: 2px 6px;
  }
  #vista-prof .ejec-sit-titulo, #vista-prof .ejec-acc-titulo {
    font-family: 'IBM Plex Mono', monospace; font-size: 11px;
    letter-spacing: 2px; font-weight: 700; color: #F3EFE6;
    text-transform: uppercase;
  }
  #vista-prof .ejec-sit-body { padding: 16px 20px 18px; }
  #vista-prof .ejec-acc-glosa {
    padding: 14px 20px 0; font-size: 11px; color: var(--ink3); line-height: 1.5;
  }
  #vista-prof .ejec-acc-glosa strong { color: var(--ink2); font-weight: 700; }
  #vista-prof .ejec-acc-fuente {
    margin: 0 20px; padding: 12px 0 16px; border-top: 1px solid var(--border);
    font-family: 'IBM Plex Mono', monospace; font-size: 8px; color: var(--ink3);
    text-align: center; letter-spacing: 0.5px;
  }
  #vista-prof .ejec-sit-estado {
    margin-left: auto; font-family: 'IBM Plex Mono', monospace;
    font-size: 9.5px; letter-spacing: 0.5px; font-weight: 700;
    color: #9A4218; background: #E2ECFB; border: 1px solid #E7C3B4;
    border-radius: 20px; padding: 3px 11px; text-transform: uppercase;
    white-space: nowrap;
  }
  #vista-prof .ejec-sit-lead {
    font-size: 14px; line-height: 1.5; color: var(--ink1); margin-bottom: 14px;
  }
  #vista-prof .ejec-sit-lead strong { font-weight: 700; }
  #vista-prof .ejec-sit-frente { margin-bottom: 13px; }
  #vista-prof .ejec-sit-frente:last-child { margin-bottom: 0; }
  #vista-prof .ejec-sit-frente-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    letter-spacing: 1px; color: #9A4218; font-weight: 700;
    margin-bottom: 5px; text-transform: uppercase;
  }
  #vista-prof .ejec-sit-frente-txt { font-size: 12.5px; color: var(--ink2); line-height: 1.55; }
  #vista-prof .ejec-sit-frente-txt strong { color: var(--ink1); }

  /* Glosa que de-jergoniza las métricas del resumen (qué es una acción / BO) */
  #vista-prof .ejec-resumen-glosa {
    font-size: 11px; color: var(--ink3); line-height: 1.5; margin-top: 10px;
  }
  #vista-prof .ejec-resumen-glosa strong { color: var(--ink2); font-weight: 700; }

  /* ── Etiqueta "En transición" (cambio reportado, sin confirmar) ── */
  #vista-prof .ejec-card2-trans { background: #FBF3E8; }
  #vista-prof .ejec-transicion-row {
    display: flex; align-items: center; flex-wrap: wrap; gap: 7px;
    margin: 2px 0 4px;
  }
  #vista-prof .ejec-transicion-tag {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px; font-weight: 700;
    letter-spacing: 0.5px; text-transform: uppercase;
    color: #9A5A18; background: #F7E4CC; border: 1px solid #E6C79B;
    border-radius: 3px; padding: 3px 7px; white-space: nowrap;
  }
  #vista-prof .ejec-transicion-note { font-size: 10px; color: #9A8A72; line-height: 1.4; }

  /* Cambio CONFIRMADO por el Boletín Oficial (azul = oficial, ≠ coral de prensa) */
  #vista-prof .ejec-cambio-bo {
    margin: 4px 0 6px; padding: 8px 11px;
    background: #E6F1FB; border: 1px solid #B5D4F4; border-radius: 6px;
    font-size: 11.5px; color: #0C447C; line-height: 1.45;
  }
  #vista-prof .ejec-cambio-bo strong { color: #042C53; }
  #vista-prof .ejec-cambio-bo-link {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    color: #185FA5; cursor: pointer; white-space: nowrap;
  }
  #vista-prof .ejec-cambio-bo-link:hover { text-decoration: underline; }

  /* Nota honesta para carteras con solo actividad en el Boletín (sin anuncios) */
  #vista-prof .ejec-card2-nota {
    font-size: 11.5px; color: var(--ink3); line-height: 1.5;
    padding: 8px 0 2px; font-style: italic;
  }

  /* ── Listas del resumen (Temas clave / Lectura política) ─────── */
  #vista-prof .ejec-resumen-lista {
    list-style: none; margin: 0 0 4px; padding: 0;
  }
  #vista-prof .ejec-resumen-lista li {
    position: relative; padding: 0 0 0 16px; margin-bottom: 8px;
    font-size: 13px; line-height: 1.5; color: var(--ink1);
  }
  #vista-prof .ejec-resumen-lista li::before {
    content: '—'; position: absolute; left: 0; top: 0;
    color: var(--accent); font-weight: 700;
  }
  #vista-prof .ejec-resumen-lista li:last-child { margin-bottom: 0; }

  /* ── Fila de carteras sin actividad (directorio compacto) ────── */
  #vista-prof .ejec-sinact {
    display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
    padding: 4px 20px 20px;
  }
  #vista-prof .ejec-sinact-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 1px;
    text-transform: uppercase; color: var(--ink3); margin-right: 4px;
  }
  #vista-prof .ejec-sinact-chip {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 11px; color: var(--ink2);
    background: var(--panel); border: 1px solid var(--border);
    border-radius: 20px; padding: 5px 12px; cursor: pointer;
    transition: background .12s;
  }
  #vista-prof .ejec-sinact-chip:hover { background: rgba(26,24,20,.05); }
  #vista-prof .ejec-sinact-bo { color: #1E40AF; }

  /* ── Línea anuncios vs. actos BO en cards ───────────────────── */
  #vista-prof .ejec-card2-bo {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    color: var(--ink3); padding: 7px 0;
    border-bottom: 1px solid var(--border);
  }
  #vista-prof .ejec-card2-bo-n { color: #1E40AF; }
  #vista-prof .ejec-card2-bo-link { cursor: pointer; }
  #vista-prof .ejec-card2-bo-link:hover { text-decoration: underline; }

  /* Rótulo que encabeza las cards (antes vivía arriba de todo el panel) */
  #vista-prof .ejec-cards-head {
    display: flex; align-items: center; gap: 9px;
    padding: 18px 20px 0;
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    letter-spacing: 2px; text-transform: uppercase; font-weight: 700;
    color: var(--ink2);
  }
  #vista-prof .ejec-cards-head-mk {
    width: 4px; height: 13px; background: var(--accent);
    border-radius: 1px; flex-shrink: 0;
  }

  /* ── Cards por cartera (v2) ─────────────────────────────────── */
  #vista-prof .ejec-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    gap: 14px; padding: 16px 20px 24px;
  }
  #vista-prof .ejec-card2 {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 14px 16px;
    display: flex; flex-direction: column;
    transition: border-color .12s, box-shadow .12s;
  }
  #vista-prof .ejec-card2:hover { border-color: var(--border-s); }
  #vista-prof .ejec-card2-header {
    display: flex; align-items: center; gap: 10px;
    padding-bottom: 10px; border-bottom: 1px solid var(--border);
  }
  #vista-prof .ejec-card2-avatar {
    width: 28px; height: 28px; border-radius: 50%;
    font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 600;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
  }
  #vista-prof .ejec-card2-info { flex: 1; min-width: 0; }
  #vista-prof .ejec-card2-nombre {
    font-size: 13px; font-weight: 600; color: var(--ink);
    line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  #vista-prof .ejec-card2-ministro {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    color: var(--ink3); margin-top: 1px; cursor: pointer;
  }
  #vista-prof .ejec-card2-ministro:hover { text-decoration: underline; }
  #vista-prof .ejec-card2-count {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    font-weight: 600; padding: 1px 8px; border-radius: 10px; flex-shrink: 0;
  }
  #vista-prof .ejec-card2-sintesis {
    font-size: 11.5px; color: var(--ink2); line-height: 1.55;
    padding: 9px 0; border-bottom: 1px solid var(--border);
  }
  #vista-prof .ejec-card2-sintesis .ai-badge-mini {
    font-family: 'IBM Plex Mono', monospace; font-size: 7.5px; font-weight: 700;
    border: 1px solid var(--accent); color: var(--accent);
    padding: 0 4px; border-radius: 3px; margin-right: 6px;
    position: relative; top: -1px;
  }
  #vista-prof .ejec-card2-list { padding: 7px 0 4px; flex: 1; }
  #vista-prof .ejec-card2-item {
    font-size: 12px; line-height: 1.45; color: var(--ink1);
    padding: 4px 0; cursor: pointer;
  }
  #vista-prof .ejec-card2-item:hover .ejec-card2-item-t { text-decoration: underline; }
  #vista-prof .ejec-card2-item-fecha {
    font-family: 'IBM Plex Mono', monospace; font-size: 8.5px;
    color: var(--ink3); margin-right: 7px;
  }
  #vista-prof .ejec-card2-vertodo {
    font-family: 'IBM Plex Mono', monospace; font-size: 9.5px;
    padding-top: 8px; cursor: pointer; align-self: flex-start;
  }
  #vista-prof .ejec-card2-vertodo:hover { text-decoration: underline; }
  #vista-prof .ejec-card2-empty {
    font-size: 11px; color: var(--ink3); padding: 10px 0 4px;
  }

  /* ── Detalle expandido de una cartera ───────────────────────── */
  #vista-prof .ejec-det-header {
    display: flex; align-items: center; gap: 14px;
    padding: 12px 20px; border-bottom: 1px solid var(--border);
    flex-shrink: 0;
  }
  #vista-prof .ejec-item-cartera {
    font-family: 'IBM Plex Mono', monospace; font-size: 8.5px;
    color: var(--accent); background: rgba(26,95,214,0.08);
    padding: 1px 6px; border-radius: 8px;
  }
  #vista-prof .ejec-item-ministro {
    font-family: 'IBM Plex Mono', monospace; font-size: 8.5px;
    color: var(--ink2);
  }
  #vista-prof .ejec-item-fuente {
    font-family: 'IBM Plex Mono', monospace; font-size: 8.5px;
    color: var(--ink3); margin-left: auto;
  }
  #vista-prof .ejec-item-resumen {
    font-size: 11.5px; color: var(--ink2); line-height: 1.5; margin-top: 4px;
  }

  /* ── Grid de cards por área/ministerio ──────────────────────── */
  #vista-prof .ejec-grid-wrap {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 12px; padding: 16px;
  }
  #vista-prof .ejec-card {
    background: var(--panel);
    border: 1px solid var(--border);
    padding: 14px 16px;
    cursor: pointer;
    transition: border-color .12s, background .12s;
    display: flex; flex-direction: column; gap: 8px;
  }
  #vista-prof .ejec-card:hover {
    border-color: var(--accent);
    background: rgba(26,95,214,0.03);
  }
  #vista-prof .ejec-card-header {
    display: flex; align-items: center; gap: 10px;
  }
  #vista-prof .ejec-card-avatar {
    width: 30px; height: 30px; border-radius: 50%;
    background: rgba(26,95,214,0.10); color: var(--accent);
    font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 600;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
  }
  #vista-prof .ejec-card-info { flex: 1; min-width: 0; }
  #vista-prof .ejec-card-nombre {
    font-size: 12px; font-weight: 600; color: var(--ink);
    line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  #vista-prof .ejec-card-ministro {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    color: var(--ink3); margin-top: 1px;
  }
  #vista-prof .ejec-card-count {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    font-weight: 600; color: var(--accent);
    background: rgba(26,95,214,0.08);
    padding: 2px 7px; border-radius: 10px; flex-shrink: 0;
  }
  #vista-prof .ejec-card-ultima {
    font-size: 11.5px; color: var(--ink2); line-height: 1.4;
  }
  #vista-prof .ejec-card-fecha {
    font-family: 'IBM Plex Mono', monospace; font-size: 8.5px;
    color: var(--ink3);
  }

  /* ── Detalle de un área ─────────────────────────────────────── */
  #vista-prof .ejec-det-header {
    display: flex; align-items: center; gap: 14px;
    padding: 12px 18px; border-bottom: 1px solid var(--border);
    flex-shrink: 0;
  }

  /* ── Items individuales (tarjetas redondeadas) ──────────────── */
  #vista-prof #ejec-det-items { padding: 14px 20px 24px; }
  #vista-prof .ejec-item {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 10px;
    cursor: pointer; transition: border-color .12s, background .12s;
  }
  #vista-prof .ejec-item:hover { border-color: var(--border-s); background: rgba(26,24,20,.02); }
  #vista-prof .ejec-item-meta {
    display: flex; align-items: center; gap: 8px; margin-bottom: 5px;
  }
  #vista-prof .ejec-item-fecha {
    font-family: 'IBM Plex Mono', monospace; font-size: 8.5px;
    color: var(--ink3);
  }
  #vista-prof .ejec-item-titulo {
    font-family: 'IBM Plex Sans', sans-serif; font-size: 13px;
    color: var(--ink); line-height: 1.45;
  }

  /* ── Empty state ────────────────────────────────────────────── */
  #vista-prof .ejec-feed-empty {
    display: flex; flex-direction: column; align-items: center;
    justify-content: center; padding: 48px 32px; gap: 12px;
    text-align: center;
  }
  #vista-prof .ejec-feed-empty-title {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 2px; color: var(--ink3);
  }
  #vista-prof .ejec-feed-empty-cmd {
    font-family: 'IBM Plex Mono', monospace; font-size: 11px;
    background: var(--panel); border: 1px solid var(--border);
    padding: 6px 14px; color: var(--ink2); border-radius: 3px;
  }

  /* ══════════════════════════════════════════════════════════════
     TAB ECONOMÍA — Estilo Imagen Pública, scroll vertical
  ═══════════════════════════════════════════════════════════════ */
  #vista-prof #tab-economia { flex-direction: column; }

  #vista-prof .eco-wrap {
    display: flex; flex-direction: column;
    flex: 1; min-height: 0; overflow: hidden;
  }

  /* Header ─────────────────────────────────────────────────── */
  #vista-prof .eco-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 28px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
  }
  #vista-prof .eco-header-sub {
    font-size: 11px; color: var(--ink3); margin-left: 12px;
  }
  #vista-prof .eco-header-right { display: flex; align-items: center; gap: 14px; }
  #vista-prof .eco-live-chip {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3); letter-spacing: 0.5px;
  }
  #vista-prof .eco-live-chip.eco-live-on { color: #2f7a2f; }

  /* Scroll body ────────────────────────────────────────────── */
  #vista-prof .eco-scroll {
    flex: 1; overflow-y: auto; padding: 14px 0 40px;
  }

  /* ── DIAGNÓSTICO / Lectura cruzada IA ───────────────────── */
  #vista-prof .eco-diagnostico-wrap {
    margin: 28px 40px;
    border: 1px solid var(--border);
    border-left: 4px solid var(--accent);
    background: var(--panel);
    padding: 24px 28px;
  }
  #vista-prof .eco-diag-header {
    display: flex; align-items: center; gap: 10px; margin-bottom: 6px;
  }
  #vista-prof .eco-diag-eyebrow {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 2px; color: var(--accent);
  }
  #vista-prof .eco-diag-badge {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; font-weight: 700; letter-spacing: 1px;
    color: #fff; background: var(--ink); padding: 1px 6px;
  }
  #vista-prof .eco-diag-fecha {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3); margin-left: auto;
  }
  #vista-prof .eco-diag-titulo {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 19px; font-weight: 600; color: var(--ink);
    margin-bottom: 18px; line-height: 1.2;
  }

  /* Panel de señales ────────────────────────────────────────── */
  #vista-prof .eco-diag-senales {
    display: grid; grid-template-columns: 1fr 1px 1fr;
    gap: 0 20px; margin-bottom: 18px;
  }
  #vista-prof .eco-diag-col-sep {
    background: var(--border); width: 1px;
  }
  #vista-prof .eco-diag-col-header {
    display: flex; align-items: center; gap: 7px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 1.5px; margin-bottom: 10px;
  }
  #vista-prof .eco-col-positivo { color: #2f7a2f; }
  #vista-prof .eco-col-alerta   { color: #b33a2a; }
  #vista-prof .eco-col-positivo .eco-diag-col-dot { background: #2f7a2f; }
  #vista-prof .eco-col-alerta   .eco-diag-col-dot { background: #b33a2a; }
  #vista-prof .eco-diag-col-dot {
    width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0;
  }
  /* ── Tooltips explicativos en KPIs de economía ─────────────── */
  #vista-prof .eco-kpi-tip { position: relative; }

  #vista-prof .eco-tip-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 13px; height: 13px; border-radius: 50%;
    background: var(--border); color: var(--ink3);
    font-family: 'IBM Plex Mono', monospace; font-size: 7px;
    font-weight: 700; vertical-align: middle; margin-left: 3px;
    transition: background .2s, color .2s;
    cursor: pointer;   /* puntero simple, sin signo ? */
  }
  #vista-prof .eco-tip-icon:hover, #vista-prof .eco-tip-icon.activo {
    background: var(--accent); color: #fff;
  }

  /* Tooltip flotante — posicionado por JS */
  #vista-prof #eco-tooltip-global {
    position: fixed;
    background: rgba(26,24,20,0.93);
    color: #f5f4f0;
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 11.5px; line-height: 1.55;
    padding: 10px 14px;
    max-width: 240px;
    border-radius: 4px;
    pointer-events: none;
    opacity: 0;
    transform: translateY(4px);
    transition: opacity .2s ease, transform .2s ease;
    z-index: 9999;
    white-space: normal;
    box-shadow: 0 4px 16px rgba(0,0,0,0.2);
  }
  #vista-prof #eco-tooltip-global.visible {
    opacity: 1;
    transform: translateY(0);
  }

  #vista-prof .eco-chips-list {
    display: flex; flex-direction: column; gap: 5px;
  }

  /* Chip individual de señal ────────────────────────────────── */
  #vista-prof .eco-chip {
    display: flex; align-items: center; gap: 0;
    padding: 6px 10px; background: var(--bg);
    border: 1px solid var(--border);
  }
  #vista-prof .eco-chip-label {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 11px; font-weight: 500; color: var(--ink);
    flex: 1; min-width: 0;
  }
  #vista-prof .eco-chip-val {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px; font-weight: 700; color: var(--ink2);
    margin-left: 8px; white-space: nowrap;
  }
  #vista-prof .eco-chip-nota {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; color: var(--ink3);
    margin-left: 6px; white-space: nowrap;
  }
  #vista-prof .eco-chip-arrow {
    font-size: 11px; font-weight: 700;
    margin-left: 8px; flex-shrink: 0;
  }
  #vista-prof .eco-chip-arrow.pos { color: #2f7a2f; }
  #vista-prof .eco-chip-arrow.neg { color: #b33a2a; }
  #vista-prof .eco-chip-arrow.neu { color: var(--ink3); }
  #vista-prof .eco-chip-arrow.amb { color: #a06800; }

  /* Tensión central ─────────────────────────────────────────── */
  #vista-prof .eco-diag-tension {
    background: var(--ink); color: #fff;
    padding: 10px 14px; margin-bottom: 18px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px; line-height: 1.5;
    display: none;
  }
  #vista-prof .eco-diag-tension.visible { display: block; }
  #vista-prof .eco-tension-label {
    font-size: 8px; text-transform: uppercase; letter-spacing: 1.5px;
    color: var(--accent); margin-bottom: 4px;
  }

  /* Separador antes del texto ────────────────────────────────── */
  #vista-prof .eco-diag-sep {
    border-top: 1px solid var(--border); margin-bottom: 16px;
  }

  /* Texto analítico ──────────────────────────────────────────── */
  #vista-prof .eco-diag-cuerpo { display: flex; flex-direction: column; gap: 12px; }
  #vista-prof .eco-diag-parrafo {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 12.5px; color: var(--ink2); line-height: 1.7;
  }
  #vista-prof .eco-diag-parrafo:first-child {
    font-size: 13px; font-weight: 500; color: var(--ink);
    border-left: 2px solid var(--accent);
    padding-left: 12px; margin-left: -12px;
  }

  #vista-prof .eco-diag-footer {
    margin-top: 16px; padding-top: 10px;
    border-top: 1px solid var(--border);
    display: flex; justify-content: space-between;
    flex-wrap: wrap; gap: 6px;
  }
  #vista-prof #eco-diag-modelo, #vista-prof .eco-diag-nota {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; color: var(--ink3); letter-spacing: 0.3px;
  }

  /* Grilla del dólar (dentro de sección, no strip) ─────────── */
  #vista-prof .eco-dolar-grid {
    display: grid; grid-template-columns: repeat(5, 1fr);
    gap: 12px; margin-top: 4px;
  }
  #vista-prof .eco-d-card {
    background: var(--panel);
    padding: 16px 18px;
    display: flex; flex-direction: column; gap: 4px;
  }
  #vista-prof .eco-d-nombre {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 1.5px; color: var(--ink3);
  }
  #vista-prof .eco-d-sub {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; color: var(--ink3); opacity: .7;
    margin-left: 5px; font-weight: 400;
  }
  #vista-prof .eco-d-venta {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 26px; font-weight: 700; color: var(--ink);
    line-height: 1; letter-spacing: -0.5px;
  }
  #vista-prof .eco-d-compra {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3);
  }
  #vista-prof .eco-d-spread {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; font-weight: 700;
    display: inline-block; padding: 1px 5px; margin-top: 2px;
    align-self: flex-start;
  }
  #vista-prof .eco-d-spread-base { color: var(--ink3); }
  #vista-prof .eco-d-spread-ok   { color: #2f7a2f; background: rgba(47,122,47,0.08); }
  #vista-prof .eco-d-spread-mid  { color: #a06800; background: rgba(229,150,26,0.10); }
  #vista-prof .eco-d-spread-high { color: #b33a2a; background: rgba(179,58,42,0.08); }

  /* Secciones ─────────────────────────────────────────────── */
  #vista-prof .eco-seccion {
    padding: 22px 40px 28px;
    border-bottom: 1px solid var(--border);
  }
  /* Encabezado de sección: una sola línea horizontal */
  #vista-prof .eco-sec-head {
    display: flex; align-items: baseline; gap: 10px;
    margin-bottom: 16px; padding-bottom: 10px;
    border-bottom: 1px solid var(--border);
  }
  #vista-prof .eco-sec-titulo {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 11px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 1.2px; color: var(--ink); flex-shrink: 0;
  }
  #vista-prof .eco-sec-sub {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3); letter-spacing: 0.3px;
  }
  #vista-prof .eco-sec-fuente {
    margin-left: auto; flex-shrink: 0;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; text-transform: uppercase; letter-spacing: 1px;
    color: var(--ink3); text-decoration: none;
  }
  #vista-prof .eco-sec-fuente:hover { color: var(--accent); }

  /* Espaciado estándar para gráficos y grillas después de KPIs */
  #vista-prof .eco-chart { margin-top: 16px; }

  /* Tooltip del gráfico ────────────────────────────────────── */
  #vista-prof .eco-chart-tooltip {
    position: absolute; pointer-events: none;
    background: var(--ink); color: #fff;
    font-family: 'IBM Plex Mono', monospace; font-size: 11px;
    padding: 5px 10px; white-space: nowrap;
    opacity: 0; transition: opacity .1s; z-index: 10;
  }
  #vista-prof .eco-chart-tooltip.visible { opacity: 1; }

  /* Grid de macro cards ───────────────────────────────────── */
  #vista-prof .eco-macro-grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 16px; margin-top: 6px;
  }
  #vista-prof .eco-macro-card {
    border: 1px solid var(--border);
    border-left: 3px solid var(--border);
    background: var(--bg);
    padding: 14px 16px;
    display: flex; flex-direction: column; gap: 3px;
    transition: border-left-color .15s;
  }
  /* Color del borde izquierdo según contexto */
  #vista-prof .eco-macro-card:has(.eco-mc-delta.pos) { border-left-color: #2f7a2f; }
  #vista-prof .eco-macro-card:has(.eco-mc-delta.neg) { border-left-color: #b33a2a; }

  #vista-prof .eco-mc-titulo {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 1.5px; color: var(--ink3); margin-bottom: 4px;
  }
  #vista-prof .eco-mc-valor {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 24px; font-weight: 700; color: var(--ink);
    line-height: 1; letter-spacing: -0.3px;
  }
  #vista-prof .eco-mc-sub {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3); margin-top: 2px;
  }
  #vista-prof .eco-mc-delta {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px; font-weight: 700; margin-top: 6px;
  }
  #vista-prof .eco-mc-delta.pos { color: #2f7a2f; }
  #vista-prof .eco-mc-delta.neg { color: #b33a2a; }
  #vista-prof .eco-mc-kpi {
    display: flex; justify-content: space-between; align-items: baseline;
    margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--border);
    gap: 8px;
  }
  #vista-prof .eco-mc-kpi-lbl {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; text-transform: uppercase; letter-spacing: 0.8px;
    color: var(--ink3); flex-shrink: 0;
  }
  #vista-prof .eco-mc-kpi-val {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px; font-weight: 600; color: var(--ink2);
    text-align: right;
  }
  #vista-prof .eco-mc-fuente {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; color: var(--ink3); text-transform: uppercase;
    letter-spacing: 0.8px; margin-top: auto; padding-top: 8px;
  }
  #vista-prof .eco-macro-grid-4 { grid-template-columns: repeat(4, 1fr); }
  #vista-prof .eco-card-canasta-wide { grid-column: span 2; }

  /* Desglose CBA ───────────────────────────────────────────── */
  #vista-prof .eco-canasta-totales {
    display: flex; gap: 24px; margin-bottom: 16px; padding-bottom: 14px;
    border-bottom: 1px solid var(--border); flex-wrap: wrap;
  }
  #vista-prof .eco-canasta-kpi { display: flex; flex-direction: column; }
  #vista-prof .eco-canasta-kpi-lbl {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; text-transform: uppercase; letter-spacing: 1px; color: var(--ink3);
    margin-bottom: 3px;
  }
  #vista-prof .eco-canasta-kpi-val {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 22px; font-weight: 700; color: var(--ink); line-height: 1;
  }
  #vista-prof .eco-canasta-kpi-sub {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; color: var(--ink3); margin-top: 2px;
  }
  #vista-prof .eco-canasta-kpi-delta {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; font-weight: 600; color: #b33a2a; margin-top: 3px;
  }

  #vista-prof .eco-breakdown-titulo {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; text-transform: uppercase; letter-spacing: 1.2px;
    color: var(--ink3); margin-bottom: 10px;
  }
  #vista-prof .eco-breakdown-item {
    display: grid;
    grid-template-columns: 170px 1fr 32px 72px;
    align-items: center; gap: 8px; margin-bottom: 7px;
  }
  #vista-prof .eco-bd-grupo {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 11px; font-weight: 500; color: var(--ink); line-height: 1.2;
  }
  #vista-prof .eco-bd-items {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8px; color: var(--ink3); margin-top: 1px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  #vista-prof .eco-bd-track {
    height: 8px; background: rgba(17,17,17,0.07);
    overflow: hidden;
  }
  #vista-prof .eco-bd-fill { height: 100%; background: var(--accent); opacity: .75; }
  #vista-prof .eco-bd-pct {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; font-weight: 700; color: var(--ink2); text-align: right;
  }
  #vista-prof .eco-bd-val {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3); text-align: right;
  }
  #vista-prof .eco-mc-nota {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; color: var(--ink3); margin-top: 6px;
    line-height: 1.5; font-style: italic;
  }
  #vista-prof .eco-mc-alerta {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px; font-weight: 600; color: var(--accent);
    margin-top: 6px; padding: 4px 8px;
    background: rgba(26,95,214,0.08);
  }


  /* ── Resumen del período (Gobierno): toggle de secciones plegadas ── */
  #vista-prof .ejec-resumen-toggle {
    display: block;
    width: 100%;
    margin-top: 12px;
    padding: 8px 10px;
    background: transparent;
    border: 1px solid var(--border);
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--ink2);
    cursor: pointer;
  }
  #vista-prof .ejec-resumen-toggle:hover {
    border-color: var(--accent);
    color: var(--accent);
  }

  /* ── Congreso: saldo oficialista con desglose votación por votación ── */
  #vista-prof .feed-saldo-flex {
    display: flex;
    gap: 14px;
    align-items: stretch;
    flex-wrap: wrap;
    margin: 18px 0 6px;
  }
  #vista-prof .feed-saldo-flex .feed-saldo-box {
    margin: 0;
    flex: 0 0 220px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  #vista-prof .feed-saldo-detalle {
    flex: 1;
    min-width: 300px;
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 12px 14px;
  }
  #vista-prof .saldo-vot-header {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--ink3);
    margin-bottom: 8px;
  }
  #vista-prof .saldo-vot-row {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 4px 0;
    border-bottom: 1px dashed var(--border);
    font-size: 11px;
  }
  #vista-prof .saldo-vot-row:last-of-type { border-bottom: none; }
  #vista-prof .saldo-vot-chip {
    flex: 0 0 auto;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8.5px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    padding: 1px 6px;
    border: 1px solid;
  }
  #vista-prof .saldo-vot-g { color: #1a6a4a; border-color: #1a6a4a; }
  #vista-prof .saldo-vot-p { color: #b41a1a; border-color: #b41a1a; }
  #vista-prof .saldo-vot-tit { flex: 1; color: var(--ink2); line-height: 1.35; }
  #vista-prof .saldo-vot-meta {
    flex: 0 0 auto;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    color: var(--ink3);
  }
  #vista-prof .saldo-vot-mas {
    margin-top: 6px;
    font-size: 10px;
    color: var(--ink3);
    font-style: italic;
  }

  #vista-prof .saldo-vot-row.clickeable { cursor: pointer; }
  #vista-prof .saldo-vot-row.clickeable:hover .saldo-vot-tit { color: var(--accent); }

  /* ── Resumen del período · estilo Opción 1 (rollout tab por tab) ──
     Cáscara redondeada + cajas de dato con esquinas suaves, alineado con
     Economía/Monitor (mismo encuadre: var(--bg) + borde + radio 12px). Cada
     regla está scopeada al contenedor de su tab para migrar de a uno sin
     afectar al resto (las clases .feed-resumen-*/#vista-prof .feed-saldo-* son compartidas).
     Economía y Monitor ya cumplen el estilo, #vista-prof no necesitan override. */
  
  #cong-detalle .feed-resumen-panel {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 12px;
  }
  #vista-prof #cong-detalle .feed-saldo-box,
  #vista-prof #cong-detalle .feed-saldo-detalle { border-radius: 12px; }
  #vista-prof #cong-detalle .feed-resumen-stat { border-radius: 10px; }
  #vista-prof #cong-detalle .ejec-resumen-toggle { border-radius: 8px; }
  /* Boletín Oficial */
  #vista-prof #bol-empty .feed-resumen-panel {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 12px;
  }
  #vista-prof #bol-empty .feed-saldo-box { border-radius: 12px; }
  #vista-prof #bol-empty .feed-resumen-stat { border-radius: 10px; }
  /* Gobierno */
  #vista-prof #ejec-resumen .feed-resumen-panel {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 12px;
  }
  #vista-prof #ejec-resumen .feed-resumen-stat { border-radius: 10px; }
  #vista-prof #ejec-resumen .ejec-resumen-toggle { border-radius: 8px; }

  /* ── BO: chip de relevancia asignada por IA ── */
  /* Chips de relevancia: SÓLIDOS (fondo color + texto blanco) para que resalten
     y no se confundan con los chips de tipo (pastel). alta=verde, media=azul, baja=rosa. */
  #vista-prof .bol-rel-chip {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8.5px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 6px;
    border: none;
    color: #fff;
  }
  #vista-prof .bol-rel-chip.rel-alta  { background: #3B6D11; }
  #vista-prof .bol-rel-chip.rel-media { background: #185FA5; }
  #vista-prof .bol-rel-chip.rel-baja  { background: #A33D63; }

  /* ── Congreso · rediseño jul 2026: Resumen y Contexto en cards estilo C ──
     Cards blancas redondeadas (12px) con header tinta (#0E2A5E) + badge IA
     naranja, como las del tab Gobierno. El % de éxito del oficialismo es el
     protagonista (hero centrado) y el desglose "las que se definieron" queda
     secundario y apagado debajo. Los stats de sesiones/reuniones se relegan a
     la línea de fuente. Todo scopeado a #cong-detalle para no tocar otros tabs. */
  #vista-prof #cong-detalle .cong-res-card {
    background: #fff; border: 1px solid var(--border);
    border-radius: 12px; overflow: hidden; margin-bottom: 18px;
  }
  #vista-prof #cong-detalle .cong-res-header {
    display: flex; align-items: center; gap: 9px;
    background: #0E2A5E; padding: 11px 18px;
  }
  #vista-prof #cong-detalle .cong-res-badge {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px; font-weight: 700;
    letter-spacing: 0.5px; color: var(--accent);
    border: 1px solid var(--accent); border-radius: 4px; padding: 2px 6px;
  }
  #vista-prof #cong-detalle .cong-res-titulo {
    font-family: 'IBM Plex Mono', monospace; font-size: 11px;
    letter-spacing: 2px; font-weight: 700; color: #F3EFE6;
    text-transform: uppercase;
  }
  #vista-prof #cong-detalle .cong-res-body { padding: 16px 20px 18px; }
  #vista-prof #cong-detalle .cong-saldo {
    background: var(--bg2); border: 1px solid var(--border);
    border-radius: 10px; padding: 18px 16px 12px; margin-bottom: 16px;
  }
  #vista-prof #cong-detalle .cong-saldo-hero { text-align: center; padding-bottom: 12px; }
  #vista-prof #cong-detalle .cong-saldo-val {
    font-family: 'IBM Plex Mono', monospace; font-size: 44px; font-weight: 700;
    color: var(--accent); line-height: 1;
  }
  #vista-prof #cong-detalle .cong-saldo-lbl { font-size: 12px; color: var(--ink2); margin-top: 6px; }
  #vista-prof #cong-detalle .cong-saldo-sub {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--ink3);
    letter-spacing: 0.5px; margin-top: 3px;
  }
  #vista-prof #cong-detalle .cong-saldo-det { padding-top: 10px; border-top: 1px solid var(--border); }
  #vista-prof #cong-detalle .cong-saldo-det .saldo-vot-tit { color: var(--ink3); }
  #vista-prof #cong-detalle .cong-res-lista { list-style: none; margin: 4px 0 6px; padding: 0; }
  #vista-prof #cong-detalle .cong-res-lista li {
    position: relative; padding-left: 18px; margin-bottom: 8px;
    font-size: 13px; line-height: 1.55; color: var(--ink1);
  }
  #vista-prof #cong-detalle .cong-res-lista li::before {
    content: "—"; position: absolute; left: 0; color: var(--accent); font-weight: 700;
  }
  #vista-prof #cong-detalle .cong-res-fuente {
    margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--border);
    font-family: 'IBM Plex Mono', monospace; font-size: 8.5px; color: var(--ink3);
    text-align: center; letter-spacing: 0.5px; line-height: 1.8;
  }
  /* Card "Lo que viene": agenda futura + continuaciones + prensa.
     Separador como border-top del siguiente (no bottom del último: después de
     los ítems viene la fuente y :last-of-type no la salteaba → doble línea). */
  #vista-prof #cong-detalle .lqv-item { padding: 11px 0; }
  #vista-prof #cong-detalle .lqv-item:first-child { padding-top: 2px; }
  #vista-prof #cong-detalle .lqv-item + .lqv-item { border-top: 1px solid var(--border); }
  #vista-prof #cong-detalle .lqv-chip {
    display: inline-block; font-family: 'IBM Plex Mono', monospace; font-size: 8.5px;
    font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase;
    padding: 2px 8px; border-radius: 4px; margin-bottom: 6px;
  }
  #vista-prof #cong-detalle .lqv-agenda   { color: #fff; background: var(--accent); }
  #vista-prof #cong-detalle .lqv-continua { color: #1D4ED8; background: #DBEAFE; }
  #vista-prof #cong-detalle .lqv-prensa   { color: #57534E; background: #E7E5E4; }
  #vista-prof #cong-detalle .lqv-texto { font-size: 13px; line-height: 1.55; color: var(--ink2); }
  #vista-prof #cong-detalle .lqv-cuando {
    margin-left: 8px; font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    letter-spacing: 0.5px; color: var(--ink3);
  }
  /* Ítems agrupados bajo un mismo chip: separador punteado entre filas */
  #vista-prof #cong-detalle .lqv-item .lqv-texto + .lqv-texto {
    margin-top: 8px; padding-top: 8px; border-top: 1px dotted var(--border);
  }
  /* El pie de fuente pegado al último ítem (sin colchón vacío) */
  #vista-prof #cong-detalle .lqv-item ~ .cong-res-fuente { margin-top: 2px; }
  /* Fecha de la nota que respalda el ítem (qué tan fresco es) */
  #vista-prof #cong-detalle .lqv-fecha-nota {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 0.5px;
    color: var(--accent); font-weight: 700; text-transform: uppercase; margin-right: 4px;
  }

  /* Gobierno: nota de doble rol (misma persona titular de 2+ carteras) */
  #vista-prof .ejec-doble-rol {
    margin: 4px 0 2px; font-family: 'IBM Plex Mono', monospace; font-size: 9px;
    letter-spacing: 0.5px; color: var(--ink3);
  }

  /* ── Economía · rediseño jul 2026 ─────────────────────────────
     (1) Resumen del período en card estilo C (receta unificada);
     (2) gráfico de inflación con grilla/escala/pico/contexto;
     (3) canasta + fiscal lado a lado. */
  #vista-prof #eco-resumen .eco-res-card {
    background: #fff; border: 1px solid var(--border);
    border-radius: 12px; overflow: hidden; margin-bottom: 18px;
  }
  #vista-prof #eco-resumen .eco-res-header {
    display: flex; align-items: center; gap: 9px;
    background: #0E2A5E; padding: 11px 18px;
  }
  #vista-prof #eco-resumen .eco-res-badge {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px; font-weight: 700;
    letter-spacing: 0.5px; color: var(--accent);
    border: 1px solid var(--accent); border-radius: 4px; padding: 2px 6px;
  }
  #vista-prof #eco-resumen .eco-res-titulo {
    font-family: 'IBM Plex Mono', monospace; font-size: 11px;
    letter-spacing: 2px; font-weight: 700; color: #F3EFE6;
    text-transform: uppercase;
  }
  #vista-prof #eco-resumen .eco-res-body { padding: 16px 20px 18px; }
  #vista-prof #eco-resumen .eco-res-lista { list-style: none; margin: 4px 0 6px; padding: 0; }
  #vista-prof #eco-resumen .eco-res-lista li {
    position: relative; padding-left: 18px; margin-bottom: 8px;
    font-size: 13px; line-height: 1.55; color: var(--ink1);
  }
  #vista-prof #eco-resumen .eco-res-lista li::before {
    content: "—"; position: absolute; left: 0; color: var(--accent); font-weight: 700;
  }

  /* Gráfico de inflación */
  #vista-prof .eco-infl-head {
    display: flex; align-items: baseline; justify-content: space-between;
    flex-wrap: wrap; gap: 8px;
    font-family: 'IBM Plex Mono', monospace; font-size: 10px;
    letter-spacing: 1.5px; color: var(--ink3);
  }
  #vista-prof .eco-infl-head strong { color: var(--ink1); }
  #vista-prof .eco-infl-hero { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin: 6px 0 2px; }
  #vista-prof .eco-infl-val {
    font-family: 'IBM Plex Mono', monospace; font-size: 30px; font-weight: 700;
    color: var(--accent);
  }
  #vista-prof .eco-infl-sub { font-size: 12px; color: var(--ink2); }
  #vista-prof .eco-infl-chip {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px; font-weight: 700;
    letter-spacing: 0.3px;
  }

  /* Bloque Actividad económica (EMAE + sectores) */
  #vista-prof .eco-act-sec-lbl {
    font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 1.5px;
    color: var(--ink3); text-transform: uppercase;
    margin: 14px 0 8px; padding-top: 12px; border-top: 1px solid var(--border);
  }
  #vista-prof .eco-act-sec-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px;
  }
  #vista-prof .eco-act-sec-card {
    border: 1px solid var(--border); border-radius: 10px; padding: 11px 14px; min-width: 0;
  }
  #vista-prof .eco-act-sec-top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
  #vista-prof .eco-act-sec-nombre { font-size: 12px; color: var(--ink2); }
  #vista-prof .eco-act-sec-val { font-family: 'IBM Plex Mono', monospace; font-size: 19px; font-weight: 700; }
  #vista-prof .eco-act-spark { width: 100%; height: 40px; display: block; margin-top: 6px; }
  #vista-prof .eco-act-sec-nota {
    font-family: 'IBM Plex Mono', monospace; font-size: 8.5px; color: var(--ink3);
    margin-top: 3px; letter-spacing: 0.3px;
  }
  #vista-prof .eco-act-fuente {
    margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--border);
    font-family: 'IBM Plex Mono', monospace; font-size: 8.5px; color: var(--ink3);
    text-align: center; letter-spacing: 0.5px;
  }

  /* Economía · Frente social (jul 2026): salario real protagonista +
     cards de empleo / desempleo / pobreza con su período bien visible */
  #vista-prof .eco-soc-chip {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 0.5px;
    color: var(--ink2); background: var(--bg2); border-radius: 5px; padding: 4px 9px;
  }
  #vista-prof .eco-soc-chip strong { color: var(--ink1); }
  #vista-prof .eco-soc-nota-sr { font-size: 12.5px; line-height: 1.55; color: var(--ink2); margin-top: 8px; }
  #vista-prof .eco-soc-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 10px;
  }
  #vista-prof .eco-soc-card { border: 1px solid var(--border); border-radius: 10px; padding: 12px 15px; min-width: 0; }
  #vista-prof .eco-soc-top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap; }
  #vista-prof .eco-soc-nombre { font-size: 12.5px; font-weight: 700; color: var(--ink1); }
  #vista-prof .eco-soc-per {
    font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 700;
    letter-spacing: 1px; color: var(--accent); text-transform: uppercase;
  }
  #vista-prof .eco-soc-val {
    font-family: 'IBM Plex Mono', monospace; font-size: 24px; font-weight: 700;
    color: var(--ink1); margin-top: 4px;
  }
  #vista-prof .eco-soc-delta { font-family: 'IBM Plex Mono', monospace; font-size: 10px; font-weight: 700; margin-left: 6px; }
  #vista-prof .eco-soc-delta.neutro { color: var(--ink3); }
  #vista-prof .eco-soc-svg { width: 100%; height: auto; display: block; margin-top: 6px; }

  /* Imagen Pública: aviso honesto cuando la curva de un actor aún no tiene
     historial suficiente (3 corridas) */
  #vista-prof .img-spark-nota {
    font-family: 'IBM Plex Mono', monospace; font-size: 8.5px; color: var(--ink3);
    letter-spacing: 0.3px; white-space: nowrap;
  }
  /* Imagen Pública: ranking de exposición (quién concentra la agenda) */
  #vista-prof .img-exp-fila { padding: 11px 0; border-top: 1px dotted var(--border); }
  #vista-prof .img-exp-fila:first-of-type { border-top: none; }
  #vista-prof .img-exp-top { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
  #vista-prof .img-exp-nom { font-size: 13.5px; font-weight: 700; color: var(--ink1); }
  #vista-prof .img-exp-delta { font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 0.3px; }
  #vista-prof .img-exp-num { margin-left: auto; font-family: 'IBM Plex Mono', monospace; font-size: 10px; color: var(--ink3); }
  #vista-prof .img-exp-barra {
    height: 6px; background: var(--bg2); border-radius: 3px; margin-top: 6px; overflow: hidden;
  }
  #vista-prof .img-exp-barra i {
    display: block; height: 100%; background: var(--accent); border-radius: 3px;
  }

  /* Tracker RIGI: adhesiones acumuladas, filas clickeables al BO */
  #vista-prof .eco-rigi-hero { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; margin: 8px 0 4px; }
  #vista-prof .eco-rigi-n { font-family: 'IBM Plex Mono', monospace; font-size: 30px; font-weight: 700; color: var(--accent); }
  #vista-prof .eco-rigi-suma { font-family: 'IBM Plex Mono', monospace; font-size: 20px; font-weight: 700; color: var(--ink1); }
  #vista-prof .eco-rigi-suma-nota { font-size: 11px; color: var(--ink3); }
  #vista-prof .eco-rigi-lista { margin-top: 8px; }
  #vista-prof .eco-rigi-fila {
    display: flex; gap: 10px; align-items: baseline; padding: 10px 0;
    border-top: 1px dotted var(--border);
  }
  #vista-prof .eco-rigi-fila:first-child { border-top: 1px solid var(--border); }
  #vista-prof .eco-rigi-fila.clickeable { cursor: pointer; }
  #vista-prof .eco-rigi-fila.clickeable:hover .eco-rigi-nombre strong { color: var(--accent); }
  #vista-prof .eco-rigi-fecha { font-family: 'IBM Plex Mono', monospace; font-size: 9.5px; color: var(--ink3); flex-shrink: 0; min-width: 44px; }
  #vista-prof .eco-rigi-nombre { flex: 1; font-size: 13px; color: var(--ink2); min-width: 0; }
  #vista-prof .eco-rigi-nombre strong { color: var(--ink1); }
  #vista-prof .eco-rigi-chip {
    font-family: 'IBM Plex Mono', monospace; font-size: 8.5px; padding: 1px 7px;
    border-radius: 6px; text-transform: uppercase; letter-spacing: 0.5px; margin-left: 4px;
  }
  #vista-prof .eco-rigi-monto { font-family: 'IBM Plex Mono', monospace; font-size: 12px; font-weight: 700; color: var(--ink1); flex-shrink: 0; }
  #vista-prof .eco-rigi-sinmonto { font-family: 'IBM Plex Mono', monospace; font-size: 10px; font-weight: 400; color: var(--ink3); }
  #vista-prof .eco-rigi-link { font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--accent); flex-shrink: 0; }
  #vista-prof .eco-rigi-desc {
    font-size: 11.5px; line-height: 1.5; color: var(--ink3);
    margin: -4px 0 10px; padding-left: 54px;   /* alineada con el nombre */
  }

  /* Balanza + canasta + fiscal en un mismo renglón (apilan en angosto) */
  #vista-prof .eco-mensual-grid2 {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 12px; align-items: stretch;
  }
  #vista-prof .eco-mensual-grid2 .eco-card { min-width: 0; }
  @media (max-width: 900px) {
    #vista-prof .eco-mensual-grid2 { grid-template-columns: 1fr; }
  }

  /* ── Boletín Oficial · Resumen del período en card estilo C (jul 2026) ──
     Misma receta que Congreso: card blanca redondeada, header tinta #0E2A5E
     + badge IA naranja, ítems con viñeta — naranja. Scopeado a #bol-empty. */
  #vista-prof #bol-empty .bol-res-card {
    background: #fff; border: 1px solid var(--border);
    border-radius: 12px; overflow: hidden; margin-bottom: 18px;
  }
  #vista-prof #bol-empty .bol-res-header {
    display: flex; align-items: center; gap: 9px;
    background: #0E2A5E; padding: 11px 18px;
  }
  #vista-prof #bol-empty .bol-res-badge {
    font-family: 'IBM Plex Mono', monospace; font-size: 8px; font-weight: 700;
    letter-spacing: 0.5px; color: var(--accent);
    border: 1px solid var(--accent); border-radius: 4px; padding: 2px 6px;
  }
  #vista-prof #bol-empty .bol-res-titulo {
    font-family: 'IBM Plex Mono', monospace; font-size: 11px;
    letter-spacing: 2px; font-weight: 700; color: #F3EFE6;
    text-transform: uppercase;
  }
  #vista-prof #bol-empty .bol-res-body { padding: 16px 20px 18px; }
  #vista-prof #bol-empty .bol-res-lista { list-style: none; margin: 4px 0 6px; padding: 0; }
  #vista-prof #bol-empty .bol-res-lista li {
    position: relative; padding-left: 18px; margin-bottom: 8px;
    font-size: 13px; line-height: 1.55; color: var(--ink1);
  }
  #vista-prof #bol-empty .bol-res-lista li::before {
    content: "—"; position: absolute; left: 0; color: var(--accent); font-weight: 700;
  }
  #vista-prof #bol-empty .bol-res-fuente {
    margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--border);
    font-family: 'IBM Plex Mono', monospace; font-size: 8.5px; color: var(--ink3);
    text-align: center; letter-spacing: 0.5px; line-height: 1.8;
  }
  #vista-prof #bol-empty .bol-res-body .feed-saldo-box { margin-top: 0; border-radius: 10px; }
