/* ============================================================
   ELYSIUM — Dark Neon Bioluminescent Theme
============================================================ */
:root{
  --bg-0:#02080c;
  --bg-1:#06121a;
  --bg-2:#0a1f2a;

  --panel:rgba(6,18,26,.78);
  --panel-2:rgba(10,30,42,.65);
  --panel-3:rgba(2,12,18,.92);

  --border:rgba(0,229,200,.18);
  --border-strong:rgba(0,229,200,.55);
  --border-magenta:rgba(255,80,180,.45);

  --teal:#00e5c8;
  --cyan:#19d6ff;
  --gold:#ffb840;
  --magenta:#ff4fa3;
  --violet:#a76bff;
  --green:#5cffae;
  --warm:#ff9b3c;
  --red:#ff5469;

  --text:#e6fbff;
  --muted:#7ea8b6;
  --muted-2:#5a8794;

  --shadow:0 10px 40px rgba(0,0,0,.55),
           inset 0 1px 0 rgba(255,255,255,.04);
  --neon-teal:   0 0 18px rgba(0,229,200,.55);
  --neon-magenta:0 0 18px rgba(255,80,180,.55);
  --neon-violet: 0 0 18px rgba(167,107,255,.55);
  --neon-cyan:   0 0 18px rgba(25,214,255,.55);
  --neon-gold:   0 0 22px rgba(255,184,64,.55);

  --font-sans:'Inter',system-ui,sans-serif;
  --font-mono:'Space Mono',monospace;
  --font-disp:'Space Grotesk',sans-serif;
}

*,*::before,*::after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;height:100%;width:100%;overflow:hidden;
  background:radial-gradient(ellipse 90% 70% at 50% 40%, #0a2434 0%, #03101a 55%, #01060b 100%);
  color:var(--text);font-family:var(--font-sans);font-size:14px;
  user-select:none;-webkit-user-select:none}
button{font-family:inherit;color:inherit;cursor:pointer}

/* ── CANVAS ───────────────────────────────────────────── */
#elysium-canvas{position:fixed;inset:0;width:100vw;height:100vh;cursor:grab;
  touch-action:none;z-index:0}
#elysium-canvas.dragging{cursor:grabbing}

/* ── GLASS ────────────────────────────────────────────── */
.glass{
  background:linear-gradient(180deg, var(--panel), var(--panel-2));
  border:1px solid var(--border);
  border-radius:18px;
  backdrop-filter:blur(18px) saturate(1.25);
  -webkit-backdrop-filter:blur(18px) saturate(1.25);
  box-shadow:var(--shadow);
  position:relative;
}
.glass::before{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(135deg, rgba(0,229,200,.06), transparent 40%, rgba(255,80,180,.04));
}

/* ── TIMELINE ─────────────────────────────────────────── */
#timeline{position:fixed;left:0;top:0;bottom:0;width:58px;z-index:10;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:40px 0;background:linear-gradient(90deg,rgba(2,10,14,.6),transparent);
  pointer-events:none}
#timeline .t-edge{position:absolute;left:0;top:0;bottom:0;width:2px;
  background:repeating-linear-gradient(180deg,transparent 0 8px,rgba(0,229,200,.18) 8px 9px)}
#timeline .years{display:flex;flex-direction:column;gap:38px;font-size:10px;
  color:var(--muted-2);letter-spacing:.6px;font-family:var(--font-mono);pointer-events:auto}
#timeline .year{opacity:.45}
#timeline .year-active{padding:4px 12px;border:1.5px solid var(--teal);
  border-radius:18px;color:var(--text);font-weight:700;font-size:11px;
  box-shadow:var(--neon-teal),inset 0 0 8px rgba(0,229,200,.25);
  background:rgba(0,40,48,.55);animation:pillpulse 3s ease-in-out infinite}
@keyframes pillpulse{0%,100%{box-shadow:var(--neon-teal),inset 0 0 8px rgba(0,229,200,.25)}
  50%{box-shadow:0 0 28px rgba(0,229,200,.95),inset 0 0 14px rgba(0,229,200,.4)}}

/* ── LEGEND ───────────────────────────────────────────── */
#legend{position:fixed;top:22px;right:22px;width:236px;padding:18px 18px 14px;z-index:20}
.legend-header{font-size:11px;letter-spacing:2.6px;color:var(--muted);margin-bottom:12px;
  font-weight:600;display:flex;justify-content:space-between;align-items:center}
