/* ── Theme Variables ── */

 body {
  /* Establish the vibrant mesh gradient behind everything */
  background: radial-gradient(circle at 15% 50%, rgba(31, 58, 147, 0.4), transparent 30%),
              radial-gradient(circle at 85% 30%, rgba(138, 43, 226, 0.3), transparent 30%),
              #070709;
  background-attachment: fixed;
}

body[data-theme="light"] {
  background: radial-gradient(circle at 15% 50%, rgba(144, 202, 249, 0.4), transparent 30%),
              radial-gradient(circle at 85% 30%, rgba(206, 147, 216, 0.3), transparent 30%),
              #f0f4f8;
  background-attachment: fixed;
}

:root {
  color-scheme: only dark;

  /* Glassmorphism Configuration */
  --glass-bg-base: rgba(9, 9, 11, 0.5);
  --glass-bg-elevated: rgba(255, 255, 255, 0.04);
  --glass-bg-highest: rgba(255, 255, 255, 0.08); /* modals */
  --glass-border: rgba(255, 255, 255, 0.08);
  --glass-border-light: rgba(255, 255, 255, 0.15); /* Top/Left Highlights for realistic bevel */
  --glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
  --glass-shadow-heavy: 0 24px 64px rgba(0, 0, 0, 0.6);
  
  --backdrop-blur-sm: blur(4px) saturate(150%);
  --backdrop-blur-md: blur(12px) saturate(180%);
  --backdrop-blur-lg: blur(24px) saturate(200%);

  /* Sidebar */
  --sidebar-bg: var(--glass-bg-base);
  --sidebar-header-bg: transparent; /* Blur underneath shows through */
  --sidebar-border: var(--glass-border);
  --sidebar-color: #fafafa;
  --sidebar-accent: #3b82f6;
  --sidebar-btn-bg: rgba(255, 255, 255, 0.03);
  --sidebar-btn-border: var(--glass-border);
  --sidebar-btn-hover: rgba(255, 255, 255, 0.1);
  --sidebar-item-hover: rgba(255, 255, 255, 0.05);
  --sidebar-item-active: rgba(255, 255, 255, 0.1);

  /* Main content */
  --bg: transparent; /* Use the body's mesh gradient */
  --card-bg: var(--glass-bg-elevated);
  --border: var(--glass-border);

  /* Text */
  --text: #fafafa;
  --text-secondary: #a1a1aa;
  --text-muted: #71717a;
  --text-subtle: #52525b;

  /* Pane */
  --pane-header-bg: transparent;
  --pane-title: #a1a1aa;
  --pane-close: #71717a;

  /* Icon buttons */
  --icon-btn: #a1a1aa;
  --icon-btn-hover-bg: rgba(255, 255, 255, 0.1);

  /* CTA */
  --cta-label: #a1a1aa;
  --cta-divider: var(--glass-border);

  /* Modal */
  --modal-bg: var(--glass-bg-highest);
  --modal-border: var(--glass-border);
  --modal-title: #fafafa;
  --modal-label: #a1a1aa;
  --modal-input-bg: rgba(0,0,0,0.3);
  --modal-input: #fafafa;
  --modal-input-border: var(--glass-border);
  --modal-close: #71717a;
  --modal-close-hover: #fafafa;
  --modal-secondary-bg: rgba(255,255,255,0.05);
  --modal-secondary: #a1a1aa;
  --modal-secondary-hover: rgba(255,255,255,0.1);
  --modal-import-bg: rgba(255,255,255,0.05);
  --modal-import: #a1a1aa;
  --modal-import-border: var(--glass-border);
  --modal-import-hover: rgba(255,255,255,0.1);
  --modal-error: #ef4444;
  --modal-textarea-border-focus: #3b82f6;

  /* Editor */
  --editor-secondary-bg: rgba(255,255,255,0.05);
  --editor-secondary: #a1a1aa;
  --editor-secondary-hover: rgba(255,255,255,0.1);
  --editor-textarea-bg: rgba(0,0,0,0.3);
  --editor-textarea: #fafafa;
  --editor-error-bg: rgba(69, 10, 10, 0.5);
  --editor-error: #ef4444;
  --editor-error-border: #7f1d1d;

  /* Flat Accent */
  --accent: #3b82f6;
  --accent-hover: #2563eb;
}

