/* ====================================================================
   NetApp Black Box — REDESIGN LAYER ("Flight Recorder")
   ====================================================================
   Loaded AFTER style.css (+ fresh.css / task-d-home.css) on every page,
   so it wins cascade ties by source order alone — no !important arms
   race with the 443 already in style.css, except where a component's
   own JS-injected <style> tag (chat.js) outranks us by DOM insertion
   order; those few overrides are marked and justified inline.

   Direction, rationale and rollout plan: state/redesign_log.md (P0 entry).
   Tokens are intentionally --rd-* prefixed — NOT touching style.css's
   --blue/--ac/--hub-a/etc. palette, so pages this layer does not style
   are at zero visual risk. python3 scripts/design_tokens.py --write
   picks this file up automatically (it globs site/css/*.css).

   Scope this session: P0 system + P1 shell (header/nav/drawer/search/
   command palette/footer/breadcrumbs/page-title/chat launcher) + P2
   homepage. Everything else keeps today's look until P3/P4.

   Entirely wrapped in `@media screen` so print output is NOT touched —
   print already has its own carefully-built resets in style.css; this
   whole file simply does not exist for print rendering.
   ==================================================================== */

@media screen {

:root {
  /* --- surfaces (carbon/graphite, neutral — not navy) --- */
  --rd-bg:            #0a0b0d;
  --rd-bg-raised:      #14161a;
  --rd-bg-raised-2:    #1b1e23;
  --rd-bg-sunken:      #060708;

  /* --- ink (warm paper-white, not blue-white) --- */
  --rd-ink:            #eef0e6;
  --rd-ink-dim:        #a9ad9f;
  --rd-ink-faint:      #85897d;

  /* --- hairlines, not glow --- */
  --rd-line:           #2a2d28;
  --rd-line-strong:    #3c4038;

  /* --- the one accent: flight-recorder amber --- */
  --rd-accent:         #ff8a1f;
  --rd-accent-hover:   #ffa64d;
  --rd-accent-dim:     #c96a16;
  --rd-accent-soft:    rgba(255, 138, 31, .14);
  --rd-accent-ink:     #1a1203;

  /* --- secondary: phosphor green ("verified / healthy / live") --- */
  --rd-phosphor:       #5ee6a0;
  --rd-phosphor-soft:  rgba(94, 230, 160, .14);

  /* --- severity: warm red, consistent with existing semantics --- */
  --rd-crimson:        #ff5a4e;
  --rd-crimson-soft:   rgba(255, 90, 78, .14);

  /* --- texture --- */
  --rd-grid-line:      rgba(238, 240, 230, .035);

  /* --- shape / motion --- */
  --rd-radius:         2px;
  --rd-ease:           cubic-bezier(.3, .7, .3, 1);
  --rd-fast:           120ms;
  --rd-med:            180ms;
}

/* ------------------------------------------------------------------ */
/* P0 — atmosphere (sitewide, additive, decorative only)              */
/* ------------------------------------------------------------------ */

/* style.css's base `a { color: var(--blue) }` (style.css L188) is the single
   most-repeated "blue" signature on the site — every inline prose link
   across all ~5,000 articles. Low-specificity on purpose: every component
   that sets its own link color (nav, cards, footer, buttons) already wins
   the cascade on selector specificity, so this is purely the body-copy
   fallback the brief wants swapped off blue. */
a { color: var(--rd-accent); }
a:hover { color: var(--rd-accent-hover); }

/* style.css's `h1 strong, h2 strong, h3 strong` (L1098) is a blue->violet->
   magenta gradient-text rule that fires on every bolded word inside any
   heading sitewide (financials "NetApp <strong>Stock</strong>", and every
   other archetype's emphasized title word) — .hero h1 strong only covers
   the homepage's own hero. */
h1 strong, h2 strong, h3 strong {
  background: none !important;
  -webkit-text-fill-color: var(--rd-accent) !important;
  color: var(--rd-accent) !important;
}
.lede strong { color: var(--rd-ink) !important; }

/* style.css's base `body` background (and its `prefers-color-scheme: dark`
   variant) is a cyan+violet radial-gradient wash (#00b8ff / #b23ad1) — the
   exact indigo/violet the brief calls out as fighting the carbon/graphite
   identity. It shows through at viewport edges and section gaps on every
   page. Flatten it to the flat carbon surface; the grid texture below is
   the only texture this layer wants on top of it. */
body { background: var(--rd-bg) !important; }

/* Blueprint/graph-paper grid texture — fixed, far behind content, inert. */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image:
    linear-gradient(var(--rd-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--rd-grid-line) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(to bottom, black, black 60%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, black, black 60%, transparent 100%);
}

::selection { background: var(--rd-accent); color: var(--rd-accent-ink); }

/* The sitewide "every h2 gets an animated blue->cyan->violet->magenta gradient
   bar" divider (style.css ~L1745) is one of the most-repeated instances of the
   generic-glow signature the brief calls out — it is on literally every
   section heading on every page. Flattening it here is cheap, global, and
   zero-risk (purely decorative, no layout change), so it ships with P0
   instead of waiting for the P3/P4 component pass. */
h2::after {
  width: 40px;
  background: var(--rd-accent);
  box-shadow: none;
  animation: none;
}
main > h2::before {
  background: linear-gradient(90deg, transparent, var(--rd-line-strong), transparent);
}

/* Scrollbar — flat graphite thumb, no glow/gradient. */
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--rd-bg); }
::-webkit-scrollbar-thumb { background: var(--rd-line-strong); border: 3px solid var(--rd-bg); border-radius: 0; }
::-webkit-scrollbar-thumb:hover { background: var(--rd-accent-dim); }
html { scrollbar-color: var(--rd-line-strong) var(--rd-bg); }

/* ================================================================== */
/* P1 — SHELL                                                         */
/* ================================================================== */

/* ---------- Header / brand / desktop nav ---------- */

.site-header {
  background: var(--rd-bg) !important;
  border-bottom: 1px solid var(--rd-line);
  box-shadow: none !important;
}
.error-page .site-header { position: sticky; }
.site-header::after { display: none !important; } /* kills the cyan/violet glow seam */
html.scrolled .site-header { background: rgba(10, 11, 13, .96) !important; border-bottom-color: var(--rd-line-strong); box-shadow: 0 1px 0 var(--rd-line-strong) !important; backdrop-filter: saturate(120%); }

.brand { color: var(--rd-ink); }
.brand-mark { filter: none !important; }
.brand-mark rect[fill="#1ad8f8"] { fill: var(--rd-ink-dim); }
.brand-mark rect[fill="#ffb454"] { fill: var(--rd-accent); }
.brand-copy > span { color: var(--rd-ink-faint); }

.site-nav a { color: var(--rd-ink-dim); }
.site-nav a::after { background: var(--rd-accent) !important; box-shadow: none !important; height: 2px; }
.site-nav a:hover { color: var(--rd-ink) !important; background: var(--rd-bg-raised) !important; text-shadow: none !important; }
.site-nav a[aria-current="page"] { color: var(--rd-ink) !important; background: var(--rd-accent-soft) !important; text-shadow: none !important; }
.site-nav a:focus-visible, .nav-more summary:focus-visible, .header-search:focus-visible, .nav-toggle:focus-visible, .rd-palette-trigger:focus-visible {
  outline: 2px solid var(--rd-accent) !important;
  outline-offset: 2px !important;
}

.nav-more { color: var(--rd-ink-dim); }
.nav-more summary::after { background: var(--rd-accent) !important; box-shadow: none !important; }
.nav-more summary:hover, .nav-more[open] summary, .nav-more summary[aria-current="page"] { color: var(--rd-ink) !important; background: var(--rd-bg-raised) !important; text-shadow: none !important; }
.nav-more summary:hover::after, .nav-more[open] summary::after, .nav-more summary[aria-current="page"]::after { background: var(--rd-accent) !important; }
.nav-more summary span { color: var(--rd-accent); }
.nav-more-menu {
  border-radius: 0 !important;
  background: var(--rd-bg-raised) !important;
  border: 1px solid var(--rd-line-strong) !important;
  box-shadow: 0 16px 34px rgba(0, 0, 0, .5) !important;
  backdrop-filter: none !important;
}
.nav-more-menu a { color: var(--rd-ink-dim); border-radius: 0 !important; }
.site-nav .nav-more-menu a::after { color: var(--rd-accent) !important; }
.nav-more-menu a:hover, .nav-more-menu a:focus-visible, .nav-more-menu a[aria-current="page"] { color: var(--rd-ink) !important; background: var(--rd-bg-raised-2) !important; }