.legend-header #legend-help{width:18px;height:18px;border-radius:50%;
  background:rgba(0,229,200,.12);color:var(--teal);font-size:10px;font-weight:700;
  display:grid;place-items:center;cursor:help}
.legend-item{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:12px;
  cursor:pointer;padding:3px 6px;border-radius:8px;transition:background .15s}
.legend-item:hover{background:rgba(0,229,200,.06)}
.legend-item .dot{width:18px;height:18px;border-radius:50%;flex-shrink:0;
  box-shadow:0 0 12px currentColor, inset 0 -3px 6px rgba(0,0,0,.4)}
.legend-item .badge{background:rgba(0,0,0,.4);padding:2px 8px;border-radius:10px;
  font-family:var(--font-mono);font-size:10px;min-width:24px;text-align:center;color:var(--text)}
.legend-item .lbl{color:var(--text);font-size:12px;text-transform:capitalize}
.meta-row{display:flex;justify-content:space-between;align-items:center;
  font-size:11px;color:var(--muted);margin-top:10px;padding-top:10px;
  border-top:1px solid var(--border)}
.meta-val{background:rgba(0,0,0,.35);padding:3px 9px;border-radius:10px;
  font-family:var(--font-mono);color:var(--cyan);font-size:11px;
  box-shadow:inset 0 0 8px rgba(0,229,200,.08)}

/* ── MINIMAP ──────────────────────────────────────────── */
#minimap-wrap{position:fixed;left:74px;bottom:170px;z-index:15;
  background:rgba(2,12,18,.85);border:1px solid var(--border);border-radius:12px;
  padding:6px 6px 4px;box-shadow:var(--shadow);backdrop-filter:blur(10px)}
.minimap-label{font-size:9px;letter-spacing:2.2px;color:var(--muted);
  text-align:center;margin-bottom:4px;font-weight:600}
#minimap{display:block;width:170px;height:108px;border-radius:8px;cursor:crosshair;
  background:rgba(2,16,22,.95);touch-action:none}

/* ── ZOOM CTRL ────────────────────────────────────────── */
#zoom-ctrl{position:fixed;right:24px;bottom:170px;display:flex;flex-direction:column;
  gap:6px;z-index:15}
#zoom-ctrl button{width:38px;height:38px;background:rgba(6,18,26,.85);
  border:1px solid var(--border);border-radius:10px;color:var(--teal);
  font-size:18px;cursor:pointer;backdrop-filter:blur(10px);
  transition:all .15s ease;box-shadow:var(--shadow)}
#zoom-ctrl button:hover{background:rgba(0,229,200,.15);border-color:var(--border-strong);
  transform:scale(1.06);box-shadow:var(--neon-teal)}

/* ── ALERT SCRIM ──────────────────────────────────────── */
#alert-scrim{position:fixed;inset:0;z-index:5;pointer-events:none;
  background:radial-gradient(ellipse at center,transparent 55%,transparent 100%);
  transition:background 800ms ease}
body[data-alert="ATTENTION"] #alert-scrim{background:radial-gradient(ellipse at center,transparent 50%,rgba(255,184,64,.12) 100%)}
body[data-alert="TENSION"] #alert-scrim{background:radial-gradient(ellipse at center,transparent 40%,rgba(255,80,180,.18) 100%)}
body[data-alert="CRISIS"] #alert-scrim{background:radial-gradient(ellipse at center,transparent 30%,rgba(255,84,105,.28) 100%);
  animation:crisisPulse 1.6s ease-in-out infinite}
@keyframes crisisPulse{0%,100%{opacity:.6}50%{opacity:1}}

/* ── STATS BAR ────────────────────────────────────────── */
#stats{position:fixed;left:58px;right:0;bottom:108px;height:56px;
  display:flex;align-items:center;padding:0 28px;gap:32px;z-index:18;
  border-radius:0;border-left:none;border-right:none;border-bottom:none;
  background:linear-gradient(180deg,rgba(2,12,18,.72),rgba(2,8,12,.92))}
.stat{display:flex;align-items:center;gap:10px}
.stat-icon{font-size:18px;color:var(--teal);opacity:.95;
  text-shadow:0 0 10px rgba(0,229,200,.6)}
