:root {
  /* ===== Catppuccin Mocha base palette ===== */
  --ctp-rosewater: #f5e0dc;
  --ctp-flamingo: #f2cdcd;
  --ctp-pink: #f5c2e7;
  --ctp-mauve: #cba6f7;
  --ctp-red: #f38ba8;
  --ctp-maroon: #eba0ac;
  --ctp-peach: #fab387;
  --ctp-yellow: #f9e2af;
  --ctp-green: #a6e3a1;
  --ctp-teal: #94e2d5;
  --ctp-sky: #89dceb;
  --ctp-sapphire: #74c7ec;
  --ctp-blue: #89b4fa;
  --ctp-lavender: #b4befe;

  --ctp-text: #cdd6f4;
  --ctp-subtext-0: #a6adc8;
  --ctp-subtext-1: #bac2de;
  --ctp-overlay-0: #6c7086;
  --ctp-overlay-1: #7f849c;
  --ctp-overlay-2: #9399b2;
  --ctp-surface-0: #313244;
  --ctp-surface-1: #45475a;
  --ctp-surface-2: #585b70;
  --ctp-base: #1e1e2e;
  --ctp-mantle: #181825;
  --ctp-crust: #11111b;

  --is-dark-theme: true;
  color-scheme: dark;

  /* ===== Primary accent (pink) ===== */
  --color-primary: var(--ctp-pink);
  --color-primary-contrast: #11111b;
  --color-primary-dark-1: #f7cdec;
  --color-primary-dark-2: #f9d8f1;
  --color-primary-dark-3: #fbe3f5;
  --color-primary-dark-4: #fceef9;
  --color-primary-dark-5: #fdf4fb;
  --color-primary-dark-6: #fef8fd;
  --color-primary-dark-7: #fffbfe;
  --color-primary-light-1: #ee9fdc;
  --color-primary-light-2: #e57fcd;
  --color-primary-light-3: #d65fb9;
  --color-primary-light-4: #b7479d;
  --color-primary-light-5: #b7479d;
  --color-primary-light-6: #983a82;
  --color-primary-light-7: #983a82;
  --color-primary-alpha-10: #f5c2e719;
  --color-primary-alpha-20: #f5c2e733;
  --color-primary-alpha-30: #f5c2e74b;
  --color-primary-alpha-40: #f5c2e766;
  --color-primary-alpha-50: #f5c2e780;
  --color-primary-alpha-60: #f5c2e799;
  --color-primary-alpha-70: #f5c2e7b3;
  --color-primary-alpha-80: #f5c2e7cc;
  --color-primary-alpha-90: #f5c2e7e1;

  /* ===== Secondary (surfaces, used for borders/panels) ===== */
  --color-secondary: var(--ctp-surface-1);
  --color-secondary-dark-1: var(--ctp-overlay-0);
  --color-secondary-dark-2: var(--ctp-overlay-1);
  --color-secondary-dark-3: var(--ctp-overlay-2);
  --color-secondary-dark-4: var(--ctp-subtext-0);
  --color-secondary-dark-5: var(--ctp-subtext-1);
  --color-secondary-dark-6: var(--ctp-text);
  --color-secondary-dark-7: var(--ctp-text);
  --color-secondary-dark-8: var(--ctp-text);
  --color-secondary-dark-9: var(--ctp-text);
  --color-secondary-dark-10: var(--ctp-text);
  --color-secondary-dark-11: var(--ctp-text);
  --color-secondary-dark-12: var(--ctp-text);
  --color-secondary-dark-13: var(--ctp-text);
  --color-secondary-light-1: var(--ctp-surface-0);
  --color-secondary-light-2: var(--ctp-mantle);
  --color-secondary-light-3: var(--ctp-mantle);
  --color-secondary-light-4: var(--ctp-crust);
  --color-secondary-alpha-10: #45475a19;
  --color-secondary-alpha-20: #45475a33;
  --color-secondary-alpha-30: #45475a4b;
  --color-secondary-alpha-40: #45475a66;
  --color-secondary-alpha-50: #45475a80;
  --color-secondary-alpha-60: #45475a99;
  --color-secondary-alpha-70: #45475ab3;
  --color-secondary-alpha-80: #45475acc;
  --color-secondary-alpha-90: #45475ae1;

  /* ===== Named semantic colors (labels, badges, diffs) ===== */
  --color-red: var(--ctp-red);
  --color-orange: var(--ctp-peach);
  --color-yellow: var(--ctp-yellow);
  --color-olive: var(--ctp-green);
  --color-green: var(--ctp-green);
  --color-teal: var(--ctp-teal);
  --color-blue: var(--ctp-blue);
  --color-violet: var(--ctp-mauve);
  --color-purple: var(--ctp-mauve);
  --color-pink: var(--ctp-pink);
  --color-brown: var(--ctp-maroon);
  --color-grey: var(--ctp-overlay-1);
  --color-black: var(--ctp-crust);
  --color-red-light: #f5a3b8;
  --color-orange-light: #fcc7a3;
  --color-yellow-light: #fbedc4;
  --color-olive-light: #bfeebb;
  --color-green-light: #bfeebb;
  --color-teal-light: #b4ece3;
  --color-blue-light: #a8c8fb;
  --color-violet-light: #ddc4fb;
  --color-purple-light: #ddc4fb;
  --color-pink-light: #f8d6ef;
  --color-brown-light: #f0bfc6;
  --color-grey-light: var(--ctp-overlay-2);
  --color-black-light: var(--ctp-mantle);
  --color-gold: var(--ctp-yellow);
  --color-white: #fff;

  /* ===== Diffs ===== */
  --color-diff-removed-word-bg: #6e3340;
  --color-diff-added-word-bg: #2a5840;
  --color-diff-removed-row-bg: #422931;
  --color-diff-moved-row-bg: #5a4a2a;
  --color-diff-added-row-bg: #213a30;
  --color-diff-removed-row-border: #6e3340;
  --color-diff-moved-row-border: #8a6e2f;
  --color-diff-added-row-border: #2a5840;
  --color-diff-inactive: var(--ctp-surface-1);

  /* ===== Status colors ===== */
  --color-error-border: #6e3340;
  --color-error-bg: #4a2832;
  --color-error-bg-active: #6e3340;
  --color-error-bg-hover: #6e3340;
  --color-error-text: #fde4ea;
  --color-success-border: #2a5840;
  --color-success-bg: #233f30;
  --color-success-text: #e3fbed;
  --color-warning-border: #8a6e2f;
  --color-warning-bg: #4e431f;
  --color-warning-text: #fdf6e0;
  --color-info-border: #355b91;
  --color-info-bg: #28395f;
  --color-info-text: var(--ctp-text);

  /* ===== Badges ===== */
  --color-red-badge: var(--ctp-red);
  --color-red-badge-bg: #f38ba822;
  --color-red-badge-hover-bg: #f38ba844;
  --color-green-badge: var(--ctp-green);
  --color-green-badge-bg: #a6e3a122;
  --color-green-badge-hover-bg: #a6e3a144;
  --color-yellow-badge: var(--ctp-yellow);
  --color-yellow-badge-bg: #f9e2af22;
  --color-yellow-badge-hover-bg: #f9e2af44;
  --color-orange-badge: var(--ctp-peach);
  --color-orange-badge-bg: #fab38722;
  --color-orange-badge-hover-bg: #fab38744;

  --color-git: #f05133;

  /* ===== Page structure / surfaces ===== */
  --color-body: var(--ctp-base);
  --color-box-header: var(--ctp-surface-0);
  --color-box-body: var(--ctp-mantle);
  --color-box-body-highlight: var(--ctp-surface-0);
  --color-text-dark: #fff;
  --color-text: var(--ctp-text);
  --color-text-light: var(--ctp-subtext-1);
  --color-text-light-1: var(--ctp-subtext-1);
  --color-text-light-2: var(--ctp-subtext-0);
  --color-text-light-3: var(--ctp-subtext-0);
  --color-footer: var(--ctp-crust);
  --color-timeline: var(--ctp-surface-1);
  --color-input-text: var(--ctp-text);
  --color-input-background: var(--ctp-surface-0);
  --color-input-toggle-background: var(--ctp-surface-0);
  --color-input-border: var(--ctp-surface-1);
  --color-input-border-hover: var(--ctp-overlay-0);
  --color-header-wrapper: var(--ctp-mantle);
  --color-header-wrapper-transparent: #18182500;
  --color-light: #00000028;
  --color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
  --color-light-border: #ffffff28;
  --color-hover: var(--ctp-surface-1);
  --color-active: var(--ctp-surface-1);
  --color-menu: var(--ctp-surface-0);
  --color-card: var(--ctp-surface-0);
  --color-markup-table-row: #ffffff06;
  --color-markup-code-block: var(--ctp-mantle);
  --color-button: var(--ctp-surface-1);
  --color-code-bg: var(--ctp-mantle);
  --color-code-sidebar-bg: var(--ctp-surface-0);
  --color-shadow: #00000060;
  --color-secondary-bg: var(--ctp-surface-0);
  --color-text-focus: #fff;
  --color-expand-button: var(--ctp-surface-1);
  --color-placeholder-text: var(--ctp-overlay-0);
  --color-editor-line-highlight: var(--ctp-surface-0);
  --color-project-board-bg: var(--color-secondary-light-3);
  --color-project-board-dark-label: var(--color-text-light-3);
  --color-caret: var(--color-text);
  --color-reaction-bg: #ffffff12;
  --color-reaction-active-bg: var(--color-primary-alpha-30);
  --color-nav-bg: var(--ctp-crust);
  --color-nav-hover-bg: var(--ctp-surface-1);
  --color-label-active-bg: var(--ctp-surface-1);
  --color-label-text: #fff;
  --color-accent: var(--ctp-pink);
  --color-small-accent: var(--color-primary-light-5);
  --color-active-line: var(--color-primary-alpha-20);

  accent-color: var(--color-accent);
}

::selection {
  background: var(--ctp-overlay-1) !important;
  color: #fff !important;
}
