/* URBN design tokens — two schemes on one token set (journal/048.scheme_retirement/).

   Silk, labelled Light, is the default: it lives on the bare :root, so a document with no
   data-theme renders it. Cyberpunk, labelled Dark, is the one overlay, selected by
   :root[data-theme="cyberpunk"] and redefining what differs. The ids are those of the five
   schemes of journal/034.three_skins/; Green, Lab and Engine were retired from urbanica in
   journal 048 (darwin_ui keeps its own).

   Silk's palette is borrowed, copied by value from a named sibling file at a named commit
   — a one-time act; nothing is read across the subproject boundary at runtime:
   data_mining/website/css/site.css, the light :root block, at 25800c6; its faces from
   website/index.html. Its values are written as the source writes them (uppercase hex) so
   the copy can be checked against the source; a role the source has no token for says so
   in its comment. A role Silk never set keeps the value it took from the Green base it used
   to overlay (darwin_ui's Pine, lowercase hex): the popover's lift, the danger pair, the
   do-this cue degrading to the accent, the lifts, the clay, the float corner, the surface
   levels. Cyberpunk is urbanica's own, settled in the UI catalogue.

   The chart palettes (--urbn-chart-1…8, journal 040.table_charts) are urbanica's, designed
   in the UI catalogue's Charts section, each held to darwin_ui 009's checks (the dataviz
   validator: neighbours — the pie's last slot and its first among them — ΔE ≥ 8 under
   protanopia and deuteranopia and ≥ 15 in normal vision, OKLCH chroma ≥ 0.10, 3:1 against
   --urbn-raised, the dark ground in the L 0.48–0.67 band) and kept clear of each scheme's
   accent, danger and cue.

   A scheme pairs a layout with a colour set (journal/011.paired_schemes/). Both schemes are
   on the float layout, keyed to :root[data-layout="float"] in shell.css / chat.css, an
   attribute the theme runtime derives from the scheme; the integrated base those rules
   override is dormant, its fold parked (journal 048). What Cyberpunk adds beyond tokens and
   layout (notches, uppercase labels) stays keyed to its own :root[data-theme]. The theme
   runtime (static/js/theme.js) and the pre-paint boot (partials/theme_boot) set the
   attributes. Faces: Silk Big Shoulders Display / IBM Plex Sans / IBM Plex Mono, Cyberpunk
   Rajdhani / Share Tech Mono — carried by base.html's one fonts link. Dark lifts cards a
   step above the paper (--urbn-raised, equal to the paper in Light) and frames the
   document sheets (--urbn-sheet-*); see the base block. */

