:root{
  --tinta:#0B3D63; --tinta-2:#124876; --tinta-3:#1D5C90; --papel:#F5F7FA; --panel:#FFFFFF; --linea:#E3E9F0;
  --cielo:#EAF3FC; --gris:#5B6B7C; --gris-claro:#8A97A6; --azul:#1F5C99; --verde:#1D7A5F; --ocre:#B9791A; --rojo:#A32E2E;
  --oro:#C9974A; --foco:#E3B23C;
  /* Curvas y tiempos de animación (iOS/macOS): entradas con --ease-sal, resto con --ease */
  --ease:cubic-bezier(.4,0,.2,1); --ease-sal:cubic-bezier(.22,1,.36,1);
  --t-rapido:220ms; --t-medio:300ms; --t-panel:400ms; --t-barra:600ms;
  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:20px; --r-pill:999px;
  --s-sm:0 1px 2px rgba(11,61,99,.07), 0 1px 1px rgba(11,61,99,.04);
  --s-md:0 6px 16px rgba(11,61,99,.09), 0 2px 6px rgba(11,61,99,.06);
  --s-lg:0 16px 40px rgba(11,61,99,.16), 0 6px 16px rgba(11,61,99,.10);
  --s-foco:0 0 0 3px rgba(11,61,99,.16);
  --serif:"Lora","Georgia",serif;
  --sans:"Inter","Segoe UI",Roboto,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --mono:"JetBrains Mono","Consolas","SFMono-Regular",Menlo,monospace;
}
#abrir-admin{
    display: none !important;
}
.container-had{
      padding: 24px !important;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papel);color:#1C2B3A;font-family:var(--sans);font-size:15px;line-height:1.5;
     -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
#c-1,#c-2{text-transform:none}
.env{max-width:1720px;margin:0 auto;padding:0 24px}
button{font:inherit}
:focus-visible{outline:3px solid var(--foco);outline-offset:2px;border-radius:4px}

/* ---------- Encabezado institucional ---------- */
.salto{position:absolute;left:-9999px;top:0;background:var(--foco);color:#3B2A00;padding:10px 16px;z-index:60;font-weight:700;border-radius:0 0 8px 0}
.salto:focus{left:12px;top:12px}
.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:18px 0 0}
.kpi{background:var(--panel);border:1px solid var(--linea);border-radius:var(--r-lg);padding:16px 18px 15px;
     box-shadow:var(--s-sm);position:relative;overflow:hidden;transition:box-shadow var(--t-rapido) var(--ease),transform var(--t-rapido) var(--ease-sal),border-color var(--t-rapido) var(--ease);
     display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;-webkit-appearance:none;appearance:none}
.kpi[aria-pressed="true"]{border-color:var(--c);box-shadow:inset 0 0 0 2px var(--c),var(--s-md)}
.kpi[aria-pressed="true"]::before{width:9px}
.kpi[aria-pressed="true"] b{color:var(--c)}
.kpi:focus-visible{outline:3px solid var(--foco);outline-offset:2px}
.kpi:disabled{cursor:default}
.kpi:disabled:hover{box-shadow:var(--s-sm);transform:none}
.kpi[data-volver]{border-color:var(--c)}
.kpi[data-volver] b::after{content:" ↺";font-size:16px;color:var(--c)}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--c,var(--tinta));border-radius:var(--r-lg) 0 0 var(--r-lg)}
.kpi:hover{box-shadow:var(--s-md);transform:translateY(-1px)}
.kpi b{display:block;font-weight:800;font-size:27px;line-height:1.05;letter-spacing:-.01em;color:#152435;padding-left:6px}
.kpi span{display:block;font-size:12px;color:var(--gris);margin-top:6px;line-height:1.35;padding-left:6px}
.kpi-titulo{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--gris-claro);font-weight:700;margin:22px 0 0}
.kpi-pista{text-transform:none;letter-spacing:normal;font-weight:400;font-size:12px;color:var(--gris-claro)}
.tapa{margin:12px auto 0;padding:0 24px}
.cabezote{background:linear-gradient(120deg,var(--tinta) 0%,var(--tinta-3) 100%);color:#fff;border-radius:var(--r-xl) var(--r-xl) 0 0;position:relative;
          padding:20px 28px 22px 150px;text-align:center;min-height:86px;box-shadow:0 8px 24px rgba(11,61,99,.22);
          display:flex;align-items:center;justify-content:center}
.escudo{position:absolute;left:26px;top:50%;transform:translateY(-50%);width:104px;height:auto;line-height:0;filter:drop-shadow(0 1px 3px rgba(0,0,0,.28))}
.escudo img{display:block;width:100%;height:auto}
.escudo img.escudo-impresion{display:none}
h1{font-family:var(--sans);font-weight:800;font-size:clamp(17px,2.2vw,23px);letter-spacing:.02em;
   text-transform:uppercase;line-height:1.2;margin:0}


/* ---------- Franja de mecanismos (botones flotantes) ---------- */
.franja{background:var(--cielo);border-radius:0 0 var(--r-xl) var(--r-xl);padding:16px 18px;border:1px solid var(--linea);border-top:0}
.pestanas{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;padding-top:0}
.pes{flex:0 0 auto;background:#fff;color:var(--tinta);border:1px solid #DCE6EF;border-radius:var(--r-md);
     box-shadow:var(--s-sm);padding:9px 17px 8px;cursor:pointer;text-align:center;
     line-height:1.2;min-width:120px;transition:box-shadow var(--t-rapido) var(--ease),transform var(--t-rapido) var(--ease-sal),border-color var(--t-rapido) var(--ease)}
