:root {
  --bp-brand-purple: #826cfd;
  --bp-brand-deep: #473687;
  --bp-brand-pink: #ff516b;
  --bp-gradient-primary: linear-gradient(
    -45deg,
    var(--bp-brand-pink) 0%,
    var(--bp-brand-purple) 100%
  );

  /* Theme transition */
  --theme-transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;

  /* Light theme variables */
  --light-background: #ffffff;
  --light-text: #111827;
  --light-secondary-text: #4b5563;
  --light-border: #e0e0e0;
  --light-button-bg: #f0f0f0;
  --light-button-hover-bg: #e0e0e0;
  --light-card-bg: #ffffff;
  --light-card-border: #e0e0e0;
  --light-card-hover-bg: #f8f8f8;
  --light-nav-active-bg: var(--bp-brand-purple);
  --light-nav-hover-bg: #f0f0f0;
  --light-scrollbar-track: #f1f1f1;
  --light-scrollbar-thumb: #c1c1c1;
  --light-scrollbar-thumb-hover: #a8a8a8;
  --light-overlay-bg: rgba(255, 255, 255, 0.8);
  --light-settings-tab-active-bg: #6441a5;
  --light-settings-tab-active-text: #ffffff;
  --light-settings-tab-hover-bg: #f5f5f5;
  --light-settings-button-bg: #6441a5;
  --light-settings-button-text: #ffffff;
  --light-settings-button-hover-bg: #5c3b99;
  --light-settings-section-title: #111827;
  --light-settings-description: #4b5563;
  --light-link: #6366f1;
  --light-link-hover: #4f46e5;
  --light-success: #2e7d32;
  --light-warning: #ed6c02;
  --light-error: #d32f2f;
  --light-info: #0288d1;
  --light-shadow: rgba(0, 0, 0, 0.1);

  /* Status colors with background and border */
  --light-success-bg: rgba(46, 125, 50, 0.15);
  --light-success-border: rgba(46, 125, 50, 0.3);
  --light-warning-bg: rgba(237, 108, 2, 0.15);
  --light-warning-border: rgba(237, 108, 2, 0.3);
  --light-error-bg: rgba(211, 47, 47, 0.15);
  --light-error-border: rgba(211, 47, 47, 0.3);
  --light-info-bg: rgba(2, 136, 209, 0.15);
  --light-info-border: rgba(2, 136, 209, 0.3);

  /* Light theme component specific */
  --light-input-bg: #ffffff;
  --light-input-border: #d0d0d0;
  --light-input-text: #111827;
  --light-input-placeholder: #757575;
  --light-input-focus-border: #6366f1;
  --light-tooltip-bg: #333333;
  --light-tooltip-text: #ffffff;
  --light-dropdown-bg: #ffffff;
  --light-dropdown-hover: #f5f5f5;
  --light-dropdown-border: #e0e0e0;
  --light-table-header-bg: #f5f5f5;
  --light-table-row-hover: #f8f8f8;
  --light-table-border: #e0e0e0;
  --light-badge-bg: #f0f0f0;
  --light-badge-text: #111827;
  --light-toggle-bg: #e0e0e0;
  --light-toggle-active: #6366f1;

  /* Dark theme variables */
  --dark-background: #121212;
  --dark-text: #f5f5f5;
  --dark-secondary-text: #b0b0b0;
  --dark-border: #333333;
  --dark-button-bg: #2d2d2d;
  --dark-button-hover-bg: #3d3d3d;
  --dark-card-bg: #1e1e1e;
  --dark-card-border: #333333;
  --dark-card-hover-bg: #282828;
  --dark-nav-active-bg: var(--bp-brand-purple);
  --dark-nav-hover-bg: #282828;
  --dark-scrollbar-track: transparent;
  --dark-scrollbar-thumb: #555555;
  --dark-scrollbar-thumb-hover: #777777;
  --dark-overlay-bg: rgba(0, 0, 0, 0.8);
  --dark-settings-tab-active-bg: #7c5dce;
  --dark-settings-tab-active-text: #ffffff;
  --dark-settings-tab-hover-bg: #282828;
  --dark-settings-button-bg: #7c5dce;
  --dark-settings-button-text: #ffffff;
  --dark-settings-button-hover-bg: #9579e0;
  --dark-settings-section-title: #f5f5f5;
  --dark-settings-description: #b0b0b0;
  --dark-link: #a78bfa;
  --dark-link-hover: #c4b5fd;
  --dark-success: #66bb6a;
  --dark-warning: #ffa726;
  --dark-error: #ef5350;
  --dark-info: #42a5f5;
  --dark-shadow: rgba(0, 0, 0, 0.3);

  /* Status colors with background and border */
  --dark-success-bg: rgba(102, 187, 106, 0.2);
  --dark-success-border: rgba(102, 187, 106, 0.3);
  --dark-warning-bg: rgba(255, 167, 38, 0.2);
  --dark-warning-border: rgba(255, 167, 38, 0.3);
  --dark-error-bg: rgba(239, 83, 80, 0.2);
  --dark-error-border: rgba(239, 83, 80, 0.3);
  --dark-info-bg: rgba(66, 165, 245, 0.2);
  --dark-info-border: rgba(66, 165, 245, 0.3);

  /* Dark theme component specific */
  --dark-input-bg: #2d2d2d;
  --dark-input-border: #444444;
  --dark-input-text: #f5f5f5;
  --dark-input-placeholder: #a0a0a0;
  --dark-input-focus-border: #7c5dce;
  --dark-tooltip-bg: #f5f5f5;
  --dark-tooltip-text: #1a1a1a;
  --dark-dropdown-bg: #2d2d2d;
  --dark-dropdown-hover: #3d3d3d;
  --dark-dropdown-border: #4d4d4d;
  --dark-table-header-bg: #282828;
  --dark-table-row-hover: #2d2d2d;
  --dark-table-border: #3d3d3d;
  --dark-badge-bg: #2d2d2d;
  --dark-badge-text: #f5f5f5;
  --dark-toggle-bg: #444444;
  --dark-toggle-active: #7c5dce;
}

