/* static/css/sistema.css — sistema glassmorphism claro institucional */

/* --- Tipografía auto-hospedada (Space Grotesk + Inter, vía @fontsource) --- */
@font-face{
  font-family:"Space Grotesk"; font-style:normal; font-weight:400;
  font-display:swap; src:url("../fonts/space-grotesk-400.1a806675790e.woff2") format("woff2");
}
@font-face{
  font-family:"Space Grotesk"; font-style:normal; font-weight:500;
  font-display:swap; src:url("../fonts/space-grotesk-500.ab4861869c91.woff2") format("woff2");
}
@font-face{
  font-family:"Space Grotesk"; font-style:normal; font-weight:600;
  font-display:swap; src:url("../fonts/space-grotesk-600.49f2dd2d2132.woff2") format("woff2");
}
@font-face{
  font-family:"Space Grotesk"; font-style:normal; font-weight:700;
  font-display:swap; src:url("../fonts/space-grotesk-700.f9e147a59a93.woff2") format("woff2");
}
@font-face{
  font-family:"Inter"; font-style:normal; font-weight:400;
  font-display:swap; src:url("../fonts/inter-400.da03732a27e1.woff2") format("woff2");
}
@font-face{
  font-family:"Inter"; font-style:normal; font-weight:500;
  font-display:swap; src:url("../fonts/inter-500.51205681a1ba.woff2") format("woff2");
}
@font-face{
  font-family:"Inter"; font-style:normal; font-weight:600;
  font-display:swap; src:url("../fonts/inter-600.2ede57db1a3a.woff2") format("woff2");
}

/* --- Patria: tipografía institucional (títulos del encabezado) --- */
@font-face{font-family:"Patria";font-weight:700;font-style:normal;
  src:url("../brand/fonts/Patria-Bold.ee6e88db6fa3.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Patria";font-weight:400;font-style:normal;
  src:url("../brand/fonts/Patria-Regular.dbd5974e59f5.woff2") format("woff2");font-display:swap}

:root{
  --bg:#f4f2ec; --green:#235B4E; --gold:#BC955C; --guinda:#9F2241;
  /* Familia FASE (verde profundo -> jade claro) — color de apoyo/composición */
  --f1:#173f37; --f2:#235B4E; --f3:#3c8c74; --f4:#83c0a8; --gold-2:#d8b981;
  --ink:#1b2a26; --muted:#5f6f6a; --line:#e4e0d6;
  --glass:rgba(255,255,255,.66); --glass-strong:rgba(255,255,255,.82);
  --shadow:0 1px 2px rgba(27,42,38,.04), 0 6px 18px rgba(27,42,38,.06);
  --shadow-h:0 4px 10px rgba(27,42,38,.08), 0 14px 34px rgba(27,42,38,.10);
  --display:"Space Grotesk",ui-sans-serif,system-ui,sans-serif;
  --body:"Inter",ui-sans-serif,system-ui,sans-serif;
}
body{
  background:var(--bg); color:var(--ink); font-family:var(--body);
  background-image:
    radial-gradient(1100px 520px at 12% -8%, rgba(35,91,78,.06), transparent 60%),
    radial-gradient(900px 460px at 112% 4%, rgba(188,149,92,.08), transparent 58%);
  background-attachment:fixed;
}
.glass-shell,.glass-card,.glass-tile{
  background:var(--glass); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow);
}
.glass-card{padding:18px}
.glass-tile{padding:16px 18px}
.glass-card:hover{box-shadow:var(--shadow-h)}

/* ---- Panel "Avance de reporte por entidad": tablero de completitud + ranking ---- */
.avance-top{display:flex;gap:22px;align-items:center;flex-wrap:wrap;
  padding-bottom:16px;border-bottom:1px solid var(--line)}