:root {
  /* ---- Silk (Light) — data_mining's paper, the default scheme ------------------------ */

  /* Type */
  --urbn-font: "IBM Plex Sans", system-ui, -apple-system, Helvetica, Arial, sans-serif;   /* --sans */
  --urbn-display: "Big Shoulders Display", "Arial Narrow", Impact, sans-serif;           /* --display */
  --urbn-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;                            /* --mono */

  /* Canvas + text */
  --urbn-paper: #FBF9F7;          /* --paper */
  --urbn-ink: #241E20;            /* --ink */
  --urbn-muted: #6B6164;          /* --muted */
  --urbn-line: #D9D0CC;           /* --line */
  --urbn-line-strong: #B9B4B0;    /* --bld, the building grey: site.css has one line token (urbanica's mapping) */
  --urbn-sep: #B9B4B0;            /* --bld; structural separators */

  /* Chrome (sidebar / rails) */
  --urbn-side-bg: #EEEAE6;        /* --ground */
  --urbn-side-ink: #241E20;       /* --ink */
  --urbn-side-muted: #6B6164;     /* --muted */
  --urbn-side-hover: #E4E1DC;     /* --other */
  --urbn-side-line: #D9D0CC;      /* --line */
  --urbn-side-active: var(--urbn-tint);

  /* Tuff accent */
  --urbn-accent: #A2485A;         /* --tuff */
  --urbn-accent-strong: #6E2F3C;  /* --tuff-deep */
  --urbn-tint: #EBCFD5;           /* --tuff-soft */

  /* Session done marker: the accent, with a translucent glow for the ping. running has no
     colour token — it is a neutral (muted) pulse. */
  --urbn-done: #A2485A;
  --urbn-done-glow: #A2485A80;

  /* Popover (account menu, dropdowns) */
  --urbn-pop-bg: #FFFFFF;         /* --card */
  --urbn-pop-ink: #241E20;
  --urbn-pop-muted: #6B6164;
  --urbn-pop-line: #D9D0CC;
  --urbn-pop-hover: #EEEAE6;      /* --ground */
  --urbn-pop-shadow: 0 12px 32px -8px rgba(0, 0, 0, .16);

  /* Text on an accent fill (buttons, active switch) */
  --urbn-on-accent: #FBF9F7;      /* --paper */

  /* Chart palette, in slot order (journal 040.table_charts), urbanica's: the source has no
     categorical set. An ink blue first; no rose (--tuff, the accent), no red (the danger) and
     no ochre (the estimate mark). A slice takes slot i for its row's place in the table, a
     series for its column's place among the number columns. Eight, as
     assistant.controls.chart.palette_size. */
  --urbn-chart-1: #2E64A6;
  --urbn-chart-2: #3B8841;
  --urbn-chart-3: #A355B4;
  --urbn-chart-4: #C36D05;
  --urbn-chart-5: #059488;
  --urbn-chart-6: #6B46A0;
  --urbn-chart-7: #3C96C5;
  --urbn-chart-8: #718516;

  /* Error / danger surface (login + forbidden) and destructive action text (delete /
     undo confirms). urbanica-originated. journal/018.undo_branch/…_03. */
  --urbn-danger-bg: #fbeaea;
  --urbn-danger-ink: #8a1f1f;
  --urbn-danger: var(--urbn-danger-ink);

  /* Do-this cue — Light has no yellow, so it degrades to the accent */
  --urbn-yellow: var(--urbn-accent);
  --urbn-yellow-hover: var(--urbn-accent-strong);
  --urbn-yellow-tint: var(--urbn-tint);

  /* Card lift */
  --urbn-solid-card: 0 2px 8px -4px rgba(0, 0, 0, .12);

  /* Floating layout: the floating card's border and its lift */
  --urbn-line-float: #B9B4B0;     /* --bld */
  --urbn-float-shadow: 0 1px 2px rgba(20, 20, 20, .05), 0 10px 24px -12px rgba(20, 20, 20, .12);

  /* Chat: the user-message bubble fill and the in-chat snippet border */
  --urbn-user-bg: #EEEAE6;        /* --ground */
  --urbn-snip-line: #D9D0CC;      /* --line */

  /* Ochre: an estimate's mark */
  --urbn-warm-2: #C9A227;         /* --u-heritage, the study's ochre */
  /* Clay: a warm marker — the simulation clock's playhead (journal 039). Neither scheme's
     source has a token for it; both keep this one. */
  --urbn-warm: #c15f3c;

  /* site.css rounds its controls at 4px */
  --urbn-radius: 4px;
  --urbn-radius-lg: 8px;
  /* The float layout's corner — the floating card, the active tab's bump, the fabs, panes
     and strips (darwin_ui's 3px) — one token so a scheme can square it. */
  --urbn-radius-float: 3px;

  /* Surface levels (journal 034): cards, the dock's floating body, popovers, buttons and
     pills sit on the raised surface. Light keeps it equal to the paper — its lines and
     lifts do the separating — and Dark lifts it one step, so a card reads as a card on a
     near-black ground. A document sheet (an attachment or document iframe) keeps its own
     white; Dark sets it on the raised surface behind a frame and an inset, so it reads as
     a sheet placed on the ground, not a hole. */
  --urbn-raised: var(--urbn-paper);
  --urbn-sheet-ground: #ffffff;
  --urbn-sheet-frame: 0;
  --urbn-sheet-inset: 0;
}

/* The root takes the paper as well: Bulma paints html white, which showed at overscroll
   and at any uncovered edge once a scheme's paper went dark (journal 034). */
