/* ── Tokens ──
   Paleta institucional BPTran (identidade-visual.md): azul primário,
   laranja de ação (uso moderado), amarelo de destaque secundário,
   neutros de tema claro e status canônicos. */
:root {
  --bg:          #f4f5f7;
  --paper:       #ffffff;
  --ink:         #1e2544;
  --ink-soft:    #6b7280;
  --line:        #e0e2e9;
  --border:      #cbd0e0;
  --accent:      #e8601c;
  --accent-hover:#c94e14;
  --accent-deep: #e8601c40;
  --teal:        #2d3561;
  --teal-soft:   #2d356118;
  --amarelo:     #f6ce5c;
  --amarelo-soft:#fde68a;
  --success:     #16a34a;
  --success-bg:  #16a34a14;
  --error:       #dc2626;
  --error-bg:    #dc262614;
  --warn:        #b45309;
  --warn-bg:     #f6ce5c26;
  --shadow:      0 1px 2px rgba(30,37,68,.05), 0 12px 32px -16px rgba(30,37,68,.22);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

body {
  font-family: 'Inter', sans-serif;
  color: var(--ink);
  background-color: var(--bg);
  background-image:
    radial-gradient(120% 120% at 12% -10%, #ffffff 0%, transparent 45%),
    radial-gradient(130% 130% at 100% 0%, #eef0f8 0%, transparent 40%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  min-height: 100vh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* Linhas de contorno topográfico de fundo */
.topo {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  opacity: .5;
}
.topo svg {
  position: absolute;
  width: 140%;
  height: 140%;
  top: -20%;
  left: -20%;
}
.topo path {
  fill: none;
  stroke: var(--line);
  stroke-width: 1.1;
}
