/* ==========================================================================
 *  assets/css/tokens.css  —  RAKMHSU rebuild (cloude-design)
 *
 *  GENERATED - do not edit; edit includes/brand-colors.php and re-run
 *  tools/build-color-tokens.php
 *
 *  Every hand edit made here is destroyed by the next build. This file is the
 *  ONE place the whole site reads its colour from: change a value in
 *  includes/brand-colors.php, rebuild, and the entire site re-colours.
 *
 *  LOAD ORDER (do not change):
 *      tokens.css  (this file, FIRST — before theme.css)
 *      theme.css   (vendor/base template layer)
 *      brand.css   (LAST — the override layer, cache-busted ?v=<filemtime>)
 *
 *  THE THREE LAYERS
 *      1. PALETTE   — the raw ramp. The only hex literals in the brand layers.
 *      2. SEMANTIC  — roles. Every value is a live var() pointer, never a copied
 *                     hex, so re-pointing one role moves every consumer at once.
 *      3. RESERVED  — third-party / out-of-brand namespaces. Brand-flip exempt:
 *                     they never derive from the ramp and the ramp never reads them.
 *
 *  CI GATE:  php tools/build-color-tokens.php --check
 *            exits non-zero when this file is stale versus its source.
 *
 *  Contents: 87 palette keys · 35 -rgb companions · 180 semantic roles ·
 *            4 college accent units · 9 Bootstrap bridges · 9 reserved namespaces / 144 entries.
 * ======================================================================= */

/* ==========================================================================
 *  1. PALETTE — the raw ramp. The only hex literals in the brand layers.
 * --------------------------------------------------------------------------
 *  Keys are named by RAMP POSITION, never by usage. Do not consume these
 *  directly from a page: consume a SEMANTIC ROLE from section 3.
 * ======================================================================= */
:root {
    --maroon-25:         #EEEFFB;
    --maroon-50:         #ECEDF9;
    --maroon-100:        #E0E2F6;
    --maroon-200:        #D5D7F3;
    --maroon-300:        #C9CCF1;
    --maroon-400:        #BDC1F0;
    --maroon-450:        #544CB7;
    --maroon:            #36298B;
    --maroon-legacy-600: #860000;
    --maroon-650:        #D23207;
    --maroon-deep:       #2C2275;
    --maroon-750:        #FBECEB;
    --maroon-rich:       #231B60;
    --maroon-black:      #1B144B;
    --maroon-950:        #120E37;
    --maroon-975:        #0A0818;
    --maroon-ink:        #7A1D0C;
    --gold-50:           #FBF4E4;
    --gold-150:          #F0D6A8;
    --gold-200:          #E7C98C;
    --gold-bright:       #D9BC73;
    --gold-350:          #C9B78C;
    --gold-400:          #FFD76A;
    --gold:              #92651F;
    --gold-600:          #6F4C15;
    --gold-700:          #8A6D2A;
    --gold-ink:          #5C4A22;
    --green-50:          #E9F4EE;
    --green-500:         #1F7A4D;
    --green-550:         #198754;
    --green-600:         #155A38;
    --green-ink:         #234A3A;
    --green:             #1F4434;
    --blue-50:           #EAF1F8;
    --blue-100:          #DDE3EC;
    --blue-400:          #2467B9;
    --blue-500:          #0F6C93;
    --blue-700:          #0B4C68;
    --blue-ink:          #234059;
    --cream-25:          #FAF8F5;
    --ivory:             #FAF6EF;
    --cream-50:          #F7F5F0;
    --cream-100:         #F4F1EC;
    --line-soft:         #F1ECE6;
    --cream-200:         #ECE6E1;
    --cream-200-border:  #E7E1DD;
    --cream-250:         #E9E3D9;
    --line:              #E4DCCF;
    --grey-legacy-200:   #E3E3E3;
    --slate-300:         #D1D5DB;
    --line-strong:       #E0D4C4;
    --warm-white-50:     #F7F2EA;
    --warm-white-100:    #F3EDE8;
    --warm-white-200:    #EDE7DD;
    --peach-50:          #F7EADD;
    --peach-100:         #F3E3D6;
    --peach-200:         #E9D9C9;
    --peach-300:         #E6D3C4;
    --peach-400:         #E6CDB9;
    --peach-500:         #D9C6B5;
    --neutral-200:       #CFC8C3;
    --neutral-250:       #B9B1AB;
    --neutral-300:       #A59D97;
    --neutral-disabled:  #A8A29A;
    --neutral-400:       #9A938B;
    --neutral-500:       #857B75;
    --neutral-550:       #7A7269;
    --muted:             #6B6259;
    --neutral-650:       #6A5F52;
    --neutral-700:       #5A514C;
    --neutral-750:       #4A423E;
    --neutral-800:       #3C352F;
    --neutral-850:       #2F2925;
    --neutral-880:       #2A2422;
    --charcoal:          #241F1D;
    --ink:               #1C1517;
    --paper:             #FFFFFF;
    --black:             #000000;
    --black-warm:        #14100F;
    --grey-legacy-300:   #E1E2E3;
    --grey-legacy-900:   #252525;
    --slate-600:         #55606E;
    --slate-650:         #4B5563;
    --slate-975:         #111821;
    --tmrc-slate-500:    #5A6E7C;
    --tmrc-slate-800:    #2C3E50;
    --tmrc-slate-900:    #1A2A3A;
}

