/* Theme definitions - can be split into individual files */

/* Dracula Theme */
[data-theme="dracula"] {
    --bg-main: #282a36;
    --bg-panel: #44475a;
    --bg-input: #282a36;
    --text-main: #f8f8f2;
    --text-muted: #bd93f9;
    --border: #6272a4;
    --accent: #ff79c6;
    --json-key: #8be9fd;
    --json-string: #f1fa8c;
    --json-number: #bd93f9;
    --json-boolean: #ff79c6;
    --json-null: #6272a4;
    --json-bracket: #f8f8f2;
}

/* Cyberpunk Theme */
[data-theme="cyberpunk"] {
    --bg-main: #000b1e;
    --bg-panel: #05162e;
    --bg-input: #000b1e;
    --text-main: #00f0ff;
    --text-muted: #05d9e8;
    --border: #00f0ff;
    --accent: #fcee0a;
    --json-key: #fcee0a;
    --json-string: #ff003c;
    --json-number: #00f0ff;
    --json-boolean: #00f0ff;
    --json-null: #717171;
    --json-bracket: #fcee0a;
}

/* Coffee Theme */
[data-theme="coffee"] {
    --bg-main: #f5ebe0;
    --bg-panel: #e3d5ca;
    --bg-input: #f5ebe0;
    --text-main: #463f3a;
    --text-muted: #8a817c;
    --border: #d6ccc2;
    --accent: #bc6c25;
    --json-key: #bc6c25;
    --json-string: #283618;
    --json-number: #606c38;
    --json-boolean: #dda15e;
    --json-null: #bc6c25;
    --json-bracket: #463f3a;
}

/* Forest Theme */
[data-theme="forest"] {
    --bg-main: #1b4332;
    --bg-panel: #2d6a4f;
    --bg-input: #1b4332;
    --text-main: #d8f3dc;
    --text-muted: #95d5b2;
    --border: #40916c;
    --accent: #74c69d;
    --json-key: #95d5b2;
    --json-string: #d8f3dc;
    --json-number: #52b788;
    --json-boolean: #b7e4c7;
    --json-null: #74c69d;
    --json-bracket: #d8f3dc;
}

/* 🦄 Unicorn Theme - Magical pastels */
[data-theme="unicorn"] {
    --bg-main: #fef6fb;
    --bg-panel: #f9e5f3;
    --bg-input: #fff;
    --text-main: #6b2d5c;
    --text-muted: #9d4edd;
    --border: #e0b0ff;
    --accent: #ff6ec7;
    --json-key: #ff6ec7;
    --json-string: #7e22ce;
    --json-number: #c026d3;
    --json-boolean: #d946ef;
    --json-null: #9d4edd;
    --json-bracket: #6b2d5c;
}

/* 🌈 Rainbow Theme - All the colors */
[data-theme="rainbow"] {
    --bg-main: #1a1a2e;
    --bg-panel: #16213e;
    --bg-input: #0f1620;
    --text-main: #ffffff;
    --text-muted: #ffd700;
    --border: #ffd700;
    --accent: #ff6b6b;
    --json-key: #4ecdc4;
    --json-string: #ffd93d;
    --json-number: #ff6b9d;
    --json-boolean: #a8e6cf;
    --json-null: #ff8b94;
    --json-bracket: #c7ceea;
}

/* 🌊 Ocean Theme - Deep blue waters */
[data-theme="ocean"] {
    --bg-main: #001f3f;
    --bg-panel: #003d5c;
    --bg-input: #001f3f;
    --text-main: #e0f7fa;
    --text-muted: #80deea;
    --border: #00acc1;
    --accent: #00e5ff;
    --json-key: #00e5ff;
    --json-string: #b2ebf2;
    --json-number: #4dd0e1;
    --json-boolean: #26c6da;
    --json-null: #00acc1;
    --json-bracket: #e0f7fa;
}

/* 🔥 Volcano Theme - Hot lava */
[data-theme="volcano"] {
    --bg-main: #1a0000;
    --bg-panel: #330000;
    --bg-input: #1a0000;
    --text-main: #ffecb3;
    --text-muted: #ffab91;
    --border: #ff5722;
    --accent: #ff6f00;
    --json-key: #ffab00;
    --json-string: #ffd54f;
    --json-number: #ff9800;
    --json-boolean: #ff6f00;
    --json-null: #ff5722;
    --json-bracket: #ffecb3;
}

