/* ============================================================================
   DUNAS DESIGN SYSTEM — Design Tokens (CSS Custom Properties)
   ----------------------------------------------------------------------------
   Source of truth: Figma "Dunas Design System — MASTER"
   https://www.figma.com/design/guGids5lfiJ5dVAfhhxs42/

   Layers:
     1. PRIMITIVES  — raw values (color ramps, spacing, radius, type, effects)
     2. SEMANTIC    — role-based tokens that components consume (light theme)
     3. ACCENT      — the per-Agent "Aura" theme; swap via [data-theme="<name>"]

   Components must only reference SEMANTIC + ACCENT tokens, never primitives.
   ========================================================================== */

:root {
  /* ==========================================================================
     1. PRIMITIVES
     ====================================================================== */

  /* ---- Neutral ramp ------------------------------------------------------ */
  --color-neutral-0:    #ffffff;
  --color-neutral-50:   #f7f7f7;
  --color-neutral-100:  #f0f0f0;
  --color-neutral-200:  #e5e5e5;
  --color-neutral-300:  #d4d4d4;
  --color-neutral-400:  #a3a3a3;
  --color-neutral-500:  #737373;
  --color-neutral-600:  #525252;
  --color-neutral-700:  #404040;
  --color-neutral-800:  #262626;
  --color-neutral-900:  #171717;
  --color-neutral-1000: #000000;

  /* ---- Status: success --------------------------------------------------- */
  --color-success-50:  #e2ffe0;
  --color-success-100: #b8f8b6;
  --color-success-200: #9bea9a;
  --color-success-300: #7edd7c;
  --color-success-400: #4cbe4f;
  --color-success-500: #00a100;
  --color-success-600: #008300;
  --color-success-700: #006300;
  --color-success-800: #004300;
  --color-success-900: #002500;

  /* ---- Status: warning --------------------------------------------------- */
  --color-warning-50:  #fff4d1;
  --color-warning-100: #ffe694;
  --color-warning-200: #ffdb61;
  --color-warning-300: #ffcf2e;
  --color-warning-400: #f0b900;
  --color-warning-500: #dba900;
  --color-warning-600: #c29500;
  --color-warning-700: #a37e00;
  --color-warning-800: #705600;
  --color-warning-900: #2e2300;

  /* ---- Status: danger ---------------------------------------------------- */
  --color-danger-50:  #ffedeb;
  --color-danger-100: #ffbfba;
  --color-danger-200: #ffa09b;
  --color-danger-300: #ff807d;
  --color-danger-400: #f75d5d;
  --color-danger-500: #e21633;
  --color-danger-600: #c70000;
  --color-danger-700: #a30000;
  --color-danger-800: #7b0000;
  --color-danger-900: #2c0000;

  /* ---- Named Aura palettes (per-Agent themes) ---------------------------- */
  /* Each is a full 50→1200 tonal ramp. Grouped by hue family.               */

  /* Greens / earthen */
  --color-ari-50:  #f7f8f5; --color-ari-100: #eef2ea; --color-ari-200: #e6ebe0;
  --color-ari-300: #dee5d5; --color-ari-400: #cdd7c1; --color-ari-500: #bdcaac;
  --color-ari-600: #acbd97; --color-ari-700: #8a9779; --color-ari-800: #67715b;
  --color-ari-900: #454c3c; --color-ari-1000:#34392d; --color-ari-1100:#1e201b;
  --color-ari-1200:#11130f;

  --color-ren-50:  #f6f6f3; --color-ren-100: #ecece7; --color-ren-200: #e3e3db;
  --color-ren-300: #dad9cf; --color-ren-400: #c7c7b6; --color-ren-500: #b5b49e;
  --color-ren-600: #a2a086; --color-ren-700: #82816b; --color-ren-800: #616150;
  --color-ren-900: #414036; --color-ren-1000:#313028; --color-ren-1100:#20201b;
  --color-ren-1200:#10100d;

  --color-cai-50:  #f6f5f3; --color-cai-100: #eceae7; --color-cai-200: #e3e0db;
  --color-cai-300: #dad5cf; --color-cai-400: #c7c1b6; --color-cai-500: #b5ac9e;
  --color-cai-600: #a29786; --color-cai-700: #82796b; --color-cai-800: #615b50;
  --color-cai-900: #413c36; --color-cai-1000:#312d28; --color-cai-1100:#201e1b;
  --color-cai-1200:#100f0d;

  --color-sol-50:  #f7f2f2; --color-sol-100: #eee5e5; --color-sol-200: #e6d9d8;
  --color-sol-300: #decdcb; --color-sol-400: #cdb5b0; --color-sol-500: #bd9b96;
  --color-sol-600: #b28a85; --color-sol-700: #8e655f; --color-sol-800: #6a4d47;
  --color-sol-900: #473230; --color-sol-1000:#352424; --color-sol-1100:#231a18;
  --color-sol-1200:#110e0c;

  /* Golds / ambers */
  --color-lux-50:  #f9f8ee; --color-lux-100: #f3efdd; --color-lux-200: #eee8cc;
  --color-lux-300: #e8e0bb; --color-lux-400: #dcd19a; --color-lux-500: #d1c278;
  --color-lux-600: #c5b256; --color-lux-700: #9e8f45; --color-lux-800: #766b34;
  --color-lux-900: #4f4722; --color-lux-1000:#3b351a; --color-lux-1100:#272411;
  --color-lux-1200:#141209;

  --color-mio-50:  #f9f4ee; --color-mio-100: #f3e8dd; --color-mio-200: #eeddcc;
  --color-mio-300: #e8d1bb; --color-mio-400: #dcbb9a; --color-mio-500: #d1a478;
  --color-mio-600: #c58d56; --color-mio-700: #9e7145; --color-mio-800: #765534;
  --color-mio-900: #4f3822; --color-mio-1000:#3b2a1a; --color-mio-1100:#271c11;
  --color-mio-1200:#140e09;

  /* Terracotta / rose */
  --color-ryn-50:  #f8eeed; --color-ryn-100: #f1dedb; --color-ryn-200: #eacdc9;
  --color-ryn-300: #e3bdb7; --color-ryn-400: #d49b93; --color-ryn-500: #c67a6f;
  --color-ryn-600: #b8594b; --color-ryn-700: #93473c; --color-ryn-800: #6e352d;
  --color-ryn-900: #4a241e; --color-ryn-1000:#371b17; --color-ryn-1100:#25120f;
  --color-ryn-1200:#1c0e0c;

  --color-ash-50:  #fef1f4; --color-ash-100: #fde3e8; --color-ash-200: #fcd4dd;
  --color-ash-300: #fbc6d2; --color-ash-400: #faaabb; --color-ash-500: #f88da4;
  --color-ash-600: #f6718e; --color-ash-700: #c55a71; --color-ash-800: #944455;
  --color-ash-900: #622d39; --color-ash-1000:#4a222b; --color-ash-1100:#31171c;
  --color-ash-1200:#190b0e;

  --color-sage-50:  #fef1fa; --color-sage-100: #fde3f6; --color-sage-200: #fcd4f1;
  --color-sage-300: #fbc6ec; --color-sage-400: #faaae3; --color-sage-500: #f88dd9;
  --color-sage-600: #f671d0; --color-sage-700: #c55aa6; --color-sage-800: #94447d;
  --color-sage-900: #622d53; --color-sage-1000:#4a223e; --color-sage-1100:#31172a;
  --color-sage-1200:#190b15;

  --color-eden-50:  #fbf1fe; --color-eden-100: #f7e3fd; --color-eden-200: #f4d4fc;
  --color-eden-300: #f0c6fb; --color-eden-400: #e8aafa; --color-eden-500: #e18df8;
  --color-eden-600: #d971f6; --color-eden-700: #ae5ac5; --color-eden-800: #824494;
  --color-eden-900: #572d62; --color-eden-1000:#41224a; --color-eden-1100:#2b1731;
  --color-eden-1200:#160b19;

  /* Blues / cyans */
  --color-kai-50:  #eff4ff; --color-kai-100: #dee9ff; --color-kai-200: #cedeff;
  --color-kai-300: #bed3ff; --color-kai-400: #9dbcff; --color-kai-500: #7da6ff;
  --color-kai-600: #5c90ff; --color-kai-700: #4a73cc; --color-kai-800: #375699;
  --color-kai-900: #253966; --color-kai-1000:#1c2b4d; --color-kai-1100:#121c33;
  --color-kai-1200:#090e1a;

  --color-vale-50:  #eff7ff; --color-vale-100: #deeeff; --color-vale-200: #cee6ff;
  --color-vale-300: #beddff; --color-vale-400: #9dcdff; --color-vale-500: #7dbcff;
  --color-vale-600: #5cabff; --color-vale-700: #4a89cc; --color-vale-800: #376799;
  --color-vale-900: #254466; --color-vale-1000:#1c334d; --color-vale-1100:#122233;
  --color-vale-1200:#09111a;

  --color-rei-50:  #effaff; --color-rei-100: #def4ff; --color-rei-200: #ceeeff;
  --color-rei-300: #bee8ff; --color-rei-400: #9dddff; --color-rei-500: #7dd1ff;
  --color-rei-600: #5cc6ff; --color-rei-700: #4a9ecc; --color-rei-800: #377799;
  --color-rei-900: #254f66; --color-rei-1000:#1c3b4d; --color-rei-1100:#122733;
  --color-rei-1200:#09141a;

  --color-nova-50:  #eef9f9; --color-nova-100: #ddf3f1; --color-nova-200: #cceeeb;
  --color-nova-300: #bbe8e4; --color-nova-400: #9adcd7; --color-nova-500: #78d1ca;
  --color-nova-600: #56c5bc; --color-nova-700: #459e97; --color-nova-800: #347671;
  --color-nova-900: #224f4b; --color-nova-1000:#1a3b38; --color-nova-1100:#112726;
  --color-nova-1200:#091413;

  --color-ezra-50:  #eef9f5; --color-ezra-100: #ddf3ea; --color-ezra-200: #cceee0;
  --color-ezra-300: #bbe8d5; --color-ezra-400: #9adcc1; --color-ezra-500: #78d1ac;
  --color-ezra-600: #56c597; --color-ezra-700: #459e79; --color-ezra-800: #34765b;
  --color-ezra-900: #224f3c; --color-ezra-1000:#1a3b2d; --color-ezra-1100:#11271e;
  --color-ezra-1200:#09140f;

  /* ---- Spacing scale (px, 4-pt grid) ------------------------------------- */
  --space-0:  0px;
  --space-4:  4px;
  --space-8:  8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-20: 20px;
  --space-24: 24px;
  --space-60: 60px;
  --space-64: 64px;

  /* ---- Radius ------------------------------------------------------------ */
  --radius-none: 0px;
  --radius-sm:   8px;
  --radius-lg:   16px;
  --radius-full: 999px;

  /* ---- Border width ------------------------------------------------------ */
  --border-width: 1px;

  /* ---- Typography: families ---------------------------------------------- */
  /* Display tier uses the heavy condensed grotesque; web-servable weight is  */
  /* "Special Gothic Condensed One" (400). Body = Inter. Notes = Roboto Mono. */
  --font-display: "Special Gothic Condensed One", "Special Gothic", "Arial Narrow", "Helvetica Neue", sans-serif;
  --font-body:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono:    "Roboto Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* ---- Typography: weights ----------------------------------------------- */
  --font-weight-regular:  400;
  --font-weight-medium:   500;
  --font-weight-semibold: 600;
  --font-weight-bold:     700;

  /* ---- Typography: type scale (size / line-height / tracking) ------------ */
  /* Display — Special Gothic Condensed, 80% leading, tight tracking, UPPER  */
  --type-display-lg-size: 88px; --type-display-lg-line: 0.8;  --type-display-lg-tracking: -2px;
  --type-display-md-size: 56px; --type-display-md-line: 0.8;  --type-display-md-tracking: -2px;
  --type-display-sm-size: 28px; --type-display-sm-line: 0.8;  --type-display-sm-tracking: -1px;

  /* Headline — Special Gothic Condensed */
  --type-headline-xl-size: 36px; --type-headline-xl-line: 1.0;  --type-headline-xl-tracking: 0px;
  --type-headline-lg-size: 28px; --type-headline-lg-line: 1.0;  --type-headline-lg-tracking: 0px;
  --type-headline-md-size: 20px; --type-headline-md-line: 1.12; --type-headline-md-tracking: 0px;
  --type-headline-sm-size: 16px; --type-headline-sm-line: 1.2;  --type-headline-sm-tracking: 0px;

  /* Body — Inter */
  --type-body-lg-size: 16px; --type-body-lg-line: 1.2; --type-body-lg-tracking: 0px;
  --type-body-md-size: 14px; --type-body-md-line: 1.2; --type-body-md-tracking: 0px;
  --type-body-sm-size: 12px; --type-body-sm-line: 1.2; --type-body-sm-tracking: 0px;

  /* Label — Inter Medium */
  --type-label-lg-size: 14px; --type-label-lg-line: 1.2; --type-label-lg-tracking: 0px;

  /* Notes — Roboto Mono */
  --type-mono-size: 16px; --type-mono-line: 1.4; --type-mono-tracking: 0px;

  /* ---- Effects: shadow colors & elevations ------------------------------- */
  --shadow-color-sm: rgba(0, 0, 0, 0.12);
  --shadow-color-lg: rgba(0, 0, 0, 0.20);
  --elevation-sm: 0 20px 40px var(--shadow-color-sm);
  --elevation-lg: 0 20px 64px var(--shadow-color-lg);

  /* Aura — soft inner glow (neutral default; tinted per-theme below) */
  --aura-extremity: #a3a3a3;
  --aura-inner: inset 0 0 16px 0 var(--aura-extremity);

  /* Background blur */
  --blur-subtle: 24px;
  --blur-strong: 60px;

  /* ==========================================================================
     2. SEMANTIC TOKENS  (light theme — the only mode in the master file)
     ====================================================================== */

  /* ---- Text -------------------------------------------------------------- */
  --text-primary:          var(--color-neutral-1000);
  --text-secondary:        var(--color-neutral-900);
  --text-tertiary:         var(--color-neutral-500);
  --text-placeholder:      var(--color-neutral-400);
  --text-disabled:         var(--color-neutral-400);
  --text-on-emphasis:      var(--color-neutral-0);
  --text-button-primary:   var(--color-neutral-0);
  --text-button-secondary: var(--color-neutral-1000);

  /* ---- Surface ----------------------------------------------------------- */
  --surface-base:        var(--color-neutral-0);
  --surface-alt:         var(--color-neutral-100);
  --surface-strong:      var(--color-neutral-300);
  --surface-black:       var(--color-neutral-1000);
  --surface-overlay:     rgba(0, 0, 0, 0.40);
  --surface-translucent: rgba(0, 0, 0, 0.08);

  /* ---- Border ------------------------------------------------------------ */
  --border-subtle:   var(--color-neutral-100);
  --border-default:  var(--color-neutral-200);
  --border-strong:   var(--color-neutral-300);
  --border-emphasis: var(--color-neutral-900);

  /* ---- Icon -------------------------------------------------------------- */
  --icon-primary:        var(--color-neutral-1000);
  --icon-secondary:      #949494;
  --icon-on-emphasis:    var(--color-neutral-0);

  /* ---- Buttons ----------------------------------------------------------- */
  --button-primary-bg:           var(--color-neutral-1000);
  --button-primary-bg-pressed:   var(--color-neutral-800);
  --button-primary-fg:           var(--color-neutral-0);
  --button-secondary-bg:         var(--color-neutral-0);
  --button-secondary-bg-pressed: var(--color-neutral-50);
  --button-secondary-fg:         var(--color-neutral-1000);
  --button-secondary-border:     var(--color-neutral-200);
  --button-ghost-bg-hover:       var(--surface-translucent);

  /* ---- Status (semantic aliases) ----------------------------------------- */
  --status-success: var(--color-success-500);
  --status-success-surface: var(--color-success-200);
  --status-warning: var(--color-warning-400);
  --status-danger:  var(--color-danger-500);
  --status-danger-border: var(--color-danger-400);
  --status-danger-surface: var(--color-danger-50);

  /* ---- Focus ring -------------------------------------------------------- */
  --focus-ring: 0 0 0 3px var(--surface-translucent);
}

