.weather-pin{position:absolute;transform:translate(calc(-50% + var(--ox,0px)),calc(-50% + var(--oy,0px))) scale(var(--pin-scale,1));display:flex;align-items:center;justify-content:center;gap:3px;min-width:38px;height:27px;border:1px solid rgba(238,247,255,.28);border-radius:999px;padding:3px 7px;background:linear-gradient(135deg,rgba(3,10,21,.92),rgba(10,32,56,.84));color:var(--text);box-shadow:0 7px 16px rgba(0,0,0,.30),0 0 0 1px rgba(2,8,18,.42);backdrop-filter:blur(7px);transition:border-color .12s ease,background .12s ease,box-shadow .12s ease;z-index:4;will-change:border-color,background,box-shadow}.weather-pin:hover,.weather-pin:focus{z-index:50;border-color:rgba(34,211,238,.82);background:linear-gradient(135deg,rgba(5,20,36,.96),rgba(14,48,78,.90));box-shadow:0 0 0 2px rgba(34,211,238,.18),0 8px 18px rgba(0,0,0,.36);outline:none}.weather-pin[data-selected=true]{z-index:60;border-color:var(--gold);box-shadow:0 0 0 3px rgba(255,209,102,.18),0 8px 20px rgba(0,0,0,.40)}.weather-pin.hidden-collision{display:none}.weather-pin.is-fixed-temp .pin-name{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.weather-pin.is-fixed-temp .pin-icon{font-size:13px;line-height:1;opacity:.95}.weather-pin.is-fixed-temp .pin-temp{font-size:14px;line-height:1;font-weight:1000;color:#fff;letter-spacing:-.03em}.weather-pin.is-stale{border-style:dashed}.pin-icon{font-size:14px}.pin-name{font-size:11px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pin-temp{font-size:14px;color:#fff}.focus-card h1{font-size:18px;margin:0;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.focus-region{font-size:12px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.focus-main{display:flex;align-items:center;gap:8px;margin:6px 0}.focus-icon{font-size:26px}.focus-temp{font-size:32px;font-weight:1000;line-height:1}.focus-text{color:#d7edff;font-weight:800}.focus-grid{display:none;grid-template-columns:1fr 1fr 1fr;gap:6px}.focus-grid div{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);padding:7px;border-radius:11px}.focus-grid span{display:block;font-size:11px;text-transform:uppercase;color:var(--muted);letter-spacing:.06em}.focus-grid strong{font-size:15px}.focus-source{display:none;font-size:11px;color:var(--muted);margin-top:10px;line-height:1.4}.place-row,.ranking-block button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;color:var(--text);border:1px solid rgba(158,216,255,.12);background:rgba(255,255,255,.05);border-radius:14px;padding:9px 10px}.place-row:hover,.ranking-block button:hover{background:rgba(34,211,238,.10);border-color:rgba(34,211,238,.28)}.place-row[data-selected=true]{border-color:rgba(255,209,102,.55);background:rgba(255,209,102,.08)}.place-row-name{font-weight:850}.place-row-meta{font-size:12px;color:var(--muted)}.place-row-temp{font-weight:1000;font-size:20px}.ranking-panel{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ranking-block{border-radius:14px;background:rgba(0,0,0,.14);padding:8px}.ranking-block h3{margin:0 0 6px;font-size:12px;color:#b9d9ee}.ranking-block button{font-size:12px;padding:5px 7px;margin-top:5px}.diagnostics-mini{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;color:#adc8dc;line-height:1.45}.empty-state{padding:18px;color:var(--muted);text-align:center;border:1px dashed rgba(158,216,255,.22);border-radius:14px}.collision-debug .weather-pin{outline:2px dashed rgba(245,158,11,.75)}

/* Smart weather zones v2.2 */
.weather-zone-layer,.municipality-label-layer{position:absolute;inset:0;pointer-events:none;z-index:20}.municipality-label-layer{z-index:28}.weather-zone-halo{position:absolute;display:block;width:var(--zone-size,70px);height:var(--zone-size,70px);transform:translate(-50%,-50%) scale(var(--zone-scale,1));border-radius:999px;opacity:.28;filter:blur(1px);background:radial-gradient(circle,rgba(255,255,255,.24),rgba(34,211,238,.12) 45%,rgba(34,211,238,0) 72%)}.weather-zone-halo.condition-rain,.weather-zone-halo.condition-drizzle{background:radial-gradient(circle,rgba(125,211,252,.28),rgba(59,130,246,.18) 48%,rgba(59,130,246,0) 76%)}.weather-zone-halo.condition-clear{background:radial-gradient(circle,rgba(255,223,118,.30),rgba(245,158,11,.14) 48%,rgba(245,158,11,0) 76%)}.weather-zone-halo.condition-clouds{background:radial-gradient(circle,rgba(226,232,240,.28),rgba(148,163,184,.13) 48%,rgba(148,163,184,0) 76%)}.weather-zone-badge{position:absolute;transform:translate(-50%,-50%) scale(var(--zone-scale,1));display:flex;align-items:center;gap:4px;min-width:66px;height:34px;padding:4px 8px;border-radius:999px;border:1.4px solid rgba(255,255,255,.78);background:linear-gradient(135deg,rgba(3,9,18,.95),rgba(9,35,61,.92));color:#fff;box-shadow:0 10px 22px rgba(0,0,0,.42),0 0 0 3px rgba(2,8,18,.30);backdrop-filter:blur(10px);pointer-events:auto;z-index:44;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.weather-zone-badge:hover,.weather-zone-badge:focus{outline:none;border-color:rgba(255,209,102,.96);box-shadow:0 0 0 4px rgba(255,209,102,.18),0 12px 24px rgba(0,0,0,.46)}.weather-zone-badge .zone-icon{font-size:15px;line-height:1}.weather-zone-badge .zone-temp{font-size:17px;line-height:1;font-weight:1000;letter-spacing:-.045em}.weather-zone-badge .zone-count{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;border-radius:999px;background:rgba(255,255,255,.16);font-size:10px;font-weight:1000;color:#dff7ff}.weather-zone-badge.condition-clear{background:linear-gradient(135deg,rgba(80,43,6,.95),rgba(132,82,14,.88))}.weather-zone-badge.condition-clouds{background:linear-gradient(135deg,rgba(20,31,46,.96),rgba(51,65,85,.90))}.weather-zone-badge.condition-rain,.weather-zone-badge.condition-drizzle{background:linear-gradient(135deg,rgba(7,31,63,.96),rgba(29,78,216,.88))}.weather-zone-badge.condition-storm{background:linear-gradient(135deg,rgba(42,19,68,.96),rgba(109,40,217,.88))}.municipality-label{position:absolute;transform:translate(calc(-50% + var(--ox,0px)),calc(-50% + var(--oy,0px))) scale(var(--name-scale,1));max-width:86px;min-width:24px;border:1px solid rgba(226,246,255,.22);border-radius:7px;padding:2px 4px;background:rgba(2,8,18,.34);color:rgba(236,251,255,.86);font-size:9.2px;line-height:1.05;font-weight:850;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.75),0 0 5px rgba(0,0,0,.55);letter-spacing:-.015em;box-shadow:0 1px 4px rgba(0,0,0,.22);pointer-events:auto;z-index:30;transition:background .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.municipality-label span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.municipality-label.is-condensed{font-size:8.2px;max-width:74px}.municipality-label:hover,.municipality-label:focus{outline:none;z-index:70;color:#fff;border-color:rgba(34,211,238,.78);background:rgba(6,28,50,.72);box-shadow:0 0 0 2px rgba(34,211,238,.18),0 5px 12px rgba(0,0,0,.34)}.municipality-label[data-selected=true]{z-index:80;color:#fff;border-color:rgba(255,209,102,.95);background:rgba(72,42,8,.78);box-shadow:0 0 0 3px rgba(255,209,102,.18),0 6px 14px rgba(0,0,0,.36)}

/* 2.2.2 territorial-audit: visual hierarchy locked after full map audit */
.weather-zone-halo{z-index:18;opacity:.24;mix-blend-mode:screen;}
.weather-zone-badge{z-index:34;border-color:rgba(191,232,255,.54);background:linear-gradient(135deg,rgba(4,13,26,.84),rgba(12,45,78,.74));box-shadow:0 8px 18px rgba(0,0,0,.34),0 0 0 2px rgba(2,8,18,.20);}
.weather-zone-badge .zone-temp{font-size:16px;letter-spacing:-.04em;}
.weather-zone-badge .zone-count{background:rgba(255,255,255,.13);}
.municipality-label{z-index:56;background:rgba(2,8,18,.46);border-color:rgba(226,246,255,.30);box-shadow:0 2px 5px rgba(0,0,0,.26),0 0 0 1px rgba(2,8,18,.36);text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 6px rgba(0,0,0,.82);}
.municipality-label:hover,.municipality-label:focus{z-index:90;}
.municipality-label[data-selected=true]{z-index:96;}
.municipality-label{line-height:.98;padding:1px 3px;}
.municipality-label.is-condensed{line-height:.96;}

/* 2.2.5 cartographic label pass: names stay tied to their true geographic anchors. */
.municipality-anchor-layer{position:absolute;inset:0;pointer-events:none;z-index:52}.municipality-anchor-dot{position:absolute;width:4px;height:4px;border-radius:999px;transform:translate(-50%,-50%);background:rgba(226,246,255,.92);box-shadow:0 0 0 1px rgba(2,8,18,.88),0 0 6px rgba(125,211,252,.42)}.municipality-anchor-dot.region-puna{background:#dbeafe}.municipality-anchor-dot.region-quebrada{background:#fde68a}.municipality-anchor-dot.region-valles{background:#bbf7d0}.municipality-anchor-dot.region-yungas{background:#a7f3d0}.municipality-label-layer{z-index:66}.municipality-label{max-width:76px;min-width:16px;border:0;border-radius:3px;padding:0 2px;background:rgba(2,8,18,.18);color:rgba(238,252,255,.94);font-size:8.8px;line-height:.96;font-weight:900;letter-spacing:-.035em;text-shadow:0 1px 1px rgba(0,0,0,.96),0 0 3px rgba(0,0,0,.96),0 0 7px rgba(0,0,0,.74);box-shadow:none;backdrop-filter:none}.municipality-label span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.municipality-label.is-condensed{font-size:7.7px;max-width:66px}.municipality-label:hover,.municipality-label:focus{background:rgba(6,28,50,.82);border:0;color:#fff;box-shadow:0 0 0 2px rgba(34,211,238,.20),0 4px 9px rgba(0,0,0,.36)}.municipality-label[data-selected=true]{background:rgba(80,49,9,.88);color:#fff;box-shadow:0 0 0 2px rgba(255,209,102,.30),0 4px 10px rgba(0,0,0,.38)}.weather-zone-layer{z-index:40}.weather-zone-badge{z-index:42;opacity:.94}.weather-zone-halo{opacity:.18}

/* cartolabels fine tune: smaller map lettering, stronger halo, less spatial drift. */
.municipality-label{font-size:8.1px;max-width:64px;letter-spacing:-.045em}.municipality-label.is-condensed{font-size:7.1px;max-width:56px}.weather-zone-badge{min-width:58px;height:30px;padding:3px 7px}.weather-zone-badge .zone-temp{font-size:15px}.weather-zone-badge .zone-icon{font-size:13px}.weather-zone-badge .zone-count{min-width:15px;height:15px;font-size:9px}

/* 2.3.2 localclick-fix: default cards are regional side-gutter summaries; explicit clicks show one exact local card. */
.climate-card-layer{position:absolute;inset:0;z-index:44;pointer-events:none;contain:layout paint}.regional-weather-card{width:112px;min-width:112px;height:42px;padding:5px 7px;border-radius:15px;gap:6px;opacity:.96;pointer-events:auto;z-index:44;transform:translate(-50%,-50%);box-shadow:0 10px 20px rgba(0,0,0,.42),0 0 0 1px rgba(191,232,255,.20);border-color:rgba(191,232,255,.46);background:linear-gradient(135deg,rgba(3,9,18,.92),rgba(11,39,66,.84));}
.regional-weather-card.slot-left{text-align:left}.regional-weather-card.slot-right{text-align:right}.regional-weather-card .zone-copy{display:flex;min-width:0;flex:1;flex-direction:column;align-items:flex-start;line-height:1}.regional-weather-card.slot-right .zone-copy{align-items:flex-end}.regional-weather-card .zone-name{max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(223,247,255,.72);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.regional-weather-card .zone-temp{font-size:18px;line-height:.95}.regional-weather-card .zone-icon{font-size:15px}.regional-weather-card .zone-count{flex:0 0 auto;min-width:18px;height:18px;font-size:10px}.regional-weather-card.condition-dry{background:linear-gradient(135deg,rgba(54,33,9,.94),rgba(116,72,13,.82))}.regional-weather-card.condition-fog,.regional-weather-card.condition-unknown{background:linear-gradient(135deg,rgba(17,24,39,.94),rgba(55,65,81,.82))}.regional-weather-card.condition-rain{background:linear-gradient(135deg,rgba(7,31,63,.94),rgba(29,78,216,.82))}.regional-weather-card.condition-snow{background:linear-gradient(135deg,rgba(15,23,42,.94),rgba(125,211,252,.45))}.regional-weather-card.condition-storm{background:linear-gradient(135deg,rgba(42,19,68,.95),rgba(109,40,217,.82))}
.municipality-anchor-dot{width:3px;height:3px;opacity:.82}.municipality-label-layer{z-index:66}.municipality-label{transform:translate(calc(-50% + var(--ox,0px)),calc(-50% + var(--oy,0px))) scale(var(--name-scale,1));background:rgba(2,8,18,.12);font-size:7.8px;max-width:60px;letter-spacing:-.05em;text-shadow:0 1px 1px rgba(0,0,0,1),0 0 3px rgba(0,0,0,.98),0 0 7px rgba(0,0,0,.82)}.municipality-label.is-condensed{font-size:6.9px;max-width:52px}.municipality-label[data-selected=true]{background:rgba(80,49,9,.88)}
@media(max-width:720px){.regional-weather-card{width:92px;min-width:92px;height:34px;border-radius:13px;padding:4px 6px}.regional-weather-card .zone-name{font-size:7.4px;max-width:54px}.regional-weather-card .zone-temp{font-size:15px}.regional-weather-card .zone-icon{font-size:12px}.regional-weather-card .zone-count{min-width:15px;height:15px;font-size:8px}.municipality-label{font-size:6.7px;max-width:48px}.municipality-label.is-condensed{font-size:5.9px;max-width:42px}}
/* Remove internal SVG credit from the live map layer; it collided visually with northern labels. */
.svg-map .map-credit{display:none}.svg-map .region-label{opacity:.42}

/* Local click mode: one exact municipal weather card in the side gutter. */
.local-weather-card{position:absolute;transform:translate(-50%,-50%);display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:2px 8px;width:210px;min-height:60px;padding:8px 10px;border-radius:16px;border:1.5px solid rgba(255,209,102,.86);background:linear-gradient(135deg,rgba(4,13,26,.96),rgba(19,54,83,.92));color:#fff;box-shadow:0 12px 26px rgba(0,0,0,.48),0 0 0 4px rgba(255,209,102,.12);pointer-events:auto;z-index:72;text-align:left;backdrop-filter:blur(11px)}
.local-weather-card:hover,.local-weather-card:focus{outline:none;border-color:rgba(255,232,166,.98);box-shadow:0 0 0 5px rgba(255,209,102,.18),0 14px 28px rgba(0,0,0,.52)}
.local-weather-card.condition-clear{background:linear-gradient(135deg,rgba(86,47,8,.97),rgba(134,83,14,.92))}.local-weather-card.condition-clouds{background:linear-gradient(135deg,rgba(19,31,46,.98),rgba(57,72,92,.92))}.local-weather-card.condition-rain{background:linear-gradient(135deg,rgba(7,31,63,.98),rgba(29,78,216,.92))}.local-weather-card.condition-storm{background:linear-gradient(135deg,rgba(42,19,68,.98),rgba(109,40,217,.92))}
.local-weather-card .local-icon{grid-column:1;grid-row:1;font-size:20px;line-height:1;align-self:end;justify-self:start}.local-weather-card .local-copy{grid-column:2;grid-row:1 / span 2;min-width:0;padding-right:0}.local-weather-card .local-kicker{display:block;font-size:8.5px;font-weight:1000;letter-spacing:.12em;color:#ffe8a6;line-height:1;text-transform:uppercase}.local-weather-card .local-name{display:block;margin-top:3px;font-size:13px;line-height:1.05;font-weight:1000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.local-weather-card .local-meta{display:none}.local-weather-card .local-text{display:block;font-size:10px;line-height:1.12;color:#d6eaff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.local-weather-card .local-text{font-weight:800;color:#fff}.local-weather-card .local-temp{grid-column:1;grid-row:2;font-size:23px;line-height:1;font-weight:1000;letter-spacing:-.06em;align-self:start;justify-self:start}.municipality-anchor-dot[data-selected=true]{width:7px;height:7px;background:#ffd166;box-shadow:0 0 0 2px rgba(2,8,18,.92),0 0 12px rgba(255,209,102,.72)}
@media(max-width:720px){.local-weather-card{width:128px;min-height:50px;border-radius:14px;padding:6px 7px;grid-template-columns:34px minmax(0,1fr);gap:1px 5px}.local-weather-card .local-copy{padding-right:0}.local-weather-card .local-icon{font-size:16px}.local-weather-card .local-kicker{font-size:7px}.local-weather-card .local-name{font-size:10.5px}.local-weather-card .local-meta{display:none}.local-weather-card .local-text{font-size:8.5px}.local-weather-card .local-temp{font-size:19px}}