.stat-label{font-size:10px;letter-spacing:1.4px;color:var(--muted);
  text-transform:uppercase;font-weight:500}
.stat-value{font-size:22px;font-family:var(--font-disp);color:var(--cyan);
  font-weight:700;line-height:1;text-shadow:0 0 8px rgba(25,214,255,.45)}

/* ── QUERY AREA ───────────────────────────────────────── */
#query-area{position:fixed;left:58px;right:0;bottom:0;z-index:20;
  display:flex;flex-direction:column;gap:0;padding-bottom:8px}

/* File preview strip — appears ABOVE input when files attached */
#attach-strip{margin:0 22px 6px;padding:8px 10px;display:flex;gap:8px;
  flex-wrap:wrap;align-items:center;border-radius:14px;
  max-height:84px;overflow:auto;
  animation:stripIn .25s ease-out}
@keyframes stripIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.preview-tile{display:flex;align-items:center;gap:8px;
  background:rgba(0,229,200,.06);border:1px solid var(--border-strong);
  border-radius:10px;padding:4px 8px 4px 4px;font-size:11px;color:var(--text);
  animation:tileIn .3s ease}
@keyframes tileIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
.preview-tile img{width:38px;height:38px;border-radius:6px;object-fit:cover;
  box-shadow:0 0 8px rgba(0,229,200,.3)}
.preview-tile .pdf-ico{width:38px;height:38px;border-radius:6px;display:grid;
  place-items:center;background:linear-gradient(135deg,#3a1a2a,#1a0a14);
  color:var(--magenta);font-family:var(--font-mono);font-size:11px;font-weight:700;
  box-shadow:var(--neon-magenta)}
.preview-tile .nm{max-width:140px;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;font-family:var(--font-mono)}
.preview-tile .x{background:rgba(255,84,105,.12);border:1px solid rgba(255,84,105,.25);
  color:#ffb0b0;font-size:14px;font-weight:bold;
  cursor:pointer;padding:0;width:20px;height:20px;border-radius:50%;
  display:grid;place-items:center;transition:all .15s;line-height:1}
.preview-tile .x:hover{background:var(--red);color:#fff;transform:scale(1.1);
  box-shadow:0 0 8px rgba(255,84,105,.5)}
.attach-hint{font-size:11px;color:var(--muted-2);margin-left:6px;font-style:italic}

#query-bar{margin:0 22px 8px;height:54px;
  display:flex;align-items:center;padding:0 12px;gap:10px;
  border-radius:28px;border:1px solid var(--border-strong);
  box-shadow:var(--shadow),0 0 0 1px rgba(0,229,200,.05)}
#q-input{flex:1;height:40px;background:transparent;border:none;
  padding:0 12px;color:var(--text);font-size:14px;outline:none}
#q-input::placeholder{color:var(--muted)}
#q-input:disabled{opacity:.5;cursor:not-allowed}

#q-upload{width:38px;height:38px;display:grid;place-items:center;
  background:rgba(0,229,200,.06);border:1px solid var(--border);border-radius:50%;
  cursor:pointer;font-size:14px;color:var(--muted);transition:all .15s;flex-shrink:0}
#q-upload:hover{color:var(--teal);border-color:var(--border-strong);box-shadow:var(--neon-teal)}
#q-upload.disabled{opacity:.4;pointer-events:none}

#q-send{width:42px;height:42px;border-radius:50%;
  background:linear-gradient(135deg, var(--teal), #00b89e);
  color:#03252a;border:none;cursor:pointer;
  display:grid;place-items:center;
  box-shadow:var(--neon-teal),inset 0 1px 0 rgba(255,255,255,.3);
  transition:all .15s;flex-shrink:0}
#q-send:hover:not(:disabled){transform:scale(1.08);box-shadow:0 0 28px rgba(0,229,200,.85)}
#q-send:disabled{opacity:.5;cursor:not-allowed;background:linear-gradient(135deg,#444,#222)}
#q-send.loading svg{animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.mode-row{display:flex;justify-content:flex-end;gap:8px;
  padding:0 26px 8px 0;align-items:center}