/* ============================================================================
   3. ACCENT THEMES — the per-Agent "Aura" identity.
   Apply to any element (or <html>): <html data-theme="kai">.
   Components reference --accent-* only, so switching the theme re-skins
   every accent surface, border, text and aura glow in one move.
   Default (no attribute) = Ari (earthen green).
   ========================================================================== */

:root,
[data-theme="ari"] {
  --accent-50:  var(--color-ari-50);  --accent-100: var(--color-ari-100);
  --accent-200: var(--color-ari-200); --accent-300: var(--color-ari-300);
  --accent-400: var(--color-ari-400); --accent-500: var(--color-ari-500);
  --accent-600: var(--color-ari-600); --accent-700: var(--color-ari-700);
  --accent-800: var(--color-ari-800); --accent-900: var(--color-ari-900);
  --accent-1000:var(--color-ari-1000);--accent-1100:var(--color-ari-1100);
  --accent-1200:var(--color-ari-1200);
}
[data-theme="ren"] {
  --accent-50:  var(--color-ren-50);  --accent-100: var(--color-ren-100);
  --accent-200: var(--color-ren-200); --accent-300: var(--color-ren-300);
  --accent-400: var(--color-ren-400); --accent-500: var(--color-ren-500);
  --accent-600: var(--color-ren-600); --accent-700: var(--color-ren-700);
  --accent-800: var(--color-ren-800); --accent-900: var(--color-ren-900);
  --accent-1000:var(--color-ren-1000);--accent-1100:var(--color-ren-1100);
  --accent-1200:var(--color-ren-1200);
}
[data-theme="cai"] {
  --accent-50:  var(--color-cai-50);  --accent-100: var(--color-cai-100);
  --accent-200: var(--color-cai-200); --accent-300: var(--color-cai-300);
  --accent-400: var(--color-cai-400); --accent-500: var(--color-cai-500);
  --accent-600: var(--color-cai-600); --accent-700: var(--color-cai-700);
  --accent-800: var(--color-cai-800); --accent-900: var(--color-cai-900);
  --accent-1000:var(--color-cai-1000);--accent-1100:var(--color-cai-1100);
  --accent-1200:var(--color-cai-1200);
}
[data-theme="sol"] {
  --accent-50:  var(--color-sol-50);  --accent-100: var(--color-sol-100);
  --accent-200: var(--color-sol-200); --accent-300: var(--color-sol-300);
  --accent-400: var(--color-sol-400); --accent-500: var(--color-sol-500);
  --accent-600: var(--color-sol-600); --accent-700: var(--color-sol-700);
  --accent-800: var(--color-sol-800); --accent-900: var(--color-sol-900);
  --accent-1000:var(--color-sol-1000);--accent-1100:var(--color-sol-1100);
  --accent-1200:var(--color-sol-1200);
}
[data-theme="lux"] {
  --accent-50:  var(--color-lux-50);  --accent-100: var(--color-lux-100);
  --accent-200: var(--color-lux-200); --accent-300: var(--color-lux-300);
  --accent-400: var(--color-lux-400); --accent-500: var(--color-lux-500);
  --accent-600: var(--color-lux-600); --accent-700: var(--color-lux-700);
  --accent-800: var(--color-lux-800); --accent-900: var(--color-lux-900);
  --accent-1000:var(--color-lux-1000);--accent-1100:var(--color-lux-1100);
  --accent-1200:var(--color-lux-1200);
}
[data-theme="mio"] {
  --accent-50:  var(--color-mio-50);  --accent-100: var(--color-mio-100);
  --accent-200: var(--color-mio-200); --accent-300: var(--color-mio-300);
  --accent-400: var(--color-mio-400); --accent-500: var(--color-mio-500);
  --accent-600: var(--color-mio-600); --accent-700: var(--color-mio-700);
  --accent-800: var(--color-mio-800); --accent-900: var(--color-mio-900);
  --accent-1000:var(--color-mio-1000);--accent-1100:var(--color-mio-1100);
  --accent-1200:var(--color-mio-1200);
}
[data-theme="ryn"] {
  --accent-50:  var(--color-ryn-50);  --accent-100: var(--color-ryn-100);
  --accent-200: var(--color-ryn-200); --accent-300: var(--color-ryn-300);
  --accent-400: var(--color-ryn-400); --accent-500: var(--color-ryn-500);
  --accent-600: var(--color-ryn-600); --accent-700: var(--color-ryn-700);
  --accent-800: var(--color-ryn-800); --accent-900: var(--color-ryn-900);
  --accent-1000:var(--color-ryn-1000);--accent-1100:var(--color-ryn-1100);
  --accent-1200:var(--color-ryn-1200);
}
[data-theme="ash"] {
  --accent-50:  var(--color-ash-50);  --accent-100: var(--color-ash-100);
  --accent-200: var(--color-ash-200); --accent-300: var(--color-ash-300);
  --accent-400: var(--color-ash-400); --accent-500: var(--color-ash-500);
  --accent-600: var(--color-ash-600); --accent-700: var(--color-ash-700);
  --accent-800: var(--color-ash-800); --accent-900: var(--color-ash-900);
  --accent-1000:var(--color-ash-1000);--accent-1100:var(--color-ash-1100);
  --accent-1200:var(--color-ash-1200);
}
[data-theme="sage"] {
  --accent-50:  var(--color-sage-50);  --accent-100: var(--color-sage-100);
  --accent-200: var(--color-sage-200); --accent-300: var(--color-sage-300);
  --accent-400: var(--color-sage-400); --accent-500: var(--color-sage-500);
  --accent-600: var(--color-sage-600); --accent-700: var(--color-sage-700);
  --accent-800: var(--color-sage-800); --accent-900: var(--color-sage-900);
  --accent-1000:var(--color-sage-1000);--accent-1100:var(--color-sage-1100);
  --accent-1200:var(--color-sage-1200);
}
[data-theme="eden"] {
  --accent-50:  var(--color-eden-50);  --accent-100: var(--color-eden-100);
  --accent-200: var(--color-eden-200); --accent-300: var(--color-eden-300);
  --accent-400: var(--color-eden-400); --accent-500: var(--color-eden-500);
  --accent-600: var(--color-eden-600); --accent-700: var(--color-eden-700);
  --accent-800: var(--color-eden-800); --accent-900: var(--color-eden-900);
  --accent-1000:var(--color-eden-1000);--accent-1100:var(--color-eden-1100);
  --accent-1200:var(--color-eden-1200);
}
[data-theme="kai"] {
  --accent-50:  var(--color-kai-50);  --accent-100: var(--color-kai-100);
  --accent-200: var(--color-kai-200); --accent-300: var(--color-kai-300);
  --accent-400: var(--color-kai-400); --accent-500: var(--color-kai-500);
  --accent-600: var(--color-kai-600); --accent-700: var(--color-kai-700);
  --accent-800: var(--color-kai-800); --accent-900: var(--color-kai-900);
  --accent-1000:var(--color-kai-1000);--accent-1100:var(--color-kai-1100);
  --accent-1200:var(--color-kai-1200);
}
[data-theme="vale"] {
  --accent-50:  var(--color-vale-50);  --accent-100: var(--color-vale-100);
  --accent-200: var(--color-vale-200); --accent-300: var(--color-vale-300);
  --accent-400: var(--color-vale-400); --accent-500: var(--color-vale-500);
  --accent-600: var(--color-vale-600); --accent-700: var(--color-vale-700);
  --accent-800: var(--color-vale-800); --accent-900: var(--color-vale-900);
  --accent-1000:var(--color-vale-1000);--accent-1100:var(--color-vale-1100);
  --accent-1200:var(--color-vale-1200);
}
[data-theme="rei"] {
  --accent-50:  var(--color-rei-50);  --accent-100: var(--color-rei-100);
  --accent-200: var(--color-rei-200); --accent-300: var(--color-rei-300);
  --accent-400: var(--color-rei-400); --accent-500: var(--color-rei-500);
  --accent-600: var(--color-rei-600); --accent-700: var(--color-rei-700);
  --accent-800: var(--color-rei-800); --accent-900: var(--color-rei-900);
  --accent-1000:var(--color-rei-1000);--accent-1100:var(--color-rei-1100);
  --accent-1200:var(--color-rei-1200);
}
[data-theme="nova"] {
  --accent-50:  var(--color-nova-50);  --accent-100: var(--color-nova-100);
  --accent-200: var(--color-nova-200); --accent-300: var(--color-nova-300);
  --accent-400: var(--color-nova-400); --accent-500: var(--color-nova-500);
  --accent-600: var(--color-nova-600); --accent-700: var(--color-nova-700);
  --accent-800: var(--color-nova-800); --accent-900: var(--color-nova-900);
  --accent-1000:var(--color-nova-1000);--accent-1100:var(--color-nova-1100);
  --accent-1200:var(--color-nova-1200);
}
[data-theme="ezra"] {
  --accent-50:  var(--color-ezra-50);  --accent-100: var(--color-ezra-100);
  --accent-200: var(--color-ezra-200); --accent-300: var(--color-ezra-300);
  --accent-400: var(--color-ezra-400); --accent-500: var(--color-ezra-500);
  --accent-600: var(--color-ezra-600); --accent-700: var(--color-ezra-700);
  --accent-800: var(--color-ezra-800); --accent-900: var(--color-ezra-900);
  --accent-1000:var(--color-ezra-1000);--accent-1100:var(--color-ezra-1100);
  --accent-1200:var(--color-ezra-1200);
}

/* ---- Accent role aliases (resolve from the active ramp above) -----------
   Declared on every [data-theme] carrier, not just :root: custom properties
   substitute var() where they are DECLARED and descendants inherit the
   resolved value — a :root-only alias would freeze the global theme's accent
   and ignore any data-theme scoped to a subtree (e.g. a single avatar). */
:root, [data-theme] {
  --accent-surface-subtle: var(--accent-100);
  --accent-surface:        var(--accent-300);
  --accent-solid:          var(--accent-600);
  --accent-border:         var(--accent-400);
  --accent-text:           var(--accent-1000);
  --accent-contrast:       var(--accent-1200);
  /* Aura glow = the agent's signature halo */
  --accent-aura-core:      var(--accent-300);
  --accent-aura-edge:      var(--accent-500);
  --accent-aura: 0 0 0 6px var(--accent-100), 0 0 24px 4px var(--accent-300);
}
