.b21-mapa-metas {
  --b21-black:#101010;
  --b21-yellow:#f4d83d;
  --b21-green:#2dfd39;
  --b21-cream:#fffaf0;
  --b21-muted:#adadad;
  --b21-line:rgba(255,255,255,.14);
  box-sizing:border-box;
  background:var(--b21-black);
  color:#fff;
  padding:clamp(18px,3vw,42px);
  font-family:inherit;
  max-width:1400px;
  margin:0 auto;
  overflow:hidden;
  border-radius:2px;
}
.b21-mapa-metas *{box-sizing:border-box}
.b21-mapa-metas__header{display:flex;gap:20px;align-items:flex-start;justify-content:space-between;margin-bottom:22px}
.b21-mapa-metas h2,.b21-mapa-metas h3,.b21-mapa-metas p{margin:0}
.b21-mapa-metas h2{font-size:clamp(1.4rem,2.5vw,2.25rem);line-height:1.08;color:var(--b21-yellow);letter-spacing:-.03em}
.b21-mapa-metas h3{font-size:clamp(1.25rem,2.1vw,1.75rem);line-height:1.05;color:#fff}
.b21-mapa-metas__header p{margin-top:9px;color:#d1d1d1;max-width:610px;line-height:1.5}
.b21-mapa-metas__eyebrow{display:block;color:var(--b21-green);font-size:11px;font-weight:800;letter-spacing:.13em;margin:0 0 8px}
.b21-mapa-metas__edit-badge{white-space:nowrap;border:1px solid var(--b21-green);color:var(--b21-green);font-size:12px;font-weight:700;padding:8px 10px;border-radius:99px}
.b21-mapa-metas__summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--b21-line);border:1px solid var(--b21-line);margin-bottom:24px}
.b21-mapa-metas__summary>div{padding:14px 16px;background:#080808}
.b21-mapa-metas__summary span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.075em;color:#b3b3b3;margin-bottom:7px}
.b21-mapa-metas__summary strong{color:var(--b21-green);font-size:clamp(1.1rem,2vw,1.5rem)}
.b21-mapa-metas__layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);gap:24px;align-items:start}
.b21-mapa-metas__map-wrap{min-width:0}
.b21-mapa-metas__map{position:relative;background:#000;border:1px solid var(--b21-line);width:100%;overflow:hidden;isolation:isolate}

/* SVG interno */
.b21-mapa-metas__map svg{display:block;width:100%;height:auto;min-height:430px;margin:0 auto}
.b21-mapa-metas__map svg [data-slug]{cursor:pointer;outline:none;transition:filter .18s ease,transform .18s ease,stroke-width .18s ease}
.b21-mapa-metas__map svg [data-slug]:hover,.b21-mapa-metas__map svg [data-slug]:focus,.b21-mapa-metas__map svg [data-slug].is-selected{filter:brightness(1.15) saturate(1.15);stroke:#fff!important;stroke-width:5!important}
.b21-mapa-metas__map svg text{pointer-events:none;font-family:Arial,sans-serif;font-size:12px;font-weight:700;fill:#111;text-anchor:middle}

/* Imagem personalizada: a altura segue a proporção real e jamais é cortada. */
.b21-mapa-metas__custom-image{display:block;width:100%;max-width:100%;height:auto;max-height:none;margin:0 auto;object-fit:contain;user-select:none}
.b21-mapa-metas__hotspots{position:absolute;inset:0}
.b21-mapa-metas__hotspot{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;color:transparent;min-width:44px;min-height:44px;border-radius:50%;cursor:pointer;outline:none;touch-action:manipulation}
.b21-mapa-metas__hotspot:focus-visible,.b21-mapa-metas__hotspot:hover,.b21-mapa-metas__hotspot.is-selected{background:rgba(255,255,255,.32);box-shadow:0 0 0 3px #000,0 0 0 5px var(--b21-yellow)}
.b21-mapa-metas__hotspot span{display:none}
.b21-mapa-metas__hint{color:#ccc;font-size:13px;margin:10px 0 0;text-align:center}
.b21-mapa-metas__detail{border:1px solid var(--b21-line);background:#080808;min-height:280px;padding:20px;position:sticky;top:24px}
.b21-mapa-metas__empty{display:grid;place-items:center;text-align:center;height:100%;min-height:238px;color:#b8b8b8}
.b21-mapa-metas__empty strong{color:#fff;margin-top:9px}
.b21-mapa-metas__empty p{font-size:14px;line-height:1.4;margin-top:7px}
.b21-mapa-metas__empty-icon{font-size:42px;color:var(--b21-yellow)}
.b21-mapa-metas__detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--b21-line);padding-bottom:16px;margin-bottom:16px}
.b21-mapa-metas__close{appearance:none;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:50%;font-size:21px;line-height:28px;padding:0;width:30px;height:30px;cursor:pointer}
.b21-mapa-metas__metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--b21-line);border:1px solid var(--b21-line)}
.b21-mapa-metas__metric{background:#111;padding:13px 12px}
.b21-mapa-metas__metric span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#aaa;line-height:1.35}
.b21-mapa-metas__metric strong{display:block;margin-top:6px;color:var(--b21-green);font-size:1.15rem}
.b21-mapa-metas__edit-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.b21-mapa-metas__field{display:block;background:#111;padding:10px}
.b21-mapa-metas__field span{display:block;color:#aaa;font-size:10px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:7px}
.b21-mapa-metas__field input{width:100%;border:1px solid #383838;border-radius:0;background:#070707;color:#fff;min-height:38px;padding:7px;font:inherit}
.b21-mapa-metas__field input[type=color]{padding:2px}
.b21-mapa-metas__save{margin-top:14px;width:100%;border:0;background:var(--b21-yellow);color:#101010;font-weight:800;padding:12px;cursor:pointer}
.b21-mapa-metas__save:disabled{opacity:.65;cursor:wait}
.b21-mapa-metas__save-status{font-size:12px;color:var(--b21-green);margin-top:8px!important}
.b21-mapa-metas__municipios{border-top:1px solid var(--b21-line);margin-top:26px;padding-top:20px}
.b21-mapa-metas__municipios-head{display:flex;justify-content:space-between;gap:16px;align-items:center}
.b21-mapa-metas__municipios h3{font-size:1rem;color:#fff}
.b21-mapa-metas__search input{border:1px solid var(--b21-line);background:#151515;color:#fff;padding:9px 11px;min-width:220px;font:inherit}
.b21-mapa-metas__list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:15px}
.b21-mapa-metas__list-item{color:#e7e7e7;background:#131313;border:1px solid transparent;text-align:left;padding:9px 10px;display:flex;align-items:center;gap:8px;font:inherit;font-size:13px;line-height:1.2;cursor:pointer}
.b21-mapa-metas__list-item:hover,.b21-mapa-metas__list-item:focus,.b21-mapa-metas__list-item.is-selected{border-color:var(--b21-yellow);color:#fff;outline:none}
.b21-mapa-metas__dot{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#f7bc9a}
@media(max-width:1000px){.b21-mapa-metas__layout{grid-template-columns:minmax(0,1fr)}.b21-mapa-metas__detail{position:static;min-height:0}.b21-mapa-metas__empty{min-height:160px}.b21-mapa-metas__list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.b21-mapa-metas{padding:16px;border-radius:0}.b21-mapa-metas__header{display:block}.b21-mapa-metas__edit-badge{display:inline-block;margin-top:13px}.b21-mapa-metas__summary{grid-template-columns:repeat(2,minmax(0,1fr))}.b21-mapa-metas__summary>div{padding:12px}.b21-mapa-metas__map svg{min-height:330px}.b21-mapa-metas__hotspot{min-width:48px;min-height:48px}.b21-mapa-metas__municipios-head{display:block}.b21-mapa-metas__search{display:block;margin-top:12px}.b21-mapa-metas__search input{width:100%;min-width:0}.b21-mapa-metas__list{grid-template-columns:repeat(2,minmax(0,1fr))}.b21-mapa-metas__edit-form{grid-template-columns:1fr}.b21-mapa-metas__detail{padding:16px}.b21-mapa-metas__metrics{grid-template-columns:1fr 1fr}}
@media(max-width:390px){.b21-mapa-metas__list{grid-template-columns:1fr}.b21-mapa-metas__summary{grid-template-columns:1fr 1fr}.b21-mapa-metas__summary strong{font-size:1rem}}
