/* ═══════════════════════════════════════════════════
   ATLAS — Tactical Zones (Вариант D)
   Polygons (Лостармор) + Frontline (Гроза)
   Legend lives inside #zones-panel in sidebar--right
   ═══════════════════════════════════════════════════ */

/* ══════ Polygon neon ══════ */
.atlas-zone path {
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: filter .3s, stroke-width .3s;
  animation: atlas-dash-flow 6s linear infinite;
}
@keyframes atlas-dash-flow { to { stroke-dashoffset: -40; } }

.atlas-zone.zone-lnr   path { filter: drop-shadow(0 0 4px #ff2a2a) drop-shadow(0 0 10px rgba(255,42,42,.60)); }
.atlas-zone.zone-dnr   path { filter: drop-shadow(0 0 4px #ff6a00) drop-shadow(0 0 10px rgba(255,106,0,.60)); }
.atlas-zone.zone-khe   path { filter: drop-shadow(0 0 4px #00d4ff) drop-shadow(0 0 10px rgba(0,212,255,.55)); }
.atlas-zone.zone-zap   path { filter: drop-shadow(0 0 4px #ff3fa4) drop-shadow(0 0 10px rgba(255,63,164,.55)); }
.atlas-zone.zone-khar  path { filter: drop-shadow(0 0 4px #ffd23f) drop-shadow(0 0 10px rgba(255,210,63,.50)); }
.atlas-zone.zone-sum   path { filter: drop-shadow(0 0 4px #7dffbf) drop-shadow(0 0 10px rgba(125,255,191,.50)); }
.atlas-zone.zone-chern path { filter: drop-shadow(0 0 4px #8ab17d) drop-shadow(0 0 10px rgba(138,177,125,.45)); }
.atlas-zone.zone-dnp   path { filter: drop-shadow(0 0 4px #a663cc) drop-shadow(0 0 10px rgba(166,99,204,.50)); }

.atlas-zone.pulse path {
  animation: atlas-dash-flow 6s linear infinite,
             atlas-zone-pulse 1.2s ease-in-out 3;
}
@keyframes atlas-zone-pulse {
  0%, 100% { stroke-width: 3; }
  50%      { stroke-width: 7; }
}

/* ══════ Polygon label (inside polygon center) ══════ */
.atlas-zone-label {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  font-family: 'Orbitron', 'Rajdhani', sans-serif !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  white-space: nowrap;
  padding: 0 !important;
  pointer-events: none;
}
.atlas-zone-label > span {
  color: var(--zone-color, #fff);
  text-shadow:
    0 0 4px var(--zone-color, #fff),
    0 0 10px var(--zone-color, #fff),
    0 0 2px #000, 0 0 2px #000;
}
.atlas-zone-label::before,
.atlas-zone-label::after { display: none !important; }

/* ══════ Right-sidebar legend (#zones-panel) ══════ */
#zones-panel .zl-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  cursor: pointer;
}
#zones-panel .zl-summary-title { flex: 1; }
#zones-panel .zl-summary-count {
  font-family: 'Orbitron', 'Rajdhani', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  color: var(--ui-accent, rgba(0,242,255,.92));
  padding: 2px 8px;
  border: 1px solid var(--ui-border-strong, rgba(0,242,255,.22));
  border-radius: 2px;
  min-width: 38px;
  text-align: center;
}

#zones-panel-body {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Meta (дата, источник, обновлено) */
#zones-panel-body .zl-meta {
  padding: 7px 10px;
  border: 1px dashed var(--ui-border, rgba(0,242,255,.14));
  border-radius: 3px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-size: 11px;
  color: var(--ui-text-dim, rgba(255,255,255,.56));
}
#zones-panel-body .zl-meta-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}
#zones-panel-body .zl-meta-row b {
  color: var(--ui-text, rgba(255,255,255,.92));
  font-weight: 600;
  letter-spacing: .2px;
}

/* Status states */
#zones-panel-body .zl-status {
  padding: 12px;
  text-align: center;
  font-size: 12px;
  color: var(--ui-text-dim, rgba(255,255,255,.56));
  border: 1px dashed var(--ui-border, rgba(0,242,255,.14));
  border-radius: 3px;
}
#zones-panel-body .zl-status--err {
  color: #ff6a6a;
  border-color: rgba(255,60,60,.4);
}

/* List of zone rows */
#zones-panel-body .zl-list {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

/* Row (polygon entry) */
#zones-panel-body .zl-row {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 6px 10px;
  border-radius: 3px;
  cursor: pointer;
  border: 1px solid transparent;
  background: rgba(255,255,255,.015);
  transition: background .15s, border-color .15s, opacity .15s;
  user-select: none;
}
#zones-panel-body .zl-row:hover {
  background: rgba(0,242,255,.06);
  border-color: var(--ui-border, rgba(0,242,255,.14));
}
#zones-panel-body .zl-row.on  { border-left: 3px solid var(--zone-color); padding-left: 8px; }
#zones-panel-body .zl-row.off { opacity: .42; }

/* Polygon dot (filled swatch) */
#zones-panel-body .zl-dot {
  width: 11px; height: 11px; flex: 0 0 11px;
  border-radius: 2px;
  background: var(--zone-color);
  box-shadow: 0 0 6px var(--zone-color), 0 0 12px var(--zone-color);
  position: relative;
}
#zones-panel-body .zl-dot::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(45deg,
    rgba(255,255,255,.35) 0 2px, transparent 2px 4px);
}

#zones-panel-body .zl-name {
  flex: 1;
  font-family: 'Rajdhani', sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .2px;
  text-transform: uppercase;
  color: var(--ui-text, rgba(255,255,255,.92));
}
#zones-panel-body .zl-count {
  font-family: 'Orbitron', 'Rajdhani', sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: var(--zone-color);
  text-shadow: 0 0 6px var(--zone-color);
  padding: 1px 5px;
  border: 1px solid var(--zone-color);
  border-radius: 2px;
  min-width: 20px;
  text-align: center;
}

#zones-panel-body .zl-foot {
  padding-top: 6px;
  border-top: 1px dashed var(--ui-border, rgba(0,242,255,.14));
  font-size: 11px;
  color: var(--ui-text-dim, rgba(255,255,255,.56));
  font-style: italic;
  text-align: center;
}
