/* Obsyd 2.0 — design tokens (dark-first) */
:root {
  /* Superfícies */
  --obsidian-950: #07080D;   /* fundo do app */
  --obsidian-900: #0B0D16;   /* surface principal */
  --obsidian-850: #10121F;   /* surface */
  --obsidian-800: #141729;   /* elevated */
  --glass-bg: rgba(20, 23, 41, 0.62);
  --glass-blur: 20px;
  --glass-highlight: inset 0 1px 0 rgba(255, 255, 255, 0.08);
  --fill-subtle: rgba(255, 255, 255, 0.04);
  --fill-hover: rgba(255, 255, 255, 0.06);
  --fill-active: rgba(255, 255, 255, 0.10);
  --border-subtle: rgba(255, 255, 255, 0.06);

  /* Marca */
  --indigo-500: #5B5FF0;
  --indigo-300: #A5A8FF;   /* ícone ativo, linhas de gráfico */
  --indigo-200: #8F93FF;   /* links, focus */
  --aqua-400: #6FE3D6;     /* raro: só destaques especiais */
  --mist-50: #F5F6FB;
  --mist-100: #E9EBF4;

  /* Texto */
  --text-primary: #F2F3F8;
  --text-secondary: #A3A8BF;
  --text-muted: #8088A3;
  --text-faint: #6E7591;   /* centavos, labels de eixo */

  /* Semântica financeira */
  --positive: #3DD68C;
  --negative: #FF6B7A;
  --negative-text: #FF8592;
  --warning: #F5B451;

  /* Foco */
  --focus-ring: 0 0 0 2px var(--obsidian-950), 0 0 0 4px var(--indigo-200);

  /* Raio */
  --radius-sm: 9px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-pill: 999px;

  /* Espaçamento (base 4) */
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-8: 32px; --space-10: 40px; --space-12: 48px; --space-14: 56px;

  /* Tipografia */
  --font-sans: "Geist", system-ui, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, monospace;
  --font-wordmark: "Manrope", var(--font-sans); /* 800, letter-spacing -0.045em */
  --text-display: 56px;  /* valor-herói: 500, -0.045em */
  --text-title: 22px;
  --text-section: 17px;
  --text-body: 14px;
  --text-label: 12px;

  /* Sombra */
  --shadow-float: 0 24px 48px -16px rgba(0, 0, 0, 0.8);
  --shadow-overlay: 0 40px 80px -20px rgba(0, 0, 0, 0.9);

  /* Motion */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --dur-micro: 140ms;
  --dur-state: 220ms;
  --dur-page: 320ms;
  --dur-chart: 640ms;

  /* Layout */
  --sidebar-w: 232px;
  --sidebar-w-compact: 76px;
}

.tabular { font-variant-numeric: tabular-nums; }

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