/* ── Light Theme Overrides ── */
body[data-theme="light"] {
  color-scheme: only light;

  /* Glassmorphism Configuration Light */
  --glass-bg-base: rgba(255, 255, 255, 0.4);
  --glass-bg-elevated: rgba(255, 255, 255, 0.4);
  --glass-bg-highest: rgba(255, 255, 255, 0.6);
  --glass-border: rgba(255, 255, 255, 0.5);
  --glass-border-light: rgba(255, 255, 255, 0.8);
  --glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.1);
  --glass-shadow-heavy: 0 24px 64px rgba(31, 38, 135, 0.2);

  /* Light Sidebar */
  --sidebar-bg: var(--glass-bg-base);
  --sidebar-header-bg: transparent;
  --sidebar-border: var(--glass-border);
  --sidebar-color: #09090b;
  --sidebar-accent: #3b82f6;
  --sidebar-btn-bg: rgba(255,255,255,0.4);
  --sidebar-btn-border: var(--glass-border);
  --sidebar-btn-hover: rgba(255,255,255,0.6);
  --sidebar-item-hover: rgba(255,255,255,0.5);
  --sidebar-item-active: rgba(255,255,255,0.8);

  /* Light Main */
  --bg: transparent;
  --card-bg: var(--glass-bg-elevated);
  --border: var(--glass-border);

  --text: #09090b;
  --text-secondary: #52525b;
  --text-muted: #71717a;
  --text-subtle: #a1a1aa;

  --pane-header-bg: transparent;
  --pane-title: #71717a;
  --pane-close: #a1a1aa;

  --icon-btn: #71717a;
  --icon-btn-hover-bg: rgba(0, 0, 0, 0.05);

  --cta-label: #71717a;
  --cta-divider: var(--glass-border);

  --modal-bg: var(--glass-bg-highest);
  --modal-border: var(--glass-border);
  --modal-title: #09090b;
  --modal-label: #52525b;
  --modal-input-bg: rgba(255,255,255,0.6);
  --modal-input: #09090b;
  --modal-input-border: var(--glass-border);
  --modal-close: #a1a1aa;
  --modal-close-hover: #52525b;
  --modal-secondary-bg: rgba(255,255,255,0.5);
  --modal-secondary: #52525b;
  --modal-secondary-hover: rgba(255,255,255,0.8);
  --modal-import-bg: rgba(255,255,255,0.5);
  --modal-import: #52525b;
  --modal-import-border: var(--glass-border);
  --modal-import-hover: rgba(255,255,255,0.8);
  --modal-error: #ef4444;
  --modal-textarea-border-focus: #3b82f6;

  --editor-secondary-bg: rgba(255,255,255,0.6);
  --editor-secondary: #52525b;
  --editor-secondary-hover: rgba(255,255,255,0.8);
  --editor-textarea-bg: rgba(255,255,255,0.6);
  --editor-textarea: #09090b;
  --editor-error-bg: rgba(254, 242, 242, 0.6);
  --editor-error: #ef4444;
  --editor-error-border: #fecaca;
}

/* ── Swagger UI Dark Mode Overrides ── */
body[data-theme="dark"] .swagger-ui {
  background: var(--bg);
  color: var(--text);
}

