/* ============================================
   pc-tokens.css - PollCheck design system tokens
   Single source of truth for colour, type and party palette.
   Prefix: --pc-*. White default (gb-polls palette).
   Dark mode: overridden under body.dark-mode (slate ramp).
   Party hexes: Wikipedia Index of UK political parties
   meta attributes (fetched 30 Aug 2026). JS mirror:
   js/party-colors.js - keep the two in sync.
   ============================================ */

:root {
    /* Surfaces */
    --pc-bg: #FAFAFA;
    --pc-surface: #FFFFFF;
    --pc-hover-bg: #FAFAFA;
    --pc-tint: #F7F7F7;
    --pc-on-ink: #FFFFFF;

    /* Text ramp */
    --pc-text: #111111;
    --pc-text-body: #333333;
    --pc-text-secondary: #555555;
    --pc-text-meta: #999999;
    --pc-text-muted: #AAAAAA;

    /* Borders */
    --pc-border: #E0E0E0;
    --pc-border-light: #EEEEEE;
    --pc-border-grid: #F0F0F0;

    /* Semantic */
    --pc-positive: #2A9D2A;
    --pc-negative: #C0392B;
    --pc-nc: #CCCCCC;
    --pc-accent: #C2410C;
    --pc-warning: #b08800;

    /* Inverted chips / tooltips */
    --pc-tooltip-bg: #1a1a1a;
    --pc-tooltip-text: #ffffff;

    /* Form controls */
    --pc-slider-track: #E0E0E0;

    /* Type */
    --pc-serif: Georgia, "Times New Roman", serif;
    --pc-sans: "Helvetica Neue", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

    /* Shape */
    --pc-radius: 0;

    /* Party palette (canonical) */
    --pc-party-con: #0087DC;
    --pc-party-lab: #E41C3E;
    --pc-party-ld: #FAA61A;
    --pc-party-ref: #1EB8D0;
    --pc-party-grn: #02A95B;
    /* SNP deviates from the Wikipedia hex (#FDF38E): too pale on white,
       kept at the swingometer's stronger yellow instead */
    --pc-party-snp: #FFED4A;
    --pc-party-pc: #008672;
    --pc-party-sgn: #00B140;
    --pc-party-alba: #005EB8;
    --pc-party-res: #051D3F;
    --pc-party-ukip: #6D3177;
    --pc-party-ind: #DCDCDC;
    --pc-party-oth: #999999;
}

/* Dark mode - shared slate ramp (matches gb-polls / p2n / swingometer) */
body.dark-mode {
    --pc-bg: #0f172a;
    --pc-surface: #1e293b;
    --pc-hover-bg: #273548;
    --pc-tint: #243247;
    --pc-on-ink: #0f172a;

    --pc-text: #f8fafc;
    --pc-text-body: #e2e8f0;
    --pc-text-secondary: #cbd5e1;
    --pc-text-meta: #94a3b8;
    --pc-text-muted: #64748b;

    --pc-border: #334155;
    --pc-border-light: #3a4a60;
    --pc-border-grid: #2a3548;

    --pc-positive: #4ade80;
    --pc-negative: #f87171;
    --pc-nc: #475569;
    --pc-accent: #EA580C;
    --pc-warning: #fbbf24;

    --pc-tooltip-bg: #f8fafc;
    --pc-tooltip-text: #0f172a;

    --pc-slider-track: #4a5a73;
}

/* Cream surface variant - tool pages that keep the warm ground
   (demographic swingometer, path-to-no10, seat-tracker). Opt in with
   body.pc-cream. Light mode only: dark mode uses the shared slate ramp.
   Text ramp, party colours and semantics stay canonical. */
body.pc-cream:not(.dark-mode) {
    --pc-bg: #F5F0E6;
    --pc-tint: #FAF6EC;
    --pc-hover-bg: #FAF6EC;
    --pc-border: #D8CFBA;
    --pc-border-light: #E6DFCC;
    --pc-border-grid: #EFE9D9;
    --pc-slider-track: #D8CFBA;
}
