/* NC Zoning Academy — theme tokens.
 *
 * Semantic CSS custom properties, mirroring the map's theme.css approach.
 * Default theme = Night Corp. To add a theme, define `html.theme-<name> { … }`
 * overriding the same semantic vars — nothing else in the app hardcodes colour.
 *
 * Palette values are the source of truth from the 0.1.0 shell's `C` object, so
 * the rebuild matches the live look pixel-for-pixel.
 */

@font-face {
  font-family: 'Night Corp Display';
  src: url('../font/NightCorpDisplay-Regular.woff2') format('woff2'),
       url('../font/NightCorpDisplay-Regular.otf') format('opentype');
  font-weight: 400;
  font-display: swap;
}

:root,
html.theme-night-corp {
  /* raw palette (Night Corp) */
  --navy:  #0a192f;
  --dark:  #112240;
  --cyan:  #00f0ff;
  --amber: #ffb300;
  --gold:  #ffd400;
  --green: #00ff9d;
  --red:   #ff3355;
  --gray:  #8892b0;
  --white: #e6f1ff;

  /* semantic roles (reference these in components, never the raw palette) */
  --bg:          var(--navy);
  --surface:     var(--dark);
  --panel-bg:    rgba(17, 34, 64, 0.40);
  --primary:     var(--cyan);   /* Zoning Cyan — links, focus, primary accents */
  --secondary:   var(--amber);  /* warnings / secondary emphasis */
  --tertiary:    var(--gold);   /* Academy gold — track titles, certificate */
  --success:     var(--green);
  --danger:      var(--red);
  --text:        var(--white);
  --text-soft:   #c3cfe2;                  /* orientation-card body copy */
  --muted:       var(--gray);
  --placeholder: #54617f;                  /* also dim hints (skip hint, RETURNING OPERATOR?) */
  --primary-dim: rgba(0, 240, 255, 0.55);  /* dimmed cyan — idle button text */
  --field-bg:    #050a14;                  /* near-black input background */
  --hero-a:      #0d1f3a;                  /* course-card hero gradient start */
  --hero-b:      #122a4d;                  /* course-card hero gradient end */

  /* surfaces */
  --card-bg:   rgba(10, 25, 47, 0.92);
  --card-glow: 0 0 40px rgba(0, 240, 255, 0.15);

  /* lines / edges */
  --line:        rgba(0, 240, 255, 0.25);
  --line-strong: rgba(0, 240, 255, 0.35);
  --line-muted:  rgba(136, 146, 176, 0.5);
  --line-faint:  rgba(136, 146, 176, 0.2);

  /* scrollbar */
  --scrollbar-track:      var(--navy);
  --scrollbar-thumb:      #173254;
  --scrollbar-thumb-hover:#1e4470;

  /* scanline / vignette overlays */
  --scanline:  rgba(0, 240, 255, 0.035);
  --vignette:  rgba(0, 0, 0, 0.45);

  /* typography */
  --font-display:  'Orbitron', system-ui, sans-serif;   /* headings */
  --font-body:     'Rajdhani', system-ui, sans-serif;    /* body / UI */
  --font-mono:     'Fira Code', ui-monospace, monospace; /* code / terminal */
  --font-identity: 'Night Corp Display', var(--font-display); /* Tier-0 wordmark, titlebars, cert */

  /* type scale */
  --fs-xs: 12px;
  --fs-sm: 14px;
  --fs-md: 15px;
  --fs-lg: 18px;
  --fs-xl: 25px;
  --fs-2xl: 30px;
  --tracking-caps: 0.16em; /* letter-spacing for uppercase labels */

  /* geometry — Night Corp is sharp: no rounded corners */
  --radius: 0;

  /* spacing scale */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-6: 24px;
  --sp-8: 32px;

  /* layout */
  --header-h: 62px; /* measured; monolith header is 62, not 64 */
  --rail-w: 280px;
}

/* Additional themes (Arasaka / Militech / …) will be added here as
   `html.theme-<name> { --primary: …; --bg: …; … }`, overriding only the
   semantic roles. The palette + component layers stay untouched. */
