.pwr-root { --pwr-bg:#0b1220; --pwr-panel:#111827; --pwr-line:#2b3648; --pwr-accent:#2563eb; font-family:inherit; }
.pwr-root *, .pwr-root *::before, .pwr-root *::after { box-sizing:border-box; }
.pwr-trigger { appearance:none; display:inline-flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-width:0; border:1px solid #2563eb; border-radius:12px; padding:10px 11px; color:#fff; background:#2563eb; box-shadow:0 4px 14px #0003; font-family:inherit; font-size:14px; font-weight:700; line-height:1.25; letter-spacing:.01em; text-align:left; text-transform:none; cursor:pointer; transition:background-color .18s,border-color .18s,transform .18s; }
.pwr-trigger > span:nth-child(2) { flex:1; }
.pwr-trigger:hover,.pwr-trigger:focus-visible { transform:translateY(-2px); border-color:#1d4ed8; background:#1d4ed8; color:#fff; }
.pwr-trigger:focus-visible,.pwr-close:focus-visible,.pwr-city:focus-visible,.pwr-foot a:focus-visible { outline:3px solid #bfdbfe; outline-offset:3px; }
.pwr-trigger__map-icon { display:grid; place-items:center; width:30px; height:30px; flex:none; border-radius:8px; background:#1e3a8a; color:#dbeafe; }
.pwr-live-dot { width:7px; height:7px; border-radius:50%; background:#60a5fa; flex:none; }
.pwr-trigger__arrow { display:grid; place-items:center; width:27px; height:27px; flex:none; border-radius:7px; background:#1e3a8a; font-size:16px; transition:transform .18s; }
.pwr-trigger:hover .pwr-trigger__arrow { transform:translate(2px,-2px); }
.pwr-trigger--floating { position:fixed; z-index:9990; right:0; top:50%; width:auto; transform:translateY(-50%); border-radius:12px 0 0 12px; writing-mode:vertical-rl; padding:9px; box-shadow:0 4px 14px #0005; }
.pwr-trigger--floating:hover,.pwr-trigger--floating:focus-visible { transform:translate(-3px,-50%); }
.pwr-trigger--floating .pwr-trigger__arrow { margin:8px 0 0; }
.pwr-overlay[hidden] { display:none !important; }
.pwr-overlay { position:fixed; inset:0; z-index:99999; display:grid; place-items:center; padding:24px; }
.pwr-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.5); }
.pwr-dialog { position:relative; display:flex; flex-direction:column; width:min(1180px,100%); max-height:min(820px,calc(100dvh - 48px)); border:1px solid #35568d; border-radius:18px; overflow:hidden; background:var(--pwr-bg); color:#f8fafc; box-shadow:0 20px 60px #0008; outline:none; }
.pwr-head { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:19px 28px 18px; background:linear-gradient(115deg,#17243a,#101c31); border-bottom:1px solid var(--pwr-line); }
.pwr-head__main { min-width:0; }
.pwr-head__actions { display:flex; align-items:center; gap:20px; flex:none; }
.pwr-logo { display:block; width:290px; height:auto; margin:0; object-fit:contain; }
.pwr-eyebrow { display:flex; align-items:center; gap:12px; color:#93c5fd; font:700 11px/1.2 system-ui,Arial,sans-serif; letter-spacing:.18em; }
.pwr-eyebrow .pwr-live-dot { width:7px; height:7px; }
.pwr-head h2 { margin:7px 0 4px !important; padding:0 !important; color:#fff; font:700 clamp(26px,3vw,35px)/1.12 system-ui,Arial,sans-serif !important; letter-spacing:-.03em; text-transform:none; }
.pwr-head p { margin:0 !important; padding:0 !important; color:#cbd5e1; font:400 14px/1.4 system-ui,Arial,sans-serif; }
.pwr-close { display:grid; place-items:center; width:40px; height:40px; flex:none; padding:0; border:1px solid #415c82; border-radius:50%; background:#17243a; color:#e2e8f0; font:300 29px/1 Arial,sans-serif; cursor:pointer; }
.pwr-close:hover { background:#1d4ed8; color:#fff; }
.pwr-content { display:grid; grid-template-columns:minmax(0,1fr) 256px; min-height:0; flex:1; }
.pwr-map-wrap { position:relative; min-height:470px; overflow:hidden; background:#111827; }
.pwr-map { height:100%; min-height:470px; width:100%; background:#111827; }
.pwr-map-wrap::after { content:""; position:absolute; inset:0; background:#2563eb16; pointer-events:none; z-index:400; }
.pwr-map .leaflet-tile-pane { filter:invert(1) hue-rotate(180deg) saturate(.35) brightness(.68) contrast(1.15); }
.pwr-map .leaflet-control-attribution { background:#0f172acc; color:#cbd5e1; font-size:10px; }
.pwr-map .leaflet-control-attribution a { color:#bfdbfe; }
.pwr-map .leaflet-control-zoom a { background:#17243a; border-color:#415c82; color:#f1f5f9; }
.pwr-map .leaflet-control-zoom a:hover { background:#1d4ed8; color:#fff; }
.pwr-map .leaflet-tooltip,.pwr-map .leaflet-popup-content-wrapper { background:#17243a; color:#fff; border:1px solid #60a5fa; box-shadow:0 8px 25px #0009; font:700 13px/1.3 system-ui,Arial,sans-serif; }
.pwr-map .leaflet-tooltip::before { border-top-color:#60a5fa; }
.pwr-map .leaflet-popup-tip { background:#17243a; }
.pwr-map .leaflet-popup-content { margin:9px 13px; }
.pwr-map-caption { position:absolute; z-index:500; left:18px; bottom:20px; padding:9px 12px; border:1px solid #466184; border-radius:8px; background:#0f172ade; color:#e2e8f0; font:500 12px/1.2 system-ui,Arial,sans-serif; pointer-events:none; }
.pwr-marker { border:0; background:transparent; }
.pwr-marker__core { position:absolute; inset:9px; border:2px solid #fff; border-radius:50%; background:#2563eb; }
.pwr-marker__pulse { position:absolute; inset:5px; border:2px solid #60a5fa; border-radius:50%; opacity:.65; animation:pwr-pulse 3.4s ease-out infinite; }
@keyframes pwr-pulse { 0% { transform:scale(.8); opacity:.65; } 75%,100% { transform:scale(2); opacity:0; } }
.pwr-side { display:flex; flex-direction:column; min-height:0; border-left:1px solid var(--pwr-line); background:linear-gradient(180deg,#17243a,#0f172a); padding:22px 19px; }
.pwr-side__top { display:flex; justify-content:space-between; align-items:center; color:#93c5fd; font:700 11px/1.2 system-ui,Arial,sans-serif; letter-spacing:.13em; }
.pwr-side__top strong { display:grid; place-items:center; min-width:32px; height:28px; border-radius:8px; background:#2563eb; color:#fff; font:700 13px/1 system-ui,Arial,sans-serif; letter-spacing:0; }
.pwr-side p { margin:12px 0 16px; color:#cbd5e1; font:400 13px/1.5 system-ui,Arial,sans-serif; }
.pwr-list { display:grid; align-content:start; gap:3px; min-height:0; overflow:auto; scrollbar-color:#475569 transparent; padding-right:3px; }
.pwr-city { display:block; width:100%; padding:8px 10px; border:1px solid transparent; border-radius:8px; background:transparent; color:#e2e8f0; text-align:left; font:500 13px/1.3 system-ui,Arial,sans-serif; cursor:pointer; }
.pwr-city:hover,.pwr-city:focus-visible { border-color:#3b82f6; background:#1e3a8a; color:#fff; }
.pwr-foot { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:15px 32px; border-top:1px solid var(--pwr-line); color:#94a3b8; background:#0f172a; font:400 12px/1.4 system-ui,Arial,sans-serif; }
.pwr-foot a { color:#93c5fd; font-weight:700; text-decoration:none; white-space:nowrap; }
.pwr-foot a:hover { color:#fff; text-decoration:underline; }
body.pwr-modal-open { overflow:hidden; }
@media (max-width:760px) {
  .pwr-overlay { padding:10px; }
  .pwr-dialog { max-height:calc(100dvh - 20px); border-radius:15px; }
  .pwr-head { display:block; position:relative; padding:18px 18px 16px; }
  .pwr-head__actions { position:absolute; top:16px; right:18px; }
  .pwr-logo { display:none; }
  .pwr-content { display:flex; flex-direction:column; overflow:auto; }
  .pwr-map-wrap,.pwr-map { min-height:330px; height:330px; flex:none; }
  .pwr-side { border-left:0; border-top:1px solid var(--pwr-line); padding:15px 18px; }
  .pwr-side p { margin:6px 0 10px; }
  .pwr-list { grid-template-columns:repeat(2,minmax(0,1fr)); max-height:150px; }
  .pwr-foot { padding:13px 18px; }
  .pwr-trigger--floating { top:auto; bottom:18px; right:12px; writing-mode:horizontal-tb; transform:none; border-radius:12px; padding:9px 10px 9px 13px; }
  .pwr-trigger--floating:hover,.pwr-trigger--floating:focus-visible { transform:translateY(-2px); }
  .pwr-trigger--floating .pwr-trigger__arrow { margin:0 0 0 5px; }
}
@media (max-width:480px) {
  .pwr-head h2 { font-size:25px; }
  .pwr-map-wrap,.pwr-map { min-height:290px; height:290px; }
  .pwr-map-caption { display:none; }
  .pwr-foot { align-items:flex-start; flex-direction:column; gap:6px; }
  .pwr-list { max-height:130px; }
}
@media (prefers-reduced-motion:reduce) {
  .pwr-marker__pulse { animation:none; opacity:.4; }
  .pwr-trigger,.pwr-trigger__arrow { transition:none; }
}