/* Theme flickering prevention */
html {
  visibility: visible;
  opacity: 1;
}

html[style*="visibility: hidden"] {
  opacity: 0;
}

/* Keep text rendering consistent after stylesheet loading changes */
body {
  font-synthesis-weight: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Apply theme variables based on data-theme attribute */
[data-theme="light"] {
  --background: var(--light-background);
  --text: var(--light-text);
  --secondary-text: var(--light-secondary-text);
  --border: var(--light-border);
  --button-bg: var(--light-button-bg);
  --button-hover-bg: var(--light-button-hover-bg);
  --card-bg: var(--light-card-bg);
  --card-border: var(--light-card-border);
  --card-hover-bg: var(--light-card-hover-bg);
  --nav-active-bg: var(--light-nav-active-bg);
  --nav-hover-bg: var(--light-nav-hover-bg);
  --scrollbar-track: var(--light-scrollbar-track);
  --scrollbar-thumb: var(--light-scrollbar-thumb);
  --scrollbar-thumb-hover: var(--light-scrollbar-thumb-hover);
  --overlay-bg: var(--light-overlay-bg);
  --settings-tab-active-bg: var(--light-settings-tab-active-bg);
  --settings-tab-active-text: var(--light-settings-tab-active-text);
  --settings-tab-hover-bg: var(--light-settings-tab-hover-bg);
  --settings-button-bg: var(--light-settings-button-bg);
  --settings-button-text: var(--light-settings-button-text);
  --settings-button-hover-bg: var(--light-settings-button-hover-bg);
  --settings-section-title: var(--light-settings-section-title);
  --settings-description: var(--light-settings-description);
  --link: var(--light-link);
  --link-hover: var(--light-link-hover);
  --success: var(--light-success);
  --warning: var(--light-warning);
  --error: var(--light-error);
  --info: var(--light-info);
  --shadow: var(--light-shadow);

  /* Status background and border */
  --success-bg: var(--light-success-bg);
  --success-border: var(--light-success-border);
  --warning-bg: var(--light-warning-bg);
  --warning-border: var(--light-warning-border);
  --error-bg: var(--light-error-bg);
  --error-border: var(--light-error-border);
  --info-bg: var(--light-info-bg);
  --info-border: var(--light-info-border);

  /* Component specific variables */
  --input-bg: var(--light-input-bg);
  --input-border: var(--light-input-border);
  --input-text: var(--light-input-text);
  --input-placeholder: var(--light-input-placeholder);
  --input-focus-border: var(--light-input-focus-border);
  --tooltip-bg: var(--light-tooltip-bg);
  --tooltip-text: var(--light-tooltip-text);
  --dropdown-bg: var(--light-dropdown-bg);
  --dropdown-hover: var(--light-dropdown-hover);
  --dropdown-border: var(--light-dropdown-border);
  --table-header-bg: var(--light-table-header-bg);
  --table-row-hover: var(--light-table-row-hover);
  --table-border: var(--light-table-border);
  --badge-bg: var(--light-badge-bg);
  --badge-text: var(--light-badge-text);
  --toggle-bg: var(--light-toggle-bg);
  --toggle-active: var(--light-toggle-active);
}

[data-theme="dark"] {
  --background: var(--dark-background);
  --text: var(--dark-text);
  --secondary-text: var(--dark-secondary-text);
  --border: var(--dark-border);
  --button-bg: var(--dark-button-bg);
  --button-hover-bg: var(--dark-button-hover-bg);
  --card-bg: var(--dark-card-bg);
  --card-border: var(--dark-card-border);
  --card-hover-bg: var(--dark-card-hover-bg);
  --nav-active-bg: var(--dark-nav-active-bg);
  --nav-hover-bg: var(--dark-nav-hover-bg);
  --scrollbar-track: var(--dark-scrollbar-track);
  --scrollbar-thumb: var(--dark-scrollbar-thumb);
  --scrollbar-thumb-hover: var(--dark-scrollbar-thumb-hover);
  --overlay-bg: var(--dark-overlay-bg);
  --settings-tab-active-bg: var(--dark-settings-tab-active-bg);
  --settings-tab-active-text: var(--dark-settings-tab-active-text);
  --settings-tab-hover-bg: var(--dark-settings-tab-hover-bg);
  --settings-button-bg: var(--dark-settings-button-bg);
  --settings-button-text: var(--dark-settings-button-text);
  --settings-button-hover-bg: var(--dark-settings-button-hover-bg);
  --settings-section-title: var(--dark-settings-section-title);
  --settings-description: var(--dark-settings-description);
  --link: var(--dark-link);
  --link-hover: var(--dark-link-hover);
  --success: var(--dark-success);
  --warning: var(--dark-warning);
  --error: var(--dark-error);
  --info: var(--dark-info);
  --shadow: var(--dark-shadow);

  /* Status background and border */
  --success-bg: var(--dark-success-bg);
  --success-border: var(--dark-success-border);
  --warning-bg: var(--dark-warning-bg);
  --warning-border: var(--dark-warning-border);
  --error-bg: var(--dark-error-bg);
  --error-border: var(--dark-error-border);
  --info-bg: var(--dark-info-bg);
  --info-border: var(--dark-info-border);

  /* Component specific variables */
  --input-bg: var(--dark-input-bg);
  --input-border: var(--dark-input-border);
  --input-text: var(--dark-input-text);
  --input-placeholder: var(--dark-input-placeholder);
  --input-focus-border: var(--dark-input-focus-border);
  --tooltip-bg: var(--dark-tooltip-bg);
  --tooltip-text: var(--dark-tooltip-text);
  --dropdown-bg: var(--dark-dropdown-bg);
  --dropdown-hover: var(--dark-dropdown-hover);
  --dropdown-border: var(--dark-dropdown-border);
  --table-header-bg: var(--dark-table-header-bg);
  --table-row-hover: var(--dark-table-row-hover);
  --table-border: var(--dark-table-border);
  --badge-bg: var(--dark-badge-bg);
  --badge-text: var(--dark-badge-text);
  --toggle-bg: var(--dark-toggle-bg);
  --toggle-active: var(--dark-toggle-active);
}

/* System theme preference detection */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --background: var(--dark-background);
    --text: var(--dark-text);
    --secondary-text: var(--dark-secondary-text);
    --border: var(--dark-border);
    --button-bg: var(--dark-button-bg);
    --button-hover-bg: var(--dark-button-hover-bg);
    --card-bg: var(--dark-card-bg);
    --card-border: var(--dark-card-border);
    --card-hover-bg: var(--dark-card-hover-bg);
    --nav-active-bg: var(--dark-nav-active-bg);
    --nav-hover-bg: var(--dark-nav-hover-bg);
    --scrollbar-track: var(--dark-scrollbar-track);
    --scrollbar-thumb: var(--dark-scrollbar-thumb);
    --scrollbar-thumb-hover: var(--dark-scrollbar-thumb-hover);
    --overlay-bg: var(--dark-overlay-bg);
    --settings-tab-active-bg: var(--dark-settings-tab-active-bg);
    --settings-tab-active-text: var(--dark-settings-tab-active-text);
    --settings-tab-hover-bg: var(--dark-settings-tab-hover-bg);
    --settings-button-bg: var(--dark-settings-button-bg);
    --settings-button-text: var(--dark-settings-button-text);
    --settings-button-hover-bg: var(--dark-settings-button-hover-bg);
    --settings-section-title: var(--dark-settings-section-title);
    --settings-description: var(--dark-settings-description);
    --link: var(--dark-link);
    --link-hover: var(--dark-link-hover);
    --success: var(--dark-success);
    --warning: var(--dark-warning);
    --error: var(--dark-error);
    --info: var(--dark-info);
    --shadow: var(--dark-shadow);

    /* Status background and border */
    --success-bg: var(--dark-success-bg);
    --success-border: var(--dark-success-border);
    --warning-bg: var(--dark-warning-bg);
    --warning-border: var(--dark-warning-border);
    --error-bg: var(--dark-error-bg);
    --error-border: var(--dark-error-border);
    --info-bg: var(--dark-info-bg);
    --info-border: var(--dark-info-border);

    /* Component specific variables */
    --input-bg: var(--dark-input-bg);
    --input-border: var(--dark-input-border);
    --input-text: var(--dark-input-text);
    --input-placeholder: var(--dark-input-placeholder);
    --input-focus-border: var(--dark-input-focus-border);
    --tooltip-bg: var(--dark-tooltip-bg);
    --tooltip-text: var(--dark-tooltip-text);
    --dropdown-bg: var(--dark-dropdown-bg);
    --dropdown-hover: var(--dark-dropdown-hover);
    --dropdown-border: var(--dark-dropdown-border);
    --table-header-bg: var(--dark-table-header-bg);
    --table-row-hover: var(--dark-table-row-hover);
    --table-border: var(--dark-table-border);
    --badge-bg: var(--dark-badge-bg);
    --badge-text: var(--dark-badge-text);
    --toggle-bg: var(--dark-toggle-bg);
    --toggle-active: var(--dark-toggle-active);
  }
}

