/** * Tokens de design do SeConectai Vendas (seção 6 do schema de arquitetura * de frontend — Etapas/V2/10-frontend-schema-arquitetura.md). * * `--color-primary` é resolvida em runtime por tenant (whitelabel) pela * Etapa 13 — o valor abaixo é só o fallback exibido antes da resolução * (ou quando o tenant não define cor própria). */ :root { /* Paleta neutra da plataforma — igual em master e em todos os tenants */ --neutral-950: #12141a; --neutral-500: #6b7280; --neutral-200: #e5e7eb; --neutral-50: #f8f9fb; --surface: #ffffff; /* Cores semânticas */ --danger: #dc2626; --success: #16a34a; --warning: #d97706; /* Identidade fixa do painel master (não whitelabel) */ --brand-master: #1e3a5f; --brand-master-accent: #2dd4bf; /* Cor de marca dinâmica por tenant — fallback até a Etapa 13 resolver `tenants.cor_primaria` via endpoint público de tema */ --color-primary: #2563eb; /* Variante de `--color-primary` garantida com contraste AA contra branco (Etapa 13, `lib/theme/contrast.ts`) — usar em texto/ícone sobre fundo claro (`text-primary-on-light`). NUNCA usar para fundos: `bg-primary` continua com a cor original do tenant, sem ajuste. */ --color-primary-on-light: var(--color-primary); } /* Ponte para o Tailwind v4 (CSS-first): mapeia as CSS variables acima para o namespace de cor do tema, gerando as utilities `bg-primary`, `text-danger`, `bg-neutral-950` etc. sem duplicar os valores em JS. */ @theme inline { --color-neutral-950: var(--neutral-950); --color-neutral-500: var(--neutral-500); --color-neutral-200: var(--neutral-200); --color-neutral-50: var(--neutral-50); --color-surface: var(--surface); --color-danger: var(--danger); --color-success: var(--success); --color-warning: var(--warning); --color-brand-master: var(--brand-master); --color-brand-master-accent: var(--brand-master-accent); --color-primary: var(--color-primary); --color-primary-on-light: var(--color-primary-on-light); --font-sans: var(--font-inter); } @layer utilities { .tabular-nums { font-variant-numeric: tabular-nums; } }