/* ============================================================
   TOKEN BATTLE STATION — 1940s OPERATIONS ROOM
   Black Ops One (stencil) · Special Elite (typewriter) · Courier Prime (data)
   olive drab vs signal red · brass fittings · parchment ink on dark umber
   ============================================================ */
:root{
  --bg:#141109; --bg2:#1a150c; --panel:#211b10; --panel2:#292112;
  --line:rgba(196,178,138,.14); --line2:rgba(201,162,39,.42);
  --grn:#a8bb64; --grn-dim:#66713c; --amber:#d9a441; --red:#d0543c; --cyan:#c9a227; --purple:#9b7bff;
  --brass:#c9a227; --paper:#e4d6ae; --ink:#2a2416;
  --txt:#d6cbb0; --txt-dim:#968b6d; --txt-mute:#6f6753; --white:#f2ead6;
  --mono:'Courier Prime','JetBrains Mono',ui-monospace,Consolas,monospace;
  --disp:'Black Ops One','Rajdhani',system-ui,sans-serif;
  --type:'Special Elite','Courier Prime',monospace;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  background-color:var(--bg);
  background-image:
    radial-gradient(1100px 560px at 80% -12%, rgba(201,162,39,.05), transparent 62%),
    radial-gradient(900px 500px at -10% 108%, rgba(168,187,100,.04), transparent 55%),
    linear-gradient(rgba(196,178,138,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(196,178,138,.025) 1px, transparent 1px);
  background-size:100% 100%, 100% 100%, 44px 44px, 44px 44px;
  color:var(--txt); font-family:var(--type); font-size:14px; letter-spacing:.01em;
  min-height:100%;
}
::selection{background:rgba(201,162,39,.35);color:var(--white)}
*{scrollbar-width:thin;scrollbar-color:var(--grn-dim) transparent}
*::-webkit-scrollbar{width:8px;height:8px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:rgba(196,178,138,.25);border-radius:4px;border:2px solid var(--bg)}
*::-webkit-scrollbar-thumb:hover{background:rgba(201,162,39,.45)}

/* ---- atmosphere: scanlines + vignette + film grain ---- */
.scanlines{position:fixed;inset:0;pointer-events:none;z-index:9999;
  background:repeating-linear-gradient(180deg, rgba(0,0,0,0) 0 2px, rgba(0,0,0,.09) 2px 3px);
  mix-blend-mode:multiply;opacity:.5}
.scanlines::before{content:'';position:absolute;inset:0;
  box-shadow:inset 0 0 200px rgba(0,0,0,.6)}
.scanlines::after{content:'';position:absolute;inset:0;opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
.mono{font-family:var(--mono)}
.dim{color:var(--txt-dim)} .mute{color:var(--txt-mute)}
.up{color:var(--grn)} .down{color:var(--red)} .amber{color:var(--amber)} .cyan{color:var(--brass)}
b{color:var(--white);font-weight:700}

/* ---- boot splash ---- */
.boot{position:fixed;inset:0;z-index:10000;background:var(--bg);display:flex;align-items:center;justify-content:center;
  transition:opacity .7s ease, visibility .7s}
.boot.done{opacity:0;visibility:hidden}
.boot-inner{text-align:center}
.boot-title{font-family:var(--disp);font-size:26px;letter-spacing:.14em;color:var(--paper);
  text-shadow:0 0 22px rgba(201,162,39,.4);animation:bootGlow 1.4s ease-in-out infinite alternate}
.boot-title::after{content:'';display:block;height:2px;margin-top:10px;
  background:linear-gradient(90deg,transparent,var(--brass),transparent);
  animation:bootScan 1.6s ease-in-out infinite}
@keyframes bootScan{0%,100%{opacity:.25;transform:scaleX(.6)}50%{opacity:1;transform:scaleX(1)}}
@keyframes bootGlow{from{opacity:.75}to{opacity:1}}
.boot-log{font-family:var(--mono);font-size:12px;color:var(--grn);text-align:left;margin:18px auto 0;
  min-height:120px;width:min(470px,86vw);letter-spacing:.05em;white-space:pre-wrap;
  text-shadow:0 0 8px rgba(168,187,100,.3)}

/* ============================ command bar ============================ */
.cmdbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  padding:10px 18px;background:linear-gradient(180deg,rgba(33,27,16,.97),rgba(24,19,11,.94));
  border-bottom:2px solid rgba(201,162,39,.35);backdrop-filter:blur(6px);
  box-shadow:0 1px 0 rgba(201,162,39,.08), 0 8px 30px rgba(0,0,0,.4)}
.brand{display:flex;align-items:center;gap:12px}
.brand h1{font-family:var(--disp);font-size:18px;letter-spacing:.10em;margin:0;color:var(--paper);
  text-shadow:0 0 14px rgba(201,162,39,.3)}
.brand .tag{font-family:var(--mono);font-size:10px;color:var(--txt-dim);border:1px solid var(--line);
  padding:2px 7px;border-radius:2px;letter-spacing:.12em}
.led{width:10px;height:10px;border-radius:50%;background:var(--red);box-shadow:0 0 10px var(--red)}
.led.ok{background:var(--grn);box-shadow:0 0 12px var(--grn);animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.4}}

.tabs{display:flex;gap:6px;margin-left:auto}
.tab{position:relative;font-family:var(--disp);font-size:11px;letter-spacing:.10em;color:var(--txt-dim);
  background:transparent;border:1px solid var(--line);padding:8px 14px;border-radius:2px;cursor:pointer;
  clip-path:polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 8px 100%, 0 calc(100% - 8px));
  transition:color .15s,border-color .15s,box-shadow .15s,background .15s}
.tab:hover{color:var(--txt);border-color:rgba(201,162,39,.4)}
.tab.active{color:var(--brass);border-color:rgba(201,162,39,.55);background:rgba(201,162,39,.07);
  box-shadow:inset 0 0 14px rgba(201,162,39,.08)}
.tab.active::before{content:'';position:absolute;left:8px;right:8px;top:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--brass),transparent)}

/* sound + CONNECT live behind the ☰ on every screen size */
.status{display:flex;gap:10px;align-items:center;position:relative}
.burger{display:inline-flex}
.status-menu{display:none}
.status-menu.open{display:flex;position:absolute;top:calc(100% + 8px);right:0;flex-direction:column;
  align-items:stretch;gap:8px;background:var(--panel);border:1px solid rgba(201,162,39,.45);
  border-radius:3px;padding:10px;z-index:70;box-shadow:0 14px 34px rgba(0,0,0,.55);min-width:150px}
.status-menu.open .ghost{width:100%;text-align:center}
.stat-mini{font-family:var(--mono);font-size:11px;color:var(--txt-dim)}
.stat-mini b{color:var(--brass)}
.stat-mini.zclock b{color:var(--white);letter-spacing:.08em}
.stat-mini b.up{color:var(--grn)} .stat-mini b.amber{color:var(--amber)} .stat-mini b.down{color:var(--red)}
.live-badge{font-size:9px;letter-spacing:.1em;color:#1a150c!important;background:var(--grn);border-radius:2px;
  padding:1px 5px;margin-left:2px;animation:pulse 2.4s infinite}
.live-badge.off{background:var(--amber);animation:none}
.ghost{font-family:var(--mono);font-size:11px;color:var(--brass);background:transparent;
  border:1px solid rgba(201,162,39,.45);padding:5px 10px;border-radius:2px;cursor:pointer;letter-spacing:.08em;
  transition:background .15s, box-shadow .15s}
.ghost:hover{background:rgba(201,162,39,.1);box-shadow:0 0 10px rgba(201,162,39,.18)}
.ghost.icon{padding:4px 8px;font-size:13px;border-color:var(--line)}
.ghost.icon.on{border-color:rgba(201,162,39,.5);box-shadow:0 0 8px rgba(201,162,39,.28)}
.ghost.icon.sm,.ghost.sm{padding:3px 8px;font-size:10px}

/* ---- DEFCON badge ---- */
.defcon{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;
  color:var(--txt-dim);border:1px solid var(--line);padding:3px 9px;border-radius:2px;margin-left:4px}