@media (prefers-color-scheme: light) {
  :root:not([data-theme]) {
    --background: var(--light-background);
    --text: var(--light-text);
    --secondary-text: var(--light-secondary-text);
    --border: var(--light-border);
    --button-bg: var(--light-button-bg);
    --button-hover-bg: var(--light-button-hover-bg);
    --card-bg: var(--light-card-bg);
    --card-border: var(--light-card-border);
    --card-hover-bg: var(--light-card-hover-bg);
    --nav-active-bg: var(--light-nav-active-bg);
    --nav-hover-bg: var(--light-nav-hover-bg);
    --scrollbar-track: var(--light-scrollbar-track);
    --scrollbar-thumb: var(--light-scrollbar-thumb);
    --scrollbar-thumb-hover: var(--light-scrollbar-thumb-hover);
    --overlay-bg: var(--light-overlay-bg);
    --settings-tab-active-bg: var(--light-settings-tab-active-bg);
    --settings-tab-active-text: var(--light-settings-tab-active-text);
    --settings-tab-hover-bg: var(--light-settings-tab-hover-bg);
    --settings-button-bg: var(--light-settings-button-bg);
    --settings-button-text: var(--light-settings-button-text);
    --settings-button-hover-bg: var(--light-settings-button-hover-bg);
    --settings-section-title: var(--light-settings-section-title);
    --settings-description: var(--light-settings-description);
    --link: var(--light-link);
    --link-hover: var(--light-link-hover);
    --success: var(--light-success);
    --warning: var(--light-warning);
    --error: var(--light-error);
    --info: var(--light-info);
    --shadow: var(--light-shadow);

    /* Status background and border */
    --success-bg: var(--light-success-bg);
    --success-border: var(--light-success-border);
    --warning-bg: var(--light-warning-bg);
    --warning-border: var(--light-warning-border);
    --error-bg: var(--light-error-bg);
    --error-border: var(--light-error-border);
    --info-bg: var(--light-info-bg);
    --info-border: var(--light-info-border);

    /* Component specific variables */
    --input-bg: var(--light-input-bg);
    --input-border: var(--light-input-border);
    --input-text: var(--light-input-text);
    --input-placeholder: var(--light-input-placeholder);
    --input-focus-border: var(--light-input-focus-border);
    --tooltip-bg: var(--light-tooltip-bg);
    --tooltip-text: var(--light-tooltip-text);
    --dropdown-bg: var(--light-dropdown-bg);
    --dropdown-hover: var(--light-dropdown-hover);
    --dropdown-border: var(--light-dropdown-border);
    --table-header-bg: var(--light-table-header-bg);
    --table-row-hover: var(--light-table-row-hover);
    --table-border: var(--light-table-border);
    --badge-bg: var(--light-badge-bg);
    --badge-text: var(--light-badge-text);
    --toggle-bg: var(--light-toggle-bg);
    --toggle-active: var(--light-toggle-active);
  }
}

