/* india-map.html — standalone SVG network-map widget. No dc-runtime dependency. */
@import url('https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700;800;900&display=swap');
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:transparent;font-family:'Figtree',-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;color:#fff;-webkit-font-smoothing:antialiased}
#wrap{position:relative;width:100%;min-height:100%;background:linear-gradient(155deg,#0029FF 0%,#0018AA 58%,#000E7A 100%);border-radius:24px;overflow:hidden}
#grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse 85% 85% at 50% 45%,#000 20%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 85% 85% at 50% 45%,#000 20%,transparent 100%)}
#layout{position:relative;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:12px;padding:14px;align-items:stretch}
@media (max-width:820px){#layout{grid-template-columns:minmax(0,1fr);gap:14px}}
#stagewrap{position:relative;min-width:0}
svg{display:block;width:100%;height:auto;overflow:visible;touch-action:manipulation}
.land path{fill:rgba(255,255,255,.11);stroke:none}
.land{filter:drop-shadow(0 0 1.1px rgba(255,255,255,.62)) drop-shadow(0 0 4px rgba(255,255,255,.16))}
.pin{cursor:pointer}
.pin-dot{fill:#FFFF00;transition:r .2s cubic-bezier(.2,0,0,1)}
.pin-hit{fill:transparent}
.pin-ring{fill:none;stroke:#FFFF00;stroke-width:1.2;opacity:0}
.pin.big .pin-dot{fill:#FFFF00}
.pin.on .pin-dot{fill:#fff}
.pin-label{font-size:11px;font-weight:700;fill:rgba(255,255,255,.72);pointer-events:none;opacity:0;transition:opacity .2s ease}
.pin.on .pin-label,.pin.hover .pin-label{opacity:1}
.pin{pointer-events:none}
.arc{fill:none;stroke:#FFFF00;stroke-width:1.4;stroke-linecap:round;opacity:.9}
#hud{position:absolute;top:14px;left:14px;display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase;color:rgba(255,255,255,.75);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:100px;padding:6px 12px;backdrop-filter:blur(8px);pointer-events:none}
#hud i{width:6px;height:6px;border-radius:50%;background:#FFFF00;animation:blink 1.6s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
#side{display:flex;flex-direction:column;gap:9px;min-width:0}
#hint{font-size:11.5px;line-height:1.5;color:rgba(255,255,255,.5)}
.detail{flex:1;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:13px;backdrop-filter:blur(14px);display:flex;flex-direction:column}
.dcity{font-size:17px;font-weight:900;letter-spacing:-.6px;line-height:1.15;margin:0}
.dstate{font-size:12px;color:rgba(255,255,255,.62);margin-bottom:9px}
.drow{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:5px 0;border-top:1px solid rgba(255,255,255,.14);font-size:12px;color:rgba(255,255,255,.66)}
.drow b{font-size:13.5px;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}
.drow.hl b{color:#FFFF00}
.dbar{height:3px;border-radius:2px;background:rgba(255,255,255,.16);overflow:hidden;margin-top:auto}
.dbar i{display:block;height:100%;width:0;background:#FFFF00;border-radius:2px}
.detail.swap{animation:cardIn .3s cubic-bezier(.2,0,0,1)}
@keyframes cardIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
#footnote{padding:0 14px 11px;font-size:11.5px;color:rgba(255,255,255,.5)}
@media (prefers-reduced-motion:reduce){#hud i{animation:none}}
