/* ═══════════════════════════════════════════════════════════════
   THEME A — "Obsidian Violet"
   Dark theme with violet primary and cyan secondary
   ═══════════════════════════════════════════════════════════════ */

:root {
  /* ── Surface ── */
  --cc-bg: #09090b;
  --cc-surface: #18181b;
  --cc-surface-hover: #27272a;
  --cc-border: #27272a;
  --cc-border-subtle: rgba(255, 255, 255, 0.06);

  /* ── Text ── */
  --cc-text: #fafafa;
  --cc-text-secondary: #a1a1aa;
  --cc-muted: #71717a;

  /* ── Accent ── */
  --cc-accent: #8b5cf6;
  --cc-accent-hover: #7c3aed;
  --cc-accent-2: #06b6d4;
  --cc-accent-rgb: 139, 92, 246;
  --cc-accent2-rgb: 6, 182, 212;

  /* ── Semantic ── */
  --cc-success: #22c55e;
  --cc-success-rgb: 34, 197, 94;
  --cc-danger: #ef4444;
  --cc-danger-rgb: 239, 68, 68;
  --cc-warning: #eab308;
  --cc-warning-rgb: 234, 179, 8;
  --cc-info: #3b82f6;

  /* ── Shadows ── */
  --cc-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --cc-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.35);
  --cc-shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.45);
  --cc-shadow-xl: 0 24px 64px rgba(0, 0, 0, 0.6);

  /* ── Glass ── */
  --cc-glass: rgba(0, 0, 0, 0.6);
  --cc-glass-border: rgba(255, 255, 255, 0.1);

  /* ── Dark theme: invert btn-close (default) ── */
  --cc-btn-close-filter: invert(1);

  color-scheme: dark;
}

/* ── Sidebar neon accent ── */
.cc-sidebar .nav-link.active {
  background: rgba(var(--cc-accent-rgb), 0.12);
  border-color: rgba(var(--cc-accent-rgb), 0.2);
  box-shadow: inset 0 0 12px rgba(var(--cc-accent-rgb), 0.06);
}

/* ── Card glow on hover ── */
.card:hover,
.card-neu:hover {
  box-shadow: var(--cc-shadow-md), 0 0 20px rgba(var(--cc-accent-rgb), 0.04);
}

/* ── Module card accent stripe ── */
.module-card::before {
  background: linear-gradient(90deg, var(--cc-accent), var(--cc-accent-2));
}

/* ── KPI accents ── */
.cc-kpi--success {
  border-left: 3px solid var(--cc-success);
}

.cc-kpi--accent {
  border-left: 3px solid var(--cc-accent);
}

.cc-kpi--info {
  border-left: 3px solid var(--cc-info);
}

.cc-kpi--warning {
  border-left: 3px solid var(--cc-warning);
}

/* ── Button glow ── */
.btn-primary:hover {
  box-shadow: 0 4px 16px rgba(var(--cc-accent-rgb), 0.35);
}

/* ── Topbar subtle gradient ── */
.cc-topbar {
  background: linear-gradient(180deg, rgba(24, 24, 27, 1) 0%, rgba(24, 24, 27, 0.95) 100%);
}

/* ── Search focus glow ── */
.cc-search:focus-within {
  box-shadow: 0 0 0 3px rgba(var(--cc-accent-rgb), 0.12), 0 0 16px rgba(var(--cc-accent-rgb), 0.05);
}

/* ── Scrollbar theme ── */
::-webkit-scrollbar-thumb {
  background: rgba(var(--cc-accent-rgb), 0.2);
}

::-webkit-scrollbar-thumb:hover {
  background: rgba(var(--cc-accent-rgb), 0.35);
}

/* ── Soni widget ── */
#soniChatWindow {
  border-radius: 16px;
}

#soniToggleBtn {
  background: rgba(var(--cc-accent-rgb), 0.18);
  border: 1px solid rgba(var(--cc-accent-rgb), 0.3);
  box-shadow: 0 0 24px rgba(var(--cc-accent-rgb), 0.2), 0 8px 24px rgba(0, 0, 0, 0.3);
}

/* ── Table striping ── */
.table tbody tr:nth-child(even) {
  background: rgba(255, 255, 255, 0.015);
}

/* ── Elevated surfaces ── */
.modal-content {
  background: var(--cc-surface);
}

.dropdown-menu {
  background: var(--cc-surface);
}

/* ── Link colors ── */
a {
  color: var(--cc-accent);
}

a:hover {
  color: var(--cc-accent-2);
}