/* Theme transition classes */
body,
.card,
.button,
.nav-item,
input,
select,
textarea {
  transition: var(--theme-transition);
}

/* Utility classes */
.theme-text {
  color: var(--text);
}

.theme-bg {
  background-color: var(--background);
}

.theme-border {
  border-color: var(--border);
}

.theme-card {
  background-color: var(--card-bg);
  border-color: var(--card-border);
}

.theme-button {
  background-color: var(--button-bg);
  color: var(--text);
}

.theme-input {
  background-color: var(--input-bg);
  border-color: var(--input-border);
  color: var(--input-text);
}

.theme-input::placeholder {
  color: var(--input-placeholder);
}

.theme-input:focus {
  border-color: var(--input-focus-border);
}

/* Force apply styles for pipeline pages in light theme */
html[data-theme="light"] [class*="PipelineLightTheme_module"],
html[data-theme="light"] [class*="PipelineDetailsLightTheme_module"],
html[data-theme="light"] [class*="PipelinesListLightTheme_module"] {
  --background-color: #fff !important;
  --text-color: #111827 !important;
  --secondary-text-color: #4b5563 !important;
  --border-color: #e5e7eb !important;
  --accent-color: #6366f1 !important;
  --accent-hover-color: #4f46e5 !important;
  --success-color: #166534 !important;
  --warning-color: #9a3412 !important;
  --error-color: #b91c1c !important;
}