.header-search { border-radius: 0; border-color: var(--rd-line-strong); background: var(--rd-bg-raised); color: var(--rd-ink-dim); }
.header-search:hover, .header-search:focus-visible { border-color: var(--rd-accent); background: var(--rd-bg-raised-2); color: var(--rd-ink); box-shadow: none !important; }

.nav-toggle { border-radius: 0; border-color: var(--rd-line-strong); background: var(--rd-bg-raised); color: var(--rd-ink); }

/* ---------- Mobile drawer ---------- */

@media (max-width: 860px) {
  .site-nav { background: var(--rd-bg) !important; border-top-color: var(--rd-line-strong) !important; box-shadow: none !important; }
  .site-nav a { color: var(--rd-ink-dim) !important; border-bottom-color: var(--rd-line) !important; }
  .site-nav a[aria-current="page"] { color: var(--rd-ink) !important; background: var(--rd-accent-soft) !important; border-left-color: var(--rd-accent) !important; }
  .site-nav .mobile-nav-search { color: var(--rd-ink-dim) !important; border-color: var(--rd-line-strong) !important; background: var(--rd-bg-raised) !important; border-radius: 0 !important; }
  .nav-toggle, .header-search { border-color: var(--rd-line-strong) !important; background: var(--rd-bg-raised) !important; border-radius: 0 !important; color: var(--rd-ink) !important; }
}

/* ---------- Command palette (new — JS-injected, site/js/command-palette.js) ---------- */

.rd-palette-trigger {
  display: none;
  align-items: center;
  gap: 6px;
  height: 40px;
  padding: 0 10px;
  flex: 0 0 auto;
  margin-left: 4px;
  color: var(--rd-ink-faint);
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .04em;
  border: 1px solid var(--rd-line-strong);
  border-radius: 0;
  background: var(--rd-bg-raised);
  cursor: pointer;
  transition: border-color var(--rd-fast) var(--rd-ease), color var(--rd-fast) var(--rd-ease);
}
@media (min-width: 861px) {
  .rd-palette-trigger { display: inline-flex; }
}
.rd-palette-trigger:hover { border-color: var(--rd-accent); color: var(--rd-ink); }
.rd-palette-trigger kbd { font: inherit; padding: 1px 4px; border: 1px solid var(--rd-line-strong); border-radius: 2px; background: var(--rd-bg-raised-2); }

.rd-palette {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 11vh 16px 0;
}
.rd-palette[hidden] { display: none; }
html.rd-palette-open, html.rd-palette-open body { overflow: hidden; overscroll-behavior: none; }
.rd-palette-overlay { position: absolute; inset: 0; background: rgba(5, 6, 7, .78); }
.rd-palette-box {
  position: relative;
  z-index: 1;
  width: min(640px, 100%);
  max-height: min(60vh, 520px);
  display: flex;
  flex-direction: column;
  background: var(--rd-bg-raised);
  border: 1px solid var(--rd-line-strong);
  border-radius: 0;
  box-shadow: 0 30px 70px rgba(0, 0, 0, .55);
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity var(--rd-med) var(--rd-ease), transform var(--rd-med) var(--rd-ease);
}
.rd-palette.rd-open .rd-palette-box { opacity: 1; transform: translateY(0); }
/* corner-bracket signature mark */
.rd-palette-box::before, .rd-palette-box::after {
  content: "";
  position: absolute;
  width: 14px; height: 14px;
  pointer-events: none;
  border: 2px solid var(--rd-accent);
}
.rd-palette-box::before { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
.rd-palette-box::after { bottom: -1px; right: -1px; border-left: 0; border-top: 0; }

.rd-palette-search { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid var(--rd-line); }
.rd-palette-prompt { color: var(--rd-accent); font-family: var(--font-mono); font-weight: 600; }
.rd-palette-input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--rd-ink);
  font: inherit;
  font-size: 1rem;
}
.rd-palette-input::placeholder { color: var(--rd-ink-faint); }
.rd-palette-esc { font-family: var(--font-mono); font-size: .68rem; color: var(--rd-ink-faint); border: 1px solid var(--rd-line-strong); border-radius: 2px; padding: 2px 6px; }

.rd-palette-results { overflow-y: auto; flex: 1; padding: 6px; }
.rd-palette-group-label { padding: 8px 10px 4px; color: var(--rd-ink-faint); font-family: var(--font-mono); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.rd-palette-result {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 10px 10px;
  color: var(--rd-ink-dim);
  text-decoration: none;
  border-left: 2px solid transparent;
}
.rd-palette-result .rd-r-title { color: var(--rd-ink); font-weight: 500; }
.rd-palette-result .rd-r-url { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--rd-ink-faint); font-family: var(--font-mono); font-size: .76rem; }
.rd-palette-result:hover, .rd-palette-result.active { background: var(--rd-bg-raised-2); border-left-color: var(--rd-accent); }
.rd-palette-empty { padding: 24px 14px; text-align: center; color: var(--rd-ink-faint); font-size: .9rem; }

.rd-palette-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 14px; border-top: 1px solid var(--rd-line); color: var(--rd-ink-faint); font-size: .72rem; }
.rd-palette-footer kbd { font: inherit; padding: 1px 5px; margin: 0 2px; border: 1px solid var(--rd-line-strong); border-radius: 2px; background: var(--rd-bg-raised-2); }
.rd-palette-footer span { display: inline-flex; align-items: center; gap: 3px; }

/* ---------- Chat launcher (chat.js injects its own <style id="bb-chat-styles"> into
   <head> at RUNTIME, which lands after this stylesheet in DOM order — same-specificity
   rules there would win on source order alone despite our file loading first, so these
   overrides use !important or an ID to reliably win). ---------- */