.avance-donut{--p:0;width:112px;height:112px;border-radius:50%;flex:none;position:relative;
  display:grid;place-items:center;background:conic-gradient(var(--gold) calc(var(--p)*3.6deg),#e7e2d6 0);
  transition:--p 1.2s cubic-bezier(.2,.7,.2,1)}
.avance-donut::after{content:"";position:absolute;inset:10px;border-radius:50%;background:var(--glass-strong)}
.avance-donut .in{position:relative;z-index:1;text-align:center}
.avance-donut .in b{font-family:var(--display);font-weight:600;font-size:24px;line-height:1;display:block;color:#8a6a2f}
.avance-donut .in span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.avance-top .txt{flex:1;min-width:220px}
.avance-top .txt b{font-family:var(--display);font-weight:600;font-size:18px}
.avance-top .txt p{margin:5px 0 0;color:var(--muted);font-size:13.5px}
.avance-top .txt .g{color:var(--guinda);font-weight:600}

.avance-atencion{display:flex;gap:12px;align-items:center;flex-wrap:wrap;
  background:#f7e9ec;border:1px solid rgba(159,34,65,.30);border-radius:14px;padding:12px 15px;margin-top:14px}
.avance-atencion .dot{width:10px;height:10px;border-radius:50%;background:var(--guinda);flex:none;box-shadow:0 0 0 4px #f7e9ec}
.avance-atencion .g{flex:1;min-width:180px}
.avance-atencion .g b{font-family:var(--display);font-weight:600;font-size:14px}
.avance-atencion .g p{margin:2px 0 0;color:var(--muted);font-size:12.5px}
.avance-atencion .track{width:110px;height:8px;border-radius:99px;background:#efdfe3;overflow:hidden;flex:none}
.avance-atencion .track i{display:block;height:100%;background:var(--guinda);border-radius:99px}
.avance-atencion .pct{font-family:var(--display);font-weight:600;color:var(--guinda);font-size:14px;flex:none;
  font-variant-numeric:tabular-nums}

.avance-ok{display:flex;gap:9px;align-items:center;margin-top:14px;color:var(--green);
  background:#e7efec;border:1px solid rgba(35,91,78,.28);border-radius:14px;padding:12px 15px;
  font-family:var(--display);font-weight:600;font-size:14px}
.avance-ok svg{width:16px;height:16px;flex:none}

.avance-chips-h{font-size:11.5px;color:#8a978f;text-transform:uppercase;letter-spacing:.08em;margin:18px 0 9px}
.avance-chips{display:flex;flex-wrap:wrap;gap:7px}
.avance-chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--green);
  background:#e7efec;border:1px solid rgba(35,91,78,.28);border-radius:999px;padding:4px 10px 4px 8px}
.avance-chip svg{width:13px;height:13px;flex:none}
.avance-chip .n{color:#8a978f;font-variant-numeric:tabular-nums;font-size:11px}

.avance-ver{margin-top:18px;border-top:1px solid var(--line);padding-top:4px}
.avance-ver>summary{cursor:pointer;list-style:none;padding:9px 0;display:flex;align-items:center;gap:8px;
  font-family:var(--display);font-weight:600;font-size:13.5px;color:var(--green)}
.avance-ver>summary::-webkit-details-marker{display:none}
.avance-ver>summary::before{content:"\25B8";display:inline-block;transition:transform .2s}
.avance-ver[open]>summary::before{transform:rotate(90deg)}
.avance-rank{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;padding:6px 0 2px}
.avance-row{display:grid;grid-template-columns:14px minmax(90px,150px) 1fr auto;align-items:center;gap:10px;
  padding:6px 0;border-bottom:1px solid #ece7db}
.avance-row .d{width:8px;height:8px;border-radius:50%;background:var(--green);justify-self:center}
.avance-row.warn .d{background:var(--guinda);box-shadow:0 0 0 3px #f7e9ec}
.avance-row .nm{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.avance-row .tk{height:7px;border-radius:99px;background:#eee9dd;overflow:hidden}
.avance-row .tk i{display:block;height:100%;background:var(--green);border-radius:99px}
.avance-row.warn .tk i{background:var(--guinda)}
.avance-row .v{font-family:var(--display);font-weight:600;font-size:12.5px;text-align:right;white-space:nowrap;
  font-variant-numeric:tabular-nums}
.avance-row .v small{display:block;font-family:var(--body);font-weight:500;font-size:10px;color:var(--guinda)}
@media(max-width:640px){.avance-rank{grid-template-columns:1fr}}

/* ---- Tabla de unidades — moderna (rejilla con riel de estatus) ---- */
.tabla-mod{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12.5px}
.tabla-mod thead th{text-align:left;font-family:var(--display);font-weight:600;font-size:11px;
  letter-spacing:.04em;text-transform:uppercase;color:#8a978f;padding:11px 12px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;position:sticky;top:0;z-index:1;
  background:var(--glass-strong);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line)}
.tabla-mod tbody td{padding:10px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  color:var(--ink);border-bottom:1px solid #ece7db;vertical-align:middle}
.tabla-mod tbody tr:last-child td{border-bottom:0}
/* Riel izquierdo por FASE de implementación (color de apoyo verde/jade).
   El estatus es uniforme (todo enviado), así que el color lo da la fase, que sí varía. */
.tabla-mod tbody tr td:first-child{box-shadow:inset 3px 0 0 var(--rail,#235B4E);transition:box-shadow .18s}
.tabla-mod tbody tr[data-f="1"]{--rail:#235B4E}
.tabla-mod tbody tr[data-f="2"]{--rail:#1C7C74}
.tabla-mod tbody tr[data-f="3"]{--rail:#BC955C}
.tabla-mod tbody tr[data-f="4"]{--rail:#9F2241}
/* Zebra sutil para leer mejor entre columnas */
.tabla-mod tbody tr:nth-child(even) td{background:rgba(35,91,78,.022)}
/* Filas pendientes (guinda) siguen resaltando si algún día las hay */
.tabla-mod tbody tr.pend{--rail:var(--gold)}
.tabla-mod tbody tr.pend td{background:#f7f0e2}
/* Hover: tinte + riel con glow del color de su fase */
.tabla-mod tbody tr:hover td{background:rgba(35,91,78,.06)}
.tabla-mod tbody tr:hover td:first-child{box-shadow:inset 4px 0 0 var(--rail,var(--f2)),
  -1px 0 8px -2px color-mix(in srgb, var(--rail,var(--f2)) 55%, transparent)}
.tabla-mod tbody tr.pend:hover td{background:#f3ead6}
.tabla-mod .mono{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:11.5px;color:var(--muted);letter-spacing:-.02em}

/* Chip de estatus con punto */
.pill-mod{display:inline-flex;align-items:center;gap:6px;font-family:var(--display);font-weight:600;
  font-size:11.5px;padding:3px 9px 3px 7px;border-radius:999px;white-space:nowrap}
.pill-mod .dot{width:6px;height:6px;border-radius:50%;flex:none}
.pill-mod--env{color:var(--green);background:#e7efec;border:1px solid rgba(35,91,78,.26)}
.pill-mod--env .dot{background:var(--green)}
.pill-mod--pend{color:#8a6a2f;background:#f5eee2;border:1px solid rgba(188,149,92,.42)}
.pill-mod--pend .dot{background:var(--gold)}
/* Punto de "Enviado" con latido muy sutil */
.pill-mod--env .dot{box-shadow:0 0 0 0 rgba(35,91,78,.5);animation:pillPulse 2.8s ease-out infinite}
@keyframes pillPulse{0%{box-shadow:0 0 0 0 rgba(35,91,78,.35)}70%{box-shadow:0 0 0 5px rgba(35,91,78,0)}100%{box-shadow:0 0 0 0 rgba(35,91,78,0)}}

/* Chip de FASE en la columna Fase (mismo color de apoyo del riel) */
.fase-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--display);font-weight:600;font-size:11px;
  padding:3px 9px 3px 8px;border-radius:999px;white-space:nowrap;border:1px solid transparent}
.fase-chip i{width:7px;height:7px;border-radius:50%;flex:none}
/* Un color distinto por fase (verde · teal · oro · guinda) */
.fase-chip[data-f="1"]{background:#e7efec;color:#1f5245;border-color:rgba(35,91,78,.28)}
.fase-chip[data-f="1"] i{background:#235B4E}
.fase-chip[data-f="2"]{background:#e1efed;color:#155b54;border-color:rgba(28,124,116,.32)}
.fase-chip[data-f="2"] i{background:#1C7C74}
.fase-chip[data-f="3"]{background:#f5eede;color:#8a6a2f;border-color:rgba(188,149,92,.45)}
.fase-chip[data-f="3"] i{background:#BC955C}
.fase-chip[data-f="4"]{background:#f7e9ec;color:#9F2241;border-color:rgba(159,34,65,.35)}
.fase-chip[data-f="4"] i{background:#9F2241}

/* Resaltado del término buscado (solo presentación) */
.tabla-mod mark{background:rgba(188,149,92,.32);color:inherit;border-radius:3px;padding:0 1px}

/* Entrada escalonada de filas (solo al cargar/entrar a la pestaña; tope 24 por performance).
   Se activa con la clase .filas-anim en el tbody; el buscador no la usa. */
.tabla-mod tbody.filas-anim tr{opacity:0;animation:filaIn .42s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes filaIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.tabla-mod tbody.filas-anim tr:nth-child(1){animation-delay:.02s}
.tabla-mod tbody.filas-anim tr:nth-child(2){animation-delay:.05s}
.tabla-mod tbody.filas-anim tr:nth-child(3){animation-delay:.08s}
.tabla-mod tbody.filas-anim tr:nth-child(4){animation-delay:.11s}
.tabla-mod tbody.filas-anim tr:nth-child(5){animation-delay:.14s}
.tabla-mod tbody.filas-anim tr:nth-child(6){animation-delay:.17s}
.tabla-mod tbody.filas-anim tr:nth-child(7){animation-delay:.20s}
.tabla-mod tbody.filas-anim tr:nth-child(8){animation-delay:.23s}
.tabla-mod tbody.filas-anim tr:nth-child(9){animation-delay:.26s}
.tabla-mod tbody.filas-anim tr:nth-child(10){animation-delay:.29s}
.tabla-mod tbody.filas-anim tr:nth-child(n+11){animation-delay:.32s}
.tabla-mod tbody.filas-anim tr:nth-child(n+25){animation:none;opacity:1}

/* ---- KPIs modernos (concepto A): icono + contexto + micro-viz ---- */
.kpi-mod{position:relative;background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:16px 17px;overflow:hidden;
  transition:transform .18s,box-shadow .18s;animation:kpi-in .55s cubic-bezier(.2,.7,.2,1) both}
.kpi-mod:hover{transform:translateY(-3px);box-shadow:var(--shadow-h)}
.kpi-mod:nth-child(1){animation-delay:.04s}
.kpi-mod:nth-child(2){animation-delay:.12s}
.kpi-mod:nth-child(3){animation-delay:.20s}
.kpi-mod:nth-child(4){animation-delay:.28s}
@keyframes kpi-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.kpi-mod__chip{width:34px;height:34px;border-radius:10px;display:grid;place-items:center}
.kpi-mod__chip svg{width:18px;height:18px}
.kpi-mod__chip--g{background:#e7efec;color:var(--green)}
.kpi-mod__chip--d{background:#f5eee2;color:#8a6a2f}
.kpi-mod__chip--n{background:#eef2f0;color:var(--muted)}
.kpi-mod__lab{font-size:11.5px;color:#8a978f;text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin:14px 0 2px}
.kpi-mod__val{font-family:var(--display);font-weight:600;font-size:30px;line-height:1;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;color:var(--ink)}
.kpi-mod__ctx{font-size:12px;color:var(--muted);margin-top:8px;min-height:15px}
.kpi-mod__ctx b{color:var(--guinda);font-weight:600}
.kpi-mod__spark{margin-top:10px;height:26px}
.kpi-mod__spark svg{width:100%;height:26px;display:block}
.spark-area{fill:rgba(35,91,78,.12)}
.spark-line{fill:none;stroke:url(#sparkGrad);stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-linejoin:round}
/* KPI de avance con anillo de progreso — anillo a la izquierda, textos centrados */
.kpi-mod--avance{display:flex;flex-direction:row;align-items:center;gap:15px}
.kpi-mod--avance .kpi-mod__lab{margin:0 0 5px}
.kpi-mod__avance-txt{min-width:0}
.kpi-mod__ring{position:relative;width:70px;height:70px;flex:none}
.kpi-mod__ring svg{width:70px;height:70px;transform:rotate(-90deg)}
.kpi-ring-track{fill:none;stroke:var(--line);stroke-width:8}
.kpi-ring-prog{fill:none;stroke:url(#ringGrad);stroke-width:8;stroke-linecap:round;
  transition:stroke-dashoffset 1.2s cubic-bezier(.2,.7,.2,1)}
.kpi-mod__ring-mid{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);
  font-weight:600;font-size:14px;letter-spacing:-.01em;color:#8a6a2f;font-variant-numeric:tabular-nums}

/* ============================================================
   Rediseño Panorama v2 — logro dorado + composición por fase.
   Aditivo a los KPIs/avance existentes; no toca el bloque an-* (Análisis).
   ============================================================ */
@property --p { syntax:'<number>'; initial-value:0; inherits:false; }
@keyframes barGrow{to{transform:scaleX(1)}}

/* Riel de acento que crece en el borde izq al hover, por KPI */
.kpi-mod::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px;
  background:var(--rail,var(--green));transform:scaleX(0);transform-origin:left;
  transition:transform .22s cubic-bezier(.2,.7,.2,1)}
.kpi-mod:hover::before{transform:scaleX(1)}
.kpi-mod:nth-child(1){--rail:#9aa8a2}
.kpi-mod:nth-child(2){--rail:var(--green)}
.kpi-mod:nth-child(3){--rail:var(--green)}
.kpi-mod:nth-child(4){--rail:var(--gold)}

/* Mini barra apilada por fase (KPI Total) */
.kpi-fasebar{margin-top:11px}
.kpi-fasebar__track{display:flex;height:9px;border-radius:99px;overflow:hidden;background:#eee9dd}
.kpi-fasebar__track i{height:100%;transform:scaleX(0);transform-origin:left;
  animation:barGrow .7s cubic-bezier(.2,.7,.2,1) forwards}
.kpi-fasebar__leg{display:flex;gap:9px;flex-wrap:wrap;margin-top:7px;font-size:10px;color:var(--muted)}
.kpi-fasebar__leg span{display:inline-flex;align-items:center;gap:4px;font-variant-numeric:tabular-nums}
.kpi-fasebar__leg i{width:8px;height:8px;border-radius:2px;display:inline-block}

/* Spark: punta dorada pulsante */
.spark-tip{fill:var(--gold);filter:drop-shadow(0 0 3px rgba(188,149,92,.7));animation:tipPulse 2.4s ease-in-out infinite}
@keyframes tipPulse{0%,100%{opacity:.65}50%{opacity:1}}

/* Anillo Avance: brillo dorado de logro tras aterrizar */
.kpi-ring-prog.landed{animation:goldGlow 2.6s ease-in-out infinite}
@keyframes goldGlow{0%,100%{filter:drop-shadow(0 0 1px rgba(188,149,92,.35))}50%{filter:drop-shadow(0 0 5px rgba(188,149,92,.85))}}

/* Chip "meta cumplida" (KPI Avance y encabezado del panel) */
.kpi-meta,.avance-meta{display:inline-flex;align-items:center;gap:5px;font-family:var(--display);font-weight:600;
  font-size:11px;color:#8a6a2f;background:#f3e9d6;border:1px solid rgba(188,149,92,.42);border-radius:999px;padding:3px 9px}
.kpi-meta{margin-top:6px}
.avance-meta{margin-bottom:8px}
.kpi-meta svg,.avance-meta svg{width:12px;height:12px}
/* Éxito "sin pendientes" (KPI Pendientes = 0) */
.kpi-ok{color:var(--green);font-weight:600;display:inline-flex;align-items:center;gap:4px}
.kpi-ok svg{width:13px;height:13px}

/* Dona de logro: halo dorado cuando el reporte está completo */
.avance-donut.done{animation:donutHalo 2.8s ease-in-out infinite}
@keyframes donutHalo{0%,100%{box-shadow:0 0 0 0 rgba(188,149,92,0)}50%{box-shadow:0 0 22px 2px rgba(188,149,92,.35)}}

/* Pulso guinda en la tarjeta de atención (solo aparece si hay atraso) */
.avance-atencion .dot{animation:atPulse 2.2s ease-out infinite}
@keyframes atPulse{0%{box-shadow:0 0 0 0 rgba(159,34,65,.45)}70%{box-shadow:0 0 0 7px rgba(159,34,65,0)}100%{box-shadow:0 0 0 0 rgba(159,34,65,0)}}

/* Composición por Fase (barras apiladas por entidad) */
.fase-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin:20px 0 4px}
.fase-head h4{font-family:var(--display);font-weight:600;font-size:13.5px;margin:0}
.fase-leg{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.fase-leg span{display:inline-flex;align-items:center;gap:5px}
.fase-leg i{width:10px;height:10px;border-radius:3px;display:inline-block}
.fase-rank{margin-top:10px}
.fase-row{display:grid;grid-template-columns:minmax(90px,150px) 1fr auto;align-items:center;gap:12px;
  padding:7px 0;border-bottom:1px solid #ece7db}
.fase-row:last-child{border-bottom:0}
.fase-row .nm{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fase-row .bar{height:14px;border-radius:6px;overflow:hidden;background:#eee9dd;display:flex;
  transform:scaleX(0);transform-origin:left;animation:barGrow .7s cubic-bezier(.2,.7,.2,1) forwards}
.fase-row .bar i{height:100%;transition:filter .18s}
.fase-row:hover .bar i{filter:brightness(1.06)}
.fase-row .v{font-family:var(--display);font-weight:600;font-size:12.5px;text-align:right;
  font-variant-numeric:tabular-nums;color:var(--ink)}

/* ---- Encabezado institucional (Concepto 1: franja + banda de título) ---- */
.ins-header{position:relative;z-index:5}
.ins-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;
  background:#faf7f0;padding:12px 26px;border-bottom:1px solid var(--line)}
.ins-logo-gob{height:40px;width:auto;display:block}
.ins-logo-imb{height:34px;width:auto;display:block}
.ins-title{display:flex;align-items:center;justify-content:space-between;gap:22px;position:relative;
  background:linear-gradient(100deg,var(--green),#1a463c);color:#fff;padding:15px 26px}
.ins-title::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:linear-gradient(90deg,#1a463c 0 33%,var(--guinda) 33% 66%,var(--gold) 66% 100%)}
.ins-title h1{font-family:"Patria",Georgia,"Times New Roman",serif;font-weight:700;font-size:23px;margin:0;
  line-height:1.1;letter-spacing:.01em}
.ins-title p{margin:3px 0 0;font-size:13px;color:rgba(255,255,255,.82);letter-spacing:.02em}
.ins-title__acc{display:flex;align-items:center;gap:16px;flex:none}
.ins-envivo{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:600;letter-spacing:.08em;
  color:#dff0e9;text-transform:uppercase;white-space:nowrap}
.ins-envivo i{width:8px;height:8px;border-radius:50%;background:#8fe3c6;box-shadow:0 0 0 3px rgba(143,227,198,.25);
  animation:ins-latido 2s ease-in-out infinite}
@keyframes ins-latido{0%,100%{opacity:1}50%{opacity:.35}}
.ins-updated{display:flex;flex-direction:column;font-size:11.5px;color:rgba(255,255,255,.72);text-align:right;line-height:1.35}
.ins-updated__sub{color:rgba(255,255,255,.55)}
.ins-salir{border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:9px;padding:7px 15px;font-size:12.5px;
  font-weight:600;text-decoration:none;font-family:var(--body);transition:background .15s}
.ins-salir:hover{background:rgba(255,255,255,.13)}
@media(max-width:760px){
  .ins-bar{padding:10px 16px}.ins-logo-gob{height:32px}.ins-logo-imb{height:27px}
  .ins-title{flex-wrap:wrap;gap:12px 16px;padding:14px 16px}
  .ins-title h1{font-size:19px}.ins-title__acc{gap:12px}
}

/* Guiño de versión del formulario (V. 1.2) junto al título */
.ver-tag{display:inline-block;vertical-align:middle;margin-left:8px;padding:2px 9px;
  border-radius:999px;border:1px solid rgba(255,255,255,.45);color:#f3e9d6;
  font-family:var(--display);font-size:11.5px;font-weight:600;letter-spacing:.05em;
  position:relative;top:-2px;white-space:nowrap}
/* En la tarjeta de login (fondo claro) el guiño usa la variante dorada */
.login-caja .ver-tag{border-color:rgba(188,149,92,.5);color:#8a6a2f;background:#f5eee2}

/* ---- Sección de filtros rediseñada (foco verde + chips de filtros activos) ---- */
.filtros-card{padding:15px 18px 17px}
.filtros-card__head{display:flex;align-items:center;gap:9px;margin-bottom:13px}
.filtros-card__ic{width:16px;height:16px;color:var(--green);flex:none}
.filtros-card__head b{font-family:var(--display);font-weight:600;font-size:14px}
.filtros-card__lim{margin-left:auto;font-size:12.5px;font-weight:600;color:var(--green);cursor:pointer;font-family:var(--body);
  display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(35,91,78,.24);background:#e7efec;
  border-radius:999px;padding:5px 12px}
.filtros-card__lim:hover{background:#dbe8e3}
/* El atributo [hidden] debe ganar sobre el display de la clase (botón/chips ocultos sin filtros). */
.filtros-card__lim[hidden],.filtros-chips[hidden]{display:none}
.filtros-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:11px}
@media(max-width:900px){.filtros-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.filtros-grid{grid-template-columns:repeat(2,1fr)}}
.campo-mod{display:flex;flex-direction:column;gap:5px;min-width:0}
.campo-mod label{font-size:11px;font-weight:600;color:#8a978f;text-transform:uppercase;letter-spacing:.05em;padding-left:2px}
.control-mod{height:40px;border:1px solid var(--line);border-radius:10px;background:var(--glass-strong);padding:0 12px;
  color:var(--ink);font-size:13.5px;font-family:var(--body);outline:none;width:100%;
  transition:border-color .15s,box-shadow .15s}
.control-mod:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(35,91,78,.18)}
.control-mod::placeholder{color:#8a978f}
.filtros-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.filtros-chips__lbl{font-size:12px;color:#8a978f;align-self:center;margin-right:2px}
.filtro-chip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--green);background:#e7efec;
  border:1px solid rgba(35,91,78,.24);border-radius:999px;padding:4px 6px 4px 11px}
.filtro-chip b{font-weight:600}
.filtro-chip .k{color:#8a978f;font-weight:500}
.filtro-chip .x{width:17px;height:17px;border-radius:50%;display:grid;place-items:center;background:rgba(35,91,78,.12);
  font-size:11px;cursor:pointer;line-height:1;color:var(--green)}
.filtro-chip .x:hover{background:rgba(35,91,78,.22)}

/* ============================================================
   Pestaña Análisis — categorías, barras Sí/No y multivalor, proveedor
   y resumen de observaciones. Clases con prefijo an- para no colisionar.
   ============================================================ */
.analisis-cats{display:flex;flex-direction:column;gap:16px;margin-top:6px}
.analisis-n{margin:0 0 6px}
.analisis-cats .num{font-variant-numeric:tabular-nums}

/* Tarjeta de categoría (usa .glass-card para la superficie) */
.an-cat{padding:20px 22px 18px}
.an-cat-h{display:flex;align-items:center;justify-content:space-between;gap:6px 16px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid #ece7db}
.an-cat-h h2{font-family:var(--display);font-weight:600;font-size:19px;margin:0;letter-spacing:-.01em;color:var(--ink);display:flex;align-items:center;gap:11px}
.an-cat-h h2::before{content:"";width:4px;height:19px;border-radius:2px;background:var(--green);flex:none}
.an-cat-h .an-ins{font-size:12.5px;color:var(--muted);font-weight:500}
.an-cat-body{margin-top:10px}

/* Pregunta (título destacado + divisón entre preguntas) */
.an-q{padding:14px 0;border-bottom:1px solid var(--line)}
.an-q:last-child{border-bottom:0;padding-bottom:2px}
.an-q__top{display:flex;justify-content:flex-start;align-items:baseline;gap:11px}
.an-q__lab{font-family:var(--display);font-weight:600;font-size:14.5px;color:var(--ink);letter-spacing:-.005em;display:inline-flex;align-items:baseline;gap:8px}
.an-q__lab::before{content:"";width:5px;height:5px;border-radius:1.5px;background:var(--gold);flex:none;transform:translateY(-1px)}
.an-q__pct{font-family:var(--display);font-weight:700;font-size:14px;color:var(--green);flex:none;white-space:nowrap}
.an-q__pct small{font-family:var(--body);font-weight:600;font-size:10.5px;color:#3f8272;margin-left:4px;text-transform:uppercase;letter-spacing:.05em;position:relative;top:-.5px}
.an-q__kind{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#8a978f;font-weight:600;flex:none;margin-left:auto}
.an-q__track{height:9px;border-radius:99px;overflow:hidden;display:flex;background:#ece7db;margin-top:8px;width:100%;max-width:360px}
.an-q__si{height:100%;background:linear-gradient(90deg,var(--green),#3f8272);width:0;transition:width .8s cubic-bezier(.2,.7,.2,1)}
.an-q__no{height:100%;background:linear-gradient(90deg,#b83b56,var(--guinda))}
.an-q__meta{font-size:11.5px;color:var(--muted);margin-top:8px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.an-q__meta span{display:inline-flex;align-items:center;gap:6px}
.an-q__meta span::before{content:"";width:9px;height:9px;border-radius:2px;flex:none}
.an-q__meta .si::before{background:var(--green)}
.an-q__meta .no::before{background:var(--guinda)}
.an-q__meta b{color:var(--ink);font-weight:600}

/* Pregunta de varias opciones */
.an-multi{margin-top:9px;display:grid;gap:6px}
.an-mrow{display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:10px}
.an-mrow__nm{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.an-mrow__tk{height:12px;border-radius:5px;background:#ece7db;overflow:hidden}
.an-mrow__tk i{display:block;height:100%;border-radius:5px;width:0;transition:width .8s cubic-bezier(.2,.7,.2,1)}
.an-mrow__v{font-family:var(--display);font-weight:600;font-size:12px;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.an-mrow__v small{font-family:var(--body);font-weight:500;color:#8a978f}
@media(max-width:560px){.an-mrow{grid-template-columns:104px 1fr auto}}

/* Subtítulo (Proveedor de internet) y ranking */
.an-subh{display:flex;align-items:center;gap:9px;margin:18px 0 4px;font-family:var(--display);font-weight:600;font-size:14px;color:var(--ink)}
.an-subh__s{font-family:var(--body);font-weight:500;font-size:12px;color:#8a978f;margin-left:auto}
.an-prov{margin-top:6px}
.an-prov__row{display:grid;grid-template-columns:170px 1fr auto;align-items:center;gap:12px;padding:6px 0;border-bottom:1px solid #ece7db}
.an-prov__row:last-child{border-bottom:0}
.an-prov__nm{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:7px}
.an-prov__nm i{width:8px;height:8px;border-radius:2px;flex:none}
.an-prov__tk{height:12px;border-radius:4px;background:#ece7db;overflow:hidden}
.an-prov__tk i{display:block;height:100%;border-radius:4px}
.an-grow .an-prov__tk i{width:0;transition:width .8s cubic-bezier(.2,.7,.2,1)}
.an-prov__v{font-family:var(--display);font-weight:600;font-size:12.5px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink)}
.an-prov__v small{font-family:var(--body);font-weight:500;color:#8a978f}
.an-callout{margin-top:14px;background:#f5eee2;border:1px solid rgba(188,149,92,.4);border-radius:12px;padding:12px 15px;font-size:13px;color:var(--ink)}
.an-callout b{font-weight:600}

/* Resumen de observaciones */
.an-dqh{margin:18px 0 8px}
.an-dqh__eyebrow{display:flex;align-items:center;gap:10px;font-family:var(--body);text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:700;color:#8a6a2f}
.an-dqh__eyebrow::after{content:"";flex:1;height:1px;background:var(--line)}
.an-dqh__title{font-family:var(--display);font-weight:600;font-size:22px;letter-spacing:-.01em;margin:9px 0 3px;color:var(--ink)}
.an-dqh__dek{color:var(--muted);font-size:14px;margin:0;max-width:60ch}
.an-chips-h{font-size:11.5px;color:#8a978f;text-transform:uppercase;letter-spacing:.07em;margin:18px 0 2px;font-weight:600}
.an-words{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.an-word{display:inline-flex;align-items:baseline;gap:5px;background:#e7efec;border:1px solid rgba(35,91,78,.24);border-radius:999px;padding:4px 11px;color:var(--green);font-weight:600;font-size:13px}
.an-word small{color:#8a978f;font-weight:500;font-size:11px}

/* En sus palabras: motivo de voz + revelado palabra por palabra */
.an-voces{margin-top:12px;display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;background:var(--glass-strong);border:1px solid var(--line);border-radius:14px;padding:22px 24px;min-height:120px}
@media(max-width:560px){.an-voces{grid-template-columns:1fr;gap:14px}}
.an-waves{display:flex;align-items:center;gap:4px;height:58px}
.an-waves i{width:5px;border-radius:99px;background:var(--green);animation:an-wv 1.1s ease-in-out infinite}
.an-waves i:nth-child(2){animation-delay:.15s;background:var(--gold)}
.an-waves i:nth-child(3){animation-delay:.3s;background:var(--guinda)}
.an-waves i:nth-child(4){animation-delay:.45s;background:var(--gold)}
.an-waves i:nth-child(5){animation-delay:.6s;background:var(--green)}
@keyframes an-wv{0%,100%{height:14px}50%{height:48px}}
.an-voces__q{min-height:74px}
.an-voces__txt{font-family:var(--display);font-weight:500;font-size:19px;line-height:1.4;color:var(--ink);margin:0}
.an-voces__txt .w{display:inline-block;opacity:0;transform:translateY(8px);transition:opacity .4s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.an-voces__txt .w.on{opacity:1;transform:none}
.an-voces__by{margin:14px 0 0;font-size:12.5px;color:#8a978f}
.an-voces__by .ent{color:var(--green);font-weight:600}
.an-voces__by .tg{color:#8a6a2f;font-weight:600}
.an-voces__dots{display:flex;gap:6px;margin:14px 0 0;flex-wrap:wrap}
.an-voces__dots button{width:7px;height:7px;border-radius:50%;border:0;background:var(--line);cursor:pointer;padding:0;transition:width .3s,background .3s}
.an-voces__dots button.on{background:var(--green);width:18px;border-radius:99px}

@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
