@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@500;600;700&family=Share+Tech+Mono&display=swap');
:root{--bg:#020b10;--panel:#07151d;--panel2:#0b2430;--cyan:#05c8f7;--cyan2:#07a4c8;--yellow:#ffd91a;--ink:#dff7ff;--muted:#8db8c2;--red:#ff4d3d;--edge:#0b0f14;}
*{box-sizing:border-box} body{margin:0;background:radial-gradient(circle at 50% 45%,#0b3441 0,#03151d 45%,#010609 100%);color:var(--ink);font-family:Rajdhani,Arial,sans-serif;overflow:hidden}button,select,input{font:inherit} a{color:var(--yellow)}
.loading{position:fixed;inset:0;z-index:999;display:grid;place-content:center;gap:14px;text-align:center;background:#02090d;color:var(--cyan);font-family:'Share Tech Mono',monospace;letter-spacing:.14em}.loader-mark{font-size:42px;animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading.hidden{opacity:0;pointer-events:none;transition:.4s}
#app{height:100vh;width:100vw;position:relative}.titlebar{position:absolute;z-index:30;top:18px;left:24px;right:24px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.titlebar>*{pointer-events:auto}h1{margin:0;font-size:clamp(28px,5.2vw,78px);line-height:.86;letter-spacing:.035em;text-transform:uppercase;text-shadow:0 0 12px rgba(5,200,247,.7),0 0 32px rgba(255,217,26,.18)}.glitch{position:relative;color:#f4fcff}.glitch:before,.glitch:after{content:attr(data-text);position:absolute;left:0;top:0;opacity:.38;clip-path:inset(0 0 0 0)}.glitch:before{transform:translate(2px,-1px);color:var(--cyan);animation:glint 3.8s infinite}.glitch:after{transform:translate(-2px,1px);color:var(--yellow);animation:glint 5.4s infinite reverse}@keyframes glint{0%,92%,100%{clip-path:inset(0 0 0 0)}94%{clip-path:inset(45% 0 42% 0)}96%{clip-path:inset(12% 0 70% 0)}}.dek{margin:.55rem 0 0;color:#b6eefd;font-family:'Share Tech Mono',monospace;letter-spacing:.08em}
.title-actions{display:flex;gap:10px;align-items:flex-start}.chip{border:2px solid var(--cyan);background:#061822;color:var(--yellow);padding:8px 12px;border-radius:4px;box-shadow:0 0 0 2px #001,0 0 18px rgba(5,200,247,.35);text-transform:uppercase;cursor:pointer}
#mapShell{position:absolute;inset:0;overflow:hidden}#map{width:100%;height:100%;display:block;background:radial-gradient(circle at center,rgba(5,200,247,.16),transparent 55%)}#hudGrid{position:absolute;inset:0;z-index:2;pointer-events:none;background-image:linear-gradient(rgba(5,200,247,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(5,200,247,.05) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(circle at 50% 50%,black,transparent 80%)}
.graticule{fill:none;stroke:#0c5b70;stroke-width:.45;opacity:.42}.sphere{fill:#031015;stroke:#078daf;stroke-width:1.3}.country{stroke:#061116;stroke-width:.75;vector-effect:non-scaling-stroke;cursor:pointer;transition:opacity .18s,stroke .18s}.country:hover{stroke:var(--yellow);stroke-width:1.4}.country.no-data{fill:#10232b;opacity:.44;cursor:default}.country.selected{stroke:#fff;stroke-width:2;filter:drop-shadow(0 0 8px var(--yellow))}
.panel{position:absolute;z-index:40;background:linear-gradient(180deg,rgba(8,31,41,.96),rgba(5,14,20,.93));border:2px solid var(--cyan2);border-radius:4px;box-shadow:0 8px 0 #02070a,0 0 24px rgba(5,200,247,.22);max-width:min(360px,calc(100vw - 30px));clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px))}.panel-header{margin:0;padding:10px 14px;background:#08a7ca;color:white;font-size:22px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.panel-body{padding:14px}.panel.min .panel-body{display:none}.controls{right:24px;top:126px}.stats{left:24px;bottom:30px;width:310px}label{display:block;margin-bottom:12px;color:var(--yellow);text-transform:uppercase;letter-spacing:.06em}select,input{width:100%;background:#061117;color:var(--ink);border:1px solid #1189a2;border-radius:3px;padding:8px;margin-top:4px}input{accent-color:var(--yellow)}.field-hint{margin-top:6px;color:#9bd9e7;font-family:'Share Tech Mono',monospace;font-size:11px;line-height:1.35;text-transform:none;letter-spacing:.02em}.legend{margin-top:12px}.swatch{display:flex;align-items:center;margin:4px 0;font-family:'Share Tech Mono',monospace;font-size:12px}.box{height:14px;width:32px;margin-right:8px;border:1px solid rgba(255,255,255,.26)}#rankList{margin:0;padding-left:24px;font-family:'Share Tech Mono',monospace;color:#dff7ff}#rankList li{margin:7px 0}#rankList b{color:var(--yellow)}
.country-card{position:absolute;z-index:50;min-width:250px;max-width:320px;background:linear-gradient(165deg,#0c2530,#061016 60%);border:2px solid var(--yellow);border-radius:4px;box-shadow:0 12px 0 #02070a,0 0 22px rgba(255,217,26,.25);padding:12px;pointer-events:none;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%)}.country-card.hidden{display:none}.card-title{display:flex;justify-content:space-between;gap:12px;align-items:center;background:var(--yellow);color:#061016;margin:-12px -12px 10px;padding:8px 10px;text-transform:uppercase;font-weight:700}.badge{background:#07151d;color:var(--cyan);border-radius:3px;padding:2px 6px}.status{font-family:'Share Tech Mono';color:#ffef7a;margin-bottom:10px}.kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px}.kpi{border:1px solid #1c6b7b;background:#071820;padding:8px}.kpi span{display:block;font-family:'Share Tech Mono';font-size:11px;color:#96d8e6;text-transform:uppercase}.kpi b{font-size:22px;color:#fff}.attribution{position:absolute;z-index:35;right:20px;bottom:10px;color:#75a9b4;font-family:'Share Tech Mono';font-size:11px}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,5,8,.62);z-index:200;display:grid;place-items:center}.modal-backdrop.hidden{display:none}.modal{position:relative;width:min(720px,92vw);max-height:78vh;overflow:auto;background:#06131a;border:2px solid var(--cyan);border-radius:4px;padding:22px;box-shadow:0 0 50px rgba(5,200,247,.35)}.modal h2{margin-top:0;color:var(--yellow)}.modal-close{position:absolute;right:10px;top:8px;background:none;border:0;color:white;font-size:30px;cursor:pointer}.source{border-top:1px solid #184757;padding:12px 0}.source h3{margin:.2rem 0;color:#fff}.made{color:#9bc7d1}
@media(max-width:760px){.titlebar{left:12px;right:12px;top:10px}.controls{right:12px;top:auto;bottom:84px}.stats{left:12px;bottom:12px;width:260px}.dek{display:none}.panel-header{font-size:18px}.stats{display:none}}