/* ==========================================================================
 *  2. -rgb COMPANIONS — for rgba() composites.
 * --------------------------------------------------------------------------
 *  rgba(var(--maroon-rgb), .3) — the inventory found 24 distinct alphas on the
 *  brand maroon and 18 on charcoal. Each triplet is derived from the SAME source
 *  value as its hex, so the two can never desync.
 *  A companion may name a PALETTE key (section 1) or a RESERVED key (section 6).
 *  A reserved triplet is still brand-flip exempt: it is derived from that
 *  namespace's own literal hex and never from the ramp.
 * ======================================================================= */
:root {
    --black-rgb:                     0, 0, 0;
    --black-warm-rgb:                20, 16, 15;
    --blue-500-rgb:                  15, 108, 147;
    --charcoal-rgb:                  36, 31, 29;
    --gold-rgb:                      146, 101, 31;
    --gold-bright-rgb:               217, 188, 115;
    --green-rgb:                     31, 68, 52;
    --green-500-rgb:                 31, 122, 77;
    --ink-rgb:                       28, 21, 23;
    --ivory-rgb:                     250, 246, 239;
    --line-rgb:                      228, 220, 207;
    --line-soft-rgb:                 241, 236, 230;
    --maroon-rgb:                    54, 41, 139;
    --maroon-650-rgb:                210, 50, 7;
    --maroon-950-rgb:                18, 14, 55;
    --maroon-975-rgb:                10, 8, 24;
    --maroon-black-rgb:              27, 20, 75;
    --maroon-deep-rgb:               44, 34, 117;
    --maroon-legacy-600-rgb:         134, 0, 0;
    --maroon-rich-rgb:               35, 27, 96;
    --paper-rgb:                     255, 255, 255;
    --slate-975-rgb:                 17, 24, 33;
    --warm-white-50-rgb:             247, 242, 234;
    --chart-gold-rgb:                185, 150, 12;
    --chart-gold-glow-rgb:           255, 215, 0;
    --chart-glow-pale-rgb:           255, 255, 200;
    --chart-gold-bg-rgb:             253, 251, 240;
    --chart-axis-label-2-rgb:        150, 150, 150;
    --chart-rank-3-rgb:              181, 101, 29;
    --chart-blue-rgb:                26, 74, 138;
    --chart-rank-1-rgb:              201, 168, 0;
    --sdg-widget-maroon-rgb:         122, 0, 38;
    --sdg-widget-cream-rgb:          250, 248, 243;
    --sdg-widget-gold-rgb:           201, 162, 39;
    --tooling-claude-terracotta-rgb: 201, 100, 66;
}

/* ==========================================================================
 *  3. SEMANTIC ROLES — live pointers, never copied hexes.
 * --------------------------------------------------------------------------
 *  Pages and stylesheets consume THESE. A role points at a palette key or at
 *  another role (link -> primary -> maroon); CSS resolves the chain at compute
 *  time, so re-pointing a single role moves every consumer with it.
 * ======================================================================= */
