:root{
  --bg:#05070a;--panel:#0b0f14;--panel2:#0e141b;--edge:#16202b;
  --grn:#39ff14;--grn2:#0aff9d;--red:#ff2e4e;--gold:#ffd23f;--dim:#5c7080;--txt:#c8f7d8;--white:#eafff0;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{
  background:
    radial-gradient(1400px 700px at 50% -10%,rgba(57,255,20,.06),transparent 60%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 3px),
    var(--bg);
  color:var(--txt);font-family:ui-monospace,"JetBrains Mono","Courier New",monospace;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--grn);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1000px;margin:0 auto;padding:16px}
.nav{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--edge);padding:12px 16px;
  position:sticky;top:0;background:linear-gradient(180deg,#070a0e,rgba(7,10,14,.85));backdrop-filter:blur(6px);z-index:50;flex-wrap:wrap}
.brand{font-size:19px;letter-spacing:3px;color:var(--white);font-weight:700}
.brand b{color:var(--red)}
.nav a{color:var(--dim);letter-spacing:1px;font-size:13px;padding:6px 4px}
.nav a.on,.nav a:hover{color:var(--grn);text-decoration:none}
.spacer{flex:1}
.tag{font-size:11px;color:var(--dim);border:1px solid var(--edge);border-radius:6px;padding:3px 8px}
.hero{text-align:center;padding:46px 16px 26px}
.hero h1{font-size:46px;letter-spacing:6px;margin:0;color:var(--white)}
.hero h1 b{color:var(--red);text-shadow:0 0 22px rgba(255,46,78,.4)}
.hero p{color:var(--dim);max-width:560px;margin:12px auto;font-size:14px;line-height:1.6}
.cursor{display:inline-block;width:12px;height:34px;background:var(--grn);margin-left:4px;animation:blink 1s steps(1) infinite;vertical-align:-4px}
@keyframes blink{50%{opacity:0}}
.grid{display:grid;gap:14px}
.g3{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.card{border:1px solid var(--edge);border-radius:14px;background:linear-gradient(180deg,var(--panel2),var(--panel));
  box-shadow:0 0 0 1px #000 inset,0 10px 34px rgba(0,0,0,.4)}
.card h2{margin:0;padding:11px 14px;font-size:12px;letter-spacing:2px;color:var(--grn2);border-bottom:1px solid var(--edge);background:#080c10}
.card .pad{padding:14px}
.stat{border:1px solid var(--edge);border-radius:12px;padding:16px;text-align:center;background:#080c10}
.stat .n{font-size:30px;color:var(--grn);text-shadow:0 0 14px rgba(57,255,20,.35)}
.stat .l{font-size:11px;color:var(--dim);letter-spacing:1px;margin-top:4px}
label{display:block;font-size:11px;letter-spacing:1px;color:var(--dim);margin:10px 0 5px}
input,textarea,select{width:100%;background:#05080b;color:var(--grn2);border:1px solid var(--edge);border-radius:9px;padding:11px;font:inherit}
input:focus,textarea:focus{outline:none;border-color:var(--grn)}
.btn{background:linear-gradient(180deg,#0f1a12,#0a1410);color:var(--grn);border:1px solid #1c3a24;border-radius:10px;
  padding:11px 16px;font:inherit;letter-spacing:2px;cursor:pointer;text-shadow:0 0 8px rgba(57,255,20,.4)}
.btn:hover{border-color:var(--grn)}
.btn:active{transform:translateY(1px)}
.btn.red{color:var(--red);border-color:#40202a;background:linear-gradient(180deg,#1a0f12,#140a0d);text-shadow:0 0 8px rgba(255,46,78,.4)}
.btn.ghost{background:transparent;color:var(--dim);border-color:var(--edge);text-shadow:none}
.btn.wide{width:100%}
.row{display:flex;gap:10px;flex-wrap:wrap}
.key{font-family:ui-monospace,monospace;background:#05080b;border:1px solid var(--edge);border-radius:8px;padding:9px;color:var(--gold);word-break:break-all;font-size:13px}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:9px 12px;border-bottom:1px solid #0e161d;white-space:nowrap}
th{color:var(--dim);font-weight:400;font-size:10px;letter-spacing:1px}
.rank1{color:var(--gold)}.rank2{color:#cfe}.rank3{color:#c98}
.badge{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--edge);border-radius:20px;padding:5px 12px;font-size:12px;background:#080c10;margin:3px}
.pill{font-size:10px;padding:2px 8px;border-radius:6px;border:1px solid var(--edge);color:var(--dim)}
.pill.grn{color:var(--grn);border-color:#1c3a24}.pill.red{color:var(--red);border-color:#40202a}
#map{height:420px;border-radius:12px;border:1px solid var(--edge);overflow:hidden}
.leaflet-container{background:#05070a!important}
.msg{font-size:12px;color:var(--grn2);min-height:16px;margin-top:8px}
.msg.err{color:var(--red)}
.hidden{display:none}
.mut{color:var(--dim);font-size:12px}
.shopitem{border:1px solid var(--edge);border-radius:12px;padding:14px;text-align:center;background:#080c10}
.shopitem .ic{font-size:30px}
.shopitem .nm{color:var(--white);margin:6px 0}
.shopitem .co{color:var(--gold);font-size:13px}
.footer{color:var(--dim);text-align:center;padding:30px 16px;font-size:12px;border-top:1px dashed var(--edge);margin-top:30px}
