/* =============================================================================
   INCISE — DESIGN TOKENS

   FONTE DA VERDADE: INCISE Brand System v1.0.0 — brand/incise-brand-guide/
     · brand/incise-brand-guide/brand-system.json   (regras estruturadas)
     · brand/incise-brand-guide/BRAND-GUIDE.md      (manual operacional)
     · brand/incise-brand-guide/tokens/tokens.css   (tokens oficiais)
   Ativos oficiais: brand/logo/ (PNG) e brand/incise-brand-guide/assets/pdf/.

   PRECEDÊNCIA
     1. decisão do proprietário da marca
     2. brand-system.json / BRAND-GUIDE.md (pacote oficial)
     3. DESIGN-SYSTEM.md do pacote (camada operacional, status "recomendado")
     4. handoff de design em design/ e briefing aprovado

   CLASSIFICAÇÃO DOS VALORES (GOVERNANCE.md do pacote)
     confirmed          → veio do pacote oficial, não alterar
     functional/pending → existe no produto, NÃO é cor de marca, aguarda
                          validação do proprietário antes de virar regra
   O pacote confirma apenas quatro cores: navy #0D114F, menta #C0EBE3,
   branco #FFFFFF e grafite #1A1A1A. Todo o resto abaixo é cor FUNCIONAL de
   produto — legítima em uso, mas não pode ser apresentada como cor da marca.

   HISTÓRICO — conflitos já resolvidos, não reabrir:
     · paleta teal provisória (#0D3B46 / #0F5360 / #52B6A8) do
       INCISE_DESIGN_SYSTEM_MASTER.md: descartada, não corresponde à marca;
     · azul #162a56 do main.css legado: não reintroduzir.

   Não inventar valores. Token ausente = pedir ao proprietário.
   ============================================================================= */

