/* Tokens do design system XIAtech — ver docs/design-system.md.
   Nenhum outro arquivo deve escrever um valor de cor, sombra, raio ou duração
   diretamente: tudo referencia um token daqui. É o que mantém a interface
   coerente e o que torna o tema escuro uma troca de valores, não de regras. */

:root {
  color-scheme: light;

  /* Marca — os únicos valores cromáticos proprietários. */
  --xia-ink: #343b45;
  --xia-blue: #5d76e1;
  --xia-purple: #b074dd;
  --xia-gradient: linear-gradient(120deg, var(--xia-purple), var(--xia-blue));
  /* Gradientes de apoio: a bolha da própria pessoa no chat e o bloco de acesso
     total na administração. Não mudam entre temas — são superfícies sempre
     escuras, com texto branco por cima. */
  --gradient-user-bubble: linear-gradient(120deg, #7e73dc, var(--xia-blue));
  --gradient-ink: linear-gradient(120deg, var(--xia-ink), #525c69);
  --text-on-code: #f7f7f7;

  /* Superfícies, da mais ao fundo para a mais à frente. */
  --surface-page: #f7f7f7;
  --surface-card: #fff;
  --surface-subtle: #fafbfc;
  --surface-sunken: #f2f4f7;
  --surface-inverse: var(--xia-ink);
  --surface-overlay: rgba(32, 38, 52, 0.4);
  /* Barra superior fixa: translúcida sobre o conteúdo que rola por baixo. */
  --surface-header: rgba(255, 255, 255, 0.96);
  --surface-skeleton: rgba(52, 59, 69, 0.07);
  --surface-skeleton-shine: rgba(52, 59, 69, 0.04);

  /* Texto. */
  --text-strong: var(--xia-ink);
  --text-body: #59616d;
  --text-muted: #737c89;
  --text-soft: #8a929d;
  --text-on-brand: #fff;
  --text-on-inverse: #fff;
  --text-on-inverse-muted: rgba(255, 255, 255, 0.72);

  /* Traços. */
  --border-subtle: rgba(52, 59, 69, 0.08);
  --border-default: rgba(52, 59, 69, 0.13);
  --border-strong: rgba(52, 59, 69, 0.22);

  /* Ação e estado. */
  --accent: var(--xia-blue);
  --accent-strong: #4e61bd;
  --accent-soft: rgba(93, 118, 225, 0.11);
  --accent-ring: rgba(93, 118, 225, 0.15);
  --danger: #c44b62;
  --danger-soft: rgba(196, 75, 98, 0.12);
  --success: #247556;
  --success-soft: rgba(46, 143, 113, 0.11);
  --warning: #8a5a00;
  --warning-soft: rgba(214, 150, 20, 0.16);
  /* Séries de gráfico (validadas para daltonismo sobre --surface-card; ver docs/architecture.md). */
  --chart-1: #2a78d6;
  --chart-2: #1baf7a;
  --chart-3: #eb6834;
  --chart-4: #4a3aa7;
  --chart-grid: #e6e8ec;
  --info-soft: rgba(176, 116, 221, 0.11);
  --badge-admin-text: #573d79;
  --badge-admin-bg: rgba(176, 116, 221, 0.2);
  --badge-common-text: #3f57b8;
  --badge-common-bg: rgba(93, 118, 225, 0.13);

  /* Elevação. */
  --shadow-sm: 0 8px 24px rgba(52, 59, 69, 0.06);
  --shadow-md: 0 12px 30px rgba(52, 59, 69, 0.05);
  --shadow-lg: 0 14px 38px rgba(52, 59, 69, 0.07);
  --shadow-overlay: 0 24px 60px rgba(52, 59, 69, 0.25);
  --shadow-accent: 0 10px 20px rgba(93, 118, 225, 0.27);

  /* Raio. */
  --radius-xs: 6px;
  --radius-sm: 11px;
  --radius-md: 14px;
  --radius-lg: 18px;
  --radius-xl: 24px;
  --radius-pill: 999px;

  /* Movimento — faixa e curva definidas no design system. */
  --ease: cubic-bezier(0.2, 0, 0.2, 1);
  --motion-fast: 140ms;
  --motion-base: 200ms;
  --motion-slow: 320ms;
}

/* Tema escuro: ativado só por escolha explícita da pessoa (data-theme no <html>),
   nunca pela preferência do sistema — o padrão do sistema interno é o tema claro.
   As cores de marca não mudam; o que muda é a pilha de superfícies e de texto. */
:root[data-theme='dark'] {
  color-scheme: dark;

  --surface-page: #14181d;
  --surface-card: #1c2128;
  --surface-subtle: #191e24;
  --surface-sunken: #232a32;
  --surface-inverse: #0f1317;
  --surface-overlay: rgba(6, 9, 13, 0.62);
  --surface-header: rgba(28, 33, 40, 0.94);
  --surface-skeleton: rgba(255, 255, 255, 0.07);
  --surface-skeleton-shine: rgba(255, 255, 255, 0.04);

  --text-strong: #e7e9ed;
  --text-body: #b7bec9;
  --text-muted: #98a1ad;
  --text-soft: #7d8693;

  --border-subtle: rgba(255, 255, 255, 0.07);
  --border-default: rgba(255, 255, 255, 0.12);
  --border-strong: rgba(255, 255, 255, 0.22);

  /* Um azul um passo mais claro mantém o contraste do texto de link sobre fundo escuro. */
  --accent: #8098ee;
  --accent-strong: #a3b4f4;
  --accent-soft: rgba(128, 152, 238, 0.16);
  --accent-ring: rgba(128, 152, 238, 0.22);
  --danger: #e5788c;
  --danger-soft: rgba(229, 120, 140, 0.16);
  --success: #5cc79b;
  --success-soft: rgba(92, 199, 155, 0.16);
  --warning: #f0c060;
  --warning-soft: rgba(240, 192, 96, 0.16);
  --chart-1: #3987e5;
  --chart-2: #199e70;
  --chart-3: #d95926;
  --chart-4: #9085e9;
  --chart-grid: #2b323b;
  --info-soft: rgba(176, 116, 221, 0.16);
  --badge-admin-text: #d6b4f2;
  --badge-admin-bg: rgba(176, 116, 221, 0.22);
  --badge-common-text: #aebbf6;
  --badge-common-bg: rgba(93, 118, 225, 0.22);

  --shadow-sm: 0 8px 24px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 12px 30px rgba(0, 0, 0, 0.42);
  --shadow-lg: 0 14px 38px rgba(0, 0, 0, 0.48);
  --shadow-overlay: 0 24px 60px rgba(0, 0, 0, 0.6);
  --shadow-accent: 0 10px 20px rgba(93, 118, 225, 0.32);
}
