/* NIVAQ Design System — tokens
   Single source of truth. Never hardcode a hex, radius, or shadow in a component. */
:root{
  /* ---- Brand ---- */
  --nvq-deep:#171A3A;        /* fundo escuro, inteligência */
  --nvq-deep-700:#2A2E63;
  --nvq-violet:#635BFF;      /* cor principal */
  --nvq-violet-600:#5A52EE;
  --nvq-violet-400:#8F89FF;
  --nvq-violet-100:#F1F0FF;
  --nvq-lime:#B7E84B;        /* EXCLUSIVO: oportunidade */
  --nvq-lime-ink:#4A5D22;
  --nvq-lime-surface:#F2F9E4;

  /* ---- Neutros ---- */
  --nvq-ice:#F4F6FB;         /* fundo padrão do app */
  --nvq-white:#FFFFFF;
  --nvq-graphite:#252733;    /* texto principal */
  --nvq-muted:#5A6076;       /* texto secundário */
  --nvq-faint:#8A8FA3;       /* texto terciário / labels */
  --nvq-line:#E4E8F3;        /* bordas */
  --nvq-line-strong:#D7DBE8;
  --nvq-surface-alt:#EEF1F9;

  /* ---- Semânticos ---- */
  --nvq-opportunity:var(--nvq-lime);
  --nvq-risk:#F0A63C;
  --nvq-risk-ink:#B3762A;
  --nvq-risk-surface:#FDF4E6;
  --nvq-danger:#D9556D;
  --nvq-danger-ink:#7A3A46;
  --nvq-danger-surface:#FCF0F0;
  --nvq-info:var(--nvq-violet);

  /* ---- Tipografia ---- */
  --nvq-font-display:"Space Grotesk",system-ui,sans-serif;
  --nvq-font-text:"IBM Plex Sans",system-ui,sans-serif;
  --nvq-font-mono:"IBM Plex Mono",ui-monospace,monospace;

  --nvq-text-display:clamp(30px,7vw,44px);
  --nvq-text-h1:26px;
  --nvq-text-h2:21px;
  --nvq-text-h3:17px;
  --nvq-text-body:15px;
  --nvq-text-sm:13.5px;
  --nvq-text-xs:12.5px;
  --nvq-text-label:10px;      /* mono, uppercase, tracking .16em */

  --nvq-lh-tight:1.1;
  --nvq-lh-snug:1.35;
  --nvq-lh-body:1.55;
  --nvq-track-display:-0.035em;
  --nvq-track-label:0.16em;

  /* ---- Espaçamento (base 4) ---- */
  --nvq-space-1:4px;  --nvq-space-2:8px;  --nvq-space-3:12px;
  --nvq-space-4:16px; --nvq-space-5:20px; --nvq-space-6:24px;
  --nvq-space-8:32px; --nvq-space-10:40px; --nvq-space-12:48px;
  --nvq-gutter:18px;          /* padding lateral de tela mobile */

  /* ---- Raios ---- */
  --nvq-radius-sm:8px;
  --nvq-radius-md:10px;
  --nvq-radius-lg:14px;
  --nvq-radius-xl:18px;
  --nvq-radius-2xl:22px;
  --nvq-radius-pill:999px;

  /* ---- Elevação ---- */
  --nvq-shadow-card:0 2px 10px rgba(23,26,58,.06);
  --nvq-shadow-raised:0 8px 24px rgba(23,26,58,.10);
  --nvq-shadow-sheet:0 -8px 40px rgba(23,26,58,.18);

  /* ---- Movimento ---- */
  --nvq-ease:cubic-bezier(.22,.61,.36,1);
  --nvq-dur-fast:120ms;
  --nvq-dur:200ms;
  --nvq-dur-slow:360ms;

  /* ---- Superfícies sobre fundo escuro (landing / marketing) ---- */
  --nvq-deep-900:#0F1230;
  --nvq-on-deep:#F4F6FB;
  --nvq-on-deep-muted:#B6BBD0;   /* corpo sobre deep */
  --nvq-on-deep-soft:#A9AEC6;
  --nvq-on-deep-faint:#8A90AC;   /* mínimo legível sobre deep */
  --nvq-on-deep-glass:rgba(244,246,251,.045);
  --nvq-on-deep-hairline:rgba(244,246,251,.08);
  --nvq-on-deep-line:rgba(244,246,251,.10);
  --nvq-on-deep-line-strong:rgba(244,246,251,.22);
  --nvq-on-deep-ring:rgba(244,246,251,.28);
  --nvq-violet-glass:rgba(99,91,255,.10);
  --nvq-violet-ring:rgba(143,137,255,.28);
  --nvq-violet-glow:rgba(99,91,255,.32);
  --nvq-violet-glow-soft:rgba(99,91,255,.28);
  --nvq-scan:rgba(99,91,255,.09);
  --nvq-lime-ink-dark:#5C7620;
  --nvq-radius-btn:12px;
  --nvq-radius-device:30px;

  /* ---- Layout ---- */
  --nvq-tap-min:44px;
  --nvq-header-wave:78px;     /* curvatura da onda do header */
  --nvq-icon-stroke:1.75;
}
@media (prefers-color-scheme:dark){
  :root[data-theme="auto"],:root[data-theme="dark"]{
    --nvq-ice:#12142B; --nvq-white:#1B1E42; --nvq-graphite:#ECEEF8;
    --nvq-muted:#A9AEC6; --nvq-faint:#7F85A3;
    --nvq-line:#2A2E55; --nvq-line-strong:#353A66; --nvq-surface-alt:#232750;
  }
}
