/* ==========================================================================
   BCG | tokens e base compartilhados (home + login)
   Cores extraídas do logo: verde #008E52 -> marinho #013D7B.
   Regra de forma: interativos = pílula, contêineres = 20px, chips/inputs = 12px.
   ========================================================================== */

:root {
  color-scheme: light dark;

  --ink: #0A1F33;
  --ink-2: #44566A;
  --ink-3: #5E6E7B;
  --bg: #F3F6F5;
  --surface: #FBFCFC;
  --surface-2: #E8EFEC;
  --line: #D6E0DC;
  --line-strong: #B9C8C3;

  --green: #009053;
  --green-ink: #007A47;
  --green-soft: #DDEFE6;
  --navy: #014475;
  --teal: #16645C;
  --late: #B4532A;

  --btn-bg: #007A47;
  --btn-bg-hover: #00683D;
  --btn-ink: #F7FBF9;

  --orb: linear-gradient(180deg, #008E52 0%, #017E5C 22%, #04656B 48%, #01596F 62%, #013D7B 88%, #103472 100%);

  --font-display: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-pop: cubic-bezier(0.34, 1.36, 0.64, 1);
  --ease-std: cubic-bezier(0.4, 0, 0.2, 1);

  --r-box: 20px;
  --r-chip: 12px;
  --r-pill: 999px;

  --shadow-1: 0 1px 0 rgb(10 31 51 / 0.04), 0 10px 30px -14px rgb(1 68 117 / 0.22);
  --shadow-2: 0 2px 0 rgb(10 31 51 / 0.04), 0 30px 60px -28px rgb(1 68 117 / 0.38);

  --gutter: clamp(16px, 4vw, 40px);
  --maxw: 1240px;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ink: #E6EFEC;
    --ink-2: #A8B9C2;
    --ink-3: #8C9FAB;
    --bg: #06131E;
    --surface: #0B1C2B;
    --surface-2: #102637;
    --line: #193246;
    --line-strong: #24445C;
    --green-ink: #43C98A;
    --green-soft: #0E2F27;
    --late: #E38A62;
    --shadow-1: 0 1px 0 rgb(255 255 255 / 0.03) inset, 0 14px 34px -16px rgb(0 0 0 / 0.6);
    --shadow-2: 0 1px 0 rgb(255 255 255 / 0.04) inset, 0 30px 60px -24px rgb(0 0 0 / 0.7);
  }
}
:root[data-theme="dark"] {
  --ink: #E6EFEC;
  --ink-2: #A8B9C2;
  --ink-3: #8C9FAB;
  --bg: #06131E;
  --surface: #0B1C2B;
  --surface-2: #102637;
  --line: #193246;
  --line-strong: #24445C;
  --green-ink: #43C98A;
  --green-soft: #0E2F27;
  --late: #E38A62;
  --shadow-1: 0 1px 0 rgb(255 255 255 / 0.03) inset, 0 14px 34px -16px rgb(0 0 0 / 0.6);
  --shadow-2: 0 1px 0 rgb(255 255 255 / 0.04) inset, 0 30px 60px -24px rgb(0 0 0 / 0.7);
}

/* --- Base ---------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
}
img, svg { display: block; max-width: 100%; }
[hidden] { display: none !important; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
::selection { background: var(--green); color: #fff; }

:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 3px;
  border-radius: 6px;
}

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.icon { width: 1.15em; height: 1.15em; flex: none; fill: currentColor; }

/* --- Marca ---------------------------------------------------------------- */
.brand {
  display: inline-flex; align-items: center; gap: 12px;
  text-decoration: none; color: var(--ink);
}
.brand__orb { width: 40px; height: 40px; }
.brand__rule { width: 1px; height: 30px; background: var(--line-strong); }
.brand__text {
  font-family: var(--font-body);
  font-size: 13px; line-height: 1.18; letter-spacing: -0.005em;
  font-weight: 500;
}
.brand__text b { font-weight: 650; }

/* --- Botões --------------------------------------------------------------- */
.btn {
  --pad-y: 14px; --pad-x: 22px;
  position: relative; isolation: isolate;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: var(--pad-y) var(--pad-x);
  border-radius: var(--r-pill);
  border: 1px solid transparent;
  font-weight: 560; font-size: 15px; line-height: 1;
  letter-spacing: -0.005em;
  text-decoration: none; white-space: nowrap;
  cursor: pointer;
  transition: background-color .35s var(--ease-out), border-color .35s var(--ease-out), color .35s var(--ease-out), box-shadow .35s var(--ease-out);
  -webkit-tap-highlight-color: transparent;
}
.btn--primary {
  background: var(--btn-bg); color: var(--btn-ink);
  box-shadow: 0 1px 0 rgb(255 255 255 / 0.18) inset, 0 10px 24px -12px rgb(0 122 71 / 0.7);
  overflow: hidden;
}
/* gradiente do orbe aparece por baixo no hover */
.btn--primary::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--orb);
  opacity: 0; transition: opacity .45s var(--ease-out);
}
.btn--primary:hover::before { opacity: 1; }
.btn--primary .icon { transition: transform .45s var(--ease-pop); }
.btn--primary:hover .icon { transform: translateX(3px); }

.btn--ghost {
  background: transparent; color: var(--ink);
  border-color: var(--line-strong);
}
.btn--ghost:hover { border-color: var(--ink); }

.btn--sm { --pad-y: 10px; --pad-x: 16px; font-size: 14px; }
.btn--lg { --pad-y: 18px; --pad-x: 28px; font-size: 16px; }
.btn:active { transform: scale(0.98); }

/* --- Transição de página (View Transitions entre documentos) -------------- */
@view-transition { navigation: auto; }
::view-transition-group(bcg-orb) { animation-duration: .7s; animation-timing-function: var(--ease-out); }

@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
