@import "tailwindcss";

:root,
[data-theme="dark"] {
  --bg-primary: #1a1a2e;
  --bg-secondary: #16213e;
  --bg-terminal: #0f0f1a;
  --bg-hover: #2a2a4a;
  --bg-code: #1e1e2e;
  --accent-primary: #e94560;
  --accent-secondary: #ff6b9d;
  --text-primary: #ffffff;
  --text-secondary: #a0a0a0;
  --text-tertiary: #6b7280;
  --border-color: #2a2a4a;

  /* Trans pride colors */
  --trans-blue: #5bcefa;
  --trans-pink: #f5a9b8;
  --trans-white: #ffffff;
  --trans-gradient: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 50%,
    var(--trans-white) 100%
  );
  --trans-gradient-vibrant: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 35%,
    var(--trans-white) 50%,
    var(--trans-pink) 65%,
    var(--trans-blue) 100%
  );

  /* Terminal specific colors */
  --terminal-user: #22d3ee;
  --terminal-tool: #c084fc;
  --terminal-tool-name: #ddd6fe;
  --terminal-error: #f87171;

  /* Syntax highlighting colors (dark) */
  --hljs-keyword: #f472b6;
  --hljs-string: #a3e635;
  --hljs-number: #fbbf24;
  --hljs-comment: #6b7280;
  --hljs-function: #c084fc;
  --hljs-type: #22d3ee;
  --hljs-variable: #fb923c;
  --hljs-meta: #94a3b8;
}

[data-theme="light"] {
  --bg-primary: #f8f9fa;
  --bg-secondary: #ffffff;
  --bg-terminal: #f1f3f4;
  --bg-hover: #e8e8e8;
  --bg-code: #f5f5f5;
  --accent-primary: #e94560;
  --accent-secondary: #ff6b9d;
  --text-primary: #1a1a2e;
  --text-secondary: #5a5a7a;
  --text-tertiary: #9ca3af;
  --border-color: #d0d0e0;

  /* Trans pride colors */
  --trans-blue: #5bcefa;
  --trans-pink: #f5a9b8;
  --trans-white: #ffffff;
  --trans-gradient: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 50%,
    var(--trans-white) 100%
  );
  --trans-gradient-vibrant: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 35%,
    var(--trans-white) 50%,
    var(--trans-pink) 65%,
    var(--trans-blue) 100%
  );

  /* Terminal specific colors */
  --terminal-user: #0891b2;
  --terminal-tool: #7c3aed;
  --terminal-tool-name: #8b5cf6;
  --terminal-error: #dc2626;

  /* Syntax highlighting colors (light) */
  --hljs-keyword: #d946ef;
  --hljs-string: #16a34a;
  --hljs-number: #d97706;
  --hljs-comment: #9ca3af;
  --hljs-function: #7c3aed;
  --hljs-type: #0891b2;
  --hljs-variable: #ea580c;
  --hljs-meta: #64748b;
}

[data-theme="high-contrast"] {
  --bg-primary: #000000;
  --bg-secondary: #0a0a0a;
  --bg-terminal: #000000;
  --bg-hover: #1a1a1a;
  --bg-code: #0a0a0a;
  --accent-primary: #ff4d6d;
  --accent-secondary: #ff85a1;
  --text-primary: #ffffff;
  --text-secondary: #e0e0e0;
  --text-tertiary: #b0b0b0;
  --border-color: #ffffff;

  /* Trans pride colors (high contrast) */
  --trans-blue: #00d4ff;
  --trans-pink: #ff99cc;
  --trans-white: #ffffff;
  --trans-gradient: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 50%,
    var(--trans-white) 100%
  );
  --trans-gradient-vibrant: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 35%,
    var(--trans-white) 50%,
    var(--trans-pink) 65%,
    var(--trans-blue) 100%
  );

  /* Terminal specific colors - bright and saturated */
  --terminal-user: #00ffff;
  --terminal-tool: #ff00ff;
  --terminal-tool-name: #ffaaff;
  --terminal-error: #ff5555;

  /* Syntax highlighting colors (high contrast) */
  --hljs-keyword: #ff66ff;
  --hljs-string: #66ff66;
  --hljs-number: #ffff00;
  --hljs-comment: #aaaaaa;
  --hljs-function: #ff99ff;
  --hljs-type: #00ffff;
  --hljs-variable: #ffaa00;
  --hljs-meta: #cccccc;
}