:root {
    --text:                       var(--ink);
    --text-body:                  var(--neutral-750);
    --text-secondary:             var(--neutral-700);
    --text-strong:                var(--neutral-800);
    --text-muted:                 var(--muted);
    --text-subtle:                var(--neutral-500);
    --text-meta:                  var(--neutral-400);
    --text-meta-on-dark:          var(--neutral-400);
    --text-eyebrow:               var(--neutral-550);
    --text-tertiary:              var(--neutral-500);
    --text-placeholder:           var(--neutral-500);
    --text-inverse:               var(--warm-white-200);
    --text-on-dark:               var(--warm-white-200);
    --text-on-dark-strong:        var(--warm-white-100);
    --text-on-dark-bright:        var(--warm-white-50);
    --text-on-dark-label:         var(--neutral-250);
    --text-on-dark-muted:         var(--neutral-300);
    --text-muted-on-dark:         var(--neutral-300);
    --text-on-dark-label-gold:    var(--gold-350);
    --display-figure-on-dark:     var(--gold-150);
    --text-on-primary:            var(--paper);
    --text-on-primary-muted:      var(--peach-300);
    --text-on-primary-label:      var(--peach-400);
    --text-on-primary-quote:      var(--peach-50);
    --text-on-primary-soft:       var(--maroon-rich);
    --text-on-placeholder-dark:   var(--peach-500);
    --legacy-gold-text-on-light:  var(--gold-700);
    --legacy-wysiwyg-text:        var(--black);
    --legacy-wysiwyg-highlight:   var(--paper);
    --text-gold-on-dark:          var(--gold-bright);
    --gold-on-media:              var(--gold-150);
    --nav-link:                   var(--neutral-880);
    --nav-link-active:            var(--maroon);
    --legacy-table-header-fg:     var(--grey-legacy-900);
    --text-plum-legacy:           var(--maroon-650);
    --text-slate-legacy:          var(--slate-650);
    --text-shadow-on-photo:       var(--maroon-975);
    --surface:                    var(--paper);
    --surface-card:               var(--paper);
    --surface-glass:              var(--paper);
    --surface-alt:                var(--cream-50);
    --surface-tint:               var(--ivory);
    --surface-chip:               var(--cream-25);
    --surface-sunken:             var(--cream-100);
    --surface-media:              var(--line-soft);
    --surface-placeholder:        var(--cream-250);
    --surface-placeholder-dark:   var(--maroon-rich);
    --surface-placeholder-legacy: var(--slate-300);
    --surface-dark:               var(--charcoal);
    --surface-raised-dark:        var(--neutral-850);
    --surface-darker:             var(--ink);
    --surface-primary-wash:       var(--maroon-25);
    --surface-primary-tint:       var(--maroon-50);
    --surface-primary-soft:       var(--maroon-100);
    --surface-primary-dark:       var(--maroon-rich);
    --surface-primary-plum:       var(--maroon-650);
    --legacy-table-header-bg:     var(--grey-legacy-300);
    --code-bg:                    var(--neutral-850);
    --border:                     var(--line);
    --border-soft:                var(--line-soft);
    --border-strong:              var(--line-strong);
    --divider:                    var(--line-soft);
    --divider-medium:             var(--cream-200);
    --border-accordion-rest:      var(--cream-200-border);
    --border-primary-soft:        var(--maroon-200);
    --border-primary-strong:      var(--maroon-300);
    --border-cool:                var(--blue-100);
    --border-on-dark:             var(--neutral-800);
    --border-on-dark-soft:        var(--neutral-750);
    --border-on-dark-hover:       var(--neutral-650);
    --border-accent:              var(--gold);
    --border-legacy-grey:         var(--grey-legacy-200);
    --link:                       var(--primary);
    --link-hover:                 var(--primary-hover);
    --link-visited:               var(--maroon-deep);
    --link-on-dark:               var(--peach-100);
    --link-on-media:              var(--gold-400);
    --link-external:              var(--blue-400);
    --link-arrow-legacy:          var(--slate-600);
    --primary:                    var(--maroon);
    --color-primary:              var(--primary);
    --primary-hover:              var(--maroon-deep);
    --primary-pressed:            var(--maroon-deep);
    --primary-soft:               var(--maroon-100);
    --primary-dark:               var(--maroon-rich);
    --primary-deepest:            var(--maroon-black);
    --on-primary:                 var(--paper);
    --secondary:                  var(--green);
    --on-secondary:               var(--paper);
    --legacy-dark-red:            var(--maroon-legacy-600);
    --decor-glyph-primary:        var(--maroon-400);
    --local-newsletter-red:       var(--primary);
    --hover:                      var(--ivory);
    --active:                     var(--primary-pressed);
    --focus-ring:                 var(--maroon);
    --focus-ring-accent:          var(--accent);
    --focus-ring-accent-nursing:  var(--gold-700);
    --focus-ring-on-dark:         var(--gold-bright);
    --disabled:                   var(--neutral-disabled);
    --selection:                  var(--maroon);
    --selection-text:             var(--paper);
    --placeholder:                var(--neutral-500);
    --success:                    var(--green-600);
    --success-bg:                 var(--green-50);
    --success-text:               var(--green-ink);
    --success-border:             var(--green);
    --warning:                    var(--gold-700);
    --warning-bg:                 var(--gold-50);
    --warning-text:               var(--gold-ink);
    --warning-border:             var(--gold-ink);
    --danger:                     var(--maroon-650);
    --danger-bg:                  var(--maroon-750);
    --danger-text:                var(--maroon-ink);
    --danger-border:              var(--maroon-650);
    --info:                       var(--blue-700);
    --info-bg:                    var(--blue-50);
    --info-text:                  var(--blue-ink);
    --info-border:                var(--blue-500);
    --vendor-success-legacy:      var(--green-550);
    --field-border:               var(--neutral-550);
    --field-invalid:              var(--maroon-650);
    --field-valid:                var(--green-500);
    --scrim:                      var(--maroon-rich);
    --scrim-hero-stop-1:          var(--maroon-950);
    --scrim-hero-stop-2:          var(--maroon-black);
    --scrim-hero-stop-3:          var(--maroon-rich);
    --scrim-vertical:             var(--ink);
    --scrim-lightbox:             var(--black-warm);
    --scrim-cool:                 var(--slate-975);
    --backdrop:                   var(--charcoal);
    --shadow:                     var(--charcoal);
    --shadow-neutral:             var(--black);
    --overlay-on-dark:            var(--paper);
    --sheen-highlight:            var(--paper);
    --on-scrim:                   var(--paper);
    --on-media:                   var(--paper);
    --gradient-stop-warm-start:   var(--cream-50);
    --gradient-stop-warm-end:     var(--line-soft);
    --gradient-stop-accent-wash:  var(--gold);
    --header-bar:                 var(--surface-glass);
    --utility-bar:                var(--maroon-rich);
    --utility-bar-text:           var(--peach-200);
    --footer-bg:                  var(--charcoal);
    --footer-text:                var(--neutral-200);
    --footer-heading:             var(--gold-bright);
    --sidebar-active:             var(--maroon);
    --mega-menu-bg:               var(--paper);
    --mega-feature-bg:            var(--maroon-rich);
    --on-surface-maroon-dark:     var(--paper);
    --breadcrumb-bg:              var(--ivory);
    --breadcrumb-hero-bg:         var(--maroon-rich);
    --badge-bg:                   var(--maroon);
    --badge-soft-bg:              var(--maroon-100);
    --alert-danger-bg:            var(--maroon-750);
    --alert-success-bg:           var(--green-50);
    --alert-warning-bg:           var(--gold-50);
    --alert-info-bg:              var(--blue-50);
    --table-header-bg:            var(--ivory);
    --table-header-bg-accent:     var(--maroon-50);
    --table-stripe-branded:       var(--ivory);
    --table-stripe-alt:           var(--cream-50);
    --card-bg:                    var(--paper);
    --skeleton:                   var(--cream-200);
    --scrollbar-thumb:            var(--neutral-750);
    --code-fg:                    var(--gold-200);
    --tmrc-panel-label:           var(--tmrc-slate-500);
    --tmrc-panel:                 var(--tmrc-slate-800);
    --tmrc-panel-deep:            var(--tmrc-slate-900);
    --print-text:                 var(--ink);
    --print-bg:                   var(--paper);
    --print-border:               var(--neutral-500);
    --dark-section-bg:            var(--charcoal);
    --dark-section-text:          var(--warm-white-200);
    --dark-section-border:        var(--neutral-800);
    --dark-section-link:          var(--gold-bright);
    --accent:                     var(--primary);
    --accent-deep:                var(--primary-hover);
    --accent-soft:                var(--primary-soft);
    --on-accent:                  var(--paper);
    --on-accent-deep:             var(--paper);
}

