/* ==========================================================================
   BR.VC Design Tokens — fonte unica de verdade do design system
   --------------------------------------------------------------------------
   Camada 1: primitivos (rampa de cor, neutros, semanticos base)
   Camada 2: escalas (radius, shadow, spacing, type, fonts)
   Camada 3: tokens semanticos por papel (--app-*, --admin-*) + tema escuro
   --------------------------------------------------------------------------
   Regras (ver .cursor/rules/21-design-system.mdc):
   - Componentes consomem SEMPRE var(--token); nunca hex de marca solto.
   - Este arquivo carrega antes de todos os demais CSS de cada surface.
   - Surfaces (portal, registro) podem estender via "surface themes" abaixo,
     mas derivando dos primitivos, nao com hex paralelo.
   ========================================================================== */

:root {
  /* ====================================================================
     CAMADA 1 — PRIMITIVOS
     ==================================================================== */

  /* Marca: rampa de verde (ancorada em #008a3e) */
  --brvc-green-50: #e8f7ee;
  --brvc-green-100: #c9ecd8;
  --brvc-green-200: #97dab4;
  --brvc-green-300: #5cc389;
  --brvc-green-400: #1fa55f;
  --brvc-green-500: #008a3e; /* primario da marca */
  --brvc-green-600: #007a36;
  --brvc-green-700: #006b2f; /* primario forte / hover */
  --brvc-green-800: #005323;
  --brvc-green-900: #0b3a1c;

  /* Acentos especiais (highlight / dark / marketing) */
  --brvc-green-neon: #00ff88;
  --brvc-green-neon-soft: #36d985;
  --brvc-green-neon-strong: #7df0b3;
  --brvc-teal: #13b99d;

  /* Neutros quentes (tom esverdeado da marca) */
  --brvc-neutral-0: #ffffff;
  --brvc-neutral-50: #f5faf7;
  --brvc-neutral-100: #eef4f0;
  --brvc-neutral-150: #f7fbf8;
  --brvc-neutral-200: #dbe7df;
  --brvc-neutral-300: #b7c9bf;
  --brvc-neutral-400: #8fa89a;
  --brvc-neutral-500: #617168;
  --brvc-neutral-600: #33483c;
  --brvc-neutral-700: #1f3329;
  --brvc-neutral-900: #10251a;

  /* Tintas escuras (base do tema dark) */
  --brvc-ink-900: #07120c;
  --brvc-ink-800: #0f2418;
  --brvc-ink-700: #0b1f14;

  /* Semanticos base */
  --brvc-danger: #b42318;
  --brvc-danger-soft: #fff1f0;
  --brvc-warning: #8a6116;
  --brvc-warning-amber: #f59e0b;
  --brvc-focus: #f2c94c;
  --brvc-info: #2196f3;

  /* Sub-marca de IA (assistentes, geracao) */
  --brvc-ai: #7c3aed;
  --brvc-ai-soft: rgba(124, 58, 237, 0.12);

  /* ====================================================================
     CAMADA 2 — ESCALAS
     ==================================================================== */

  /* Raio de borda */
  --brvc-radius-xs: 8px;
  --brvc-radius-sm: 12px;
  --brvc-radius-md: 16px;
  --brvc-radius-lg: 20px;
  --brvc-radius-xl: 24px;
  --brvc-radius-pill: 999px;

  /* Elevacao / sombra */
  --brvc-shadow-hairline: 0 1px 0 rgba(8, 78, 37, 0.06);
  --brvc-shadow-sm: 0 8px 18px rgba(4, 120, 87, 0.16);
  --brvc-shadow-card: 0 12px 32px rgba(8, 78, 37, 0.06);
  --brvc-shadow-md: 0 16px 40px rgba(15, 42, 28, 0.08);
  --brvc-shadow-lg: 0 18px 46px rgba(8, 78, 37, 0.08);
  --brvc-shadow-overlay: 0 24px 60px rgba(15, 23, 42, 0.28);
  --brvc-shadow-focus: 0 0 0 4px rgba(0, 138, 62, 0.12);

  /* Espacamento (escala 4px) */
  --brvc-space-1: 4px;
  --brvc-space-2: 8px;
  --brvc-space-3: 12px;
  --brvc-space-4: 16px;
  --brvc-space-5: 20px;
  --brvc-space-6: 24px;
  --brvc-space-7: 32px;
  --brvc-space-8: 40px;

  /* Tipografia — escala fluida */
  --brvc-text-xs: 0.78rem;
  --brvc-text-sm: 0.875rem;
  --brvc-text-base: 1rem;
  --brvc-text-lg: clamp(1rem, 1.8vw, 1.12rem);
  --brvc-text-xl: clamp(1.2rem, 2.2vw, 1.4rem);
  --brvc-text-2xl: clamp(1.5rem, 3vw, 1.9rem);
  --brvc-text-3xl: clamp(1.9rem, 3vw, 2.75rem);

  /* Pesos */
  --brvc-weight-regular: 400;
  --brvc-weight-medium: 500;
  --brvc-weight-semibold: 600;
  --brvc-weight-bold: 700;
  --brvc-weight-heavy: 800;
  --brvc-weight-black: 900;

  /* Fontes (tokenizadas; cada surface aplica via font-family) */
  --brvc-font-sans: "Roboto", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --brvc-font-display: "Playfair Display", Georgia, serif;
  --brvc-font-mono: ui-monospace, "JetBrains Mono", SFMono-Regular, Menlo, monospace;

  /* ====================================================================
     CAMADA 3 — SEMANTICOS POR PAPEL (tema claro)
     Espelham os valores atuais de app.css e definem os tokens que hoje
     eram usados apenas como fallback inline (--app-primary, --app-surface*).
     ==================================================================== */

  --app-accent: var(--brvc-green-500);
  --app-accent-strong: var(--brvc-green-700);
  --app-accent-soft: var(--brvc-green-50);

  --app-primary: var(--brvc-green-500);
  --app-primary-soft: var(--brvc-green-50);
  --app-primary-strong: var(--brvc-green-700);

  --app-bg: var(--brvc-neutral-50);
  --app-surface: var(--brvc-neutral-0);
  --app-surface-soft: var(--brvc-neutral-150);
  --app-surface-muted: var(--brvc-neutral-100);
  --app-card: var(--brvc-neutral-0);
  --app-card-bg: var(--brvc-neutral-0);

  --app-border: var(--brvc-neutral-200);
  --app-border-strong: var(--brvc-neutral-300);

  --app-text: var(--brvc-neutral-900);
  --app-text-soft: var(--brvc-neutral-600);
  --app-muted: var(--brvc-neutral-500);

  --app-danger: var(--brvc-danger);
  --app-danger-soft: var(--brvc-danger-soft);
  --app-warning: var(--brvc-warning);
  --app-focus: var(--brvc-focus);

  --app-shadow: var(--brvc-shadow-lg);
  --app-shadow-card: var(--brvc-shadow-card);
  --app-radius: var(--brvc-radius-lg);
  --app-radius-control: var(--brvc-radius-sm);

  --app-font-sans: var(--brvc-font-sans);
  --app-icon-button-size: 38px;

  /* Espelho admin (alias dos tokens app) */
  --admin-accent: var(--app-accent);
  --admin-accent-strong: var(--app-accent-strong);
  --admin-accent-soft: var(--app-accent-soft);
  --admin-bg: var(--app-bg);
  --admin-border: var(--app-border);
  --admin-card: var(--app-card);
  --admin-danger: var(--app-danger);
  --admin-danger-soft: var(--app-danger-soft);
  --admin-focus: var(--app-focus);
  --admin-muted: var(--app-muted);
  --admin-sidebar: var(--app-card);
  --admin-text: var(--app-text);
  --admin-text-soft: var(--app-text-soft);
  --admin-warning: var(--brvc-warning);
  --admin-shadow: var(--app-shadow);
}

