/* Tokens de marca Busca Orgânica — copiado de colors_and_type.css do design
   system oficial. Não editar valores; ver assets/fonts pros arquivos woff2. */

@font-face { font-family: "nexa"; src: url("../fonts/Nexa-Book.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "nexa"; src: url("../fonts/Nexa-Bold.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "nexa"; src: url("../fonts/Nexa-Heavy.woff2") format("woff2"); font-weight: 900; font-style: normal; font-display: swap; }
@font-face { font-family: "nexa"; src: url("../fonts/Nexa-Black.woff2") format("woff2"); font-weight: 950; font-style: normal; font-display: swap; }

:root {
  --bo-navy: #001345;
  --bo-white: #FFFFFF;
  --bo-paper: #FBFCFD;
  --bo-mist: #EDF0F5;

  --bo-navy-a04: rgba(0,19,69,.04);
  --bo-navy-a06: rgba(0,19,69,.06);
  --bo-navy-a08: rgba(0,19,69,.08);
  --bo-navy-a10: rgba(0,19,69,.10);
  --bo-navy-a16: rgba(0,19,69,.16);
  --bo-navy-a22: rgba(0,19,69,.22);
  --bo-navy-a40: rgba(0,19,69,.40);
  --bo-navy-a60: rgba(0,19,69,.60);
  --bo-navy-a80: rgba(0,19,69,.80);

  --bg: var(--bo-paper);
  --bg-elevated: var(--bo-white);
  --bg-inverse: var(--bo-navy);
  --bg-muted: var(--bo-mist);

  --fg: var(--bo-navy);
  --fg-muted: var(--bo-navy-a60);
  --fg-subtle: var(--bo-navy-a40);
  --fg-on-navy: var(--bo-white);
  --fg-on-navy-muted: rgba(255,255,255,.65);

  --border: var(--bo-navy-a10);
  --border-strong: var(--bo-navy-a22);
  --border-on-navy: rgba(255,255,255,.12);

  /* Severidade de KPI: alívio (ok), atenção (warn), crítico (critical). */
  --severity-ok: #1B8A5A;
  --severity-ok-bg: rgba(27,138,90,.10);
  --severity-ok-border: rgba(27,138,90,.35);

  --severity-warn: #C77700;
  --severity-warn-bg: rgba(199,119,0,.12);
  --severity-warn-border: rgba(199,119,0,.40);

  --severity-critical: #C4362D;
  --severity-critical-bg: rgba(196,54,45,.12);
  --severity-critical-border: rgba(196,54,45,.40);

  --font-sans: "nexa", "Helvetica Neue", Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;

  --fw-regular: 400;
  --fw-bold: 700;
  --fw-heavy: 950;

  --fs-display-l: 64px; --lh-display-l: 1.0;
  --fs-display-m: 48px; --lh-display-m: 1.05;
  --fs-h1: 40px; --lh-h1: 1.1;
  --fs-h2: 32px; --lh-h2: 1.15;
  --fs-h3: 24px; --lh-h3: 1.2;
  --fs-h4: 20px; --lh-h4: 1.3;
  --fs-body-lg: 18px; --lh-body-lg: 1.55;
  --fs-body: 16px; --lh-body: 1.6;
  --fs-body-sm: 14px; --lh-body-sm: 1.55;
  --fs-caption: 12px; --lh-caption: 1.45;
  --fs-eyebrow: 12px;

  --tracking-tight: -0.02em;
  --tracking-eyebrow: 0.18em;

  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-5: 24px; --space-6: 32px; --space-7: 48px; --space-8: 64px; --space-9: 96px;

  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-pill: 999px;

  --ease-out: cubic-bezier(.2,.8,.2,1);
  --dur-fast: 140ms;
  --dur-base: 220ms;

  --container: 1120px;
  --container-wide: 1320px;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--font-sans);
  color: var(--fg);
  letter-spacing: var(--tracking-tight);
  font-weight: var(--fw-heavy);
  margin: 0;
}
h1 { font-size: var(--fs-h1); line-height: var(--lh-h1); }
h2 { font-size: var(--fs-h2); line-height: var(--lh-h2); }
h3 { font-size: var(--fs-h3); line-height: var(--lh-h3); font-weight: var(--fw-bold); }
h4 { font-size: var(--fs-h4); line-height: var(--lh-h4); font-weight: var(--fw-bold); }

p { margin: 0; }

.eyebrow {
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-bold);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--fg-muted);
}

a { color: inherit; text-decoration: underline; text-decoration-color: var(--border-strong); text-underline-offset: 4px; }
a:hover { text-decoration-color: currentColor; }