.mode-row button{background:rgba(6,18,26,.85);border:1px solid var(--border);
  border-radius:18px;padding:6px 14px;font-size:11.5px;color:var(--text);
  cursor:pointer;letter-spacing:.5px;display:flex;align-items:center;gap:6px;
  transition:all .15s;backdrop-filter:blur(8px)}
.mode-row button:hover{border-color:var(--border-strong);
  box-shadow:0 0 12px rgba(0,229,200,.3)}
.mode-row .badge{background:rgba(0,229,200,.18);padding:1px 8px;border-radius:8px;
  font-family:var(--font-mono);font-size:10px;color:var(--teal)}
.mode-row .dot-mini{width:8px;height:8px;border-radius:50%;background:var(--magenta);
  box-shadow:var(--neon-magenta);display:inline-block}

/* ── COUNCIL OVERLAY ──────────────────────────────────── */
#council-overlay{position:fixed;left:22px;top:22px;
  width:360px;max-height:calc(100vh - 220px);padding:18px;z-index:25;
  display:flex;flex-direction:column;
  opacity:0;transform:translateX(-30px);pointer-events:none;
  transition:all .35s cubic-bezier(.34,1.56,.64,1)}
#council-overlay.show{opacity:1;transform:translateX(0);pointer-events:auto}
#council-overlay.hidden{display:none}
#council-overlay.minimized{display:none}

.co-head{display:flex;justify-content:space-between;align-items:center;
  margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.co-title{font-size:11px;letter-spacing:2.4px;color:var(--teal);font-weight:700;
  display:flex;align-items:center;gap:8px}
.co-pulse{width:8px;height:8px;border-radius:50%;background:var(--teal);
  box-shadow:var(--neon-teal);animation:copulse 1.4s ease-in-out infinite}
@keyframes copulse{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}
.co-title span{color:var(--magenta);margin-left:4px;text-shadow:var(--neon-magenta)}
.co-controls{display:flex;gap:4px}
.co-controls button{background:rgba(0,229,200,.06);border:1px solid var(--border);
  color:var(--text);width:28px;height:28px;border-radius:8px;
  font-size:12px;cursor:pointer;display:grid;place-items:center;
  transition:all .15s}
.co-controls button:hover:not(:disabled){background:rgba(0,229,200,.15);
  box-shadow:var(--neon-teal)}
.co-controls button:disabled{opacity:.35;cursor:not-allowed}
#co-play{color:var(--green)}
#co-pause{color:var(--gold)}
#co-close{color:var(--red)}

#co-body{flex:1;overflow-y:auto;max-height:50vh;margin:-2px;padding:2px}
#co-body::-webkit-scrollbar{width:6px}
#co-body::-webkit-scrollbar-thumb{background:rgba(0,229,200,.25);border-radius:3px}

.agent-card{border-left:3px solid;padding:12px 14px;margin:10px 0;
  background:linear-gradient(135deg, rgba(10,30,42,.6), rgba(6,18,26,.4));
  border-radius:10px;animation:slideIn .4s ease both;
  position:relative;overflow:hidden}
.agent-card::before{content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 10% 50%, var(--card-glow,transparent) 0%, transparent 60%);
  opacity:.5}
@keyframes slideIn{from{opacity:0;transform:translateX(-12px)}
  to{opacity:1;transform:translateX(0)}}

.agent-card .row1{display:flex;align-items:center;gap:8px;margin-bottom:6px;
  position:relative;z-index:1}
.agent-card .ad-dot{width:14px;height:14px;border-radius:50%;
  box-shadow:0 0 12px currentColor, inset 0 -2px 4px rgba(0,0,0,.4);flex-shrink:0}
.agent-card .name{font-weight:700;font-size:13px;flex:1}
.agent-card .archetype{font-size:9.5px;background:rgba(0,0,0,.35);padding:2px 7px;
  border-radius:8px;letter-spacing:.8px;color:var(--muted);text-transform:uppercase}
.agent-card .veto{background:rgba(255,84,105,.2);color:#ffb0b0;
  border:1px solid rgba(255,84,105,.45);font-size:9px;padding:2px 6px;
  border-radius:6px;letter-spacing:.8px}
.agent-card .thinking{color:var(--muted);font-size:11px;margin-top:4px;font-style:italic;
  line-height:1.45;position:relative;z-index:1}
.agent-card .stance{font-size:12.5px;margin-top:8px;color:var(--text);
  position:relative;z-index:1;line-height:1.5}
