/* Solyx — black & white (2026-11-08). Loaded AFTER index-CRannc_A.css (landing) and sec/sec.css (tool pages).
   1) the palette variables of both stylesheets (and of the 3D scenes, which read --color-* from CSS) are replaced by neutral greys;
   2) severity (critical … ok) can no longer be told by colour, so it is told by weight: white fill > white outline > grey fill > faint;
   3) the last rule is a safety net for everything that still has a hard-coded colour (3D shaders, icon palettes, SVG, inline styles).
   Revert: remove the <link> to this file from the page shells (the colour palettes are untouched in the original stylesheets). */
:root {
  /* landing + 3D scenes */
  --color-paper: #f5f5f5; --color-coal: #0a0a0a; --color-void: #000; --color-floor: #0a0a0a; --color-floor-fog: #0a0a0a;
  --color-floor-ground: #f5f5f5; --color-floor-glow: #1a1a1a; --color-floor-text: #a8a8a8; --color-floor-faint: #808080;
  --color-paper-soft: #d4d4d4; --color-paper-faint: #a3a3a3;
  /* these three paint the lights and the mark (the Solyx S) of the voxel ground in the finale; silver since 2026-11-09 (they were the violet / cyan / green of Solana) */
  --color-solana-violet: #e6ebf5; --color-solana-cyan: #b8c0d2; --color-solana-green: #8892a8;
  --color-pump: #5fcb88; --color-pump-ink: #1d3934; /* the pump.fun pill stays in colour (2026-11-09) */
  --p2-accent: #6e6e6e; --p2-accent-2: #9a9a9a; --p2-card: #171717; --p2-hero-bg: #0a0a0a; --p2-hero-ink: #f5f5f5;
  /* tool pages (scan / revoke / scam / website / alerts) */
  --bg: #0a0a0a; --void: #050505; --ink: #f5f5f5; --card: #171717; --card2: #101010; --dim: #a8a8a8; --faint: #808080;
  --accent: #e6e6e6; --accent2: #9a9a9a; --line: rgba(255, 255, 255, .18);
  --crit: #fff; --high: #dcdcdc; --med: #adadad; --low: #808080; --info: #a8a8a8; --ok: #c4c4c4;
}
html, body { background-color: #0a0a0a; }
.pill-solid { background: #f5f5f5; color: #0a0a0a; }
.pill-solid:hover { background: #fff; }
.board { background-color: #111; }

/* tool pages */
body[data-page] {
  background-image: radial-gradient(900px 520px at 78% -8%, rgba(255, 255, 255, .07), transparent 70%), radial-gradient(700px 480px at -6% 30%, rgba(255, 255, 255, .04), transparent 70%);
}
body[data-page] .top { background: rgba(10, 10, 10, .82); }
.notice { background: rgba(255, 255, 255, .05); }
.notice.warn { background: rgba(255, 255, 255, .07); }
.notice.err { background: rgba(255, 255, 255, .1); }
.notice.ok { background: rgba(255, 255, 255, .05); }
.btn.danger { background: #fff; color: #000; }
.finding { background: rgba(0, 0, 0, .4); }
.finding.critical { border-left-color: #fff; border-left-width: 6px; }
.finding.high { border-left-color: #dcdcdc; }
.finding.medium { border-left-color: #8e8e8e; }
.finding.low, .finding.ok { border-left-color: #565656; }
.chip.critical { background: #fff; color: #000; font-weight: 700; }
.chip.high { background: transparent; color: #fff; box-shadow: inset 0 0 0 1px #fff; }
.chip.medium { background: rgba(255, 255, 255, .2); color: #ececec; }
.chip.low { background: rgba(255, 255, 255, .08); color: #b0b0b0; }
.chip.ok { background: transparent; color: #c4c4c4; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); }

/* toolkit card pills (generated by tools/sec/build_scene_icons.py) and the panel over the landing */
.floor-card .sx-tabs { border-color: rgba(255, 255, 255, .16); background: rgba(255, 255, 255, .06); }
.floor-card .sx-tab { color: #a8a8a8; }
.floor-card .sx-tab:hover { color: #fff; background: rgba(255, 255, 255, .1); }
.floor-card .sx-tab.on { color: #fff; background: #2a2a2a; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .4); }
.floor-card .sx-tab:focus-visible { outline-color: #fff; }

/* safety net: whatever still has a colour of its own (3D scenes and shaders, images, SVG icons) is rendered in greys.
   NOT on <html>: a filter on the root made the hero's WebGL text disappear (tested 2026-11-08), so it is applied per element. */
.mask-stage, img, video, svg { filter: grayscale(1); }
/* COLOUR on purpose (2026-11-08; pill scene 2026-11-09): the pump.fun pill in .road-stage (the rest of that scene reads grey variables), the "Where the risk hides" scheme, the island and the voxel ground are NOT filtered */
