/* NF Zap — Design System (Domani, tema Verde Neon + Carbono) */
:root {
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'JetBrains Mono', 'SF Mono', monospace;

  --text-xs: clamp(0.72rem, 0.7rem + 0.1vw, 0.78rem);
  --text-sm: clamp(0.82rem, 0.8rem + 0.15vw, 0.9rem);
  --text-base: clamp(0.95rem, 0.9rem + 0.25vw, 1.05rem);
  --text-lg: clamp(1.1rem, 1rem + 0.5vw, 1.3rem);
  --text-xl: clamp(1.35rem, 1.2rem + 0.9vw, 1.7rem);
  --text-2xl: clamp(1.7rem, 1.4rem + 1.5vw, 2.3rem);

  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-8: 32px; --space-10: 40px;

  --radius-sm: 8px; --radius-md: 12px; --radius-lg: 16px; --radius-xl: 22px; --radius-full: 999px;

  --transition-fast: 140ms cubic-bezier(.4,0,.2,1);
  --transition-base: 240ms cubic-bezier(.4,0,.2,1);
}

:root, :root[data-theme="dark"] {
  color-scheme: dark;
  /* Superfícies — carbono texturizado */
  --surface-base: #0A0C0A;
  --surface-raised: #111511;
  --surface-overlay: #171C17;
  --surface-elevated: #1E241E;
  --carbon-texture:
    repeating-linear-gradient(45deg, rgba(255,255,255,.012) 0 2px, transparent 2px 4px),
    repeating-linear-gradient(-45deg, rgba(255,255,255,.012) 0 2px, transparent 2px 4px);

  --text-primary: #F0F5F0;
  --text-secondary: #96A396;
  --text-tertiary: #58665A;
  --text-inverse: #0A0C0A;

  /* Brand — verde neon */
  --accent-primary: #39FF14;
  --accent-primary-hover: #5CFF3D;
  --accent-gradient: linear-gradient(135deg, #39FF14 0%, #00E5A0 100%);
  --accent-glow: 0 0 24px rgba(57, 255, 20, .28);

  --success: #2ED47A; --success-soft: rgba(46,212,122,.12);
  --warning: #FFAD0D; --warning-soft: rgba(255,173,13,.12);
  --danger: #EF4444;  --danger-soft: rgba(239,68,68,.12);
  --info: #3B82F6;    --info-soft: rgba(59,130,246,.12);

  --glass-bg: rgba(57,255,20,.04);
  --glass-border: rgba(57,255,20,.10);
  --glass-blur: 16px;
  --glass-shadow: 0 8px 32px rgba(0,0,0,.5);

  --border-subtle: rgba(255,255,255,.06);
  --border-default: rgba(255,255,255,.10);
  --border-strong: rgba(255,255,255,.16);
}

:root[data-theme="light"] {
  color-scheme: light;
  --surface-base: #F5F8F5;
  --surface-raised: #FFFFFF;
  --surface-overlay: #FFFFFF;
  --surface-elevated: #ECF2EC;
  --carbon-texture: none;

  --text-primary: #131A13;
  --text-secondary: #5D6B5D;
  --text-tertiary: #94A394;
  --text-inverse: #0A0C0A;

  --accent-primary: #16B000;
  --accent-primary-hover: #129600;
  --accent-gradient: linear-gradient(135deg, #16B000 0%, #00A87A 100%);
  --accent-glow: 0 0 20px rgba(22,176,0,.18);

  --success: #16A34A; --success-soft: rgba(22,163,74,.10);
  --warning: #D97706; --warning-soft: rgba(217,119,6,.10);
  --danger: #DC2626;  --danger-soft: rgba(220,38,38,.10);
  --info: #2563EB;    --info-soft: rgba(37,99,235,.10);

  --glass-bg: rgba(255,255,255,.72);
  --glass-border: rgba(0,0,0,.06);
  --glass-blur: 20px;
  --glass-shadow: 0 8px 32px rgba(0,0,0,.08);

  --border-subtle: rgba(0,0,0,.05);
  --border-default: rgba(0,0,0,.09);
  --border-strong: rgba(0,0,0,.15);
}

/* ── Reset e base ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; }
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-body);
  font-size: var(--text-base);
  color: var(--text-primary);
  background: var(--surface-base);
  background-image: var(--carbon-texture);
  min-height: 100dvh;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  touch-action: manipulation;
}
img { max-width: 100%; display: block; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--accent-primary); text-decoration: none; }
::selection { background: var(--accent-primary); color: var(--text-inverse); }

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