:root {
      --bg: #f3f0e8;
      --surface: #faf8f4;
      --surface-raised: #fffefb;
      --border: #ddd8ce;
      --border-strong: #c8c0b4;
      --text: #1f1d19;
      --text-heading: #12110f;
      --text-muted: #4a463e;
      --text-subtle: #6e685e;
      --text-faint: #8a8478;
      --accent: #2d5a3d;
      --accent-hover: #1e3d28;
      --accent-muted: rgba(45, 90, 61, 0.12);
      --secondary: #7a6348;
      --secondary-hover: #5c4a36;
      --secondary-muted: rgba(122, 99, 72, 0.12);
      --btn-primary-text: #ffffff;
      --btn-ghost-hover-bg: #ebe6dc;
      --btn-ghost-hover-text: #1a1814;
      --success: #2d7a45;
      --success-bg: #e8f3ec;
      --danger: #c43c3c;
      --danger-bg: #fceaea;
      --info: #2a7a8a;
      --warning-bg: #fdf6e3;
      --warning-border: #e8d4a0;
      --warning-text: #b07d12;
      --reward-text: #1e5a30;
      --wrong-text: #7a2020;
      --log-bg: var(--surface-raised);
      --log-entry-border: #ebe6dc;
      --modal-overlay: rgba(20, 18, 14, 0.48);
      --modal-bg: #fffefb;
      --modal-header-border: #ebe6dc;
      --close: #9a948a;
      --close-hover: #1a1814;
      --map-cell-bg: #fffefb;
      --map-cell-border: #d4cec4;
      --input-bg: #fffefb;
      --input-border: #c8c0b4;
      --science-track: #ebe6dc;
      --science-fill: #2d5a3d;
      --strip-bg: rgba(0, 0, 0, 0.04);
      --chip-bg: #eeede8;
      --chip-border: #d4cec4;
      --strip-enemy: #b83030;
      --strip-friendly: #2a6a9a;
      --strip-empty: #b0aaa0;
      --siege-accent: #a06868;
      --siege-banner-bg: rgba(0, 0, 0, 0.025);
      --siege-label: #8a4848;
      --siege-label-bg: rgba(138, 72, 72, 0.1);
      --siege-title: #3a3430;
      --tavern-divider: #e0d4c0;
      --chat-log-bg: rgba(0, 0, 0, 0.04);
      --theme-btn-bg: #fffefb;
      --theme-btn-border: #c8c0b4;
      --theme-btn-active-bg: #2d5a3d;
      --theme-btn-active-text: #ffffff;
      /* Type: Tektur HUD · IBM Plex Sans Medium UI · JetBrains Mono numbers. Scale at 16px. */
      --font-ui: 'IBM Plex Sans', 'Segoe UI', 'Segoe UI Emoji', 'Apple Color Emoji', 'Noto Color Emoji', system-ui, sans-serif;
      --font-display: 'Tektur', 'IBM Plex Sans', system-ui, sans-serif;
      --font-hud: 'Tektur', 'IBM Plex Sans', system-ui, sans-serif;
      --font-mono: 'JetBrains Mono', 'IBM Plex Mono', Consolas, 'Courier New', monospace;
      --text-ui: 1rem;       /* 16px — lobby / HUD copy at 100% zoom */
      --text-2xs: 0.75rem;    /* 12px — map micro, siege kicker */
      --text-xs: 0.8125rem;  /* 13px — timestamps, secondary table */
      --text-sm: 0.875rem;   /* 14px — dense tables, captions, chips */
      --text-base: 1rem;     /* 16px — default UI, buttons, body */
      --text-md: 1.0625rem;  /* 17px — panel copy, primary logs */
      --text-lg: 1.125rem;   /* 18px — section / modal titles */
      --text-xl: 1.375rem;   /* 22px — module headers */
      --text-2xl: 1.625rem;  /* 26px — page title */
      --leading-none: 1;
      --leading-dense: 1.2;
      --leading-tight: 1.3;
      --leading-normal: 1.4;
      --leading-loose: 1.55;
      --weight-normal: 400;
      --weight-medium: 500;
      --weight-semibold: 600;
      --weight-bold: 700;
      --tracking-tight: -0.01em;
      --tracking-normal: 0.01em;
      --tracking-wide: 0.06em;
      --tracking-caps: 0.08em;
      --tracking-hud: 0.08em;
      --radius: 6px;
      --radius-modal: 10px;
      --radius-pill: 999px;
      --shadow-sm: 0 1px 2px rgba(20, 18, 14, 0.05);
      --shadow-md: 0 4px 12px rgba(20, 18, 14, 0.08);
      --shadow-lg: 0 12px 32px rgba(20, 18, 14, 0.12);
      --map-swamp-bg: #d4edda;
      --map-garrison-bg: #f5deb3;
      --map-barbarian: #8B4513;
      --map-castle: #6b4c24;
      --map-fort: #4a2c6e;
      --map-fort-room-bg: #f4f4f8;
      --map-fort-unknown: #8B0000;
      --map-treasure: #b8860b;
      --map-colony: #3498db;
      --map-swamp-label: #2d6a2d;
      --map-focus-border: #f0ad4e;
      --map-empty-label: #aaaaaa;
      --map-cleared: #555555;
      --map-oil-label: #555555;
      --country-admin-accent: #b8860b;
      --country-admin-glow: rgba(184, 134, 11, 0.25);
      --country-admin-bg: rgba(184, 134, 11, 0.06);
      --country-admin-border: rgba(204, 153, 0, 0.45);
      --season-summer-bg: #fff3cd;
      --season-summer-text: #856404;
      --season-winter-bg: #cff4fc;
      --season-winter-text: #055160;
    }
