/* ==========================================================================
   Dracula Design System — Material Design 3 (M3) Tokens
   Derived from the Official Dracula Theme Palette (Zeno Rocha)
   Paired with M3 Tonal Containment, Elevation & Component Hierarchies
   ========================================================================== */

:root,
[data-bs-theme="dark"],
[data-theme="dark"] {
  /* Dracula Official Palette Constants */
  --dracula-bg: #282a36;
  --dracula-current-line: #44475a;
  --dracula-selection: #44475a;
  --dracula-fg: #f8f8f2;
  --dracula-comment: #6272a4;
  --dracula-cyan: #8be9fd;
  --dracula-green: #50fa7b;
  --dracula-orange: #ffb86c;
  --dracula-pink: #ff79c6;
  --dracula-purple: #bd93f9;
  --dracula-red: #ff5555;
  --dracula-yellow: #f1fa8c;

  /* Reference / Seed Palette */
  --md-ref-palette-primary: #bd93f9;

  /* Dracula Dark Surfaces (Tiered Tonal Containment) */
  --md-sys-color-surface: #1e1f29;                    /* Dracula deep canvas base */
  --md-sys-color-surface-container-lowest: #161720;   /* Dracula crust (recessed code/grid areas) */
  --md-sys-color-surface-container-low: #21222c;      /* Dracula mantle (subtle groupings) */
  --md-sys-color-surface-container: #282a36;          /* Signature Dracula card & dialog surface */
  --md-sys-color-surface-container-high: #343746;     /* Elevated surfaces, hover states, menus */
  --md-sys-color-surface-container-highest: #44475a;  /* Dracula current line / selection highlights */

  /* Text & Outlines */
  --md-sys-color-on-surface: #f8f8f2;                 /* Dracula pearl white text */
  --md-sys-color-surface-variant: #343746;
  --md-sys-color-on-surface-variant: #b0b4c8;         /* High readability muted pearl text */
  --md-sys-color-outline: #6272a4;                    /* Dracula comment blue-grey */
  --md-sys-color-outline-variant: #44475a;            /* Dracula selection subtle divider */

  /* Primary Action Roles (Dracula Purple) */
  --md-sys-color-primary: #bd93f9;
  --md-sys-color-on-primary: #1e1f29;
  --md-sys-color-primary-container: #3c3558;
  --md-sys-color-on-primary-container: #f1e6ff;

  /* Secondary Roles (Dracula Pink) */
  --md-sys-color-secondary: #ff79c6;
  --md-sys-color-on-secondary: #1e1f29;
  --md-sys-color-secondary-container: #49263a;
  --md-sys-color-on-secondary-container: #ffdbed;

  /* Tertiary Roles (Dracula Cyan) */
  --md-sys-color-tertiary: #8be9fd;
  --md-sys-color-on-tertiary: #161720;
  --md-sys-color-tertiary-container: #1b3d44;
  --md-sys-color-on-tertiary-container: #d6f7ff;

  /* Success Roles (Dracula Green) */
  --md-sys-color-success: #50fa7b;
  --md-sys-color-on-success: #161720;
  --md-sys-color-success-container: #164625;
  --md-sys-color-on-success-container: #c4ffd4;

  /* Warning Roles (Dracula Orange / Yellow) */
  --md-sys-color-warning: #ffb86c;
  --md-sys-color-on-warning: #161720;
  --md-sys-color-warning-container: #4a2c11;
  --md-sys-color-on-warning-container: #ffe7d1;

  /* Error Roles (Dracula Red) */
  --md-sys-color-error: #ff5555;
  --md-sys-color-on-error: #161720;
  --md-sys-color-error-container: #521919;
  --md-sys-color-on-error-container: #ffd4d4;

  /* Shapes (Material 3 Scale) */
  --md-sys-shape-none: 0px;
  --md-sys-shape-extra-small: 4px;
  --md-sys-shape-small: 8px;
  --md-sys-shape-medium: 12px;
  --md-sys-shape-large: 16px;
  --md-sys-shape-extra-large: 28px;
  --md-sys-shape-full: 9999px;

  /* Elevations (Dracula tinted shadows) */
  --md-sys-elevation-0: none;
  --md-sys-elevation-1: 0 1px 3px 1px rgba(0, 0, 0, 0.25), 0 1px 2px 0 rgba(0, 0, 0, 0.40);
  --md-sys-elevation-2: 0 2px 6px 2px rgba(0, 0, 0, 0.25), 0 1px 2px 0 rgba(0, 0, 0, 0.40);
  --md-sys-elevation-3: 0 4px 8px 3px rgba(0, 0, 0, 0.30), 0 1px 3px 0 rgba(0, 0, 0, 0.45);
  --md-sys-elevation-4: 0 6px 10px 4px rgba(0, 0, 0, 0.30), 0 2px 3px 0 rgba(0, 0, 0, 0.45);
  --md-sys-elevation-5: 0 8px 14px 6px rgba(0, 0, 0, 0.35), 0 4px 4px 0 rgba(0, 0, 0, 0.50);

  /* Typography */
  --md-sys-typescale-font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --md-sys-typescale-font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Bootstrap Harmonization (Dark) */
  --bs-body-bg: var(--md-sys-color-surface);
  --bs-body-color: var(--md-sys-color-on-surface);
  --bs-secondary-color: var(--md-sys-color-on-surface-variant);
  --bs-tertiary-bg: var(--md-sys-color-surface-container-low);
  --bs-secondary-bg: var(--md-sys-color-surface-container);
  --bs-border-color: var(--md-sys-color-outline-variant);
  --bs-border-color-translucent: rgba(68, 71, 90, 0.5);
  --bs-primary: var(--md-sys-color-primary);
  --bs-primary-rgb: 189, 147, 249;
}

