/* ============================================================
   Painel Nexo · tema escuro derivado do Nexo Design System v1.2
   Carregue DEPOIS de ds/core.css.
   ============================================================

   POR QUE ESTE ARQUIVO EXISTE
   O Core v1.2 não tem tema escuro (zero ocorrências de prefers-color-scheme
   nos três CSS dele). O protótipo do Painel tem claro e escuro, e a seção 6 do
   README do Painel registra isso. Então o escuro foi derivado aqui, FORA dos
   arquivos do Design System.

   REGRA SEGUIDA: nenhum arquivo do DS foi editado. ds/tokens.css,
   ds/foundations.css, ds/core.css e ds/core.js são cópias intactas da pasta
   "47. Design System - Nexo". Dá para atualizar a versão da Barol por cima, e
   ela pode absorver este arquivo numa v1.3 quando quiser.

   COMO FUNCIONA
   Todo valor que muda de tema vira uma variável --pn-*, declarada três vezes:
   no :root puro com EXATAMENTE o valor claro do DS, no @media de escuro, e em
   [data-theme="dark"]. As regras de componente aparecem UMA vez só, no fim,
   sempre consumindo a variável.

   Esse desenho é de propósito: na primeira versão deste arquivo eu escrevi as
   regras de componente com o seletor :root:not([data-theme="light"]) fora do
   @media — o que fazia o estilo escuro vazar para o tema claro, porque esse
   seletor casa também quando não há data-theme nenhum. Com variáveis o erro
   fica impossível: no claro a variável vale o valor original do DS.

   PALETA: derivada da oficial, sem matiz nova. O vinho #713152 não tem
   contraste suficiente sobre fundo escuro, então o papel de "ação" passa para
   o plum #944776 clareado — mesma família da marca.
   ============================================================ */

/* ---------- 1. claro: repete os valores do DS, para a variável ser neutra ---------- */
:root{
  --pn-fundo-pagina:var(--surface-subtle);
  --pn-tenue:#F0E8ED;                 /* neutral-100, como no core.css */
  --pn-sucesso-bg:#E5F3EC;  --pn-sucesso-ink:#176143;
  --pn-alerta-bg:#FFF0DC;   --pn-alerta-ink:#844100;
  --pn-neutro-bg:#F1EFF0;   --pn-neutro-ink:#575055;
  --pn-info-bg:#F0E8ED;     --pn-info-borda:#D8C5D1;  --pn-info-ink:var(--action-primary-hover);
  --pn-aviso-bg:#FFF7EB;    --pn-aviso-borda:#F2D4AA; --pn-aviso-ink:#6E3A00;
  --pn-erro-bg:#FCE8EB;     --pn-erro-ink:var(--feedback-error); --pn-erro-borda:#F0C2CB;
  --pn-titulo-vazio:var(--brand-wine-950);
  --pn-switch-off:#B2ADB0;
  --pn-esqueleto:linear-gradient(90deg,#EEE9EC,#F8F6F7,#EEE9EC);
  --pn-avatar-borda:#fff;
  --pn-tooltip-bg:var(--brand-wine-950);
  --pn-tooltip-ink:var(--text-inverse);
  --pn-marca-clara:block;
  --pn-marca-escura:none;
}

/* ---------- 2. escuro por preferência do sistema ---------- */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;

    /* superfícies: neutros escuros com a tintura vinho da marca */
    --surface-default:#241F23;
    --surface-subtle:#2C262B;
    --surface-elevated:#2C262B;
    --border-default:#3C353B;
    --border-strong:#504853;

    --text-primary:#F5F0F3;
    --text-secondary:#BCB3B9;
    --text-muted:#A79DA3;
    --text-inverse:#1A1518;      /* vai SOBRE preenchimento de ação, que no escuro é claro */

    --action-primary:#C77FA8;    /* plum clareado */
    --action-primary-hover:#D9A0C0;
    --focus-ring:var(--brand-orange-300);

    --feedback-success:#5FBF95;
    --feedback-warning:#E8A050;
    --feedback-error:#F07A8C;

    --shadow-elevated:0 14px 38px rgba(0,0,0,.45);

    --pn-fundo-pagina:#1A1518;
    --pn-tenue:#332B31;
    --pn-sucesso-bg:#17312A;  --pn-sucesso-ink:#8FD9B6;
    --pn-alerta-bg:#38290F;   --pn-alerta-ink:#F0BC79;
    --pn-neutro-bg:#2F292E;   --pn-neutro-ink:#C2B9BF;
    --pn-info-bg:#332B31;     --pn-info-borda:#4B3F47;  --pn-info-ink:var(--text-primary);
    --pn-aviso-bg:#38290F;    --pn-aviso-borda:#5A431D; --pn-aviso-ink:#F0BC79;
    --pn-erro-bg:#3A1A21;     --pn-erro-ink:#F4A0AC;    --pn-erro-borda:#5C2A33;
    --pn-titulo-vazio:var(--text-primary);
    --pn-switch-off:#595159;
    --pn-esqueleto:linear-gradient(90deg,#2C262B,#393237,#2C262B);
    --pn-avatar-borda:#241F23;
    --pn-tooltip-bg:#453B42;
    --pn-tooltip-ink:#F5F0F3;
    --pn-marca-clara:none;
    --pn-marca-escura:block;
  }
}

