.waf-map-page { max-width:1600px; }
.waf-map-back { display:inline-block; margin-bottom:18px; text-decoration:none; font-weight:800; }
.waf-map-shell { color:#e8f1fa; background:radial-gradient(ellipse at 35% 15%,#16364b,#0a1728 70%); border:1px solid #29445c; border-radius:14px; padding:26px; margin:20px 0 28px; box-shadow:0 18px 50px #0a213025; }
.waf-map-shell .eyebrow { color:#6ad6ed; margin-bottom:8px; }
.waf-map-shell h2 { color:#f4f8fc; font-size:30px; }
.waf-map-heading { display:flex; justify-content:space-between; gap:24px; align-items:flex-start; }
.waf-map-heading p:not(.eyebrow) { color:#a6bfd1; max-width:850px; font-size:14px; line-height:1.6; margin-bottom:0; }
.waf-map-badge { flex-shrink:0; border-radius:30px; padding:10px 14px; border:1px solid #408a7e; color:#77e6cb; background:#0d3532; font-size:12px; font-weight:800; }
.waf-map-badge.waf-map-warning { color:#ffce8f; border-color:#a47b46; background:#3b2c1b; }
.waf-map-controls { display:flex; align-items:end; gap:12px; flex-wrap:wrap; margin:24px 0; }
.waf-map-windows { display:flex; gap:7px; flex-wrap:wrap; margin-right:auto; }
.waf-map-shell button { min-height:38px; border:1px solid #3c586d; border-radius:7px; padding:7px 13px; box-shadow:none; background:#183246; color:#d9e8f3; cursor:pointer; font-weight:700; font-size:13px; }
.waf-map-shell button:hover { background:#254b64; }
.waf-map-shell button[aria-pressed=true] { border-color:#60d7ed; background:#146386; color:white; }
.waf-map-shell button:focus-visible, .waf-map-shell select:focus-visible { outline:3px solid #ffce78; outline-offset:3px; }
.waf-map-server { display:flex; flex-direction:column; gap:6px; font-size:12px; color:#9fbacf; }
.waf-map-server select { background:#183246; border:1px solid #3c586d; border-radius:7px; padding:9px 12px; color:#e8f1fa; font:inherit; min-width:180px; }
.waf-map-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; padding:18px 0 24px; border-top:1px solid #28445a; }
.waf-map-stats span { display:flex; flex-direction:column; gap:6px; font-size:12px; color:#a7c0d2; }
.waf-map-stats strong { font-size:30px; color:#f6fafc; letter-spacing:-.5px; }
.waf-map-layout { display:grid; grid-template-columns:minmax(0,1fr) 240px; gap:22px; align-items:start; }
.waf-map-canvas { position:relative; background:#091725; border:1px solid #284055; border-radius:10px; overflow:hidden; }
.waf-map-canvas svg { display:block; width:100%; height:auto; min-height:260px; }
.waf-map-grid line { stroke:#264052; stroke-width:.4; stroke-dasharray:2 7; }
.waf-map-land path { fill:#1a3449; stroke:#3e5e73; stroke-width:.55; transition:fill .5s; }
.waf-map-land path[role=button] { cursor:pointer; }
.waf-map-land path:hover, .waf-map-land path:focus, .waf-map-land path.waf-map-selected { stroke:#f6ebba; stroke-width:1.7; outline:none; }
.waf-map-flow { stroke-dasharray:5 10; opacity:.85; animation:waf-route-flow 8s linear infinite; pointer-events:stroke; cursor:pointer; filter:drop-shadow(0 0 3px #9bd3ef33); }
.waf-map-origin { opacity:.95; pointer-events:none; }
.waf-map-targets text { fill:white; font:bold 11px 'Segoe UI',sans-serif; stroke:#0a1728; stroke-width:4; paint-order:stroke; stroke-linejoin:round; }
.waf-map-target[role=button] { cursor:pointer; }
.waf-map-target:focus { outline:none; }
.waf-map-target:focus circle { stroke:#ffd381; stroke-width:3; }
.waf-map-target-list { display:grid; gap:7px; margin:12px 0 24px; }
.waf-map-shell .waf-map-target-legend { display:flex; width:100%; justify-content:space-between; align-items:center; gap:8px; border-left-width:4px; padding:10px; font-size:12px; }
.waf-map-target-legend strong { color:#fff; }
.waf-map-empty { position:absolute; left:12%; right:12%; bottom:20px; text-align:center; padding:14px; border-radius:8px; color:#b8cfdf; background:#0a1728e8; border:1px solid #39556b; font-size:13px; }
.waf-map-empty[hidden] { display:none; }
.waf-map-layout aside h3 { margin:0 0 10px; font-size:17px; }
.waf-map-help { color:#9cb8ca; font-size:12px; line-height:1.6; margin:0 0 16px; }
.waf-map-country-list { max-height:390px; overflow-y:auto; padding-right:5px; }
.waf-map-shell .waf-map-country-row { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:36px; width:100%; border:0; border-bottom:1px solid #284357; border-radius:0; background:transparent; text-align:left; color:#d8e7f2; font-size:13px; padding:9px 3px; }
.waf-map-country-row strong { color:#ffc38b; }
.waf-map-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; margin-top:20px; padding-top:16px; border-top:1px solid #284357; color:#a6bed0; font-size:12px; }
.waf-map-disclaimer { color:#8faec3; font-size:11px; line-height:1.65; margin:18px 0 0; }
.waf-map-disclaimer a, .waf-map-private a { color:#79d5f4; }
.waf-map-private { margin-top:30px; padding-top:25px; border-top:1px solid #39576d; }
.waf-map-private .section-head { gap:18px; }
.waf-map-private h2 { font-size:24px; }
.waf-map-private [data-map-selection] { font-size:13px; color:#a7bfd0; line-height:1.6; }
.waf-map-routes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:20px 0; }
.waf-map-shell .waf-map-target-stat { display:flex; align-items:start; text-align:left; flex-direction:column; gap:8px; padding:16px; background:#102c40; border-top-width:3px; }
.waf-map-target-stat strong { font-size:25px; color:white; }
.waf-map-target-stat small { color:#a9bdcd; font-size:11px; }
.waf-map-private table { min-width:1050px; }
.waf-map-private th { background:#17364d; color:#acc8dc; }
.waf-map-private td { color:#d5e5f0; border-color:#28455c; font-size:13px; }
.waf-map-private .waf-cell-secondary { color:#95b3c8; }
.waf-map-shell:fullscreen { border-radius:0; margin:0; overflow-y:auto; padding:30px; }
.waf-map-shell:fullscreen .waf-map-layout { grid-template-columns:minmax(0,1fr) 270px; }
.waf-map-shell:fullscreen .waf-map-canvas svg { max-height:65vh; }
@keyframes waf-route-flow { to { stroke-dashoffset:-120; } }
@media (prefers-reduced-motion:reduce) { .waf-map-flow { animation:none; stroke-dasharray:none; } .waf-map-land path { transition:none; } }
@media (max-width:1000px) { .waf-map-layout { grid-template-columns:1fr; } .waf-map-country-list { max-height:220px; display:grid; grid-template-columns:1fr 1fr; gap:0 20px; } }
@media (max-width:640px) {
  .waf-map-shell { padding:16px 12px; }
  .waf-map-heading { flex-direction:column; gap:14px; }
  .waf-map-shell h2 { font-size:24px; }
  .waf-map-stats { grid-template-columns:1fr 1fr; }
  .waf-map-stats strong { font-size:26px; }
  .waf-map-canvas svg { min-height:0; }
  .waf-map-routes { grid-template-columns:1fr; }
  .waf-map-country-list { grid-template-columns:1fr; }
}
