/* ============================================================
   GREEDY DENTIST — token sheet  (drop in ABOVE base.css)
   Dark navy world only. 16-bit palette, hard edges, no blur.
   Legacy names from base.css are kept and re-pointed, so
   nothing downstream breaks.
   ============================================================ */
:root{
  /* ---- pixel unit + spacing ------------------------------ */
  --px: 4px;                 /* unchanged role */
  --s1: 4px;  --s2: 8px;  --s3: 12px; --s4: 16px;
  --s5: 24px; --s6: 32px; --s7: 48px; --s8: 64px;

  /* ---- world / surfaces --------------------------------- */
  --navy-950:#080a18;        /* page void, outside the cabinet */
  --navy-900:#0d0f1f;        /* deepest panel wells            */
  --navy-800:#12142b;        /* marketing backdrop             */
  --bg:       #1a1c2c;       /* LEGACY — app background        */
  --panel:    #23273c;       /* LEGACY, darkened one step      */
  --panel-2:  #2f3450;       /* LEGACY panel2                  */
  --panel-3:  #3d4468;       /* raised chrome plate            */
  --well:     #101226;       /* inset wells (grid, inputs)     */

  /* ---- ink ---------------------------------------------- */
  --ink:      #f4f4f4;       /* LEGACY */
  --ink-warm: #fff6de;
  --dim:      #9aa0c3;       /* LEGACY */
  --dim-2:    #6b7199;
  --black:    #000000;       /* the chunky outline, always pure */

  /* ---- cover palette (airbrush) ------------------------- */
  --teal-700:#0a4f5c; --teal-600:#0f6d7a; --teal-500:#1f96a5; --teal-400:#2ec4b6;
  --mag-700:#7d1740;  --mag-600:#a01f4d;  --mag-500:#c2255c;  --mag-400:#e64980;
  --gold-700:#8a6c00; --gold-600:#b88400; --gold-500:#e4b400; --gold-400:#ffd93b; --gold-200:#ffeea8;
  --crim-700:#8c1220; --crim-600:#c1152c; --crim-500:#f03e3e; --crim-300:#ff8787;

  /* legacy aliases */
  --gold: var(--gold-400);
  --green:#37b24d;
  --red:  var(--crim-500);
  --blue: #4dabf7;

  /* ---- chrome ramp (title lettering, bevels) ------------ */
  --chrome-1:#ffffff;
  --chrome-2:#dfe6f5;
  --chrome-3:#9aa7cc;
  --chrome-4:#5a6491;
  --chrome-5:#2b3159;

  /* ---- doctor ramps  (block color == doctor color) ------
     Each doctor gets 5 stops. JS keeps generating the
     hard-stop gradients; it just reads these names.
       -ink    text/chip fill
       -solid  DOCTOR WORKING segment  (X)
       -assist ASSISTANT ONLY segment  (/)  — same hue, sunken
       -hi     top bevel highlight
       -edge   bottom/right bevel shadow
     -------------------------------------------------------- */
  --doc-gold-ink:#ffe066; --doc-gold-solid:#e4b400; --doc-gold-assist:#7a6408;
  --doc-gold-hi:#ffe98a;  --doc-gold-edge:#5a4a00;

  --doc-green-ink:#8ce99a; --doc-green-solid:#2f9e44; --doc-green-assist:#1b5730;
  --doc-green-hi:#69db7c;  --doc-green-edge:#12401f;

  --doc-orange-ink:#ffc078; --doc-orange-solid:#e8590c; --doc-orange-assist:#7a3210;
  --doc-orange-hi:#ff922b;  --doc-orange-edge:#54210a;

  --doc-purple-ink:#b197fc; --doc-purple-solid:#7048e8; --doc-purple-assist:#3b2a7a;
  --doc-purple-hi:#9775fa;  --doc-purple-edge:#281a55;

  /* assistant-segment opacity used by the block generator */
  --assist-alpha:.42;

  /* ---- state -------------------------------------------- */
  --ok:      #2ec4b6;
  --warn:    var(--gold-400);
  --crit:    var(--crim-500);
  --legal:   #51cf66;
  --illegal: var(--crim-500);
  --money:   #7bd88f;         /* dollar green, cover cash */

  /* mood ramp for the caller (calm -> hangup) */
  --mood-calm:   #2ec4b6;
  --mood-annoyed:#ffd93b;
  --mood-angry:  #f03e3e;
  --mood-hangup: #7d1740;
  --mood-happy:  #7bd88f;

  /* ---- borders / bevels (never blurred) ----------------- */
  --bd:        4px solid var(--black);
  --bd-thin:   2px solid var(--black);
  --bd-hair:   1px solid rgba(0,0,0,.55);
  --r-0: 0px;                 /* everything in-game is square */
  --r-cart: 10px;             /* only cartridge/box chrome curves */

  /* stepped 16-bit bevels — inset hard shadows, zero blur */
  --bevel-out: inset 0 4px 0 rgba(255,255,255,.18),
               inset 0 -4px 0 rgba(0,0,0,.45),
               inset 4px 0 0 rgba(255,255,255,.07),
               inset -4px 0 0 rgba(0,0,0,.35);
  --bevel-in:  inset 0 4px 0 rgba(0,0,0,.55),
               inset 0 -4px 0 rgba(255,255,255,.10);
  --drop-1: 4px 4px 0 rgba(0,0,0,.65);
  --drop-2: 8px 8px 0 rgba(0,0,0,.7);
  --drop-lift: 10px 12px 0 rgba(0,0,0,.55);

  /* glows are cheap: single hard ring, no blur during drag */
  --ring-gold: 0 0 0 4px var(--gold-400);
  --ring-legal:0 0 0 4px var(--legal);
  --ring-bad:  0 0 0 4px var(--illegal);

  /* ---- type --------------------------------------------- */
  --font-display:"Press Start 2P", monospace;   /* headings ONLY */
  --font-ui:"Silkscreen", "Press Start 2P", monospace; /* proposed body face */
  --fs-hero: 44px; --fs-h1: 28px; --fs-h2: 20px; --fs-h3: 14px;
  --fs-body: 15px; --fs-sm: 13px; --fs-xs: 11px;
  --lh-display: 1.35; --lh-body: 1.55;
  --track-display: 1px;

  /* ---- motion (stepped, never smooth) ------------------- */
  --step-2: steps(2, end);
  --step-4: steps(4, end);
  --step-6: steps(6, end);
  --t-tap: 80ms;  --t-ui: 140ms; --t-panel: 240ms; --t-flash: 400ms;
  --ease-ui: var(--step-4);

  /* ---- grid geometry ------------------------------------ */
  --row10: 14px;              /* px per 10 schedule minutes */
  --col-min: 168px;           /* .opcol min width */
  --rail-w: 320px;            /* caller rail */
  --topbar-h: 72px;

  /* ---- z layers ----------------------------------------- */
  --z-board: 1;
  --z-block: 10;
  --z-ghost: 20;
  --z-drag: 30;
  --z-rail: 40;
  --z-topbar: 50;
  --z-tray: 60;
  --z-crt: 900;
  --z-gate: 1000;
  --z-modal: 1100;
}