body[data-theme="dark"] .swagger-ui .info .title { color: #e0e0e0; }
body[data-theme="dark"] .swagger-ui .info p,
body[data-theme="dark"] .swagger-ui .info li { color: #b0b0b0; }
body[data-theme="dark"] .swagger-ui .info a { color: #7ec8e3; }

body[data-theme="dark"] .swagger-ui .scheme-container {
  background: var(--card-bg);
  backdrop-filter: var(--backdrop-blur-md);
  -webkit-backdrop-filter: var(--backdrop-blur-md);
  box-shadow: none;
}
body[data-theme="dark"] .swagger-ui .servers > label { color: #ccc; }
body[data-theme="dark"] .swagger-ui select {
  background: #18181b;
  color: #fafafa;
  border-color: #27272a;
}

body[data-theme="dark"] .swagger-ui .opblock-tag {
  color: #e0e0e0;
  border-color: #333;
}
body[data-theme="dark"] .swagger-ui .opblock-tag:hover { background: rgba(255,255,255,0.05); }
body[data-theme="dark"] .swagger-ui .opblock-tag small { color: #999; }

body[data-theme="dark"] .swagger-ui .opblock { box-shadow: none; }
body[data-theme="dark"] .swagger-ui .opblock .opblock-summary-description { color: #999; }
body[data-theme="dark"] .swagger-ui .opblock .opblock-summary-path,
body[data-theme="dark"] .swagger-ui .opblock .opblock-summary-path__deprecated { color: #e0e0e0; }
body[data-theme="dark"] .swagger-ui .opblock .opblock-section-header {
  background: rgba(0,0,0,0.25);
  box-shadow: none;
}
body[data-theme="dark"] .swagger-ui .opblock .opblock-section-header h4 { color: #ccc; }
body[data-theme="dark"] .swagger-ui .opblock-body pre.microlight { background: #1e1e1e; color: #e0e0e0; }

body[data-theme="dark"] .swagger-ui textarea,
body[data-theme="dark"] .swagger-ui input[type=text],
body[data-theme="dark"] .swagger-ui input[type=email],
body[data-theme="dark"] .swagger-ui input[type=password],
body[data-theme="dark"] .swagger-ui input[type=file] {
  background: #2a2a2a;
  color: #e0e0e0;
  border-color: #444;
}

body[data-theme="dark"] .swagger-ui .parameter__name { color: #e0e0e0; }
body[data-theme="dark"] .swagger-ui .parameter__type { color: #7ec8e3; }
body[data-theme="dark"] .swagger-ui .parameter__in { color: #999; }
body[data-theme="dark"] .swagger-ui .parameters-col_description p { color: #b0b0b0; }

body[data-theme="dark"] .swagger-ui table thead tr td,
body[data-theme="dark"] .swagger-ui table thead tr th { color: #ccc; border-color: #333; }

body[data-theme="dark"] .swagger-ui .response-col_status { color: #e0e0e0; }
body[data-theme="dark"] .swagger-ui .response-col_description p { color: #b0b0b0; }
body[data-theme="dark"] .swagger-ui .responses-inner h4,
body[data-theme="dark"] .swagger-ui .responses-inner h5 { color: #ccc; }

body[data-theme="dark"] .swagger-ui section.models {
  border-color: #27272a;
  background: #18181b;
}
body[data-theme="dark"] .swagger-ui section.models h4 { color: #fafafa; border-color: #27272a; }
body[data-theme="dark"] .swagger-ui .model-box { background: #09090b; }
body[data-theme="dark"] .swagger-ui .model { color: #e0e0e0; }
body[data-theme="dark"] .swagger-ui .model .property.primitive { color: #7ec8e3; }
body[data-theme="dark"] .swagger-ui .model-title { color: #e0e0e0; }

body[data-theme="dark"] .swagger-ui .tab li { color: #999; }
body[data-theme="dark"] .swagger-ui .tab li.active { color: #e0e0e0; }

body[data-theme="dark"] .swagger-ui .highlight-code { background: #1e1e1e !important; }
body[data-theme="dark"] .swagger-ui .microlight { background: #1e1e1e; color: #e0e0e0; }

body[data-theme="dark"] .swagger-ui .btn.authorize {
  color: #7ec8e3;
  border-color: #7ec8e3;
  background: transparent;
}
body[data-theme="dark"] .swagger-ui .btn.authorize svg { fill: #7ec8e3; }
body[data-theme="dark"] .swagger-ui .expand-methods svg,
body[data-theme="dark"] .swagger-ui .expand-operation svg { fill: #aaa; }
body[data-theme="dark"] .swagger-ui svg.arrow { fill: #aaa; }

body[data-theme="dark"] .swagger-ui .loading-container .loading { color: #e0e0e0; }

/* ── Swagger UI Light Mode: force light regardless of browser prefers-color-scheme ── */
body[data-theme="light"] .swagger-ui-mount,
body[data-theme="light"] .swagger-ui {
  color-scheme: only light;
}

body[data-theme="light"] .swagger-ui {
  background: #fff;
  color: #3b4151;
}

body[data-theme="light"] .swagger-ui .info .title { color: #3b4151; }
body[data-theme="light"] .swagger-ui .info p,
body[data-theme="light"] .swagger-ui .info li { color: #3b4151; }
body[data-theme="light"] .swagger-ui .info a { color: #4990e2; }

body[data-theme="light"] .swagger-ui .scheme-container {
  background: #fff;
  box-shadow: 0 1px 2px 0 rgba(0,0,0,.15);
}
body[data-theme="light"] .swagger-ui .servers > label { color: #3b4151; }
body[data-theme="light"] .swagger-ui select {
  background: #fff;
  color: #3b4151;
  border-color: rgba(59,65,81,.2);
}

body[data-theme="light"] .swagger-ui .opblock-tag {
  color: #3b4151;
  border-color: rgba(59,65,81,.2);
}
body[data-theme="light"] .swagger-ui .opblock-tag small { color: rgba(59,65,81,.6); }

body[data-theme="light"] .swagger-ui .opblock .opblock-summary-description { color: rgba(59,65,81,.6); }
body[data-theme="light"] .swagger-ui .opblock .opblock-summary-path,
body[data-theme="light"] .swagger-ui .opblock .opblock-summary-path__deprecated { color: #3b4151; }
body[data-theme="light"] .swagger-ui .opblock .opblock-section-header {
  background: rgba(0,0,0,.05);
  box-shadow: 0 1px 2px rgba(0,0,0,.1);
}
body[data-theme="light"] .swagger-ui .opblock .opblock-section-header h4 { color: #3b4151; }
body[data-theme="light"] .swagger-ui .opblock-body pre.microlight { background: #f0f0f0; color: #3b4151; }

body[data-theme="light"] .swagger-ui textarea,
body[data-theme="light"] .swagger-ui input[type=text],
body[data-theme="light"] .swagger-ui input[type=email],
body[data-theme="light"] .swagger-ui input[type=password],
body[data-theme="light"] .swagger-ui input[type=file] {
  background: #fff;
  color: #3b4151;
  border-color: rgba(59,65,81,.2);
}

body[data-theme="light"] .swagger-ui .parameter__name { color: #3b4151; }
body[data-theme="light"] .swagger-ui .parameter__type { color: #3b4151; }
body[data-theme="light"] .swagger-ui .parameter__in { color: rgba(59,65,81,.6); }
body[data-theme="light"] .swagger-ui .parameters-col_description p { color: #3b4151; }

body[data-theme="light"] .swagger-ui table thead tr td,
body[data-theme="light"] .swagger-ui table thead tr th { color: rgba(59,65,81,.6); border-color: rgba(59,65,81,.2); }

body[data-theme="light"] .swagger-ui .response-col_status { color: #3b4151; }
body[data-theme="light"] .swagger-ui .response-col_description p { color: #3b4151; }
body[data-theme="light"] .swagger-ui .responses-inner h4,
body[data-theme="light"] .swagger-ui .responses-inner h5 { color: #3b4151; }

body[data-theme="light"] .swagger-ui section.models {
  border-color: rgba(59,65,81,.2);
  background: rgba(0,0,0,.05);
}
body[data-theme="light"] .swagger-ui section.models h4 { color: #3b4151; }
body[data-theme="light"] .swagger-ui .model-box { background: rgba(0,0,0,.05); }
body[data-theme="light"] .swagger-ui .model { color: #3b4151; }
body[data-theme="light"] .swagger-ui .model .property.primitive { color: #3b4151; }
body[data-theme="light"] .swagger-ui .model-title { color: #3b4151; }

body[data-theme="light"] .swagger-ui .tab li { color: rgba(59,65,81,.6); }
body[data-theme="light"] .swagger-ui .tab li.active { color: #3b4151; }

body[data-theme="light"] .swagger-ui .highlight-code { background: #f0f0f0 !important; }
body[data-theme="light"] .swagger-ui .microlight { background: #f0f0f0; color: #3b4151; }

body[data-theme="light"] .swagger-ui .btn.authorize {
  color: #49cc90;
  border-color: #49cc90;
  background: transparent;
}
body[data-theme="light"] .swagger-ui .btn.authorize svg { fill: #49cc90; }
body[data-theme="light"] .swagger-ui .expand-methods svg,
body[data-theme="light"] .swagger-ui .expand-operation svg { fill: #3b4151; }
body[data-theme="light"] .swagger-ui svg.arrow { fill: #3b4151; }

body[data-theme="light"] .swagger-ui .loading-container .loading { color: #3b4151; }