.defcon b{color:var(--white);font-size:12px}
.dc-meter{display:inline-flex;gap:2px}
.dc-meter i{width:7px;height:11px;transform:skewX(-14deg);background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.07)}
.dc-word{font-style:normal;font-size:9px;letter-spacing:.16em}
.defcon.d5{color:var(--grn-dim);border-color:var(--line)}
.defcon.d5 .dc-meter i.lit{background:var(--grn-dim);border-color:var(--grn-dim)}
.defcon.d4{color:var(--grn);border-color:var(--grn-dim)}
.defcon.d4 .dc-meter i.lit{background:var(--grn);border-color:var(--grn);box-shadow:0 0 6px rgba(168,187,100,.5)}
.defcon.d3{color:var(--amber);border-color:rgba(217,164,65,.5)}
.defcon.d3 .dc-meter i.lit{background:var(--amber);border-color:var(--amber);box-shadow:0 0 6px rgba(217,164,65,.5)}
.defcon.d3 b,.defcon.d2 b,.defcon.d1 b{color:#fff}
.defcon.d2{color:#e07b3c;border-color:rgba(224,123,60,.6);box-shadow:0 0 10px rgba(224,123,60,.25)}
.defcon.d2 .dc-meter i.lit{background:#e07b3c;border-color:#e07b3c;box-shadow:0 0 7px rgba(224,123,60,.6)}
.defcon.d1{color:var(--red);border-color:var(--red);box-shadow:0 0 14px rgba(208,84,60,.4);animation:pulse 1.2s infinite}
.defcon.d1 .dc-meter i.lit{background:var(--red);border-color:var(--red);box-shadow:0 0 8px rgba(208,84,60,.7)}
.defcon.d1 .dc-word,.defcon.d2 .dc-word{animation:pulse 1.2s infinite}
body[data-defcon="2"]::before,body[data-defcon="1"]::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:1;
  box-shadow:inset 0 0 120px rgba(208,84,60,.10)}
body[data-defcon="1"]::before{box-shadow:inset 0 0 150px rgba(208,84,60,.20)}
body[data-defcon="1"] .brand h1{color:#f0c9bd;text-shadow:0 0 16px rgba(208,84,60,.5);animation:h1flicker 3s steps(2) infinite}
@keyframes h1flicker{0%,92%,96%,100%{opacity:1}94%,98%{opacity:.55}}

/* ---- screen shake (content, never body: fixed overlays keep their containing block) ---- */
body.shake .cmdbar,body.shake main,body.shake .ticker-wrap{animation:shake .38s cubic-bezier(.36,.07,.19,.97)}
@keyframes shake{10%{transform:translate(-2px,1px)}30%{transform:translate(2px,-1px)}50%{transform:translate(-2px,0)}70%{transform:translate(2px,1px)}90%{transform:translate(-1px,0)}100%{transform:none}}

/* ---- CRT film mode (always on) ---- */
.crt-sweep{position:fixed;inset:0;pointer-events:none;z-index:9997;opacity:0}
body.crt .crt-sweep{opacity:1;background:linear-gradient(rgba(196,178,138,0) 0%, rgba(196,178,138,.045) 50%, rgba(196,178,138,0) 100%);
  background-size:100% 8px;height:16px;animation:crtSweep 8s linear infinite}
@keyframes crtSweep{0%{transform:translateY(-16px)}100%{transform:translateY(100vh)}}
body.crt{text-shadow:0 0 1px rgba(196,178,138,.2)}
body.crt::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9996;
  background:repeating-linear-gradient(180deg,rgba(0,0,0,0) 0 2px,rgba(0,0,0,.10) 2px 3px);mix-blend-mode:multiply}
body.crt .cmdbar,body.crt .panel{filter:saturate(1.08)}
@keyframes critPulse{0%{opacity:0}12%{opacity:1}55%{opacity:.55}100%{opacity:0}}
/* critical-alert vignette — declared AFTER the CRT rules so it wins the body::after slot */
body.crit-flash::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9998;
  background:none;mix-blend-mode:normal;
  box-shadow:inset 0 0 140px rgba(208,84,60,.55);opacity:0;animation:critPulse 1.6s ease-out}

/* ============================ teletype ticker ============================ */
.ticker-wrap{overflow:hidden;border-bottom:1px solid var(--line);background:rgba(26,21,12,.9);
  white-space:nowrap;position:relative;
  background-image:
    repeating-radial-gradient(circle at 8px 3px, rgba(196,178,138,.14) 0 1px, transparent 1.6px 100%),
    repeating-radial-gradient(circle at 8px calc(100% - 3px), rgba(196,178,138,.14) 0 1px, transparent 1.6px 100%);
  background-size:16px 6px, 16px 6px;background-position:0 0, 0 100%;background-repeat:repeat-x}
.ticker-wrap::before,.ticker-wrap::after{content:'';position:absolute;top:0;bottom:1px;width:56px;z-index:1;pointer-events:none}
.ticker-wrap::before{left:0;background:linear-gradient(90deg,#141109,rgba(20,17,9,0))}
.ticker-wrap::after{right:0;background:linear-gradient(270deg,#141109,rgba(20,17,9,0))}
.ticker{display:inline-flex;will-change:transform;padding:6px 0}
.ticker>span{display:inline-flex}
.tk{font-family:var(--mono);font-size:11px;color:var(--txt-dim);padding:0 14px;letter-spacing:.05em;text-transform:uppercase}
.tk b{color:var(--white);margin-right:6px}
.tk i{font-style:normal;margin-left:6px}
.tk-sep{color:var(--brass);font-family:var(--mono);font-size:11px;opacity:.6}

.view{padding:16px 18px 40px;max-width:1680px;margin:0 auto}
.hidden{display:none!important}

/* ============================ stat tiles ============================ */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}
.tile{position:relative;background:linear-gradient(180deg,var(--panel2),var(--panel));
  border:1px solid var(--line);border-radius:3px;padding:12px 14px;overflow:hidden;
  transition:border-color .2s, box-shadow .2s, transform .2s}
.tile:hover{border-color:rgba(201,162,39,.4);box-shadow:inset 0 0 24px rgba(201,162,39,.08);transform:translateY(-1px)}
/* brass rivets */
.tile::before,.tile::after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%, #e8cf7a, #8a6d1d 70%);opacity:.7}
.tile::before{top:5px;left:5px}
.tile::after{bottom:5px;right:5px}
.tile .k{font-family:var(--disp);font-size:9px;letter-spacing:.16em;color:var(--txt-dim);text-transform:uppercase}
.tile .v{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:23px;font-weight:700;color:var(--white);
  margin-top:5px;line-height:1;display:flex;align-items:center;gap:10px}
.tile .v.tick{animation:tickGlow .8s ease-out}
@keyframes tickGlow{0%{text-shadow:0 0 16px rgba(201,162,39,.9)}100%{text-shadow:none}}
.tile .sub{font-family:var(--mono);font-size:11px;margin-top:4px}
.tile.risk .v{font-size:20px}
.dial{margin-left:auto;flex:none}

/* ============================ movers strip ============================ */
/* single line always — overflow scrolls horizontally instead of wrapping */
.movers{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;overflow-x:auto;margin-bottom:12px;min-height:0;
  scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent)}
.movers::-webkit-scrollbar{display:none}
.mv-lbl{font-family:var(--disp);font-size:9px;letter-spacing:.2em;color:var(--txt-mute);flex:none}
.mover{font-family:var(--mono);font-size:11px;font-weight:700;padding:4px 10px;border-radius:2px;cursor:pointer;flex:none;white-space:nowrap;
  background:transparent;letter-spacing:.04em;animation:moverIn .35s ease-out;transition:transform .12s, box-shadow .12s}
.mover:hover{transform:translateY(-1px)}
.mover.up{color:var(--grn);border:1px solid rgba(168,187,100,.4);background:rgba(168,187,100,.06)}
.mover.up:hover{box-shadow:0 0 12px rgba(168,187,100,.2)}
.mover.down{color:var(--red);border:1px solid rgba(208,84,60,.4);background:rgba(208,84,60,.06)}
.mover.down:hover{box-shadow:0 0 12px rgba(208,84,60,.2)}
@keyframes moverIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* ============================ layout + panels ============================ */
.warcols{display:grid;grid-template-columns:1fr 340px;gap:12px}
.warleft{display:flex;flex-direction:column;gap:12px;min-width:0}
.warright{display:flex;flex-direction:column;gap:12px;min-width:0}
.panel{position:relative;background:linear-gradient(180deg,var(--panel),var(--bg2));border:1px solid var(--line);border-radius:3px}
.panel-hd{position:relative;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;
  padding:9px 14px;border-bottom:1px solid var(--line);
  font-family:var(--disp);font-size:10px;letter-spacing:.14em;color:var(--brass);
  background:linear-gradient(180deg,rgba(201,162,39,.05),transparent)}
.panel-hd::after{content:'';position:absolute;left:0;bottom:-1px;height:1px;width:100%;
  background:linear-gradient(90deg,var(--brass),transparent 40%);opacity:.4}
.panel:hover .panel-hd::after{animation:hdScan 1.6s ease-out}
@keyframes hdScan{0%{background:linear-gradient(90deg,var(--brass),transparent 12%);opacity:.9}
  100%{background:linear-gradient(90deg,var(--brass),transparent 40%);opacity:.4}}
.sort-hint{font-family:var(--mono);color:var(--txt-mute);font-size:10px;letter-spacing:.03em;font-weight:400}
.hd-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
/* GRAND FRONT header: title + BRIEFING stay on one line, the long hint ellipsizes */
.front-panel .panel-hd{flex-wrap:nowrap}
.front-panel .panel-hd>span:first-child{white-space:nowrap;flex:none}
.front-panel .hd-right{flex-wrap:nowrap;min-width:0}
.front-panel .hd-right .ghost{flex:none;order:2}
.front-panel .hd-right .thx{flex:none;order:0;margin-right:0}
.front-panel .hd-right .sort-hint{order:1;flex:1 1 40px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1100px){.front-panel .hd-right .sort-hint{display:none}}

/* ============================ grid tables ============================ */
.table-wrap{overflow:auto;max-height:560px}
#view-intel .table-wrap{max-height:calc(100vh - 235px)}
table.grid{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums}
table.grid th{position:sticky;top:0;z-index:2;background:var(--panel);color:var(--txt-dim);font-weight:700;
  text-align:right;padding:8px 10px;border-bottom:1px solid rgba(201,162,39,.35);cursor:pointer;white-space:nowrap;
  font-size:10px;letter-spacing:.06em;text-transform:uppercase;user-select:none}
table.grid th:first-child,table.grid td:first-child{text-align:left}
table.grid th:hover{color:var(--brass)}
table.grid th.sorted{color:var(--brass);text-shadow:0 0 8px rgba(201,162,39,.4)}
table.grid td{text-align:right;padding:8px 10px;border-bottom:1px solid rgba(196,178,138,.06);white-space:nowrap}
table.grid tbody tr{cursor:pointer;transition:background .12s}
table.grid tbody tr:nth-child(even){background:rgba(255,255,255,.014)}
table.grid tbody tr:hover{background:rgba(201,162,39,.05);box-shadow:inset 2px 0 0 var(--brass)}
table.grid.dense{font-size:11px}
table.grid.dense td{padding:6px 8px}
.tok{display:flex;align-items:center;gap:9px;text-align:left}
/* INTEL grid: col 1 is the ★, so the token column is col 2 — keep it left-aligned */
table.grid.dense th:nth-child(2),table.grid.dense td:nth-child(2){text-align:left}
.tok img{width:22px;height:22px;border-radius:50%;border:1px solid rgba(201,162,39,.4);background:#000;filter:sepia(.25)}
/* ---- LIVEWIRE: dev broadcasts ---- */
@keyframes livePulse{0%,100%{opacity:1}50%{opacity:.45}}
.live-chip{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:#ff5040;
  border:1px solid rgba(255,80,60,.55);border-radius:2px;padding:1px 5px;margin-left:5px;
  background:rgba(255,60,40,.08);animation:livePulse 1.6s infinite;white-space:nowrap}
.live-btn{font-family:var(--disp);font-size:10px;letter-spacing:.1em;color:#fff;cursor:pointer;white-space:nowrap;
  background:linear-gradient(180deg,#d0432e,#8a2f1f);border:0;border-radius:3px;padding:8px 12px;flex:none;
  animation:livePulse 1.6s infinite;box-shadow:0 0 14px rgba(255,60,40,.35)}
.live-btn:hover{filter:brightness(1.15)}
.live-btn.ev{background:linear-gradient(180deg,#d9a441,#a06b1c);color:#1a150c;box-shadow:0 0 14px rgba(217,164,65,.35)}
/* broadcast CTA in the theater's bottom bar — short label, the strip carries specifics */
.ev-ribbon{cursor:pointer;white-space:nowrap;
  font-family:var(--disp);font-size:11px;letter-spacing:.12em;color:#1a150c;text-align:center;
  background:linear-gradient(180deg,#ffd27a,#d9a441);border:1px solid #8a6a1c;border-radius:3px;
  padding:9px 14px;box-shadow:0 4px 18px rgba(0,0,0,.5), 0 0 18px rgba(217,164,65,.4);
  animation:livePulse 1.8s infinite}
.ev-ribbon:hover{filter:brightness(1.1)}
.ev-ribbon.onair{background:linear-gradient(180deg,#ff7a60,#c23a24);border-color:#7a1f12;color:#fff;
  box-shadow:0 4px 18px rgba(0,0,0,.5), 0 0 22px rgba(255,80,50,.5)}
@media(max-width:900px){.ev-ribbon{font-size:10px;padding:8px 10px}}
.war-strip .ws-live{cursor:pointer;color:#ff6a55;white-space:nowrap;animation:livePulse 1.6s infinite}
.war-strip .ws-live:hover{color:#ff8a70}
.radio-panel .panel-hd #radioWatch{color:#ff5040;border-color:rgba(255,80,60,.55);animation:livePulse 1.6s infinite}
.radio-feed{list-style:none;margin:0;padding:8px 12px;max-height:210px;overflow-y:auto;font-size:11.5px;line-height:1.55}
.radio-feed li{padding:2px 6px;border-left:2px solid transparent}
.radio-feed li.new{animation:alertIn .4s cubic-bezier(.2,.9,.3,1.2)}
.radio-feed .r-chat{color:var(--txt)}
.radio-feed .r-chat b{color:var(--brass)}
.radio-feed .r-gift{color:#ffd27a;border-left-color:rgba(217,164,65,.6);background:rgba(201,162,39,.05)}
.radio-feed .r-likes{color:#d98a80}
.radio-feed .r-join{color:var(--txt-mute)}
.radio-feed .r-sys{color:#7da06a;font-style:italic}

/* tactical map: mobile ENLARGE — fullscreen with the radar tilted sideways */
.rd-enlarge{display:none}
@media(max-width:900px){.rd-enlarge{display:inline-block}}
.radar-panel.radar-full{position:fixed;inset:0;z-index:340;margin:0;border-radius:0;background:#14110a;overflow:hidden}
.radar-panel.radar-full .panel-hd{position:relative;z-index:2}
.radar-panel.radar-full .radar{position:absolute;left:50%;top:50%;width:100vh;height:100vw;max-height:none;
  transform:translate(-50%,-50%) rotate(90deg);z-index:1}
.radar-panel.radar-full .radar-stats{display:none}

/* coins without a published logo fly a plain black roundel everywhere */
.logo-blank{display:inline-block;flex:none;border-radius:50%;background:#0a0806;border:1px solid rgba(201,162,39,.4)}
.tok .logo-blank{width:22px;height:22px}
.coin-hd .logo-blank{width:48px;height:48px;border-color:rgba(201,162,39,.45)}
.qm-sector .logo-blank{width:20px;height:20px}
@media(max-width:700px){.coin-hd .logo-blank{width:34px;height:34px}}
.tok .sym{color:var(--white);font-weight:700}
.tok .full{color:var(--txt-mute);font-size:10px}
.wstar{color:var(--amber)}
.pill{display:inline-block;padding:2px 6px;border-radius:2px;font-size:10px;font-weight:700;letter-spacing:.04em;font-family:var(--mono)}
.pill.LOW{color:var(--grn);background:rgba(168,187,100,.12);border:1px solid var(--grn-dim)}
.pill.MED{color:var(--amber);background:rgba(217,164,65,.1);border:1px solid rgba(217,164,65,.4)}
.pill.HIGH{color:var(--red);background:rgba(208,84,60,.12);border:1px solid rgba(208,84,60,.5);
  box-shadow:0 0 8px rgba(208,84,60,.15)}
.pill.na,.pill.UNKNOWN{color:var(--txt-mute);border:1px solid var(--line)}
.spark{display:inline-block;vertical-align:middle}

.px-cell{border-radius:2px;padding:1px 4px}
.px-cell.flash-up{animation:flashUp 1.1s ease-out}
.px-cell.flash-down{animation:flashDown 1.1s ease-out}
@keyframes flashUp{0%{background:rgba(168,187,100,.45);color:#f2ead6}100%{background:transparent}}
@keyframes flashDown{0%{background:rgba(208,84,60,.45);color:#fff}100%{background:transparent}}

/* ============================ liquidity treemap ============================ */
.treemap{position:relative;height:190px;margin:8px;overflow:hidden;border-radius:3px}
.tm-cell{position:absolute;border-radius:2px;border:1px solid rgba(20,17,9,.6);cursor:pointer;overflow:hidden;
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1px;
  transition:filter .15s, box-shadow .15s}
.treemap.first .tm-cell{animation:tmIn .5s ease-out}
.tm-cell:hover{filter:brightness(1.5);z-index:2;box-shadow:0 0 14px rgba(201,162,39,.3)}
.tm-cell.thin{outline:1px dashed rgba(208,84,60,.7);outline-offset:-3px}
.tm-cell.hirisk::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(45deg, transparent 0 8px, rgba(208,84,60,.15) 8px 12px)}
.tm-sym{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--white);text-shadow:0 1px 3px rgba(0,0,0,.8)}
.tm-val{font-family:var(--mono);font-size:9px;color:rgba(242,234,214,.75);text-shadow:0 1px 3px rgba(0,0,0,.8)}
.tm-chg{font-family:var(--mono);font-size:9px;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.8)}
@keyframes tmIn{from{opacity:0}to{opacity:1}}

/* ============================ signals intercepts (alerts) ============================ */
.alerts-panel{display:flex;flex-direction:column;max-height:400px}
.alert-feed{list-style:none;margin:0;padding:6px;overflow-y:auto;flex:1}
.alert-feed li{font-family:var(--mono);font-size:11px;padding:7px 9px;margin-bottom:5px;border-radius:2px;
  border-left:3px solid var(--txt-mute);background:rgba(255,255,255,.02);line-height:1.35;
  display:flex;gap:8px;align-items:center}
.alert-feed li .ic{flex:none;font-size:14px}
.alert-feed li .ab{flex:1;min-width:0;overflow-wrap:anywhere}
.alert-feed li.new{animation:alertIn .45s cubic-bezier(.2,.9,.3,1.2)}
@keyframes alertIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.alert-feed li .at{color:var(--txt-mute);font-size:10px}
.alert-feed li .k{font-weight:700;letter-spacing:.04em}
.alert-feed li.critical{border-left-color:var(--red);background:rgba(208,84,60,.06)}
.alert-feed li.critical.new{animation:alertIn .45s cubic-bezier(.2,.9,.3,1.2), critBlink 1.2s ease-out}
@keyframes critBlink{0%,40%{background:rgba(208,84,60,.28)}100%{background:rgba(208,84,60,.06)}}
.alert-feed li.warn{border-left-color:var(--amber);background:rgba(217,164,65,.05)}
.alert-feed li.good{border-left-color:var(--grn);background:rgba(168,187,100,.05)}
.empty{color:var(--txt-mute);text-align:center;padding:20px;font-family:var(--mono);font-size:11px}

/* ---- counter-intel ---- */
.insider-panel{max-height:280px;display:flex;flex-direction:column}
.insider-feed{list-style:none;margin:0;padding:6px;overflow-y:auto;flex:1;font-family:var(--mono);font-size:11px}
.insider-feed li{display:flex;align-items:center;gap:7px;padding:5px 7px;border-radius:2px;margin-bottom:4px;
  background:rgba(255,255,255,.02);border-left:3px solid var(--txt-mute)}
.insider-feed li.out{border-left-color:var(--amber)} .insider-feed li.in{border-left-color:var(--grn-dim)}
.insider-feed .dir{font-weight:700;font-size:10px;color:var(--txt-dim)}
.insider-feed .mth{color:var(--brass);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.insider-feed .tok-hit{color:var(--amber);font-weight:700}
.insider-feed .cp{color:var(--txt-mute)}
.insider-feed .val{color:var(--white)} .insider-feed .at{margin-left:auto;color:var(--txt-mute);font-size:9px}

/* ============================ basket battle strip ============================ */
.basket-battle{margin-bottom:12px}
.bb-holder{padding:12px 14px}
.battle-bar{position:relative;display:flex;height:26px;border-radius:3px;overflow:hidden;background:#12100a;
  border:1px solid var(--line)}
.battle-bar.compact{height:12px;min-width:70px;border-radius:2px}
/* bulls hold the LEFT flank and push right; bears hold the RIGHT — brightest at the front */
.battle-bar .army{position:relative;height:100%;transition:width .6s cubic-bezier(.3,.9,.3,1)}
.battle-bar .army.buy{background:linear-gradient(90deg,rgba(168,187,100,.30),var(--grn))}
.battle-bar .army.sell{background:linear-gradient(90deg,var(--red),rgba(208,84,60,.30))}
.battle-bar .army::after{content:'';position:absolute;inset:0;opacity:.5;
  background:repeating-linear-gradient(45deg, transparent 0 7px, rgba(0,0,0,.16) 7px 13px);
  animation:march 1.4s linear infinite}
.battle-bar .army.sell::after{animation-direction:reverse}
@keyframes march{from{background-position:0 0}to{background-position:18px 0}}
.battle-bar.compact .army::after{animation:none}
.battle-bar .front{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--white);
  box-shadow:0 0 10px var(--white), 0 0 22px rgba(242,234,214,.5);transition:left .6s cubic-bezier(.3,.9,.3,1)}
.battle-bar.lead-buy .front{background:var(--grn);box-shadow:0 0 10px var(--grn), 0 0 22px rgba(168,187,100,.55)}
.battle-bar.lead-sell .front{background:var(--red);box-shadow:0 0 10px var(--red), 0 0 22px rgba(208,84,60,.55)}
.battle-bar .ba{position:absolute;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:11px;font-weight:700;
  color:var(--white);text-shadow:0 1px 3px rgba(0,0,0,.85);z-index:1}
.battle-bar .ba.bull{left:8px} .battle-bar .ba.bear{right:8px}

/* ============================ INTEL controls ============================ */
.filters{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.flt{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--txt-dim);background:transparent;
  border:1px solid var(--line);padding:4px 9px;border-radius:2px;cursor:pointer;transition:all .15s}
.flt:hover{color:var(--txt);border-color:rgba(201,162,39,.4)}
.flt.active{color:var(--brass);border-color:rgba(201,162,39,.5);background:rgba(201,162,39,.08);
  box-shadow:0 0 8px rgba(201,162,39,.12)}
.star{background:transparent;border:0;color:var(--txt-mute);cursor:pointer;font-size:14px;line-height:1;
  transition:transform .15s}
.star:hover{transform:scale(1.25)}
.star.on{color:var(--amber);text-shadow:0 0 8px rgba(217,164,65,.5)}
.coinstar{font-size:19px;vertical-align:middle;margin-left:4px}
.notebtn{background:transparent;border:1px solid var(--line);color:var(--txt-dim);cursor:pointer;border-radius:2px;padding:1px 6px;font-size:11px}
.notebtn.has{color:var(--amber);border-color:rgba(217,164,65,.4)}

/* ============================ tactical radar ============================ */
.radar-panel .panel-hd span:first-child{text-shadow:0 0 10px rgba(201,162,39,.4)}
.radar{width:100%;height:min(68vh,640px);display:block;cursor:crosshair}
.radar-stats{display:flex;gap:14px;flex-wrap:wrap;align-items:center;padding:9px 14px;
  border-top:1px solid var(--line);font-size:11px}
.rq{display:inline-flex;align-items:center;gap:6px;letter-spacing:.06em}
.rq b{font-size:13px}
.rq.up b{color:var(--grn)} .rq.down b{color:var(--red)} .rq.amber b{color:var(--amber)} .rq.mute b{color:var(--txt-dim)}
.rq.dim{margin-left:auto;color:var(--txt-mute)}

/* ============================ THE GRAND FRONT ============================ */
.front-panel{margin-bottom:12px}
.front-holder{padding:4px 6px;
  background:
    repeating-radial-gradient(circle at 30% 20%, transparent 0 46px, rgba(196,178,138,.03) 46px 47px),
    repeating-radial-gradient(circle at 75% 70%, transparent 0 60px, rgba(196,178,138,.025) 60px 61px)}
.frontmap{width:100%;display:block}
/* 3D theater */
.front-holder.threed{position:relative;height:min(74vh,720px);padding:0;overflow:hidden}
.front3d-canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none}
.front3d-canvas:active{cursor:grabbing}
.front3d-hud{position:absolute;inset:0;pointer-events:none;font-family:var(--mono)}
.f3-top{position:absolute;top:10px;left:0;right:0;text-align:center}
.f3-pct{font-family:var(--disp);font-size:30px;color:var(--white);letter-spacing:.06em;
  text-shadow:0 2px 14px rgba(0,0,0,.8), 0 0 24px rgba(201,162,39,.25)}
.f3-word{font-family:var(--disp);font-size:12px;letter-spacing:.3em;margin-top:2px}
.f3-sub{font-size:11px;color:var(--txt-dim);margin-top:3px}
.f3-side{position:absolute;top:14px;display:flex;flex-direction:column;gap:2px;font-size:11px}
.f3-side b{font-family:var(--disp);font-size:10px;letter-spacing:.18em}
.f3-left{left:14px;color:var(--red)} .f3-left span{color:var(--txt)}
.f3-right{right:14px;text-align:right;color:var(--grn)} .f3-right span{color:var(--txt)}
.f3-tip{position:absolute;width:230px;background:rgba(23,19,13,.95);border:1px solid rgba(201,162,39,.5);
  border-radius:3px;padding:9px 11px;font-size:11px;line-height:1.55;color:var(--txt);z-index:5}
.f3-tip b{font-family:var(--disp);color:var(--white)} .f3-tip i{color:var(--brass);font-style:normal}
.f3-hint{position:absolute;bottom:8px;left:0;right:0;text-align:center;font-size:10px;color:var(--txt-mute)}
/* battle announcement: slams into the center of the theater */
.f3-alert{position:absolute;top:34%;left:50%;transform:translate(-50%,-50%);z-index:6;pointer-events:none;
  font-family:var(--disp);font-size:23px;letter-spacing:.2em;color:#ffd27a;text-align:center;
  max-width:86%;line-height:1.4;padding:13px 32px;background:rgba(20,16,9,.84);
  border-top:2px solid rgba(217,164,65,.9);border-bottom:2px solid rgba(217,164,65,.9);
  box-shadow:0 0 44px rgba(0,0,0,.65), 0 0 34px rgba(255,150,40,.28);
  text-shadow:0 0 24px rgba(255,150,40,.85), 0 2px 6px rgba(0,0,0,.9);
  animation:alertSlam .5s cubic-bezier(.2,1.4,.4,1), pulse 1.1s .6s infinite}
@keyframes alertSlam{0%{transform:translate(-50%,-50%) scale(1.9);opacity:0;letter-spacing:.5em}
  55%{opacity:1}100%{transform:translate(-50%,-50%) scale(1);letter-spacing:.2em}}
.f3-alert.hidden{display:none}
@media(max-width:900px){.f3-alert{font-size:14px;padding:9px 14px;letter-spacing:.12em}}
@media(max-width:900px){
  /* just the war — no chrome above the theater */
  .front-panel .panel-hd{display:none}
  .front-panel{border-top:0}
  .front-holder.threed{height:min(72vh,600px)}
  .f3-pct{font-size:19px}
  .f3-sub{display:none}
  /* pressure labels stay on the map: SELL left · BUY right */
  .f3-side{top:auto;bottom:8px;font-size:9px;gap:1px}
  .f3-side b{font-size:8px;letter-spacing:.12em}
  .f3-hint{display:none}
}
.dispatch-panel{max-height:320px;display:flex;flex-direction:column}
.dispatch-feed{list-style:none;margin:0;padding:8px 10px;overflow-y:auto;flex:1;font-size:11.5px;line-height:1.5}
.dispatch-feed li{font-family:var(--type);padding:4px 6px;border-radius:2px;margin-bottom:2px;color:var(--txt)}
.dispatch-feed li.new{animation:alertIn .45s cubic-bezier(.2,.9,.3,1.2);background:rgba(201,162,39,.05)}
.dispatch-feed li.up{border-left:2px solid rgba(168,187,100,.5);padding-left:8px}
.dispatch-feed li.down{border-left:2px solid rgba(208,84,60,.5);padding-left:8px}
.dispatch-feed .dz{color:var(--brass);font-family:var(--mono);font-size:10px;letter-spacing:.08em}

/* ============================ general's briefing ============================ */
.briefing{position:fixed;inset:0;z-index:400;background:rgba(10,8,4,.72);backdrop-filter:blur(4px);
  display:flex;justify-content:center;align-items:flex-start;padding:5vh 20px;overflow-y:auto;animation:fadeIn .2s ease-out}
.brief-doc{position:relative;width:min(700px,100%);background:
  linear-gradient(180deg, #e9dcb8, #dccfa5 60%, #d3c497);
  color:var(--ink);border-radius:2px;padding:34px 38px 30px;
  box-shadow:0 24px 70px rgba(0,0,0,.75), inset 0 0 80px rgba(120,95,40,.18);
  animation:panelIn .28s cubic-bezier(.2,.9,.3,1.1)}
.brief-doc::before{content:'';position:absolute;inset:0;opacity:.5;pointer-events:none;border-radius:2px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.45 0 0 0 0 0.38 0 0 0 0 0.22 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23p)'/%3E%3C/svg%3E")}
.brief-stamp{position:absolute;top:20px;right:56px;transform:rotate(8deg);
  font-family:var(--disp);font-size:20px;letter-spacing:.18em;color:rgba(178,44,32,.85);
  border:3px double rgba(178,44,32,.8);padding:4px 14px;border-radius:3px;pointer-events:none}
.brief-body{position:relative;font-family:var(--mono);font-size:12.5px;line-height:1.75;color:var(--ink);
  white-space:pre-wrap;margin:8px 0 0;min-height:280px;overflow-wrap:anywhere}
.brief-doc .close{position:absolute;top:10px;left:10px;background:transparent;border:1px solid rgba(74,63,42,.5);
  color:#4a3f2a;width:28px;height:28px;border-radius:3px;cursor:pointer;font-size:13px;z-index:2}
.brief-doc .close:hover{color:#a2291c;border-color:#a2291c}

/* ============================ per-coin overlay ============================ */
.coin-overlay{position:fixed;inset:0;z-index:200;background:rgba(10,8,4,.8);backdrop-filter:blur(5px);
  display:flex;justify-content:center;align-items:flex-start;padding:26px;overflow-y:auto;animation:fadeIn .2s ease-out}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.coin-panel{position:relative;width:min(1180px,100%);background:linear-gradient(180deg,var(--panel),var(--bg2));
  border:1px solid rgba(201,162,39,.4);border-radius:4px;box-shadow:0 0 60px rgba(0,0,0,.7),inset 0 0 60px rgba(201,162,39,.03);
  animation:panelIn .28s cubic-bezier(.2,.9,.3,1.1)}
@keyframes panelIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
.close{position:absolute;top:12px;right:12px;z-index:5;background:rgba(20,17,9,.85);border:1px solid rgba(201,162,39,.45);
  color:var(--txt);width:30px;height:30px;border-radius:3px;cursor:pointer;font-size:14px;transition:all .15s}
.close:hover{color:var(--red);border-color:var(--red);box-shadow:0 0 10px rgba(208,84,60,.3)}
/* right padding reserves the SHARE + ✕ column — they can never sit on the price */
.coin-hd{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 96px 18px 20px;border-bottom:1px solid var(--line)}
.coin-hd img{width:48px;height:48px;border-radius:50%;border:1px solid rgba(201,162,39,.45);background:#000;filter:sepia(.25)}
.coin-hd .nm{font-family:var(--disp);font-size:22px;color:var(--paper);letter-spacing:.06em}
.coin-hd .ad{font-family:var(--mono);font-size:11px;color:var(--txt-mute);cursor:pointer;overflow-wrap:anywhere}
.coin-hd .ad:hover{color:var(--brass)}
.coin-hd .px{margin-left:auto;text-align:right}
.coin-hd .px .p{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:26px;font-weight:700;color:var(--white)}
/* SHARE rides in the panel's top-right corner, beside the ✕ — same square icon style */
.coin-panel .sharebtn{right:50px;display:inline-flex;align-items:center;justify-content:center;color:var(--brass)}
.coin-panel .sharebtn:hover{color:var(--white);border-color:var(--brass);box-shadow:0 0 10px rgba(201,162,39,.35)}
.coin-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;padding:16px 20px}
.card{background:var(--bg2);border:1px solid var(--line);border-radius:3px;padding:12px 14px}
.card h4{margin:0 0 10px;font-family:var(--disp);font-size:10px;letter-spacing:.14em;color:var(--brass)}
.card-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px}
.kv{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;padding:4px 0;border-bottom:1px solid rgba(196,178,138,.06)}
.kv .kk{color:var(--txt-dim)} .kv .vv{color:var(--white)}
.chart-wrap{grid-column:1/-1}
#coinChart{width:100%;height:300px;display:block;cursor:crosshair}
.tf{display:flex;gap:5px}
.tf button{font-family:var(--mono);font-size:10px;color:var(--txt-dim);background:transparent;border:1px solid var(--line);padding:3px 9px;border-radius:2px;cursor:pointer}
.tf button.on{color:var(--brass);border-color:rgba(201,162,39,.5);background:rgba(201,162,39,.08)}
.impact-row{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.impact-row button{font-family:var(--mono);font-size:11px;color:var(--txt);background:rgba(255,255,255,.03);border:1px solid var(--line);padding:5px 10px;border-radius:2px;cursor:pointer}
.impact-row button:hover{border-color:rgba(201,162,39,.5);color:var(--brass)}
.social a{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;color:var(--brass);
  text-decoration:none;border:1px solid var(--line);padding:5px 10px;border-radius:2px;margin:3px 4px 0 0;transition:all .15s}
.social a:hover{border-color:var(--brass);background:rgba(201,162,39,.06);box-shadow:0 0 10px rgba(201,162,39,.15)}
.buybtn{position:relative;display:block;text-align:center;font-family:var(--disp);letter-spacing:.1em;
  color:#1a150c;background:linear-gradient(180deg,#d9a441,#b1801f);border:0;border-radius:3px;padding:11px;
  text-decoration:none;margin-top:10px;overflow:hidden;transition:filter .15s, transform .12s}
.buybtn::after{content:'';position:absolute;top:0;bottom:0;width:40%;left:-60%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);
  animation:sheen 3.2s ease-in-out infinite}
@keyframes sheen{0%,70%{left:-60%}100%{left:130%}}
.buybtn:hover{filter:brightness(1.12);transform:translateY(-1px)}
.loading{text-align:center;padding:60px;color:var(--txt-dim);font-family:var(--mono)}

/* ---- coin overlay: battle + cvd + kill feed ---- */
.battle-wrap{grid-column:1/2}
.battle-stats{display:flex;justify-content:space-between;gap:8px;font-size:11px;margin-top:8px;flex-wrap:wrap;font-family:var(--mono)}
#battleField{width:100%;height:220px;display:block;border-radius:3px;border:1px solid var(--line);
  background:
    radial-gradient(120% 90% at 50% 0%, rgba(255,255,255,.02), transparent),
    linear-gradient(180deg, #191509 0%, #14110a 100%)}
#cvdChart{width:100%;height:90px;display:block;margin-top:6px}
.kill-wrap{display:flex;flex-direction:column;grid-column:2/3;min-height:0;max-height:none}
.kill-feed{list-style:none;margin:8px 0 0;padding:0;overflow-y:auto;flex:1;min-height:0;font-family:var(--mono);font-size:11px}
@media(max-width:900px){.battle-wrap,.kill-wrap{grid-column:auto}.kill-wrap{max-height:360px}}
.kill-feed li{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:2px;margin-bottom:4px;
  border-left:3px solid var(--txt-mute);background:rgba(255,255,255,.02)}
.kill-feed li.buy{border-left-color:var(--grn)} .kill-feed li.sell{border-left-color:var(--red)}
.kill-feed li.new{animation:alertIn .4s cubic-bezier(.2,.9,.3,1.2)}
.kill-feed .side{font-weight:700;font-size:10px}
.kill-feed li.buy .side{color:var(--grn)} .kill-feed li.sell .side{color:var(--red)}
.kill-feed b{color:var(--white)} .kill-feed .wal{color:var(--txt-dim)} .kill-feed .at{margin-left:auto;color:var(--txt-mute);font-size:9px}

/* ============================ the recruiting office ============================ */
.deploy-ov{position:fixed;inset:0;z-index:350;background:rgba(10,8,4,.78);backdrop-filter:blur(4px);
  display:flex;justify-content:center;align-items:flex-start;padding:5vh 16px;overflow-y:auto;animation:fadeIn .2s ease-out}
.deploy-box{position:relative;width:min(780px,100%);background:linear-gradient(180deg,var(--panel),var(--bg2));
  border:1px solid rgba(201,162,39,.5);border-radius:4px;padding:20px 22px;
  box-shadow:0 24px 70px rgba(0,0,0,.7), 0 0 40px rgba(201,162,39,.06);
  animation:panelIn .25s cubic-bezier(.2,.9,.3,1.1)}
.qm-title{font-family:var(--disp);font-size:17px;letter-spacing:.1em;color:var(--paper)}
.qm-sub{font-size:11.5px;color:var(--txt-dim);margin:6px 0 12px;line-height:1.5;max-width:60ch}
.qm-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.qm-row label{font-family:var(--disp);font-size:10px;letter-spacing:.16em;color:var(--brass);display:flex;align-items:center;gap:8px}
.qm-row input{background:rgba(0,0,0,.3);border:1px solid var(--line);color:var(--white);
  font-family:var(--mono);font-size:13px;padding:6px 10px;border-radius:2px;width:170px;outline:none}
.qm-row input:focus{border-color:rgba(201,162,39,.6)}
.qm-wallet{font-family:var(--mono);font-size:11px;color:var(--brass)}
.qm-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}
@media(max-width:700px){.qm-grid{grid-template-columns:repeat(2,1fr)}}
.qm-pack{display:flex;flex-direction:column;gap:3px;text-align:left;cursor:pointer;padding:9px 10px;
  background:rgba(255,255,255,.02);border:1px solid var(--line);border-radius:3px;color:var(--txt);
  transition:border-color .12s, background .12s, transform .12s}
.qm-pack:hover{border-color:rgba(201,162,39,.6);background:rgba(201,162,39,.06);transform:translateY(-1px)}
.qm-pack b{font-family:var(--mono);font-size:15px;color:var(--brass)}
.qm-pack .nm{font-family:var(--disp);font-size:10px;letter-spacing:.08em;color:var(--white)}
.qm-pack .bl{font-size:10px;color:var(--txt-mute);line-height:1.3}
.qm-quote{border-top:1px solid var(--line);padding-top:12px}
.qm-qrow{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;padding:3px 0}
.qm-qrow span{color:var(--txt-dim)} .qm-qrow b{color:var(--white)}
.qm-status{font-family:var(--mono);font-size:12px;padding:9px 11px;margin-top:10px;border-radius:3px;
  border-left:3px solid var(--txt-mute);background:rgba(255,255,255,.03)}
.qm-status.good{border-left-color:var(--grn);background:rgba(168,187,100,.08);color:var(--grn)}
.qm-status.bad{border-left-color:var(--red);background:rgba(208,84,60,.08);color:var(--red)}
.qm-status.warn{border-left-color:var(--amber);background:rgba(217,164,65,.07);color:var(--amber)}
.deploybtn{background:linear-gradient(180deg,#a8bb64,#77804a)!important;margin-bottom:8px}
/* ---- the War Office: standing-orders strip, flares, morale, ranks, gazette ---- */
.war-strip{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;
  padding:5px 14px;font-size:11px;letter-spacing:.06em;color:var(--txt);
  background:rgba(201,162,39,.07);border-bottom:1px solid var(--line);
  max-width:100%;overflow:hidden}
/* phones: long segments must WRAP, never widen the page (nowrap was blowing out the viewport) */
@media(max-width:700px){
  .war-strip{gap:6px 12px;font-size:10px;padding:4px 10px}
  .war-strip .ws-op,.war-strip .ws-clash,.war-strip .ws-live{white-space:normal;text-align:center;max-width:100%}
  .war-strip .ws-sep{display:none}
}
.war-strip.hidden{display:none}
.war-strip .ws-op,.war-strip .ws-clash{cursor:pointer;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.war-strip .ws-op:hover,.war-strip .ws-clash:hover{color:var(--brass)}
.war-strip .ws-op.won{color:var(--grn)}
.war-strip .ws-sep{color:var(--txt-mute)}
.ws-bar{display:inline-block;width:74px;height:6px;background:rgba(255,255,255,.07);border:1px solid var(--line);border-radius:2px;overflow:hidden}
.ws-bar b{display:block;height:100%;background:linear-gradient(90deg,#77804a,#a8bb64)}
.morale-row{display:flex;align-items:center;justify-content:center;gap:8px;margin:8px 20px 2px;flex-wrap:nowrap}
/* tablet + mobile: the row WRAPS — label+bar take the first line, buttons flow
   in centered rows below. Web keeps the single line. */
@media(max-width:900px){
  .morale-row{margin:8px 14px 2px;flex-wrap:wrap;row-gap:8px}
  .morale-row .morale-bar{flex:1 1 140px;max-width:none}
}
.morale-row>span{font-size:10px;letter-spacing:.12em;color:var(--txt-dim);white-space:nowrap}
.morale-row>span i{font-style:normal}
.morale-bar{flex:1 1 40px;min-width:36px;max-width:130px;height:8px;background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:2px;overflow:hidden}
.cta-gold{font-family:var(--disp);font-size:10px;letter-spacing:.1em;color:#1a150c;cursor:pointer;white-space:nowrap;
  background:linear-gradient(180deg,#d9a441,#b1801f);border:0;border-radius:3px;padding:8px 12px;flex:none}
.cta-gold:hover{filter:brightness(1.12)}
@media(max-width:520px){
  .mr-sec{display:none}
  .morale-row{gap:6px}
  .cta-gold{font-size:9px;padding:7px 8px}
  .morale-row .flare-btn{font-size:10px;padding:5px 7px}
}
.morale-bar i{display:block;height:100%;background:linear-gradient(90deg,#c9a227,#d9a441);transition:width .5s}
.flare-btn{font-family:var(--mono);font-size:11px;color:var(--brass);background:rgba(201,162,39,.08);
  border:1px solid rgba(201,162,39,.5);padding:5px 10px;border-radius:2px;cursor:pointer;white-space:nowrap}
.flare-btn:hover{background:rgba(201,162,39,.16)}
.flare-btn:disabled{opacity:.6;cursor:default}
.rank-chip{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:#1a150c;
  background:linear-gradient(180deg,#d9a441,#b1801f);padding:4px 8px;border-radius:2px;white-space:nowrap}
.rank-chip.hidden{display:none}
.gz-ov{position:fixed;inset:0;z-index:360;background:rgba(10,8,4,.82);display:flex;align-items:center;justify-content:center;padding:14px}
.gz-ov.hidden{display:none}
.gz-box{position:relative;background:var(--panel,#1b160d);border:1px solid var(--brass);border-radius:4px;
  padding:16px;max-width:min(520px,96vw);max-height:94vh;overflow:auto;text-align:center}
.gz-title{font-family:var(--disp);letter-spacing:.1em;color:var(--brass);margin-bottom:10px;font-size:14px}
#gzCanvas{width:100%;height:auto;border:1px solid var(--line);border-radius:2px;background:#e8dcc2}
.gz-actions{display:flex;gap:8px;margin-top:10px;justify-content:center;flex-wrap:wrap}
.gz-actions .ghost{font-family:var(--mono);font-size:11px;color:var(--txt);background:rgba(255,255,255,.04);
  border:1px solid var(--line);padding:8px 12px;border-radius:2px;cursor:pointer}
.gz-actions .ghost:hover{border-color:var(--brass);color:var(--brass)}
.gz-dl{flex:1;margin:0!important;padding:9px 14px!important}
.gz-hint{margin-top:8px;font-size:10px;color:var(--txt-mute)}

/* deploy + trade side by side, equal size */
.cta-pair{display:flex;gap:8px;margin-top:10px}
.cta-pair .buybtn{flex:1 1 0;margin:0;padding:11px 8px;font-size:12px;display:flex;align-items:center;justify-content:center;cursor:pointer}
@media(max-width:700px){.cta-pair{flex-direction:column}}

/* sector chooser (no token picked yet) */
.qm-sectors{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
@media(max-width:700px){.qm-sectors{grid-template-columns:repeat(3,1fr)}}
.qm-sector{display:flex;align-items:center;gap:7px;padding:7px 9px;cursor:pointer;
  background:rgba(255,255,255,.02);border:1px solid var(--line);border-radius:3px;color:var(--txt);
  transition:border-color .12s, background .12s}
.qm-sector:hover{border-color:rgba(201,162,39,.6);background:rgba(201,162,39,.06)}
.qm-sector img{width:20px;height:20px;border-radius:50%;border:1px solid rgba(201,162,39,.4)}
.qm-sector .sn{font-family:var(--disp);font-size:10px;color:var(--white)}
.qm-sector .sp{margin-left:auto;font-family:var(--mono);font-size:10px}

/* the theater's standing bottom bar: FILM · REINFORCE · LIVE, always centered.
   mobile: FILM+LIVE side by side with REINFORCE below when a live exists,
   plain FILM-over-REINFORCE column when it doesn't */
.f3-bar{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:6;
  display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;max-width:96%;pointer-events:auto}
.f3-cta{cursor:pointer;
  font-family:var(--disp);font-size:11px;letter-spacing:.1em;color:#1a150c;
  background:linear-gradient(180deg,#d9a441,#b1801f);border:0;border-radius:3px;padding:9px 14px;
  box-shadow:0 4px 18px rgba(0,0,0,.5), 0 0 18px rgba(217,164,65,.25);animation:ctaPulse 2.6s ease-in-out infinite}
.f3-cta:hover{filter:brightness(1.12)}
@keyframes ctaPulse{0%,100%{box-shadow:0 4px 18px rgba(0,0,0,.5), 0 0 12px rgba(217,164,65,.2)}
  50%{box-shadow:0 4px 18px rgba(0,0,0,.5), 0 0 26px rgba(217,164,65,.5)}}
/* WAR REEL: film crew button + darkroom overlay */
.f3-film{cursor:pointer;
  font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--brass);
  background:rgba(20,16,9,.8);border:1px solid rgba(201,162,39,.55);border-radius:3px;padding:9px 11px}
.f3-film:hover{background:rgba(201,162,39,.16)}
@media(max-width:900px){
  .f3-bar{bottom:60px;gap:7px}
  .f3-cta{font-size:10px;padding:8px 10px}
  .f3-bar:not(.has-live){flex-direction:column}
  .f3-bar.has-live .f3-film{order:1}
  .f3-bar.has-live .ev-ribbon{order:2}
  .f3-bar.has-live::after{content:'';flex-basis:100%;order:3;height:0}
  .f3-bar.has-live .f3-cta{order:4}
}
.war-strip .ws-event{color:#e8b661}
/* ============================ THE INDEXES ============================ */
/* switcher between RHTWENTY and PtMI */
.idx-switch{display:flex;gap:8px;flex-wrap:wrap}
.idx-switch button{display:flex;align-items:center;gap:8px;cursor:pointer;padding:7px 12px;border-radius:3px;
  background:rgba(255,255,255,.03);border:1px solid var(--line);color:var(--txt-dim);font-family:var(--disp);
  font-size:12px;letter-spacing:.08em}
.idx-switch button img{width:22px;height:22px;border-radius:50%;border:1px solid rgba(201,162,39,.4)}
.idx-switch button i{font-style:normal;font-family:var(--mono);font-size:8px;letter-spacing:.14em;
  color:var(--txt-mute);border:1px solid var(--line);border-radius:2px;padding:2px 5px}
.idx-switch button.on{color:var(--brass);border-color:var(--brass);background:rgba(201,162,39,.1)}
.idx-switch button.on i{color:var(--brass);border-color:rgba(201,162,39,.5)}
/* the league table */
.lg-table{padding:12px 14px}
.lg-head,.lg-row{display:grid;grid-template-columns:34px 1fr 1.1fr .8fr;gap:8px;align-items:center;padding:5px 8px}
.lg-table.cont .lg-head,.lg-table.cont .lg-row{grid-template-columns:1fr .8fr 1.2fr .8fr}
.lg-head{font-size:9px;letter-spacing:.12em;color:var(--txt-mute);border-bottom:1px solid var(--line)}
.lg-row{font-size:11px;border-bottom:1px solid rgba(255,255,255,.03)}
.lg-row.top .lg-name{color:var(--brass)}
.lg-row.releg{background:rgba(208,84,60,.1);border-left:2px solid var(--red)}
.lg-row.releg .lg-name i{font-style:normal;font-size:8px;letter-spacing:.1em;color:var(--red);margin-left:6px}
.lg-rank{color:var(--txt-mute)}
.lg-name{color:var(--white);overflow-wrap:anywhere}
.lg-mcap,.lg-sup{text-align:right;color:var(--txt)}
/* headers must sit over their own column: the numeric ones are right-aligned,
   so their labels are too */
.lg-head span:nth-child(3),.lg-head span:nth-child(4){text-align:right}
.lg-table.cont .lg-head span:nth-child(2),.lg-table.cont .lg-head span:nth-child(3){text-align:right}
.lg-table.cont .lg-row>span:nth-child(2){text-align:right}
.lg-bar{position:relative;height:12px;background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:2px;overflow:hidden}
.lg-bar i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#77804a,#a8bb64)}
.lg-bar u{position:absolute;inset:0;text-decoration:none;text-align:center;font-size:9px;color:var(--white)}
.arena-stats i{display:block;margin:2px 0 0}
.idx-back{padding:12px 14px}
.idx-back .idx-field{margin-bottom:8px}
.idx-back .idx-field input{font-size:14px}
.idx-back .buybtn{margin-top:4px}
@media(max-width:700px){
  .lg-head,.lg-row{grid-template-columns:26px 1fr .9fr;font-size:10px}
  .lg-sup{display:none}
  .lg-table.cont .lg-head,.lg-table.cont .lg-row{grid-template-columns:1fr .7fr 1fr}
  .lg-table.cont .lg-head span:nth-child(4),.lg-table.cont .lg-row span:nth-child(4){display:none}
}

.idx-hero{display:flex;align-items:center;gap:18px;padding:16px 18px;flex-wrap:wrap;overflow:hidden}
/* one rhythm down the whole page: the hero must sit off the requisition card by
   the same 12px the cards use between themselves */
#view-index{max-width:100%;overflow-x:hidden;display:flex;flex-direction:column;gap:12px}
#view-index .panel{min-width:0}
.idx-logo{width:92px;height:92px;border-radius:6px;border:2px solid var(--brass);flex:none;
  box-shadow:0 0 26px rgba(201,162,39,.25)}
.idx-hero-txt{flex:1;min-width:240px}
.idx-hero-txt h2{font-family:var(--disp);font-size:17px;letter-spacing:.1em;color:var(--brass);margin:0 0 6px}
.idx-hero-txt p{margin:0;font-size:12.5px;line-height:1.5;color:var(--txt)}
.idx-hero-txt b{color:var(--white)}
.idx-facts{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.idx-facts span{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--brass);
  border:1px solid rgba(201,162,39,.4);border-radius:2px;padding:4px 8px;background:rgba(201,162,39,.06)}
.idx-price{text-align:right;min-width:150px}
.idx-price .p{font-family:var(--disp);font-size:24px;color:var(--white)}
 /* one column: requisition -> market/chart -> vault, in that reading order */
.idx-cols{display:flex;flex-direction:column;gap:12px}
.idx-cols>*{min-width:0}                     /* let panels shrink instead of overflowing */
.idx-share{position:absolute;top:9px;right:9px;cursor:pointer;color:var(--brass);
  background:rgba(20,16,9,.7);border:1px solid rgba(201,162,39,.45);border-radius:3px;padding:4px 5px;line-height:0}
.idx-share svg{width:11px;height:11px;display:block}
/* keep the price block clear of the share button in the corner */
.idx-price{padding-right:26px}
.idx-share:hover{background:rgba(201,162,39,.15)}
.idx-share.copied{color:var(--grn);border-color:var(--grn)}
.idx-share.copied::after{content:'LINK COPIED';position:absolute;right:0;top:34px;font-family:var(--mono);font-size:9px;white-space:nowrap;color:var(--grn)}
.idx-hero{position:relative}
/* market card: the pool's own numbers, beside the vault's honest price */
.idx-mkt{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 14px 4px}
.idx-mkt div{border:1px solid var(--line);border-radius:3px;padding:7px 9px;background:rgba(255,255,255,.02);min-width:0}
.idx-mkt span{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--txt-mute);white-space:nowrap}
.idx-mkt b{font-family:var(--disp);font-size:14px;color:var(--white);overflow-wrap:anywhere}
.idx-mkt .up{color:var(--grn)} .idx-mkt .down{color:var(--red)}
.idx-thin{margin:6px 14px 0}
.idx-chartwrap{margin:10px 14px 14px;padding:10px 12px;border:1px solid var(--line);border-radius:3px;background:rgba(0,0,0,.18)}
.idx-chartwrap .card-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.idx-chartwrap h4{margin:0 0 6px;font-family:var(--disp);font-size:12px;letter-spacing:.1em;color:var(--brass)}
#idxChart{width:100%;height:300px;display:block;cursor:crosshair}
@media(max-width:900px){
  .idx-price{text-align:left}
  .idx-mkt{grid-template-columns:repeat(2,1fr)}
  .idx-stats{grid-template-columns:repeat(2,1fr)}
  .idx-backing{grid-template-columns:repeat(2,1fr)}
  .idx-legtable{grid-template-columns:1fr}
  #idxChart{height:230px}
  .idx-chartwrap{margin:10px 10px 12px;padding:8px}
  .idx-hero{padding:14px 12px}
  .idx-logo{width:64px;height:64px}
  .idx-share{top:8px;right:8px}
}
@media(max-width:520px){
  .idx-mkt{grid-template-columns:1fr 1fr;gap:6px;padding:10px 10px 4px}
  .idx-mkt b{font-size:12px}
  #idxChart{height:200px}
}
.idx-tabs{display:flex;gap:6px;padding:10px 14px 0}
.idx-tab{font-family:var(--disp);font-size:11px;letter-spacing:.1em;color:var(--txt-dim);cursor:pointer;
  background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:2px;padding:8px 14px}
.idx-tab.on{color:#1a150c;background:linear-gradient(180deg,#d9a441,#b1801f);border-color:transparent}
.idx-trade-body{padding:12px 14px 16px}
.idx-pos{font-size:11px;color:var(--txt-dim);margin-bottom:10px;min-height:16px}
.idx-pos b{color:var(--white)}
.idx-field{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:3px;
  padding:9px 11px;background:rgba(0,0,0,.25)}
.idx-field>span{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--txt-mute);white-space:nowrap}
.idx-field input{flex:1;min-width:0;background:none;border:0;outline:0;color:var(--white);
  font-family:var(--disp);font-size:19px;text-align:right}
.idx-field b{font-family:var(--mono);font-size:11px;color:var(--brass)}
.idx-quick{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.idx-quick button,.idx-slip .sl{font-family:var(--mono);font-size:10px;color:var(--txt);cursor:pointer;
  background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:2px;padding:5px 9px}
.idx-quick button:hover,.idx-slip .sl:hover{border-color:var(--brass);color:var(--brass)}
.idx-slip{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:10px;letter-spacing:.1em;color:var(--txt-mute)}
.idx-slip .sl.on{color:#1a150c;background:linear-gradient(180deg,#d9a441,#b1801f);border-color:transparent}
.idx-quote{margin-top:12px}
.idx-legs{margin:10px 0}
.idx-legs summary{font-family:var(--mono);font-size:11px;color:var(--brass);cursor:pointer}
.idx-legtable{display:grid;grid-template-columns:repeat(2,1fr);gap:2px 14px;margin-top:8px;font-size:11px}
.idx-legtable span{color:var(--txt-dim)} .idx-legtable b{color:var(--txt);text-align:right}
.idx-legnote{font-family:var(--mono);font-size:10px;line-height:1.5;color:var(--txt-mute);margin-top:8px}
.idx-sell2{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.idx-sell2 .buybtn{flex:1;min-width:150px;margin:0}
.idx-sell2 .buybtn i{display:block;font-style:normal;font-size:9px;opacity:.75;margin-top:2px}
.buybtn.alt{background:linear-gradient(180deg,#a8bb64,#77804a)}
.idx-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:12px 14px}
.idx-stats div{border:1px solid var(--line);border-radius:3px;padding:8px 10px;background:rgba(255,255,255,.02)}
.idx-stats span{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.12em;color:var(--txt-mute)}
.idx-stats b{font-family:var(--disp);font-size:15px;color:var(--white)}
.idx-stats i{font-family:var(--mono);font-style:normal;font-size:10px;color:var(--txt-dim);margin-left:5px}
.idx-vault .qm-status{margin:0 14px}
.idx-backing{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:12px 14px;font-size:10px}
.idx-backing .ok{color:var(--grn)} .idx-backing .bad{color:var(--red)}
.idx-ok{color:var(--grn)} .idx-bad{color:var(--red)} .idx-warn{color:var(--amber)}
.idx-backing .dim{color:var(--txt-mute)}
.idx-addr{padding:0 14px 14px;font-size:10px;color:var(--txt-dim);display:flex;gap:14px;flex-wrap:wrap}
.idx-addr a{color:var(--brass);text-decoration:none}
.loading.sm{padding:14px;font-size:11px}

/* mobile: relocated front controls + standing orders, under the map */
#frontMobileBar{display:flex;flex-direction:column;align-items:center;gap:7px;margin:8px 0 4px}
#frontMobileBar .thx{margin:0}
#frontMobileBar #warStrip{width:100%;border:1px solid var(--line);border-radius:3px}
#frontMobileBar .ghost{font-size:10px}
/* theater switcher */
.thx{display:inline-flex;gap:4px;margin-right:8px}
.thbtn.on{border-color:var(--brass);color:var(--brass);background:rgba(201,162,39,.12)}
.qm-thhead{grid-column:1/-1;font-family:var(--disp);font-size:10px;letter-spacing:.16em;color:var(--brass);
  border-bottom:1px solid var(--line);padding:6px 2px 4px;margin-top:4px}
.wr-ov{position:fixed;inset:0;z-index:365;background:rgba(10,8,4,.85);display:flex;align-items:center;justify-content:center;padding:14px}
.wr-ov.hidden{display:none}
.wr-box{position:relative;background:#1b160d;border:1px solid var(--brass);border-radius:4px;
  padding:16px;max-width:min(560px,96vw);max-height:94vh;overflow:auto;text-align:center}
.wr-title{font-family:var(--disp);letter-spacing:.1em;color:var(--brass);margin-bottom:10px;font-size:14px}
.wr-stage{min-height:20px;font-size:12px;color:var(--txt);margin-bottom:8px}
.wr-preview img,.wr-preview video{max-width:100%;border:1px solid var(--line);border-radius:2px}
.wr-actions{display:flex;gap:8px;margin-top:10px;justify-content:center;flex-wrap:wrap}
.wr-actions.hidden{display:none}
.wr-actions .ghost{font-family:var(--mono);font-size:11px;color:var(--txt);background:rgba(255,255,255,.04);
  border:1px solid var(--line);padding:8px 12px;border-radius:2px;cursor:pointer}
.wr-actions .ghost:hover{border-color:var(--brass);color:var(--brass)}
.wr-dl{flex:1;margin:0!important;padding:9px 14px!important}
.wr-hint{margin-top:8px;font-size:10px;color:var(--txt-mute)}

/* coin page contextual call to arms */
.deploy-cta{display:flex;align-items:center;gap:14px;justify-content:space-between;flex-wrap:wrap;
  margin:0 20px;padding:9px 13px;border-radius:3px;font-size:12.5px;line-height:1.45;color:var(--txt)}
.deploy-cta.bull{background:rgba(168,187,100,.07);border:1px solid rgba(168,187,100,.3)}
.deploy-cta.bear{background:rgba(208,84,60,.08);border:1px solid rgba(208,84,60,.35)}
.deploy-cta b{color:var(--white)}
.deploy-cta button{font-family:var(--disp);font-size:10px;letter-spacing:.1em;color:#1a150c;cursor:pointer;
  background:linear-gradient(180deg,#d9a441,#b1801f);border:0;border-radius:3px;padding:8px 12px;flex:none}
.deploy-cta button:hover{filter:brightness(1.12)}
@media(max-width:900px){.deploy-cta{margin:0 14px}}

/* ============================ command palette ============================ */
.palette{position:fixed;inset:0;z-index:300;background:rgba(10,8,4,.6);backdrop-filter:blur(3px);display:flex;justify-content:center;align-items:flex-start;padding-top:14vh}
.palette-box{width:min(560px,92vw);background:linear-gradient(180deg,var(--panel),var(--bg2));border:1px solid rgba(201,162,39,.45);
  border-radius:4px;box-shadow:0 20px 60px rgba(0,0,0,.6), 0 0 40px rgba(201,162,39,.06);overflow:hidden;
  animation:panelIn .18s cubic-bezier(.2,.9,.3,1.1)}
.palette-box input{width:100%;padding:14px 16px;background:transparent;border:0;border-bottom:1px solid var(--line);
  color:var(--white);font-size:14px;outline:none;font-family:var(--mono)}
.palette-box ul{list-style:none;margin:0;padding:6px;max-height:340px;overflow-y:auto}
.palette-box li{padding:9px 12px;border-radius:3px;font-family:var(--mono);font-size:12px;color:var(--txt);cursor:pointer}
.palette-box li.sel,.palette-box li:hover{background:rgba(201,162,39,.1);color:var(--brass);
  box-shadow:inset 2px 0 0 var(--brass)}
.palette-box li.mute{color:var(--txt-mute);cursor:default;box-shadow:none}

/* ============================ responsive ============================ */
@media(max-width:1400px){.tiles{grid-template-columns:repeat(4,1fr)}}
@media(max-width:1100px){.tiles{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1200px){.warcols{grid-template-columns:1fr}}
@media(max-width:900px){
  .cmdbar{gap:8px 10px;padding:8px 10px}
  .brand{width:100%;gap:8px;padding-right:42px}
  .brand h1{font-size:13px;letter-spacing:.05em}
  .brand .tag{display:none}
  .defcon{margin-left:auto;padding:2px 6px;gap:5px}
  .tabs{width:100%;margin-left:0;margin-top:4px;display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
  .tab{padding:9px 2px;font-size:9px;letter-spacing:.03em;white-space:nowrap;text-align:center}
  .status{position:absolute;top:8px;right:10px;width:auto}
  .tiles{grid-template-columns:repeat(2,1fr)}
  .coin-grid{grid-template-columns:1fr}
  .brief-doc{padding:26px 20px}
  .brief-stamp{top:6px;right:40px;font-size:13px;letter-spacing:.12em}
  .brief-body{padding-top:34px} /* keep the stamp off the FROM/TO lines */
  /* compact coin header: logo, name, ticker, address only */
  .coin-hd{padding:12px 92px 12px 14px;gap:10px}
  .coin-hd .px{display:none}
  .coin-hd img{width:34px;height:34px}
  .coin-hd .nm{font-size:16px}
  .coin-hd .ad{font-size:9.5px}
}
@media(max-width:430px){
  .defcon .dc-word{display:none}
  .brand h1{font-size:12px}
}

/* ============================ accessibility ============================ */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .ticker{animation:none;transform:none}
  body.crt .crt-sweep{display:none}
  body.crit-flash::after{opacity:.45;animation:none}
}
