*{box-sizing:border-box}
:root{
  --bg:#0a0d12;
  --panel:#11161e;
  --panel2:#171d27;
  --text:#f3f5f7;
  --muted:#8f99aa;
  --border:#28303c;
  --accent:#ff4242;
  --green:#42d392;
}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
body{min-height:100vh}
button{font:inherit}
.topbar{
  min-height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:14px 28px;
  border-bottom:1px solid var(--border);
  background:#0d1117;
  position:sticky;
  top:0;
  z-index:20;
}
.brand{display:flex;align-items:center;gap:14px}
.brand h1{font-size:22px;line-height:1;margin:0 0 5px}
.brand p{margin:0;color:var(--muted);font-size:11px;letter-spacing:.14em}
.radar-dot{width:18px;height:18px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px rgba(255,66,66,.12)}
.live-pill{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #294635;background:#11251c;border-radius:999px;color:#aef3cf;font-size:12px;font-weight:800;letter-spacing:.08em}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--green);animation:blink 1.2s infinite}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;padding:18px;max-width:1480px;margin:0 auto}
.map-card,.panel{background:var(--panel);border:1px solid var(--border);border-radius:18px}
.map-card{padding:18px}
.map-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.map-head h2{margin:5px 0 0;font-size:20px}
.eyebrow{font-size:11px;color:var(--muted);font-weight:800;letter-spacing:.12em}
.map-actions{display:flex;gap:8px;flex-wrap:wrap}
.map-actions button{border:1px solid var(--border);background:#171d27;color:var(--text);border-radius:10px;padding:10px 13px;cursor:pointer}
.map-actions button:hover{background:#202735}
.map-wrap{position:relative;overflow:hidden;border-radius:16px;background:#0d141d;min-height:620px}
.map{width:100%;height:100%;min-height:620px;display:block}
.sea{fill:#101923}
.land{fill:#1d2834;stroke:#435161;stroke-width:3}
.region-line{fill:none;stroke:#334050;stroke-width:2;stroke-dasharray:7 8}
.city circle{fill:#9eabb8}
.city text{fill:#d7dde4;font-size:17px;font-weight:650}
.route{fill:none;stroke:var(--accent);stroke-width:5;stroke-linecap:round;stroke-dasharray:8 12;opacity:.75}
.map-label{position:absolute;left:16px;bottom:14px;color:#788493;font-size:10px;font-weight:800;letter-spacing:.12em;background:rgba(6,10,15,.7);padding:7px 9px;border-radius:8px}
.avatar-marker{position:absolute;left:56%;top:19%;width:76px;height:76px;transform:translate(-50%,-50%);z-index:5;transition:filter .2s}
.avatar-marker img{width:76px;height:76px;border-radius:50%;object-fit:cover;border:4px solid white;box-shadow:0 10px 24px rgba(0,0,0,.4);position:relative;z-index:2}
.pulse{position:absolute;inset:-10px;border-radius:50%;border:2px solid rgba(255,66,66,.8);animation:pulse 1.6s ease-out infinite}
.marker-label{position:absolute;left:50%;top:82px;transform:translateX(-50%);background:#0b0f15;border:1px solid #333d4a;padding:7px 10px;border-radius:9px;white-space:nowrap;text-align:center;box-shadow:0 8px 20px rgba(0,0,0,.3)}
.marker-label strong{display:block;font-size:11px;letter-spacing:.12em}
.marker-label span{display:block;color:#a9b3c1;font-size:10px;margin-top:2px}
.sidebar{display:flex;flex-direction:column;gap:18px}
.panel{padding:16px}
.person{display:flex;gap:12px;align-items:center;margin:12px 0 16px}
.person img{width:56px;height:56px;border-radius:14px;object-fit:cover;border:1px solid var(--border)}
.person h3{margin:0 0 4px}
.person p{margin:0;color:var(--muted);font-size:13px;line-height:1.4}
.stats{display:grid;grid-template-columns:1fr;gap:8px}
.stats>div{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--border)}
.stats span{color:var(--muted);font-size:12px}
.stats strong{font-size:12px;text-align:right}
.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
#clock{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.log{display:flex;flex-direction:column;gap:8px}
.log-item{padding:11px;background:var(--panel2);border:1px solid #27313d;border-radius:10px}
.log-item strong{display:block;font-size:12px;margin-bottom:3px}
.log-item span{font-size:11px;color:var(--muted)}
.warning{background:#17130d;border-color:#43351f}
.warning strong{font-size:13px;color:#ffd99b}
.warning p{margin:7px 0 0;color:#b7a88c;font-size:12px;line-height:1.55}
@keyframes pulse{0%{transform:scale(.75);opacity:1}100%{transform:scale(1.35);opacity:0}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.35}}
@media (max-width:960px){
  .layout{grid-template-columns:1fr}
  .sidebar{display:grid;grid-template-columns:1fr 1fr}
  .sidebar .warning{grid-column:1/-1}
}
@media (max-width:640px){
  .topbar{padding:12px 14px}
  .brand p{display:none}
  .layout{padding:10px}
  .map-card{padding:12px}
  .map-head{align-items:flex-start;flex-direction:column}
  .map-wrap{min-height:520px}
  .map{min-height:520px}
  .sidebar{grid-template-columns:1fr}
  .sidebar .warning{grid-column:auto}
  .avatar-marker,.avatar-marker img{width:62px;height:62px}
  .marker-label{top:67px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;scroll-behavior:auto!important}
}
