/* MCPF brand theme override (2026-05-14)
 * Sobrescreve cores verde/preto do EVO CRM para amarelo/azul do MCPF.
 * Injetado via nginx sub_filter no <head> de toda página HTML.
 * Sobrevive a rebuilds — é arquivo separado, fora do bundle.
 */

:root, :root.dark, :root.light, [data-theme="dark"], [data-theme="light"] {
  /* MCPF Primary: amarelo (botões, ações principais) */
  --primary: #FFD700 !important;
  --primary-foreground: #0a1228 !important;
  --color-primary: #FFD700 !important;
  --color-primary-foreground: #0a1228 !important;

  /* Ring (focus outline) — amarelo */
  --ring: #FFD700 !important;
  --color-ring: #FFD700 !important;

  /* Accent — azul MCPF */
  --accent: #1e3a8a !important;
  --accent-foreground: #FFD700 !important;
  --color-accent: #1e3a8a !important;
  --color-accent-foreground: #FFD700 !important;

  /* Sidebar — dark navy + yellow accents */
  --sidebar-primary: #FFD700 !important;
  --sidebar-primary-foreground: #0a1228 !important;
  --sidebar-accent: rgba(255,215,0,0.12) !important;
  --sidebar-accent-foreground: #FFD700 !important;
  --sidebar-ring: #FFD700 !important;
}

/* Replace specific green hex used across components */
[style*="#00bb7f"], [style*="#00c758"], [style*="#00ffa7"], [style*="#10b981"] {
  /* Targeted overrides for inline styles */
  background-color: #FFD700 !important;
  color: #0a1228 !important;
}

/* Chrome-yellow active conversation row */
button[data-conversation-active="true"],
[data-state="active"][class*="conversation"],
[aria-current="true"] {
  background-color: rgba(255, 215, 0, 0.18) !important;
  border-color: #FFD700 !important;
}

/* Send / Resposta button (verde no original) */
button[type="submit"],
button:where([data-variant="default"]):not([disabled]) {
  background-color: #FFD700;
  color: #0a1228;
}
button[type="submit"]:hover {
  background-color: #E6C200;
}

/* Esconder item Social Login da admin sidebar.
 * Upstream EVO CRM Community apresenta a tela /settings/admin/social-login
 * mas o initializer OmniAuth quebrado faz dela um no-op. Já que substituímos
 * tudo via SSO bridge MCPF (ver sso-google-bridge.md), o item residual fica
 * confuso pra users. Esconde sem tocar no upstream. */
a[href*="/settings/admin/social-login"],
[href*="/settings/admin/social-login"] {
  display: none !important;
}

/* Esconder itens admin do menu primário + sub-itens de Configurações para
 * usuários NÃO-admin. Tiers definidos em sidebar-rbac.js (a partir de
 * /api/v1/profile.evo_role_key, exposto por zz_mcpf_profile_role_key.rb):
 *   - admin       → vê tudo (sem regra aqui)
 *   - franqueado  → vê /reports (dados escopados pelo time via
 *                   zz_mcpf_reports_scope.rb); demais áreas admin ocultas
 *   - agent       → consultor, esconde tudo da lista admin
 * Defense-in-depth de URL direta é feita pelo próprio overlay
 * (redireciona /settings/* não permitido → /settings/canned-responses;
 * outros → /). Upstream RBAC seria a forma correta, mas o fork tem
 * User#has_permission? retornando true literal — ver
 * reference_mcpf_evo_crm_rbac.
 *
 * Listas em sincronia com BLOCKED_TOP_LEVEL_* em sidebar-rbac.js. */
html[data-mcpf-role="agent"] a[href="/channels"],
html[data-mcpf-role="agent"] a[href="/reports"],
html[data-mcpf-role="agent"] a[href="/agents"],
html[data-mcpf-role="agent"] a[href="/bots"],
html[data-mcpf-role="agent"] a[href="/marketplace"],
html[data-mcpf-role="agent"] a[href="/documentation"],
html[data-mcpf-role="agent"] a[href="/tutorials"],
html[data-mcpf-role="franqueado"] a[href="/channels"],
html[data-mcpf-role="franqueado"] a[href="/agents"],
html[data-mcpf-role="franqueado"] a[href="/bots"],
html[data-mcpf-role="franqueado"] a[href="/marketplace"],
html[data-mcpf-role="franqueado"] a[href="/documentation"],
html[data-mcpf-role="franqueado"] a[href="/tutorials"] {
  display: none !important;
}

/* Configurações: esconde TODOS os sub-itens exceto Respostas Rápidas
 * (/settings/canned-responses). Vale tanto para agent quanto franqueado. */
html[data-mcpf-role="agent"] a[href^="/settings/"]:not([href^="/settings/canned-responses"]),
html[data-mcpf-role="franqueado"] a[href^="/settings/"]:not([href^="/settings/canned-responses"]) {
  display: none !important;
}

/* MCPF_LIGHT_THEME_CONTRAST_v0112 ===================================== *
 * Contraste no TEMA CLARO. O amarelo de marca (#FFD700) só deve ser FUNDO
 * ou texto sobre o accent navy. Como TEXTO sobre superfícies claras (tema
 * claro) fica ilegível (contraste ~1.4). No tema claro (html sem .dark), os
 * realces que usam amarelo como texto viram navy #0a1228 legível. Botões
 * amarelos (bg-primary + primary-foreground) e texto amarelo sobre bg-accent
 * navy permanecem. Tema escuro não é afetado (regras escopadas em :not(.dark)). */
html:not(.dark) {
  --sidebar-accent-foreground: #0a1228 !important; /* item ativo na sidebar clara */
  --ring: #0a1228 !important;                        /* outline de foco visível */
}
html:not(.dark) .text-primary { color: #0a1228 !important; }
/* ===== fim MCPF_LIGHT_THEME_CONTRAST_v0112 ========================== */

/* MCPF_LIGHT_THEME_BTN_GHOST_v0113 =================================== *
 * Botão "Análise IA" (.mcpf-lt-btn--ghost do lead-temperature.js) usa
 * color:var(--mcpf-text,#e2e8f0) + border:var(--mcpf-border,#2a3753), tons
 * DARK-friendly. No tema claro o texto cinza-claro fica ilegível sobre o
 * header branco. No tema claro: texto navy + borda slate visível. */
html:not(.dark) .mcpf-lt-btn--ghost {
  color: #0a1228 !important;
  border-color: #cbd5e1 !important;
}
/* ===== fim MCPF_LIGHT_THEME_BTN_GHOST_v0113 ========================= */
