/* base.css — design tokens REUTILIZÁVEIS da plataforma (turismo.autocontrol).
   Fonte única das variáveis de cor/raio/tipografia usadas por todas as páginas
   (painel da agência, portal do cliente, portal Viajei, console global e os
   módulos em /js/*). Carregue ANTES do CSS específico de cada página, para que
   os tokens estejam definidos quando as regras de componente forem aplicadas.
   Refactor de páginas/CSS (2026-07-14): extraído dos <style> inline duplicados. */
:root {
  /* marca */
  --brand: #0c8a99; --brand-2: #0a6f7c; --brand-soft: #e3f4f6; --brand-ink: #0a4551;
  --navy: #16215c; --vgrad: linear-gradient(150deg, #1f6fd4 0%, #14b6b0 55%, #37c96e 100%);
  /* texto */
  --ink: #1f2940; --muted: #667085; --muted-2: #98a2b3; --text-soft: #6b7280;
  /* superfícies e linhas */
  --line: #e3e8f2; --line-2: #eef0f7; --bg: #f4f6fb; --card: #fff;
  /* estados semânticos */
  --ok: #168a60; --ok-bg: #e8f7ef; --warn: #c97714; --warn-bg: #fff1df;
  --danger: #c73e3e; --danger-bg: #ffe8e8; --info-bg: #e3f4f6;
  --green: #168a60; --green-soft: #e8f7ef; --orange: #c97714; --orange-soft: #fff1df;
  --red: #c73e3e; --red-soft: #ffe8e8; --blue: #2f6dd9; --blue-soft: #eaf2ff;
  /* forma e tipografia */
  --radius: 16px; --radius-sm: 12px;
  --shadow: 0 4px 16px rgba(24, 34, 48, .05), 0 16px 40px rgba(26, 34, 52, .07);
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* reset base compartilhado */
* { box-sizing: border-box; }

/* ── Campo obrigatório faltando / valor inválido — padrão do sistema ──
   O validador chama window.campoInvalido(elm) (js/api.js) ao bloquear o
   submit: o campo fica vermelho e a marca some quando o usuário digita. */
input.invalid, select.invalid, textarea.invalid {
  border-color: var(--danger) !important;
  background-color: #fff6f6 !important;
  box-shadow: 0 0 0 3px rgba(199, 62, 62, .14) !important;
}
