:root{
  --bg:#03121a;
  --panel:#071a22;
  --accent:#00c6d8; /* default digital blue */
  --muted:#3b5661;
  --danger:#ff4d4f;
  --glass: rgba(255,255,255,0.03);
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
}
body{margin:0;background:linear-gradient(180deg,var(--bg),#00111a);color:#bfeff3;overflow:hidden}
.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:linear-gradient(180deg, rgba(0,0,0,0.15), transparent);border-bottom:1px solid rgba(0,200,216,0.06)}
.brand{display:flex;align-items:center;gap:12px}
.avatar{width:44px;height:44px;border-radius:8px;background:radial-gradient(circle at 30% 30%, rgba(0,255,230,0.16), transparent), linear-gradient(180deg,#00333e,#001f25);box-shadow:0 0 14px rgba(0,198,216,0.2);position:relative;animation:avatarPulse 3s ease-in-out infinite}
@keyframes avatarPulse{0%{box-shadow:0 0 6px rgba(0,198,216,0.12)}50%{box-shadow:0 0 22px rgba(0,198,216,0.22)}100%{box-shadow:0 0 6px rgba(0,198,216,0.12)}}
.title{font-family:Orbitron, monospace;letter-spacing:2px;color:var(--accent);font-weight:700}
.tickers{display:flex;gap:12px;align-items:center}
.ticker{background:var(--glass);padding:6px 10px;border-radius:6px;font-size:13px;color:#9deff0;min-width:140px}
.controls{display:flex;gap:8px;align-items:center}
.controls button{background:transparent;border:1px solid rgba(255,255,255,0.04);color:var(--accent);padding:6px 10px;border-radius:6px;cursor:pointer}
.controls button.danger{background:linear-gradient(90deg,var(--danger),#a00);color:#fff}
.grid{display:grid;grid-template-columns:1fr 340px;grid-template-rows:calc(100vh - 128px) 240px;gap:12px;padding:12px}
.map-panel{grid-column:1 / 2;grid-row:1 / 3;background:linear-gradient(180deg, rgba(255,255,255,0.02), transparent);border-radius:8px;overflow:hidden;position:relative}
.map{width:100%;height:100%}
.rightcol{padding:8px;display:flex;flex-direction:column;gap:12px}
.panel{background:var(--panel);border-radius:8px;padding:10px;border:1px solid rgba(255,255,255,0.03);box-shadow:inset 0 0 40px rgba(0,0,0,0.4)}
.panel-title{font-weight:600;color:var(--accent);margin-bottom:6px;font-family:Orbitron}
.camera video{width:100%;height:160px;background:#000;border-radius:6px;display:block}
.chat-panel{grid-column:1 / 3;grid-row:2 / 3;display:flex;flex-direction:column;padding:12px}
.chat-log{flex:1;background:linear-gradient(180deg,#02131a,#001219);border-radius:8px;padding:12px;overflow:auto;border:1px solid rgba(255,255,255,0.02)}
.chat-input{display:flex;gap:8px;margin-top:8px}
.chat-input input{flex:1;padding:8px;border-radius:6px;background:#021e24;border:1px solid rgba(255,255,255,0.03);color:#9feff2}
.drawer{position:fixed;right:0;top:72px;width:420px;height:calc(100vh - 96px);background:linear-gradient(180deg,#041a23,#001017);border-left:1px solid rgba(255,255,255,0.03);padding:12px;overflow:auto;z-index:120}
.hidden{display:none}
.drawer-header{display:flex;justify-content:space-between;align-items:center}
.drawer-body{margin-top:12px}
.drawer-section{margin:10px 0}
.footer{position:fixed;left:0;right:0;bottom:0;height:36px;background:transparent;display:flex;justify-content:space-between;align-items:center;padding:4px 12px;color:rgba(255,255,255,0.45)}
.map-overlay{position:absolute;z-index:500;padding:8px}
.top-left{left:8px;top:8px}
.panel .panel-footer{margin-top:8px;display:flex;gap:8px;align-items:center}
.blackout{position:fixed;inset:0;background:#000;z-index:9999;opacity:1;transition:opacity .2s}
.blackout.hidden{opacity:0;pointer-events:none;display:none}
small{font-size:12px;color:var(--muted)}
/* responsive & mobile improvements */
@media (max-width: 900px) {
  .topbar { padding:8px; height:72px; }
  .brand .title { font-size:14px; }
  .controls button { padding:8px 12px; font-size:14px; }
  .grid { grid-template-columns: 1fr; grid-template-rows: auto 1fr auto; gap:8px; padding:8px; }
  .map-panel{ order:1; height: 60vh; }
  .chat-panel{ order:3; height: 30vh; overflow:auto; }
  .rightcol{ order:2; display:block; width:100%; padding:6px; }
  .drawer { width:100%; top:64px; height: calc(100vh - 64px); left:0; right:0; border-left:none; border-top:1px solid rgba(255,255,255,0.03); }
  .panel { padding:10px; }
  .chat-input input { font-size:16px; padding:10px; }
  .controls label, .controls select { display:none; } /* hide some controls for compact mobile */
  .avatar { width:40px; height:40px; }
  .ticker { font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
}
.leaflet-bar .leaflet-control-zoom a { padding:10px !important; width:44px; height:44px; line-height:28px; }
.map-overlay { left:8px; right:8px; top:8px; }
.ticker { display:block; max-width:350px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }