/* notarioflow — design tokens
   Importe este arquivo no seu projeto e use as variáveis var(--nf-*).

   ===========================================================================
   SKINS
   ===========================================================================
   A aparência é controlada por três atributos no <html>, escritos pelo servidor
   em App.razor ANTES de a página chegar ao navegador (por isso a tela já nasce
   na skin certa, sem piscar do claro para o escuro):

     data-skin     indigo | azul | verde | cinza | ambar     (cor de acento)
     data-modo     claro | escuro
     data-tamanho  compacto | normal | grande                (escala tipográfica)
     data-barra    escura | colorida                         (estilo da barra superior)
     data-fonte    segoeui | sistema | tahoma | verdana | arial | calibri | georgia

   Regras de composição, nesta ordem:
     1. :root                      neutros do modo claro + acento indigo (padrão)
     2. [data-skin=...]            troca só o acento (e, no indigo, os neutros quentes)
     3. [data-modo=escuro]         troca os neutros para a base escura
     4. [data-modo=escuro][data-skin=...]  clareia o acento para contrastar no escuro

   Por que o acento precisa de duas versões: uma cor que tem contraste suficiente
   sobre papel claro fica escura demais sobre fundo preto, e vice-versa. Não dá
   para usar o mesmo hex nos dois modos sem perder legibilidade.

   O que a cor da skin NÃO pinta: barra superior e menu continuam neutros em todas
   as skins — a moldura fica estável e não cansa em expediente inteiro.

   O ouro de fé pública (--nf-gold) NÃO é cor de marca: é semântica de ato oficial
   (selo, carimbo, borda da guia) e permanece dourado nas cinco skins. Só o tom muda
   no escuro, onde o dourado do modo claro fica sujo sobre fundo preto. */

:root {
  /* ----- neutros: base FRIA (vale para azul, verde, cinza e âmbar) ----- */
  --nf-ink:          #12161B;   /* Tinta — texto principal, fundos escuros */
  --nf-paper:        #F5F6F8;   /* fundo da aplicação */
  --nf-surface:      #FFFFFF;   /* cartões, painéis */
  --nf-mist:         #ECEEF2;   /* fundos sutis, colunas */
  --nf-line:         #DDE1E6;   /* divisórias, bordas */
  --nf-muted:        #5B6472;   /* texto secundário */

  /* ----- escala neutra ----- */
  --nf-50:  #F5F6F8;
  --nf-100: #ECEEF2;
  --nf-200: #DDE1E6;
  --nf-300: #BFC5CE;
  --nf-400: #949BA6;
  --nf-500: #5B6472;
  --nf-600: #414956;
  --nf-700: #2A313B;
  --nf-900: #12161B;

  /* ----- moldura escura -----
     Barra superior, face de marca do login e selo da guia são escuros nos DOIS modos.
     Não dá para usar --nf-ink neles: a tinta inverte entre claro e escuro, e o painel
     ficaria fundo claro com texto claro. Estas duas não invertem nunca. */
  --nf-shell:        #12161B;
  --nf-shell-ink:    #F4F5F7;
  --nf-shell-muted:  #B6BCC6;
  /* Cor do "flow" do wordmark sobre a barra. Com barra escura é o acento claro; com barra
     colorida vira branco translúcido (ver bloco BARRA SUPERIOR no fim do arquivo). */
  --nf-shell-accent: var(--nf-accent-on-dark);

  /* ----- selo / fé pública (não muda entre skins) ----- */
  --nf-gold:         #C28B2C;
  --nf-gold-soft:    #F6ECD6;

  /* ----- acento: padrão indigo ----- */
  --nf-accent:       #5246E6;
  --nf-accent-soft:  #ECEBFB;
  --nf-accent-line:  #C9C5F6;
  /* Versão do acento para uso SOBRE a barra escura, que é escura em todas as skins:
     o acento do modo claro não tem contraste suficiente ali. */
  --nf-accent-on-dark: #8A80FF;

  /* ----- semânticos ----- */
  --nf-ok:   #2F9E6B;   /* sucesso, concluído */
  --nf-warn: #D9952A;   /* aviso, prazo */
  --nf-err:  #D4503E;   /* erro, vencido */

  /* ----- tipografia -----
     Tudo fonte de SISTEMA: nada é baixado de CDN (o <link> do Google Fonts saiu do App.razor).
     A família é escolhida pelo usuário via data-fonte; o padrão abaixo é Verdana.
     Cada pilha traz alternativas de macOS e Linux, porque o cartório pode ter máquina fora
     do Windows e o nome da fonte não existe lá.

     ARMADILHA (vale para Verdana, Tahoma e Arial): essas fontes têm só DOIS pesos reais, 400
     e 700. Qualquer peso a partir de 500 cai no bold de 700 — 600 e 800 renderizam idênticos.
     Não adianta usar peso intermediário para criar hierarquia; use tamanho, cor ou caixa alta.

     Verdana é LARGA: no mesmo corpo ocupa mais espaço horizontal que Segoe UI ou Tahoma.
     Se uma tabela apertar, o caminho é o tamanho "Compacto", não reduzir fonte no CSS. */
  --nf-font-display: Verdana, Geneva, "DejaVu Sans", system-ui, sans-serif;  /* títulos */
  --nf-font-sans:    Verdana, Geneva, "DejaVu Sans", system-ui, sans-serif;  /* UI, corpo */
  --nf-font-mono:    Consolas, "Cascadia Mono", Menlo, "DejaVu Sans Mono",
                     "Liberation Mono", ui-monospace, monospace;             /* protocolo, selo, CPF */

  /* ----- forma & elevação ----- */
  --nf-radius:    16px;
  --nf-radius-sm: 10px;
  --nf-radius-xs: 8px;
  --nf-shadow: 0 1px 2px rgba(18,22,27,.05), 0 6px 16px rgba(18,22,27,.06);
}

