:root {
    /* ── Z-INDEX LAYERS ── */
    --z-base: 1;
    --z-node: 10;
    --z-fab: 20;
    --z-panel: 50;
    --z-guide: 100;
    --z-tooltip: 150;
    --z-topbar: 200;
    --z-appearance: 500;
    --z-walkthrough: 9000;
    --z-overlay: 8000;       /* heavy overlays: coaching chat, pricing panels */
    --z-sheet: 9001;         /* mobile bottom sheets */
    --z-modal-below: 9998;   /* backdrops and dropdowns sitting just under a modal */
    --z-modal: 9999;         /* standard modal / toast layer */
    --z-modal-top: 10000;    /* top-level auth / intake modals */
    --z-cmd-palette: 10001;  /* command palette, must sit above all modals */
    --z-loader: 99999;
    --z-skip-link: 999999;   /* accessibility skip-to-content links */

    /* ── BASE PALETTE (7 colors × 2 = 14 theme-able values) ── */
    --primary: #0D5C6B;        /* Darker Midnight Green */
    --primary-mid: #2B7A8A;
    --primary-tint-bg: #D0E0E5;
    --primary-tint-bgest: #E8F0F2;
    --rose: #A8516E;            /* China Rose */
    --rose-mid: #BF7A90;
    --rose-light: #F0D8E0;
    --rose-tint: color-mix(in srgb, var(--rose) 12%, transparent);
    --violet: #4A2565;          /* Violet JTC */
    --violet-light: #F0E6F5;
    --gamboge: #9A6C08;         /* Gamboge */
    --gamboge-light: #FDF3E0;
    --green: #4A7A2E;           /* Asparagus */
    --green-light: #E4EED8;
    --ultraviolet: #5F4B8B;     /* Ultra Violet */
    --ultraviolet-light: #EDE8F5;
    --neutral: #5A6070;         /* Neutral gray */
    --neutral-light: #ECEEF2;

    /* ── SURFACES & NEUTRALS ── */
    --charcoal: #1E2030;
    --slate: #3D4355;
    --body-text: var(--charcoal);
    --cream: #ECEEF2;
    --warm-white: #F5F6F8;
    --bg-surface: #FFFFFF;
    --bg-overlay: rgba(0, 0, 0, 0.5);
    --bg-panel: #ECEEF2;
    --bg-elevated: #FFFFFF;
    --topbar-bg: #F8F9FB;
    --index-card-bg: #FFFEF5;
    --index-card-rule: rgba(100, 140, 200, 0.30);
    --index-card-top-line: rgba(200, 60, 60, 0.45);

    /* ── BORDERS ── */
    --border-light: #D8DCE2;
    --border-lighter: #ECEEF2;
    --border-medium: #B8BCC8;
    --hex-placeholder-stroke: rgba(15, 23, 42, 0.28);

    /* ── SHADOWS ── */
    --shadow-xs: rgba(0, 0, 0, 0.04);
    --shadow-sm: rgba(0, 0, 0, 0.06);
    --shadow-md: rgba(0, 0, 0, 0.08);
    --shadow-lg: rgba(0, 0, 0, 0.15);
    --shadow-xl: rgba(0, 0, 0, 0.25);
    --shadow-primary: rgba(13, 92, 107, 0.15);
    --primary-tint-xs: rgba(13, 92, 107, 0.03);
    --primary-tint-sm: rgba(13, 92, 107, 0.05);
    --primary-tint-md: rgba(13, 92, 107, 0.08);
    --primary-tint-lg: rgba(13, 92, 107, 0.15);
    --primary-tint-xl: rgba(13, 92, 107, 0.25);

    /* ── STATUS COLORS ── */
    --color-danger: #DC2626;
    --color-danger-light: #FDE8E8;
    --color-danger-text: #9B1C1C;
    --color-danger-shadow: rgba(220, 38, 38, 0.3);
    --color-warning: #B45309;
    --color-warning-light: #FDF3E0;
    --color-warning-text: #9A6C08;
    --color-warning-border: #F59E0B;
    --color-success: #2E7D52;
    --color-success-light: #E4EED8;
    --color-success-text: #2E7D32;
    --color-success-border: #A5D6A7;
    --white-overlay: rgba(255, 255, 255, 0.08);

    /* ── BADGE COLORS (member/pro) ── */
    --badge-member-bg: #E8F0F2;
    --badge-member-text: #0D5C6B;
    --badge-pro-bg: #F0E6FF;
    --badge-pro-text: #7C3AED;
    --badge-free-bg: #F1F2F4;
    --badge-free-text: #4A5568;

    /* Text color for use on solid brand-color backgrounds */
    --on-brand: #FFFFFF;
    --on-brand-muted: rgba(255, 255, 255, 0.7);

    /* ── NODE ROLES (aliases into base palette) ── */
    --anchor-color: var(--primary);
    --anchor-tint-bg: var(--primary-tint-bg);
    --pillar-color: var(--green);
    --pillar-light: var(--green-light);
    --subpoint-color: var(--gamboge);
    --subpoint-light: var(--gamboge-light);
    --subpoint-0-color: var(--gamboge);
    --subpoint-0-light: var(--gamboge-light);
    --subpoint-1-color: var(--rose);
    --subpoint-1-light: var(--rose-light);
    --subpoint-2-color: var(--violet);
    --subpoint-2-light: var(--violet-light);
    --garden-color: var(--neutral);
    --garden-light: var(--neutral-light);
    --support-color: var(--slate);
    --support-light: #F0F1F4;
    --subheader-color: var(--slate);
    --talking-points-color: var(--violet);
    --story-color: var(--green);
    --story-light: var(--green-light);
    --data-color: var(--ultraviolet);
    --data-light: var(--ultraviolet-light);
    --counterpoint-color: var(--rose);
    --counterpoint-light: var(--rose-light);
    --transitions-color: var(--gamboge);
    --transitions-light: var(--gamboge-light);
    --steps-color: var(--primary);
    --steps-tint-bg: var(--primary-tint-bg);

    /* ── NARC ARC STEPS (aliases into base palette) ── */
    --narc-context: var(--primary);
    --narc-context-tint-bg: var(--primary-tint-bg);
    --narc-pattern: var(--green);
    --narc-pattern-light: var(--green-light);
    --narc-change: var(--gamboge);
    --narc-change-light: var(--gamboge-light);
    --narc-resolution: var(--rose);
    --narc-resolution-light: var(--rose-light);
    --narc-difference: var(--violet);
    --narc-difference-light: var(--violet-light);

    /* ── LIFE SATISFACTION EXTENDED DOMAIN COLORS (LS07-LS12) ── */
    /* LS01-LS06 alias to --primary/--green/--gamboge/--rose/--violet/--ultraviolet */
    --ls-color-07: #2E7D6A;   /* Home - teal-green */
    --ls-color-08: #7A5230;   /* Learning - warm brown */
    --ls-color-09: #3A6B9F;   /* Meaning - blue */
    --ls-color-10: #5A8A3E;   /* Nature - sage */
    --ls-color-11: #B85C3A;   /* Physical - rust */
    --ls-color-12: #6B3A6B;   /* Purpose - plum */

    /* ── UNTANGLING EXTENDED DOMAIN COLORS (UY07-UY12) ── */
    --uy-color-07: #8B5E3C;   /* Certainty - brown */
    --uy-color-08: #4A6FA5;   /* Overthinking - steel blue */
    --uy-color-09: #7B6B8A;   /* People Pleasing - dusty purple */
    --uy-color-10: #2B6E5A;   /* Perfectionism - forest */
    --uy-color-11: #9A5B4C;   /* Self-Doubt - terra cotta */
    --uy-color-12: #5C5C8A;   /* Shame - slate blue */

    /* ── THREADS OF AGENCY EXTENDED DOMAIN COLORS (TA07-TA12) ── */
    --ta-color-07: #6A7B3A;   /* Habits - olive */
    --ta-color-08: #3A7D9A;   /* Momentum - ocean */
    --ta-color-09: #8A5B6E;   /* Mindset - mauve */
    --ta-color-10: #5A6E8A;   /* Mood - grey-blue */
    --ta-color-11: #7A5A2E;   /* Skillsets - amber */
    --ta-color-12: #4A8A6A;   /* Tension - jade */

    /* ── SOFT SKILLS EXTENDED DOMAIN COLORS (SS07-SS12) ── */
    --ss-color-07: #6B5B8A;   /* Reliability - purple-grey */
    --ss-color-08: #8A6B3A;   /* Time Mgmt - golden brown */
    --ss-color-09: #3A8A5A;   /* Growth - emerald */
    --ss-color-10: #5A3A7A;   /* Leadership - deep violet */
    --ss-color-11: #8A3A5A;   /* Conflict - cranberry */
    --ss-color-12: #3A6A8A;   /* Small Wins - cerulean */

    /* ── COMMUNICATION PATTERNS EXTENDED DOMAIN COLORS (CP07-CP12) ── */
    --cp-color-07: #5A7A3A;   /* Over-Structuring - moss */
    --cp-color-08: #8A4A3A;   /* Flooding - terra cotta */
    --cp-color-09: #3A5A8A;   /* Rehearsed - slate blue */
    --cp-color-10: #7A5A8A;   /* Pivoting Away - dusty plum */
    --cp-color-11: #6A8A5A;   /* Consensus Seeking - sage */
    --cp-color-12: #8A5A6A;   /* Defending - muted rose */

    /* ── COGNITIVE DISTORTIONS EXTENDED DOMAIN COLORS (CD07-CD12) ── */
    --cd-color-07: #7A5A2E;   /* Emotional Reasoning - amber */
    --cd-color-08: #3A6A7A;   /* Should Statements - deep teal */
    --cd-color-09: #7A3A5A;   /* Labeling - wine */
    --cd-color-10: #5A7A7A;   /* Personalizing - dusty teal */
    --cd-color-11: #8A7A3A;   /* Blaming - ochre */
    --cd-color-12: #4A5A8A;   /* Fairness Fallacy - indigo */

    /* ── COGNITIVE BIASES EXTENDED DOMAIN COLORS (CB07-CB12) ── */
    --cb-color-07: #5C4A8A;   /* Authority - indigo-violet */
    --cb-color-08: #8A6A2E;   /* Bandwagon - bronze */
    --cb-color-09: #3A7A5A;   /* Status Quo - forest */
    --cb-color-10: #8A4A5A;   /* Attribution - mulberry */
    --cb-color-11: #7A3A3A;   /* Overconfidence - brick */
    --cb-color-12: #3A5A7A;   /* Recency - navy */

    /* ── AUDIENCE ATTUNEMENT EXTENDED DOMAIN COLORS (AA07-AA12) ── */
    --aa-color-07: #3A7A6A;   /* Tone Adapting - teal green */
    --aa-color-08: #6A5A3A;   /* Pacing - warm bronze */
    --aa-color-09: #8A3A4A;   /* Spotting Resistance - garnet */
    --aa-color-10: #4A8A7A;   /* Inviting In - sea green */
    --aa-color-11: #5A4A8A;   /* Honoring Difference - iris */
    --aa-color-12: #8A6A3A;   /* Pivoting Live - burnt amber */

    /* ── PRESENCE AND DELIVERY EXTENDED DOMAIN COLORS (PD07-PD12) ── */
    --pd-color-07: #4A6A8A;   /* Posture - steel blue */
    --pd-color-08: #7A4A6A;   /* Gesture - mulberry */
    --pd-color-09: #6A8A4A;   /* Owning the Room - olive */
    --pd-color-10: #8A4A8A;   /* Candor - magenta */
    --pd-color-11: #2E6A6A;   /* Composure - deep teal */
    --pd-color-12: #8A5A2E;   /* Energy Modulation - copper */

    /* ── STORYTELLING EXTENDED DOMAIN COLORS (ST07-ST12) ── */
    --st-color-07: #5A8A4A;   /* Pacing - sage olive */
    --st-color-08: #8A4A4A;   /* Tension - clay */
    --st-color-09: #4A8A8A;   /* The Turn - deep teal */
    --st-color-10: #7A4A8A;   /* Emotional Truth - deep mauve */
    --st-color-11: #8A7A4A;   /* Resonance - gold ochre */
    --st-color-12: #4A4A7A;   /* Economy - slate indigo */

    /* ── EMOTIONAL INTELLIGENCE EXTENDED DOMAIN COLORS (EI07-EI12) ── */
    --ei-color-07: #6A4A7A;   /* Contagion - plum */
    --ei-color-08: #3A7A7A;   /* Holding Space - deep teal */
    --ei-color-09: #8A4A3A;   /* Courage - terracotta */
    --ei-color-10: #4A7A4A;   /* Values Signal - forest */
    --ei-color-11: #7A5A8A;   /* Repair - orchid */
    --ei-color-12: #3A5A6A;   /* Integration - slate blue */

    /* ── VALUES CLARITY EXTENDED DOMAIN COLORS ── */
    --vc-color-07: #5A7A4A;   /* Differentiation - olive */
    --vc-color-08: #8A5A3A;   /* Under Pressure - amber */
    --vc-color-09: #4A5A8A;   /* Shadow Values - slate */
    --vc-color-10: #6A4A8A;   /* Purpose - plum */
    --vc-color-11: #8A4A6A;   /* Alignment - mauve */
    --vc-color-12: #3A6A5A;   /* Consistency - teal */

    /* ── META-COGNITION EXTENDED DOMAIN COLORS ── */
    --mc-color-07: #3A7A8A;   /* Calibration - deep ocean */
    --mc-color-08: #7A5A8A;   /* Blind Spots - plum */
    --mc-color-09: #8A4A4A;   /* Triggered - terracotta */
    --mc-color-10: #4A8A5A;   /* Updating - forest */
    --mc-color-11: #6A6A3A;   /* Transparency - olive */
    --mc-color-12: #3A5A8A;   /* Interruption - steel blue */

    /* ── WRITTEN COMMUNICATION EXTENDED DOMAIN COLORS ── */
    --wc-color-07: #5A7A4A;   /* Voice - sage green */
    --wc-color-08: #7A5A3A;   /* Tone - warm brown */
    --wc-color-09: #4A5A8A;   /* Permanence - slate */
    --wc-color-10: #8A6A4A;   /* Edit to Cut - caramel */
    --wc-color-11: #3A7A6A;   /* Async Docs - teal */
    --wc-color-12: #6A4A8A;   /* Documentation - violet */

    /* ── VIRTUAL DELIVERY EXTENDED DOMAIN COLORS ── */
    --vr-color-07: #3A5A9A;   /* Screen Share - blue */
    --vr-color-08: #7A4A8A;   /* Virtual Room - purple */
    --vr-color-09: #4A8A7A;   /* Virtual Q&A - teal */
    --vr-color-10: #8A7A3A;   /* Hybrid - gold */
    --vr-color-11: #6A3A4A;   /* Recorded - burgundy */
    --vr-color-12: #3A8A8A;   /* Tech Recovery - cyan */

    /* ── Q&A PERFORMANCE EXTENDED DOMAIN COLORS ── */
    --qa-color-07: #6A7A3A;   /* Think Aloud - olive */
    --qa-color-08: #3A6A8A;   /* Own Gap - steel blue */
    --qa-color-09: #8A6A5A;   /* Gift - warm brown */
    --qa-color-10: #3A4A8A;   /* Discipline - navy */
    --qa-color-11: #8A5A7A;   /* Multi-part - mauve */
    --qa-color-12: #4A8A6A;   /* Recovery - jade */

    /* ── INFLUENCE AND TRUST EXTENDED DOMAIN COLORS ── */
    --it-color-07: #5A4A9A;   /* Power - deep indigo */
    --it-color-08: #8A5A3A;   /* Channel - warm brown */
    --it-color-09: #3A8A5A;   /* Long Game - emerald */
    --it-color-10: #7A3A8A;   /* Skeptics - violet */
    --it-color-11: #4A8A8A;   /* Consistency - teal */
    --it-color-12: #8A4A4A;   /* Repair - deep rose */

    /* ── MESSAGE QUALITY EXTENDED DOMAIN COLORS ── */
    --mq-color-07: #7A6A3A;   /* Resonance - amber */
    --mq-color-08: #4A6A9A;   /* Compression - slate blue */
    --mq-color-09: #6A3A7A;   /* Balance - purple */
    --mq-color-10: #3A7A4A;   /* CTA - green */
    --mq-color-11: #9A4A3A;   /* Scalability - terracotta */
    --mq-color-12: #4A7A7A;   /* Positioning - teal */

    /* ── NARRATIVE LITERACY EXTENDED DOMAIN COLORS ── */
    --nl-color-07: #5A8A6A;   /* Resonance - sage */
    --nl-color-08: #8A6A3A;   /* Abstraction - warm brown */
    --nl-color-09: #6A3A8A;   /* Competing - violet */
    --nl-color-10: #8A3A3A;   /* Traps - deep rose */
    --nl-color-11: #3A6A9A;   /* Frame - steel blue */
    --nl-color-12: #5A7A3A;   /* Genre - olive green */

    /* ── ASSUMPTION TESTING EXTENDED DOMAIN COLORS ── */
    --at-color-07: #9A6A2A;   /* Defaults - amber brown */
    --at-color-08: #7A4A4A;   /* Data vs. Story - deep rose */
    --at-color-09: #4A7A5A;   /* Constraints - forest */
    --at-color-10: #5A5A9A;   /* Pre-mortem - indigo */
    --at-color-11: #8A3A5A;   /* Depth - burgundy */
    --at-color-12: #3A7A7A;   /* Inventory - teal */

    /* ── REASONING CLARITY EXTENDED DOMAIN COLORS ── */
    --rc-color-07: #4A6FA5;   /* Causation - blue */
    --rc-color-08: #5A5A9A;   /* Analogy - indigo */
    --rc-color-09: #3A8A7A;   /* Conclusion - teal */
    --rc-color-10: #7A6A3A;   /* Burden - amber brown */
    --rc-color-11: #6A4A8A;   /* Definitions - purple */
    --rc-color-12: #3A6A8A;   /* Structure - steel */

    /* ── UNTANGLING SPECTRUM STAGE COLORS ── */
    --spectrum-tangled: #d32f2f;
    --spectrum-hopeful: #f57c00;
    --spectrum-untangling: #fbc02d;
    --spectrum-untangling-text: #7a5600;
    --spectrum-agency: #b36278;
    --spectrum-balance: #a4789c;
    --spectrum-skillsets: #1B7F92;
    --spectrum-leveling: #2c5282;

    /* ── CANVAS ── */
    --canvas-bg: #F9F7F5;
    --canvas-dot: #D5DAE0;

    /* ── LOGO ── */
    --logo-back: #815B78;
    --logo-front: #B36378;
    --logo-bg: var(--bg-surface);
}

