/* ============================================================
   LE CROQUE — modo noturno (dark)
   Ativado por [data-theme="dark"] no <html> (via theme.js).
   ESTRATEGIA: remapeia tokens de TEXTO (so-foreground) e o
   --creme-claro (so-fundo) para tons escuros; MANTEM
   --vinho/--creme/--dourado (marca) intactos — as secoes vinho e
   os botoes vinho+creme ja ficam bem no escuro. Overrides pontuais
   nas superficies #fff/creme e nos titulos que usam vinho como texto.
   Nada aqui renomeia/remove regra existente: e 100% aditivo.
   ============================================================ */
:root[data-theme="dark"] {
  /* tokens de TEXTO (sempre foreground) -> claros */
  --texto: #ecdcc9;
  --texto-suave: #b3a08c;
  --suave: #b3a08c;
  --muted: #b09a83;
  --chocolate: #f0e3d3;
  --choco: #f0e3d3;
  /* --creme-claro e usado so como fundo -> escuro */
  --creme-claro: #211712;
  /* hairlines claros sobre escuro */
  --line: rgba(240, 226, 210, .14);
  --linha: rgba(240, 226, 210, .14);
  /* card um tom ACIMA do fundo da pagina p/ elevacao perceptivel */
  --card: #2a1e17;
  color-scheme: dark;
}