/* Reset styles for these components */
html[data-theme="light"] *[class*="PipelineLightTheme_module"],
html[data-theme="light"] *[class*="PipelineDetailsLightTheme_module"],
html[data-theme="light"] *[class*="PipelinesListLightTheme_module"] {
  color: var(--text-color, #111827) !important;
}

/* Apply specific styles to pipeline components */
html[data-theme="light"] [class*="formContainer"],
html[data-theme="light"] [class*="container"] {
  background-color: var(--background-color, #fff) !important;
  color: var(--text-color, #111827) !important;
}

html[data-theme="light"] [class*="formHeader"],
html[data-theme="light"] [class*="header"] {
  background: #ffffff !important;
  border-color: var(--border-color, #e5e7eb) !important;
}

html[data-theme="light"] [class*="formSection"],
html[data-theme="light"] [class*="section"] {
  background: #ffffff !important;
  border-color: var(--border-color, #e5e7eb) !important;
}

html[data-theme="light"] [class*="statusBadge"].active,
html[data-theme="light"] [class*="pipelineStatus"].active {
  background: #dcfce7 !important;
  color: var(--success-color, #166534) !important;
}

html[data-theme="light"] [class*="statusBadge"].paused,
html[data-theme="light"] [class*="pipelineStatus"].paused {
  background: #ffedd5 !important;
  color: var(--warning-color, #9a3412) !important;
}

html[data-theme="light"] [class*="runButton"],
html[data-theme="light"] [class*="submitButton"] {
  background: var(--accent-color, #6366f1) !important;
  color: #ffffff !important;
}

html[data-theme="light"] [class*="runButton"]:hover,
html[data-theme="light"] [class*="submitButton"]:hover {
  background: var(--accent-hover-color, #4f46e5) !important;
}

html[data-theme="light"] [class*="editButton"] {
  background: #eff6ff !important;
  color: #1e40af !important;
}

html[data-theme="light"] [class*="editButton"]:hover {
  background: #dbeafe !important;
}

html[data-theme="light"] [class*="deleteButton"] {
  background: #fee2e2 !important;
  color: var(--error-color, #b91c1c) !important;
}

html[data-theme="light"] [class*="deleteButton"]:hover {
  background: #fecaca !important;
}

html[data-theme="light"] [class*="pipelineCard"] {
  background: #ffffff !important;
  border-color: var(--border-color, #e5e7eb) !important;
}

html[data-theme="light"] [class*="pipelineCard"]:hover {
  border-color: var(--accent-color, #6366f1) !important;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05) !important;
}

.app-global-error {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  padding: 12px 16px;
  background: #dc2626;
  color: #fff;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.app-global-error__dismiss {
  background: transparent;
  border: 0;
  color: #fff;
  cursor: pointer;
  padding: 4px 8px;
  font-size: 18px;
  line-height: 1;
}
