/* ============================================================================
   tokens.css — Phase A · v2 §5.4 · single source of truth
   ----------------------------------------------------------------------------
   Loaded once at preview.php head. Variable declarations only — does NOT
   style any visible element. Phase B-and-later partials consume these
   tokens. Existing inline styles in preview.php continue to define their
   own tokens locally; consolidation happens per-page as they are converted.
   ============================================================================ */

:root {
    /* ===== BRAND PALETTE ===== */
    --brand-navy-900: #0D1F3C;
    --brand-navy-800: #122A52;
    --brand-navy-700: #1A3A6B;
    --brand-navy-600: #234B86;
    --brand-navy-500: #2E5BA0;
    --brand-navy-100: #DCE6F4;
    --brand-navy-50:  #F0F4FB;

    --brand-accent-500: #2E6FD8;
    --brand-accent-400: #4F89E8;
    --brand-accent-100: #DCE7F8;

    --brand-brass-700: #8B6A30;
    --brand-brass-600: #A8803E;
    --brand-brass-500: #B89253;
    --brand-brass-300: #D9B884;
    --brand-brass-100: #F1E5CE;

    --brand-cream-100: #F5EDD6;
    --brand-cream-50:  #FAF5E5;
    --brand-ivory-50:  #FBF7EA;

    --brand-charcoal-900: #1A1A1A;
    --brand-charcoal-800: #232323;
    --brand-charcoal-700: #2E2E2E;
    --brand-charcoal-600: #3A3A3A;

    --brand-neutral-900: #0B0F14;
    --brand-neutral-800: #1F2630;
    --brand-neutral-700: #404A57;
    --brand-neutral-600: #5A6675;
    --brand-neutral-500: #8190A4;
    --brand-neutral-400: #A8B4C5;
    --brand-neutral-300: #C8D1DD;
    --brand-neutral-200: #E2E7EF;
    --brand-neutral-100: #F0F3F8;
    --brand-neutral-50:  #F7F9FC;
    --brand-neutral-0:   #FFFFFF;

    /* ===== SEVERITY PALETTE — strictly status only ===== */
    --sev-success:    #1A7A4A;
    --sev-success-bg: #E5F4EC;
    --sev-info:       #2D7FBF;
    --sev-info-bg:    #E5F0F9;
    --sev-warning:    #C47A1E;
    --sev-warning-bg: #FCF1DD;
    --sev-critical:   #C0392B;
    --sev-critical-bg:#FBEAE7;
    --sev-neutral:    #6C7480;
    --sev-neutral-bg: #EEF0F3;
    --sev-locked:     #6A4C93;
    --sev-locked-bg:  #EEE7F7;

    /* ===== CLASSIFICATION PALETTE — federal conditional ===== */
    --cls-cui-fg:    #1A7A4A;
    --cls-cui-bg:    #E8F5E9;
    --cls-cui-border:#1A7A4A;
    --cls-ctrl-fg:   #C47A1E;
    --cls-ctrl-bg:   #FDF3DC;
    --cls-ctrl-border:#C47A1E;
    --cls-sec-fg:    #C0392B;
    --cls-sec-bg:    #FDECEA;
    --cls-sec-border:#C0392B;
    --cls-ts-fg:     #6A1A1A;
    --cls-ts-bg:     #FCDDDD;
    --cls-ts-border: #6A1A1A;

    /* ===== SPACING SCALE — 8 values ===== */
    --sp-1: 4px;
    --sp-2: 8px;
    --sp-3: 12px;
    --sp-4: 16px;
    --sp-5: 24px;
    --sp-6: 32px;
    --sp-7: 48px;
    --sp-8: 64px;

    /* ===== TYPE SCALE ===== */
    --ts-display-xl-size: 42px;
    --ts-display-xl-lh:   52px;
    --ts-display-lg-size: 32px;
    --ts-display-lg-lh:   40px;
    --ts-heading-md-size: 22px;
    --ts-heading-md-lh:   32px;
    --ts-heading-sm-size: 18px;
    --ts-heading-sm-lh:   28px;
    --ts-body-lg-size:    17px;
    --ts-body-lg-lh:      26px;
    --ts-body-md-size:    15px;
    --ts-body-md-lh:      24px;
    --ts-body-sm-size:    13px;
    --ts-body-sm-lh:      20px;
    --ts-label-sm-size:   12px;
    --ts-label-sm-lh:     16px;
    --ts-mono-size:       14px;
    --ts-mono-lh:         20px;

    --ts-display-family:  Georgia, "Tiempos Headline", "Times New Roman", serif;
    --ts-body-family:     "Inter", "Helvetica Neue", Arial, sans-serif;
    --ts-mono-family:     "JetBrains Mono", "Courier New", Courier, monospace;

    /* ===== ELEVATION ===== */
    --el-1: 0 1px 2px rgba(13,31,60,0.06);
    --el-2: 0 2px 6px rgba(13,31,60,0.08), 0 1px 2px rgba(13,31,60,0.04);
    --el-3: 0 6px 16px rgba(13,31,60,0.10), 0 2px 4px rgba(13,31,60,0.06);
    --el-4: 0 14px 36px rgba(13,31,60,0.16), 0 4px 8px rgba(13,31,60,0.08);

    /* ===== RADIUS ===== */
    --rad-sm:   4px;
    --rad-md:   8px;
    --rad-lg:   12px;
    --rad-xl:   16px;
    --rad-pill: 999px;

    /* ===== MOTION ===== */
    --motion-fast:   120ms;
    --motion-med:    220ms;
    --motion-slow:   360ms;
    --motion-ease:   cubic-bezier(0.2, 0.7, 0.2, 1);
    --motion-emphas: cubic-bezier(0.18, 0.89, 0.32, 1.28);

    /* ===== Z-INDEX SCALE ===== */
    --z-base:           1;
    --z-sticky:         100;
    --z-dropdown:       200;
    --z-modal-backdrop: 900;
    --z-modal:          1000;
    --z-cmdk-backdrop:  1100;
    --z-cmdk:           1200;
    --z-toast:          1300;
    --z-debug:          9999;
}

/* Phase A intentionally ships variable declarations only.
   The Phase B partial conversion lands tabular-figures, motion-respect
   media queries, and print rules scoped to the converted page selectors. */