/* ---------- 3. escuro por escolha explícita ---------- */
:root[data-theme="dark"]{
  color-scheme: dark;
  --surface-default:#241F23;
  --surface-subtle:#2C262B;
  --surface-elevated:#2C262B;
  --border-default:#3C353B;
  --border-strong:#504853;
  --text-primary:#F5F0F3;
  --text-secondary:#BCB3B9;
  --text-muted:#A79DA3;
  --text-inverse:#1A1518;
  --action-primary:#C77FA8;
  --action-primary-hover:#D9A0C0;
  --focus-ring:var(--brand-orange-300);
  --feedback-success:#5FBF95;
  --feedback-warning:#E8A050;
  --feedback-error:#F07A8C;
  --shadow-elevated:0 14px 38px rgba(0,0,0,.45);

  --pn-fundo-pagina:#1A1518;
  --pn-tenue:#332B31;
  --pn-sucesso-bg:#17312A;  --pn-sucesso-ink:#8FD9B6;
  --pn-alerta-bg:#38290F;   --pn-alerta-ink:#F0BC79;
  --pn-neutro-bg:#2F292E;   --pn-neutro-ink:#C2B9BF;
  --pn-info-bg:#332B31;     --pn-info-borda:#4B3F47;  --pn-info-ink:var(--text-primary);
  --pn-aviso-bg:#38290F;    --pn-aviso-borda:#5A431D; --pn-aviso-ink:#F0BC79;
  --pn-erro-bg:#3A1A21;     --pn-erro-ink:#F4A0AC;    --pn-erro-borda:#5C2A33;
  --pn-titulo-vazio:var(--text-primary);
  --pn-switch-off:#595159;
  --pn-esqueleto:linear-gradient(90deg,#2C262B,#393237,#2C262B);
  --pn-avatar-borda:#241F23;
  --pn-tooltip-bg:#453B42;
  --pn-tooltip-ink:#F5F0F3;
  --pn-marca-clara:none;
  --pn-marca-escura:block;
}

/* ---------- 4. componentes do DS que fixaram hex em vez de token ----------
   Cada regra abaixo existe porque a original do core.css usou cor literal, e
   redefinir token não a alcança. Escritas uma única vez: no claro a variável
   vale o valor original do DS, então nada muda no tema claro.
   É esta a lista que a Barol precisaria tokenizar para o escuro sair de graça. */

.nexo-btn.nexo-btn--secondary:hover{                       /* core.css:10, tem !important */
  background:var(--pn-tenue) !important;
  border-color:var(--action-primary) !important;
}
.nexo-badge{ background:var(--pn-tenue) }                   /* core.css:42 */

.nexo-status--success{ background:var(--pn-sucesso-bg); color:var(--pn-sucesso-ink) }   /* :49 */
.nexo-status--warning{ background:var(--pn-alerta-bg);  color:var(--pn-alerta-ink) }    /* :51 */
.nexo-status--progress{ background:var(--pn-tenue);     color:var(--action-primary) }   /* :53 */
.nexo-status--neutral{ background:var(--pn-neutro-bg);  color:var(--pn-neutro-ink) }    /* :55 */

.nexo-alert.nexo-alert--info{                                                            /* :71 */
  background:var(--pn-info-bg); border-color:var(--pn-info-borda); color:var(--pn-info-ink);
}
.nexo-alert.nexo-alert--warning{                                                         /* :72 */
  background:var(--pn-aviso-bg); border-color:var(--pn-aviso-borda); color:var(--pn-aviso-ink);
}

.nexo-empty-state__illustration{ background:var(--pn-tenue); color:var(--action-primary) }  /* :122 */
.nexo-empty-state h3{ color:var(--pn-titulo-vazio) }                                        /* :124 */
.nexo-empty-state--error .nexo-empty-state__illustration{                                   /* :126 */
  background:var(--pn-erro-bg); color:var(--feedback-error);
}
.nexo-empty-state--unavailable .nexo-empty-state__illustration{                             /* :127 */
  background:var(--pn-alerta-bg); color:var(--feedback-warning);
}

.nexo-switch span{ background:var(--pn-switch-off) }                 /* core.css:29 */
.nexo-skeleton-card i{ background:var(--pn-esqueleto); background-size:200% 100% }  /* :129 */
.nexo-avatar-group span{ border-color:var(--pn-avatar-borda) }       /* core.css:37 */
.nexo-tooltip>span{ background:var(--pn-tooltip-bg); color:var(--pn-tooltip-ink) }   /* :58 */

/* ---------- 5. o que falta no DS e o Painel precisa ---------- */
/* O Core v1.2 tem alert--info e alert--warning, mas NÃO tem variante de erro
   (confirmado: só essas duas existem no core.css). O portal precisa mostrar
   erro de login e de permissão, então a variante entra aqui, no mesmo contrato
   visual das outras duas. */
.nexo-alert.nexo-alert--erro{
  background:var(--pn-erro-bg); border-color:var(--pn-erro-borda); color:var(--pn-erro-ink);
}
.nexo-alert.nexo-alert--sucesso{
  background:var(--pn-sucesso-bg); border-color:var(--pn-sucesso-ink); color:var(--pn-sucesso-ink);
}
.nexo-alert.nexo-alert--neutro{
  background:var(--pn-neutro-bg); border-color:var(--border-default); color:var(--pn-neutro-ink);
}

/* troca de marca por tema */
.marca-clara{ display:var(--pn-marca-clara) }
.marca-escura{ display:var(--pn-marca-escura) }
