/* ============================================================
   M50.Infra.UI.Razor — Utilitárias de TEXTO temático
   ------------------------------------------------------------
   CSS GLOBAL (servido como _content/M50.Infra.UI.Razor/m50-ui-text.css),
   NÃO scoped — imune ao modo de falha "bundle scoped não recompilado".
   Carregar SEMPRE depois de m50-ui.css + m50-ui-bridge.css.

   ⚠️ LEI DE COR DE TEXTO (Design System §4/§14):
   - Texto normal      → var(--m50ui-on-bg) / on-surface / on-bg-muted
   - Texto de acento   → var(--m50ui-accent-text)   (contraste por tema)
   - Texto sobre cor   → var(--m50ui-on-primary)
   - NUNCA use como cor de TEXTO: --m50ui-primary / --m50-primary (são
     SUPERFÍCIE, ≈ fundo em alguns temas → texto invisível), --m50ui-surface,
     --m50ui-border, nem hex/rgb/hsl hardcoded.
   Todos os tokens trocam por tema via m50-ui-bridge.css ([data-theme]).
   ============================================================ */

/* Rede de segurança: qualquer texto sem cor explícita herda algo legível
   em qualquer tema. Baixo risco — apenas define o color herdável do body. */
body { color: var(--m50ui-on-bg); }

/* Classes utilitárias — aplique no markup (class="m50-text") para garantir
   legibilidade independente de scoped CSS. */
.m50-text            { color: var(--m50ui-on-bg); }
.m50-text-secondary  { color: var(--m50ui-on-surface); }
.m50-text-muted      { color: var(--m50ui-on-bg-muted); }
.m50-text-accent     { color: var(--m50ui-accent-text); }
.m50-text-on-accent  { color: var(--m50ui-on-primary); }

.m50-text-success    { color: var(--m50ui-success); }
.m50-text-warning    { color: var(--m50ui-warning); }
.m50-text-danger     { color: var(--m50ui-danger); }
.m50-text-info       { color: var(--m50ui-info); }