/* ======================================================================
   CAMADA 3 — TEMA ESCURO
   Seletor canonico: body.brvc-theme-dark
   (app.css ainda usa body.app-mode.brvc-theme-dark com mais especificidade
    para seus proprios tokens; aqui garantimos os tokens "fantasma" no dark)
   ====================================================================== */
body.brvc-theme-dark {
  --app-accent: var(--brvc-green-neon-soft);
  --app-accent-strong: var(--brvc-green-neon-strong);
  --app-accent-soft: rgba(54, 217, 133, 0.13);

  --app-primary: var(--brvc-green-neon-soft);
  --app-primary-soft: rgba(54, 217, 133, 0.16);
  --app-primary-strong: var(--brvc-green-neon-strong);

  --app-bg: var(--brvc-ink-900);
  --app-surface: var(--brvc-ink-800);
  --app-surface-soft: #12301f;
  --app-surface-muted: rgba(184, 255, 216, 0.08);
  --app-card: var(--brvc-ink-800);
  --app-card-bg: var(--brvc-ink-800);

  --app-border: rgba(184, 255, 216, 0.16);
  --app-border-strong: rgba(184, 255, 216, 0.24);

  --app-text: #f0fff6;
  --app-text-soft: #d5eadf;
  --app-muted: #aac4b5;

  --app-shadow: 0 18px 46px rgba(0, 0, 0, 0.28);
  --app-shadow-card: 0 18px 46px rgba(0, 0, 0, 0.28);
}

/* ======================================================================
   SURFACE THEMES
   Surfaces de marketing reusam os mesmos primitivos com papeis proprios.
   (Preenchidos na migracao de portal/registro — Fase 1b.)
   ====================================================================== */
