/* ================================================================
   nexus-tokens.css — Nexus Mission Control V2 Design Tokens
   Geladen NACH main.css, überschreibt shadcn/v1-Standards.
   ================================================================ */

:root {
  /* ── Surfaces ─────────────────────────────────────── */
  --space-0: #050410;
  --space-1: #0a0818;
  --space-2: #0e0c20;
  --space-3: #141130;
  --space-4: #1b1742;
  --glass:   rgba(20, 17, 48, 0.55);
  --glass-2: rgba(28, 24, 64, 0.55);

  /* ── Lines ────────────────────────────────────────── */
  --line:    rgba(150, 140, 255, 0.10);
  --line-2:  rgba(150, 140, 255, 0.18);
  --line-3:  rgba(150, 140, 255, 0.30);

  /* ── Text ─────────────────────────────────────────── */
  --tx:  #ece9ff;
  --tx-2: #a8a3d6;
  --tx-3: #6f6aa0;
  --tx-on-accent: #ffffff;

  /* ── Accent Gradient ──────────────────────────────── */
  --a-blue:   #4f7cff;
  --a-cyan:   #34d6f5;
  --a-purple: #b557f6;
  --a-mid:    #7c6cff;
  --grad:   linear-gradient(120deg, var(--a-blue), var(--a-purple));
  --grad-soft: linear-gradient(120deg, rgba(79,124,255,.18), rgba(181,87,246,.18));
  --accent-scroll: rgba(124,108,255,.32);
  --accent-wash: rgba(124,108,255,.07);
  --accent-wash-strong: rgba(124,108,255,.13);
  --field-surface: rgba(10,8,24,.62);
  --field-surface-focus: rgba(14,12,32,.82);

  /* ── Status ───────────────────────────────────────── */
  --st-work:  #3ddc97;
  --st-think: #34d6f5;
  --st-queue: #fbbf24;
  --st-block: #fb7185;
  --st-review: #fb923c;
  --st-idle:  #6b6796;

  /* ── Glows ────────────────────────────────────────── */
  --glow:        0 0 0 1px rgba(124,108,255,.20), 0 0 28px -4px rgba(124,108,255,.55);
  --glow-blue:   0 0 24px -2px rgba(79,124,255,.65);
  --glow-purple: 0 0 24px -2px rgba(181,87,246,.60);
  --glow-work:   0 0 16px -1px rgba(61,220,151,.70);
  --glow-think:  0 0 16px -1px rgba(52,214,245,.65);

  /* ── Radius ───────────────────────────────────────── */
  --r:    14px;
  --r-sm: 10px;
  --r-lg: 20px;

  /* ── Layout ───────────────────────────────────────── */
  --sidebar-w: 248px;
  --topbar-h:  62px;
  --rail-w:    360px;

  /* Typography */
  --font-body: 'Manrope', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-display: 'Space Grotesk', var(--font-body);
  --font-mono-v2: 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace;

  /* Page geometry */
  --page-pad: 20px;
  --page-pad-mobile: 14px;
  --page-max-workspace: 1440px;
  --page-max-standard: 1180px;
  --page-max-reading: 880px;

  /* Semantic presentation tokens */
  --status-work-bg: rgba(61, 220, 151, .10);
  --status-work-line: rgba(61, 220, 151, .28);
  --status-think-bg: rgba(52, 214, 245, .10);
  --status-think-line: rgba(52, 214, 245, .28);
  --status-queue-bg: rgba(251, 191, 36, .10);
  --status-queue-line: rgba(251, 191, 36, .28);
  --status-block-bg: rgba(251, 113, 133, .10);
  --status-block-line: rgba(251, 113, 133, .30);
  --status-idle-bg: rgba(107, 103, 150, .10);
  --status-idle-line: rgba(107, 103, 150, .24);
  --panel-shadow: 0 22px 60px rgba(3, 2, 16, .20);
  --focus-ring: 0 0 0 3px rgba(79, 124, 255, .26);

  /*
   * Legacy aliases
   * Keep old views on the V2 source of truth without changing any runtime
   * contract. Do not add new color values outside this token file.
   */
  --nx-bg: var(--space-0);
  --nx-panel: var(--glass);
  --nx-panel-soft: var(--glass-2);
  --nx-line: var(--line);
  --nx-muted: var(--tx-2);
  --nx-accent: var(--a-mid);
  --nx-accent-soft: var(--grad-soft);
  --nx-green: var(--st-work);
  --nx-text: var(--tx);
  --nx-text-dim: var(--tx-3);
  --panel: var(--glass);
  --panel-soft: var(--glass-2);
  --surface: var(--glass);
  --surface-raised: var(--glass-2);
  --text-primary: var(--tx);
  --text-secondary: var(--tx-2);
  --text-muted: var(--tx-3);
  --text-dim: var(--tx-3);
  --accent-secondary: var(--a-purple);
  --accent-soft: var(--grad-soft);
  --success: var(--st-work);
  --warning: var(--st-queue);
  --danger: var(--st-block);

  color-scheme: dark;
}

/* ── Glass card utility ────────────────────────────── */
.glass-panel {
  background: var(--glass);
  border: 1px solid var(--line);
  border-radius: var(--r);
  backdrop-filter: blur(12px);
}

/* ── Gradient text ─────────────────────────────────── */
.grad-text {
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ── Status dot keyframes ──────────────────────────── */
@keyframes pulse-work {
  0%   { box-shadow: 0 0 0 0   rgba(61,220,151,.55); }
  70%  { box-shadow: 0 0 0 7px rgba(61,220,151,0);   }
  100% { box-shadow: 0 0 0 0   rgba(61,220,151,0);   }
}
@keyframes pulse-think {
  0%   { box-shadow: 0 0 0 0   rgba(52,214,245,.55); }
  70%  { box-shadow: 0 0 0 7px rgba(52,214,245,0);   }
  100% { box-shadow: 0 0 0 0   rgba(52,214,245,0);   }
}
@keyframes pulse-block {
  0%   { box-shadow: 0 0 0 0   rgba(251,113,133,.55); }
  70%  { box-shadow: 0 0 0 7px rgba(251,113,133,0);   }
  100% { box-shadow: 0 0 0 0   rgba(251,113,133,0);   }
}
@keyframes shimmer {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(180%);  }
}
/* ── V2 Scrollbars ─────────────────────────────────── */
.v2-scroll::-webkit-scrollbar { width: 9px; height: 9px; }
.v2-scroll::-webkit-scrollbar-thumb {
  background: rgba(124,108,255,.22);
  border-radius: 9px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
.v2-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(124,108,255,.4);
  background-clip: padding-box;
}
.v2-scroll::-webkit-scrollbar-track { background: transparent; }

/* ── Typography helpers ────────────────────────────── */
.font-display { font-family: var(--font-display); }
.font-mono-v2 { font-family: var(--font-mono-v2); font-variant-numeric: tabular-nums; }

@media (prefers-reduced-motion: reduce) {
  .status-dot,
  .runtime-dot,
  .spin {
    animation: none !important;
  }
}
