:root {
    /* ─────────────────────────────────────────────────────────────
       DARK SHADE KNOB — change ONLY this one value to reshade the
       whole dark theme. Everything below derives from it, so the
       neomorphic relief stays proportional. (Tip: tweak it live in
       DevTools on :root to preview shades without editing the file.)
       Presets — paste one into --dark-base:
         neutral : #1e1e1e graphite ·  #181818 charcoal ·  #121212 ink ·  #0e0e0e near-black
         cool    : #1a1d23 slate ·  #161a1f blue-graphite ·  #14181a teal-graphite
         warm    : #201d1b warm graphite ·  #1c1a22 plum-graphite ·  #211c16 espresso
       ───────────────────────────────────────────────────────────── */
    --dark-base: #111111;

    /* Neomorphic base — pure graphite, zero colour cast (all derived) */
    --bg-primary:   var(--dark-base);
    --bg-secondary: var(--dark-base);
    --bg-card:      var(--dark-base);
    --bg-deep:   color-mix(in srgb, var(--dark-base), #000 30%);   /* recessed / inset (darker) */
    --bg-raised: color-mix(in srgb, var(--dark-base), #fff 4%);    /* slightly lifted (lighter) */

    /* Neo shadow pair — derived so the relief scales with --dark-base */
    --neo-dark:  color-mix(in srgb, var(--dark-base), #000 60%);                                   /* darker side  */
    --neo-light: color-mix(in srgb, color-mix(in srgb, var(--dark-base), #fff 12%) 50%, transparent); /* lighter side */

    /* Reusable shadow tokens */
    --neo-raised:  0 0 20px var(--neo-dark);
    --neo-inset:   inset 0 0 14px var(--neo-dark);
    --neo-btn:     0 0 10px var(--neo-dark);
    --neo-pressed: inset 0 0 8px var(--neo-dark);
    --neo-float:   0 0 32px var(--neo-dark);

    /* Separator */
    --border-color: rgba(255, 255, 255, 0.05);
    --border-hover: rgba(255, 122, 42, 0.4);

    --brand-orange:      #ff7a2a;
    --brand-orange-glow: rgba(255, 122, 42, 0.35);
    --brand-cyan:        #00d4ff;
    --brand-cyan-glow:   rgba(0, 212, 255, 0.25);

    --text-primary:   #e2e2ea;
    --text-secondary: #8e8e9e;
    --text-muted:     #52525e;

    --cat-labour:   #f472b6;
    --cat-material: #10b981;

    --error: #ef4444;
}