html {
  background: var(--urbn-paper);
}

/* ---- Cyberpunk (Dark) — cyber yellow on a blue-violet night, on the float ----------
   urbanica's own (no darwin_ui source), settled in the UI catalogue: yellow for the
   accent and the do-this cue on grounds cast to its complement, cyan for live, red for
   danger, Rajdhani and Share Tech Mono, no rounding. It redefines every token Silk sets;
   what it leaves is the base's. Its notches and uppercase labels are keyed to data-theme
   in chat.css / shell.css. */

:root[data-theme="cyberpunk"] {
  --urbn-font: "Rajdhani", system-ui, -apple-system, "Segoe UI", sans-serif;
  --urbn-display: "Rajdhani", system-ui, sans-serif;
  --urbn-mono: "Share Tech Mono", "IBM Plex Mono", ui-monospace, Menlo, monospace;

  /* Grounds on the complement of the yellow — a blue-violet cast kept under fifteen percent
     saturation, so the yellow reads warm on it and the scheme has a night of its own (set
     beside the since-retired Engine's blue-black; Kuso, 2026-09-26). The greys are cooled
     to match. */
  --urbn-paper: #0e0e18;
  --urbn-ink: #f2f2ec;
  --urbn-muted: #9296ae;
  --urbn-line: #2c2c48;
  --urbn-line-strong: #3d3d5e;
  --urbn-sep: #3d3d5e;

  --urbn-side-bg: #08080f;
  --urbn-side-ink: #d6d6e2;
  --urbn-side-muted: #737791;
  --urbn-side-hover: #14141f;
  --urbn-side-line: #22223a;
  --urbn-side-active: var(--urbn-tint);

  --urbn-accent: #fcee0a;         /* cyber yellow */
  --urbn-accent-strong: #e2d400;
  --urbn-tint: rgba(252, 238, 10, .14);
  --urbn-on-accent: #0e0e18;      /* the paper on yellow */

  --urbn-done: #00f0ff;           /* cyan: live */
  --urbn-done-glow: #00f0ff80;

  --urbn-pop-bg: #26263f;         /* one step above the raised surface */
  --urbn-pop-ink: #f2f2ec;
  --urbn-pop-muted: #9296ae;
  --urbn-pop-line: #3d3d5e;
  --urbn-pop-hover: #30304c;
  --urbn-pop-shadow: none;        /* a notched popover carries a hairline, not a lift */

  --urbn-danger-bg: #2a0716;
  --urbn-danger-ink: #ff3d68;     /* over the red #ff003c */

  --urbn-yellow: #fcee0a;
  --urbn-yellow-hover: #e2d400;
  --urbn-yellow-tint: rgba(252, 238, 10, .14);

  --urbn-solid-card: 0 0 0 1px #3d3d5e;
  --urbn-line-float: rgba(252, 238, 10, .55);
  --urbn-float-shadow: 0 0 0 1px rgba(252, 238, 10, .35);

  --urbn-user-bg: #1c1c30;
  --urbn-snip-line: #3d3d5e;
  --urbn-warm-2: #f5a524;

  /* Surface levels: cards a step above the ground (about 1.3 to the eye), popovers one
     more; a document sheet framed and inset */
  --urbn-raised: #1c1c30;
  --urbn-sheet-ground: var(--urbn-raised);
  --urbn-sheet-frame: 1px solid var(--urbn-line-strong);
  --urbn-sheet-inset: 8px;

  --urbn-radius: 0;
  --urbn-radius-lg: 0;
  --urbn-radius-float: 0;

  /* Chart palette (journal 040.table_charts): neon cyan first, the dark lightness band against the
     raised surface; no yellow (the accent) and no red (the danger), a bronze the one warm hue. */
  --urbn-chart-1: #05a5b3;
  --urbn-chart-2: #855dd7;
  --urbn-chart-3: #08ad72;
  --urbn-chart-4: #c344ae;
  --urbn-chart-5: #3280dd;
  --urbn-chart-6: #5ba224;
  --urbn-chart-7: #4d68dc;
  --urbn-chart-8: #a86b06;
}