/* Light Theme Color Roles (Dracula Light / Alucard Palette) */
[data-bs-theme="light"],
[data-theme="light"] {
  --md-ref-palette-primary: #7c4dff;

  /* Dracula Light Surfaces */
  --md-sys-color-surface: #f8f8f2;
  --md-sys-color-surface-container-lowest: #ffffff;
  --md-sys-color-surface-container-low: #f0f0e8;
  --md-sys-color-surface-container: #e8e8e2;
  --md-sys-color-surface-container-high: #deded6;
  --md-sys-color-surface-container-highest: #d2d2c8;

  /* Text & Outlines */
  --md-sys-color-on-surface: #282a36;
  --md-sys-color-surface-variant: #e8e8e2;
  --md-sys-color-on-surface-variant: #525565;
  --md-sys-color-outline: #6272a4;
  --md-sys-color-outline-variant: #c4c7cf;

  /* Primary Roles (Dracula Purple Light) */
  --md-sys-color-primary: #6f42c1;
  --md-sys-color-on-primary: #ffffff;
  --md-sys-color-primary-container: #ede7f6;
  --md-sys-color-on-primary-container: #260756;

  /* Secondary Roles (Dracula Pink Light) */
  --md-sys-color-secondary: #c2185b;
  --md-sys-color-on-secondary: #ffffff;
  --md-sys-color-secondary-container: #fce4ec;
  --md-sys-color-on-secondary-container: #450320;

  /* Tertiary Roles (Dracula Cyan Light) */
  --md-sys-color-tertiary: #00838f;
  --md-sys-color-on-tertiary: #ffffff;
  --md-sys-color-tertiary-container: #e0f7fa;
  --md-sys-color-on-tertiary-container: #00363a;

  /* Success Roles (Dracula Green Light) */
  --md-sys-color-success: #1b7a3e;
  --md-sys-color-on-success: #ffffff;
  --md-sys-color-success-container: #d4edda;
  --md-sys-color-on-success-container: #093417;

  /* Warning Roles (Dracula Orange Light) */
  --md-sys-color-warning: #b25900;
  --md-sys-color-on-warning: #ffffff;
  --md-sys-color-warning-container: #fff3cd;
  --md-sys-color-on-warning-container: #4d2700;

  /* Error Roles (Dracula Red Light) */
  --md-sys-color-error: #c62828;
  --md-sys-color-on-error: #ffffff;
  --md-sys-color-error-container: #ffebee;
  --md-sys-color-on-error-container: #4f0909;

  /* Bootstrap Harmonization (Light) */
  --bs-body-bg: var(--md-sys-color-surface);
  --bs-body-color: var(--md-sys-color-on-surface);
  --bs-secondary-color: var(--md-sys-color-on-surface-variant);
  --bs-tertiary-bg: var(--md-sys-color-surface-container-low);
  --bs-secondary-bg: var(--md-sys-color-surface-container);
  --bs-border-color: var(--md-sys-color-outline-variant);
  --bs-border-color-translucent: rgba(100, 105, 125, 0.2);
  --bs-primary: var(--md-sys-color-primary);
  --bs-primary-rgb: 111, 66, 193;
}
