/* ai-os-admin-design · tokens.css
   Источник правды по палитре, шрифту и форме. Не хардкодь hex/oklch в разметке —
   только var(--*). Значения перенесены из SKILL.md дословно. */

/* ── IBM Plex Mono (локально, офлайн) ───────────────────────────────── */
@font-face {
  font-family: "IBM Plex Mono";
  font-weight: 300;
  font-style: normal;
  font-display: swap;
  src: url("fonts/IBMPlexMono-Light.ttf") format("truetype");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("fonts/IBMPlexMono-Regular.ttf") format("truetype");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  src: url("fonts/IBMPlexMono-Italic.ttf") format("truetype");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url("fonts/IBMPlexMono-Medium.ttf") format("truetype");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url("fonts/IBMPlexMono-SemiBold.ttf") format("truetype");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url("fonts/IBMPlexMono-Bold.ttf") format("truetype");
}

:root {
  /* ── Бумага (фон / поверхности) ─────────────────────────────────── */
  --paper:        oklch(0.95 0.01 80);
  --paper-soft:   oklch(0.93 0.012 80);
  --paper-mute:   oklch(0.91 0.013 80);
  --paper-border: oklch(0.80 0.02 80);

  /* ── Чернила (текст) ────────────────────────────────────────────── */
  --ink:          oklch(0.20 0.02 265);
  --ink-soft:     oklch(0.45 0.02 265);

  /* ── Семантические алиасы ───────────────────────────────────────── */
  --bg:        var(--paper);
  --bg-card:   var(--paper-soft);
  --bg-muted:  var(--paper-mute);
  --border:    var(--paper-border);
  --fg:        var(--ink);
  --fg-muted:  var(--ink-soft);
  --fg-on-ink: var(--paper);

  /* ── Статусы — ТОЛЬКО функционально, тёпло-приглушённые ─────────── */
  --ok:        oklch(0.52 0.10 150);
  --warn:      oklch(0.64 0.12 75);
  --err:       oklch(0.52 0.17 27);
  --info:      oklch(0.52 0.09 250);
  --idle:      var(--fg-muted);

  /* фоновая заливка пилюль/заметок (мягкий вариант каждого статуса) */
  --ok-soft:   oklch(0.52 0.10 150 / 0.12);
  --warn-soft: oklch(0.64 0.12 75 / 0.14);
  --err-soft:  oklch(0.52 0.17 27 / 0.12);
  --info-soft: oklch(0.52 0.09 250 / 0.12);
  --idle-soft: oklch(0.45 0.02 265 / 0.10);

  /* ── Тип ────────────────────────────────────────────────────────── */
  --font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  --fs-display: 36px;
  --fs-h1:      24px;
  --fs-h2:      18px;
  --fs-body:    14px;
  --fs-sm:      13px;
  --fs-xs:      11px;

  --tracking-label: 0.1em;
  --tracking-caps:  0.15em;
  --tracking-wide:  0.2em;
  --tracking-tight: -0.02em;

  /* ── Форма / интервалы ──────────────────────────────────────────── */
  --radius: 2px;
  --radius-full: 999px;
  --hairline: 1px solid var(--border);
  --rule:     1px solid var(--fg);

  --sidebar-w: 232px;
  --topbar-h:  56px;

  /* ── Движение ───────────────────────────────────────────────────── */
  --dur-fast: 140ms;
  --dur-base: 240ms;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}