[data-theme="dracula"] {
  --bg-primary: #282a36;
  --bg-secondary: #1e1f29;
  --bg-terminal: #191a21;
  --bg-hover: #44475a;
  --bg-code: #282a36;
  --accent-primary: #bd93f9;
  --accent-secondary: #ff79c6;
  --text-primary: #f8f8f2;
  --text-secondary: #6272a4;
  --text-tertiary: #44475a;
  --border-color: #44475a;

  /* Trans pride colors */
  --trans-blue: #5bcefa;
  --trans-pink: #f5a9b8;
  --trans-white: #ffffff;
  --trans-gradient: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 50%,
    var(--trans-white) 100%
  );
  --trans-gradient-vibrant: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 35%,
    var(--trans-white) 50%,
    var(--trans-pink) 65%,
    var(--trans-blue) 100%
  );

  /* Terminal specific colors */
  --terminal-user: #8be9fd;
  --terminal-tool: #bd93f9;
  --terminal-tool-name: #caa9fa;
  --terminal-error: #ff5555;

  /* Syntax highlighting colors (Dracula) */
  --hljs-keyword: #ff79c6;
  --hljs-string: #f1fa8c;
  --hljs-number: #bd93f9;
  --hljs-comment: #6272a4;
  --hljs-function: #50fa7b;
  --hljs-type: #8be9fd;
  --hljs-variable: #ffb86c;
  --hljs-meta: #94a3b8;
}

[data-theme="catppuccin"] {
  --bg-primary: #1e1e2e;
  --bg-secondary: #181825;
  --bg-terminal: #11111b;
  --bg-hover: #313244;
  --bg-code: #1e1e2e;
  --accent-primary: #cba6f7;
  --accent-secondary: #f5c2e7;
  --text-primary: #cdd6f4;
  --text-secondary: #a6adc8;
  --text-tertiary: #6c7086;
  --border-color: #313244;

  /* Trans pride colors */
  --trans-blue: #5bcefa;
  --trans-pink: #f5a9b8;
  --trans-white: #ffffff;
  --trans-gradient: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 50%,
    var(--trans-white) 100%
  );
  --trans-gradient-vibrant: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 35%,
    var(--trans-white) 50%,
    var(--trans-pink) 65%,
    var(--trans-blue) 100%
  );

  /* Terminal specific colors */
  --terminal-user: #89dceb;
  --terminal-tool: #cba6f7;
  --terminal-tool-name: #d9b3ff;
  --terminal-error: #f38ba8;

  /* Syntax highlighting colors (Catppuccin Mocha) */
  --hljs-keyword: #cba6f7;
  --hljs-string: #a6e3a1;
  --hljs-number: #fab387;
  --hljs-comment: #6c7086;
  --hljs-function: #89b4fa;
  --hljs-type: #89dceb;
  --hljs-variable: #fab387;
  --hljs-meta: #a6adc8;
}

[data-theme="nord"] {
  --bg-primary: #2e3440;
  --bg-secondary: #3b4252;
  --bg-terminal: #242933;
  --bg-hover: #434c5e;
  --bg-code: #2e3440;
  --accent-primary: #88c0d0;
  --accent-secondary: #81a1c1;
  --text-primary: #eceff4;
  --text-secondary: #d8dee9;
  --text-tertiary: #4c566a;
  --border-color: #434c5e;

  /* Trans pride colors */
  --trans-blue: #5bcefa;
  --trans-pink: #f5a9b8;
  --trans-white: #ffffff;
  --trans-gradient: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 50%,
    var(--trans-white) 100%
  );
  --trans-gradient-vibrant: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 35%,
    var(--trans-white) 50%,
    var(--trans-pink) 65%,
    var(--trans-blue) 100%
  );

  /* Terminal specific colors */
  --terminal-user: #88c0d0;
  --terminal-tool: #b48ead;
  --terminal-tool-name: #c7a8c9;
  --terminal-error: #bf616a;

  /* Syntax highlighting colors (Nord) */
  --hljs-keyword: #81a1c1;
  --hljs-string: #a3be8c;
  --hljs-number: #b48ead;
  --hljs-comment: #4c566a;
  --hljs-function: #88c0d0;
  --hljs-type: #8fbcbb;
  --hljs-variable: #d08770;
  --hljs-meta: #616e88;
}

