/* wysdm mock v2.1 — design tokens (SPEC-V2 §2 + DESIGN-REFINE §S1). All tokens on :root. */
:root {
  /* neutrals — one family, near-zero chroma, lightness ladder (Linear).
     Sidebar dimmer than content; content canvas is the brightest surface. */
  --bg-app:#030304;        /* near-black backdrop the panels float on (Discord frame) */
  --bg-sidebar:#0e0f12; --bg-content:#141519;
  --bg-elevated:#1b1e24;   /* cards, embeds, composer */
  --bg-sunken:#0b0c0e;     /* code blocks, terminal, receipt strips */
  --bg-popover:#232630;    /* floating chrome fallback, hover cards */
  --hover:rgba(255,255,255,.035); --active:rgba(255,255,255,.06); --selected:rgba(255,255,255,.09);
  --border:rgba(255,255,255,.05); --border-strong:rgba(255,255,255,.10);
  --border-faint:rgba(255,255,255,.035);  /* interior dividers that survive the purge */
  /* the structural grid (Discord frame DNA): ONE grey for every panel seam so
     the lines read as a single cohesive grid; a brighter grey for panel outlines */
  --line:rgba(255,255,255,.085);
  --line-outer:rgba(255,255,255,.13);
  --text-1:#e2e4eb; --text-2:#999fad; --text-3:#646a76;

  /* depth — 3-step shadow ramp + 1px inset top highlight for elevated surfaces */
  --edge-hi:inset 0 1px 0 rgba(255,255,255,.05);
  --edge-hi-strong:inset 0 1px 0 rgba(255,255,255,.09), inset 0 0 0 1px rgba(255,255,255,.04);
  --shadow-1:0 1px 2px rgba(0,0,0,.28), 0 2px 6px rgba(0,0,0,.18);   /* in-page cards */
  --shadow-2:0 2px 6px rgba(0,0,0,.30), 0 8px 20px rgba(0,0,0,.35);  /* floating pills, hover lift */
  --shadow-3:0 4px 12px rgba(0,0,0,.38), 0 20px 48px rgba(0,0,0,.50);/* popovers, modals */

  /* glass — floating chrome ONLY (popovers, modals, sticky headers/banners).
     Never on base panels. Solid fallback = --bg-popover via @supports. */
  --glass-bg:rgba(29,31,38,.66);
  --glass-bg-heavy:rgba(29,31,38,.80);       /* sticky topbar over chat */
  --glass-blur:blur(20px) saturate(1.6);
  --glass-blur-light:blur(18px) saturate(1.5);
  --glass-grad:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,0) 46%);

  /* brand — #0014a8 is FILL-ONLY (primary buttons, badges, logomark).
     NEVER use --brand or any dark accent as text on dark backgrounds. */
  --brand:#0014a8; --brand-hover:#1a2fc4;
  --accent-500:#3d55e6;    /* agent badge fill, selected tab underline */
  --accent-400:#6b82f4;    /* links, active labels, thread rows, [[wikilinks]] */
  --accent-300:#94a6f9;    /* subtle accent text on elevated surfaces */
  --mention-bg:rgba(61,85,230,.14); --mention-fg:#aab8fb;

  /* utility — color only where it means something */
  --ok:#43a860; --warn:#d3a43b; --danger:#d64949;
  /* alpha derivatives — reference these so hue shifts stay in one file */
  --focus-ring:rgba(107,130,244,.4);      /* accent-400 @ 40% */
  --focus-tint:rgba(107,130,244,.14);     /* accent-400 @ 14% — soft focus glow */
  --selection:rgba(61,85,230,.35);        /* accent-500 @ 35% */
  --scrollbar-hover:rgba(255,255,255,.18);
  --ok-border:rgba(67,168,96,.4); --warn-border:rgba(211,164,59,.4);
  --ok-tint:rgba(67,168,96,.10); --danger-tint:rgba(214,73,73,.10);
  --on-brand-dim:rgba(255,255,255,.35);   /* spinner track on brand fills */
  /* role colors (member-list names + role chips only) — muted a step */
  --role-owner:#b6a06a; --role-core:#8c96d8; --role-design:#a793cc; --role-ops:#74ac9f;

  /* count pills — muted red, tiny. Full --danger stays reserved for true errors. */
  --count-bg:#843d43; --count-fg:#f0d4d6;

  /* avatar duotones — a = top-left stop, b = bottom stop. Muted, dark-compatible.
     SINGLE SOURCE: shared.js rebuilds its CAST table from these at init. */
  --av-rohan-a:#4a5480;  --av-rohan-b:#2a3050;
  --av-alex-a:#3f6059;   --av-alex-b:#233732;
  --av-maya-a:#5d4a74;   --av-maya-b:#342745;
  --av-jordan-a:#6b5940; --av-jordan-b:#3a2f20;
  --av-ship-a:#41597a;   --av-ship-b:#243248;
  --av-rclone-a:#414a6b; --av-rclone-b:#262c42;
  --av-aclone-a:#39544e; --av-aclone-b:#20302b;
  --av-pixel-a:#64485a;  --av-pixel-b:#372630;
  --av-grep-a:#4c5a41;   --av-grep-b:#2a3323;
  --av-dash-a:#3d5a66;   --av-dash-b:#213339;
  --av-group-a:#454a56;  --av-group-b:#272a32;  /* atlas core group DM + unknown-name fallback */

  --sans:-apple-system,system-ui,'Segoe UI',sans-serif;
  --mono:ui-monospace,'SF Mono',Menlo,monospace;
  --r-sm:4px; --r-md:6px; --r-lg:8px; --r-xl:12px;
  --r-2xl:16px; --r-pill:999px;
  /* type scale / tracking */
  --fs-msg:15px; --lh-msg:1.45;      /* message bodies */
  --fs-label:11px;                   /* uppercase labels */
  --track-label:.07em;               /* labels: wider */
  --track-head:-0.01em;              /* headings >=16px */
  --track-tight:-0.006em;            /* 14-15px names/titles */
  --ease:cubic-bezier(.2,.8,.3,1); --t-fast:120ms; --t-med:180ms;
}
