.puno-visual{--pv-primary:#0b3d91;--pv-bg:#08192e;margin:28px 0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033}.puno-shell{background:#fff;border:1px solid #e4e8ee;border-radius:18px;box-shadow:0 12px 36px rgba(15,32,53,.11);overflow:hidden}.puno-render{min-height:120px}.puno-loading{padding:30px;text-align:center;color:#687384}.pv-head{padding:22px 24px 12px}.pv-brand{font-size:11px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:var(--pv-primary)}.pv-title{font-size:28px;line-height:1.12;font-weight:900;letter-spacing:-.025em;margin:5px 0 0}.pv-subtitle{font-size:15px;line-height:1.5;color:#5c6776;margin:8px 0 0}.pv-body{padding:16px 24px 24px}.pv-foot{border-top:1px solid #edf0f4;padding:11px 24px 15px;display:flex;gap:8px 18px;flex-wrap:wrap;color:#667181;font-size:12px}.pv-foot small{flex-basis:100%}.pv-svg{width:100%;height:auto;display:block}.pv-bars-list{display:grid;gap:12px}.pv-bar-row{display:grid;grid-template-columns:minmax(100px,1fr) 3fr auto;gap:10px;align-items:center}.pv-bar-label{font-weight:800}.pv-track{height:12px;border-radius:999px;background:#edf1f5;overflow:hidden}.pv-fill{height:100%;border-radius:999px}.pv-val{font-weight:900}.pv-kpi{text-align:center;padding:28px}.pv-kpi .value{font-size:64px;font-weight:950;line-height:1;color:var(--pv-primary);letter-spacing:-.05em}.pv-kpi .label{font-size:18px;font-weight:800;margin-top:8px}.pv-people{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.pv-person{border:1px solid #e6eaf0;border-radius:16px;padding:16px;text-align:center;background:#fff}.pv-person img{width:82px;height:82px;border-radius:50%;object-fit:cover}.pv-person .name{font-weight:900;margin-top:10px}.pv-person .value{font-size:28px;font-weight:950;color:var(--pv-primary)}.pv-election{background:linear-gradient(145deg,var(--pv-bg),#102b49);color:#fff;border-radius:18px;overflow:hidden}.pv-election-top{padding:18px 22px 10px;text-align:center;background:rgba(0,0,0,.15)}.pv-election-kicker{font-size:33px;font-weight:950;letter-spacing:.02em}.pv-election-progress{font-size:19px;font-weight:900;margin-top:2px}.pv-election-tabs{display:grid;grid-template-columns:1fr 1.6fr;margin:0 22px;background:#0b1728;border-top:2px solid rgba(255,255,255,.2)}.pv-election-tabs div{padding:8px 12px;text-align:center;font-weight:900;text-transform:uppercase}.pv-election-tabs div:last-child{background:#fff;color:#111827}.pv-candidates{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;padding:12px 18px 18px}.pv-candidate{position:relative;border:2px solid rgba(255,255,255,.75);background:rgba(255,255,255,.05);overflow:hidden}.pv-candidate-photo{height:170px;background:#162b42;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.pv-candidate-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}.pv-party-logo{position:absolute;top:8px;right:8px;width:38px;height:38px;object-fit:contain;background:rgba(255,255,255,.9);border-radius:6px;padding:3px}.pv-candidate-name{font-size:18px;font-weight:950;text-transform:uppercase;padding:6px 8px 0;line-height:1}.pv-candidate-party{font-size:10px;font-weight:800;text-transform:uppercase;padding:4px 8px 6px;min-height:26px}.pv-candidate-value{font-size:38px;font-weight:950;padding:7px 8px 10px;line-height:1}.pv-candidate-value small{font-size:16px}.pv-match-carousel{position:relative}.pv-match-strip{display:flex;gap:12px;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:6px}.pv-match-card{scroll-snap-align:start;min-width:270px;border:1px solid #e6eaf0;border-radius:16px;padding:14px;background:#fff}.pv-match-datetime{text-align:center;font-size:12px;font-weight:800;color:#697586;margin-bottom:10px}.pv-match-teams{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;text-align:center}.pv-match-team img{width:48px;height:48px;object-fit:contain}.pv-match-team b{display:block;margin-top:5px}.pv-score{font-size:25px;font-weight:950;white-space:nowrap}.pv-venue{text-align:center;margin-top:9px;font-size:11px;color:#6d7784}.pv-standings{width:100%;border-collapse:collapse}.pv-standings th,.pv-standings td{padding:10px;border-bottom:1px solid #edf0f4;text-align:left}.pv-standings th:last-child,.pv-standings td:last-child{text-align:right}.pv-team-inline{display:flex;align-items:center;gap:8px}.pv-team-inline img{width:24px;height:24px;object-fit:contain}.pv-pitch-wrap{max-width:760px;margin:auto}.pv-pitch{position:relative;aspect-ratio:68/105;background:repeating-linear-gradient(0deg,#159447 0,#159447 8%,#11863f 8%,#11863f 16%);border:4px solid #fff;box-shadow:0 0 0 1px #0c6e35;border-radius:10px;overflow:hidden}.pv-pitch:before{content:"";position:absolute;inset:0;background:linear-gradient(#fff,#fff) 50% 50%/100% 2px no-repeat,radial-gradient(circle at 50% 50%,transparent 0 9%,#fff 9.2% 10%,transparent 10.2%)}.pv-pitch:after{content:"";position:absolute;left:20%;right:20%;top:-1px;height:16%;border:2px solid #fff;border-top:0;box-shadow:0 calc(105/68 * 100cqw - 2px) 0 -0 #fff}.pv-player{position:absolute;transform:translate(-50%,-50%);z-index:2;text-align:center;cursor:pointer}.pv-player-badge{width:44px;height:44px;border-radius:50%;background:var(--pv-primary);border:3px solid #fff;color:#fff;display:grid;place-items:center;font-weight:950;box-shadow:0 3px 10px rgba(0,0,0,.35);overflow:hidden}.pv-player-badge img{width:100%;height:100%;object-fit:cover}.pv-player-name{background:rgba(3,23,13,.82);color:#fff;font-size:10px;font-weight:800;padding:2px 5px;border-radius:5px;margin-top:3px;white-space:nowrap}.pv-player-tip{display:none;position:absolute;left:50%;top:52px;transform:translateX(-50%);background:#fff;color:#111827;padding:7px 9px;border-radius:7px;box-shadow:0 6px 20px rgba(0,0,0,.25);font-size:11px;min-width:120px}.pv-player.active .pv-player-tip{display:block}.pv-map-wrap{position:relative}.pv-map-svg{width:100%;height:auto;min-height:320px}.pv-region{stroke:#fff;stroke-width:.7;cursor:pointer;transition:opacity .15s,filter .15s}.pv-region:hover{filter:brightness(1.08);opacity:.95}.pv-map-tip{position:absolute;display:none;pointer-events:none;background:#111827;color:#fff;padding:8px 10px;border-radius:7px;font-size:12px;box-shadow:0 6px 20px rgba(0,0,0,.2)}.pv-carousel{position:relative}.pv-carousel-track{display:flex;overflow:hidden}.pv-slide{min-width:100%;padding:4px}.pv-slide-card{display:grid;grid-template-columns:1fr 1.4fr;gap:16px;align-items:center}.pv-slide-card img{width:100%;height:220px;object-fit:cover;border-radius:14px}.pv-slide-card h3{font-size:24px;margin:0}.pv-carousel-controls{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.pv-carousel-controls button{border:0;background:var(--pv-primary);color:#fff;border-radius:999px;width:38px;height:38px;font-size:20px;cursor:pointer}.puno-auto-header .puno-visual{margin:0}.puno-auto-header .puno-shell{border-radius:0}.puno-auto-sticky{position:fixed;left:16px;right:16px;bottom:16px;z-index:99999;max-width:1180px;margin:auto}.puno-auto-sticky .puno-visual{margin:0}.puno-auto-sticky .puno-shell{box-shadow:0 15px 50px rgba(0,0,0,.28)}.puno-sticky-close{position:absolute;right:-8px;top:-10px;z-index:3;border:0;background:#111827;color:#fff;width:30px;height:30px;border-radius:50%;font-size:20px;cursor:pointer}.puno-mode-sticky .pv-head{display:none}.puno-mode-sticky .pv-body{padding:10px 14px}.puno-mode-sticky .pv-foot{display:none}@media(max-width:700px){.pv-title{font-size:22px}.pv-head,.pv-body{padding-left:16px;padding-right:16px}.pv-election-kicker{font-size:25px}.pv-election-progress{font-size:15px}.pv-election-tabs{margin:0 10px}.pv-candidates{display:flex;overflow:auto;scroll-snap-type:x mandatory;padding:10px}.pv-candidate{min-width:170px;scroll-snap-align:start}.pv-candidate-photo{height:165px}.pv-match-card{min-width:230px}.pv-slide-card{grid-template-columns:1fr}.puno-auto-sticky{left:6px;right:6px;bottom:6px}.puno-mode-sticky .pv-match-card{min-width:210px}.pv-player-badge{width:38px;height:38px}.pv-player-name{font-size:9px}}
/* 0.2.1 - orientación y adaptación real */
.puno-width-full{width:100%}
.puno-width-contained{max-width:860px;margin-left:auto;margin-right:auto}
.puno-width-wide{max-width:1280px;margin-left:auto;margin-right:auto}
.puno-layout-horizontal .puno-shell{width:100%}
.puno-layout-horizontal .pv-head{display:grid;grid-template-columns:minmax(240px,1fr) minmax(280px,1.3fr);gap:18px;align-items:end}
.puno-layout-horizontal .pv-head .pv-brand{grid-column:1/-1}
.puno-layout-horizontal .pv-title{font-size:30px}
.puno-layout-horizontal .pv-subtitle{margin:0}
.puno-layout-horizontal .pv-election-top{display:flex;align-items:center;justify-content:space-between;gap:18px;text-align:left}
.puno-layout-horizontal .pv-election-kicker{font-size:34px}
.puno-layout-horizontal .pv-election-progress{margin:0;white-space:nowrap}
.puno-layout-horizontal .pv-candidates{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory}
.puno-layout-horizontal .pv-candidate{flex:1 0 170px;min-width:170px;scroll-snap-align:start}
.puno-layout-horizontal .pv-match-strip{display:flex;overflow-x:auto}
.puno-layout-horizontal .pv-match-card{min-width:290px}
.puno-layout-horizontal .pv-people{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}
.puno-layout-horizontal .pv-person{min-width:170px;scroll-snap-align:start}
.puno-layout-horizontal .pv-pitch-wrap{max-width:1000px}
.puno-layout-horizontal .pv-pitch{aspect-ratio:105/68}
.puno-layout-horizontal .pv-slide-card{grid-template-columns:1fr 1.6fr}
.puno-layout-vertical .puno-shell{max-width:760px;margin-left:auto;margin-right:auto}
.puno-layout-vertical .pv-candidates{grid-template-columns:repeat(2,minmax(0,1fr))}
.puno-layout-vertical .pv-match-strip{display:grid;grid-template-columns:1fr}
.puno-layout-compact .pv-head{padding:10px 14px 6px}
.puno-layout-compact .pv-title{font-size:18px}
.puno-layout-compact .pv-subtitle{display:none}
.puno-layout-compact .pv-body{padding:8px 12px}
.puno-layout-compact .pv-foot{display:none}
.puno-layout-compact .pv-election-top{padding:8px 12px}
.puno-layout-compact .pv-election-kicker{font-size:20px}
.puno-layout-compact .pv-election-progress{font-size:12px}
.puno-layout-compact .pv-candidate-photo{height:100px}
.puno-layout-compact .pv-candidate-name{font-size:13px}
.puno-layout-compact .pv-candidate-value{font-size:26px}
.puno-layout-compact .pv-match-card{min-width:210px;padding:9px}
.puno-layout-compact .pv-team-inline img,.puno-layout-compact .pv-match-team img{width:32px;height:32px}
@media (min-width:901px){
  .puno-layout-auto .pv-election .pv-candidates{grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}
  .puno-layout-auto .pv-match-strip{display:flex}
  .puno-layout-auto .pv-people{display:grid}
}
@media (max-width:900px){
  .puno-layout-horizontal .pv-head{grid-template-columns:1fr}
  .puno-layout-horizontal .pv-head .pv-brand{grid-column:auto}
  .puno-layout-horizontal .pv-title{font-size:24px}
  .puno-layout-horizontal .pv-election-top{display:block;text-align:center}
  .puno-layout-horizontal .pv-election-progress{margin-top:4px}
  .puno-layout-horizontal .pv-pitch{aspect-ratio:68/105}
}
@media (max-width:640px){
  .puno-visual{margin:18px 0}
  .puno-layout-horizontal .pv-candidates,
  .puno-layout-auto .pv-candidates{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px}
  .puno-layout-horizontal .pv-candidate,
  .puno-layout-auto .pv-candidate{min-width:160px;flex:0 0 160px}
  .puno-layout-vertical .pv-candidates{grid-template-columns:1fr}
  .puno-layout-horizontal .pv-people,
  .puno-layout-auto .pv-people{display:flex;overflow-x:auto}
  .puno-layout-horizontal .pv-person,
  .puno-layout-auto .pv-person{min-width:150px;flex:0 0 150px}
  .puno-layout-horizontal .pv-match-card,
  .puno-layout-auto .pv-match-card{min-width:220px}
  .puno-layout-horizontal .pv-slide-card{grid-template-columns:1fr}
  .puno-layout-horizontal .pv-pitch{aspect-ratio:68/105}
  .pv-election-tabs{grid-template-columns:1fr 1fr}
  .pv-election-tabs div{font-size:12px}
}

/* 0.3.0 — diseño plano editorial. Sin bordes redondeados. */
.puno-visual *,
.puno-auto-sticky *,
.puno-auto-header *{border-radius:0!important}
.puno-shell{border-radius:0!important;box-shadow:0 8px 28px rgba(15,32,53,.10)}
.pv-election{border-radius:0!important}
.pv-candidate,.pv-match-card,.pv-person,.pv-before-card,.pv-slide-card img,.pv-player-tip{border-radius:0!important}
.pv-head{border-left:5px solid var(--pv-primary);background:#fff}
.pv-brand{font-size:10px;letter-spacing:.15em}
.pv-title{font-size:29px}
.pv-body{background:#fff}
.pv-foot{background:#f6f8fa}
.pv-election{background:linear-gradient(135deg,var(--pv-bg),#0b2a4c)}
.pv-candidate{border-width:1px;border-top-width:5px}
.pv-candidate-photo{height:205px}
.pv-candidate-name{font-size:19px;letter-spacing:-.01em}
.pv-candidate-party{font-size:10px;letter-spacing:.03em}
.pv-candidate-value{font-size:42px}
.pv-party-logo{border-radius:0!important;background:#fff}
.pv-match-card{border-left:4px solid var(--pv-primary);box-shadow:none}
.pv-pitch{border-radius:0!important}
.pv-player{background:transparent;border:0;padding:0}
.pv-player-badge{border-radius:0!important;background:#0a315e;border:3px solid #fff}
.pv-player-large .pv-player-badge{width:68px;height:68px}
.pv-player-normal .pv-player-badge{width:54px;height:54px}
.pv-player-compact .pv-player-badge{width:42px;height:42px}
.pv-player-name{border-radius:0!important;font-size:11px;padding:3px 6px}
.pv-player-role{display:block;background:#fff;color:#10243a;font-size:9px;font-weight:900;text-transform:uppercase;padding:2px 4px;margin-top:1px;white-space:nowrap;border:1px solid #d8e0e8}
.pv-map-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.8fr);border:1px solid #d5dde6}
.pv-map-stage{background:#eef2f6;padding:12px;min-height:430px;display:flex;align-items:center;justify-content:center}
.pv-map-svg{width:100%;height:auto;max-height:650px}
.pv-region{stroke:#fff;stroke-width:2;cursor:pointer;transition:filter .15s}
.pv-region:hover{filter:brightness(.92)}
.pv-map-label{font-size:9px;font-weight:800;text-anchor:middle;pointer-events:none;fill:#213043}
.pv-map-point{cursor:pointer}
.pv-map-point text{font-size:11px;font-weight:800;fill:#1c2a39;paint-order:stroke;stroke:#fff;stroke-width:3px}
.pv-route{fill:none;stroke:var(--pv-primary);stroke-width:4;stroke-dasharray:8 6}
.pv-map-info{background:#fff;border-left:1px solid #d5dde6;min-height:430px}
.pv-map-placeholder{padding:24px;color:#667382;font-size:13px;line-height:1.5}
.pv-map-card img{width:100%;height:210px;object-fit:cover;display:block}
.pv-map-card-copy{padding:18px}
.pv-map-card h3{font-size:23px;margin:0 0 8px;color:#10233d}
.pv-map-card-value{font-size:30px;font-weight:950;color:var(--pv-primary);margin-bottom:8px}
.pv-map-card p{font-size:14px;line-height:1.55;color:#4d5a68;margin:0}
@media(max-width:760px){
  .pv-map-layout{grid-template-columns:1fr}
  .pv-map-info{border-left:0;border-top:1px solid #d5dde6;min-height:0}
  .pv-map-stage{min-height:300px;padding:6px}
  .pv-candidate-photo{height:185px}
  .pv-player-large .pv-player-badge{width:52px;height:52px}
  .pv-player-name{font-size:9px}
  .pv-player-role{font-size:8px}
}

/* PortalUno 0.4.0 — cartografía profesional */
.puno-leaflet-map{height:520px;width:100%;background:#dce7ef;z-index:1}
.pv-map-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(270px,.75fr);border:1px solid #cbd5df;background:#fff}
.pv-map-stage{padding:0!important;min-height:520px!important;background:#dce7ef!important;display:block!important}
.pv-map-info{min-height:520px;border-left:1px solid #cbd5df;background:#fff}
.pv-map-placeholder{padding:24px;color:#5b6878;line-height:1.55;font-size:14px}
.pv-map-card img{width:100%;height:240px;object-fit:cover;display:block}
.pv-map-card-copy{padding:20px}
.pv-map-card h3{font-size:25px;line-height:1.1;margin:0 0 10px;color:#0d2138}
.pv-map-card-value{font-size:34px;font-weight:950;color:var(--pv-primary);margin-bottom:10px}
.pv-map-card p{font-size:14px;line-height:1.6;color:#445264;margin:0}
.puno-map-label-icon{background:transparent!important;border:0!important;box-shadow:none!important}
.puno-map-label-icon span{display:block;transform:translate(-50%,-50%);font-size:10px;font-weight:900;line-height:1;color:#132238;text-shadow:-1px -1px 0 rgba(255,255,255,.9),1px -1px 0 rgba(255,255,255,.9),-1px 1px 0 rgba(255,255,255,.9),1px 1px 0 rgba(255,255,255,.9);white-space:nowrap;pointer-events:none}
.puno-map-hover{border:0!important;border-radius:0!important;background:#0b2038!important;color:#fff!important;box-shadow:none!important;font-weight:800!important}
.pv-map-error{padding:34px;background:#f4f6f8;color:#5d6875;border-left:5px solid #d71920}
.puno-marker-wrap{background:transparent!important;border:0!important}
.puno-marker{position:relative;display:block;width:34px;height:34px}
.puno-marker>span{position:absolute;left:9px;top:9px;width:16px;height:16px;background:var(--marker);border:3px solid #fff;box-shadow:0 2px 7px rgba(0,0,0,.35)}
.puno-marker.is-city>span{width:12px;height:12px;left:11px;top:11px;background:var(--marker)}
.puno-marker.is-epicenter>span{width:18px;height:18px;left:8px;top:8px;background:#e00000}
.puno-marker.is-alert:before{content:"";position:absolute;inset:2px;border:3px solid var(--marker);animation:punoPulse 1.45s infinite;opacity:.8}
.puno-marker.is-alert:after{content:"";position:absolute;inset:7px;border:2px solid var(--marker);animation:punoPulse 1.45s .45s infinite;opacity:.7}
@keyframes punoPulse{0%{transform:scale(.45);opacity:.95}100%{transform:scale(1.55);opacity:0}}
.pv-event-strip{display:flex;align-items:center;gap:9px;background:#b9000b;color:#fff;padding:9px 14px;text-transform:uppercase;font-size:12px;font-weight:950;letter-spacing:.08em}
.pv-live-dot{width:10px;height:10px;background:#fff;display:inline-block;animation:punoLive 1s infinite}
@keyframes punoLive{50%{opacity:.25}}
.leaflet-control-attribution{font-size:9px!important}
.leaflet-container{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{border-radius:0!important}
.pv-lineup-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,.7fr);border:1px solid #cbd5df;background:#fff}
.pv-pitch-wrap{max-width:none!important;margin:0!important;padding:16px;background:#0d6934}
.pv-pitch-attack_up .pv-pitch{aspect-ratio:68/105}
.pv-pitch-attack_right .pv-pitch{aspect-ratio:105/68}
.pv-player-card{border-left:1px solid #cbd5df;background:#fff;min-height:300px}
.pv-player-profile img{width:100%;height:260px;object-fit:cover;display:block;object-position:center top}
.pv-player-profile>div{padding:18px}
.pv-player-profile-num{font-size:12px;font-weight:900;color:var(--pv-primary);text-transform:uppercase}
.pv-player-profile h3{font-size:25px;margin:3px 0 6px;color:#10233d}
.pv-player-profile strong{font-size:13px;text-transform:uppercase;color:#536174}
.pv-player-profile p{font-size:14px;line-height:1.5;color:#475568}
@media(max-width:800px){.pv-map-layout,.pv-lineup-layout{grid-template-columns:1fr}.pv-map-info,.pv-player-card{border-left:0;border-top:1px solid #cbd5df;min-height:0}.puno-leaflet-map,.pv-map-stage{height:390px;min-height:390px!important}.pv-map-card img{height:210px}.pv-player-profile{display:grid;grid-template-columns:160px 1fr}.pv-player-profile img{height:190px}.pv-pitch-wrap{padding:8px}}
@media(max-width:520px){.puno-leaflet-map,.pv-map-stage{height:330px;min-height:330px!important}.pv-player-profile{grid-template-columns:1fr}.pv-player-profile img{height:230px}}
\n/* PortalUno Visuales 0.4.1 — integración editorial y mapas de gran formato */
.puno-visual{margin:30px 0;color:inherit;font-family:inherit}
.puno-shell{background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible!important}
.pv-head{background:transparent!important;border-left:0!important;border-bottom:1px solid rgba(40,55,70,.18);padding:0 0 16px!important}
.pv-body{background:transparent!important;padding:20px 0 22px!important}
.pv-foot{background:transparent!important;padding:13px 0 0!important;border-top:1px solid rgba(40,55,70,.18)!important;color:#344556!important;font-size:13.5px!important}
.pv-brand{font-size:11px!important;color:var(--pv-primary)!important;letter-spacing:.14em!important}
.pv-title{font-size:clamp(30px,3vw,42px)!important;line-height:1.08!important;color:#13263a!important;font-weight:900!important;letter-spacing:-.03em!important}
.pv-subtitle{font-size:clamp(17px,1.45vw,20px)!important;line-height:1.48!important;color:#26394c!important;font-weight:600!important;margin-top:10px!important;max-width:1050px}
.pv-foot small{font-size:13px!important;color:#425467!important}

/* Los mapas ocupan el ancho disponible. La ficha pasa debajo, no al costado. */
.pv-map-layout{display:block!important;border:0!important;background:transparent!important}
.pv-map-stage{width:100%!important;height:auto!important;min-height:0!important;background:#dce7ef!important;border:0!important}
.puno-leaflet-map{height:clamp(650px,76vh,900px)!important;width:100%!important;background:#dce7ef!important}
.pv-map-info{min-height:0!important;border:0!important;border-top:1px solid rgba(40,55,70,.2)!important;background:transparent!important}
.pv-map-placeholder{padding:15px 0!important;color:#33485b!important;font-size:16px!important;line-height:1.55!important}
.pv-map-card{display:grid;grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr);gap:0;background:transparent!important;border:0!important}
.pv-map-card img{height:280px!important;width:100%!important;object-fit:cover!important}
.pv-map-card-copy{padding:20px 0 10px 26px!important}
.pv-map-card h3{font-size:clamp(26px,2.3vw,34px)!important;color:#14283d!important;margin-bottom:10px!important}
.pv-map-card-value{font-size:clamp(32px,3vw,44px)!important}
.pv-map-card p{font-size:17px!important;line-height:1.62!important;color:#2e4357!important}
.puno-map-label-icon span{font-size:12px!important;color:#12283d!important;text-shadow:-1px -1px 0 rgba(255,255,255,.96),1px -1px 0 rgba(255,255,255,.96),-1px 1px 0 rgba(255,255,255,.96),1px 1px 0 rgba(255,255,255,.96)!important}
.puno-map-hover{font-size:13px!important;padding:7px 9px!important}

/* Marcador de evento: núcleo circular grande + ondas reales hacia afuera. */
.puno-marker-wrap{overflow:visible!important}
.puno-marker{width:76px!important;height:76px!important;overflow:visible!important}
.puno-marker>span{left:24px!important;top:24px!important;width:28px!important;height:28px!important;border:4px solid #fff!important;background:var(--marker)!important;border-radius:50%!important;box-shadow:0 0 0 2px rgba(140,0,0,.16),0 3px 12px rgba(0,0,0,.38)!important;z-index:3}
.puno-marker.is-city{width:40px!important;height:40px!important}
.puno-marker.is-city>span{left:12px!important;top:12px!important;width:16px!important;height:16px!important;border-radius:50%!important}
.puno-marker.is-alert:before,.puno-marker.is-alert:after{content:"";position:absolute!important;left:18px!important;top:18px!important;width:40px!important;height:40px!important;border:4px solid var(--marker)!important;border-radius:50%!important;box-sizing:border-box!important;opacity:.9!important;z-index:1!important;animation:punoRadarWave 1.8s cubic-bezier(.12,.62,.38,1) infinite!important}
.puno-marker.is-alert:after{animation-delay:.6s!important}
.puno-marker.is-epicenter>span{background:#e00000!important;width:30px!important;height:30px!important;left:23px!important;top:23px!important;animation:punoEpicenterCore .9s ease-in-out infinite alternate!important}
@keyframes punoRadarWave{0%{transform:scale(.5);opacity:.95}70%{opacity:.28}100%{transform:scale(2.05);opacity:0}}
@keyframes punoEpicenterCore{from{transform:scale(.92);box-shadow:0 0 0 2px rgba(224,0,0,.18),0 3px 12px rgba(0,0,0,.38)}to{transform:scale(1.12);box-shadow:0 0 0 6px rgba(224,0,0,.18),0 4px 16px rgba(0,0,0,.42)}}
.pv-event-strip{font-size:14px!important;padding:11px 0!important;background:transparent!important;color:#a9000a!important;border-top:3px solid #b9000b!important;border-bottom:1px solid rgba(185,0,11,.25)!important}
.pv-live-dot{width:13px!important;height:13px!important;background:#d5000b!important;border-radius:50%!important;box-shadow:0 0 0 5px rgba(213,0,11,.12)!important}

/* Módulos con fondo propio mantienen su identidad, sin sumar una tarjeta exterior. */
.pv-election{box-shadow:none!important}
.puno-mode-sticky .puno-shell{background:var(--wp--preset--color--base, #fff)!important;border-top:3px solid var(--pv-primary)!important;padding:0 12px!important}

@media(max-width:900px){
  .puno-leaflet-map{height:580px!important}
  .pv-map-card{grid-template-columns:220px 1fr}
  .pv-map-card img{height:240px!important}
}
@media(max-width:640px){
  .puno-visual{margin:22px 0}
  .pv-title{font-size:29px!important}
  .pv-subtitle{font-size:17px!important;color:#26394c!important}
  .puno-leaflet-map{height:480px!important}
  .pv-map-card{grid-template-columns:1fr!important}
  .pv-map-card img{height:240px!important}
  .pv-map-card-copy{padding:16px 0 8px!important}
  .puno-map-label-icon span{font-size:10px!important}
}
@media(max-width:430px){.puno-leaflet-map{height:420px!important}}

/* 0.5.0 — Loterías Uruguay */
.pv-lottery{--lotto-navy:#071b31;--lotto-gold:#e9bd13;--lotto-blue:#0b3d91}
.pv-lotto-head{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:3px solid var(--pv-primary);padding:2px 0 16px;margin-bottom:18px}
.pv-lotto-logo{max-width:150px;max-height:82px;object-fit:contain;display:block}
.pv-lotto-wordmark{font-size:34px;font-weight:950;letter-spacing:-.04em;text-transform:uppercase;line-height:1;color:#10233d}
.pv-lotto-wordmark:before{content:'';display:inline-block;width:10px;height:32px;background:var(--pv-primary);margin-right:10px;vertical-align:-4px}
.pv-lotto-quiniela:before{background:#1370b8}.pv-lotto-tombola:before{background:#d81b60}
.pv-lotto-meta{text-align:right}.pv-lotto-meta strong{display:block;font-size:14px;text-transform:uppercase;letter-spacing:.05em;color:#16283b}.pv-lotto-meta span{display:block;font-size:14px;color:#4b5968;margin-top:4px}
.pv-lotto-section{padding:8px 0 20px;border-bottom:1px solid #cdd6df}.pv-lotto-section-title{font-size:18px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#15283d;margin-bottom:12px}
.pv-lotto-balls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pv-lotto-ball,.pv-tombola-ball{width:64px;height:64px;border:3px solid #13283e;border-radius:50%!important;display:inline-flex;align-items:center;justify-content:center;font-size:25px;font-weight:950;background:#fff;color:#0b2036;box-sizing:border-box}
.pv-lotto-extra-wrap{display:flex;align-items:center;gap:7px;margin-left:12px}.pv-lotto-extra-wrap small{font-size:11px;text-transform:uppercase;font-weight:900;color:#5d6875}.pv-lotto-extra{border-color:#d5a900;background:#f8d94c}.pv-lotto-rev-ball{border-color:#0b5798}
.pv-lotto-jackpots{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#cdd6df;border-top:1px solid #cdd6df;border-bottom:1px solid #cdd6df;margin-top:18px}.pv-lotto-jackpots>div,.pv-lotto-one-jackpot{background:transparent;padding:12px 0}.pv-lotto-jackpots>div{background:#fff;padding:14px}.pv-lotto-jackpots span,.pv-lotto-one-jackpot span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#596675}.pv-lotto-jackpots strong,.pv-lotto-one-jackpot strong{font-size:24px;color:#10243a}
.pv-lotto-revancha{padding-top:20px}.pv-lotto-one-jackpot{margin-top:10px}
.pv-quiniela-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid #d3dbe4;border-left:1px solid #d3dbe4}.pv-quiniela-item{padding:13px;border-right:1px solid #d3dbe4;border-bottom:1px solid #d3dbe4;display:flex;align-items:baseline;justify-content:space-between;gap:8px}.pv-quiniela-item span{font-size:11px;color:#6b7684;font-weight:800}.pv-quiniela-item strong{font-size:25px;letter-spacing:.04em;color:#10233d}
.pv-tombola-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:10px}.pv-tombola-ball{width:58px;height:58px;font-size:21px;border-width:2px;border-color:#d81b60}
.pv-lotto-check{margin-top:22px;padding:18px 0;border-top:3px solid #10233d;border-bottom:1px solid #d5dde6}.pv-lotto-check h3{margin:0 0 3px;font-size:22px;color:#10233d}.pv-lotto-check p{margin:0 0 12px;color:#3f4d5b;font-size:15px}.pv-lotto-check-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;max-width:650px}.pv-lotto-input{min-height:46px;border:1px solid #8795a4!important;border-radius:0!important;padding:9px 12px;font-size:17px}.pv-lotto-check-btn{border:0;border-radius:0!important;background:#0b3d91;color:#fff;padding:0 20px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;cursor:pointer}.pv-lotto-check-result{margin-top:12px;font-size:15px;line-height:1.55;color:#172b40}.pv-lotto-next{font-size:15px;margin-top:16px;color:#26384b}.pv-lotto-source{margin-top:18px;font-size:12px;color:#64707d;line-height:1.45}.pv-lotto-source a{color:inherit;text-decoration:underline}
@media(max-width:760px){.pv-lotto-head{align-items:flex-start}.pv-lotto-logo{max-width:105px;max-height:64px}.pv-lotto-wordmark{font-size:27px}.pv-lotto-meta{font-size:12px}.pv-lotto-ball{width:52px;height:52px;font-size:20px}.pv-lotto-jackpots{grid-template-columns:1fr}.pv-quiniela-grid{grid-template-columns:repeat(4,1fr)}.pv-tombola-grid{grid-template-columns:repeat(5,1fr)}.pv-tombola-ball{width:50px;height:50px}.pv-lotto-check-row{grid-template-columns:1fr}.pv-lotto-check-btn{min-height:44px}}
@media(max-width:430px){.pv-quiniela-grid{grid-template-columns:repeat(2,1fr)}.pv-lotto-balls{gap:8px}.pv-lotto-ball{width:48px;height:48px;font-size:18px}.pv-lotto-extra-wrap{margin-left:0}}


/* 0.5.1 — evento: clic en marcador lleva a la ficha informativa */
.pv-map-info{scroll-margin-top:96px;outline:0}
.pv-map-info-active{position:relative}
.pv-event-detail{border-top:4px solid #c9000b;padding-top:0;background:transparent}
.pv-event-detail-kicker{
  display:inline-block;
  background:#c9000b;
  color:#fff;
  font-size:12px;
  line-height:1;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:9px 12px;
  margin:0 0 14px;
}
.pv-event-detail .pv-map-card{border:0!important}
.pv-event-detail .pv-map-card h3{font-size:clamp(29px,2.7vw,38px)!important}
.pv-event-detail .pv-map-card p{font-size:18px!important;line-height:1.62!important}
@media(max-width:640px){
  .pv-map-info{scroll-margin-top:72px}
  .pv-event-detail-kicker{font-size:11px;padding:8px 10px}
  .pv-event-detail .pv-map-card p{font-size:17px!important}
}


/* 0.5.3 — marcadores de evento dibujados nativamente por Leaflet */
.puno-leaflet-map .leaflet-marker-pane,
.puno-leaflet-map .leaflet-overlay-pane{
  pointer-events:auto;
}
.puno-leaflet-map .leaflet-interactive{
  cursor:pointer;
}
.pv-event-strip + .pv-map-layout .puno-leaflet-map{
  position:relative;
}


/* 0.5.4 — mapas universales + eventos robustos */
.puno-leaflet-map{min-height:620px!important}
.puno-leaflet-map .leaflet-overlay-pane svg{overflow:visible}
.puno-leaflet-map path.leaflet-interactive{vector-effect:non-scaling-stroke}
.pv-event-strip{font-size:14px!important;font-weight:900!important}
@media(min-width:1000px){
  .puno-layout-horizontal .puno-leaflet-map,
  .puno-width-wide .puno-leaflet-map{min-height:760px!important}
}
@media(max-width:700px){
  .puno-leaflet-map{min-height:460px!important}
}

/* 0.5.6 — eventos siempre visibles y módulos desacoplados */
.pv-event-card-kind{
  display:inline-block;
  margin:0 0 10px;
  padding:8px 11px;
  background:#d71920;
  color:#fff;
  font-size:12px;
  line-height:1;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.puno-leaflet-map .leaflet-overlay-pane{z-index:400!important}
.puno-leaflet-map .leaflet-marker-pane{z-index:650!important}
.puno-leaflet-map .leaflet-tooltip-pane{z-index:700!important}


/* 0.5.7 — MARCADOR DE EVENTO GARANTIZADO */
.puno-leaflet-map .leaflet-pane.puno-event-pane,
.puno-leaflet-map .leaflet-punoEventPane-pane{
  z-index:1000!important;
  pointer-events:auto!important;
}
.puno-leaflet-map .puno-event-icon{
  display:block!important;
  width:96px!important;
  height:96px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.puno-leaflet-map .puno-event-pin{
  display:block!important;
  position:relative!important;
  width:96px!important;
  height:96px!important;
  opacity:1!important;
  visibility:visible!important;
  overflow:visible!important;
  pointer-events:auto!important;
}
.puno-leaflet-map .puno-event-pin b{
  display:block!important;
  position:absolute!important;
  left:34px!important;
  top:34px!important;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  min-height:28px!important;
  padding:0!important;
  margin:0!important;
  border:5px solid #fff!important;
  border-radius:50%!important;
  background:#d71920!important;
  box-shadow:0 3px 14px rgba(0,0,0,.42),0 0 0 3px rgba(215,25,32,.25)!important;
  opacity:1!important;
  visibility:visible!important;
  z-index:4!important;
}
.puno-leaflet-map .puno-event-pin.is-epicenter b{
  left:31px!important;
  top:31px!important;
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  min-height:34px!important;
  animation:punoEventCore .8s ease-in-out infinite alternate!important;
}
.puno-leaflet-map .puno-event-wave{
  display:block!important;
  position:absolute!important;
  left:28px!important;
  top:28px!important;
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  min-height:40px!important;
  padding:0!important;
  margin:0!important;
  border:4px solid #d71920!important;
  border-radius:50%!important;
  background:transparent!important;
  box-sizing:border-box!important;
  opacity:.9!important;
  visibility:visible!important;
  pointer-events:none!important;
  z-index:2!important;
  animation:punoEventRadar 1.8s cubic-bezier(.12,.62,.38,1) infinite!important;
}
.puno-leaflet-map .puno-event-wave.w2{
  animation-delay:.6s!important;
}
@keyframes punoEventRadar{
  0%{transform:scale(.65);opacity:.92}
  70%{opacity:.30}
  100%{transform:scale(2.25);opacity:0}
}
@keyframes punoEventCore{
  from{transform:scale(.90)}
  to{transform:scale(1.12)}
}
.pv-event-location-error{
  padding:20px 0;
  border-top:4px solid #d71920;
  color:#19293a;
}
.pv-event-location-error strong{font-size:19px}
.pv-event-location-error p{font-size:16px;line-height:1.55;margin:7px 0 0}
