/* link-book design tokens — "Signal console" recolor
   Dark, border-led operator surface. Cool near-black canvas cast toward blue,
   hairline rules, and a single blue signal hue that is deliberately separated
   from the red-danger and green-success roles. Monospace is reserved for
   URL/host data only. Palette in OKLCH. */

:root {
  /* ===== Color: cool near-black canvas (blue cast, authored, not flat gray) ===== */
  --bg:            oklch(0.15 0.012 250);
  --surface:       oklch(0.19 0.012 250);
  --surface-2:     oklch(0.24 0.013 250);
  --surface-3:     oklch(0.29 0.014 250);
  --border:        oklch(0.30 0.012 250);
  --border-strong: oklch(0.40 0.014 250);

  --text:      oklch(0.96 0.006 250);
  --text-2:    oklch(0.78 0.008 250);
  --text-3:    oklch(0.56 0.008 250);

  /* ===== Color: signal (blue, hue 250) — distinct from danger(25) and success(145) ===== */
  --accent:        oklch(0.72 0.13 250);
  --accent-strong: oklch(0.64 0.14 250);
  --accent-soft:   oklch(0.28 0.05 250);
  --accent-text:   oklch(0.16 0.03 250);

  /* ===== Color: state roles ===== */
  --danger:      oklch(0.64 0.18 25);  /* kept darker than accent so they separate in grayscale */
  --danger-soft: oklch(0.26 0.06 25);
  --success:     oklch(0.80 0.14 145);
  --success-soft: oklch(0.27 0.05 145);
  /* Focus is its own brighter tint of the signal, never the fill — keyboard focus
     must not be confused with selection (accent-soft) or error (danger). */
  --focus:       oklch(0.85 0.11 250);
  --disabled:    oklch(0.40 0.006 250);

  /* ===== Spacing (1 / 4 / 9 rhythm: 4, 16, 36) ===== */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-9: 36px;
  --space-12: 48px;

  /* ===== Radii: sharp, border-led ===== */
  --radius-sm: 3px;
  --radius-md: 4px;
  --radius-lg: 6px;

  /* ===== Type ===== */
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;
  --fs-caption: 0.8125rem; /* 13px */
  --fs-body:    1rem;       /* 16px */
  --fs-title:   1.375rem;   /* 22px */
  --fs-page:    1.75rem;    /* 28px */
  --lh-tight: 1.25;
  --lh-body: 1.55;

  /* ===== Elevation: borders do the work, no soft shadows ===== */
  --elevation: none;

  /* ===== Motion: crisp, quick ===== */
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --dur-fast: 90ms;
  --dur: 140ms;

  /* ===== Z layers ===== */
  --z-base: 0;
  --z-sticky: 10;
  --z-overlay: 100;
  --z-modal: 200;

  /* ===== Component tokens ===== */
  --row-min-h: 52px;
  --icon: 26px;
  --shimmer-dur: 1.1s;
  --rail-w: 244px;
}