.agent-card .footer-row{display:flex;justify-content:space-between;align-items:center;
  margin-top:10px;position:relative;z-index:1}
.agent-card .conf{font-family:var(--font-mono);font-size:10px;color:var(--teal)}
.agent-card .play-mini{background:rgba(0,229,200,.12);border:1px solid var(--border-strong);
  color:var(--teal);width:26px;height:26px;border-radius:50%;font-size:11px;
  display:grid;place-items:center;cursor:pointer;transition:all .15s}
.agent-card .play-mini:hover{transform:scale(1.1);box-shadow:var(--neon-teal)}
.agent-card .play-mini.playing{background:var(--teal);color:#03252a}
.agent-card.speaking{box-shadow:0 0 0 1.5px var(--border-strong),0 0 24px rgba(0,229,200,.35);
  animation:speakPulse 1.2s ease-in-out infinite}
@keyframes speakPulse{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}

#co-synth{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);
  color:var(--text);font-size:12.5px;line-height:1.55;font-style:italic}
#co-synth:empty{display:none}
#debate-audio{width:100%;margin-top:10px;height:32px;display:none}

/* COUNCIL PILL (minimized) */
#council-pill{position:fixed;left:22px;top:22px;z-index:24;
  padding:8px 16px;border-radius:20px;background:rgba(6,18,26,.92);
  border:1px solid var(--border-strong);color:var(--text);font-size:12px;
  display:flex;align-items:center;gap:8px;cursor:pointer;
  box-shadow:var(--neon-teal);animation:pillFloat 2s ease-in-out infinite}
@keyframes pillFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
#council-pill:hover{background:rgba(0,229,200,.15)}
#council-pill .dot-mini{width:8px;height:8px;border-radius:50%;background:var(--magenta);
  box-shadow:var(--neon-magenta)}

/* ── NODE DETAIL POPOVER (Task 3) ─────────────────────── */
#node-detail{position:fixed;width:320px;padding:18px;z-index:30;
  opacity:0;transform:translateY(8px);pointer-events:none;
  transition:opacity .25s,transform .25s;
  border:1px solid var(--border-strong);box-shadow:var(--neon-teal),var(--shadow)}
#node-detail.show{opacity:1;transform:translateY(0);pointer-events:auto}
#node-detail.hidden{display:none}
.nd-head{display:flex;justify-content:space-between;align-items:flex-start;
  margin-bottom:8px;gap:8px}
.nd-title{font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px;
  color:var(--text);line-height:1.3;flex:1}
.nd-title .nd-dot{width:16px;height:16px;border-radius:50%;flex-shrink:0;
  box-shadow:0 0 12px currentColor}
.nd-close{background:none;border:none;color:var(--muted);font-size:20px;
  cursor:pointer;padding:0;line-height:1;width:24px;height:24px}
.nd-close:hover{color:var(--text)}
.nd-type{font-size:10px;letter-spacing:1.6px;color:var(--cyan);
  text-transform:uppercase;margin-bottom:12px;font-family:var(--font-mono);
  text-shadow:0 0 8px rgba(25,214,255,.4)}
.nd-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:12px}
.nd-pill{background:rgba(0,0,0,.3);padding:7px 8px;border-radius:8px;
  font-size:9.5px;text-align:center;color:var(--muted);
  border:1px solid var(--border);letter-spacing:.8px}
.nd-pill b{display:block;font-family:var(--font-mono);color:var(--cyan);font-size:14px;
  margin-bottom:2px;text-shadow:0 0 6px rgba(25,214,255,.4)}
.nd-section{font-size:9.5px;letter-spacing:1.8px;color:var(--muted-2);
  text-transform:uppercase;margin-top:14px;margin-bottom:6px}
.nd-payload{font-size:11px;color:var(--text);background:rgba(0,0,0,.25);
  padding:8px 10px;border-radius:8px;font-family:var(--font-mono);
  max-height:90px;overflow:auto;line-height:1.5;
  border-left:2px solid var(--border-strong);white-space:pre-wrap;word-break:break-word}
.nd-conns{font-size:11px;color:var(--muted);max-height:100px;overflow:auto}
.nd-conn{display:flex;justify-content:space-between;padding:3px 0;
  border-bottom:1px solid rgba(0,229,200,.07)}
