/* ─────────────────────────────────────────────────────────────────────────
 * design-systems/slack/tokens.css
 *
 * Structured token bindings for the "Slack" brand — aubergine sidebar,
 * light content surfaces, warm and human workplace communication.
 *
 * Brand identity in three sentences:
 *   1. Light-first content surfaces (white #FFFFFF / near-white #F8F8F8)
 *      anchored by the iconic deep aubergine (#4A154B) sidebar — the most
 *      recognizable UI element in workplace software.
 *   2. Larsseit for marketing display headings; system-ui for all product
 *      UI at 15px base (slightly below 16px for density); bold (700)
 *      channel names are the primary unread indicator.
 *   3. Four logo accent colors (blue, green, yellow, red) are strictly
 *      semantic (info/success/warn/danger) — never decorative accents;
 *      #1264A3 for links and focus rings.
 *
 * Schema decisions:
 *   - --bg: #FFFFFF; --surface: #F8F8F8 (thread panels, secondary).
 *   - --surface-warm aliases --surface (no warm tier in Slack's system).
 *   - --fg: #1D1C1D (near-black — not pure black per brand spec).
 *   - --accent: #4A154B (aubergine — primary CTAs and the sidebar).
 *   - --accent-hover: #611f69 (active aubergine).
 *   - --leading-tight: 1.10 (display compression at 48px).
 *   - h2 (36px) → 1.15; h3 (28px) → 1.25 per DESIGN.md type table.
 *   - --tracking-display: -0.021em (-1px / 48px normalized).
 *   - --radius-sm: 4px (buttons/inputs — Slack uses conservative radius).
 * ─────────────────────────────────────────────────────────────────── */

:root {
  /* ─── Surface ──────────────────────────────────────────────────── */
  --bg:           #ffffff;
  --surface:      #f8f8f8;              /* thread panels, secondary surfaces */
  --surface-warm: var(--surface);       /* no warm tier in Slack's system */

  /* ─── Foreground ───────────────────────────────────────────────── */
  --fg:   #1d1c1d;                      /* near-black — not pure black */
  --fg-2: #1d1c1d;                      /* same ink; no split tier */
  --muted: #616061;                     /* timestamps, muted labels */
  --meta:  #616061;                     /* same muted tier */

  /* ─── Border ───────────────────────────────────────────────────── */
  --border:      #dddddd;              /* standard dividers, card borders */
  --border-soft: #f1f1f1;             /* subtle row separators */

  /* ─── Accent ───────────────────────────────────────────────────── */
  --accent:        #4a154b;            /* aubergine — primary CTAs, sidebar bg */
  --accent-on:     #ffffff;
  --accent-hover:  #611f69;            /* active/hover aubergine */
  --accent-active: #350d36;            /* deep aubergine — pressed */

  /* ─── Semantic ─────────────────────────────────────────────────── */
  /* Logo palette: these ARE the semantic colors (info/success/warn/danger). */
  --success: #2eb67d;                  /* Slack teal green — online, success */
  --warn:    #ecb22e;                  /* Slack gold — away, warning */
  --danger:  #e01e5a;                  /* Slack ruby — notifications, errors */

  /* ─── Typography ───────────────────────────────────────────────── */
  --font-display: "Larsseit", "Helvetica Neue", Arial, sans-serif;
  --font-body:    system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-mono:    "Monaco", "Menlo", "Courier New", Courier, monospace;

  /* Type scale — DESIGN.md §Type Scale.
   * Slack base size is 15px (density). Display: 48px marketing hero.
   * Schema maps: xs=12, sm=15, base=15(=body), lg=18, xl=22, 2xl=28,
   * 3xl=36, 4xl=48. */
  --text-xs:   12px;                   /* caption / timestamp */
  --text-sm:   13px;                   /* body SM — secondary metadata */
  --text-base: 15px;                   /* default UI text (Slack's base) */
  --text-lg:   16px;                   /* body L — messages, descriptions */
  --text-xl:   22px;                   /* heading 2 — card titles */
  --text-2xl:  28px;                   /* heading 1 — modal titles */
  --text-3xl:  36px;                   /* display L — section heroes */
  --text-4xl:  48px;                   /* display XL — marketing hero */

  /* Leading + tracking.
   * --leading-tight=1.10: display hero compression.
   * h2 (36px) → 1.15; h3 (28px) → 1.25 per DESIGN.md.
   * --tracking-display: -0.021em = -1px / 48px normalized. */
  --leading-body:     1.5;
  --leading-tight:    1.10;
  --tracking-display: -0.021em;

  /* ─── Spacing ──────────────────────────────────────────────────── */
  /* 4px base grid per DESIGN.md §Spacing System. */
  --space-1:  4px;
  --space-2:  8px;
  --space-3:  12px;
  --space-4:  16px;
  --space-5:  20px;
  --space-6:  24px;
  --space-8:  32px;
  --space-12: 48px;

  /* Section rhythm. */
  --section-y-desktop: 80px;
  --section-y-tablet:  48px;
  --section-y-phone:   32px;

  /* ─── Radius ───────────────────────────────────────────────────── */
  /* 4px is Slack's standard for buttons and inputs — not cartoonish. */
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-pill: 9999px;

  /* ─── Elevation ────────────────────────────────────────────────── */
  /* Light shadows on a light surface. */
  --elev-flat:   none;
  --elev-ring:   0 0 0 1px var(--border);
  --elev-raised: 0 4px 12px rgba(0, 0, 0, 0.12);

  /* ─── Focus ────────────────────────────────────────────────────── */
  /* Slack focus: blue ring on #1264A3. */
  --focus-ring: 0 0 0 2px rgba(18, 100, 163, 0.25);

  /* ─── Motion ───────────────────────────────────────────────────── */
  --motion-fast:   150ms;
  --motion-base:   200ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);

  /* ─── Layout ───────────────────────────────────────────────────── */
  --container-max:            1200px;
  --container-gutter-desktop: 24px;
  --container-gutter-tablet:  16px;
  --container-gutter-phone:   16px;
}