#bb-chat-toggle {
  border-radius: 0 !important;
  background: var(--rd-bg-raised) !important;
  border: 1px solid var(--rd-line-strong) !important;
  color: var(--rd-ink) !important;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .4) !important;
}
#bb-chat-toggle:hover { transform: translateY(-1px) !important; border-color: var(--rd-accent) !important; box-shadow: 0 12px 30px rgba(0, 0, 0, .45) !important; }
#bb-chat-toggle .bb-dot { background: var(--rd-phosphor) !important; box-shadow: none !important; }
#bb-chat-panel {
  border-radius: 0 !important;
  background: var(--rd-bg-raised) !important;
  border: 1px solid var(--rd-line-strong) !important;
  box-shadow: 0 30px 70px rgba(0, 0, 0, .55) !important;
}
#bb-chat-head { background: var(--rd-bg-raised-2) !important; border-bottom-color: var(--rd-line) !important; }
#bb-chat-head small { color: var(--rd-ink-faint) !important; }
#bb-chat-close:hover { background: var(--rd-bg-raised-2) !important; color: var(--rd-ink) !important; }
.bb-msg.bb-user { background: var(--rd-accent-dim) !important; border-radius: 2px 2px 0 2px !important; }
.bb-msg.bb-bot { background: var(--rd-bg-raised-2) !important; border: 1px solid var(--rd-line) !important; border-radius: 2px 2px 2px 0 !important; }
.bb-msg.bb-err { background: var(--rd-crimson-soft) !important; border: 1px solid var(--rd-crimson) !important; color: #ffd9d4 !important; }
.bb-msg.bb-meta { color: var(--rd-ink-faint) !important; }
#bb-chat-sugg button { background: transparent !important; border-color: var(--rd-line-strong) !important; color: var(--rd-ink-dim) !important; border-radius: 0 !important; }
#bb-chat-sugg button:hover { background: var(--rd-bg-raised-2) !important; border-color: var(--rd-accent) !important; }
#bb-chat-form { background: var(--rd-bg-sunken) !important; border-top-color: var(--rd-line) !important; }
#bb-chat-input { background: var(--rd-bg-raised) !important; border-color: var(--rd-line-strong) !important; color: var(--rd-ink) !important; border-radius: 0 !important; }
#bb-chat-input:focus { border-color: var(--rd-accent) !important; box-shadow: none !important; }
#bb-chat-send { background: var(--rd-accent) !important; color: var(--rd-accent-ink) !important; border-radius: 0 !important; }
#bb-chat-note { color: var(--rd-ink-faint) !important; }

/* ---------- Footer ---------- */

.site-footer { background: var(--rd-bg) !important; border-top: 1px solid var(--rd-line); }
.site-footer::before { display: none !important; }
.site-footer strong { color: var(--rd-ink) !important; }
.site-footer a { color: var(--rd-ink-dim) !important; }
.site-footer a:hover { color: var(--rd-accent) !important; }
.footer-brand { color: var(--rd-ink) !important; }
.footer-tagline { color: var(--rd-ink-faint) !important; }
.footer-column h2 { color: var(--rd-accent) !important; letter-spacing: .14em; }
.footer-legal { border-top-color: var(--rd-line) !important; color: var(--rd-ink-faint); }
.footer-legal a { color: var(--rd-ink-dim) !important; }
.footer-legal a:hover { color: var(--rd-accent) !important; }

/* ---------- Breadcrumbs ---------- */

.crumbs { font-family: var(--font-mono); font-size: .76rem; letter-spacing: .03em; color: var(--rd-ink-faint); text-transform: uppercase; }
.crumbs::before { display: none !important; }
.crumbs a { color: var(--rd-ink-dim) !important; }
.crumbs a:hover { color: var(--rd-accent) !important; text-decoration: underline; }
.crumb-sep { background: none !important; color: var(--rd-ink-faint) !important; filter: none !important; }
.crumb-cur { background: none !important; border: 0 !important; box-shadow: none !important; color: var(--rd-ink) !important; padding: 0 !important; }

/* ---------- Page-title block ---------- */

.page-head {
  position: relative;
  padding-left: 14px;
  border-left: 2px solid var(--rd-accent);
  /* style.css's base .page-head (L1107) is a translucent white glass panel
     with cyan+violet radial accents and a blurred backdrop — the P1 pass
     only recolored its text, never its own surface, because the homepage
     hero doesn't use .page-head at all. Every other archetype's title
     block does, so it rendered as a lavender-glass plate on carbon. */
  background: var(--rd-bg-raised) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
.page-head::before, .page-head::after { display: none !important; }
.page-head h1 { color: var(--rd-ink); letter-spacing: -.01em; }
.page-head .lede { color: var(--rd-ink-dim); }

/* ================================================================== */
/* P2 — HOMEPAGE                                                      */
/* ================================================================== */

/* ---------- Hero ---------- */

.home-page .hero {
  background: var(--rd-bg) !important;
  border-bottom: 1px solid var(--rd-line);
  border-radius: 0 !important;
  /* style.css's own .hero box-shadow carries a violet glow (rgba(178,58,209,.19))
     that bleeds past the rounded corners regardless of the flat background set
     above — the exact indigo/violet leak the brief flags. Kill it here. */
  box-shadow: none !important;
}
.home-page .hero::before, .home-page .hero::after { display: none !important; }
.home-page .hero .eyebrow {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--rd-accent) !important;
  border-radius: 0 !important;
  color: var(--rd-accent) !important;
  letter-spacing: .14em;
  padding: 0 0 6px !important;
}
.home-page .eyebrow-pulse { background: var(--rd-phosphor) !important; box-shadow: none !important; animation: rd-pulse 1.8s ease-in-out infinite; }
@keyframes rd-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.home-page .hero h1 { color: var(--rd-ink) !important; font-weight: 300 !important; text-shadow: none !important; }
.home-page .hero h1 strong, .home-page .hero-rotator {
  background: none !important;
  -webkit-text-fill-color: var(--rd-accent) !important;
  color: var(--rd-accent) !important;
  font-weight: 500 !important;
}
.home-page .hero .lede { color: var(--rd-ink-dim) !important; }
.home-page .btn { border-radius: 0 !important; }
.home-page .btn-primary { background: var(--rd-accent) !important; color: var(--rd-accent-ink) !important; box-shadow: none !important; }
.home-page .btn-primary:hover { background: var(--rd-accent-hover) !important; }
.home-page .btn-secondary { background: transparent !important; border-color: var(--rd-line-strong) !important; color: var(--rd-ink) !important; }
.home-page .btn-secondary:hover { border-color: var(--rd-accent) !important; color: var(--rd-accent) !important; background: var(--rd-accent-soft) !important; }
.home-page .hero-signals { color: var(--rd-ink-faint); }
.home-page .hero-signals strong { color: var(--rd-ink); }

/* capability orbit (F-19) — mute the rainbow, keep the mechanism */
.home-page .hero-visual [class*="orbit"] { filter: grayscale(.4) brightness(.9); }
.home-page .hero-visual::before { background: radial-gradient(circle, rgba(255, 138, 31, .22), transparent 67%) !important; }
.home-page .hero-visual::after { background: radial-gradient(circle, rgba(94, 230, 160, .14), transparent 68%) !important; }

/* terminal table cell accents (originally blue-tinted) */
.home-page .terminal-table { color: var(--rd-ink-dim); }
.home-page .terminal-table .terminal-muted { color: var(--rd-ink-faint) !important; }
.home-page .demo-shell, .home-page .terminal-secure {
  background: transparent !important;
  border: 1px solid var(--rd-line-strong) !important;
  color: var(--rd-ink-faint) !important;
}
.home-page .hero-visual-label {
  background: var(--rd-crimson) !important;
  color: var(--rd-accent-ink) !important;
  border-radius: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

/* Hero terminal — instrument-panel treatment */
.home-page .hero-terminal {
  border-radius: 0 !important;
  border: 1px solid var(--rd-line-strong) !important;
  background: var(--rd-bg-raised) !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .45) !important;
  position: relative;
}
.home-page .hero-terminal::before, .home-page .hero-terminal::after {
  content: "";
  position: absolute;
  width: 16px; height: 16px;
  border: 2px solid var(--rd-accent);
  pointer-events: none;
  z-index: 2;
}
.home-page .hero-terminal::before { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
.home-page .hero-terminal::after { bottom: -1px; right: -1px; border-left: 0; border-top: 0; }
.home-page .hero-terminal-bar {
  background: var(--rd-bg-raised-2) !important;
  border-bottom: 1px solid var(--rd-line) !important;
  position: relative;
  overflow: hidden;
}
.home-page .hero-terminal-bar::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 138, 31, .55) 50%, transparent);
  width: 40%;
  animation: rd-scan 5s linear infinite;
}
@keyframes rd-scan { 0% { transform: translateX(-120%); } 100% { transform: translateX(340%); } }
.home-page .terminal-lights i { background: var(--rd-line-strong) !important; box-shadow: none !important; }
.home-page .terminal-title, .home-page .terminal-secure, .home-page .hero-visual-label { color: var(--rd-ink-faint) !important; }
.home-page .terminal-prompt { color: var(--rd-accent) !important; }
.home-page .terminal-command { color: var(--rd-ink) !important; }
.home-page .terminal-ok { color: var(--rd-phosphor) !important; text-shadow: none !important; }
.home-page .terminal-cyan { color: var(--rd-ink-dim) !important; }
.home-page .terminal-amber { color: var(--rd-accent) !important; }
.home-page .terminal-muted { color: var(--rd-ink-faint) !important; }
.home-page .hero-status-strip { border-top: 1px solid var(--rd-line) !important; background: var(--rd-bg-raised-2) !important; }
.home-page .hero-status-chip { color: var(--rd-ink-dim) !important; background: transparent !important; border: 1px solid var(--rd-line-strong) !important; border-radius: 0 !important; }
.home-page .hero-status-chip i { background: var(--rd-phosphor) !important; box-shadow: none !important; }
.home-page .hero-terminal-footer { color: var(--rd-ink-faint) !important; border-top: 1px solid var(--rd-line) !important; }
.home-page .hero-terminal-footer i { background: var(--rd-phosphor) !important; box-shadow: none !important; }

/* ---------- Ticker ("flight data recorder" tape, not a white glass pill) ---------- */