/* ==========================================================================
 *  4. BOOTSTRAP 5.3 BRIDGE — every value DERIVED, never a re-typed hex.
 * --------------------------------------------------------------------------
 *  Only the bridges Bootstrap is ALREADY given today are emitted, so this file is
 *  a pure refactor. The gated ones are listed underneath as inert comments: they
 *  are not set today (Bootstrap's own defaults leak), so emitting them would
 *  CHANGE the render and each needs its own approved decision first.
 * ======================================================================= */
:root {
    --bs-primary:          var(--primary);
    --bs-primary-rgb:      var(--maroon-rgb);
    --bs-body-color:       var(--text);
    --bs-body-bg:          var(--surface);
    --bs-link-color:       var(--link);
    --bs-link-color-rgb:   var(--maroon-rgb);
    --bs-link-hover-color: var(--link-hover);
    --bs-border-color:     var(--border);
    --bs-emphasis-color:   var(--text);

    /* NOT EMITTED — gated, each needs its own approved decision: */
    /* missing            --bs-danger                         : var(--danger) */
    /* missing            --bs-success                        : var(--success) */
    /* missing            --bs-warning                        : var(--warning) */
    /* missing            --bs-info                           : var(--info) */
    /* missing            --bs-secondary                      : var(--secondary) */
    /* transparent        --bs-table-bg                       : (no colour — intentionally transparent) */
    /* component-override --bs-accordion-border-color         : var(--border) */
    /* component-override --bs-accordion-active-color         : var(--accent) */
    /* component-override --bs-accordion-active-bg            : var(--surface) */
    /* component-override --bs-accordion-btn-focus-box-shadow : var(--primary) */
    /* component-override --bs-accordion-btn-color            : var(--text) */
    /* component-override --bs-accordion-btn-bg               : var(--surface) */
}