[data-theme="solarized"] {
  --bg-primary: #002b36;
  --bg-secondary: #073642;
  --bg-terminal: #00212b;
  --bg-hover: #094656;
  --bg-code: #002b36;
  --accent-primary: #268bd2;
  --accent-secondary: #2aa198;
  --text-primary: #fdf6e3;
  --text-secondary: #93a1a1;
  --text-tertiary: #657b83;
  --border-color: #094656;

  /* Trans pride colors */
  --trans-blue: #5bcefa;
  --trans-pink: #f5a9b8;
  --trans-white: #ffffff;
  --trans-gradient: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 50%,
    var(--trans-white) 100%
  );
  --trans-gradient-vibrant: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 35%,
    var(--trans-white) 50%,
    var(--trans-pink) 65%,
    var(--trans-blue) 100%
  );

  /* Terminal specific colors */
  --terminal-user: #2aa198;
  --terminal-tool: #6c71c4;
  --terminal-tool-name: #9395d0;
  --terminal-error: #dc322f;

  /* Syntax highlighting colors (Solarized Dark) */
  --hljs-keyword: #859900;
  --hljs-string: #2aa198;
  --hljs-number: #d33682;
  --hljs-comment: #586e75;
  --hljs-function: #268bd2;
  --hljs-type: #b58900;
  --hljs-variable: #cb4b16;
  --hljs-meta: #657b83;
}

[data-theme="solarized-light"] {
  --bg-primary: #fdf6e3;
  --bg-secondary: #eee8d5;
  --bg-terminal: #f9f3d7;
  --bg-hover: #d8d1be;
  --bg-code: #eee8d5;
  --accent-primary: #268bd2;
  --accent-secondary: #2aa198;
  --text-primary: #657b83;
  --text-secondary: #839496;
  --text-tertiary: #93a1a1;
  --border-color: #cfc9b5;

  /* Trans pride colors */
  --trans-blue: #5bcefa;
  --trans-pink: #f5a9b8;
  --trans-white: #ffffff;
  --trans-gradient: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 50%,
    var(--trans-white) 100%
  );
  --trans-gradient-vibrant: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 35%,
    var(--trans-white) 50%,
    var(--trans-pink) 65%,
    var(--trans-blue) 100%
  );

  /* Terminal specific colors */
  --terminal-user: #268bd2;
  --terminal-tool: #6c71c4;
  --terminal-tool-name: #8f94cc;
  --terminal-error: #dc322f;

  /* Syntax highlighting colors (Solarized Light) */
  --hljs-keyword: #859900;
  --hljs-string: #2aa198;
  --hljs-number: #d33682;
  --hljs-comment: #93a1a1;
  --hljs-function: #268bd2;
  --hljs-type: #b58900;
  --hljs-variable: #cb4b16;
  --hljs-meta: #657b83;
}

[data-theme="catppuccin-latte"] {
  --bg-primary: #eff1f5;
  --bg-secondary: #e6e9ef;
  --bg-terminal: #dce0e8;
  --bg-hover: #ccd0da;
  --bg-code: #e6e9ef;
  --accent-primary: #8839ef;
  --accent-secondary: #ea76cb;
  --text-primary: #4c4f69;
  --text-secondary: #6c6f85;
  --text-tertiary: #9ca0b0;
  --border-color: #bcc0cc;

  /* Trans pride colors */
  --trans-blue: #5bcefa;
  --trans-pink: #f5a9b8;
  --trans-white: #ffffff;
  --trans-gradient: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 50%,
    var(--trans-white) 100%
  );
  --trans-gradient-vibrant: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 35%,
    var(--trans-white) 50%,
    var(--trans-pink) 65%,
    var(--trans-blue) 100%
  );

  /* Terminal specific colors */
  --terminal-user: #209fb5;
  --terminal-tool: #8839ef;
  --terminal-tool-name: #a259f1;
  --terminal-error: #d20f39;

  /* Syntax highlighting colors (Catppuccin Latte) */
  --hljs-keyword: #8839ef;
  --hljs-string: #40a02b;
  --hljs-number: #fe640b;
  --hljs-comment: #8c8fa1;
  --hljs-function: #1e66f5;
  --hljs-type: #209fb5;
  --hljs-variable: #fe640b;
  --hljs-meta: #5c5f77;
}

