/* ============================================================
   M50.Infra.UI.Razor — Theme Bridge
   ------------------------------------------------------------
   Mapeia tokens internos da camada UI (--m50ui-*) para os
   tokens canônicos do Design System da Plataforma M50 (--m50-*).

   Carregar SOMENTE quando a Plataforma M50 estiver presente.
   Sem este arquivo, m50-ui.css funciona standalone usando o
   M50DefaultTheme (dark, ciano).

   Cada token tem fallback: se a variável da plataforma não
   estiver definida no escopo atual (ex: data-theme não setado),
   o fallback preserva a aparência default M50.Infra.UI.
   ============================================================ */

:root {
    /* ===== Cores semânticas ===== */
    --m50ui-primary:      var(--m50-primary,      #00e5ff);
    --m50ui-secondary:    var(--m50-accent,       #7c4dff);
    --m50ui-success:      var(--m50-success,      #22c55e);
    --m50ui-warning:      var(--m50-warning,      #f59e0b);
    --m50ui-danger:       var(--m50-danger,       #ef4444);
    --m50ui-info:         var(--m50-info,         #3b82f6);
    --m50ui-neutral:      var(--m50-text-tertiary, #64748b);

    /* ===== Superfícies ===== */
    --m50ui-bg:           var(--m50-surface-secondary, #0a0e1a);
    --m50ui-surface:      var(--m50-surface-primary,   #11182b);

    /* ===== Texto sobre superfícies ===== */
    --m50ui-on-bg:        var(--m50-text-primary,   #e2e8f0);
    --m50ui-on-surface:   var(--m50-text-secondary, #cbd5e1);
    /* Muted (legendas, hints, metadata) — herda do text-tertiary do tema da plataforma.
       Garante contraste em qualquer paleta sem hard-coding. */
    --m50ui-on-bg-muted:      var(--m50-text-tertiary, #94a3b8);
    --m50ui-on-surface-muted: var(--m50-text-tertiary, #94a3b8);

    /* ===== Texto de destaque / accent =====
       ATENÇÃO: --m50ui-primary é cor de SUPERFÍCIE (no dark VS Code = #252526, idêntico
       ao fundo). Para texto destacado (títulos secundários, links, números chamativos),
       use --m50ui-accent-text — overrides por tema garantem contraste WCAG ≥4.5:1. */
    --m50ui-accent-text:  var(--m50-info, #00e5ff);

    /* ===== Tipografia ===== */
    --m50ui-mono: 'Cascadia Mono', 'Cascadia Code', Consolas, 'Courier New', ui-monospace, monospace;

    /* on-primary/on-secondary: usa token semântico dedicado se a plataforma definir
       (--m50-on-primary), senão cai em text-inverse. Como text-inverse foi pensado
       para inverter o text-primary do tema (NÃO para contrastar com o primary color),
       este fallback é coberto por overrides explícitos por [data-theme] mais abaixo
       para garantir contraste WCAG AA ≥4.5:1. */
    --m50ui-on-primary:   var(--m50-on-primary, var(--m50-text-inverse, #001218));
    --m50ui-on-secondary: var(--m50-on-secondary, #ffffff);

    /* ===== Bordas e foco ===== */
    --m50ui-border:       var(--m50-border-color, var(--m50-surface-tertiary, #1f2937));
    --m50ui-focus-ring:   var(--m50-accent,       #00e5ff);

    /* ===== Aliases de compatibilidade para componentes EntityApp (Wizard/Runtime/etc.) ===== */
    --m50ui-text:         var(--m50ui-on-bg);
    --m50ui-text-muted:   var(--m50ui-on-bg-muted);
    --m50ui-surface-2:    var(--m50ui-bg);
}

/* ============================================================
   Overrides por tema (WCAG AA — contraste ≥4.5:1 garantido)
   ------------------------------------------------------------
   A plataforma não expõe --m50-on-primary semântico ainda; esses
   overrides garantem contraste correto até a Camada 2 (refactor
   na plataforma) ser feita.
   ============================================================ */

/* Light: primary #667eea (roxo claro) — branco dá só 3,7:1; texto escuro dá 4,9:1 (WCAG AA, DS §15.3).
   Accent-text: indigo legível em fundo branco. */
[data-theme="light"] {
    --m50ui-on-primary: #0f172a;
    /* texto secundário: #bdbdbd dava 1,9:1 e #757575 dava 4,4:1 sobre #fafafa — escurecidos para ≥ 5,9:1 (DS §15.3) */
    --m50ui-on-surface: #424242;
    --m50ui-on-surface-muted: #616161;
    --m50ui-on-bg-muted: #616161;
    --m50ui-accent-text: #4f46e5;   /* indigo-600 — contraste ≥4.5:1 em #ffffff */
}

/* Dark: primary #252526 (cinza VS Code) — text-inverse é #212121 (idêntico)
   Override forçando branco para evitar contraste 1.04:1 em buttons/wizard/badges.
   Accent-text: ciano claro — contraste 8.5:1 em #1e1e1e (atende WCAG AAA). */
[data-theme="dark"] {
    --m50ui-on-primary: #f1f5f9;
    --m50ui-accent-text: #4dd0e1;   /* ciano material 300 */
}

/* Melon: primary #C5E1A5 (verde claro) e secondary #D48B3A (laranja) — branco dá 1,4:1 e 2,8:1; texto escuro dá
   10,9:1 e 6,6:1 (WCAG AA, DS §15.3). Accent-text: magenta escuro para contraste em fundo claro do melon. */
[data-theme="melon"] {
    --m50ui-on-primary: #14290a;
    --m50ui-on-secondary: #1c1206;
    /* texto secundário: #90A4AE dava 2,4:1 sobre o fundo verde-claro — escurecido para 5,6:1 (DS §15.3) */
    --m50ui-on-surface-muted: #55656e;
    --m50ui-on-bg-muted: #55656e;
    --m50ui-on-info: #ffffff;   /* info #2C5F7D é escuro: branco dá 6,9:1 */
    --m50ui-accent-text: #c2185b;   /* magenta escuro — contraste em fundo melon */
}

/* Prosperity Blue: primary #2563eb (azul) com branco dá 5,2:1; secondary #38bdf8 (azul-claro) com branco dá só 2,1:1 —
   o texto do botão secundário fica escuro (9,4:1, WCAG AA, DS §15.3). */
[data-theme="prosperity-blue"] {
    --m50ui-on-primary: #ffffff;
    --m50ui-on-secondary: #020617;
    --m50ui-accent-text: #60a5fa;   /* azul claro */
}