.pes .et{display:block;font-size:12.5px;font-weight:600;letter-spacing:.01em}
.pes .n{display:block;font-size:10.5px;font-weight:500;color:var(--gris);margin-top:3px;font-family:var(--mono)}
.pes:hover{transform:translateY(-2px);box-shadow:var(--s-md);border-color:var(--c,var(--tinta))}
.pes:active{transform:scale(.97);transition-duration:110ms}
.pes:hover:active{transform:translateY(-1px) scale(.97)}
.tema:active,.kpi:not(:disabled):active,.anio:active,.tar-card:active,.btn:not(:disabled):active,
.tar-alta:active,.pag:not([disabled]):active,.volver:active,.quitar:active{
  transform:scale(.978);transition-duration:110ms}
.pes[aria-selected="true"]{background:var(--tinta);color:#fff;border-color:var(--tinta);box-shadow:var(--s-md)}
.pes[aria-selected="true"] .n{color:#AFCBE4}
.pes::after{content:"";display:block;height:3px;background:var(--c,var(--tinta));margin:7px -17px -8px;border-radius:0 0 var(--r-md) var(--r-md);opacity:.9}
.pes.todos{min-width:154px}
.temas{display:flex;align-items:center;justify-content:center;gap:10px;margin:16px 0 2px;flex-wrap:wrap}
.tema{display:inline-flex;align-items:baseline;gap:8px;background:#fff;color:var(--tinta);
      border:1px solid var(--tinta);border-radius:var(--r-pill);padding:6px 16px 5px;cursor:pointer;
      box-shadow:var(--s-sm);transition:box-shadow var(--t-rapido) var(--ease),transform var(--t-rapido) var(--ease-sal),background var(--t-rapido) var(--ease)}
.tema:hover{transform:translateY(-1px);box-shadow:var(--s-md)}
.tema .et{font-size:12.5px;font-weight:600}
.tema .n{font-size:11px;color:var(--gris);font-family:var(--mono)}
.tema[aria-pressed="true"]{background:var(--tinta);color:#fff}
.tema[aria-pressed="true"] .n{color:#AFCBE4}
.tema.stats{border-color:var(--rojo);color:var(--rojo)}
.tema.stats .n{color:#C08B85}
.tema.stats:hover{background:var(--rojo);color:#fff}
.tema.stats:hover .n{color:#F4D6D2}

/* ---------- Histórico de tarjetas electorales ---------- */
.tema.tarjetas{border-color:var(--oro);color:#7A5A16}
.tema.tarjetas .n{color:#B39355}
.tema.tarjetas:hover{background:var(--oro);color:#fff}
.tema.tarjetas:hover .n{color:#F7EBD5}
.tar-filtros{background:#FAFBFD;border-bottom:1px solid var(--linea);padding:16px 26px;
             display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:14px;align-items:end}
.tar-cuerpo{flex:1;overflow:auto;padding:20px 26px 30px;-webkit-overflow-scrolling:touch}
.tar-conteo{font-size:12.5px;color:var(--gris);margin:0 0 14px}
.tar-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px}
.tar-card{background:var(--panel);border:1px solid var(--linea);border-left:5px solid var(--c,var(--tinta));
          border-radius:var(--r-md);overflow:hidden;box-shadow:var(--s-sm);cursor:pointer;text-align:left;
          padding:0;font:inherit;color:inherit;display:flex;flex-direction:column;
          transition:box-shadow var(--t-rapido) var(--ease),transform var(--t-rapido) var(--ease-sal)}
.tar-card:hover{box-shadow:var(--s-md);transform:translateY(-2px)}
.tar-card:focus-visible{outline:3px solid var(--foco);outline-offset:2px}
.tar-lam{background:#EEF2F6;border-bottom:1px solid var(--linea);padding:9px;display:block}
.tar-lam img{display:block;width:100%;height:118px;object-fit:contain;object-position:center}
.tar-txt{padding:12px 15px 14px}
.tar-card h3{margin:0;font-size:14.5px;font-weight:700;color:#152435;line-height:1.3}
.tar-card .dp{display:block;font-size:11.5px;color:var(--gris-claro);text-transform:uppercase;letter-spacing:.06em;margin-top:3px}
.tar-mec{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--gris);margin-top:9px}
.tar-mec i{width:9px;height:9px;border-radius:2px;background:var(--c);flex:none}
.tar-rad{font-family:var(--mono);font-size:11px;color:#152435;margin-top:8px;word-break:break-all}
.tar-rad.falta{color:var(--gris-claro);font-family:var(--sans);font-style:italic;word-break:normal}
.tar-cifras{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tar-cifras span{font-size:11px;background:#EEF2F6;color:#233748;border-radius:4px;padding:3px 7px;font-variant-numeric:tabular-nums}
.tar-cifras span.si{background:#E4F2EA;color:#14503C}
.tar-cifras span.no{background:#F8E9E9;color:#7A2020}
.tar-vacio{padding:40px 0;text-align:center;color:var(--gris)}
/* lupa */
.tar-lupa{position:fixed;inset:0;background:rgba(9,32,51,.86);z-index:60;display:none;
          align-items:center;justify-content:center;padding:3vh 3vw}
.tar-lupa.abierto{display:flex;animation:velo-in var(--t-medio) var(--ease) both}
.tar-lupa.abierto figure{animation:caja-in var(--t-panel) var(--ease-sal) both}
.tar-lupa figure{margin:0;max-width:1180px;width:100%;max-height:94vh;display:flex;flex-direction:column;
                 background:var(--panel);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--s-lg)}
.tar-lupa img{display:block;width:100%;max-height:56vh;object-fit:contain;background:#EEF2F6;padding:12px}
.tar-lupa figcaption{padding:16px 22px 20px;overflow:auto}
.tar-lupa h3{margin:0 0 3px;font-size:18px;color:#152435}
.tar-lupa .preg{font-size:13.5px;color:#233748;line-height:1.55;margin:11px 0 0;font-style:italic}
.tar-lupa .pie{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;align-items:center}
.tar-cerrar{position:absolute;top:16px;right:20px;background:rgba(255,255,255,.12);border:1px solid #2C5C86;
            color:#fff;width:38px;height:38px;cursor:pointer;border-radius:var(--r-sm);font-size:16px}
.tar-cerrar:hover{background:#1D5C90}
@media (max-width:760px){.tar-filtros{grid-template-columns:1fr}.tar-rejilla{grid-template-columns:1fr}}
@media print{.tema.tarjetas,.tar-lupa{display:none!important}}

/* alta de tarjetas */
.tar-alta{background:var(--tinta);color:#fff;border:1px solid var(--tinta);padding:10px 16px;border-radius:var(--r-sm);
          cursor:pointer;font:inherit;font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.tar-alta:hover{background:var(--tinta-3);border-color:var(--tinta-3)}
.tar-guardar{display:none;align-items:center;gap:14px;flex-wrap:wrap;background:#FFF6E0;border:1px solid var(--foco);
             border-radius:var(--r-md);padding:11px 15px;margin:0 0 16px;font-size:13px;color:#5A4300}
.tar-guardar.on{display:flex}
.tar-modal{position:fixed;inset:0;background:rgba(9,32,51,.86);z-index:62;display:none;align-items:center;justify-content:center;padding:3vh 3vw}
.tar-modal.abierto{display:flex;animation:velo-in var(--t-medio) var(--ease) both}
.tar-modal.abierto .caja-alta{animation:caja-in var(--t-panel) var(--ease-sal) both}
.tar-modal .caja-alta{background:var(--panel);border-radius:var(--r-lg);box-shadow:var(--s-lg);
                      width:100%;max-width:820px;max-height:94vh;overflow:auto}
.tar-modal header{background:linear-gradient(120deg,var(--tinta) 0%,var(--tinta-3) 100%);color:#fff;padding:16px 22px;
                  display:flex;justify-content:space-between;align-items:center;gap:12px}
.tar-modal header h3{margin:0;font-size:17px;font-weight:700}
.tar-modal .cuerpo{padding:20px 22px 22px}
.tar-paso{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--gris-claro);font-weight:700;margin:0 0 8px}
.tar-paso b{color:var(--tinta);font-size:12px}
.tar-alta-rej{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tar-alta-rej .ancho{grid-column:1/-1}
.a-cuantos{float:right;font-weight:400;text-transform:none;letter-spacing:normal;color:var(--gris-claro);font-size:11.5px}
#a-tramite{font-size:12.5px;line-height:1.7;padding:6px 8px}
#a-tramite option{padding:3px 4px}
#a-tramite option:checked{background:var(--cielo)}
.tar-previa{border:1px dashed var(--linea);border-radius:var(--r-md);background:#F7F9FB;padding:12px;margin-top:6px;text-align:center}
.tar-previa img{max-width:100%;max-height:230px;display:block;margin:0 auto;border-radius:4px}
.tar-previa p{margin:0;font-size:12.5px;color:var(--gris)}
.tar-resumen{background:#F0F5FA;border-radius:var(--r-md);padding:12px 14px;margin-top:6px;font-size:12.5px;color:#233748}
.tar-resumen b{display:block;font-size:13.5px;color:#152435;margin-bottom:4px}
.tar-quitar{background:none;border:0;color:var(--rojo);text-decoration:underline;cursor:pointer;font:inherit;font-size:12.5px;padding:0}
@media (max-width:760px){.tar-alta-rej{grid-template-columns:1fr}}

/* ---------- Los datos del expediente se muestran en mayúsculas ---------- */
#filas td,
.ficha h2, .ficha .rad, .ficha dd, .ficha .dato-txt,
.ficha-cab h3, .ficha-cab .meta,
.tar-card h3, .tar-card .dp, .tar-card .tar-rad:not(.falta),
.tar-lupa h3, .tar-lupa .dp, .tar-lupa .preg,
.tar-resumen b,
#a-tramite, #a-preg{text-transform:uppercase}

/* ---------- Panel de estadísticas ---------- */
.stats-velo{position:fixed;inset:0;background:rgba(9,32,51,.62);backdrop-filter:blur(2px);display:none;z-index:50}
.stats-velo.abierto{display:block;animation:velo-in var(--t-medio) var(--ease) both}
@keyframes velo-in{from{opacity:0}to{opacity:1}}
@keyframes panel-in{from{opacity:0;transform:translateY(8px) scale(.994)}to{opacity:1;transform:none}}
@keyframes caja-in{from{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:none}}
.stats-panel{position:fixed;inset:2vh 2vw;background:var(--papel);z-index:51;display:none;
             flex-direction:column;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--s-lg)}
.stats-panel.abierto{display:flex;animation:panel-in var(--t-panel) var(--ease-sal) both}
.stats-panel > header{background:linear-gradient(120deg,var(--tinta) 0%,var(--tinta-3) 100%);color:#fff;padding:18px 26px;display:flex;
                      align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.stats-panel h2{margin:0;font-size:19px;font-weight:700;letter-spacing:.01em}
.stats-panel header p{margin:4px 0 0;font-size:12.5px;color:#AFCBE4}
.stats-cuerpo{flex:1;overflow:auto;padding:20px 26px 32px}
.stats-filtros{background:#FAFBFD;border-bottom:1px solid var(--linea);padding:16px 26px;
               display:grid;grid-template-columns:1fr 1.4fr auto;gap:13px;align-items:end}
.stats-filtros select{width:100%;padding:10px 12px;border:1px solid var(--linea);background:#fff;color:#152435;
                      font:inherit;font-size:14px;border-radius:var(--r-sm);
                      transition:border-color var(--t-rapido) var(--ease),box-shadow var(--t-rapido) var(--ease)}
.stats-filtros select:focus{border-color:var(--tinta);box-shadow:var(--s-foco);outline:none}
.stats-filtros select option{background:#fff;color:#152435}
.stats-filtros .vacio-sel{color:var(--gris)}
@media (max-width:760px){
  .stats-filtros{grid-template-columns:1fr;padding:13px 16px}
}
.volver{background:#fff;border:1px solid var(--tinta);color:var(--tinta);padding:8px 16px;
        border-radius:var(--r-sm);cursor:pointer;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:16px;transition:background var(--t-rapido) var(--ease),color var(--t-rapido) var(--ease)}
.volver:hover{background:var(--tinta);color:#fff}
.ficha-cab{background:linear-gradient(120deg,var(--tinta) 0%,var(--tinta-3) 100%);color:#fff;border-radius:var(--r-md);padding:18px 22px;margin-bottom:18px;box-shadow:var(--s-md)}
.ficha-cab h3{margin:0 0 7px;font-size:17px;font-weight:700;line-height:1.35;color:#fff;
              text-transform:none;letter-spacing:0}
.ficha-cab .meta{font-size:12.5px;color:#AFCBE4;line-height:1.6}
.ficha-cab .sellos{display:flex;gap:8px;margin-top:11px;flex-wrap:wrap}
.ficha-cab .sellos span{padding:4px 11px;border-radius:var(--r-sm);font-size:11.5px;font-weight:700;letter-spacing:.03em}
.embudo{margin-top:12px}
.embudo .paso{display:grid;grid-template-columns:150px 1fr 128px;gap:10px;align-items:center;margin-bottom:8px;font-size:12.5px}
.embudo .p{display:block;height:22px;background:#EAEFF3;border-radius:6px;overflow:hidden}
.embudo .f{display:block;height:100%;border-radius:6px;transition:width var(--t-barra) var(--ease-sal)}
.embudo .c{text-align:right;font-family:var(--mono);font-size:11.5px}
.embudo .c i{font-style:normal;color:var(--gris)}
.comparte{margin-top:11px;font-size:12px;color:var(--gris);line-height:1.55}
.stats-cerrar{background:rgba(255,255,255,.08);border:1px solid #2C5C86;color:#fff;width:36px;height:36px;cursor:pointer;border-radius:var(--r-sm);font-size:15px;transition:background var(--t-rapido) var(--ease)}
.stats-cerrar:hover{background:#1D5C90}

.sfila{display:grid;gap:16px;margin-bottom:18px}
.sfila.k5{grid-template-columns:repeat(5,1fr)}
.sfila.k4{grid-template-columns:repeat(4,1fr)}
.sfila.k2{grid-template-columns:1fr 1fr}
.scaja{background:var(--panel);border:1px solid var(--linea);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--s-sm);transition:box-shadow var(--t-rapido) var(--ease)}
.scaja:hover{box-shadow:var(--s-md)}
.scaja h3{margin:0 0 4px;font-size:11.5px;text-transform:uppercase;letter-spacing:.11em;color:var(--gris);font-weight:700}
.scaja .pie{margin:9px 0 0;font-size:11.5px;color:var(--gris);line-height:1.5}
.skpi b{display:block;font-size:30px;font-weight:800;line-height:1.08;letter-spacing:-.02em;color:#152435}
.skpi span{display:block;font-size:11.5px;color:var(--gris);margin-top:6px;line-height:1.35}

.barras{margin-top:11px}
.brow{display:grid;grid-template-columns:150px 1fr 74px;gap:10px;align-items:center;margin-bottom:7px;font-size:12px}
.brow .p{display:block;height:15px;background:#EAEFF3;border-radius:5px;overflow:hidden}
.brow .f{display:block;height:100%;border-radius:5px;transition:width var(--t-barra) var(--ease-sal)}
.brow .c{text-align:right;font-family:var(--mono);font-size:11px}
.brow.mini{grid-template-columns:118px 1fr 62px;font-size:11.5px}

.dona{display:flex;align-items:center;gap:20px;margin-top:10px;flex-wrap:wrap}
.dona svg{flex:0 0 auto}
.dona circle[data-do]{transition:stroke-dashoffset var(--t-barra) var(--ease-sal)}
.leyd{list-style:none;margin:0;padding:0;font-size:12.5px}
.leyd li{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.leyd i{width:11px;height:11px;border-radius:3px;display:inline-block;flex:0 0 auto}
.leyd b{font-family:var(--mono);font-size:11.5px;margin-left:auto;padding-left:12px}

.hist{display:flex;align-items:flex-end;gap:6px;height:130px;margin-top:14px}
.hist .col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}
.hist .bar{width:100%;background:var(--azul);border-radius:5px 5px 0 0;min-height:2px}
.hist .n{font-family:var(--mono);font-size:10.5px;color:var(--gris)}
.hist .et{font-size:10px;color:var(--gris);text-align:center;line-height:1.2}

.linea-anios{display:flex;align-items:flex-end;gap:3px;height:110px;margin-top:12px}
.linea-anios .c{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.linea-anios .b{width:100%;background:var(--tinta-3);border-radius:3px 3px 0 0;min-height:1px}
.linea-anios .y{font-family:var(--mono);font-size:9px;color:var(--gris);margin-top:5px;
                writing-mode:vertical-rl;transform:rotate(180deg)}

.rank{list-style:none;margin:10px 0 0;padding:0;font-size:12.5px}
.rank li{display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--linea)}
.rank li:last-child{border-bottom:0}
.rank .pos{font-family:var(--mono);font-size:11px;color:var(--gris-claro)}
.rank .lug{line-height:1.35}
.rank .lug em{font-style:normal;display:block;font-size:10.5px;color:var(--gris)}
.rank .val{font-family:var(--mono);font-size:12px;font-weight:700}
.rank .val.alto{color:var(--verde)}
.rank .val.bajo{color:var(--rojo)}

@media (max-width:1100px){
  .sfila.k5,.sfila.k4{grid-template-columns:repeat(2,1fr)}
  .sfila.k2{grid-template-columns:1fr}
}
@media (max-width:640px){
  .sfila.k5,.sfila.k4{grid-template-columns:1fr}
  .brow{grid-template-columns:110px 1fr 60px}
  .stats-panel{inset:0;border-radius:0}
  .stats-filtros{padding:12px 16px}
}
.presenta{max-width:1720px;margin:14px auto 0;padding:0 24px;color:var(--gris);font-size:13.5px;line-height:1.5}

/* ---------- Rejilla principal ---------- */
.rejilla{display:grid;grid-template-columns:400px 1fr;gap:22px;margin:18px 0 0;align-items:stretch;
         height:calc(100vh - 170px);min-height:790px}
.caja{background:var(--panel);border:1px solid var(--linea);border-radius:var(--r-lg);box-shadow:var(--s-sm);
      overflow:hidden;display:flex;flex-direction:column;min-height:0;transition:box-shadow var(--t-rapido) var(--ease)}
.caja .crece{flex:1 1 auto;min-height:0;overflow:auto}
.caja>h2{font-family:var(--sans);font-weight:700;font-size:16px;margin:0;padding:16px 18px 0;color:#152435;letter-spacing:-.01em}
.rotulo{font-size:12px;color:var(--gris);margin:5px 18px 13px}

/* ---------- Mapa ---------- */
.mapa{display:block;width:100%;height:auto;max-height:min(42vh,345px);padding:0 10px 4px}
.dep{fill:#DCE6F0;stroke:#fff;stroke-width:1.2;cursor:pointer;transition:fill var(--t-rapido) var(--ease)}
.dep:hover{fill:var(--tinta-3)}
.dep.sel{fill:var(--tinta);stroke:#fff;stroke-width:1.8}
.dep.sel:hover{fill:var(--tinta)}
.dep.cero{fill:#EEF2F6;cursor:default}
.dep.cero:hover{fill:#EEF2F6}
.dep:focus,.dep:focus-visible,.dep:active{outline:none!important;outline-offset:0!important;box-shadow:none!important}
.dep:focus-visible{stroke:var(--tinta);stroke-width:2.6}
.mapa:focus,.mapa:focus-visible,#mapa-svg:focus,#mapa-svg :focus{outline:none!important}
.sai-aro{fill:none;stroke:var(--tinta);stroke-width:1;opacity:.5}
.sai-et{font-family:var(--mono);font-size:11px;fill:var(--gris)}
.leyenda{display:flex;align-items:center;gap:0;padding:0 18px 12px;font-size:11px;color:var(--gris)}
.leyenda .paso{flex:1;height:11px;border-radius:2px}
.leyenda .txt{padding:0 6px;white-space:nowrap}
.globo{position:fixed;pointer-events:none;background:var(--tinta);color:#fff;padding:8px 11px;font-size:12.5px;
       z-index:30;max-width:230px;box-shadow:var(--s-lg);border-radius:var(--r-sm);
       opacity:0;visibility:hidden;transform:translateY(6px) scale(.98);
       transition:opacity var(--t-rapido) var(--ease),transform var(--t-rapido) var(--ease-sal),
                  visibility 0s linear var(--t-rapido)}
.globo.visible{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.globo b{display:block;font-size:13px;margin-bottom:2px}
.enlace-ficha{background:none;border:1px solid #2C5C86;color:#fff;padding:6px 12px;font-size:11.5px;cursor:pointer;border-radius:var(--r-sm);text-transform:uppercase;letter-spacing:.03em;font-weight:700;transition:background var(--t-rapido) var(--ease)}
.enlace-ficha:hover{background:#1D5C90}
.bitacora{font-size:12.5px;border-collapse:collapse;width:100%}
.bitacora td{padding:7px 9px;border-bottom:1px solid var(--linea);vertical-align:top}
.bitacora .cuando{white-space:nowrap;color:var(--gris);font-family:var(--mono);font-size:11px}
.detalle{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:11px}
.detalle th{background:#EEF2F6;text-align:right;padding:7px 9px;font-size:10.5px;position:static;color:var(--gris);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.detalle th:first-child{text-align:left}
.detalle td{padding:6px 9px;border-bottom:1px solid var(--linea);text-align:right;white-space:nowrap;font-family:var(--mono);font-size:11.5px}
.detalle td:first-child{text-align:left;font-family:var(--sans);font-size:12.5px}
.detalle tr.si td:nth-child(2){color:var(--verde);font-weight:700}
.detalle tr.no td:nth-child(3){color:var(--rojo);font-weight:700}
.caja-detalle{max-height:320px;overflow:auto;border:1px solid var(--linea);border-radius:var(--r-sm);margin-top:11px}
.reparto{margin:0 0 5px;font-size:12.5px;color:var(--gris);line-height:1.5}
.reparto b{color:var(--tinta)}
.regla{margin:11px 0 2px;padding:12px 14px;font-size:12.5px;line-height:1.5;border-left:4px solid;border-radius:0 var(--r-sm) var(--r-sm) 0}
.regla.ok{background:#E9F5EF;border-color:var(--verde);color:#134B38}
.regla.mal{background:#FAECEC;border-color:var(--rojo);color:#6E2020}
.regla b{font-weight:700;display:block;margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em;font-size:12px}
.norma{margin:0;padding:0 0 0 13px;border-left:2px solid currentColor;font-style:italic;
       text-transform:none;font-size:12.5px;line-height:1.6;opacity:.9}
.norma cite{display:block;margin-top:8px;font-style:normal;font-size:11px;opacity:.8;text-transform:none}
.aplica{margin:10px 0 0;font-size:12.5px;font-weight:700}
.detalle td.gano{text-align:left;font-family:var(--sans)}
.detalle td.gano i{font-style:normal;font-family:var(--mono);font-size:10.5px;color:var(--gris);margin-left:5px}
.detalle .sello{padding:2px 8px;font-size:11px}

/* ---------- Resumen del territorio ---------- */
.resumen{border-top:1px solid var(--linea);padding:14px 18px 16px;flex:1 1 auto;min-height:0;overflow:auto}
.resumen h3{font-family:var(--sans);font-weight:700;font-size:15.5px;margin:0 0 2px;color:#152435}
.resumen .sub{font-size:12px;color:var(--gris);margin:0 0 10px}
.desglose{list-style:none;margin:0;padding:0}
.desglose li{display:grid;grid-template-columns:118px 1fr 74px;gap:9px;align-items:center;font-size:12px;margin-bottom:5px;line-height:1.2}
.desglose .pista{background:#EAEFF3;height:12px;border-radius:4px;overflow:hidden;
                 box-shadow:inset 0 0 0 1px rgba(11,61,99,.06)}
.desglose .lleno{display:block;height:100%;background:var(--c);border-radius:4px;min-width:3px;
                 transition:width var(--t-barra) var(--ease-sal);
                 transition:width var(--t-barra) var(--ease-sal)}
.desglose .c{text-align:right;font-family:var(--mono);font-size:11.5px;color:#152435;font-weight:600;white-space:nowrap}
.desglose .c i{font-style:normal;color:var(--gris-claro);font-weight:400;font-size:10.5px;margin-left:4px}
.quitar{margin-top:13px;background:#fff;border:1px solid var(--tinta);color:var(--tinta);padding:8px 14px;cursor:pointer;font-size:12px;border-radius:var(--r-sm);text-transform:uppercase;letter-spacing:.04em;font-weight:700;transition:background var(--t-rapido) var(--ease),color var(--t-rapido) var(--ease)}
.quitar:hover{background:var(--tinta);color:#fff}

/* ---------- Banda de años ---------- */
.banda{padding:0 18px 12px}
.anios{display:flex;align-items:flex-end;gap:4px;overflow-x:auto;padding-bottom:3px}
.anio{flex:1 0 24px;background:none;border:0;padding:0;cursor:pointer;color:inherit}
.pila{display:flex;flex-direction:column-reverse;height:74px;border-radius:3px 3px 0 0;overflow:hidden}
.seg{width:100%}
.anio .et{font-family:var(--mono);font-size:10px;color:var(--gris);margin-top:6px;writing-mode:vertical-rl;transform:rotate(180deg)}
.anio:hover .et,.anio[aria-pressed="true"] .et{color:var(--tinta);font-weight:700}
.anio[aria-pressed="true"] .pila{outline:2px solid var(--tinta);outline-offset:2px}
.anio .tot{display:block;font-family:var(--mono);font-size:10px;color:var(--gris);height:13px}

/* ---------- Filtros ---------- */
.filtros{padding:16px 18px;border-top:1px solid var(--linea);display:grid;
         grid-template-columns:2fr 1fr 1fr auto;gap:13px;align-items:end}
.campo label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--gris);margin-bottom:6px;font-weight:600}
.campo input,.campo select{width:100%;padding:10px 12px;border:1px solid var(--linea);background:#fff;font:inherit;color:#152435;border-radius:var(--r-sm);transition:border-color var(--t-rapido) var(--ease),box-shadow var(--t-rapido) var(--ease)}
.campo input:focus,.campo select:focus{border-color:var(--tinta);box-shadow:var(--s-foco)}
.btn{padding:10px 16px;border:1px solid var(--tinta);background:var(--tinta);color:#fff;cursor:pointer;border-radius:var(--r-sm);font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;box-shadow:var(--s-sm);transition:background var(--t-rapido) var(--ease),box-shadow var(--t-rapido) var(--ease),transform var(--t-rapido) var(--ease-sal)}
.btn.claro{background:#fff;color:var(--tinta)}
.btn:hover:not(:disabled){background:var(--tinta-3);color:#fff;border-color:var(--tinta-3);box-shadow:var(--s-md);transform:translateY(-1px)}
.btn:disabled{opacity:.4;cursor:default}

/* ---------- Tabla ---------- */
.barra{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:14px 18px;border-top:1px solid var(--linea);border-bottom:1px solid var(--linea);background:#FAFBFD}
.conteo{font-size:13px;color:var(--gris);margin:0}
.conteo strong{font-weight:800;font-size:18px;color:var(--tinta)}
.casilla{display:flex;align-items:center;gap:7px;font-size:13px;color:#152435;cursor:pointer}
.casilla input{width:15px;height:15px;accent-color:var(--tinta);cursor:pointer}
.casilla span{color:var(--gris);font-family:var(--mono);font-size:12px}
.urna{display:inline-block;font-size:11px;color:var(--verde);border:1px solid currentColor;padding:2px 6px;white-space:nowrap;border-radius:4px;font-weight:600}
.estadistica{border-top:1px solid var(--linea);padding:12px 18px;background:#F6FAFF}
.estadistica h4{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--gris);margin:0 0 9px;font-weight:700}
.cifras{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;text-align:center}
.cifras div{background:#fff;border:1px solid var(--linea);border-radius:var(--r-sm);padding:8px 5px}
.cifras b{display:block;font-weight:800;font-size:19px;line-height:1.1;color:#152435}
.cifras span{display:block;font-size:10.5px;color:var(--gris);margin-top:4px;line-height:1.25}
.embudo-r{list-style:none;margin:0;padding:0}
.embudo-r li{display:grid;grid-template-columns:1fr 96px;gap:9px;align-items:center;font-size:12px;margin-bottom:9px;line-height:1.25}
.embudo-r .et{color:#233748}
.embudo-r .pista{grid-column:1/-1;background:#E6EDF4;height:13px;border-radius:4px;overflow:hidden;
                 box-shadow:inset 0 0 0 1px rgba(11,61,99,.06);margin-top:4px}
.embudo-r .lleno{display:block;height:100%;background:var(--c);border-radius:4px;min-width:3px;transition:width var(--t-barra) var(--ease-sal)}
.embudo-r .c{text-align:right;font-family:var(--mono);font-size:12px;color:#152435;font-weight:700;white-space:nowrap}
.embudo-r .c i{font-style:normal;color:var(--gris-claro);font-weight:400;font-size:10.5px;margin-left:5px}
.nota-emb{font-size:10.5px;color:var(--gris-claro);margin:4px 0 0;line-height:1.4}
.sello{display:inline-block;padding:4px 10px;font-size:11.5px;border-radius:var(--r-sm);font-weight:700;letter-spacing:.02em}
.sello.ok{background:#E4F2EA;color:var(--verde)}
.sello.mal{background:#F8E9E9;color:var(--rojo)}
.tabla-envoltura{overflow:auto;flex:1 1 auto;min-height:0}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{position:sticky;top:0;z-index:2;background:#F0F3F7;text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--gris);
   font-weight:700;border-bottom:2px solid var(--linea);white-space:nowrap}
th button{width:100%;text-align:left;background:none;border:0;padding:10px 11px;color:inherit;cursor:pointer;letter-spacing:inherit;text-transform:inherit;font-weight:inherit;font-size:inherit}
td{padding:8px 11px;border-bottom:1px solid var(--linea);vertical-align:top;white-space:nowrap;color:#233748}
td.envuelve{white-space:normal}
.tit{max-width:340px}
tbody tr{cursor:pointer;transition:background var(--t-rapido) var(--ease)}
tbody tr:nth-child(even){background:#FBFCFE}
tbody tr:hover,tbody tr:focus-visible{background:var(--cielo)}
.pin{display:inline-block;width:9px;height:9px;margin-right:8px;border-radius:2px}
.tit{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rad{font-family:var(--mono);font-size:11.5px;color:var(--gris);white-space:nowrap}
.marca{display:inline-block;padding:3px 8px;font-size:10.5px;border:1px solid currentColor;white-space:nowrap;border-radius:4px;font-weight:600;letter-spacing:.02em}
.m-cumple{color:var(--verde)}.m-no{color:var(--rojo)}.m-arch{color:var(--gris)}.m-otro{color:var(--ocre)}
.activo{font-size:11px;color:var(--gris)}
.activo.si{color:var(--verde);font-weight:700}
.vacio{padding:48px 16px;text-align:center;color:var(--gris)}
.paginas{flex:0 0 auto;display:flex;gap:6px;align-items:center;justify-content:center;padding:13px;flex-wrap:wrap}
.pag{min-width:32px;padding:7px 10px;border:1px solid var(--linea);background:#fff;color:var(--tinta);cursor:pointer;
     font-size:13px;border-radius:var(--r-sm);transition:border-color var(--t-rapido) var(--ease),background var(--t-rapido) var(--ease)}
.pag:hover:not(:disabled){border-color:var(--tinta);background:var(--cielo)}
.pag[aria-current="page"]{background:var(--tinta);color:#fff;border-color:var(--tinta);font-weight:700}
.pag:disabled{opacity:.35;cursor:default}
.pag.puntos{border:0;background:none;cursor:default;min-width:16px;padding:7px 2px;color:var(--gris-claro)}
.porpag{margin-left:10px;font-size:12.5px;color:var(--gris);display:flex;align-items:center;gap:6px}
.porpag select{padding:5px 7px;border:1px solid var(--linea);border-radius:var(--r-sm);font:inherit;font-size:12.5px}
.paginas .pos{font-size:13px;color:var(--gris);font-family:var(--mono)}

/* ---------- Ficha ---------- */
.velo{position:fixed;inset:0;background:rgba(9,32,51,.58);backdrop-filter:blur(2px);display:none;z-index:40}
.velo.abierto{display:block;animation:velo-in var(--t-medio) var(--ease) both}
.ficha{position:fixed;top:0;right:0;height:100%;width:min(560px,100%);background:var(--panel);z-index:41;
       transform:translateX(101%);transition:transform var(--t-medio) var(--ease-sal),.8 var(--t-rapido) var(--ease),.2 var(--t-rapido) var(--ease),1) var(--t-rapido) var(--ease);overflow-y:auto;box-shadow:var(--s-lg)}
.ficha.abierta{transform:none;opacity:1}
.ficha header{background:linear-gradient(120deg,var(--tinta) 0%,var(--tinta-3) 100%);color:#fff;padding:22px 26px;position:sticky;top:0}
.ficha header .rad{color:#AFCBE4}
.ficha h2{color:#fff;font-family:var(--sans);font-weight:700;font-size:18px;margin:9px 0 0;line-height:1.4;text-transform:none}
.cerrar{position:absolute;top:16px;right:16px;background:rgba(255,255,255,.08);border:1px solid #2C5C86;color:#fff;width:34px;height:34px;cursor:pointer;border-radius:var(--r-sm);transition:background var(--t-rapido) var(--ease)}
.cerrar:hover{background:#1D5C90}
.ficha .cuerpo{padding:10px 26px 42px}
.grupo{margin-top:24px}
.grupo h3{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--gris);margin:0 0 11px;padding-bottom:7px;border-bottom:1px solid var(--linea);font-weight:700}
dl{margin:0;display:grid;grid-template-columns:158px 1fr;gap:9px 16px;font-size:14px}
dt{color:var(--gris);font-size:12.5px}
dd{margin:0;color:#233748}
.voto{display:grid;grid-template-columns:78px 1fr 108px;gap:10px;align-items:center;margin-bottom:9px;font-size:13px}
.voto .pista{position:relative;display:block;width:100%;height:16px;background:#EAEFF3;border:1px solid var(--linea);overflow:hidden;border-radius:4px}
.voto .lleno{display:block;height:100%;background:var(--c,var(--azul));min-width:2px;
             transition:width var(--t-barra) var(--ease-sal)}
.voto .cifra{text-align:right;font-family:var(--mono);font-size:12px;white-space:nowrap}
.voto .cifra i{font-style:normal;color:var(--gris)}
.escala-voto{display:grid;grid-template-columns:78px 1fr 108px;gap:10px;margin:2px 0 11px;font-size:10.5px;color:var(--gris)}
.escala-voto span:nth-child(2){display:flex;justify-content:space-between}

/* ---------- Modo administrador ---------- */
.enlace-admin{background:none;border:0;color:#B7CFE3;text-decoration:underline;cursor:pointer;padding:0;font-size:12.5px}
.enlace-admin:hover{color:#fff}
.aviso{position:fixed;left:0;right:0;bottom:0;background:var(--foco);color:#3B2A00;z-index:35;
       display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:center;padding:12px 18px;
       font-size:13.5px;box-shadow:0 -4px 16px rgba(11,61,99,.25)}
.aviso b{font-weight:700}
.aviso .btn{border-color:#3B2A00;background:#3B2A00;color:#fff}
.aviso .btn.claro{background:#fff;color:#3B2A00}
.acciones-admin{display:flex;gap:8px;margin:0 0 0 auto}
.acciones-admin .btn{padding:8px 14px;font-size:12px}
.form-caja{padding:10px 26px 42px}
.form-rejilla{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.form-rejilla .ancho{grid-column:1/-1}
.form-rejilla label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--gris);margin-bottom:5px;font-weight:600}
.form-rejilla input,.form-rejilla select,.form-rejilla textarea{width:100%;padding:9px 11px;border:1px solid var(--linea);
   background:#fff;font:inherit;font-size:14px;color:#152435;border-radius:var(--r-sm);transition:border-color var(--t-rapido) var(--ease),box-shadow var(--t-rapido) var(--ease)}
.form-rejilla input:focus,.form-rejilla select:focus,.form-rejilla textarea:focus{border-color:var(--tinta);box-shadow:var(--s-foco)}
.form-rejilla textarea{min-height:70px;resize:vertical}
.form-rejilla .req label::after{content:" *";color:var(--rojo)}
.pie-form{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap}
.pie-form .peligro{border-color:var(--rojo);background:#fff;color:var(--rojo)}
.pie-form .peligro:hover{background:var(--rojo);color:#fff;border-color:var(--rojo)}
.ayuda{background:var(--cielo);border-left:4px solid var(--azul);padding:13px 15px;margin:0 0 19px;font-size:13px;color:var(--tinta);border-radius:0 var(--r-sm) var(--r-sm) 0}
.ayuda p{margin:0 0 6px}
.ayuda p:last-child{margin:0}
.error{background:#FBEAEA;border-left:4px solid var(--rojo);padding:11px 13px;margin:0 0 15px;font-size:13.5px;color:var(--rojo);border-radius:0 var(--r-sm) var(--r-sm) 0}
footer{margin-top:34px;background:linear-gradient(120deg,var(--tinta) 0%,var(--tinta-3) 100%);color:#AFCBE4;font-size:12.5px}
footer .env{padding:20px 20px 24px;text-align:center}
footer strong{color:#fff}
.nota{max-width:85ch}

@media (min-width:1400px){
  .rejilla{grid-template-columns:660px 1fr;height:calc(100vh - 150px);min-height:660px}
  .mapa-caja{display:grid;grid-template-columns:312px 1fr;grid-template-rows:auto auto auto 1fr;align-content:start}
  .mapa-caja>h2,.mapa-caja>.rotulo{grid-column:1/-1}
  #mapa-svg{grid-column:1;grid-row:3}
  .leyenda{grid-column:1;grid-row:4;align-self:start}
  .resumen{grid-column:2;grid-row:3/span 2;border-top:0;border-left:1px solid var(--linea);overflow:auto}
  .mapa{max-height:min(56vh,455px)}
  .desglose li{grid-template-columns:150px 1fr 82px;font-size:12.5px;margin-bottom:6px}
  .cifras{gap:12px}
  .kpi b{font-size:29px}
}
@media (max-width:1040px){
  .rejilla{grid-template-columns:1fr;height:auto;min-height:0}
  .caja{display:block}
  .tabla-envoltura{max-height:60vh}
  .resumen{overflow:visible}
  .mapa{max-width:400px;margin:0 auto}
}
@media (max-width:760px){
  .cabezote{display:block;padding:16px 18px 18px;text-align:center}
  .escudo{position:static;transform:none;width:112px;margin:0 auto 10px}
  .filtros{grid-template-columns:1fr 1fr}
  .filtros .campo:first-child{grid-column:1/-1}
  dl{grid-template-columns:1fr}
  dt{margin-top:6px}
  .col-op{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important var(--t-rapido) var(--ease)}}
@media print{
  .franja,.filtros,.banda,.paginas,.mapa-caja,.salto,.aviso,.casilla{display:none}
  .rejilla{grid-template-columns:1fr}body{background:#fff}
  body.con-ficha main,body.con-ficha footer,body.con-ficha .velo,body.con-ficha .kpis,body.con-ficha .presenta{display:none}
  /* Membrete institucional: solo el escudo, arriba a la izquierda */
  body.con-ficha .tapa{display:block;max-width:none;margin:0;padding:0}
  body.con-ficha .cabezote{background:none!important;color:var(--tinta);padding:0 0 8px;min-height:0;
                           box-shadow:none;border-radius:0;text-align:left;display:block}
  body.con-ficha .cabezote h1,body.con-ficha .franja{display:none}
  body.con-ficha .escudo{position:static;transform:none;display:block;width:132px;height:auto;filter:none}
  body.con-ficha .escudo img.escudo-pantalla{display:none}
  body.con-ficha .escudo img.escudo-impresion{display:block}
  body.con-ficha .escudo img{width:100%;height:auto}
  body.con-ficha .ficha{position:static;transform:none;width:100%;height:auto;overflow:visible;box-shadow:none;border:0}
  body.con-ficha .ficha header{background:#fff;color:var(--tinta);position:static;border-bottom:2px solid var(--tinta);padding-left:0}
  body.con-ficha .ficha h2{color:var(--tinta)}
  body.con-ficha .ficha header .rad{color:var(--gris)}
  body.con-ficha .cerrar,body.con-ficha .acciones-ficha{display:none}
}