.nd-conn .ct{color:var(--text);max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nd-conn .cw{color:var(--gold);font-family:var(--font-mono);font-size:10px}

/* ── TOASTS ───────────────────────────────────────────── */
#toasts{position:fixed;top:22px;left:50%;transform:translateX(-50%);z-index:40;
  display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:90vw}
.toast{background:rgba(6,18,26,.95);border:1px solid var(--border-strong);
  border-left:3px solid var(--teal);padding:10px 18px;border-radius:10px;
  font-size:12px;color:var(--text);box-shadow:var(--neon-teal),var(--shadow);
  animation:toastIn .35s ease both,toastOut .4s ease 4.5s both;
  backdrop-filter:blur(10px);max-width:480px}
.toast.warn{border-left-color:var(--gold);box-shadow:var(--neon-gold),var(--shadow)}
.toast.error{border-left-color:var(--red);box-shadow:0 0 14px rgba(255,84,105,.5)}
.toast.info{border-left-color:var(--violet);box-shadow:var(--neon-violet),var(--shadow)}
@keyframes toastIn{from{opacity:0;transform:translateY(-12px)}
  to{opacity:1;transform:translateY(0)}}
@keyframes toastOut{to{opacity:0;transform:translateY(-12px)}}

/* ── SEED HINT ────────────────────────────────────────── */
#seed-hint{position:fixed;left:50%;top:42%;transform:translate(-50%,-50%);
  z-index:8;padding:10px 22px;border-radius:22px;
  background:rgba(6,18,26,.7);border:1px solid var(--border-strong);
  font-size:12.5px;color:var(--text);backdrop-filter:blur(10px);
  animation:hintFloat 3.5s ease-in-out infinite;pointer-events:none;
  letter-spacing:.5px;box-shadow:var(--neon-teal)}
#seed-hint.hidden{display:none}
@keyframes hintFloat{0%,100%{opacity:.7;transform:translate(-50%,-50%)}
  50%{opacity:1;transform:translate(-50%,calc(-50% - 6px))}}

/* ── BUSY OVERLAY ─────────────────────────────────────── */
#busy-overlay{position:fixed;inset:0;z-index:35;pointer-events:none;
  display:none;place-items:center;background:rgba(2,12,18,0);
  transition:background .3s}
body[data-busy="1"] #busy-overlay{display:grid;background:rgba(2,12,18,.18)}
.busy-spin{width:48px;height:48px;border-radius:50%;
  border:3px solid rgba(0,229,200,.15);
  border-top-color:var(--teal);
  animation:spin 1s linear infinite;
  box-shadow:var(--neon-teal)}
.busy-text{margin-top:14px;font-size:11px;letter-spacing:2.4px;color:var(--teal);
  text-transform:uppercase;font-weight:600;text-shadow:var(--neon-teal)}

/* ── RESPONSIVE ───────────────────────────────────────── */
@media (max-width:980px){
  #legend{width:200px;padding:14px;top:14px;right:14px}
  #minimap-wrap{padding:5px;bottom:160px}
  #minimap{width:140px;height:90px}
  #zoom-ctrl{right:14px;bottom:160px}
  #stats{gap:20px;padding:0 16px;bottom:100px}
  .stat-value{font-size:18px}
  .stat-label{font-size:9px}
  #council-overlay{width:300px}
}
@media (max-width:680px){
  #timeline{width:44px}
  #legend{width:170px;padding:12px;top:10px;right:10px;font-size:11px}
  #legend .lbl{display:none}
  .meta-row{font-size:10px}
  #minimap-wrap{left:54px;bottom:140px}
  #minimap{width:120px;height:80px}
  #stats{gap:14px;padding:0 12px;height:48px;bottom:96px}
  .stat-value{font-size:15px}
  .stat-icon{font-size:14px}
  #query-area{left:44px}
  .mode-row{padding-right:14px}
  #council-overlay{left:8px;right:8px;width:auto;top:8px;
    max-height:calc(100vh - 240px)}
  #zoom-ctrl{bottom:96px;right:10px}
  #node-detail{width:280px}
}

/* Hide any default Gradio surface */
.gradio-container,footer,.built-with,gradio-app>.main>.contain{display:none!important}

.hidden{display:none!important}