/* 🌸 Sakura Theme - Cherry blossom */
[data-theme="sakura"] {
    --bg-main: #fff0f5;
    --bg-panel: #ffe4e9;
    --bg-input: #fff;
    --text-main: #8b4a6b;
    --text-muted: #c75b7a;
    --border: #ffb3c6;
    --accent: #ff69b4;
    --json-key: #ff1493;
    --json-string: #c75b7a;
    --json-number: #ff69b4;
    --json-boolean: #ffb3c6;
    --json-null: #ff69b4;
    --json-bracket: #8b4a6b;
}

/* 👾 Retro Gaming Theme - 8-bit nostalgia */
[data-theme="retro"] {
    --bg-main: #0f0f0f;
    --bg-panel: #1a1a1a;
    --bg-input: #0f0f0f;
    --text-main: #00ff00;
    --text-muted: #00cc00;
    --border: #00ff00;
    --accent: #ffff00;
    --json-key: #00ffff;
    --json-string: #ffff00;
    --json-number: #ff00ff;
    --json-boolean: #00ff00;
    --json-null: #808080;
    --json-bracket: #ffffff;
}

/* 🍇 Grape Theme - Purple paradise */
[data-theme="grape"] {
    --bg-main: #2d1b3d;
    --bg-panel: #3f2551;
    --bg-input: #2d1b3d;
    --text-main: #e9d5ff;
    --text-muted: #c084fc;
    --border: #a855f7;
    --accent: #d946ef;
    --json-key: #c084fc;
    --json-string: #e9d5ff;
    --json-number: #d946ef;
    --json-boolean: #a855f7;
    --json-null: #9333ea;
    --json-bracket: #e9d5ff;
}

/* 🎃 Pumpkin Theme - Halloween vibes */
[data-theme="pumpkin"] {
    --bg-main: #1a0d00;
    --bg-panel: #2d1a00;
    --bg-input: #1a0d00;
    --text-main: #ffe4b3;
    --text-muted: #ffb84d;
    --border: #ff8c1a;
    --accent: #ff6600;
    --json-key: #ff9933;
    --json-string: #ffcc66;
    --json-number: #ff6600;
    --json-boolean: #ff8c1a;
    --json-null: #cc5200;
    --json-bracket: #ffe4b3;
}

/* 🍋 Lemonade Theme - Fresh and zesty */
[data-theme="lemonade"] {
    --bg-main: #fffef7;
    --bg-panel: #fffacd;
    --bg-input: #ffffff;
    --text-main: #5a5200;
    --text-muted: #8b8000;
    --border: #ffd700;
    --accent: #ffd700;
    --json-key: #daa520;
    --json-string: #8b8000;
    --json-number: #ffa500;
    --json-boolean: #ffb347;
    --json-null: #daa520;
    --json-bracket: #5a5200;
}

/* 🌙 Midnight Theme - Starry night */
[data-theme="midnight"] {
    --bg-main: #0a0e27;
    --bg-panel: #151a3d;
    --bg-input: #0a0e27;
    --text-main: #f0f4ff;
    --text-muted: #8b9dc3;
    --border: #3d5a80;
    --accent: #6c91c2;
    --json-key: #7aa8d3;
    --json-string: #a8c5e7;
    --json-number: #ffd60a;
    --json-boolean: #89b4fa;
    --json-null: #6c91c2;
    --json-bracket: #e0e9f0;
}

/* 🍉 Watermelon Theme - Summer fresh */
[data-theme="watermelon"] {
    --bg-main: #fff5f5;
    --bg-panel: #ffe5e5;
    --bg-input: #ffffff;
    --text-main: #2d1f1f;
    --text-muted: #c7253e;
    --border: #ffccd5;
    --accent: #e85d75;
    --json-key: #c7253e;
    --json-string: #2d1f1f;
    --json-number: #ff6b9d;
    --json-boolean: #a8df8e;
    --json-null: #c7253e;
    --json-bracket: #2d1f1f;
}