.home-page .news-ticker-band {
  background: var(--rd-bg-raised) !important;
  border: 1px solid var(--rd-line-strong) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
.home-page .news-ticker-band::before { background: var(--rd-accent) !important; height: 2px !important; }
.home-page .ticker-badge { background: var(--rd-bg-raised-2) !important; color: var(--rd-ink) !important; border-radius: 0 !important; box-shadow: none !important; border: 1px solid var(--rd-line-strong); font-family: var(--font-mono); letter-spacing: .08em; }
.home-page .ticker-pulse { background: var(--rd-phosphor) !important; box-shadow: none !important; animation: rd-pulse 1.8s ease-in-out infinite; }
.home-page .ticker-item { color: var(--rd-ink-dim) !important; }
.home-page .ticker-item:hover { color: var(--rd-accent) !important; text-shadow: none !important; }
.home-page .ticker-tag { background: transparent !important; border: 1px solid var(--rd-line-strong) !important; color: var(--rd-ink-faint) !important; border-radius: 0 !important; font-family: var(--font-mono); }
.home-page .ticker-sep { color: var(--rd-line-strong) !important; }
.home-page .ticker-view-all { color: var(--rd-ink-dim) !important; border: 1px solid var(--rd-line-strong) !important; border-radius: 0 !important; }
.home-page .ticker-view-all:hover { color: var(--rd-accent) !important; border-color: var(--rd-accent) !important; background: var(--rd-accent-soft) !important; }

/* ---------- Triage bands ("I HAVE A PROBLEM" / "LOOK IT UP" / "WHAT CHANGED") ---------- */

.home-page .home-question {
  border-color: var(--rd-line-strong) !important;
  border-left-color: var(--rd-accent) !important;
  background: var(--rd-bg-raised) !important;
  box-shadow: none !important;
}
.home-question-head > span, .home-question .symptom-grid b, .home-question .answer-rail b { color: var(--rd-accent) !important; }
.home-question-head a { color: var(--rd-ink-dim); }
.home-question-head a:hover { color: var(--rd-accent); }
.home-search-line button { background: var(--rd-accent) !important; color: var(--rd-accent-ink) !important; border-radius: 0 !important; }
.home-search-line button:hover { background: var(--rd-accent-hover) !important; }
.home-search-line input { border-color: var(--rd-line-strong) !important; background: var(--rd-bg-sunken) !important; }
.home-search-line input:focus { border-color: var(--rd-accent) !important; box-shadow: none !important; outline: none; }
.home-question .symptom-grid > a, .home-question .answer-rail > a {
  border: 1px solid var(--rd-line-strong) !important;
  border-top-color: var(--rd-line-strong) !important;
  background: var(--rd-bg-raised) !important;
  box-shadow: none !important;
}
.home-question .symptom-grid > a:hover, .home-question .answer-rail > a:hover {
  transform: translateY(-2px);
  border-color: var(--rd-accent) !important;
  box-shadow: none !important;
  background: var(--rd-bg-raised-2) !important;
}
.home-question .symptom-grid b, .home-question .answer-rail b { color: var(--rd-accent) !important; }
.home-question .symptom-grid strong, .home-question .answer-rail strong { color: var(--rd-ink); }
.home-question .symptom-grid span, .home-question .answer-rail span { color: var(--rd-ink-faint) !important; }

/* THE DEAD GAP — .below-fold forced a 12vh top margin on the stats band, on top
   of the section's own generous padding (task-d-home.css). That is the empty
   stretch the brief calls out between the triage bands and the stats band. */
.home-page .below-fold { margin-top: 0 !important; }

/* ---------- Stats band ---------- */

.home-page .stat-card {
  background: var(--rd-bg-raised) !important;
  border: 1px solid var(--rd-line-strong) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
.home-page .stat-card::before { background: var(--rd-accent) !important; filter: none !important; height: 2px !important; }
.home-page .stat-card:hover { transform: translateY(-3px); border-color: var(--rd-accent) !important; box-shadow: 0 16px 34px rgba(0, 0, 0, .4) !important; }
.home-page .stat-pill { background: transparent !important; border: 1px solid var(--rd-line-strong) !important; color: var(--rd-ink-faint) !important; border-radius: 0 !important; font-family: var(--font-mono); }
.home-page .stat-pill::before { background: var(--rd-accent) !important; box-shadow: none !important; }
.home-page .stat-number {
  background: none !important;
  -webkit-text-fill-color: var(--rd-ink) !important;
  color: var(--rd-ink) !important;
  font-family: var(--font-mono);
  font-weight: 700 !important;
}
.home-page .stat-title { color: var(--rd-ink) !important; }
.home-page .stat-desc { color: var(--rd-ink-faint) !important; }

/* ---------- CLI workbench ---------- */

.home-page .home-cli-workbench {
  background: var(--rd-bg) !important;
  border: 1px solid var(--rd-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.home-page .home-cli-workbench::before { display: none !important; }
.home-page .cli-workbench-container { background: var(--rd-bg-raised) !important; border-color: var(--rd-line-strong) !important; border-radius: 0 !important; box-shadow: none !important; }
.home-page .cli-tab-bar { background: var(--rd-bg-sunken) !important; border-bottom-color: var(--rd-line) !important; }
.home-page .cli-tab { color: var(--rd-ink-faint) !important; border-radius: 0 !important; }
.home-page .cli-tab:hover { color: var(--rd-ink) !important; background: var(--rd-bg-raised-2) !important; }
.home-page .cli-tab.active { color: var(--rd-accent) !important; border-bottom-color: var(--rd-accent) !important; background: var(--rd-accent-soft) !important; }
.home-page .cli-window-header { background: var(--rd-bg-raised-2) !important; border-bottom-color: var(--rd-line) !important; }
.home-page .cli-window-title { color: var(--rd-ink-faint) !important; }
.home-page .btn-copy-cmd { background: transparent !important; border-color: var(--rd-line-strong) !important; color: var(--rd-ink-dim) !important; border-radius: 0 !important; }
.home-page .btn-copy-cmd:hover { border-color: var(--rd-accent) !important; color: var(--rd-accent) !important; transform: none !important; }
.home-page .btn-copy-cmd.copied { background: var(--rd-phosphor-soft) !important; border-color: var(--rd-phosphor) !important; color: var(--rd-phosphor) !important; }
.home-page .cli-snippets-content { background: var(--rd-bg-sunken) !important; }
.home-page .cli-snippet-panel .prompt { color: var(--rd-ink-faint) !important; }
.home-page .cli-snippet-panel .cmd { color: var(--rd-ink) !important; }
.home-page .cli-window-footer { background: var(--rd-bg-raised-2) !important; border-top-color: var(--rd-line) !important; }
.home-page .cli-tip-text { color: var(--rd-ink-faint) !important; }
.home-page .cli-tip-text strong { color: var(--rd-accent) !important; }
.home-page .cli-tip-text code { background: var(--rd-bg-raised) !important; color: var(--rd-ink-dim) !important; border-radius: 0 !important; }
.home-page .cli-guide-link { color: var(--rd-accent) !important; }
.home-page .cli-guide-link:hover { color: var(--rd-accent-hover) !important; }
.home-page .ontap-tip-widget { background: var(--rd-bg-raised) !important; border-color: var(--rd-line-strong) !important; border-radius: 0 !important; backdrop-filter: none !important; }
.home-page .ontap-tip-badge { background: var(--rd-accent) !important; color: var(--rd-accent-ink) !important; border-radius: 0 !important; }
.home-page .ontap-tip-content { color: var(--rd-ink-dim) !important; }
.home-page .ontap-tip-content strong { color: var(--rd-ink) !important; }
.home-page .ontap-tip-content code { background: var(--rd-bg-raised-2) !important; color: var(--rd-accent) !important; }
.home-page .btn-tip-refresh { color: var(--rd-ink-faint); }
.home-page .btn-tip-refresh:hover { color: var(--rd-accent); }

/* ---------- Fresh newsroom grid ---------- */

.home-page .fresh-block { background: var(--rd-bg-raised) !important; border-color: var(--rd-line-strong) !important; border-radius: 0 !important; box-shadow: none !important; }
.home-page .fresh-card::before { background: var(--rd-accent) !important; }
.home-page .fresh-card::after { display: none !important; }
.home-page .fresh-blurb, .home-page .fresh-meta { color: var(--rd-ink-faint) !important; }
.home-page .fresh-card .tag { background: transparent !important; border: 1px solid var(--rd-line-strong); color: var(--rd-ink-faint) !important; border-radius: 0; }
.home-page .fresh-card .card-title a { color: var(--rd-ink); }
.home-page .fresh-card .card-title a:hover { color: var(--rd-accent); }
.home-page .fresh-card p { color: var(--rd-ink-dim) !important; }
.home-page .fresh-source { color: var(--rd-ink-faint) !important; }

/* ---------- Security strip ---------- */

.home-page .home-security-strip { border-top-color: var(--rd-line) !important; }
.home-page .section-kicker { color: var(--rd-accent) !important; font-family: var(--font-mono); letter-spacing: .12em; }
.home-page .security-path-card {
  background: var(--rd-bg-raised) !important;
  border-color: var(--rd-line-strong) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.home-page .security-path-card:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(0, 0, 0, .4) !important; }
.home-page .security-path-card h3 { color: var(--rd-ink) !important; }
.home-page .security-path-card p { color: var(--rd-ink-dim) !important; }
/* keep the three cards distinguishable (Monitor / Search / Digest) with semantic colour, not rainbow */
.home-page .security-path-card--hub { border-left-color: var(--rd-crimson) !important; }
.home-page .security-path-card--hub::before { background: var(--rd-crimson) !important; }
.home-page .security-path-card--hub:hover { border-color: var(--rd-crimson) !important; }
.home-page .security-path-card--hub .security-path-index, .home-page .security-path-card--hub .security-path-link { color: var(--rd-crimson) !important; }
.home-page .security-path-card--cves { border-left-color: var(--rd-accent) !important; }
.home-page .security-path-card--cves::before { background: var(--rd-accent) !important; }
.home-page .security-path-card--cves:hover { border-color: var(--rd-accent) !important; }
.home-page .security-path-card--cves .security-path-index, .home-page .security-path-card--cves .security-path-link { color: var(--rd-accent) !important; }
.home-page .security-path-card--digest { border-left-color: var(--rd-phosphor) !important; }
.home-page .security-path-card--digest::before { background: var(--rd-phosphor) !important; }
.home-page .security-path-card--digest:hover { border-color: var(--rd-phosphor) !important; }
.home-page .security-path-card--digest .security-path-index, .home-page .security-path-card--digest .security-path-link { color: var(--rd-phosphor) !important; }

/* ---------- Market snapshot & activity teaser (shared glass-panel class) ---------- */

.home-page .home-market, .home-page .home-metrics-teaser { border-top-color: var(--rd-line) !important; }
.home-page .home-container-panel {
  background: var(--rd-bg-raised) !important;
  border: 1px solid var(--rd-line-strong) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.home-page .home-container-panel::before { display: none !important; }
.home-page .financial-widget-shell { background: var(--rd-bg-raised-2) !important; border-color: var(--rd-line-strong) !important; border-radius: 0 !important; box-shadow: none !important; }
.home-page .stock-fallback { background: var(--rd-bg-sunken) !important; border-radius: 0 !important; color: var(--rd-ink) !important; }
.home-page .stock-fallback span.up { color: var(--rd-phosphor) !important; }
.home-page .stock-fallback span.down { color: var(--rd-crimson) !important; }
.home-page .stock-fallback small { color: var(--rd-ink-faint) !important; }
.home-page .home-metrics-teaser .btn-secondary { border-color: var(--rd-line-strong) !important; color: var(--rd-ink) !important; border-radius: 0 !important; }
.home-page .home-metrics-teaser .btn-secondary:hover { border-color: var(--rd-accent) !important; color: var(--rd-accent) !important; }

@media (prefers-reduced-motion: reduce) {
  .home-page .hero-terminal-bar::after, .home-page .eyebrow-pulse, .home-page .ticker-pulse,
  .rd-palette-box { animation: none !important; transition: none !important; }
}

/* ================================================================== */
/* P3/P4 — CONTENT PRIMITIVES (sitewide: every archetype below its      */
/* page-title block)                                                  */
/* ================================================================== */
/* :root's own Carbon tokens (style.css L5-27) are already a dark base
   (--bg #0a0e1c, color-scheme: dark) — the "MAXIMALIST VISUAL SYSTEM"
   layer (style.css ~L1039+, F-01..F-35) is what repainted tables, notes,
   callouts, cards and code blocks as light/white glass panels with a
   blue->violet->pink rainbow. This section pulls those primitives back
   onto the carbon+amber system so every archetype (not just the shell
   and homepage) reads as one product. */

/* ---------- Tables ---------- */
table {
  background: var(--rd-bg-raised) !important;
  border: 1px solid var(--rd-line-strong) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  scrollbar-color: var(--rd-line-strong) var(--rd-bg) !important;
}
th {
  background: var(--rd-bg-raised-2) !important;
  color: var(--rd-ink) !important;
  border-bottom: 1px solid var(--rd-line-strong) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  font-family: var(--font-mono);
}
th:first-child, th:last-child { border-radius: 0 !important; }
td { border-bottom: 1px solid var(--rd-line) !important; color: var(--rd-ink-dim); }
tbody tr:nth-child(even), tr:nth-child(even) { background: var(--rd-bg-raised) !important; }
tbody tr:nth-child(odd), tr:nth-child(odd) { background: transparent !important; }
tbody tr:hover, tr:hover:not(:has(th)) {
  background: var(--rd-bg-raised-2) !important;
  box-shadow: inset 3px 0 0 var(--rd-accent) !important;
}
tbody tr:last-child td:first-child, tr:last-child td:first-child,
tbody tr:last-child td:last-child, tr:last-child td:last-child { border-radius: 0 !important; }
td code {
  background: var(--rd-bg-raised-2) !important;
  color: var(--rd-accent) !important;
  border: 1px solid var(--rd-line-strong) !important;
  border-radius: 0 !important;
}

/* ---------- Callouts (.note info, .warn caution, .tip verified) ---------- */
.note, .warn, .tip, .callout {
  background: var(--rd-bg-raised) !important;
  box-shadow: none !important;
}
.note, .callout { border-left-color: var(--rd-accent) !important; }
.warn { border-left-color: var(--rd-crimson) !important; background: var(--rd-crimson-soft) !important; }
.warn strong:first-child { color: var(--rd-crimson) !important; }
.tip { border-left-color: var(--rd-phosphor) !important; background: var(--rd-phosphor-soft) !important; }
.tip strong:first-child { color: var(--rd-phosphor) !important; }
.note strong:first-child, .callout strong:first-child { color: var(--rd-accent) !important; }
.note, .warn, .tip, .callout { color: var(--rd-ink-dim); }
:is(.warn, .note, .tip, .callout, .callout-warning, .callout-info)::after { display: none !important; }

/* ---------- Code blocks ---------- */
pre {
  background-image: none !important;
  background-color: var(--rd-bg-sunken) !important;
  border: 1px solid var(--rd-line-strong) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
pre::before { background: var(--rd-accent) !important; box-shadow: none !important; border-radius: 0 !important; }
pre::after { display: none !important; }
pre .c { color: var(--rd-ink-faint) !important; text-shadow: none !important; }
pre .k { color: var(--rd-accent) !important; text-shadow: none !important; }
pre .v { color: var(--rd-phosphor) !important; text-shadow: none !important; }
pre code::-webkit-scrollbar-track { background: var(--rd-bg-sunken) !important; }
pre code::-webkit-scrollbar-thumb { background: var(--rd-line-strong) !important; }
pre code::-webkit-scrollbar-thumb:hover { background: var(--rd-accent-dim) !important; }
main code:not(pre code) {
  background: var(--rd-bg-raised-2) !important;
  color: var(--rd-accent) !important;
  border-color: var(--rd-line-strong) !important;
}
.code-copy-btn { background: var(--rd-bg-raised) !important; border: 1px solid var(--rd-line-strong) !important; color: var(--rd-ink-dim) !important; border-radius: 0 !important; }
.code-copy-btn:hover { border-color: var(--rd-accent) !important; color: var(--rd-accent) !important; }

/* ---------- Badges / tags ---------- */
.tag, .badge, .card .tag {
  color: var(--rd-accent-ink) !important;
  background: var(--rd-accent) !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.tag::before, .badge::before { background: var(--rd-accent-ink) !important; box-shadow: none !important; animation: none !important; opacity: .6; }
.cve-sev { background: var(--rd-bg-sunken) !important; text-shadow: none !important; border: 1px solid currentColor; }
.code-lang-badge { border-radius: 0 !important; }
.risk-badge { border-radius: 0 !important; }
.risk-badge--read-only { color: var(--rd-phosphor) !important; background: var(--rd-phosphor-soft) !important; }
.risk-badge--config-change { color: var(--rd-ink-dim) !important; background: var(--rd-bg-raised-2) !important; border-color: var(--rd-line-strong) !important; }
.risk-badge--service-impact { color: var(--rd-accent) !important; background: var(--rd-accent-soft) !important; }
.risk-badge--destructive { color: var(--rd-crimson) !important; background: var(--rd-crimson-soft) !important; }

/* ---------- Buttons (generic, outside .home-page) ---------- */
.btn { border-radius: 0 !important; }
.btn-primary { background: var(--rd-accent) !important; color: var(--rd-accent-ink) !important; box-shadow: none !important; }
.btn-primary:hover { background: var(--rd-accent-hover) !important; }
.btn-secondary { background: transparent !important; border-color: var(--rd-line-strong) !important; color: var(--rd-ink) !important; }
.btn-secondary:hover { background: var(--rd-accent-soft) !important; border-color: var(--rd-accent) !important; color: var(--rd-accent) !important; }

/* ---------- Cards / grids / tools ---------- */
.card, .hub-card, .archive-card, .tool, .quiz-item, .exam-qcard {
  background: var(--rd-bg-raised) !important;
  border: 1px solid var(--rd-line-strong) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
.card:hover, .hub-card:hover, .archive-card:hover, .tool:hover { border-color: var(--rd-accent) !important; box-shadow: none !important; transform: none !important; }
.card h3 a:hover { color: var(--rd-accent) !important; }
.card p, .archive-card p { color: var(--rd-ink-dim) !important; }
.archive-visual, .library-tile { background: var(--rd-bg-sunken) !important; }
.library-tile span { color: var(--rd-ink-dim) !important; }
.archive-badge { background: var(--rd-accent) !important; color: var(--rd-accent-ink) !important; border-radius: 0 !important; }
.archive-meta { color: var(--rd-ink-faint) !important; }
.archive-card h2 a { color: var(--rd-ink); }
.tool .result { background: var(--rd-bg-raised-2) !important; box-shadow: none !important; color: var(--rd-ink) !important; }
.tool .result strong, .tool .result b { color: var(--rd-accent) !important; }
.tool .result small { color: var(--rd-ink-faint) !important; }
.tool .formula { background: var(--rd-bg-sunken) !important; border-color: var(--rd-line-strong) !important; color: var(--rd-ink-dim) !important; }
.recent-list li { border-bottom-color: var(--rd-line) !important; }
.recent-list time, .sev-inline { color: var(--rd-ink-faint) !important; }
.home-more-links a { color: var(--rd-accent) !important; }

/* ---------- TOC rail ---------- */
.toc-card {
  --toc-ac: var(--rd-accent);
  border-radius: 0 !important;
  border: 1px solid var(--rd-line-strong) !important;
  background: var(--rd-bg-raised) !important;
  box-shadow: none !important;
}
.toc-card::before { background: var(--rd-accent) !important; box-shadow: none !important; animation: none !important; }
.toc-badge { color: var(--rd-accent-ink) !important; background: var(--rd-accent) !important; box-shadow: none !important; border-radius: 0 !important; }
.toc-badge::before { background: var(--rd-accent-ink) !important; box-shadow: none !important; }
.toc-toggle { border-radius: 0 !important; border-color: var(--rd-line-strong) !important; background: transparent !important; color: var(--rd-ink-dim) !important; }
.toc-toggle:hover { border-color: var(--rd-accent) !important; background: var(--rd-accent-soft) !important; }
.toc-toggle:focus-visible { outline-color: var(--rd-accent) !important; }
.toc-list { scrollbar-color: var(--rd-line-strong) transparent !important; }
.toc-list::-webkit-scrollbar-thumb { background: var(--rd-line-strong) !important; }
.toc-link { --ac: var(--rd-accent); color: var(--rd-ink-dim) !important; }
.toc-link:hover, .toc-link:focus-visible { color: var(--rd-ink) !important; background: var(--rd-bg-raised-2) !important; }
.toc-link:focus-visible { outline-color: var(--rd-accent) !important; }
/* style.css's own comment at the original rule explains why: the active
   chip's ::after is a full-cover background at the SAME --ac this layer
   just forced to amber for every item, so amber text here would repeat
   the "blank first entry" bug it was written to avoid. Ink-white text
   guarantees contrast against any accent-tinted chip. */
.toc-link.active { color: var(--rd-ink) !important; -webkit-text-fill-color: var(--rd-ink) !important; filter: none !important; text-shadow: none !important; }
.toc-link.active::after { box-shadow: none !important; }

/* ---------- Filters / search chips ---------- */
.filter-button { border-radius: 0 !important; border-color: var(--rd-line-strong) !important; background: var(--rd-bg-raised) !important; color: var(--rd-ink-dim) !important; }
.filter-button span { color: var(--rd-accent) !important; }
.filter-button:hover, .filter-button.active { color: var(--rd-ink) !important; border-color: var(--rd-accent) !important; background: var(--rd-accent-soft) !important; box-shadow: none !important; }
.index-filter-wrap { background: var(--rd-bg-raised) !important; border-color: var(--rd-line-strong) !important; border-radius: 0 !important; box-shadow: none !important; backdrop-filter: none !important; }
.index-filter-wrap::before { background: var(--rd-accent) !important; border-radius: 0 !important; }
.index-filter-search .search-icon { color: var(--rd-ink-faint) !important; }
.index-filter-input { background: var(--rd-bg-sunken) !important; border-color: var(--rd-line-strong) !important; border-radius: 0 !important; color: var(--rd-ink) !important; box-shadow: none !important; }
.index-filter-input:hover { border-color: var(--rd-line-strong) !important; }
.index-filter-input:focus { border-color: var(--rd-accent) !important; background: var(--rd-bg-sunken) !important; box-shadow: none !important; }
.library-results { color: var(--rd-ink-faint) !important; }

/* ---------- Pagination ---------- */
.library-pager a, .library-pager .pager-current { border-radius: 0 !important; border-color: var(--rd-line-strong) !important; color: var(--rd-ink-dim) !important; }
.library-pager .pager-current { background: var(--rd-accent) !important; color: var(--rd-accent-ink) !important; }
.library-pager a:hover { border-color: var(--rd-accent) !important; color: var(--rd-accent) !important; }

/* ---------- Empty states / filter chips (search, library, index pages) ---------- */
.index-filter-empty { background: var(--rd-bg-raised) !important; border: 1px dashed var(--rd-line-strong) !important; border-radius: 0 !important; }
.index-filter-empty p { color: var(--rd-ink-dim) !important; }
.index-filter-empty .empty-query { color: var(--rd-accent) !important; }
.index-filter-clear { color: var(--rd-ink-faint) !important; }
.index-filter-clear:hover { color: var(--rd-crimson) !important; background: var(--rd-crimson-soft) !important; }
.index-filter-kbd kbd { background: var(--rd-bg-raised-2) !important; border-color: var(--rd-line-strong) !important; color: var(--rd-ink-dim) !important; }
.index-filter-count { background: var(--rd-bg-raised-2) !important; border-color: var(--rd-line-strong) !important; color: var(--rd-ink-dim) !important; border-radius: 0 !important; }
.index-filter-count strong { color: var(--rd-accent) !important; }
.filter-tag-btn { background: var(--rd-bg-raised) !important; border-color: var(--rd-line-strong) !important; color: var(--rd-ink-dim) !important; border-radius: 0 !important; }
.filter-tag-btn span { background: var(--rd-bg-raised-2) !important; color: var(--rd-accent) !important; }
.filter-tag-btn:hover { border-color: var(--rd-accent) !important; box-shadow: none !important; color: var(--rd-ink) !important; transform: none !important; }
.filter-tag-btn.active { background: var(--rd-accent-soft) !important; color: var(--rd-accent) !important; border-color: var(--rd-accent) !important; box-shadow: none !important; }
.filter-tag-btn.active span { background: var(--rd-accent) !important; color: var(--rd-accent-ink) !important; }
.btn-filter-reset { background: var(--rd-accent) !important; color: var(--rd-accent-ink) !important; border-radius: 0 !important; box-shadow: none !important; }
.btn-filter-reset:hover { transform: none !important; background: var(--rd-accent-hover) !important; box-shadow: none !important; }

/* ---------- Tools / quiz / exam simulator ---------- */
.card::before, .tool::before, .hw::before, .quiz-item::before, .exam-qcard::before, .sim-bar::before {
  background: var(--rd-accent) !important;
  box-shadow: none !important;
  opacity: 1 !important;
}
.card::after { display: none !important; }
.card-grid > .card:nth-child(3n+2)::before, .card-grid > .card:nth-child(3n+3)::before { filter: none !important; }
.sim-bar { background: var(--rd-bg-raised) !important; border-color: var(--rd-line-strong) !important; box-shadow: none !important; }
.sim-info { color: var(--rd-ink-dim) !important; }
.quiz-item .q, .exam-qcard .q { color: var(--rd-ink) !important; }
.quiz-item button.opt, .exam-opt {
  background: var(--rd-bg-raised-2) !important;
  border-color: var(--rd-line-strong) !important;
  color: var(--rd-ink-dim) !important;
  border-radius: 0 !important;
}
.quiz-item button.opt:hover:not(:disabled), .exam-opt:hover:not(:disabled) {
  background: var(--rd-bg-sunken) !important;
  border-color: var(--rd-accent) !important;
  box-shadow: none !important;
  transform: none !important;
}
.exam-opt.selected { background: var(--rd-accent-soft) !important; border-color: var(--rd-accent) !important; box-shadow: none !important; color: var(--rd-ink) !important; }
.quiz-item button.opt.correct { background: var(--rd-phosphor-soft) !important; border-color: var(--rd-phosphor) !important; color: var(--rd-phosphor) !important; box-shadow: none !important; }
.quiz-item button.opt.wrong { background: var(--rd-crimson-soft) !important; border-color: var(--rd-crimson) !important; color: var(--rd-crimson) !important; box-shadow: none !important; }
.quiz-item .explain { background: var(--rd-bg-raised-2) !important; border-left-color: var(--rd-accent) !important; box-shadow: none !important; color: var(--rd-ink-dim) !important; }
#quiz-score, .exam-score { background: var(--rd-bg-raised) !important; border-color: var(--rd-line-strong) !important; box-shadow: none !important; color: var(--rd-ink) !important; border-radius: 0 !important; }
#quiz-score::before { background: var(--rd-phosphor) !important; box-shadow: none !important; }
.quiz-progress-bar, .exam-progress-bar { background: var(--rd-bg-sunken) !important; box-shadow: none !important; }
.quiz-progress-fill, .exam-progress-fill { background: var(--rd-accent) !important; box-shadow: none !important; }
.exam-timer { background: var(--rd-bg-raised) !important; color: var(--rd-accent) !important; border-color: var(--rd-line-strong) !important; box-shadow: none !important; }
.exam-timer.timer-warn { background: var(--rd-crimson-soft) !important; color: var(--rd-crimson) !important; border-color: var(--rd-crimson) !important; box-shadow: none !important; }
.exam-progress { background: var(--rd-bg-raised) !important; color: var(--rd-ink-dim) !important; border-color: var(--rd-line-strong) !important; }
.exam-meta { color: var(--rd-ink-faint) !important; }
.exam-meta strong { color: var(--rd-accent) !important; }
.flag-on { color: var(--rd-accent) !important; }
.exam-jump { background: var(--rd-bg-raised) !important; border-color: var(--rd-line-strong) !important; color: var(--rd-ink-dim) !important; border-radius: 0 !important; }
.exam-jump:hover { box-shadow: none !important; border-color: var(--rd-accent) !important; transform: none !important; }
.exam-jump.answered { background: var(--rd-accent) !important; color: var(--rd-accent-ink) !important; box-shadow: none !important; }
.exam-jump.flagged { background: var(--rd-accent-soft) !important; color: var(--rd-accent) !important; border-color: var(--rd-accent) !important; }
.exam-jump.current { outline-color: var(--rd-accent) !important; box-shadow: none !important; }
.tool label { color: var(--rd-ink); }
input[type="range"] { accent-color: var(--rd-accent); }
.tool input:focus, .tool select:focus, .tool input:hover, .tool select:hover { outline-color: var(--rd-accent) !important; border-color: var(--rd-accent) !important; box-shadow: none !important; }

/* ================================================================== */
/* P3 — HUB ARCHETYPE (reference/troubleshooting/ai/ncd/financials/tools) */
/* ================================================================== */
/* style.css drives every .hub-page's border/glow/divider/scrollbar off
   3 custom properties (--hub-a/--hub-b/--hub-glow), one rainbow value per
   section (cyan+violet, emerald+cyan, sky+indigo, coral+amber, magenta+
   indigo...). Overriding just those 3 tokens re-threads the whole hub
   system onto the carbon+amber identity without touching the ~15
   selectors that consume them. --hub-glow goes fully transparent — the
   blur-glow itself (not just its hue) is the thing P0 calls generic. */
.hub-page,
.hub-page--ncd, .hub-page--reference, .hub-page--news, .hub-page--financials,
.hub-page--ai, .hub-page--tools {
  --hub-a: var(--rd-accent);
  --hub-b: var(--rd-accent-dim);
  --hub-glow: transparent;
}
.hub-page--troubleshooting { --hub-a: var(--rd-crimson); --hub-b: var(--rd-accent); --hub-glow: transparent; }
.hub-page .page-figure img { border-radius: 0 !important; box-shadow: none !important; }
.hub-grid { gap: 10px; }
.hub-card { color: var(--rd-ink) !important; border-radius: 0 !important; }
.hub-card small { color: var(--rd-ink-faint) !important; }
.hub-strip { border-color: var(--rd-line-strong) !important; background: var(--rd-bg-raised) !important; border-radius: 0 !important; }

/* ---------- Architecture diagrams (reference pages) ---------- */
/* The per-node data-accent palette is functional (distinguishes write
   paths/components), so it stays; only the decorative outer glow/gradient
   frame — the part that reads as the same rainbow-glass signature as
   everything else — gets flattened. */
.arch-diagram { box-shadow: none !important; border-color: var(--rd-line-strong) !important; border-radius: 0 !important; }
.arch-diagram::before { background: var(--rd-accent) !important; box-shadow: none !important; border-radius: 0 !important; }
.arch-caption-title { color: var(--rd-ink) !important; }
.arch-caption-sub { color: var(--rd-ink-faint) !important; }
.arch-legend { color: var(--rd-ink-dim); }

/* ---------- 404 ---------- */
.error-page {
  background: var(--rd-bg) !important;
}
.error-page::before {
  background-image:
    linear-gradient(var(--rd-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--rd-grid-line) 1px, transparent 1px) !important;
}
.error-panel {
  border-radius: 0 !important;
  border-color: var(--rd-line-strong) !important;
  background: var(--rd-bg-raised) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
.error-panel::after { display: none !important; }
.error-terminal-bar { background: var(--rd-bg-raised-2) !important; border-bottom-color: var(--rd-line) !important; }
.error-terminal-bar i { background: var(--rd-line-strong) !important; box-shadow: none !important; }
.error-terminal-bar b { color: var(--rd-ink) !important; }
.error-code {
  background: none !important;
  -webkit-text-fill-color: var(--rd-accent) !important;
  color: var(--rd-accent) !important;
  filter: none !important;
}
.error-code::before, .error-code::after { display: none !important; }

/* ================================================================== */
/* P3 — LIBRARY / NEWS / FINANCIALS archetypes                         */
/* ================================================================== */

.library-hero {
  border-radius: 0 !important;
  background: var(--rd-bg-raised) !important;
  box-shadow: none !important;
  border: 1px solid var(--rd-line-strong) !important;
}
.library-controls { border-radius: 0 !important; background: var(--rd-bg-raised) !important; border-color: var(--rd-line-strong) !important; backdrop-filter: none !important; }
.library-tile { background: var(--rd-bg-sunken) !important; }

.news-lead { border-radius: 0 !important; border-color: var(--rd-line-strong) !important; border-left-color: var(--rd-accent) !important; background: var(--rd-bg-raised) !important; }
.news-lead-visual img, .news-card-visual img { border-radius: 0 !important; }
.news-lead-kicker, .news-item-cat { color: var(--rd-accent) !important; }
.news-lead h2 a { color: var(--rd-ink) !important; }
.news-lead h2 a:hover, .news-item-title:hover { color: var(--rd-accent) !important; }
.news-lead p, .news-card p { color: var(--rd-ink-dim) !important; }
.news-card time, .news-item time, .news-subhead-note, .news-section-dek, .photo-credit { color: var(--rd-ink-faint) !important; }
.photo-credit a { color: var(--rd-ink-dim) !important; }
.news-item { border-bottom-color: var(--rd-line) !important; }
.news-item-title { color: var(--rd-ink) !important; }

.financial-widget-shell {
  border-radius: 0 !important;
  background: var(--rd-bg-raised) !important;
  border-color: var(--rd-line-strong) !important;
  box-shadow: none !important;
}
.stock-fallback--snapshot span.up { color: var(--rd-phosphor) !important; }
.stock-fallback--snapshot span.down, .stock-fallback--unavailable strong { color: var(--rd-crimson) !important; }

/* .finance-context-card drives its emerald/gold/violet 3-way cycle off
   --fin-* tokens (same leverage as --hub-a/--hub-b above) — retint all
   three variants onto the carbon+amber system instead of patching the
   ~10 selectors that consume them. */
.finance-context-grid .finance-context-card,
.finance-context-grid .finance-context-card:nth-child(3n+2),
.finance-context-grid .finance-context-card:nth-child(3n+3) {
  --fin-a: var(--rd-accent);
  --fin-b: var(--rd-accent-dim);
  --fin-glow: transparent;
  --fin-glow-soft: transparent;
  --fin-wash: var(--rd-accent-soft);
  --fin-border: var(--rd-line-strong);
  --fin-chip: var(--rd-accent);
  --fin-ink: var(--rd-accent-ink);
  --fin-dot: var(--rd-accent);
}
.finance-context-grid .finance-context-card { border-radius: 0 !important; box-shadow: none !important; }
.finance-context-grid .finance-context-card:hover { transform: none !important; box-shadow: none !important; border-color: var(--rd-accent) !important; }
.social-card, .finance-context-card { background: var(--rd-bg-raised) !important; }
.social-card h3, .finance-context-card h3 { color: var(--rd-ink) !important; }
.social-card p, .finance-context-card p { color: var(--rd-ink-dim) !important; }

/* Pre-rendered architecture-diagram SVGs (84 pages, scripts/*) are baked-in
   white-background vector assets — can't recolor raster content with CSS,
   and re-rendering 84 diagrams is out of scope this session. Framing them
   as a deliberate paper plate (padding + hairline border on carbon) reads
   as "printed figure," not "broken dark mode," without touching the asset. */
/* banner-*.svg are already-dark decorative hero illustrations (own asset,
   not a white diagram plate) — exclude them from the paper-plate frame. */
main img[src*="/assets/img/"]:not([src*="/banner-"]),
main img[src*="assets/img/"]:not([src*="banner-"]),
.page-figure img[src*="assets/img/"]:not([src*="banner-"]) {
  background: #d8d3c2 !important;
  padding: 18px !important;
  border: 1px solid var(--rd-line-strong) !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
}

/* ---------- Glossary (same --accent-token leverage trick as hub-page) ---------- */
:is(.glossary dl, main section > dl) {
  --dl-accent-a: var(--rd-accent);
  --dl-accent-b: var(--rd-accent-dim);
  --dl-surface: var(--rd-bg-raised);
}
:is(.glossary dl, main section > dl) > dt {
  border-radius: 0 !important;
  border-color: var(--rd-line-strong) !important;
  color: var(--rd-ink) !important;
  background: var(--rd-bg-raised-2) !important;
  box-shadow: none !important;
}
:is(.glossary dl, main section > dl) > dt::before { background: var(--rd-accent) !important; box-shadow: none !important; }
:is(.glossary dl, main section > dl) > dd {
  border-radius: 0 !important;
  border-color: var(--rd-line-strong) !important;
  color: var(--rd-ink-dim) !important;
  box-shadow: none !important;
}
:is(.glossary dl, main section > dl) > dt:is(:hover, :focus-visible, :has(+ dd:hover)),
:is(.glossary dl, main section > dl) > dd:hover {
  border-color: var(--rd-accent) !important;
  box-shadow: none !important;
  transform: none !important;
}
.glossary > h2[id^="g-"] {
  border-radius: 0 !important;
  border-color: var(--rd-line-strong) !important;
  color: var(--rd-accent-ink) !important;
  background: var(--rd-accent) !important;
  box-shadow: none !important;
}

/* ---------- Generic hero / eyebrow (non-homepage archetype heroes:
   library, and any other section using .hero/.eyebrow outside .home-page) ---------- */
.eyebrow, .tag, .badge { border-radius: 0 !important; }
.eyebrow:not(.hero *) {
  color: var(--rd-accent) !important;
  background: var(--rd-bg-raised-2) !important;
  border: 1px solid var(--rd-line-strong) !important;
  box-shadow: none !important;
}
.hero .eyebrow {
  color: var(--rd-ink) !important;
  background: var(--rd-bg-raised) !important;
  border-color: var(--rd-line-strong) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
.hero h1 strong {
  background: none !important;
  -webkit-text-fill-color: var(--rd-accent) !important;
  color: var(--rd-accent) !important;
  animation: none !important;
}
/* Bare .hero (sitemap.html and any other non-homepage page using the raw
   class) still carried the full teal->violet->magenta aurora gradient —
   .home-page .hero only covers the homepage's own hero. */
.hero:not(.home-page .hero) {
  background: var(--rd-bg) !important;
  border: 1px solid var(--rd-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.hero:not(.home-page .hero)::before, .hero:not(.home-page .hero)::after { display: none !important; }
.hero:not(.home-page .hero) h1 { color: var(--rd-ink) !important; text-shadow: none !important; }
.hero:not(.home-page .hero) .lede { color: var(--rd-ink-dim) !important; }
.sitemap-group {
  border-radius: 0 !important;
  border-color: var(--rd-line-strong) !important;
  background: var(--rd-bg-raised) !important;
  box-shadow: none !important;
}
.sitemap-group h2 { color: var(--rd-ink) !important; }
.sitemap-group h2 a { color: var(--rd-ink) !important; }
.sitemap-group h2 a:hover { color: var(--rd-accent) !important; }
.sitemap-group a { color: var(--rd-ink-dim) !important; }
.sitemap-group a:hover { color: var(--rd-accent) !important; }
.sitemap-group li::marker { color: var(--rd-accent); }

/* style.css's generic <ul> bullet (main section ul > li::before, L7418) is a
   glowing blue/violet/pink radial-gradient dot cycling every 3rd item —
   applied to EVERY bulleted list on EVERY page sitewide, likely the single
   most-repeated rainbow-glow instance on the whole site. One flat amber
   dot, no glow. */
main section ul > li:not(li li)::before,
main section ul > li:nth-child(3n + 2):not(li li)::before,
main section ul > li:nth-child(3n):not(li li)::before {
  background: var(--rd-accent) !important;
  box-shadow: none !important;
}
.library-hero { border-radius: 0 !important; }
.library-hero h1 strong, .library-hero h1, .library-hero h1 strong { -webkit-text-fill-color: var(--rd-accent) !important; color: var(--rd-accent) !important; text-shadow: none !important; }
.library-hero h1 { color: var(--rd-ink) !important; }
.library-count { background: var(--rd-bg-sunken) !important; border-color: var(--rd-line-strong) !important; border-radius: 0 !important; }
.library-count strong { color: var(--rd-accent) !important; }
.library-count span { color: var(--rd-ink-dim) !important; }

/* ---------- Search page ---------- */
.search-page .search-panel {
  background: var(--rd-bg-raised) !important;
  border-color: var(--rd-line-strong) !important;
  box-shadow: none !important;
}
.search-page .search-panel label { color: var(--rd-ink-dim) !important; }
.search-page .search-panel #search-input {
  color: var(--rd-ink) !important;
  border-color: var(--rd-line-strong) !important;
  border-radius: 0 !important;
  background: var(--rd-bg-sunken) !important;
  box-shadow: none !important;
}
.search-page .search-panel #search-input:focus,
.search-page .search-panel #search-input:focus-visible {
  border-color: var(--rd-accent) !important;
  background: var(--rd-bg-sunken) !important;
  box-shadow: none !important;
}
.search-page #search-status { color: var(--rd-ink-faint) !important; }
.search-page .search-popular-label { color: var(--rd-accent) !important; }
.search-page .search-pills button, .search-page .search-pills a {
  color: var(--rd-ink-dim) !important;
  border-color: var(--rd-line-strong) !important;
  border-radius: 0 !important;
  background: var(--rd-bg-raised-2) !important;
  box-shadow: none !important;
}
.search-page .search-pills button:hover, .search-page .search-pills a:hover, .search-page .search-pills a:focus-visible {
  color: var(--rd-ink) !important;
  border-color: var(--rd-accent) !important;
  background: var(--rd-accent-soft) !important;
  box-shadow: none !important;
  transform: none !important;
}
.search-page .filter-chip { border-radius: 0 !important; }
.search-page .filter-chip:hover { color: var(--rd-ink) !important; border-color: var(--rd-accent) !important; }
.search-page .filter-chip[aria-pressed="true"] {
  color: var(--rd-accent-ink) !important;
  background: var(--rd-accent) !important;
  border-color: transparent !important;
}
.search-panel .search-submit {
  color: var(--rd-accent-ink) !important;
  background: var(--rd-accent) !important;
  border-color: var(--rd-accent) !important;
  border-radius: 0 !important;
}
.search-panel .search-submit:hover { background: var(--rd-accent-hover) !important; }
.search-panel .search-submit:active { background: var(--rd-accent-dim) !important; }
.search-panel .search-submit:focus-visible { outline-color: var(--rd-accent) !important; }
.search-page #search-results .card h3 { color: var(--rd-ink) !important; }
.search-page #search-results mark { background: var(--rd-accent-soft) !important; color: var(--rd-accent) !important; }

} /* end @media screen */