/* ---- fundo base da pagina (--creme e #fff cravados como superficie) ---- */
:root[data-theme="dark"] body { background: #191110; }
:root[data-theme="dark"] .linha,
:root[data-theme="dark"] .visite { background: #191110; }
:root[data-theme="dark"] .sobre,
:root[data-theme="dark"] .eventos,
:root[data-theme="dark"] .sazonal,
:root[data-theme="dark"] .social { background: #130d0b; }

/* header translucido claro -> escuro */
:root[data-theme="dark"] .site-header { background: rgba(25, 17, 16, .92); border-bottom-color: rgba(240, 226, 210, .1); }
:root[data-theme="dark"] .nav { background: #191110; } /* menu mobile off-canvas */

/* ---- superficies brancas/creme -> escuras (cards, paineis, inputs) ---- */
:root[data-theme="dark"] .card,
:root[data-theme="dark"] .cardapio-card,
:root[data-theme="dark"] .evt-publico,
:root[data-theme="dark"] .symbol-card,
:root[data-theme="dark"] .topbar,
:root[data-theme="dark"] .login,
:root[data-theme="dark"] .tool,
:root[data-theme="dark"] .kpi,
:root[data-theme="dark"] .panel,
:root[data-theme="dark"] .tablewrap,
:root[data-theme="dark"] input,
:root[data-theme="dark"] textarea,
:root[data-theme="dark"] .pv-card,
:root[data-theme="dark"] .pv-opt.sel,
:root[data-theme="dark"] .pchip,
:root[data-theme="dark"] .fpanel,
:root[data-theme="dark"] .fkpi,
:root[data-theme="dark"] .cm-card,
:root[data-theme="dark"] .cm-kpi,
:root[data-theme="dark"] .kb-card,
:root[data-theme="dark"] .cm-chartbox,
:root[data-theme="dark"] .cm-tabs button,
:root[data-theme="dark"] .cm-chip,
:root[data-theme="dark"] .cm-sort,
:root[data-theme="dark"] .cm-copy,
:root[data-theme="dark"] .cm-recompra,
:root[data-theme="dark"] .cm-searchbar input,
:root[data-theme="dark"] .cm-field input,
:root[data-theme="dark"] .cm-field select { background: #2a1e17; border-color: rgba(240, 226, 210, .14); }
:root[data-theme="dark"] .kb-col { background: #1f1610; border: 1px solid rgba(240, 226, 210, .06); }
/* linha de grupo da DRE (financeiro) tinha #faf3ea cravado -> tint escuro */
:root[data-theme="dark"] table.dre tr.grp td { background: #322418; border-bottom-color: rgba(240, 226, 210, .12); color: #f3e2ce; }
/* barra de comparativo (fundo da trilha) */
:root[data-theme="dark"] .cmp .bar { background: rgba(240, 226, 210, .10); }
:root[data-theme="dark"] input:focus,
:root[data-theme="dark"] textarea:focus { background: #322419; }
/* selects genericos (ferramentas internas novas, ex. fechamento) */
:root[data-theme="dark"] select { background: #2a1e17; border-color: rgba(240, 226, 210, .14); color: #ecdcc9; }
:root[data-theme="dark"] select:focus { background: #322419; }

/* ---- titulos/labels que usam --vinho como TEXTO -> clarear
        (--vinho segue vinho para FUNDOS de botao/secao) ---- */
:root[data-theme="dark"] h1,
:root[data-theme="dark"] h2,
/* h3 tinha ficado fora: gestao.css:12 pinta h1,h2,h3 de vinho, mas so h1 e h2
   estavam cobertos aqui. Media 1,65:1 de contraste no escuro (ilegivel) em
   TODA subsecao de /gestao — fechamento, financeiro, vendas-dia, conselho. */
:root[data-theme="dark"] h3,
:root[data-theme="dark"] h4,
:root[data-theme="dark"] .fin-head h1,
:root[data-theme="dark"] .fin-head .big b,
:root[data-theme="dark"] .topbar .ttl,
:root[data-theme="dark"] .cm-title,
:root[data-theme="dark"] .cm-nm,
:root[data-theme="dark"] .cm-sec h2,
:root[data-theme="dark"] .cm-kpi .n,
/* .cm-kpi .n (KPI do comercial) estava aqui, mas o .kpi .v — o KPI GENERICO
   do gestao.css, usado por admin/financeiro/pedidos/vendas-dia/conselho —
   nao. Media 1,43:1: o numero grande, que e a razao de existir do cartao,
   era o elemento menos legivel da tela. */
:root[data-theme="dark"] .kpi .v,
:root[data-theme="dark"] .total-row .tv,
:root[data-theme="dark"] .cm-val,
:root[data-theme="dark"] .cm-col .t,
:root[data-theme="dark"] .kb-t,
:root[data-theme="dark"] .kb-nm,
:root[data-theme="dark"] .mg-txt,
:root[data-theme="dark"] .cm-chartt,
:root[data-theme="dark"] .cm-modal h2,
:root[data-theme="dark"] .vip-stats b,
:root[data-theme="dark"] .price,
:root[data-theme="dark"] .card-cta,
:root[data-theme="dark"] .cardapio-info strong,
:root[data-theme="dark"] .evt-tipos span,
:root[data-theme="dark"] .contato-list a { color: #f3e2ce; }

/* links/hover e botoes-fantasma que viram vinho no claro -> alinhar a familia
   marfim/dourado (o rosa #e7b7c2 destoava do creme e do dourado). Assim os
   ghost/links parecem parte do tema quente, nao um roxo-frio avulso. */
:root[data-theme="dark"] .nav a:hover,
:root[data-theme="dark"] .hq,
:root[data-theme="dark"] .pchip,
:root[data-theme="dark"] .btn.ghost,
:root[data-theme="dark"] .btn-ghost-dark,
:root[data-theme="dark"] .cm-copy,
/* link de texto dentro do conteudo: gestao.css:13 pinta todo <a> de vinho.
   Excluidos os que ja tem tratamento proprio (botao, card do hub, voltar). */
:root[data-theme="dark"] .wrap a:not(.btn):not(.tool):not(.back-link),
:root[data-theme="dark"] .cm-recompra { color: #e6c98f; }
:root[data-theme="dark"] .btn.ghost,
:root[data-theme="dark"] .btn-ghost-dark { border-color: rgba(217, 169, 92, .38); }
:root[data-theme="dark"] .pchip { border-color: rgba(217, 169, 92, .30); }

/* chips de filtro / ordenacao / busca do comercial usavam --vinho como TEXTO
   (invisivel sobre card escuro, 1.4:1). -> texto claro. Ativos ficam vinho/ouro. */
:root[data-theme="dark"] .cm-chip,
:root[data-theme="dark"] .cm-sort,
:root[data-theme="dark"] .cm-tabs button { color: #d9c3ab; }
:root[data-theme="dark"] .cm-searchbar input,
:root[data-theme="dark"] .cm-field input,
:root[data-theme="dark"] .cm-field select { color: #ecdcc9; }

:root[data-theme="dark"] .price { color: #f3e2ce !important; } /* style.css usa !important aqui */

/* banner de aviso do comercial tinha cor de texto escura cravada (#6b4e22) */
:root[data-theme="dark"] .cm-banner { color: #e9d8c2; }
/* CTA "Meta de reativacao VIP": gradiente cravava #fff no topo (glara branco).
   -> gradiente escuro tingido de dourado, borda dourada mantida (marca). */
:root[data-theme="dark"] .cm-meta-goal {
  background: linear-gradient(180deg, rgba(217, 169, 92, .12), rgba(42, 30, 23, .96)) !important;
  border-color: rgba(217, 169, 92, .42) !important;
}
:root[data-theme="dark"] .mg-txt { color: #f3e2ce; }
:root[data-theme="dark"] .cm-modal .cm-frow { border-color: rgba(240, 226, 210, .1); }

/* ============================================================
   PILULAS / CHIPS / BANNERS — inverter a logica no escuro
   Claro: fundo CLARO + texto escuro colorido (viram "adesivos").
   Escuro: fundo ESCURO tingido (dark tint) + texto CLARO colorido,
   mantendo a cor semantica (vermelho=alerta, verde=ok, dourado/ambar=
   aviso, neutro=cinza-quente). Todos os textos >=4.5:1 sobre o tint
   (medido sobre card #2a1e17 e pagina #191110). !important porque as
   regras-fonte moram em <style> inline com alta especificidade.
   ============================================================ */

/* --- FAMILIA VERMELHO/VINHO (alerta, P0, alta, opt-out, negativo) --- */
:root[data-theme="dark"] .pri-alta,
:root[data-theme="dark"] .pri-p0,
:root[data-theme="dark"] .tag-optout,
:root[data-theme="dark"] .sent-neg,
:root[data-theme="dark"] .cm-src.err {
  background: rgba(224, 120, 120, .15) !important;
  color: #eaa5a5 !important;
  border: 1px solid rgba(224, 120, 120, .30) !important;
}

/* --- FAMILIA VERDE (ok, WhatsApp/tem nº, ativo, positivo, valido) --- */
:root[data-theme="dark"] .tag-wa,
:root[data-theme="dark"] .seg-ativo,
:root[data-theme="dark"] .sent-pos,
:root[data-theme="dark"] .cm-src.live {
  background: rgba(120, 196, 148, .15) !important;
  color: #8ecfa6 !important;
  border: 1px solid rgba(120, 196, 148, .28) !important;
}

/* --- FAMILIA AMBAR/DOURADO (media, novo, cuidado, em risco, aviso) --- */
:root[data-theme="dark"] .pri-media,
:root[data-theme="dark"] .pri-p1,
:root[data-theme="dark"] .tag-new,
:root[data-theme="dark"] .tag-care,
:root[data-theme="dark"] .seg-risco,
:root[data-theme="dark"] .cm-src.demo {
  background: rgba(214, 150, 80, .16) !important;
  color: #e2ac70 !important;
  border: 1px solid rgba(214, 150, 80, .30) !important;
}

/* --- FAMILIA NEUTRA (baixa, P2/P3, dormindo, neutro) --- */
:root[data-theme="dark"] .pri-baixa,
:root[data-theme="dark"] .pri-p2,
:root[data-theme="dark"] .pri-p3,
:root[data-theme="dark"] .seg-dorm,
:root[data-theme="dark"] .sent-neu {
  background: rgba(240, 226, 210, .10) !important;
  color: #c6b6a2 !important;
  border: 1px solid rgba(240, 226, 210, .14) !important;
}

/* --- "sem numero" (tag-no): vermelho-suave, menos gritante --- */
:root[data-theme="dark"] .tag-no {
  background: rgba(224, 120, 120, .12) !important;
  color: #d9a3a3 !important;
  border: 1px solid rgba(224, 120, 120, .24) !important;
}

/* --- VIP: gradiente dourado claro -> tint dourado escuro (mantem "ouro") --- */
:root[data-theme="dark"] .seg-vip {
  background: linear-gradient(rgba(217, 169, 92, .22), rgba(194, 138, 61, .18)) !important;
  color: #ecc87e !important;
  border: 1px solid rgba(217, 169, 92, .38) !important;
}

/* --- FECHAMENTO: detector de incongruencias (fc-div, 3 niveis) ---
   Reusa as CORES das familias acima (vermelho / ambar / neutra / verde),
   mas NAO entra nas listas de pilula: la o `border: 1px solid` atropelaria
   a barra `border-left: 3px` que e o que distingue os 3 niveis de relance.
   Mesmos tints e foregrounds ja medidos (>=4.5:1 sobre #191110/#2a1e17). */
:root[data-theme="dark"] .fc-div.fc-alarme {
  background: rgba(224, 120, 120, .15) !important;
  border-left-color: #d98a8a !important;
  color: #f0b4b4 !important;
}
:root[data-theme="dark"] .fc-div.fc-atencao {
  background: rgba(214, 150, 80, .16) !important;
  border-left-color: #e2ac70 !important;
  color: #ecd9bf !important;
}
:root[data-theme="dark"] .fc-div.fc-info {
  background: rgba(240, 226, 210, .08) !important;
  border-left-color: rgba(240, 226, 210, .22) !important;
  color: #c6b6a2 !important;
}
/* verde: "Nada fora do lugar" — o silencio tem de ser visivel no escuro tambem */
:root[data-theme="dark"] .fc-div.fc-ok {
  background: rgba(120, 196, 148, .15) !important;
  border-left-color: #8ecfa6 !important;
  color: #8ecfa6 !important;
}
/* a fonte (etiqueta do topo do item) segue a cor do nivel, mais apagada */
:root[data-theme="dark"] .fc-div .fc-dvf { color: inherit; opacity: .72; }
/* resumo do .xlsx: borda tracejada clara sobre escuro */
:root[data-theme="dark"] .fc-resumo { border-color: rgba(240, 226, 210, .22); }

/* --- FECHAMENTO: calendário do mês (fcal-) ---
   As células usam --creme-claro/--linha/--texto (já remapeados acima) e
   tints rgba que funcionam nos dois fundos — aqui só o que NÃO se resolve
   por token: foregrounds fortes (verde/dourado escuros somem no escuro)
   e o anel de seleção vinho (1.4:1 sobre #211712). */
:root[data-theme="dark"] .fcal-dot.ok { background: #8ecfa6; border-color: #8ecfa6; }
/* sai/falta agora usam var(--dourado) no claro -> variante clara do dourado no escuro */
:root[data-theme="dark"] .fcal-dot.sai { background: #e2b877; border-color: #e2b877; }
:root[data-theme="dark"] .fcal-dot.falta { border-color: #e2b877; }
/* "fora do arquivo" virou cinza neutro (#a99f96) no claro -> neutro-quente claro no escuro */
:root[data-theme="dark"] .fcal-dot.fora { border-color: #b3a08c; }
:root[data-theme="dark"] .fcal-slot.sfalta > span { color: #e2ac70; }
:root[data-theme="dark"] .fcal-hj { color: #ecc87e; background: rgba(217, 169, 92, .2); }
:root[data-theme="dark"] .fcal-st.stf { color: #8ecfa6; }
:root[data-theme="dark"] .fcal-st.stc { color: #e2ac70; }
:root[data-theme="dark"] .fcal-dia.sel { outline-color: #e6c98f; }
:root[data-theme="dark"] .fcal-dia.dom,
:root[data-theme="dark"] .fcal-leg .fcal-dom-mini { background: repeating-linear-gradient(-45deg, rgba(240, 226, 210, .08) 0 4px, transparent 4px 9px); }

/* --- FECHAMENTO: faixa de status do dia (fc-statusbar / fc-st-*) ---
   card -> superfície escura; foregrounds fortes das pílulas clareiam
   (mesmo mapeamento das etiquetas .fcal-st: verde/dourado escuros somem). */
:root[data-theme="dark"] .fc-statusbar { background: #2a1e17; border-color: rgba(240, 226, 210, .14); }
:root[data-theme="dark"] .fc-st-rascunho { color: #cbb8a4; }
:root[data-theme="dark"] .fc-st-conciliado { color: #e2ac70; }
:root[data-theme="dark"] .fc-st-fechado { color: #8ecfa6; }

/* --- KPIs semanticos do comercial (numeros coloridos p/ clarear) --- */
:root[data-theme="dark"] .cm-kpi.g .n { color: #8ecfa6 !important; }
:root[data-theme="dark"] .cm-kpi.a .n { color: #e2ac70 !important; }
:root[data-theme="dark"] .cm-kpi.p0 .n { color: #eaa5a5 !important; }
:root[data-theme="dark"] .cm-kpi.a { border-color: rgba(214, 150, 80, .32); }
:root[data-theme="dark"] .cm-kpi.p0 { border-color: rgba(224, 120, 120, .32); }
:root[data-theme="dark"] .cm-nx { color: #e6c98f; }

/* --- BANNERS: fundo claro que "glara" -> tingido escuro translucido --- */
/* P0 (rosa claro -> alerta escuro tingido) */
:root[data-theme="dark"] .cm-p0banner {
  background: rgba(224, 120, 120, .14) !important;
  border-color: rgba(224, 120, 120, .30) !important;
  border-left-color: #d98a8a !important;
  color: #f0b4b4 !important;
}
/* aviso dourado do comercial */
:root[data-theme="dark"] .cm-banner {
  background: rgba(217, 169, 92, .10) !important;
  border-color: rgba(217, 169, 92, .26) !important;
  border-left-color: var(--dourado) !important;
  color: #ecd9bf !important;
}
/* erro / demo (gestao.css) */
:root[data-theme="dark"] .err {
  background: rgba(224, 120, 120, .14);
  border-color: rgba(224, 120, 120, .34);
  color: #f0b4b4;
}
:root[data-theme="dark"] .demo-banner,
:root[data-theme="dark"] .pv-demo-banner {
  background: rgba(217, 169, 92, .10);
  border-color: rgba(217, 169, 92, .34);
  color: #ecd3a6;
}

/* --- BADGES de voucher (pos-venda / gestao.css) --- */
:root[data-theme="dark"] .badge.valido {
  background: rgba(120, 196, 148, .15);
  color: #8ecfa6;
  border: 1px solid rgba(120, 196, 148, .28);
}
:root[data-theme="dark"] .badge.usado {
  background: rgba(240, 226, 210, .09);
  color: #c6b6a2;
  border: 1px solid rgba(240, 226, 210, .14);
}
:root[data-theme="dark"] .badge.expirado {
  background: rgba(224, 120, 120, .14);
  color: #eaa5a5;
  border: 1px solid rgba(224, 120, 120, .30);
}

/* ---- botao flutuante de tema (injetado por theme.js) ---- */
.lc-theme-toggle {
  position: fixed; left: 20px; bottom: 20px; z-index: 75;
  width: 46px; height: 46px; border-radius: 50%;
  border: 1px solid rgba(110, 27, 46, .22); background: #fff; color: #6E1B2E;
  font-size: 20px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 22px -10px rgba(74, 19, 32, .5);
  transition: transform .2s, background .2s, color .2s;
}
.lc-theme-toggle:hover { transform: scale(1.08); }
:root[data-theme="dark"] .lc-theme-toggle {
  background: #241a15; color: #f3e2ce; border-color: rgba(240, 226, 210, .2);
}