/* 🧛 Vampire Theme - Gothic darkness */
[data-theme="vampire"] {
    --bg-main: #0d0208;
    --bg-panel: #1a0f14;
    --bg-input: #0d0208;
    --text-main: #e5d4ce;
    --text-muted: #a88f8f;
    --border: #5c1a1b;
    --accent: #8b0000;
    --json-key: #c1121f;
    --json-string: #d4afb9;
    --json-number: #8b0000;
    --json-boolean: #a4161a;
    --json-null: #660708;
    --json-bracket: #e5d4ce;
}

/* 🌵 Desert Theme - Sandy dunes */
[data-theme="desert"] {
    --bg-main: #f5e6d3;
    --bg-panel: #e8d5b7;
    --bg-input: #fff8e7;
    --text-main: #4a3820;
    --text-muted: #8b6f47;
    --border: #d4af37;
    --accent: #cd853f;
    --json-key: #cd853f;
    --json-string: #6b4423;
    --json-number: #d4af37;
    --json-boolean: #daa520;
    --json-null: #b8860b;
    --json-bracket: #4a3820;
}

/* ❄️ Frost Theme - Icy winter */
[data-theme="frost"] {
    --bg-main: #e6f7ff;
    --bg-panel: #d4eeff;
    --bg-input: #f0fbff;
    --text-main: #003d5c;
    --text-muted: #006994;
    --border: #91d5ff;
    --accent: #40a9ff;
    --json-key: #1890ff;
    --json-string: #006994;
    --json-number: #40a9ff;
    --json-boolean: #69c0ff;
    --json-null: #1890ff;
    --json-bracket: #003d5c;
}

/* 🎪 Carnival Theme - Fun and colorful */
[data-theme="carnival"] {
    --bg-main: #fff0f6;
    --bg-panel: #ffe6f0;
    --bg-input: #ffffff;
    --text-main: #4a154b;
    --text-muted: #7d2a85;
    --border: #ff69b4;
    --accent: #ff1493;
    --json-key: #ff6ec7;
    --json-string: #9370db;
    --json-number: #ff69b4;
    --json-boolean: #ffa500;
    --json-null: #ff1493;
    --json-bracket: #4a154b;
}

/* Theme Overrides */
[data-theme] body,
[data-theme] main,
[data-theme] .bg-slate-50, 
[data-theme] .dark\:bg-slate-950 { 
    background-color: var(--bg-main) !important; 
    color: var(--text-main) !important; 
}

[data-theme] header,
[data-theme] aside,
[data-theme] .bg-white,
[data-theme] .dark\:bg-slate-900 { 
    background-color: var(--bg-panel) !important; 
    border-color: var(--border) !important; 
}

[data-theme] textarea,
[data-theme] input { 
    background-color: var(--bg-input) !important; 
    color: var(--text-main) !important; 
    border-color: var(--border) !important; 
}

[data-theme] .text-slate-800, 
[data-theme] .dark\:text-slate-100,
[data-theme] .text-slate-700,
[data-theme] .dark\:text-slate-300 { 
    color: var(--text-main) !important; 
}

[data-theme] .text-slate-500,
[data-theme] .text-slate-400 { 
    color: var(--text-muted) !important; 
}

[data-theme] .border-slate-200,
[data-theme] .dark\:border-slate-800,
[data-theme] .border-slate-100 { 
    border-color: var(--border) !important; 
}

/* JSON syntax highlighting for themes */
[data-theme] .json-key { color: var(--json-key) !important; }
[data-theme] .json-string { color: var(--json-string) !important; }
[data-theme] .json-number { color: var(--json-number) !important; }
[data-theme] .json-boolean { color: var(--json-boolean) !important; }
[data-theme] .json-null { color: var(--json-null) !important; }
[data-theme] .json-bracket { color: var(--json-bracket) !important; }
[data-theme] .collapsible-caret { color: var(--text-muted) !important; }
[data-theme] .text-violet-600 { color: var(--accent) !important; }
[data-theme] .bg-violet-600 { 
    background-color: var(--accent) !important; 
    color: var(--bg-main) !important; 
}

/* Theme menu animation */
#themeMenu {
    animation: fadeIn 0.15s ease-out;
}

.theme-option {
    transition: background-color 0.15s;
}

[data-theme] #themeMenu {
    background-color: var(--bg-panel) !important;
    border-color: var(--border) !important;
}

[data-theme] .theme-option:hover {
    background-color: var(--bg-main) !important;
}