/* ==========================================================================
 *  5. COLLEGE ACCENT SCOPES — four units, ONE university accent (D9).
 * --------------------------------------------------------------------------
 *  ALL FOUR BLOCKS BELOW ARE DELIBERATELY IDENTICAL. CLAUDE.md: "all colleges
 *  share ONE accent … Never reintroduce a per-college hue." The four body classes
 *  (accent-medicine / accent-dentistry / accent-pharmacy / accent-nursing) stay in
 *  the markup and all resolve to the brand primary ramp. Do not "fix" the
 *  duplication here — edit $BRAND_ACCENTS in includes/brand-colors.php.
 *  The scoped defaults (accent / accent-deep / accent-soft / on-accent /
 *  on-accent-deep) are semantic roles in section 3, so an un-accented page
 *  resolves to the same brand primary. The 5th unit stays UN-ACCENTED (D6).
 * ======================================================================= */
.accent-medicine  { --accent: var(--maroon); --accent-deep: var(--maroon-deep); --accent-soft: var(--maroon-100); }
.accent-dentistry { --accent: var(--maroon); --accent-deep: var(--maroon-deep); --accent-soft: var(--maroon-100); }
.accent-pharmacy  { --accent: var(--maroon); --accent-deep: var(--maroon-deep); --accent-soft: var(--maroon-100); }
.accent-nursing   { --accent: var(--maroon); --accent-deep: var(--maroon-deep); --accent-soft: var(--maroon-100); }