body.dark-mode {
    /* ── BASE PALETTE (dark variants) ── */
    --primary: #6AAAB8;
    --primary-mid: #2B7A8A;
    --primary-tint-bg: #0D3840;
    --primary-tint-bgest: #082428;
    --rose: #D08898;
    --rose-mid: #A8516E;
    --rose-light: #3A1828;
    --violet: #A878C0;
    --violet-light: #201040;
    --gamboge: #E8B860;
    --gamboge-light: #3A2800;
    --green: #90C870;
    --green-light: #1A3A10;
    --ultraviolet: #B0A0D0;
    --ultraviolet-light: #201848;
    --neutral: #9098A8;
    --neutral-light: #1E2030;

    /* ── SURFACES & NEUTRALS ── */
    --charcoal: #E8EAF0;
    --slate: #94A0B8;
    /* Body copy reads as a soft light gray. Headings keep --charcoal so
       they still feel a touch brighter than paragraph copy, and inline
       <strong>/<b> jumps to pure white below — a clear three-tier hierarchy
       inside any block of dark-mode prose: heading > bold > body. */
    --body-text: #C8CED9;
    --cream: #18181B;
    --warm-white: #0F0F12;
    --bg-surface: #1A1A1F;
    --bg-overlay: rgba(0, 0, 0, 0.7);
    --bg-panel: #22232B;
    --bg-elevated: #2A2B34;
    --topbar-bg: #25262F;
    --index-card-bg: #2A2B34;
    --index-card-rule: rgba(130, 160, 200, 0.18);
    --index-card-top-line: rgba(190, 65, 65, 0.35);

    /* ── BORDERS ── */
    --border-light: #2D2D35;
    --border-lighter: #232329;
    --border-medium: #3F3F4A;
    --hex-placeholder-stroke: rgba(232, 234, 240, 0.22);

    /* ── SHADOWS ── */
    --shadow-xs: rgba(0, 0, 0, 0.15);
    --shadow-sm: rgba(0, 0, 0, 0.2);
    --shadow-md: rgba(0, 0, 0, 0.25);
    --shadow-lg: rgba(0, 0, 0, 0.35);
    --shadow-xl: rgba(0, 0, 0, 0.5);
    --shadow-primary: rgba(106, 170, 184, 0.2);
    --primary-tint-xs: rgba(106, 170, 184, 0.04);
    --primary-tint-sm: rgba(106, 170, 184, 0.08);
    --primary-tint-md: rgba(106, 170, 184, 0.12);
    --primary-tint-lg: rgba(106, 170, 184, 0.18);
    --primary-tint-xl: rgba(106, 170, 184, 0.25);

    /* ── STATUS COLORS ── */
    --color-danger: #EF4444;
    --color-danger-light: #450A0A;
    --color-danger-text: #FCA5A5;
    --color-danger-shadow: rgba(239, 68, 68, 0.3);
    --color-warning: #F59E0B;
    --color-warning-light: #422006;
    --color-warning-text: #FDE68A;
    --color-warning-border: #B45309;
    --color-success: #81C784;
    --color-success-light: #1A3A10;
    --color-success-text: #81C784;
    --color-success-border: #2E7D32;
    --white-overlay: rgba(255, 255, 255, 0.06);

    /* ── BADGE COLORS (member/pro) ── */
    --badge-member-bg: rgba(106, 170, 184, 0.12);
    --badge-member-text: #6AAAB8;
    --badge-pro-bg: rgba(124, 58, 237, 0.15);
    --badge-pro-text: #C4B5FD;
    --badge-free-bg: rgba(255, 255, 255, 0.06);
    --badge-free-text: #94A3B8;

    /* Text color for use on solid brand-color backgrounds */
    --on-brand: #1E2030;
    --on-brand-muted: rgba(30, 32, 48, 0.6);

    /* ── LIFE SATISFACTION EXTENDED DOMAIN COLORS (dark variants) ── */
    --ls-color-07: #6AC4B0;
    --ls-color-08: #C49060;
    --ls-color-09: #80AADC;
    --ls-color-10: #96C878;
    --ls-color-11: #E89070;
    --ls-color-12: #C070C0;

    /* ── UNTANGLING EXTENDED DOMAIN COLORS (dark variants) ── */
    --uy-color-07: #CFA070;
    --uy-color-08: #80AAD8;
    --uy-color-09: #B8A0C8;
    --uy-color-10: #70B898;
    --uy-color-11: #D89880;
    --uy-color-12: #9898C8;

    /* ── THREADS OF AGENCY EXTENDED DOMAIN COLORS (dark variants) ── */
    --ta-color-07: #A8B870;
    --ta-color-08: #70B8D0;
    --ta-color-09: #C898A8;
    --ta-color-10: #98AAC8;
    --ta-color-11: #C8A060;
    --ta-color-12: #80C8A8;

    /* ── SOFT SKILLS EXTENDED DOMAIN COLORS (dark variants) ── */
    --ss-color-07: #A898C0;
    --ss-color-08: #C8A870;
    --ss-color-09: #70C898;
    --ss-color-10: #9878B8;
    --ss-color-11: #C87098;
    --ss-color-12: #70A8C8;

    /* ── COMMUNICATION PATTERNS EXTENDED DOMAIN COLORS (dark variants) ── */
    --cp-color-07: #98B870;   /* Over-Structuring */
    --cp-color-08: #C88878;   /* Flooding */
    --cp-color-09: #7098C8;   /* Rehearsed */
    --cp-color-10: #B898C0;   /* Pivoting Away */
    --cp-color-11: #A0C898;   /* Consensus Seeking */
    --cp-color-12: #C898A8;   /* Defending */

    /* ── COGNITIVE DISTORTIONS EXTENDED DOMAIN COLORS (dark variants) ── */
    --cd-color-07: #C8A060;   /* Emotional Reasoning */
    --cd-color-08: #70B8C8;   /* Should Statements */
    --cd-color-09: #C878A0;   /* Labeling */
    --cd-color-10: #88C8C0;   /* Personalizing */
    --cd-color-11: #D8C070;   /* Blaming */
    --cd-color-12: #90A0D8;   /* Fairness Fallacy */

    /* ── COGNITIVE BIASES EXTENDED DOMAIN COLORS (dark variants) ── */
    --cb-color-07: #A898D8;   /* Authority */
    --cb-color-08: #D8B080;   /* Bandwagon */
    --cb-color-09: #78C098;   /* Status Quo */
    --cb-color-10: #D88898;   /* Attribution */
    --cb-color-11: #D89090;   /* Overconfidence */
    --cb-color-12: #80A8D8;   /* Recency */

    /* ── AUDIENCE ATTUNEMENT EXTENDED DOMAIN COLORS (dark variants) ── */
    --aa-color-07: #70C8B0;   /* Tone Adapting */
    --aa-color-08: #C8B080;   /* Pacing */
    --aa-color-09: #E08898;   /* Spotting Resistance */
    --aa-color-10: #80D0B8;   /* Inviting In */
    --aa-color-11: #A898D8;   /* Honoring Difference */
    --aa-color-12: #D8B078;   /* Pivoting Live */

    /* ── PRESENCE AND DELIVERY EXTENDED DOMAIN COLORS (dark variants) ── */
    --pd-color-07: #80B0D8;   /* Posture */
    --pd-color-08: #D088B0;   /* Gesture */
    --pd-color-09: #B0D080;   /* Owning the Room */
    --pd-color-10: #D080D0;   /* Candor */
    --pd-color-11: #70C0C0;   /* Composure */
    --pd-color-12: #D8A070;   /* Energy Modulation */

    /* ── STORYTELLING EXTENDED DOMAIN COLORS (dark variants) ── */
    --st-color-07: #98C088;   /* Pacing */
    --st-color-08: #D08888;   /* Tension */
    --st-color-09: #88C8C8;   /* The Turn */
    --st-color-10: #B888D0;   /* Emotional Truth */
    --st-color-11: #D8C088;   /* Resonance */
    --st-color-12: #8888C8;   /* Economy */

    /* ── EMOTIONAL INTELLIGENCE EXTENDED DOMAIN COLORS (dark variants) ── */
    --ei-color-07: #B098D0;   /* Contagion */
    --ei-color-08: #70C0C0;   /* Holding Space */
    --ei-color-09: #D8907A;   /* Courage */
    --ei-color-10: #90C890;   /* Values Signal */
    --ei-color-11: #C0A0D0;   /* Repair */
    --ei-color-12: #88A8C0;   /* Integration */

    /* ── VALUES CLARITY EXTENDED DOMAIN COLORS (dark variants) ── */
    --vc-color-07: #90C080;   /* Differentiation */
    --vc-color-08: #D09870;   /* Under Pressure */
    --vc-color-09: #8898D0;   /* Shadow Values */
    --vc-color-10: #A888D0;   /* Purpose */
    --vc-color-11: #D080A8;   /* Alignment */
    --vc-color-12: #70B098;   /* Consistency */

    /* ── META-COGNITION EXTENDED DOMAIN COLORS (dark variants) ── */
    --mc-color-07: #70C8D0;   /* Calibration */
    --mc-color-08: #C098D0;   /* Blind Spots */
    --mc-color-09: #D08080;   /* Triggered */
    --mc-color-10: #80C090;   /* Updating */
    --mc-color-11: #B0B060;   /* Transparency */
    --mc-color-12: #70A0C8;   /* Interruption */

    /* ── WRITTEN COMMUNICATION EXTENDED DOMAIN COLORS (dark variants) ── */
    --wc-color-07: #90C078;   /* Voice */
    --wc-color-08: #C09060;   /* Tone */
    --wc-color-09: #8898D0;   /* Permanence */
    --wc-color-10: #D0A870;   /* Edit to Cut */
    --wc-color-11: #68B8A8;   /* Async Docs */
    --wc-color-12: #A880D0;   /* Documentation */

    /* ── VIRTUAL DELIVERY EXTENDED DOMAIN COLORS (dark variants) ── */
    --vr-color-07: #7090E0;   /* Screen Share */
    --vr-color-08: #C080D8;   /* Virtual Room */
    --vr-color-09: #70C8B8;   /* Virtual Q&A */
    --vr-color-10: #D0C060;   /* Hybrid */
    --vr-color-11: #B06080;   /* Recorded */
    --vr-color-12: #60C8C8;   /* Tech Recovery */

    /* ── Q&A PERFORMANCE EXTENDED DOMAIN COLORS (dark variants) ── */
    --qa-color-07: #B0C060;   /* Think Aloud */
    --qa-color-08: #70A8D8;   /* Own Gap */
    --qa-color-09: #D0A890;   /* Gift */
    --qa-color-10: #7080D8;   /* Discipline */
    --qa-color-11: #D090B8;   /* Multi-part */
    --qa-color-12: #70C8A0;   /* Recovery */

    /* ── INFLUENCE AND TRUST EXTENDED DOMAIN COLORS (dark variants) ── */
    --it-color-07: #9888E0;   /* Power */
    --it-color-08: #D09070;   /* Channel */
    --it-color-09: #70C890;   /* Long Game */
    --it-color-10: #C070D8;   /* Skeptics */
    --it-color-11: #70C8C8;   /* Consistency */
    --it-color-12: #D08080;   /* Repair */

    /* ── MESSAGE QUALITY EXTENDED DOMAIN COLORS (dark variants) ── */
    --mq-color-07: #C8A860;   /* Resonance */
    --mq-color-08: #80A8D8;   /* Compression */
    --mq-color-09: #A870C8;   /* Balance */
    --mq-color-10: #70C890;   /* CTA */
    --mq-color-11: #D87060;   /* Scalability */
    --mq-color-12: #70B8B8;   /* Positioning */

    /* ── NARRATIVE LITERACY EXTENDED DOMAIN COLORS (dark variants) ── */
    --nl-color-07: #90C8A0;   /* Resonance */
    --nl-color-08: #D0A870;   /* Abstraction */
    --nl-color-09: #A870D0;   /* Competing */
    --nl-color-10: #D07070;   /* Traps */
    --nl-color-11: #70A8D8;   /* Frame */
    --nl-color-12: #98C068;   /* Genre */

    /* ── ASSUMPTION TESTING EXTENDED DOMAIN COLORS (dark variants) ── */
    --at-color-07: #D8A860;   /* Defaults */
    --at-color-08: #C08080;   /* Data vs. Story */
    --at-color-09: #80C090;   /* Constraints */
    --at-color-10: #9898D8;   /* Pre-mortem */
    --at-color-11: #D06090;   /* Depth */
    --at-color-12: #60B8B8;   /* Inventory */

    /* ── REASONING CLARITY EXTENDED DOMAIN COLORS (dark variants) ── */
    --rc-color-07: #80A8E0;   /* Causation */
    --rc-color-08: #9898E0;   /* Analogy */
    --rc-color-09: #70C8B8;   /* Conclusion */
    --rc-color-10: #C8A868;   /* Burden */
    --rc-color-11: #A880D0;   /* Definitions */
    --rc-color-12: #70A8D0;   /* Structure */

    /* ── NODE ROLE ALIASES (re-declared so var() resolves in dark scope) ── */
    --anchor-color: var(--primary);
    --anchor-tint-bg: var(--primary-tint-bg);
    --pillar-color: var(--green);
    --pillar-light: var(--green-light);
    --subpoint-color: var(--gamboge);
    --subpoint-light: var(--gamboge-light);
    --subpoint-0-color: var(--gamboge);
    --subpoint-0-light: var(--gamboge-light);
    --subpoint-1-color: var(--rose);
    --subpoint-1-light: var(--rose-light);
    --subpoint-2-color: var(--violet);
    --subpoint-2-light: var(--violet-light);
    --garden-color: var(--neutral);
    --garden-light: var(--neutral-light);
    --support-color: #8890A8;
    --support-light: #1E2030;
    --subheader-color: var(--slate);
    --talking-points-color: var(--violet);
    --story-color: var(--green);
    --story-light: var(--green-light);
    --data-color: var(--ultraviolet);
    --data-light: var(--ultraviolet-light);
    --counterpoint-color: var(--rose);
    --counterpoint-light: var(--rose-light);
    --transitions-color: var(--gamboge);
    --transitions-light: var(--gamboge-light);
    --steps-color: var(--primary);
    --steps-tint-bg: var(--primary-tint-bg);

    /* ── NARC ARC STEPS ── */
    --narc-context: var(--primary);
    --narc-context-tint-bg: var(--primary-tint-bg);
    --narc-pattern: var(--green);
    --narc-pattern-light: var(--green-light);
    --narc-change: var(--gamboge);
    --narc-change-light: var(--gamboge-light);
    --narc-resolution: var(--rose);
    --narc-resolution-light: var(--rose-light);
    --narc-difference: var(--violet);
    --narc-difference-light: var(--violet-light);

    /* ── UNTANGLING SPECTRUM STAGE COLORS (dark variants) ── */
    --spectrum-tangled: #ef5350;
    --spectrum-hopeful: #ff9800;
    --spectrum-untangling: #fbc02d;
    --spectrum-untangling-text: #5a4000;
    --spectrum-agency: #c68090;
    --spectrum-balance: #b090b0;
    --spectrum-skillsets: #2e9cad;
    --spectrum-leveling: #4a6fa5;

    /* ── CANVAS ── */
    --canvas-bg: #141418;
    --canvas-dot: #2A2A30;

    /* ── LOGO ── */
    --logo-back: #6A4860;
    --logo-front: #D08898;
    --logo-bg: var(--bg-surface);
}

/* In dark mode, inline emphasis inherits the dimmed --body-text, so bold weight
   alone doesn't read. Brighten <strong>/<b> to pure white so it reads as the
   top tier inside any paragraph. :where() keeps the selector at zero specificity
   so any explicit `strong { color: ... }` rule in the codebase (e.g.
   .perspective-hint strong, .import-count strong) still wins. */
body.dark-mode :where(strong, b) {
    color: #FFFFFF;
}

/* ── GLOBAL FOCUS-VISIBLE ── */
:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}
/* Suppress focus ring on mouse clicks for buttons that already have visual feedback */
button:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible) {
    outline: none;
}

/* Prevent white flash on load when OS prefers dark mode */
@media (prefers-color-scheme: dark) {
    .app-loader {
        background: #1A1A1F;
        color: #94A0B8;
    }
}