/* -----------------------------------------------------------------------------
   TIPOGRAFIA — PENDÊNCIA DECLARADA DE LICENÇA

   A família oficial da INCISE é a superfamília **Normalidad**: Normalidad
   Extended Regular (display) e Normalidad Text Regular/Medium (corpo e
   ênfase). Os arquivos instaláveis e a licença de web/desktop AINDA NÃO
   FORAM FORNECIDOS pelo proprietário (BRAND-GUIDE.md §5, "Licença — pendente").

   Enquanto isso, a Inter é carregada como FALLBACK OPERACIONAL: mantém o
   produto legível e consistente, mas NÃO é a tipografia da marca e não pode
   ser apresentada como prova visual da identidade INCISE — o pacote proíbe
   explicitamente "apresentar fallback como prova final" (brand-system.json →
   typography.prohibited).

   Quando a licença chegar: hospedar os arquivos da Normalidad, trocar este
   @import por @font-face locais e remover a Inter da cadeia. Nenhum outro
   token precisa mudar — as famílias já são referenciadas por variável.
   -------------------------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root {
  /* ---------------------------------------------------------------------------
     COR — paleta de marca CONFIRMADA (brand-system.json → color)
     Estes quatro valores são os únicos que o pacote oficial confirma.
     --------------------------------------------------------------------------- */
  --incise-navy: #0D114F;      /* autoridade, títulos, fundos institucionais */
  --incise-mint: #C0EBE3;      /* acento e superfície — ver regra 3 abaixo */
  --incise-white: #FFFFFF;     /* superfície e respiro */
  --incise-graphite: #1A1A1A;  /* monocromático, impressão em 1 cor */

  /* Aliases com a nomenclatura do pacote oficial (tokens/tokens.css).
     Existem para que código copiado do brand system funcione sem tradução. */
  --incise-color-navy: var(--incise-navy);
  --incise-color-mint: var(--incise-mint);
  --incise-color-white: var(--incise-white);
  --incise-color-graphite: var(--incise-graphite);
  --incise-color-background: var(--incise-white);
  --incise-color-foreground: var(--incise-navy);
  --incise-color-accent: var(--incise-mint);
  --incise-color-inverse-background: var(--incise-navy);
  --incise-color-inverse-foreground: var(--incise-white);

  /* ---------------------------------------------------------------------------
     COR — funcionais de produto (NÃO são cores de marca)

     O pacote oficial não confirma nenhuma delas: "Cores adicionais de estado
     são funcionais, não cores de marca, e devem ser documentadas antes do
     uso" (BRAND-GUIDE.md §4). Estão em produção e não devem ser trocadas sem
     decisão do proprietário — ficam aqui declaradas como pendência de
     validação, não como identidade.
     --------------------------------------------------------------------------- */
  --incise-action: #1E2A78;    /* botões, links, navegação, filetes de destaque */
  --incise-ivory: #FFFAF1;     /* fundo educativo, materiais B2C */
  --incise-surface: #F5F7FB;   /* superfícies suaves em interfaces */
  --incise-ink: #1A1F35;       /* texto principal (não é o grafite da marca) */
  --incise-muted: #5C6180;     /* texto secundário */
  --incise-line: #DDDFEA;      /* bordas e divisores */

  /* COR — funcionais. Âmbar SÓ para orientação/educação; vermelho SÓ para
     erro, alerta importante ou risco. Não usar como cor decorativa. */
  --incise-success: #327A66;
  --incise-warning: #F6C977;
  --incise-error: #9E3F45;

  /* Aliases semânticos — preferir estes nos componentes */
  --bg: var(--incise-white);
  --bg-soft: var(--incise-surface);
  --text: var(--incise-ink);
  --text-muted: var(--incise-muted);
  --border: var(--incise-line);
  --focus-ring: rgba(30, 42, 120, 0.32);

  /* ---------------------------------------------------------------------------
     TIPOGRAFIA (BRAND-GUIDE.md §5 — família confirmada, arquivos pendentes)

     | Papel            | Família oficial            | Peso |
     |------------------|----------------------------|------|
     | Display          | Normalidad Extended Regular| 400  |
     | Texto            | Normalidad Text Regular    | 400  |
     | Ênfase funcional | Normalidad Text Medium     | 500  |

     A Normalidad vem PRIMEIRO na cadeia: assim que a licença chegar e os
     arquivos forem hospedados, a marca passa a renderizar sem tocar em
     nenhum componente. Até lá o navegador cai na Inter — fallback
     operacional declarado, nunca a tipografia da marca.

     Regras do pacote: Extended só em títulos curtos (nunca texto corrido);
     não deformar caracteres para simular outra largura; não sintetizar
     pesos; nunca usar fonte para reconstruir o wordmark ou a assinatura.
     --------------------------------------------------------------------------- */
  --incise-font-display: 'Normalidad Extended', Inter, 'Segoe UI', Arial, Helvetica, sans-serif;
  --incise-font-body: 'Normalidad Text', 'Normalidad', Inter, 'Segoe UI', Aptos, Arial, Helvetica, sans-serif;

  /* Alias histórico consumido por app.css e document.css. */
  --font-body: var(--incise-font-body);

  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;

  /* Escala digital do brandbook (referência para telas grandes) */
  --fs-display: 48px;   /* 48–72 */
  --fs-h1: 36px;        /* 36–48 */
  --fs-h2: 28px;        /* 28–36 */
  --fs-h3: 22px;        /* 22–28 */
  --fs-body-lg: 18px;   /* 18–20 */
  --fs-body: 16px;      /* 16–18 */
  --fs-small: 14px;     /* 14 */
  --fs-meta: 12px;      /* 12–13 */

  /* Escala aplicada ao shell mobile, conforme o handoff de design.
     O protótipo comprime a escala do brandbook para caber em 390px. */
  --fs-app-h2: 17px;
  --fs-app-body: 14.5px;
  --fs-app-small: 13.5px;
  --fs-app-meta: 12px;
  --fs-app-micro: 11px;

  /* Entrelinha */
  --lh-title: 1.2;      /* 1,10–1,25 */
  --lh-body: 1.55;      /* 1,50–1,65 */
  --lh-long: 1.65;      /* 1,60–1,75 */

  /* ---------------------------------------------------------------------------
     ESPAÇAMENTO — escala modular base 4px

     Compatível com a escala recomendada do pacote oficial
     (tokens/tokens.json → recommended.space: 4 · 8 · 16 · 24 · 32 · 48 · 64).
     Os degraus 12/20/40/80/96 são extensões do produto, não do brand system.
     --------------------------------------------------------------------------- */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-8: 32px;
  --sp-10: 40px;
  --sp-12: 48px;
  --sp-16: 64px;
  --sp-20: 80px;
  --sp-24: 96px;

  /* GRID — web e aplicativos */
  --layout-max: 1152px;
  --measure: 680px;      /* texto corrido 640–736px */
  --gutter: 24px;
  --margin-mobile: 20px; /* margem mínima móvel */

  /* ---------------------------------------------------------------------------
     FORMAS
     Raios pequenos: o símbolo da marca é 100% angular.
     Pill APENAS em tags, filtros e estados.

     DIVERGÊNCIA DECLARADA (pendente de decisão do proprietário): o
     DESIGN-SYSTEM.md do pacote oficial — que tem status "recomendado", não
     "confirmado" — sugere radius 0px como padrão e 2px no máximo, e lista
     "pílulas" entre o que não parece INCISE. Os raios abaixo são os que já
     estão em produção e vieram do handoff de design aprovado; alterá-los
     mudaria a aparência de todo o app e é decisão do proprietário, não deste
     arquivo. Registrado como pendência, não como conformidade.
     --------------------------------------------------------------------------- */
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-pill: 999px;

  --border-width: 1px;   /* bordas organizam, não decoram */

  /* SOMBRAS — discretas, difusas, baixa opacidade, função de hierarquia.
     Proibido: sombra pesada, neon, relevo, metálico, sombra na logomarca,
     múltiplas sombras decorativas. */
  --shadow-sm: 0 1px 2px rgba(13, 17, 79, 0.06);
  --shadow-md: 0 4px 16px rgba(13, 17, 79, 0.08);
  --shadow-lg: 0 8px 32px rgba(13, 17, 79, 0.10);

  /* ---------------------------------------------------------------------------
     ACESSIBILIDADE E TOQUE
     Contraste mínimo: 4,5:1 texto normal / 3:1 texto grande, ícones e
     componentes informativos (Brandbook 04). Alvo de toque 48px (RNF-03).
     --------------------------------------------------------------------------- */
  --touch-target: 48px;

  /* ---------------------------------------------------------------------------
     TONS DE APOIO — derivados do protótipo de design

     Fonte: design/Modulo Requisicao - Prototipo.dc.html (handoff aprovado
     pelo proprietário).

     Não são cores de marca: são variações funcionais de superfície e texto
     necessárias para os estados do app. Ficam agrupadas aqui para que nenhum
     componente precise escrever hex literal. Não adicionar tons novos sem
     passar pelo handoff de design.
     --------------------------------------------------------------------------- */

  /* Superfície de marca suave — badge de espécie, realce discreto */
  --incise-navy-wash: #E5E8F5;

  /* Estado desabilitado */
  --incise-disabled-text: #9599B0;
  --incise-disabled-bg: var(--incise-line);

  /* Sucesso — protocolos rápidos, confirmação de emissão */
  --incise-success-bg: #EAF3F0;
  --incise-success-border: #BFE3D6;
  --incise-success-text: #246B57;

  /* Aviso / orientação — caixa de preparos consolidados e urgência moderada.
     Âmbar é reservado a orientação e educação (regra de cor 8.4). */
  --incise-warning-bg: #FFFBEB;
  --incise-warning-surface: #FDF2E0;
  --incise-warning-text: #78350F;
  --incise-warning-title: #92400E;
  --incise-warning-strong: #8A6412;

  /* Erro / urgência alta */
  --incise-error-bg: #F7E4E5;

  /* Fundo da área fora do shell do app */
  --incise-desk: #E7E9F2;

  /* Shell mobile do app (protótipo: 390px) */
  --app-shell-width: 390px;
  --app-tabbar-height: 62px;
}

