/* ══════════════════════════════════════════
   PLATÓ — modo de Noche electoral estilo televisión.
   Todo cuelga de .plato (se crea desde plato.js). No toca ningún otro estilo.
   ══════════════════════════════════════════ */

.plato{
  --pl-bg:#070b14; --pl-panel:#0d1424; --pl-line:rgba(255,255,255,.10);
  --pl-txt:#f1f5f9; --pl-mut:#94a3b8; --pl-acc:#21989C; --pl-red:#dc2626; --pl-gold:#fbbf24;
  --pl-side:clamp(150px,21vw,210px);
  position:fixed; inset:0; z-index:10002; display:none;
  grid-template-columns:var(--pl-side) minmax(0,1fr); grid-template-rows:auto minmax(0,1fr) auto;
  background:var(--pl-bg); color:var(--pl-txt);
  font-family:'DM Sans',sans-serif; overflow:hidden;
}
.plato.is-on{ display:grid; }

/* ── Barra superior: ÚLTIMA HORA ── */
.pl-head{ grid-column:1 / -1; display:flex; align-items:stretch; height:48px; background:linear-gradient(90deg,#0f1733,#141d3d); border-bottom:1px solid var(--pl-line); }
.pl-head-tag{ display:flex; align-items:center; padding:0 16px; background:var(--pl-red); font-family:'Outfit',sans-serif; font-weight:900; font-size:14px; letter-spacing:.08em; white-space:nowrap; }
.pl-head-txt{ flex:1; min-width:0; display:grid; grid-template-columns:minmax(0,1fr); align-items:center; padding:0 16px; font-weight:700; font-size:clamp(13px,1.6vw,18px); overflow:hidden; }
.pl-head-txt span{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; transition:opacity .4s ease, transform .4s ease; }
.pl-head-txt > span{ grid-area:1 / 1; }
.pl-head-prov{ grid-area:1 / 1; display:flex; align-items:center; min-width:0; overflow:hidden; white-space:nowrap; opacity:0; transform:translateY(8px); transition:opacity .4s ease, transform .4s ease; pointer-events:none; }
.pl-head-txt.is-prov > span{ opacity:0; }
.pl-head-txt.is-prov .pl-head-prov{ opacity:1; transform:none; }
.pl-hp{ display:inline-flex; align-items:center; gap:5px; flex:none; font-family:'Outfit',sans-serif; font-weight:800; }
.pl-hp + .pl-hp{ margin-left:12px; padding-left:12px; border-left:1px solid var(--pl-line); }
.pl-hp .pl-g{ font-weight:700; color:var(--pl-mut); }
.pl-w{ font-style:normal; padding:1px 8px; border-radius:4px; background:var(--c,#888); color:var(--tx,#fff); }
.pl-hp small{ font-size:.8em; font-weight:700; color:var(--pl-mut); }
.pl-head-txt span.is-out{ opacity:0; transform:translateY(8px); }

/* Marca arriba a la derecha: logo, TV y reloj ficticio */
.pl-brand{ display:flex; align-items:center; gap:10px; padding:0 14px; background:rgba(0,0,0,.28); border-left:1px solid var(--pl-line); }
.pl-logo{ font-family:'Outfit',sans-serif; font-weight:900; font-size:clamp(13px,1.6vw,18px); letter-spacing:.07em; line-height:1; white-space:nowrap; }
.pl-logo b{ color:var(--pl-acc); font-weight:900; }
.pl-tv{ padding:3px 7px; border-radius:4px; background:var(--pl-red); font:900 12px 'Outfit',sans-serif; letter-spacing:.08em; }
.pl-clock{ font:900 clamp(16px,2.2vw,24px) 'Outfit',sans-serif; font-variant-numeric:tabular-nums; }

/* ── Panel izquierdo fijo ── */
.pl-side{ display:flex; flex-direction:column; grid-row:2 / 4; background:var(--pl-panel); border-right:1px solid var(--pl-line); overflow:hidden; }
.pl-side-head{ display:flex; align-items:baseline; justify-content:space-between; padding:6px 10px; background:#0a1020; border-bottom:2px solid var(--pl-panel); font-family:'Outfit',sans-serif; }
.pl-side-head span{ font-size:10px; font-weight:800; letter-spacing:.1em; color:var(--pl-mut); }
.pl-side-head b{ font-size:clamp(15px,1.8vw,20px); font-weight:900; font-variant-numeric:tabular-nums; }
.pl-side-cols{ display:grid; grid-template-columns:1fr 3.8rem 3.2rem; padding:3px 0; background:#0a1020; border-bottom:2px solid var(--pl-panel); font:800 9px 'Outfit',sans-serif; letter-spacing:.08em; color:var(--pl-mut); }
.pl-side-cols span:first-child{ padding-left:10px; }
.pl-side-cols .pl-mode{ text-align:center; }
.pl-side-rows{ position:relative; flex:1; min-height:0; overflow:hidden; }
.pl-row{ position:absolute; left:0; right:0; top:0; height:var(--rh,44px); box-sizing:border-box; display:grid; grid-template-columns:1fr 3.8rem 3.2rem; align-items:stretch; background:var(--c,#888); color:var(--tx,#fff); border-bottom:2px solid var(--pl-panel); transition:transform .7s cubic-bezier(.22,.9,.3,1), opacity .5s ease; will-change:transform; }
.pl-row.is-new,.pl-row.is-gone{ opacity:0; }
.pl-row.is-hot{ animation:plHot 1s ease 3; }
@keyframes plHot{ 0%,100%{ box-shadow:inset 0 0 0 0 #fff; } 50%{ box-shadow:inset 0 0 0 4px #fff; } }
.pl-name{ display:flex; align-items:center; min-width:0; padding-left:10px; font-family:'Outfit',sans-serif; font-weight:800; font-size:clamp(11px,1.3vw,15px); }
.pl-name b{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:800; }
.pl-seats{ transition:transform .25s ease; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.32); color:#fff; font-family:'Outfit',sans-serif; font-weight:900; font-size:clamp(14px,1.8vw,21px); font-variant-numeric:tabular-nums; }
.pl-seats small{ margin-left:1px; font-size:.7em; font-weight:800; opacity:.85; }
.pl-seats.is-flip{ transform:rotateX(90deg); }
.plato.is-pct .pl-seats{ font-size:clamp(11px,1.3vw,15px); }
.plato.is-pct .pl-var.is-show{ background:var(--pl-bg); }
.plato.is-pct .pl-var.is-show span{ opacity:0; }
.pl-var{ display:flex; align-items:center; justify-content:center; background:var(--pl-bg); color:#0f172a; font-family:'Outfit',sans-serif; font-weight:800; font-size:10px; line-height:1; white-space:nowrap; transition:background-color .35s ease; }
.pl-var.is-show{ background:#fff; }
.pl-var span{ opacity:0; transform:scale(.6); transition:opacity .35s ease, transform .35s ease; }
.pl-var.is-show span{ opacity:1; transform:scale(1); }
.pl-var .pl-up{ color:#15803d; } .pl-var .pl-dn{ color:#b91c1c; }

/* ── Escenario central ── */
.pl-stage{ position:relative; grid-row:2; overflow:hidden; background:radial-gradient(ellipse at 50% 0%,#101a33 0%,var(--pl-bg) 70%); }
.pl-scene{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:clamp(10px,2.4vw,28px); opacity:0; transform:translateY(18px) scale(.98); transition:opacity .7s ease, transform .7s cubic-bezier(.22,.9,.3,1); }
.pl-scene.is-in{ opacity:1; transform:none; }
.pl-scene.is-out{ opacity:0; transform:translateY(-14px) scale(.985); transition-duration:.5s; }
.pl-title{ font-family:'Outfit',sans-serif; font-weight:900; font-size:clamp(16px,2.6vw,30px); letter-spacing:.04em; text-transform:uppercase; margin-bottom:clamp(8px,2vh,22px); text-align:center; }
.pl-title small{ display:block; margin-top:4px; font-size:.5em; font-weight:700; letter-spacing:.1em; color:var(--pl-mut); }

/* Espera / final */
.pl-wait{ font-family:'Outfit',sans-serif; font-weight:800; text-align:center; font-size:clamp(18px,3vw,34px); animation:plPulse 1.8s ease-in-out infinite; }
.pl-side-head,.pl-side-cols,.pl-side-rows{ transition:opacity .7s ease; }
.plato.is-intro .pl-side-head,.plato.is-intro .pl-side-cols,.plato.is-intro .pl-side-rows{ opacity:0; }
.pl-op{ position:absolute; inset:0; display:flex; flex-direction:column; }
.pl-op-bar{ display:flex; align-items:center; gap:12px; height:clamp(30px,6vh,42px); background:#0f172a; border-bottom:1px solid var(--pl-line); }
.pl-op-bar span{ align-self:stretch; display:flex; align-items:center; padding:0 14px; background:var(--pl-red); font:900 clamp(10px,1.3vw,13px) 'Outfit',sans-serif; letter-spacing:.1em; }
.pl-op-bar b{ font:900 clamp(12px,1.9vw,20px) 'Outfit',sans-serif; letter-spacing:.06em; text-transform:uppercase; }
.pl-op-clk{ position:absolute; right:clamp(10px,2.5vw,32px); top:calc(clamp(30px,6vh,42px) + 14px); display:flex; flex-direction:column; align-items:center; gap:2px; }
.pl-op-clk svg{ width:clamp(40px,8vh,64px); height:auto; fill:var(--pl-panel); stroke:var(--pl-mut); stroke-width:2; }
.pl-op-clk line{ stroke:#f1f5f9; stroke-width:3; stroke-linecap:round; transform-origin:30px 30px; }
.pl-op-h{ transform:rotate(299deg); }
.pl-op-m{ transform:rotate(342deg); transition:transform 4.4s linear; }
.pl-op.is-run .pl-op-m{ transform:rotate(354deg); }
.pl-op.is-go .pl-op-m{ transform:rotate(360deg); transition:transform .4s ease-out; }
.pl-op-clk b{ font:900 clamp(12px,1.6vw,18px) 'Outfit',sans-serif; font-variant-numeric:tabular-nums; }
.pl-op-stage{ flex:1; min-height:0; display:flex; align-items:center; justify-content:center; }
.pl-op-map{ transform:scale(.55); transition:transform 3s cubic-bezier(.3,0,.2,1); }
.pl-op-map.is-zoom{ transform:none; }
.pl-op-map path{ fill:#27344d; stroke:#64748b; transition:opacity .6s ease, fill .6s ease, stroke .6s ease; }   /* pisa el color por ganador que pone mapSvg: aún no hay datos */
.pl-op.is-red .pl-op-map path{ fill:#3b1218; stroke:var(--pl-red); }
.pl-op.is-go .pl-op-map path{ fill:var(--pl-acc); fill-opacity:.45; stroke:#fff; }
.pl-op-n{ position:absolute; left:0; right:0; top:50%; text-align:center; transform:translateY(-50%); font:900 clamp(70px,24vh,220px)/1 'Outfit',sans-serif; color:#fff; text-shadow:0 4px 24px rgba(0,0,0,.6); pointer-events:none; }
.pl-op-n.is-tick{ animation:plTick .6s ease-out both; }
@keyframes plTick{ from{ opacity:0; transform:translateY(-50%) scale(1.5); } to{ opacity:1; transform:translateY(-50%) scale(1); } }
.pl-wait-n{ margin-top:14px; font-size:3.2em; line-height:1; font-variant-numeric:tabular-nums; }
.pl-cols{ position:relative; width:min(100%,640px); height:clamp(160px,36vh,320px); }
.pl-col{ position:absolute; left:0; top:0; bottom:0; width:20%; padding:0 6px; box-sizing:border-box; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; font-family:'Outfit',sans-serif; font-weight:800; text-align:center; transition:transform .9s cubic-bezier(.22,.9,.3,1), opacity .5s; }
.pl-col b{ font-size:clamp(14px,2.2vw,24px); font-weight:900; font-variant-numeric:tabular-nums; margin-bottom:4px; }
.pl-col-b{ width:100%; flex:1; position:relative; }
.pl-col-b i{ position:absolute; left:0; right:0; bottom:0; height:calc(100% - 4px); background:var(--c,#475569); border-radius:5px 5px 0 0; transform:scaleY(0); transform-origin:bottom; transition:transform 1.2s cubic-bezier(.22,.9,.3,1); }
.pl-col span{ margin-top:6px; font-size:clamp(11px,1.5vw,16px); }
.pl-col.is-out{ opacity:0; }
.pl-col.is-env b{ animation:plPulse 1.4s ease-in-out infinite; color:var(--pl-mut); }
.pl-intro-in{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:clamp(10px,2.4vw,28px); }
.pl-intro-in .pl-title{ animation:plIntroT .9s cubic-bezier(.22,.9,.3,1) .35s backwards; }
.pl-intro-in .pl-col.is-env{ animation:plIntroC .7s ease backwards; animation-delay:calc(.7s + var(--k)*.14s); }
@keyframes plIntroT{ from{ opacity:0; transform:translateY(-14px); } to{ opacity:1; transform:none; } }
@keyframes plIntroC{ from{ opacity:0; } to{ opacity:1; } }
.pl-op{ transition:opacity .8s ease; }
.pl-op.is-end{ opacity:0; }
.pl-col.is-env i{ background:#334155; transform:scaleY(.3); }
.pl-wait small{ display:block; margin-top:8px; font-size:.45em; color:var(--pl-mut); font-weight:600; }
@keyframes plPulse{ 0%,100%{ opacity:1; } 50%{ opacity:.55; } }

/* Bloques */
.pl-blocs{ width:min(100%,900px); display:grid; gap:clamp(10px,2.4vh,26px); }
.pl-bloc-head{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; font-family:'Outfit',sans-serif; font-weight:800; font-size:clamp(12px,1.6vw,18px); }
.pl-bloc-head b{ font-size:2.2em; font-weight:900; font-variant-numeric:tabular-nums; }
.pl-bloc-track{ position:relative; height:clamp(18px,4.5vh,34px); background:rgba(255,255,255,.07); border-radius:6px; overflow:hidden; display:flex; }
.pl-bloc-seg{ height:100%; width:0; background:var(--c,#888); transition:width 1.4s cubic-bezier(.22,.9,.3,1); }
.pl-maj{ position:absolute; top:-4px; bottom:-4px; width:2px; background:var(--pl-gold); }
.pl-bloc-parts{ display:flex; flex-wrap:wrap; gap:4px 12px; margin-top:6px; font-size:clamp(10px,1.2vw,13px); color:var(--pl-mut); }
.pl-bloc-parts i{ display:inline-block; width:8px; height:8px; border-radius:2px; margin-right:4px; background:var(--c,#888); }
.pl-note{ margin-top:6px; font-size:clamp(10px,1.2vw,13px); color:var(--pl-gold); text-align:center; }

/* Hemiciclo */
.pl-hemi{ width:min(100%,960px,calc((100vh - 270px)*1.72)); margin-top:12px; }   /* 1.78 = proporción del dibujo (500×290); los 270px son cabecera, pie, título y leyenda/botón */
.pl-hemi svg{ width:100%; height:auto; display:block; overflow:visible; }   /* overflow: la cifra de la mayoría (176) sobresale por arriba del dibujo */
.pl-arc{ fill:none; stroke:var(--c,#888); stroke-width:46; stroke-dasharray:0 100; transition:stroke-dasharray 1.5s cubic-bezier(.22,.9,.3,1), stroke-dashoffset 1.5s cubic-bezier(.22,.9,.3,1); }
.pl-st{ fill:#1e293b; stroke:var(--c,#888); stroke-width:0; stroke-opacity:0; transition:fill .3s ease var(--d,0ms); }   /* apagado hasta que le toca; --d = momento de encenderse */
.pl-sh{ stroke:none; opacity:0; transition:opacity .3s ease var(--d,0ms); }
@keyframes plSeat{ 0%{ opacity:0; transform:translateY(-46px); } 55%{ opacity:1; transform:none; } 75%{ transform:translateY(-4px); } 100%{ opacity:1; transform:none; } }   /* cae, rebota y se queda; sin relleno hacia atrás: hasta su turno se ve el hueco apagado */
@keyframes plAll{ 0%{ stroke:#fff; stroke-width:0; stroke-opacity:0; } 30%{ stroke:#fff; stroke-width:2px; stroke-opacity:.8; } 100%{ stroke:#fff; stroke-width:0; stroke-opacity:0; } }
.pl-hemi.is-on .pl-st{ fill:var(--c,#888); animation:plSeat .6s cubic-bezier(.3,0,.4,1) var(--d,0ms); }
.pl-hemi.is-on .pl-st.is-e{ fill:#1e293b; animation:none; }
.pl-hemi.is-on .pl-sh{ opacity:1; }
.pl-hemi.is-all .pl-st:not(.is-e){ animation:plAll .8s ease-out calc(var(--i,0) * 4ms) both; }
.pl-hc{ opacity:0; transition:opacity .4s ease; }
.pl-hc.is-in{ opacity:1; }
.pl-hemi-c{ font-family:'Outfit',sans-serif; font-weight:900; font-size:30px; fill:#fff; text-anchor:middle; }
.pl-hemi-t{ opacity:0; transition:opacity .5s ease; }
.pl-hemi.is-tot .pl-hemi-t{ opacity:1; }
.pl-sh{ fill:url(#plRel); }
.pl-mesa-t{ fill:#334155; stroke:#64748b; stroke-width:2; stroke-linejoin:round; }
.pl-hemi-s{ font:700 11px 'DM Sans',sans-serif; fill:#cbd5e1; text-anchor:middle; letter-spacing:.1em; }
.pl-hemi-n{ font-family:'Outfit',sans-serif; font-weight:900; font-size:40px; fill:#fff; text-anchor:middle; }
.pl-hemi-l{ font-family:'DM Sans',sans-serif; font-weight:700; font-size:15px; fill:#94a3b8; text-anchor:middle; }
.pl-hemi-m{ stroke:var(--pl-gold); stroke-width:2; stroke-dasharray:4 4; }

/* Comunidad */
.pl-ccaa{ width:min(100%,760px); display:grid; gap:clamp(5px,1.2vh,10px); }
.pl-prv-prog{ width:min(100%,820px); height:6px; margin:-6px 0 clamp(10px,2vh,18px); background:rgba(255,255,255,.1); border-radius:3px; overflow:hidden; }
.pl-prv-prog i{ display:block; height:100%; width:0; background:#fbbf24; transition:width 1.4s cubic-bezier(.22,.9,.3,1); }
.pl-pv{ width:min(100%,900px); display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.6fr); gap:clamp(8px,2vw,24px); align-items:center; }
.pl-pv.is-solo{ grid-template-columns:minmax(0,1fr); }
.pl-pmap{ width:100%; height:auto; max-height:clamp(120px,calc(100vh - 330px),380px); display:block; }
.pl-pmap path{ stroke:#fff; stroke-width:2; stroke-linejoin:round; vector-effect:non-scaling-stroke; opacity:0; transition:opacity .8s ease; }
.pl-pv.is-up .pl-pmap path{ opacity:1; }
.pl-vs{ width:100%; height:auto; max-height:clamp(150px,calc(100vh - 330px),400px); display:block; overflow:visible; }
.pl-vs-h{ font:800 11px 'Outfit',sans-serif; letter-spacing:.12em; fill:var(--pl-mut); text-anchor:middle; }
.pl-vs-t{ font:900 13px 'Outfit',sans-serif; text-anchor:middle; }
.pl-vs-q{ font:700 11px 'DM Sans',sans-serif; text-anchor:middle; }
.pl-vs-n{ font-family:'Outfit',sans-serif; font-weight:900; text-anchor:middle; }
.pl-vs-v{ transform-box:fill-box; transform-origin:50% 0; transform:scaleY(0); transition:transform 1s cubic-bezier(.22,.9,.3,1); }
.pl-vs-b{ opacity:0; transition:opacity .7s ease 1s; }
path.pl-vs-b{ fill-opacity:.28; }
.pl-vs-s{ opacity:0; transition:opacity .7s ease 1.7s; }
.pl-pv.is-up .pl-vs-v{ transform:none; }
.pl-pv.is-up .pl-vs-b{ opacity:1; }
.pl-pv.is-up .pl-vs-s{ opacity:1; }
.pl-ccaa-row{ display:grid; grid-template-columns:clamp(70px,14vw,130px) 1fr 4.4ch auto; align-items:center; gap:10px; font-family:'Outfit',sans-serif; font-weight:800; font-size:clamp(11px,1.5vw,16px); }
.pl-ccaa-bar{ height:clamp(14px,3.4vh,26px); background:rgba(255,255,255,.07); border-radius:5px; overflow:hidden; }
.pl-ccaa-bar i{ display:block; height:100%; width:0; background:var(--c,#888); transition:width 1.2s cubic-bezier(.22,.9,.3,1); }
.pl-ccaa-row b{ text-align:right; font-weight:900; font-variant-numeric:tabular-nums; }
.pl-ccaa-row em{ min-width:5ch; font-style:normal; font-size:.8em; color:var(--pl-mut); font-weight:700; }
.pl-up{ color:#4ade80; } .pl-dn{ color:#f87171; } .pl-d0{ color:var(--pl-mut); }


/* Mapa */
.pl-map{ position:relative; width:min(100%,calc((100vh - 200px)*1.4)); }
.pl-map svg{ width:100%; height:auto; display:block; transition:transform 1.2s cubic-bezier(.5,0,.2,1); }
/* Zoom a la provincia que cambia de ganador (valores calculados en plato.js). El recorte lo hace el escenario (.pl-stage), no la caja del mapa */
.pl-map.is-zoom svg{ transform-origin:var(--zo); transform:translate(var(--zx),var(--zy)) scale(var(--zk)); }
.pl-map.is-zoom path.is-up{ opacity:.14; }
.pl-map.is-zoom path.is-up.is-sel{ opacity:1; stroke-width:1.5; }
.pl-map.is-dim path.is-up{ opacity:.14; }
.pl-map.is-dim path.is-up.is-reg,.pl-map.is-zoom path.is-up.is-reg{ opacity:1; }
.pl-zoom-card{ position:absolute; z-index:3; right:clamp(12px,3vw,40px); top:50%; min-width:clamp(150px,20vw,220px); padding:12px 14px; border-radius:10px; border:2px solid var(--pl-red); background:var(--pl-panel); opacity:0; transform:translate(16px,-50%); transition:opacity .4s ease, transform .4s ease; font-weight:700; }
.pl-zoom-card.is-in{ opacity:1; transform:translate(0,-50%); }
.pl-zoom-card small{ display:block; font:900 11px 'Outfit',sans-serif; letter-spacing:.12em; color:#fca5a5; }
.pl-zoom-card b{ display:block; margin:2px 0 8px; font:900 clamp(16px,2.2vw,24px) 'Outfit',sans-serif; text-transform:uppercase; }
.pl-zoom-card div{ display:flex; align-items:center; gap:8px; padding:3px 0; font-size:clamp(12px,1.5vw,16px); }
.pl-zoom-card i{ width:10px; height:10px; border-radius:50%; background:var(--c,#888); flex:none; }
.pl-zoom-card em{ margin-left:auto; font-style:normal; font-weight:900; font-variant-numeric:tabular-nums; }
.pl-map path{ stroke:rgba(255,255,255,.3); stroke-width:1; stroke-linejoin:round; opacity:0; transition:opacity .6s ease, fill .6s ease, stroke .6s ease; }
.pl-map path.is-lit{ fill:var(--pl-acc); stroke:#9be7ea; stroke-width:2; }   /* la comunidad que se acaba de encender en el mapa del escrutinio */
.pl-map path.is-up{ opacity:.95; }
.pl-map .pl-map-can{ position:absolute; left:0; bottom:0; width:24%; }

/* Cara a cara y escaño en disputa */
.pl-dis{ width:min(100%,820px); }
.pl-dis-hl{ text-align:center; margin-bottom:clamp(10px,2.4vh,22px); font:800 clamp(15px,2.4vw,26px) 'Outfit',sans-serif; }
.pl-dis-hl b{ color:var(--c,#fff); font-weight:900; }
.pl-dis-hl small{ display:block; margin-top:4px; font-size:.55em; font-weight:700; color:var(--pl-gold); }
.pl-bal{ display:block; width:min(100%,560px); max-height:clamp(120px,calc(100vh - 340px),300px); margin:0 auto; overflow:visible; }
.pl-bal-st,.pl-bal-pv{ fill:#334155; }
.pl-bal-beam rect{ fill:#94a3b8; }
.pl-bal-beam{ transform-origin:200px 70px; transition:transform 1.7s cubic-bezier(.3,1.5,.5,1); }
.pl-bal-pan{ transition:transform 1.7s cubic-bezier(.3,1.5,.5,1); }
.pl-bal-pan line{ stroke:#64748b; stroke-width:2; }
.pl-bal-bowl{ fill:var(--c,#888); }
.pl-bal-p{ font:900 17px 'Outfit',sans-serif; fill:var(--tx,#fff); text-anchor:middle; }
.pl-bal-s{ font:800 14px 'Outfit',sans-serif; fill:var(--pl-mut); text-anchor:middle; }
.pl-bal.is-tip .pl-bal-beam{ transform:rotate(var(--a)); }
.pl-bal.is-tip .pl-bal-pan.is-l{ transform:translateY(var(--dy)); }
.pl-bal.is-tip .pl-bal-pan.is-r{ transform:translateY(calc(var(--dy) * -1)); }
.pl-vs{ display:flex; align-items:stretch; justify-content:center; gap:clamp(8px,2vw,24px); width:min(100%,820px); }
.pl-vs-mid{ align-self:center; font:900 clamp(16px,2.4vw,28px) 'Outfit',sans-serif; color:var(--pl-gold); }
.pl-duel{ flex:1; display:flex; flex-direction:column; align-items:center; gap:4px; padding:clamp(10px,2.4vh,22px) 10px; border-radius:12px; border-top:6px solid var(--c,#888); background:rgba(255,255,255,.06); text-align:center; font-weight:700; font-size:clamp(11px,1.4vw,15px); color:var(--pl-mut); }
.pl-duel b{ font:900 clamp(16px,2.4vw,28px) 'Outfit',sans-serif; color:var(--pl-txt); }
.pl-duel strong{ font:900 clamp(34px,7vw,72px) 'Outfit',sans-serif; line-height:1; color:var(--pl-txt); }
.pl-duel small{ font-size:.85em; letter-spacing:.08em; text-transform:uppercase; }

/* Participación */
.pl-big{ font:900 clamp(44px,11vw,110px) 'Outfit',sans-serif; line-height:1; }
.pl-bar{ width:min(100%,640px); height:clamp(10px,2.4vh,18px); margin:clamp(6px,2vh,18px) 0; border-radius:9px; background:rgba(255,255,255,.1); overflow:hidden; }
.pl-bar i{ display:block; height:100%; width:0; background:var(--pl-acc); transition:width 1.4s cubic-bezier(.22,.9,.3,1); }

/* Escrutinio por territorios */
.pl-esc{ width:min(100%,900px); display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:clamp(4px,1vh,9px) 22px; }
.pl-esc-row{ display:grid; grid-template-columns:clamp(80px,14vw,130px) 1fr 4ch; align-items:center; gap:8px; font-weight:700; font-size:clamp(10px,1.3vw,14px); }
.pl-esc-row span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pl-esc-row b{ text-align:right; font-variant-numeric:tabular-nums; }
.pl-esc-row .pl-ccaa-bar{ height:clamp(8px,2vh,14px); }
.pl-esc-row .pl-ccaa-bar i{ background:var(--c,#21989C); }

/* Evolución */
.pl-evo{ width:min(100%,880px); display:flex; align-items:stretch; gap:clamp(10px,2vw,22px); }
.pl-chart{ flex:1; min-width:0; padding:8px; border-radius:10px; background:rgba(255,255,255,.04); }
.pl-chart svg{ width:100%; height:auto; max-height:calc(100vh - 230px); display:block; }
.pl-grid{ stroke:rgba(255,255,255,.1); stroke-width:1; }
.pl-ax{ fill:#94a3b8; font:700 11px 'DM Sans',sans-serif; }
.pl-line{ fill:none; stroke:var(--c,#888); stroke-width:3.5; stroke-linejoin:round; stroke-linecap:round; stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset 2.2s ease; }
.pl-line.is-up{ stroke-dashoffset:0; }
.pl-dot{ fill:var(--c,#888); stroke:var(--pl-bg); stroke-width:2; transform-box:fill-box; transform-origin:center; opacity:0; }
.pl-line.is-up + .pl-dot{ animation:plDot 1.2s ease-in-out 2.2s infinite; }
@keyframes plDot{ 0%{ opacity:1; transform:scale(1); } 50%{ opacity:1; transform:scale(1.7); } 100%{ opacity:1; transform:scale(1); } }
.pl-evo-leg{ flex:none; width:clamp(110px,22vw,190px); display:flex; flex-direction:column; justify-content:center; gap:6px; }
.pl-evo-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:clamp(6px,1.4vh,11px) 10px; border-left:6px solid var(--c,#888); background:rgba(255,255,255,.06); font-family:'Outfit',sans-serif; font-weight:800; font-size:clamp(12px,1.6vw,18px); }
.pl-evo-row b{ font-weight:900; font-variant-numeric:tabular-nums; }

/* Ganador por territorio */
.pl-tiles{ width:min(100%,900px); display:grid; grid-template-columns:repeat(auto-fit,minmax(clamp(84px,14vw,130px),1fr)); gap:clamp(4px,1vh,8px); }
.pl-tile{ display:flex; flex-direction:column; gap:2px; padding:clamp(6px,1.4vh,12px) 8px; border-radius:8px; background:var(--c,rgba(255,255,255,.07)); color:var(--tx,#94a3b8); opacity:0; transform:scale(.85); transition:opacity .5s ease, transform .5s cubic-bezier(.22,.9,.3,1); }
.pl-tile.is-up{ opacity:1; transform:none; }
.pl-tile span{ font-size:clamp(9px,1.1vw,12px); font-weight:700; opacity:.9; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pl-tile b{ font:900 clamp(12px,1.6vw,18px) 'Outfit',sans-serif; }

/* Alerta de adelantamiento: baja desde arriba, se queda unos segundos y se va */
.pl-alert{ white-space:nowrap; position:absolute; top:12px; left:50%; z-index:4; display:flex; align-items:center; gap:8px; width:max-content; max-width:94%; padding:7px 18px 7px 7px; border-radius:24px; background:#fff; color:#0f172a; font-weight:700; font-size:clamp(12px,1.6vw,18px); box-shadow:0 8px 30px rgba(0,0,0,.5); transform:translateX(-50%); animation:plAlert 6s ease both; }
.pl-alert i{ width:12px; height:12px; border-radius:50%; background:var(--c,#888); flex:none; }
.pl-alert-tag{ padding:5px 10px; border-radius:999px; background:var(--pl-red); color:#fff; white-space:nowrap; font:900 .8em 'Outfit',sans-serif; letter-spacing:.08em; animation:plPulse .8s ease-in-out infinite; }
@keyframes plAlert{ 0%{ opacity:0; transform:translate(-50%,-44px) scale(.9); } 7%{ opacity:1; transform:translate(-50%,0) scale(1.05); } 11%{ transform:translate(-50%,0) scale(1); } 90%{ opacity:1; transform:translate(-50%,0); } 100%{ opacity:0; transform:translate(-50%,-24px); } }


/* Conexión «vamos en directo a…»: cortinilla que tapa la escena unos segundos y se va */
.pl-stinger{ position:absolute; inset:0; z-index:3; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; background:var(--pl-bg); text-align:center; pointer-events:none; animation:plStinger 1.9s ease forwards; }
.pl-stinger span{ padding:4px 12px; border-radius:4px; background:var(--pl-red); font:900 clamp(12px,1.5vw,16px) 'Outfit',sans-serif; letter-spacing:.12em; animation:plPulse .8s ease-in-out infinite; }
.pl-stinger b{ font:900 clamp(18px,3.4vw,38px) 'Outfit',sans-serif; }
@keyframes plStinger{ 0%{ opacity:0; } 15%,75%{ opacity:1; } 100%{ opacity:0; } }

/* Cortinilla antes del resumen de cada hito: un iris rojo se abre, cae el logotipo y se cierra para dejar ver la nueva */
.pl-wipe{ --t:4.5s; --hold:1s; position:absolute; inset:0; z-index:3; overflow:hidden; pointer-events:none; }
.pl-wipe.is-short{ --t:4s; }   /* --t: duración de la entrada del logotipo; --hold: lo que se queda quieto antes de abrirse */
.pl-wp-rd,.pl-wp-dk{ --o:0s; position:absolute; inset:0; clip-path:circle(0% at 50% 50%);
  animation:plWpIo calc(var(--t)*.26) cubic-bezier(.4,0,.2,1) var(--o) forwards, plWpIc calc(var(--t)*.26) cubic-bezier(.6,0,.3,1) calc(var(--t)*.8 + var(--hold) + var(--o)) forwards; }
.pl-wp-rd{ background:var(--pl-red); }
.pl-wp-dk{ --o:calc(var(--t)*.04); background:var(--pl-bg); }
.pl-wp-lg{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; white-space:nowrap; color:#f1f5f9; animation:plWpL calc(var(--t)*.1) linear calc(var(--t)*.8 + var(--hold)) both; }
/* Logotipo oficial: Outfit 900, espaciado .07em, OBJETIVO claro y 176 en turquesa */
.pl-wp-lg b{ font:900 clamp(26px,6vw,58px)/1 'Outfit',sans-serif; letter-spacing:.07em; }
.pl-wp-lg b span,.pl-wp-lg b u{ display:inline-block; opacity:0; }
.pl-wp-lg b span{ animation:plWpC calc(var(--t)*.2) cubic-bezier(.3,0,.4,1) both; animation-delay:calc(var(--t)*.2 + var(--i)*var(--t)*.02); }
.pl-wp-lg u{ text-decoration:none; color:var(--pl-acc); animation:plWpN calc(var(--t)*.35) ease calc(var(--t)*.45) both; }
.pl-wp-lg small{ margin-top:8px; font:800 clamp(10px,1.3vw,14px) 'Outfit',sans-serif; letter-spacing:.16em; color:var(--pl-mut); opacity:0; animation:plWpS calc(var(--t)*.2) ease calc(var(--t)*.62) both; }
@keyframes plWpIo{ from{ clip-path:circle(0% at 50% 50%); } to{ clip-path:circle(80% at 50% 50%); } }
@keyframes plWpIc{ from{ clip-path:circle(80% at 50% 50%); } to{ clip-path:circle(0% at 50% 50%); } }
@keyframes plWpL{ from{ opacity:1; } to{ opacity:0; } }
@keyframes plWpC{ 0%{ opacity:0; transform:translateY(-36px); } 55%{ opacity:1; transform:translateY(0); } 72%{ transform:translateY(-8px); } 88%{ transform:translateY(0); } 100%{ opacity:1; transform:none; } }
@keyframes plWpN{ 0%{ opacity:0; filter:blur(14px); transform:scale(1.15); } 60%{ opacity:1; filter:blur(0); text-shadow:0 0 22px var(--pl-acc); } 100%{ opacity:1; filter:blur(0); text-shadow:0 0 8px rgba(33,152,156,.5); transform:none; } }
@keyframes plWpS{ from{ opacity:0; } to{ opacity:1; } }

/* Ficha de comunidad */
.pl-ficha{ width:min(100%,860px); max-height:100%; display:flex; flex-direction:column; }
.pl-ficha-head{ display:flex; align-items:center; gap:clamp(10px,2vw,20px); margin-bottom:clamp(8px,2vh,16px); }
.pl-flag{ height:clamp(36px,8vh,64px); width:auto; border-radius:4px; border:1px solid rgba(255,255,255,.25); }
.pl-ficha-name{ font:900 clamp(18px,3vw,32px) 'Outfit',sans-serif; letter-spacing:.03em; text-transform:uppercase; }
.pl-ficha-sub{ font-size:clamp(11px,1.3vw,14px); color:var(--pl-mut); font-weight:700; }
.pl-ficha-t{ margin:clamp(6px,1.4vh,12px) 0 5px; font:800 11px 'Outfit',sans-serif; letter-spacing:.1em; color:var(--pl-mut); }
.pl-pbars{ display:grid; gap:clamp(3px,.8vh,6px); }
.pl-pbar,.pl-pbar-h{ display:grid; grid-template-columns:clamp(54px,9vw,90px) 1fr 3ch 6ch; align-items:center; gap:8px; }
.pl-pbar{ padding:clamp(3px,.8vh,6px) 8px; border-left:6px solid var(--c,#888); background:rgba(255,255,255,.05); font:800 clamp(12px,1.6vw,18px) 'Outfit',sans-serif; }
.pl-pbar-t{ height:clamp(12px,2.6vh,20px); border-radius:4px; background:rgba(255,255,255,.07); overflow:hidden; }
.pl-pbar-t i{ display:block; height:100%; width:0; background:var(--c,#888); transition:width 1.2s cubic-bezier(.22,.9,.3,1); }
.pl-pbar b{ text-align:right; font-weight:900; font-size:1.25em; }
.pl-pbar em{ text-align:right; font-style:normal; font-weight:800; font-size:.85em; color:var(--pl-mut); }
.pl-pbar-h{ padding:0 8px 0 14px; font:800 clamp(12px,1.6vw,18px) 'Outfit',sans-serif; color:var(--pl-mut); }   /* mismo tamaño que las filas para que las columnas (en ch) coincidan */
.pl-pbar-h b,.pl-pbar-h em{ text-align:right; font-style:normal; font-weight:800; font-size:10px; letter-spacing:.08em; white-space:nowrap; }
.pl-prov-box{ flex:1 1 auto; min-height:64px; overflow:hidden; }   /* ocupa lo que sobra de la pantalla; si no caben todas las provincias, se desplazan solas */
.pl-prov-in{ display:grid; grid-template-columns:repeat(auto-fit,minmax(clamp(150px,22vw,210px),1fr)); gap:8px; }
.pl-pcard{ padding:clamp(6px,1.4vh,10px) 10px; border-radius:8px; border-top:4px solid var(--c,#334155); background:rgba(255,255,255,.05); }
.pl-pcard-h{ display:flex; justify-content:space-between; align-items:baseline; gap:6px; font-family:'Outfit',sans-serif; }
.pl-pcard-h b{ font-size:clamp(13px,1.6vw,17px); font-weight:900; }
.pl-pcard-h span{ font-size:11px; font-weight:700; color:var(--pl-mut); }
.pl-sqs{ display:flex; flex-wrap:wrap; gap:3px; margin:clamp(5px,1.2vh,9px) 0; }
.pl-sqs i{ width:clamp(13px,2.4vh,22px); height:clamp(13px,2.4vh,22px); border-radius:3px; background:var(--c,#888); opacity:0; transform:scale(.4); transition:opacity .3s ease, transform .3s ease; }
.pl-sqs i.pl-sq-off{ background:rgba(255,255,255,.1); }
.pl-sqs i.is-up{ opacity:1; transform:none; }
.pl-pcard-f{ font-size:11px; font-weight:700; color:var(--pl-mut); }

.pl-gc{ display:grid; grid-template-columns:clamp(120px,22vw,200px) 1fr 6ch; align-items:center; gap:10px; padding:clamp(5px,1.1vh,9px) 8px; background:rgba(255,255,255,.04); margin-bottom:4px; font-weight:700; font-size:clamp(12px,1.5vw,16px); }
.pl-gc-n{ white-space:nowrap; font-weight:800; }
.pl-gc-n small{ color:var(--pl-mut); font-weight:700; margin-left:4px; }
.pl-gc-bar{ position:relative; display:flex; height:clamp(14px,3vh,24px); background:rgba(255,255,255,.07); border-radius:4px; overflow:hidden; }
.pl-gc-bar i{ display:block; height:100%; width:0; background:var(--c,#888); transition:width 1.1s cubic-bezier(.22,.9,.3,1); }
.pl-gc-bar u{ position:absolute; left:50%; top:0; bottom:0; border-left:2px solid #fff; }
.pl-gc-t{ margin-top:3px; }
.pl-gc-t .pl-d0{ margin-right:6px; white-space:nowrap; }
.pl-gc b{ text-align:right; font-variant-numeric:tabular-nums; }
.pl-gc b small{ display:block; font-size:.6em; color:var(--pl-mut); font-weight:700; }
.pl-prov-row{ display:grid; grid-template-columns:clamp(80px,14vw,130px) 1fr 4ch; align-items:center; gap:8px; padding:clamp(5px,1.1vh,9px) 8px; border-left:5px solid var(--c,#334155); background:rgba(255,255,255,.04); margin-bottom:3px; font-weight:700; font-size:clamp(11px,1.4vw,15px); }
.pl-prov-row b{ text-align:right; font-variant-numeric:tabular-nums; color:var(--pl-mut); }
.pl-prov-row small{ color:var(--pl-mut); font-weight:700; margin-left:4px; }
.pl-flag-s{ height:1em; width:auto; margin-right:6px; vertical-align:-2px; border-radius:2px; border:1px solid rgba(255,255,255,.25); }
.pl-pill{ display:inline-block; padding:1px 8px; border-radius:9px; margin:1px 4px 1px 0; background:var(--c,#888); color:var(--tx,#fff); font-weight:800; font-size:clamp(10px,1.2vw,13px); }

/* Ficha de partido */
.pl-pfx{ width:min(100%,820px); }
.pl-pfx-head{ display:flex; align-items:stretch; border-radius:10px; overflow:hidden; margin-bottom:clamp(8px,2vh,16px); }
.pl-pfx-name{ min-width:clamp(110px,18vw,190px); padding:clamp(8px,2vh,16px) 16px; display:flex; flex-direction:column; justify-content:center; }
.pl-pfx-name small{ font-size:11px; letter-spacing:.12em; font-weight:700; opacity:.85; }
.pl-pfx-name b{ font:900 clamp(26px,5vw,48px) 'Outfit',sans-serif; line-height:1.05; }
.pl-pfx-stats{ flex:1; display:grid; grid-template-columns:repeat(3,1fr); align-items:center; text-align:center; background:rgba(255,255,255,.06); }
.pl-pfx-stats div{ display:flex; flex-direction:column; gap:2px; padding:6px 4px; font-size:clamp(11px,1.4vw,14px); font-weight:700; }
.pl-pfx-stats b{ font:900 clamp(22px,4vw,40px) 'Outfit',sans-serif; line-height:1.1; }
.pl-pfx-stats small{ color:var(--pl-mut); font-size:.85em; }
.pl-pfx-t{ margin-bottom:6px; font-size:11px; letter-spacing:.1em; font-weight:800; color:var(--pl-mut); }

/* Ganadores y perdedores */
.pl-chg-grid{ width:min(100%,760px); display:grid; grid-template-columns:1fr 1fr; gap:clamp(10px,3vw,30px); }
.pl-chg-h{ margin-bottom:6px; font:900 clamp(12px,1.5vw,16px) 'Outfit',sans-serif; letter-spacing:.1em; }
.pl-chg{ display:flex; align-items:center; gap:10px; margin-bottom:6px; padding:clamp(6px,1.6vh,12px) 12px; border-left:6px solid var(--c,#888); background:rgba(255,255,255,.06); font:800 clamp(13px,1.8vw,20px) 'Outfit',sans-serif; }
.pl-chg span{ flex:1; }
.pl-chg b{ font-size:1.4em; font-weight:900; }
.pl-pop{ opacity:0; transform:translateX(-18px); transition:opacity .5s ease, transform .5s cubic-bezier(.22,.9,.3,1); }
.pl-pop.is-up{ opacity:1; transform:none; }


/* ── Escenas de plató ── */
/* Muro de pantallas */
.pl-wall{ width:min(100%,920px,calc((100vh - 210px)*1.6)); display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.pl-t2{ position:relative; aspect-ratio:16/10; padding:22px 8px 6px; overflow:hidden; background:#0b1220; border:3px solid #334155; border-radius:6px; animation:plOnAir 9s linear infinite; animation-delay:var(--d,0s); }
.pl-t2-cap{ position:absolute; left:8px; top:4px; font:800 10px 'Outfit',sans-serif; letter-spacing:.08em; color:var(--pl-mut); text-transform:uppercase; }
.pl-t2-air{ position:absolute; right:6px; top:3px; padding:1px 6px; border-radius:3px; background:var(--pl-red); font:900 9px 'Outfit',sans-serif; letter-spacing:.08em; opacity:0; animation:plOnAirTag 9s linear infinite; animation-delay:var(--d,0s); }
@keyframes plOnAir{ 0%,16%{ border-color:var(--pl-red); } 17%,100%{ border-color:#334155; } }
@keyframes plOnAirTag{ 0%,16%{ opacity:1; } 17%,100%{ opacity:0; } }
.pl-mini-hemi svg,.pl-mini-svg{ width:100%; height:100%; display:block; }
.pl-mini-hemi{ height:100%; display:flex; align-items:center; }
.pl-mini-map{ width:100%; height:100%; }
.pl-mini-map svg{ width:100%; height:100%; }
.pl-mini-big{ height:100%; display:flex; align-items:center; justify-content:center; font:900 clamp(22px,4vw,44px) 'Outfit',sans-serif; }
.pl-mini-bars{ display:grid; gap:5px; padding-top:4px; }
.pl-mini-bars div{ display:grid; grid-template-columns:3.4em 1fr 3ch; align-items:center; gap:5px; font:800 clamp(9px,1.1vw,12px) 'Outfit',sans-serif; }
.pl-mini-bars i{ display:block; height:clamp(7px,1.6vh,12px); background:var(--c,#888); border-radius:2px; }
.pl-mini-bars b{ text-align:right; font-weight:800; color:var(--pl-mut); }
.pl-mini-vs{ height:100%; display:flex; align-items:center; justify-content:space-around; text-align:center; font-family:'Outfit',sans-serif; }
.pl-mini-vs div{ display:flex; flex-direction:column; }
.pl-mini-vs b{ font-size:clamp(20px,3.4vw,38px); font-weight:900; line-height:1; }
.pl-mini-vs span{ font-size:clamp(9px,1.1vw,12px); font-weight:800; }
.pl-mini-vs em{ font-style:normal; font-weight:900; color:var(--pl-gold); font-size:clamp(10px,1.3vw,14px); }

/* Hemiciclo en el suelo y estudio (dibujos en SVG) */
.pl-floor{ width:min(100%,780px,calc((100vh - 190px)*2.06)); height:auto; display:block; }
.pl-studio{ width:min(100%,820px,calc((100vh - 170px)*2)); height:auto; display:block; border-radius:10px; }
.pl-float{ animation:plFloat 3.2s ease-in-out infinite; }
@keyframes plFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-5px); } }
.pl-glow{ animation:plPulse 3.4s ease-in-out infinite; }

/* Conexión con una sede */
.pl-sede{ width:min(100%,1000px); display:grid; gap:clamp(8px,1.6vh,14px); }
.pl-sede-top{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.8fr); gap:clamp(8px,1.6vw,16px); align-items:stretch; }
.pl-sede-rt{ display:grid; grid-template-rows:1fr auto; gap:clamp(8px,1.6vh,14px); min-width:0; }
.pl-sede-bot{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(8px,1.6vw,16px); }
.pl-sede-p{ padding:clamp(8px,1.4vh,12px) 12px; border-radius:10px; background:rgba(255,255,255,.05); font-family:'Outfit',sans-serif; }
.pl-sede-p small{ display:block; margin-bottom:6px; font-size:11px; font-weight:800; letter-spacing:.12em; color:var(--pl-mut); }
.pl-sede-p svg{ display:block; width:100%; height:auto; }
.pl-sede-r{ display:flex; justify-content:space-between; gap:10px; padding:3px 0; font-weight:800; font-size:clamp(12px,1.6vw,17px); }
.pl-sede-nd{ color:var(--pl-mut); font-weight:700; font-size:13px; padding:6px 0; }
.pl-sede-top .pl-win{ min-height:0; }
.pl-sede-top .pl-win svg{ height:clamp(90px,calc(100vh - 380px),250px); aspect-ratio:auto; }
.pl-sede-rt .pl-sede-p svg{ max-height:clamp(70px,calc(100vh - 400px),230px); }
.pl-ref{ stroke-dasharray:4 4; stroke:rgba(255,255,255,.45); }
.pl-sede-hd{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:clamp(8px,2vw,24px); padding:clamp(8px,1.6vh,16px) clamp(12px,2vw,24px); border-radius:10px; background:var(--c,#888); color:var(--tx,#fff); font-family:'Outfit',sans-serif; }
.pl-sede-n,.pl-sede-pct{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.pl-sede-pct{ justify-content:flex-end; }
.pl-sede-hd b{ font:900 clamp(30px,min(7vw,11vh),72px) 'Outfit',sans-serif; line-height:1; }
.pl-sede-hd span{ font-weight:800; font-size:clamp(12px,1.6vw,17px); }
.pl-sede-nm{ font:900 clamp(18px,3.2vw,38px) 'Outfit',sans-serif; text-align:center; }
.pl-win{ position:relative; border:3px solid var(--pl-red); border-radius:8px; overflow:hidden; background:#0d1424; }
.pl-win svg{ display:block; width:100%; aspect-ratio:16/10; }
.pl-fall{ animation:plFall 3.2s linear infinite; }
@keyframes plFall{ 0%{ transform:translateY(-12px) rotate(0); } 100%{ transform:translateY(150px) rotate(220deg); } }
.pl-flash{ animation:plFlash 1.6s ease-in-out infinite; opacity:0; }
@keyframes plFlash{ 0%,70%,100%{ opacity:0; } 78%{ opacity:.95; } }
.pl-win-live{ position:absolute; left:8px; top:8px; z-index:1; display:flex; align-items:center; gap:6px; padding:3px 9px; border-radius:4px; background:var(--pl-red); font:900 11px 'Outfit',sans-serif; letter-spacing:.1em; }
.pl-win-live i{ width:7px; height:7px; border-radius:50%; background:#fff; animation:plPulse .8s ease-in-out infinite; }
.pl-win-bar{ position:absolute; left:0; right:0; bottom:0; padding:8px 12px 8px 16px; background:var(--c,#E30613); border-left:8px solid #fff; display:flex; flex-direction:column; text-shadow:0 1px 2px rgba(0,0,0,.45); }
.pl-win-bar b{ font:900 clamp(13px,1.8vw,19px) 'Outfit',sans-serif; }
.pl-win-bar span{ font-size:clamp(10px,1.3vw,13px); font-weight:700; }

/* Mesa táctil: mapa en perspectiva con lupa */
.pl-mesa{ perspective:900px; display:flex; justify-content:center; width:100%; }
.pl-mesa-top{ transform:rotateX(34deg); transform-origin:50% 100%; padding:8px; background:#0d1a33; border:2px solid var(--pl-acc); border-radius:6px; }
.pl-mesa-top svg{ display:block; width:100%; height:auto; }
.pl-map path.is-sel{ stroke:#fff; stroke-width:3; }
.pl-lupa{ opacity:0; transition:opacity .6s ease .6s; }
.pl-lupa.is-in{ opacity:1; }

/* Resumen de la hora */
.pl-res{ width:min(100%,820px); display:flex; align-items:center; gap:clamp(12px,3vw,34px); }
.pl-res-clock{ flex:none; display:flex; flex-direction:column; align-items:center; gap:2px; }
.pl-res-clock svg{ width:clamp(90px,16vw,160px); height:auto; }
.pl-res-clock b{ font:900 clamp(26px,4.6vw,48px) 'Outfit',sans-serif; font-variant-numeric:tabular-nums; }
.pl-res-clock small{ font-size:clamp(10px,1.3vw,13px); color:var(--pl-mut); font-weight:700; }
.pl-res-main{ flex:1; min-width:0; }
.pl-res-plot{ position:relative; margin-top:14px; }
.pl-res-row,.pl-res-ov,.pl-res-ax{ display:grid; grid-template-columns:clamp(60px,10vw,100px) 1fr 4ch; gap:8px; }
.pl-res-row{ align-items:center; margin-bottom:6px; font:800 clamp(12px,1.7vw,19px) 'Outfit',sans-serif; }
.pl-res-ov{ position:absolute; inset:0 0 18px 0; pointer-events:none; }
.pl-res-grid,.pl-res-ax div{ grid-column:2; position:relative; }
.pl-res-grid{ background:repeating-linear-gradient(90deg,rgba(255,255,255,.14) 0 1px,transparent 1px var(--st)); }
.pl-res-grid s{ position:absolute; top:0; bottom:0; border-left:2px dashed var(--pl-gold); }
.pl-res-grid s.is-off{ left:auto; right:0; border-left:0; }
.pl-res-grid s.is-off small{ left:auto; right:0; top:-15px; white-space:nowrap; }
.pl-res-grid small{ position:absolute; top:-2px; left:4px; font:900 11px 'Outfit',sans-serif; color:var(--pl-gold); }
.pl-res-ax{ height:16px; margin-top:2px; }
.pl-res-ax u{ position:absolute; top:0; transform:translateX(-50%); text-decoration:none; font:700 10px 'DM Sans',sans-serif; color:var(--pl-mut); }
.pl-res-tr{ position:relative; }
.pl-res-tr i{ position:relative; display:block; height:clamp(18px,4.4vh,34px); width:0; background:var(--c,#888); border-radius:0 4px 4px 0; transition:width 1.2s cubic-bezier(.22,.9,.3,1); }
.pl-res-tr b{ font-style:normal; font-variant-numeric:tabular-nums; position:absolute; left:100%; top:50%; transform:translateY(-50%); margin-left:6px; font-weight:900; font-size:1.3em; }
.pl-res-sc{ width:100%; height:6px; margin-top:4px; border-radius:3px; background:#1e293b; overflow:hidden; }
.pl-res-sc i{ display:block; height:100%; background:#21989C; }


/* «Tú eliges»: seis botones y cuenta atrás */
.pl-opts{ width:min(100%,780px); display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(8px,1.6vw,14px); }
.pl-opt{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; min-height:clamp(64px,16vh,120px); padding:10px 8px; border:2px solid var(--c,#21989C); border-radius:10px; background:rgba(255,255,255,.06); color:var(--pl-txt); font-family:'Outfit',sans-serif; cursor:pointer; transition:background-color .2s ease, color .2s ease, transform .2s ease; }
.pl-opt:hover,.pl-opt:focus-visible{ background:var(--c,#21989C); color:var(--tx,#fff); transform:translateY(-3px); }
.pl-opt img{ height:clamp(22px,5vh,38px); width:auto; border-radius:3px; border:1px solid rgba(255,255,255,.25); }
.pl-opt b{ font-size:clamp(13px,1.9vw,20px); font-weight:900; text-align:center; }
.pl-opt small{ font:700 clamp(10px,1.2vw,13px) 'DM Sans',sans-serif; opacity:.85; }
.pl-count{ width:min(100%,780px); height:6px; margin-top:clamp(10px,2.4vh,20px); border-radius:3px; background:rgba(255,255,255,.1); overflow:hidden; }
.pl-count i{ display:block; height:100%; background:var(--pl-gold); animation:plCount 15s linear forwards; }
@keyframes plCount{ from{ width:100%; } to{ width:0; } }
.pl-scene.is-out{ pointer-events:none; }

/* ── Pie: controles y progreso ── */
.pl-foot{ grid-row:3; display:flex; align-items:center; gap:12px; padding:8px 14px; background:#0a1020; border-top:1px solid var(--pl-line); }
.pl-ctl{ display:flex; align-items:center; gap:6px; }
.pl-ctl button{ min-width:34px; height:32px; padding:0 10px; border:1px solid var(--pl-line); border-radius:8px; background:rgba(255,255,255,.06); color:var(--pl-txt); font:700 13px 'DM Sans',sans-serif; cursor:pointer; }
.pl-ctl button:hover{ background:rgba(255,255,255,.14); }
.pl-ctl span{ min-width:2.4ch; text-align:center; font-size:12px; color:var(--pl-mut); }
.pl-prog{ flex:1; min-width:40px; height:6px; border-radius:3px; background:rgba(255,255,255,.1); overflow:hidden; }
.pl-prog i{ display:block; height:100%; width:0; background:var(--pl-acc); transition:width .6s ease; }
.pl-pct{ font:800 13px 'Outfit',sans-serif; font-variant-numeric:tabular-nums; min-width:4ch; text-align:right; }

/* Pausa y fin */
.plato.is-paused .pl-clock{ opacity:.55; }

/* ── Móvil en vertical: marcador en franja (4 × 2) sobre las escenas, que ocupan todo el ancho ── */
@media (orientation:portrait) and (max-width:900px){
  .plato{ grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto minmax(0,1fr) auto; }
  .pl-head{ height:40px; }
  .pl-head-tag{ width:54px; padding:0 6px; box-sizing:border-box; justify-content:center; text-align:center; white-space:normal; line-height:1.1; font-size:10px; }   /* «ÚLTIMA / HORA» en dos líneas para dejar sitio al titular */
  .pl-head-txt{ padding:0 10px; font-size:13px; }
  .pl-hp small{ display:none; }
  .pl-head-txt > span{ white-space:normal; line-height:1.15; font-size:12px; max-height:2.3em; }   /* el titular se lee entero en dos líneas */
  .plato.is-intro .pl-side{ display:none; }   /* antes de empezar no hay marcador: sin hueco vacío */
  .pl-alert{ font-size:12px; gap:6px; padding-right:12px; }
  .pl-brand{ padding:0 10px; gap:6px; }
  .pl-side{ grid-row:2; border-right:0; border-bottom:1px solid var(--pl-line); }
  .pl-side-head{ padding:3px 10px; }
  .pl-side-cols{ display:none; }
  .pl-side-rows{ flex:none; height:calc(var(--rh,30px)*2); }
  .pl-row{ right:auto; width:25%; grid-template-columns:minmax(0,1fr) 2.1rem; }
  .pl-var{ display:none; }
  .pl-name{ padding-left:6px; font-size:11px; }
  .pl-seats{ font-size:14px; }
  .plato.is-pct .pl-seats{ font-size:11px; }
  .pl-stage{ grid-row:3; }
  .pl-foot{ grid-row:4; padding:6px 10px; gap:8px; }
  .plato.is-fin .pl-side{ display:none; }
  .pl-res{ flex-direction:column; align-items:stretch; gap:8px; }
  .pl-res-clock{ flex-direction:row; justify-content:center; align-items:center; gap:12px; }
  .pl-res-clock svg{ width:56px; }
  .pl-res-clock b{ font-size:30px; }
  .pl-wall{ grid-template-columns:repeat(2,1fr); }
  .pl-opts{ grid-template-columns:repeat(2,1fr); }
  .pl-opt{ min-height:84px; }
  .pl-opt small{ font-size:12px; text-align:center; text-wrap:balance; }
  .pl-pv{ grid-template-columns:minmax(0,1fr); }
  .pl-pmap{ width:auto; max-width:100%; max-height:190px; margin:0 auto; }
  .pl-pbar-h{ white-space:nowrap; }
  .pl-pbar-h b{ padding-right:6px; }
  .pl-gc{ grid-template-columns:104px minmax(0,1fr) 6ch; padding:3px 8px; margin-bottom:2px; }
  .pl-gc-t{ margin-top:2px; }
  .pl-t2-cap{ left:6px; font-size:9px; }
  .pl-t2-air{ top:6px; right:6px; width:8px; height:8px; padding:0; border-radius:50%; font-size:0; }   /* «en antena» pasa a ser un punto rojo: el texto tapaba el título de la casilla */
  .pl-gc-n small{ display:block; margin-left:0; }
  .pl-sede-top{ grid-template-columns:minmax(0,1fr); }
  .pl-sede-top .pl-win svg{ height:112px; }
  .pl-sede-rt .pl-sede-p svg{ max-height:110px; }
  .pl-evo{ flex-direction:column; }
  .pl-evo-leg{ width:auto; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }   /* dos columnas fijas: con número impar el último no se estira */
}

@media (max-width:700px){ .pl-logo{ display:none; } }

/* Pantallas bajas (móvil en horizontal): todo más compacto */
@media (max-height:480px){
  .pl-head{ height:36px; }
  .pl-head-tag{ padding:0 10px; font-size:11px; }
  .pl-foot{ padding:4px 10px; }
  .pl-ctl button{ height:26px; }
}

/* Solo móvil en horizontal (bajo y estrecho): en un portátil con zoom, que también es bajo, no se compacta tanto */
@media (max-height:480px) and (max-width:900px){
  .pl-scene{ padding-top:3px; padding-bottom:3px; }
  .pl-title{ margin-bottom:4px; font-size:15px; }
  .pl-title small{ display:none; }
  .pl-gc{ padding:3px 8px; margin-bottom:2px; }
  .pl-gc-bar{ height:12px; }
}

@media (prefers-reduced-motion:reduce){
  .pl-op-map,.pl-op-m,.pl-op-n,.pl-head-prov,.pl-st,.pl-sh,.pl-hc,.pl-hemi-t,.pl-row,.pl-seats,.pl-scene,.pl-var,.pl-var span,.pl-bloc-seg,.pl-arc,.pl-ccaa-bar i,.pl-prv-prog i,.pl-uc-h,.pl-uc-c,.pl-uc-rest,.pl-uc-sc,.pl-uc-sc i,.pl-bal-beam,.pl-bal-pan,.pl-col,.pl-col-b i,.pl-gc-bar i,.pl-pbar-t i,.pl-sqs i,.pl-prog i,.pl-head-txt span,.pl-map path,.pl-bar i,.pl-line,.pl-tile,.pl-pop,.pl-fin-l,.pl-fin-c,.pl-fin-msg,.pl-res-tr i,.pl-lupa,.pl-opt,.pl-vs-v,.pl-vs-b,.pl-vs-s,.pl-pmap path,.pl-res-clock,.pl-res-main .pl-title,.pl-res-plot{ transition:none; }
  .pl-wait,.pl-col.is-env b,.pl-alert,.pl-alert-tag,.pl-row.is-hot,.pl-stinger,.pl-stinger span,.pl-mi-t span,.pl-fin-t.is-in,.pl-intro-in .pl-title,.pl-intro-in .pl-col.is-env{ animation:none; }
  .pl-stinger,.pl-wipe{ display:none; }
  .pl-dot,.pl-line.is-up + .pl-dot{ animation:none; opacity:1; }
  .pl-hemi.is-on .pl-st,.pl-hemi.is-all .pl-st:not(.is-e){ animation:none; }
  .pl-count i,.pl-fall,.pl-flash,.pl-t2,.pl-t2-air,.pl-float,.pl-glow,.pl-win-live i{ animation:none; }
}

/* Comunidad: el mapa acerca la región a la izquierda y la ficha va a la derecha (en vertical, tarjetas sobre el mapa: ver el bloque de abajo) */
.pl-uc{ position:absolute; top:50%; right:1%; width:60%; max-width:660px; transform:translateY(-50%); container-type:inline-size; display:flex; flex-direction:column; gap:clamp(6px,1.4cqw,14px); padding:clamp(10px,3.2cqw,22px); border:1px solid rgba(255,255,255,.14); border-radius:12px; background:rgba(7,11,20,.9); opacity:0; transition:opacity .6s ease; pointer-events:none; font-family:'Outfit',sans-serif; }
.pl-map.is-res .pl-uc{ opacity:1; }
.pl-uc-h{ font-weight:900; font-size:clamp(18px,10.5cqw,96px); text-transform:uppercase; letter-spacing:.04em; opacity:0; transition:opacity .6s ease; }
.pl-uc-h small{ display:block; font-size:.4em; font-weight:700; letter-spacing:.1em; color:var(--pl-mut); }
.pl-uc-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(6px,2cqw,14px); }
.pl-uc-c,.pl-uc-rest,.pl-uc-sc{ opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease; }
.pl-uc-c{ display:flex; flex-direction:column; align-items:center; padding:clamp(4px,2cqw,12px) 6px; border-radius:10px; background:var(--c,#888); color:#fff; text-align:center; }
.pl-uc-c b{ font-weight:900; font-size:clamp(26px,17cqw,170px); line-height:1; }
.pl-uc-c span{ font-weight:900; font-size:clamp(12px,6cqw,48px); }
.pl-uc-c em{ font-style:normal; font-weight:700; font-size:clamp(11px,4.6cqw,36px); color:rgba(255,255,255,.88); }
.pl-uc-c + .pl-uc-c{ transition-delay:.2s; }
.pl-uc-rest{ padding:3px 10px; border-radius:6px; background:rgba(255,255,255,.06); text-align:center; font-weight:800; font-size:clamp(11px,4.4cqw,34px); }
.pl-uc-sc{ position:relative; height:clamp(14px,4cqw,32px); border-radius:7px; background:rgba(255,255,255,.08); overflow:hidden; }
.pl-uc-sc i{ display:block; height:100%; width:0; background:var(--pl-acc); transition:width 1.4s ease; }
.pl-uc-sc small{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:clamp(10px,3.2cqw,24px); font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.pl-map.is-res .pl-uc-h,.pl-map.is-res .pl-uc-c,.pl-map.is-res .pl-uc-rest,.pl-map.is-res .pl-uc-sc{ opacity:1; transform:none; }

@media (orientation:portrait) and (max-width:900px), (max-height:520px){   /* móvil en vertical o pantalla muy baja: tarjetas sobre el mapa, como antes */
  .pl-uc{ inset:0; width:auto; transform:none; justify-content:space-between; gap:0; padding:clamp(6px,1.4vh,14px); border:0; border-radius:0; background:none; opacity:1; }
  .pl-uc-h{ font-size:clamp(16px,2.8vw,32px); }
  .pl-uc-h small{ font-size:.45em; }
  .pl-uc-cards{ gap:clamp(6px,1.2vw,14px); }
  .pl-uc-c{ padding:clamp(4px,1vh,10px) 6px; }
  .pl-uc-c b{ font-size:clamp(28px,6vw,64px); }
  .pl-uc-c span{ font-size:clamp(12px,1.8vw,20px); }
  .pl-uc-c em{ font-size:clamp(11px,1.4vw,16px); }
  .pl-uc-rest{ margin-top:6px; background:rgba(8,12,24,.55); font-size:clamp(11px,1.5vw,16px); }
  .pl-uc-sc{ margin-top:6px; background:rgba(8,12,24,.55); }
}

/* Entrada desde el mapa (comunidades y provincias) */
.pl-mi{ position:absolute; inset:0; z-index:3; display:flex; align-items:center; justify-content:center; background:var(--pl-bg); transition:opacity .6s ease; pointer-events:none; }
.pl-mi.is-out{ opacity:0; }
.pl-mi-t{ position:absolute; z-index:4; top:clamp(6px,2vh,18px); left:0; right:0; display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; pointer-events:none; transition:opacity .5s ease; }
.pl-mi-t.is-out{ opacity:0; }
.pl-mi-t span{ padding:4px 12px; border-radius:4px; background:var(--pl-red); font:900 clamp(12px,1.5vw,16px) 'Outfit',sans-serif; letter-spacing:.12em; animation:plPulse .8s ease-in-out infinite; }
.pl-mi-t b{ font:900 clamp(18px,3.4vw,38px) 'Outfit',sans-serif; text-shadow:0 2px 10px #000; }

/* Resumen horario: entrada gradual (reloj, título y eje; las barras salen después) */
.pl-res-clock,.pl-res-main .pl-title,.pl-res-plot{ opacity:0; transform:translateY(12px); transition:opacity .7s ease, transform .7s ease; }
.pl-res-main .pl-title{ transition-delay:.15s; }
.pl-res-plot{ transition-delay:.3s; }
.pl-res.is-up .pl-res-clock,.pl-res.is-up .pl-res-main .pl-title,.pl-res.is-up .pl-res-plot{ opacity:1; transform:none; }

/* Escrutinio final: sin barra de última hora ni panel lateral; «conteo finalizado» y partidos que entran por la izquierda */
.plato.is-fin{ --pl-side:0px; }
.pl-head-tag,.pl-head-txt{ transition:opacity .7s ease; }
.plato.is-fin .pl-head-tag,.plato.is-fin .pl-head-txt,.plato.is-fin .pl-side{ opacity:0; pointer-events:none; }
.pl-fin{ width:min(100%,1000px); height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:clamp(6px,1.6vh,16px); }
.pl-fin-t{ text-align:center; opacity:0; }
.pl-fin-t.is-in{ opacity:1; animation:plFinT 1s cubic-bezier(.2,.8,.3,1); }
.pl-fin-t b{ display:block; font:900 clamp(22px,4.4vw,48px) 'Outfit',sans-serif; letter-spacing:.06em; }
.pl-fin-t small{ display:inline-block; margin-top:6px; padding:3px 12px; border-radius:4px; background:var(--pl-red); font:900 clamp(11px,1.4vw,16px) 'Outfit',sans-serif; letter-spacing:.14em; }
@keyframes plFinT{ from{ opacity:0; transform:scale(1.35); letter-spacing:.3em; } to{ opacity:1; transform:none; } }
.pl-fin-st{ position:relative; width:100%; flex:1; min-height:120px; max-height:380px; }
.pl-fin-c{ position:absolute; top:0; bottom:0; opacity:0; transition:opacity .4s ease; }
.pl-fin-c.is-in{ opacity:1; }
.pl-fin-c.is-slot{ transition:opacity .4s ease, transform 1.8s cubic-bezier(.3,.7,.3,1); }
.pl-fin-c i{ position:absolute; left:14%; right:14%; bottom:26px; background:var(--c,#888); border-radius:3px 3px 0 0; }
.pl-fin-c.is-win i{ box-shadow:0 0 18px var(--c,#888); }
.pl-fin-c span{ position:absolute; left:2px; right:2px; bottom:4px; text-align:center; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:800 clamp(10px,1.2vw,13px) 'Outfit',sans-serif; }
.pl-fin-n{ position:absolute; left:0; right:0; text-align:center; font:900 clamp(18px,2.6vw,28px) 'Outfit',sans-serif; font-variant-numeric:tabular-nums; }
.pl-fin-msg{ font:800 clamp(12px,1.6vw,17px) 'Outfit',sans-serif; color:var(--pl-mut); text-align:center; opacity:0; transition:opacity .6s ease; }
.pl-fin-msg.is-in{ opacity:1; }
.pl-fin-btn{ opacity:0; transition:opacity .6s ease; margin-top:clamp(2px,1vh,10px); }
.pl-fin-btn.is-in{ opacity:1; }
.pl-fin-btn button{ padding:8px 22px; border:1px solid var(--pl-line); border-radius:8px; background:var(--pl-acc); color:#fff; font:800 clamp(12px,1.4vw,15px) 'Outfit',sans-serif; letter-spacing:.06em; cursor:pointer; }
.pl-fin-btn button:hover{ filter:brightness(1.12); }