[data-theme="gruvbox-light"] {
  --bg-primary: #fbf1c7;
  --bg-secondary: #ebdbb2;
  --bg-terminal: #f9f5d7;
  --bg-hover: #d5c4a1;
  --bg-code: #ebdbb2;
  --accent-primary: #458588;
  --accent-secondary: #689d6a;
  --text-primary: #3c3836;
  --text-secondary: #665c54;
  --text-tertiary: #7c6f64;
  --border-color: #bdae93;

  /* Trans pride colors */
  --trans-blue: #5bcefa;
  --trans-pink: #f5a9b8;
  --trans-white: #ffffff;
  --trans-gradient: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 50%,
    var(--trans-white) 100%
  );
  --trans-gradient-vibrant: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 35%,
    var(--trans-white) 50%,
    var(--trans-pink) 65%,
    var(--trans-blue) 100%
  );

  /* Terminal specific colors */
  --terminal-user: #458588;
  --terminal-tool: #b16286;
  --terminal-tool-name: #c37aa0;
  --terminal-error: #cc241d;

  /* Syntax highlighting colors (Gruvbox Light) */
  --hljs-keyword: #d65d0e;
  --hljs-string: #98971a;
  --hljs-number: #b16286;
  --hljs-comment: #928374;
  --hljs-function: #458588;
  --hljs-type: #d79921;
  --hljs-variable: #af3a03;
  --hljs-meta: #7c6f64;
}

[data-theme="rose-pine-dawn"] {
  --bg-primary: #faf4ed;
  --bg-secondary: #fffaf3;
  --bg-terminal: #f2e9e1;
  --bg-hover: #dfdad9;
  --bg-code: #fffaf3;
  --accent-primary: #907aa9;
  --accent-secondary: #d7827e;
  --text-primary: #575279;
  --text-secondary: #797593;
  --text-tertiary: #9893a5;
  --border-color: #cecacd;

  /* Trans pride colors */
  --trans-blue: #5bcefa;
  --trans-pink: #f5a9b8;
  --trans-white: #ffffff;
  --trans-gradient: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 50%,
    var(--trans-white) 100%
  );
  --trans-gradient-vibrant: linear-gradient(
    135deg,
    var(--trans-blue) 0%,
    var(--trans-pink) 35%,
    var(--trans-white) 50%,
    var(--trans-pink) 65%,
    var(--trans-blue) 100%
  );

  /* Terminal specific colors */
  --terminal-user: #56949f;
  --terminal-tool: #907aa9;
  --terminal-tool-name: #a48abf;
  --terminal-error: #b4637a;

  /* Syntax highlighting colors (Rosé Pine Dawn) */
  --hljs-keyword: #286983;
  --hljs-string: #56949f;
  --hljs-number: #ea9d34;
  --hljs-comment: #9893a5;
  --hljs-function: #907aa9;
  --hljs-type: #d7827e;
  --hljs-variable: #b4637a;
  --hljs-meta: #797593;
}

html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
  overflow: hidden;
  font-family: var(--ui-font-family, "Segoe UI", system-ui, -apple-system, sans-serif);
  background: var(--bg-primary);
  color: var(--text-primary);
}

#app {
  height: 100%;
}

::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: var(--bg-secondary);
}

::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--accent-primary);
}

::selection {
  background: var(--accent-primary);
  color: var(--text-primary);
}

/* Trans gradient button - primary action buttons */
.btn-trans-gradient {
  background: var(--trans-gradient-vibrant) !important;
  border: none !important;
  color: #1a1a2e !important;
  font-weight: 600;
  text-shadow: 0 0 2px rgba(255, 255, 255, 0.5);
  transition: all 0.2s ease;
}

.btn-trans-gradient:hover:not(:disabled) {
  filter: brightness(1.1);
  box-shadow:
    0 0 20px rgba(91, 206, 250, 0.4),
    0 0 30px rgba(245, 169, 184, 0.3);
}

.btn-trans-gradient:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  filter: grayscale(0.3);
}

/* Trans gradient focus border for inputs */
.input-trans-focus {
  position: relative;
  transition: all 0.2s ease;
}

.input-trans-focus:focus {
  border-color: var(--trans-pink) !important;
  box-shadow:
    0 0 0 1px var(--trans-blue),
    0 0 12px rgba(91, 206, 250, 0.3),
    0 0 20px rgba(245, 169, 184, 0.2) !important;
  outline: none !important;
}

/* Trans gradient hover for icon buttons */
.icon-trans-hover {
  transition: all 0.2s ease;
}

.icon-trans-hover:hover {
  color: var(--trans-pink) !important;
  filter: drop-shadow(0 0 6px rgba(91, 206, 250, 0.5))
    drop-shadow(0 0 10px rgba(245, 169, 184, 0.4));
}