/* ===========================================================================
   FAMÍLIA TIPOGRÁFICA
   Só troca as duas variáveis; quem as consome (app.css e o bloco do MudBlazor logo abaixo)
   não precisa saber que existe escolha de fonte.
   =========================================================================== */
[data-fonte="segoeui"] {
  --nf-font-display: "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;
  --nf-font-sans:    "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;
}
[data-fonte="sistema"] {
  --nf-font-display: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --nf-font-sans:    system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
[data-fonte="tahoma"] {
  --nf-font-display: Tahoma, Verdana, "DejaVu Sans", system-ui, sans-serif;
  --nf-font-sans:    Tahoma, Verdana, "DejaVu Sans", system-ui, sans-serif;
}
[data-fonte="verdana"] {
  --nf-font-display: Verdana, Geneva, "DejaVu Sans", system-ui, sans-serif;
  --nf-font-sans:    Verdana, Geneva, "DejaVu Sans", system-ui, sans-serif;
}
[data-fonte="arial"] {
  --nf-font-display: Arial, Helvetica, "Liberation Sans", system-ui, sans-serif;
  --nf-font-sans:    Arial, Helvetica, "Liberation Sans", system-ui, sans-serif;
}
[data-fonte="calibri"] {
  /* Carlito é a métrica-compatível livre do Calibri, presente em muitas distros Linux. */
  --nf-font-display: Calibri, Carlito, "Segoe UI", system-ui, sans-serif;
  --nf-font-sans:    Calibri, Carlito, "Segoe UI", system-ui, sans-serif;
}
[data-fonte="georgia"] {
  --nf-font-display: Georgia, "Times New Roman", "Liberation Serif", serif;
  --nf-font-sans:    Georgia, "Times New Roman", "Liberation Serif", serif;
}

/* ---------------------------------------------------------------------------
   MudBlazor segue a família escolhida.

   Por que aqui e não no MudTheme (C#): o tema carrega a família como string[], então uma
   família configurável exigiria um MudTheme por combinação — 5 cores x 2 barras x 7 fontes.
   Redirecionando as variáveis de tipografia do MudBlazor para as nossas, a fonte deixa de
   ser dimensão do tema e continuam bastando 10 temas.

   Os nomes abaixo foram conferidos no CSS gerado pelo MudBlazor em execução, não presumidos.
   Se um upgrade renomeá-los, o sintoma é a interface voltar à fonte do tema C# ignorando a
   escolha do usuário — é aqui que se olha.

   O !important NÃO é preguiça: o MudThemeProvider injeta um <style> em RUNTIME, também em
   :root, com a família vinda do tema C#. Mesma especificidade que a nossa, mas ele entra
   depois no documento e venceria por ordem — não há seletor que resolva isso, porque o
   concorrente é gerado dinamicamente e sempre fica por último.
   --------------------------------------------------------------------------- */
:root {
  --mud-typography-default-family:    var(--nf-font-sans) !important;
  --mud-typography-body1-family:      var(--nf-font-sans) !important;
  --mud-typography-body2-family:      var(--nf-font-sans) !important;
  --mud-typography-button-family:     var(--nf-font-sans) !important;
  --mud-typography-caption-family:    var(--nf-font-sans) !important;
  --mud-typography-overline-family:   var(--nf-font-sans) !important;
  --mud-typography-subtitle1-family:  var(--nf-font-sans) !important;
  --mud-typography-subtitle2-family:  var(--nf-font-sans) !important;
  --mud-typography-h1-family:         var(--nf-font-display) !important;
  --mud-typography-h2-family:         var(--nf-font-display) !important;
  --mud-typography-h3-family:         var(--nf-font-display) !important;
  --mud-typography-h4-family:         var(--nf-font-display) !important;
  --mud-typography-h5-family:         var(--nf-font-display) !important;
  --mud-typography-h6-family:         var(--nf-font-display) !important;
}

/* ===========================================================================
   ESCALA TIPOGRÁFICA
   Muda o font-size da RAIZ, não o do texto: como o resto do sistema (incluindo o
   MudBlazor) dimensiona em rem, espaçamento e altura de linha acompanham a fonte
   e a proporção da tela se mantém. Mexer só no tamanho da letra deixaria o texto
   grande espremido dentro de caixas do tamanho antigo.
   =========================================================================== */
html[data-tamanho="compacto"] { font-size: 15px; }
html[data-tamanho="normal"]   { font-size: 16px; }  /* padrão do navegador */
html[data-tamanho="grande"]   { font-size: 17.5px; }

/* ===========================================================================
   COR DE ACENTO — MODO CLARO
   =========================================================================== */

/* Indigo é a identidade original e leva junto os neutros QUENTES (papel bege),
   para quem já usa o sistema não ver nada mudar. As outras skins ficam com a base
   fria declarada no :root. */
[data-skin="indigo"] {
  --nf-ink:         #1D1B2C;
  --nf-paper:       #F6F4EF;
  --nf-mist:        #ECEAE3;
  --nf-line:        #DAD7CE;
  --nf-muted:       #6B6878;
  --nf-50:  #F6F4EF;  --nf-100: #ECEAE3;  --nf-200: #DAD7CE;  --nf-300: #BDB9AD;
  --nf-400: #928E85;  --nf-500: #6B6878;  --nf-600: #4A4858;  --nf-700: #302E40;
  --nf-900: #1D1B2C;
  --nf-shell:       #1D1B2C;   /* moldura arroxeada da identidade original */
  --nf-shell-ink:   #F6F4EF;
  --nf-shell-muted: #BDB9AD;
  --nf-accent:         #5246E6;
  --nf-accent-soft:    #ECEBFB;
  --nf-accent-line:    #C9C5F6;
  --nf-accent-on-dark: #8A80FF;
  --nf-shadow: 0 1px 2px rgba(29,27,44,.05), 0 6px 16px rgba(29,27,44,.06);
}

[data-skin="azul"] {
  --nf-accent:         #2563EB;
  --nf-accent-soft:    #E5EDFD;
  --nf-accent-line:    #BFD2F8;
  --nf-accent-on-dark: #7BA5FF;
}

[data-skin="verde"] {
  --nf-accent:         #15803D;
  --nf-accent-soft:    #E4F2E9;
  --nf-accent-line:    #B7DCC5;
  --nf-accent-on-dark: #55C083;
}

[data-skin="cinza"] {
  --nf-accent:         #4B5563;
  --nf-accent-soft:    #EDEEF1;
  --nf-accent-line:    #CBD0D8;
  --nf-accent-on-dark: #A3ACBA;
}

[data-skin="ambar"] {
  --nf-accent:         #A16207;
  --nf-accent-soft:    #FAF0DC;
  --nf-accent-line:    #E6CD97;
  --nf-accent-on-dark: #D9A441;
}

/* ===========================================================================
   MODO ESCURO
   Primeiro os neutros (iguais para todas as skins), depois o acento clareado de
   cada uma. A ordem importa: as regras de acento abaixo precisam vir DEPOIS do
   bloco de neutros para vencer o [data-skin] do modo claro, que tem a mesma
   especificidade.
   =========================================================================== */
[data-modo="escuro"] {
  --nf-paper:       #14161A;
  --nf-surface:     #1C1F25;
  --nf-mist:        #23272E;
  --nf-line:        #2E333B;
  --nf-ink:         #E9EBEF;
  --nf-muted:       #9BA1AC;
  --nf-50:  #1C1F25;  --nf-100: #23272E;  --nf-200: #2E333B;  --nf-300: #454C57;
  --nf-400: #6B7280;  --nf-500: #9BA1AC;  --nf-600: #C2C7CF;  --nf-700: #DDE0E5;
  --nf-900: #E9EBEF;
  /* O dourado do modo claro fica sujo sobre fundo preto — clareia mantendo a semântica. */
  --nf-gold:        #D9A441;
  --nf-gold-soft:   #3A2F1A;
  --nf-shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 22px rgba(0,0,0,.35);
}

[data-modo="escuro"][data-skin="indigo"] {
  --nf-paper:       #14131C;
  --nf-surface:     #1E1D29;
  --nf-mist:        #26252F;
  --nf-line:        #322F3D;
  --nf-ink:         #F1F0F6;
  --nf-muted:       #A4A1B3;
  --nf-accent:      #8A80FF;
  --nf-accent-soft: #272461;
  --nf-accent-line: #3F3A7A;
}

[data-modo="escuro"][data-skin="azul"] {
  --nf-accent:      #7BA5FF;
  --nf-accent-soft: #16264F;
  --nf-accent-line: #2C4478;
}

[data-modo="escuro"][data-skin="verde"] {
  --nf-accent:      #55C083;
  --nf-accent-soft: #12351F;
  --nf-accent-line: #245C39;
}

[data-modo="escuro"][data-skin="cinza"] {
  --nf-accent:      #A3ACBA;
  --nf-accent-soft: #23272E;
  --nf-accent-line: #3A4049;
}

/* Âmbar no escuro é o único caso em que acento e ouro colidem: o dourado clareado do modo
   escuro (#D9A441) é exatamente o âmbar da skin, e o selo de fé pública ficaria com a mesma
   cor de um botão comum — perdendo a distinção que justifica manter o ouro separado.
   Resolvido afastando os dois: acento sobe em luminosidade, ouro desce e desatura. */
[data-modo="escuro"][data-skin="ambar"] {
  --nf-accent:      #F2B75C;
  --nf-accent-soft: #35280D;
  --nf-accent-line: #5C4718;
  --nf-gold:        #BC8433;
  --nf-gold-soft:   #2E2411;
}

/* ===========================================================================
   BARRA SUPERIOR COLORIDA
   Declarado DEPOIS dos blocos de skin e de modo de propósito: assim a barra sobrescreve o
   --nf-shell que aqueles blocos definiram, sem depender de contagem de especificidade.

   Usa o tom do modo CLARO da skin nos DOIS modos. Esses tons já são escuros o bastante para
   texto branco e continuam legíveis sobre fundo escuro; usar o acento do modo escuro (que é
   claro, justamente para contrastar com o fundo preto) daria barra clara com texto branco.
   =========================================================================== */
[data-barra="colorida"] { --nf-shell-accent: rgba(255, 255, 255, .62); }
[data-barra="colorida"][data-skin="indigo"] { --nf-shell: #5246E6; }
[data-barra="colorida"][data-skin="azul"]   { --nf-shell: #2563EB; }
[data-barra="colorida"][data-skin="verde"]  { --nf-shell: #15803D; }
[data-barra="colorida"][data-skin="cinza"]  { --nf-shell: #4B5563; }
[data-barra="colorida"][data-skin="ambar"]  { --nf-shell: #A16207; }

/* ===========================================================================
   IMPRESSÃO
   Documento impresso sai SEMPRE claro, qualquer que seja a skin: fundo escuro
   gasta toner e sai ilegível em papel. Vale para a guia de emolumentos e o
   comprovante de firma.
   =========================================================================== */
@media print {
  :root, [data-modo="escuro"], [data-modo="escuro"][data-skin] {
    --nf-paper:   #FFFFFF;
    --nf-surface: #FFFFFF;
    --nf-mist:    #F2F2F2;
    --nf-line:    #CCCCCC;
    --nf-ink:     #000000;
    --nf-muted:   #444444;
    --nf-gold:    #8A6320;
    --nf-shadow:  none;
  }
}
