/* Tokens do Subverse OS. Fonte única das cores, raio, fonte e calha: /styles/prism.css
   (gerado de tools/prism/subverse/tokens.json; fallback estático servido quando o Controller está off).
   Aqui ficam só as dimensões e estados do shell, e os aliases que mapeiam os nomes do shell
   para os tokens do Prism quando coincidem. Sem dupla fonte de cor/raio. */
:root {
  /* aliases do shell → tokens do Prism (fallback literais só para o OS sem /styles/prism.css) */
  --bg: var(--surface-sunken, #f0f0f0);
  --text-strong: var(--ink, #101010);
  --font-sub: var(--font-ui, "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif);
  --font-sub-title: var(--font-title, "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif);
  --sub-action-bg: var(--accent, #fbeebd);
  --sub-action-ink: var(--ink, #101010);
  --gap: var(--gutter, 8px);

  /* estados do shell (não vêm do Prism) */
  --selected: #ededed;
  --hover: rgba(16, 16, 16, 0.045);

  /* tags de estado editorial (A3): tokens semânticos locais — promover ao Prism depois.
     Contraste do texto ≥ 4,5:1 sobre o próprio fundo, nos dois temas. */
  --status-fechado-fg: #166534;
  --status-fechado-bg: #dcfce7;
  --status-rascunho-fg: #92400e;
  --status-rascunho-bg: #fef3c7;
  --status-aberto-fg: #5b21b6;
  --status-aberto-bg: #ede9fe;
  --status-neutral-fg: var(--text-secondary, #616161);
  --status-neutral-bg: var(--surface-sunken, #f0f0f0);

  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  /* Rótulos dos diagramas do acervo: as caixas do SVG vêm medidas pela ponte para uma sans do sistema. */
  --font-diagram: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;

  /* dimensões do shell (não são tokens de marca) */
  --rail-expanded: 232px;
  --rail-compact: 72px;
  --sidebar-w: 280px;
  --panel-w: 360px;
  --head-h: 56px;
  --home-max: 1280px;
  --search-w: 768px;

  --fs-body: 15px;
  --lh-body: 24px;
  --fs-h1: 32px;
  --lh-h1: 44px;
  --fs-h2: 18px;
  --lh-h2: 27px;

  --shadow-popover: 0 8px 30px rgba(0, 0, 0, 0.14), 0 1px 2px rgba(0, 0, 0, 0.08);
  --z-panel: 30;
  --z-popover: 40;
  --z-drawer: 50;
  --dur: 120ms;
  color-scheme: light;
}

/* Tema escuro do shell (a Sub não tem tema escuro no Prism; fica local). :root[data-theme="dark"]
   tem mais especificidade que o :root do /styles/prism.css, então o escuro sempre vence. */
:root[data-theme="dark"] {
  --ink: #ffffff;
  --text: #f2f2f2;
  --surface: #161616;
  --surface-raised: #101010;
  --surface-sunken: #1f1f1f;
  --bg: #0b0b0b;
  --text-secondary: #a3a3a3;
  --text-tertiary: #8a8a8a;
  --border: rgba(255, 255, 255, 0.14);
  --border-soft: rgba(255, 255, 255, 0.08);
  --border-strong: rgba(255, 255, 255, 0.22);
  --selected: #2a2a2a;
  --hover: rgba(255, 255, 255, 0.06);
  /* o quadrado "+ Novo" segue #fbeebd no escuro, então a tinta precisa continuar #101010 (A1);
     sem isso o alias --sub-action-ink: var(--ink) ficaria branco sobre fundo claro (contraste ~1.16:1). */
  --sub-action-ink: #101010;
  --shadow-popover: 0 8px 30px rgba(0, 0, 0, 0.6);

  /* tags de estado no escuro: fg clara sobre bg escura (A3) */
  --status-fechado-fg: #86efac;
  --status-fechado-bg: #14532d;
  --status-rascunho-fg: #fcd34d;
  --status-rascunho-bg: #78350f;
  --status-aberto-fg: #c4b5fd;
  --status-aberto-bg: #4c1d95;
  --status-neutral-fg: var(--text-secondary, #a3a3a3);
  --status-neutral-bg: var(--selected, #2a2a2a);
  color-scheme: dark;
}
