.attack-map-section,.threat-map-section{margin-bottom:var(--space-5);padding-block:0}.attack-map-section__header{margin-bottom:var(--space-4)}.attack-map-card{position:relative;overflow:hidden;border-radius:var(--radius-xl);border:1px solid var(--glass-border);background:linear-gradient( 145deg,color-mix(in srgb,var(--color-cyan) 6%,var(--color-surface)) 0%,var(--color-surface) 45%,color-mix(in srgb,var(--color-emerald) 4%,var(--color-surface)) 100% );box-shadow:var(--shadow-card-halo)}.attack-map-card__head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-2)}.attack-map-card__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted)}.attack-map-card__legend{display:inline-flex;align-items:center;gap:var(--space-1)}.attack-map-card__legend--attack i{color:var(--color-cyan);font-size:0.45rem}.attack-map-card__legend--flow i{color:var(--color-cyan);background:linear-gradient(90deg,var(--color-cyan),var(--color-emerald));-webkit-background-clip:text;background-clip:text;color:transparent}.attack-map-card__legend--sensor i{color:var(--color-emerald)}.attack-map-card__meta[data-threat-map-meta]{margin-left:auto;font-weight:600;color:var(--color-text-muted)}.attack-map-card__live-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;letter-spacing:0.06em;color:var(--color-cyan);background:color-mix(in srgb,var(--severity-critical) 12%,transparent);border:1px solid color-mix(in srgb,var(--severity-critical) 35%,transparent)}.attack-map-card__live-badge--compact{margin-right:var(--space-2);vertical-align:middle}.attack-map-card__live-dot{width:8px;height:8px;border-radius:50%;background:var(--severity-critical);box-shadow:0 0 8px color-mix(in srgb,var(--severity-critical) 60%,transparent);animation:pulseDot 1.5s ease-in-out infinite}.attack-map-card__updated{margin:0 0 var(--space-2);padding:0 var(--space-4);font-size:var(--text-xs);color:var(--color-text-muted)}.dot-map-canvas--updating,.attack-map-canvas--updating{transition:opacity 0.28s ease;opacity:0.82}.dot-map-canvas--updating .dot-map__dot,.dot-map-canvas--updating .dot-map__arc{transition:opacity 0.28s ease,transform 0.28s ease}@media (prefers-reduced-motion:reduce){.attack-map-card__live-dot{animation:none}.dot-map-canvas--updating,.attack-map-canvas--updating{transition:none;opacity:1}}.attack-map-card__title{display:flex;align-items:center;gap:var(--space-2);margin:0;font-family:var(--font-display);font-size:var(--text-md);font-weight:700;color:var(--color-text)}.attack-map-card__title i{color:var(--color-cyan)}.attack-map-card__meta{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-text-muted)}.attack-map-card__stats{display:flex;flex-wrap:wrap;gap:var(--space-2)}.attack-map-card__stat{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;background:color-mix(in srgb,var(--color-cyan) 12%,transparent);color:var(--color-cyan);border:1px solid color-mix(in srgb,var(--color-cyan) 28%,transparent)}.attack-map-card__stat--sensor{background:color-mix(in srgb,var(--color-emerald) 12%,transparent);color:var(--color-emerald);border-color:color-mix(in srgb,var(--color-emerald) 28%,transparent)}.attack-map-card__body{position:relative;padding:0 var(--space-2) var(--space-2)}.attack-map,.attack-map-canvas{position:relative;min-height:420px;height:clamp(420px,42vw,480px);border-radius:var(--radius-lg);overflow:hidden;isolation:isolate;background:#0a0e1a}.attack-map::before,.attack-map-canvas::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 60px color-mix(in srgb,var(--color-cyan) 18%,transparent)}.attack-map .leaflet-container,.attack-map-canvas .leaflet-container{position:relative;z-index:2;width:100%;height:100%;min-height:inherit;background:#0a0e1a;font-family:var(--font-sans);touch-action:none}.attack-map-canvas .leaflet-pane.leaflet-tile-pane img.leaflet-tile{visibility:visible !important}.attack-map .leaflet-control-attribution,.attack-map-canvas .leaflet-control-attribution{background:color-mix(in srgb,#0a0e1a 85%,transparent) !important;color:color-mix(in srgb,var(--color-text-muted) 80%,#fff) !important;font-size:0.65rem;padding:2px 6px;border-radius:var(--radius-sm) 0 0 0}.attack-map .leaflet-control-attribution a,.attack-map-canvas .leaflet-control-attribution a{color:var(--color-cyan) !important}.attack-map__empty-note{margin:var(--space-2) var(--space-2) 0;font-size:var(--text-xs);color:var(--color-text-muted);text-align:center}.attack-map-canvas__error{position:absolute;inset:0;z-index:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);text-align:center;font-size:var(--text-sm);color:#fca5a5;background:linear-gradient(180deg,#0a0e1a 0%,#1a1020 100%)}.attack-map-canvas__error i{font-size:1.25rem;color:#f87171}.attack-map__empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--space-4);text-align:center;font-size:var(--text-sm);color:var(--color-text-muted);z-index:500;background:linear-gradient(180deg,#0a0e1a 0%,#111827 100%)}.attack-map-marker--attack{width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#67e8f9,var(--color-cyan));border:2px solid color-mix(in srgb,var(--color-cyan) 60%,#fff);box-shadow:0 0 12px color-mix(in srgb,var(--color-cyan) 70%,transparent),0 0 24px color-mix(in srgb,var(--color-cyan) 35%,transparent);animation:attackMapPulse 2.4s ease-in-out infinite}.attack-map-marker-wrap{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}.attack-map-marker-wrap--sensor{gap:4px}.attack-map-marker__label{display:block;padding:2px 8px;border-radius:var(--radius-sm);font-size:0.65rem;font-weight:700;letter-spacing:0.02em;white-space:nowrap;color:#ecfdf5;background:color-mix(in srgb,var(--color-emerald) 55%,#0a0e1a);border:1px solid color-mix(in srgb,var(--color-emerald) 70%,#fff);box-shadow:0 2px 10px rgba(16,185,129,0.35);pointer-events:none}.attack-map-marker--sensor{position:relative;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#6ee7b7,var(--color-emerald));border:3px solid #ecfdf5;box-shadow:0 0 16px color-mix(in srgb,var(--color-emerald) 85%,transparent),0 0 0 4px color-mix(in srgb,var(--color-emerald) 25%,transparent);animation:attackMapSensorPulse 1.8s ease-in-out infinite}.attack-map-marker--sensor::before,.attack-map-marker--sensor::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid color-mix(in srgb,var(--color-emerald) 55%,transparent);pointer-events:none;animation:attackMapSensorRing 2.4s ease-out infinite}.attack-map-marker--sensor::after{animation-delay:1.2s;inset:-10px;border-color:color-mix(in srgb,var(--color-emerald) 35%,transparent)}@keyframes attackMapPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:0.85}}@keyframes attackMapSensorPulse{0%,100%{transform:scale(1);box-shadow:0 0 16px color-mix(in srgb,var(--color-emerald) 75%,transparent)}50%{transform:scale(1.18);box-shadow:0 0 36px color-mix(in srgb,var(--color-emerald) 95%,transparent)}}@keyframes attackMapSensorRing{0%{transform:scale(0.65);opacity:0.85}100%{transform:scale(1.65);opacity:0}}.attack-map-tooltip{padding:var(--space-2) var(--space-3) !important;border-radius:var(--radius-md) !important;border:1px solid color-mix(in srgb,var(--color-cyan) 35%,transparent) !important;background:color-mix(in srgb,#0a0e1a 92%,var(--color-cyan)) !important;color:#e2e8f0 !important;font-size:var(--text-xs) !important;line-height:1.45 !important;box-shadow:var(--shadow-3) !important}.attack-map-tooltip strong{display:block;font-family:var(--font-display);color:var(--color-cyan);margin-bottom:2px}.attack-map-tooltip span{display:block;color:#94a3b8}.threat-map-popup-shell .leaflet-popup-content-wrapper{background:color-mix(in srgb,#0a0e1a 94%,var(--color-cyan));border:1px solid color-mix(in srgb,var(--color-cyan) 35%,transparent);border-radius:var(--radius-md);box-shadow:var(--shadow-3);color:#e2e8f0}.threat-map-popup-shell .leaflet-popup-tip{background:color-mix(in srgb,#0a0e1a 94%,var(--color-cyan));border:1px solid color-mix(in srgb,var(--color-cyan) 25%,transparent)}.threat-map-popup strong{display:block;font-family:var(--font-display);font-size:var(--text-sm);color:var(--color-cyan);margin-bottom:var(--space-1)}.threat-map-popup span{display:block;font-size:var(--text-xs);color:#94a3b8;margin-bottom:var(--space-2)}.threat-map-popup__link{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:700;color:var(--color-emerald);text-decoration:none}.threat-map-popup__link:hover{text-decoration:underline}.threat-map-popup__link:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset);border-radius:var(--radius-sm)}.attack-map-arcs{pointer-events:none;z-index:450}.attack-map-canvas--loading .attack-map-canvas__skeleton{display:flex}.attack-map-canvas__skeleton{display:none;position:absolute;inset:0;align-items:center;justify-content:center;gap:var(--space-2);background:color-mix(in srgb,var(--color-navy-soft) 88%,var(--color-cyan));z-index:2;pointer-events:none}.attack-map-canvas__skeleton span{width:0.5rem;height:0.5rem;border-radius:50%;background:var(--color-cyan);opacity:0.5;animation:mapSkeletonPulse 1.2s ease-in-out infinite}.attack-map-canvas__skeleton span:nth-child(2){animation-delay:0.15s}.attack-map-canvas__skeleton span:nth-child(3){animation-delay:0.3s}@keyframes mapSkeletonPulse{0%,100%{opacity:0.35;transform:scale(0.85)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.attack-map-canvas__skeleton span{animation:none;opacity:0.6}}.attack-map-legend{display:flex;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-2) var(--space-4) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted)}.attack-map-legend__item{display:inline-flex;align-items:center;gap:var(--space-1)}.attack-map-legend__dot{width:8px;height:8px;border-radius:50%}.attack-map-legend__dot--attack{background:var(--color-cyan);box-shadow:0 0 8px var(--color-cyan)}.attack-map-legend__dot--sensor{background:var(--color-emerald);box-shadow:0 0 8px var(--color-emerald)}.attack-map-legend__dot--arc{width:18px;height:2px;border-radius:1px;background:linear-gradient(90deg,var(--color-cyan),var(--color-emerald))}@media (max-width:375px){.attack-map-card__toolbar{font-size:0.65rem;gap:var(--space-1)}.attack-map-legend{flex-direction:column;align-items:flex-start;gap:var(--space-1);padding-inline:var(--space-3)}.attack-map,.attack-map-canvas{min-height:400px;height:clamp(400px,52vw,440px)}}@media (max-width:640px){.attack-map-card__head{flex-direction:column}.attack-map-card__toolbar{flex-direction:column;align-items:flex-start}.attack-map-card__meta[data-threat-map-meta]{margin-left:0}.attack-map,.attack-map-canvas{min-height:400px;height:clamp(400px,55vw,440px)}}@media (prefers-reduced-motion:reduce){.attack-map-marker--attack,.attack-map-marker--sensor,.dot-map__dot--active,.dot-map__dot--warn,.dot-map__dot--sensor,.dot-map__arc{animation:none}.attack-map-marker--sensor::before,.attack-map-marker--sensor::after{animation:none;opacity:0.35}}.dot-map-canvas{position:relative;display:flex;align-items:stretch;justify-content:stretch;min-height:clamp(280px,42vw,420px);height:clamp(280px,42vw,420px);border-radius:var(--radius-lg);overflow:hidden;isolation:isolate;background:radial-gradient(ellipse 80% 60% at 50% 50%,color-mix(in srgb,var(--color-cyan) 8%,#0a0e1a) 0%,#0a0e1a 100%)}.dot-map-canvas--loading .dot-map-canvas__skeleton,.attack-map-canvas--loading .attack-map-canvas__skeleton{display:flex}.dot-map-canvas__skeleton{display:none;position:absolute;inset:0;align-items:center;justify-content:center;gap:var(--space-2);background:color-mix(in srgb,var(--color-navy-soft) 88%,var(--color-cyan));z-index:3;pointer-events:none}.dot-map,.home-map{position:relative;width:100%;height:100%;min-height:inherit;display:flex;flex-direction:column;padding:var(--space-3);box-sizing:border-box}.dot-map--mini,.home-map--mini,.home-map{min-height:auto;height:auto;padding:var(--space-2) var(--space-4) var(--space-3)}.dot-map__grid,.home-map__grid{position:relative;z-index:1;display:grid;gap:2px;flex:1;width:100%;opacity:0.85}.dot-map:not(.dot-map--mini) .dot-map__grid{aspect-ratio:2 / 1;min-height:100%}.dot-map--mini .dot-map__grid,.home-map .home-map__grid{grid-template-columns:repeat(24,1fr);aspect-ratio:2 / 1;max-height:min(68px,11vw)}.dot-map__dot,.home-map__dot{width:100%;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,0.04);transition:background var(--transition-fast),box-shadow var(--transition-fast)}.dot-map__dot--active,.home-map__dot--active{background:var(--color-cyan);box-shadow:0 0 6px color-mix(in srgb,var(--color-cyan) 45%,transparent);animation:dotMapPulse 4s ease-in-out infinite}.dot-map__dot--warn,.home-map__dot--warn{background:var(--severity-high);box-shadow:0 0 8px rgba(249,115,22,0.55);animation:dotMapPulse 3s ease-in-out infinite}.dot-map__dot--sensor,.home-map__dot--sensor{background:var(--color-emerald);box-shadow:0 0 10px color-mix(in srgb,var(--color-emerald) 70%,transparent);animation:dotMapSensorPulse 2s ease-in-out infinite}@keyframes dotMapPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.65;transform:scale(0.88)}}@keyframes dotMapSensorPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.9;transform:scale(1.25)}}.dot-map__arcs{position:absolute;inset:var(--space-3);width:calc(100% - var(--space-3) * 2);height:calc(100% - var(--space-3) * 2);z-index:2;pointer-events:none;opacity:0.55}.dot-map__arc{fill:none;stroke:url(#dotMapArcGrad);stroke-width:0.08;stroke-linecap:round;stroke-dasharray:0.4 0.35;animation:dotMapArcFlow 3s linear infinite}.dot-map__arcs defs{display:none}.dot-map:not(.dot-map--mini)::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 60%,rgba(6,9,18,0.5) 100%);z-index:2}@keyframes dotMapArcFlow{to{stroke-dashoffset:1.2}}.dot-map--peak .dot-map__dot--active,.home-map--peak .home-map__dot--active{background:var(--severity-high);box-shadow:0 0 8px rgba(249,115,22,0.55)}.dot-map__legend,.home-map__legend{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);z-index:3}.dot-map--mini .dot-map__legend,.home-map .home-map__legend{font-size:0.65rem;opacity:0.55}.dot-map__legend-item--active,.home-map__legend-item--active{opacity:1;font-weight:600;color:var(--color-text)}.dot-map__legend-dot--normal,.home-map__legend-dot--normal{color:var(--color-cyan)}.dot-map__legend-dot--warn,.home-map__legend-dot--warn{color:var(--severity-high)}.dot-map__legend-dot--sensor,.home-map__legend-dot--sensor{color:var(--color-emerald)}