/* ============================================
   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: #1B3A6B;
    --pc-party-yp: #7C3AED;
    --pc-party-gyf: #051E40;
    --pc-party-asp: #FF5800;
    --pc-party-ashind: #FFC0CB;
    --pc-on-party-dark: #FFFFFF;   /* text on navy party fills (res, gyf); same in both themes */
    --pc-party-ukip: #6D3177;
    --pc-party-ind: #DCDCDC;
    --pc-party-oth: #999999;
    /* US parties (/us-midterms-2026): Wikipedia meta colours for the
       Democratic (#3333FF) and Republican (#E81B23) parties. US independents
       get a mid purple: Wikipedia's #DCDCDC is too pale for lines and map fills. */
    --pc-party-dem: #3333FF;
    --pc-party-rep: #E81B23;
    --pc-party-usind: #8E6BBF;

    /* US state supreme courts (/us/state-supreme-courts): selection methods.
       Not partisan, so deliberately clear of the party blues and reds.
       --pc-court-on is label text on the four dark fills; retention (amber)
       takes --pc-on-party-light. Mirrors css/pc-tokens.css. */
    --pc-court-partisan: #6B3FA0;
    --pc-court-nonpartisan: #0E7C7B;
    --pc-court-retention: #E0A526;
    --pc-court-appointed: #5B6B7F;
    --pc-court-legislative: #8B5A2B;
    --pc-court-on: #FFFFFF;
}

/* 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;

    --pc-court-partisan: #A98BDB;
    --pc-court-nonpartisan: #3DBDBA;
    --pc-court-retention: #F2B84B;
    --pc-court-appointed: #94A3B8;
    --pc-court-legislative: #C8925F;
    --pc-court-on: #0f172a;
}

/* 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;
}
