/* RociaDB — Color Tokens
   Palette: whites + pastel violet, sober and professional
   Light & Dark mode via :root and [data-theme="dark"] */

:root {
  /* ── Violet palette ── */
  --violet-50:  oklch(0.97 0.01 290);
  --violet-100: oklch(0.94 0.025 290);
  --violet-200: oklch(0.89 0.045 290);
  --violet-300: oklch(0.82 0.07 290);
  --violet-400: oklch(0.72 0.10 290);
  --violet-500: oklch(0.62 0.14 290);
  --violet-600: oklch(0.52 0.16 290);
  --violet-700: oklch(0.42 0.14 290);
  --violet-800: oklch(0.34 0.11 290);
  --violet-900: oklch(0.26 0.08 290);

  /* ── Neutral palette (cool-tinted) ── */
  --neutral-0:   #ffffff;
  --neutral-50:  oklch(0.985 0.004 290);
  --neutral-100: oklch(0.965 0.006 290);
  --neutral-200: oklch(0.935 0.008 290);
  --neutral-300: oklch(0.88 0.01 290);
  --neutral-400: oklch(0.75 0.012 290);
  --neutral-500: oklch(0.62 0.014 290);
  --neutral-600: oklch(0.50 0.014 290);
  --neutral-700: oklch(0.40 0.012 290);
  --neutral-800: oklch(0.30 0.01 290);
  --neutral-900: oklch(0.20 0.008 290);
  --neutral-950: oklch(0.14 0.006 290);

  /* ── Semantic: Surfaces ── */
  --surface-page:       var(--neutral-0);
  --surface-raised:     var(--neutral-0);
  --surface-sunken:     var(--neutral-50);
  --surface-overlay:    var(--neutral-0);
  --surface-accent:     var(--violet-50);
  --surface-accent-strong: var(--violet-100);

  /* ── Semantic: Text ── */
  --text-primary:       var(--neutral-900);
  --text-secondary:     var(--neutral-600);
  --text-tertiary:      var(--neutral-400);
  --text-on-accent:     var(--neutral-0);
  --text-accent:        var(--violet-600);
  --text-link:          var(--violet-600);
  --text-link-hover:    var(--violet-700);

  /* ── Semantic: Borders ── */
  --border-default:     var(--neutral-200);
  --border-subtle:      var(--neutral-100);
  --border-strong:      var(--neutral-300);
  --border-accent:      var(--violet-300);
  --border-focus:       var(--violet-400);

  /* ── Semantic: Interactive ── */
  --interactive-primary:       var(--violet-500);
  --interactive-primary-hover: var(--violet-600);
  --interactive-primary-active:var(--violet-700);
  --interactive-secondary:       var(--violet-50);
  --interactive-secondary-hover: var(--violet-100);
  --interactive-secondary-active:var(--violet-200);
  --interactive-ghost-hover:   var(--neutral-100);
  --interactive-ghost-active:  var(--neutral-200);

  /* ── Semantic: Status ── */
  --status-success:     oklch(0.65 0.16 145);
  --status-success-bg:  oklch(0.95 0.03 145);
  --status-warning:     oklch(0.70 0.16 75);
  --status-warning-bg:  oklch(0.95 0.04 75);
  --status-error:       oklch(0.60 0.18 25);
  --status-error-bg:    oklch(0.95 0.03 25);
  --status-info:        var(--violet-500);
  --status-info-bg:     var(--violet-50);
}

/* ── Dark mode ── */
[data-theme="dark"] {
  --surface-page:       var(--neutral-950);
  --surface-raised:     var(--neutral-900);
  --surface-sunken:     oklch(0.11 0.006 290);
  --surface-overlay:    var(--neutral-900);
  --surface-accent:     oklch(0.20 0.04 290);
  --surface-accent-strong: oklch(0.25 0.06 290);

  --text-primary:       oklch(0.95 0.005 290);
  --text-secondary:     oklch(0.70 0.01 290);
  --text-tertiary:      oklch(0.55 0.01 290);
  --text-on-accent:     var(--neutral-0);
  --text-accent:        var(--violet-300);
  --text-link:          var(--violet-300);
  --text-link-hover:    var(--violet-200);

  --border-default:     oklch(0.28 0.01 290);
  --border-subtle:      oklch(0.22 0.008 290);
  --border-strong:      oklch(0.35 0.012 290);
  --border-accent:      var(--violet-600);
  --border-focus:       var(--violet-400);

  --interactive-primary:       var(--violet-400);
  --interactive-primary-hover: var(--violet-300);
  --interactive-primary-active:var(--violet-500);
  --interactive-secondary:       oklch(0.22 0.04 290);
  --interactive-secondary-hover: oklch(0.26 0.05 290);
  --interactive-secondary-active:oklch(0.30 0.06 290);
  --interactive-ghost-hover:   oklch(0.22 0.01 290);
  --interactive-ghost-active:  oklch(0.26 0.012 290);

  --status-success:     oklch(0.72 0.14 145);
  --status-success-bg:  oklch(0.22 0.04 145);
  --status-warning:     oklch(0.75 0.14 75);
  --status-warning-bg:  oklch(0.22 0.04 75);
  --status-error:       oklch(0.68 0.16 25);
  --status-error-bg:    oklch(0.22 0.04 25);
  --status-info:        var(--violet-300);
  --status-info-bg:     oklch(0.22 0.04 290);
}