/* ==========================================================================
 *  6. RESERVED NAMESPACES — third-party / out-of-brand. BRAND-FLIP EXEMPT.
 * --------------------------------------------------------------------------
 *  These are NOT brand colour. Re-pointing the brand primary MUST leave every
 *  value below byte-identical, so each one is a literal hex and none of them
 *  derives from the ramp. Equally, no brand role may ever point at one of these.
 *  They live here only so 100% of the site's colour has exactly one home.
 * ======================================================================= */
:root {
    /* sdg — brand-flip exempt; mapping table section 6.1. */
    --sdg-1:  #E5243B;
    --sdg-2:  #DDA63A;
    --sdg-3:  #4C9F38;
    --sdg-4:  #C5192D;
    --sdg-5:  #FF3A21;
    --sdg-6:  #26BDE2;
    --sdg-7:  #FCC30B;
    --sdg-8:  #A21942;
    --sdg-9:  #FD6925;
    --sdg-10: #DD1367;
    --sdg-11: #FD9D24;
    --sdg-12: #BF8B2E;
    --sdg-13: #3F7E44;
    --sdg-14: #0A97D9;
    --sdg-15: #56C02B;
    --sdg-16: #00689D;
    --sdg-17: #19486A;

    /* sdg-widget — brand-flip exempt; mapping table section 6.2. */
    --sdg-widget-maroon:       #7A0026;
    --sdg-widget-maroon-light: #9C1A3A;
    --sdg-widget-navy:         #1B2A6B;
    --sdg-widget-navy-dark:    #0F1A45;
    --sdg-widget-navy-mid:     #1A3060;
    --sdg-widget-navy-deep:    #0A1628;
    --sdg-widget-gold:         #C9A227;
    --sdg-widget-gold-light:   #E8C96E;
    --sdg-widget-gold-pale:    #FFF8E6;
    --sdg-widget-cream:        #FAF8F3;
    --sdg-widget-border:       #E2DDD4;
    --sdg-widget-text:         #1A1A2E;
    --sdg-widget-muted:        #5A5F7A;
    --sdg-widget-green:        #2E7D32;
    --sdg-widget-purple:       #6A1B9A;
    --sdg-widget-olive:        #8A6A00;
    --sdg-widget-grey-50:      #FAFAFA;
    --sdg-widget-grey-100:     #F5F5F5;
    --sdg-widget-grey-200:     #F0F0F0;

    /* social — brand-flip exempt; mapping table section 6.3 + decision D8. */
    --social-linkedin:  #0A66C2;
    --social-instagram: #E1306C;
    --social-phone:     #198754;

    /* chart — brand-flip exempt; mapping table section 6.4. */
    --chart-field-1:         #E63946;
    --chart-field-2:         #2196F3;
    --chart-field-3:         #9C27B0;
    --chart-field-4:         #00BCD4;
    --chart-field-5:         #4CAF50;
    --chart-field-6:         #FF9800;
    --chart-field-7:         #F44336;
    --chart-field-8:         #E91E63;
    --chart-field-9:         #009688;
    --chart-field-10:        #3F51B5;
    --chart-field-11:        #FF5722;
    --chart-rank-1:          #C9A800;
    --chart-rank-2:          #888888;
    --chart-rank-3:          #B5651D;
    --chart-rank-4:          #1A6B8A;
    --chart-rank-5:          #3A7D44;
    --chart-rank-6:          #8B5E1A;
    --chart-rank-7:          #6B1A7B;
    --chart-rank-11:         #BBBBBB;
    --chart-rank-gold:       #B8860B;
    --chart-rank-silver:     #8A8A8A;
    --chart-rank-bronze:     #A0522D;
    --chart-gold:            #B9960C;
    --chart-gold-alt:        #B8960C;
    --chart-gold-light:      #E8D44D;
    --chart-gold-bg:         #FDFBF0;
    --chart-gold-grad-50:    #FFFEF5;
    --chart-gold-grad-075:   #FFFDF0;
    --chart-gold-grad-200:   #FDF8E1;
    --chart-gold-grad-250:   #FDF8DE;
    --chart-gold-glow:       #FFD700;
    --chart-gold-glow-2:     #FFE44D;
    --chart-gold-border-lit: #E8C000;
    --chart-gold-mid:        #F5D060;
    --chart-gold-ink:        #5A3E00;
    --chart-gold-ink-2:      #8A6800;
    --chart-glow-pale:       #FFFFC8;
    --chart-green-dark:      #2D6A2D;
    --chart-green-mid:       #3A8C3A;
    --chart-green-mid-alt:   #2E7D32;
    --chart-green-ink:       #2D5A00;
    --chart-green-pale:      #A5D6A7;
    --chart-highlight-bg:    #F5F7E8;
    --chart-green-assess:    #6B9E42;
    --chart-blue:            #1A4A8A;
    --chart-blue-deep:       #0D3A5C;
    --chart-blue-mid:        #1A5F8A;
    --chart-blue-link:       #2563B0;
    --chart-blue-assess:     #6AA4E8;
    --chart-peach-100:       #FFF8F3;
    --chart-peach-200:       #FDEEE0;
    --chart-copper-300:      #E8C49A;
    --chart-copper-400:      #E8A87C;
    --chart-copper-ink:      #7A3D0A;
    --chart-orange-assess:   #DF7A2C;
    --chart-text-dark:       #1A1A1A;
    --chart-axis-label:      #9E9E9E;
    --chart-axis-label-2:    #969696;
    --chart-axis-label-3:    #AAAAAA;
    --chart-axis-label-4:    #999999;
    --chart-grid:            #E0E0E0;
    --chart-grid-soft:       #E8E8E8;
    --chart-grid-strong:     #D0D0D0;
    --chart-grid-warm:       #F0F0F0;

    /* vendor-leadsquared — brand-flip exempt; mapping table section 6.5. */
    --vendor-ls-field-text:   #999999;
    --vendor-ls-field-border: #DEDEDE;
    --vendor-ls-placeholder:  #ADADAD;
    --vendor-ls-icon:         #474747;
    --vendor-ls-submit:       #A91B25;
    --vendor-ls-accent:       #D3222E;

    /* partner — brand-flip exempt; mapping table section 6.6. */
    --partner-red-c1272d: #C1272D;

    /* tooling — brand-flip exempt; mapping table section 6.7. */
    --tooling-claude-terracotta: #C96442;
    --tooling-claude-error:      #B3261E;
    --tooling-claude-orange:     #D97757;
    --tooling-claude-blush:      #F7E1D3;
    --tooling-claude-error-2:    #B00020;
    --tooling-claude-cream:      #F0EEE9;

    /* mockup — brand-flip exempt; mapping table section 6.8 + decision D4. */
    --mockup-line-warm:   #E4DDD4;
    --mockup-cream-200:   #ECE7E1;
    --mockup-peach-50:    #F5E6DA;
    --mockup-cream-50:    #F6F4F1;
    --mockup-cream-200b:  #EFE9E2;
    --mockup-line-warm-2: #E7E0D7;
    --mockup-line-strong: #E0D8CD;
    --mockup-gold-200:    #E7C98F;
    --mockup-gold-svg:    #E8A33D;
    --mockup-green:       #1D6B4F;
    --mockup-muted:       #6F6661;
    --mockup-neutral-500: #8A8079;
    --mockup-maroon-975:  #2A1215;
    --mockup-red-pale:    #FF8A80;
    --mockup-maroon-ink:  #5C2B2E;
    --mockup-grey-500:    #999999;

    /* artwork — brand-flip exempt; out of CSS scope — lives inside shipped SVG files, no var() can reach it; mapping table section 6.9 + decision D7. */
    --artwork-outlook-blue:     #0F6CBD;
    --artwork-brand-red-legacy: #B5111B;
    --artwork-epi-cyan:         #5FD0DE;
    --artwork-epi-cyan-mid:     #39B6C8;
    --artwork-epi-navy:         #0E2A3B;
    --artwork-epi-cyan-pale:    #9FD8E2;
    --artwork-epi-teal-deep:    #14506E;
    --artwork-ph-mint:          #4FD1AD;
    --artwork-ph-green-deep:    #13715D;
    --artwork-ph-mint-pale:     #A9EAD8;
    --artwork-ph-green-darkest: #0D3B34;
    --artwork-paper:            #FFFFFF;
}