/* -----------------------------------------------------------------------------
   REGRAS QUE O CÓDIGO DEVE RESPEITAR
   (BRAND-GUIDE.md §4 e §3 — brand/incise-brand-guide/)

   1. Navy é a cor de autoridade — títulos, cabeçalhos institucionais, faixas.
      Navy sobre branco e branco sobre navy são as combinações principais.
   2. Action é a cor de ação — botões, links, navegação, filetes. É cor
      FUNCIONAL do produto, não cor de marca.
   3. Mint NUNCA como texto pequeno sobre branco: contraste 1.29:1, falha WCAG.
      Mint só aparece SOBRE o navy, ou como preenchimento de área.
   4. Não usar gradientes coloridos genéricos. Gradiente permitido apenas
      dentro da família da marca.
   5. Poucas cores por composição.
   6. LOGOMARCA: usar SOMENTE os PNGs oficiais de brand/logo/ (impressão e
      fluxo vetorial: brand/incise-brand-guide/assets/pdf/). Nunca redesenhar,
      redigitar, remontar, recolorir, aplicar sombra/contorno/filtro, nem
      alterar a proporção. Os SVGs anteriores estão SUSPENSOS — arquivados em
      brand/_deprecated/logo-svg-suspenso/, não usar.
   7. PENDENTE: área de proteção e tamanho mínimo da logo estão declarados
      como `pending_validation` no pacote oficial. Nenhum valor de respiro ou
      tamanho mínimo deve ser escrito aqui como se fosse oficial. Prática
      provisória: evitar proximidade com textos, bordas e outras marcas e
      testar legibilidade no tamanho final.
   -------------------------------------------------------------------------- */

.incise-on-navy {
  background-color: var(--incise-navy);
  color: var(--incise-white);
}

/* Mint sobre navy: contraste 13.41:1 — uso válido e aprovado. */
.incise-accent-on-navy {
  color: var(--incise-mint);
}

/* Foco visível — exigido em "Website" e "Aplicativos" (seção 18). */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--incise-action);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
