/* Theme variable definitions */
:root {
    --primary: #3b82f6;
    --primary-hover: #2563eb;
    --bg: #f9fafb;
    --container-bg: white;
    --text: #1f2937;
    --text-secondary: #6b7280;
    --border: #e5e7eb;
    --flash-color: #60a5fa;
    --accent-soft: rgba(59, 130, 246, 0.16);
}

[data-theme="dark"] {
    --primary: #60a5fa;
    --primary-hover: #3b82f6;
    --bg: #111827;
    --container-bg: #1f2937;
    --text: #f9fafb;
    --text-secondary: #9ca3af;
    --border: #374151;
    --flash-color: #93c5fd;
    --accent-soft: rgba(96, 165, 250, 0.22);
}

[data-theme="custom"] {
    --primary: var(--custom-primary-color, #3b82f6);
    --primary-hover: var(--custom-primary-hover-color, color-mix(in srgb, var(--custom-primary-color, #3b82f6) 85%, white 15%));
    --bg: var(--custom-bg-color, color-mix(in srgb, var(--custom-primary-color, #3b82f6) 12%, #f9fafb 88%));
    --container-bg: var(--custom-container-bg-color, color-mix(in srgb, var(--custom-primary-color, #3b82f6) 6%, #ffffff 94%));
    --text: var(--custom-text-color, color-mix(in srgb, var(--custom-primary-color, #3b82f6) 24%, #0f172a 76%));
    --text-secondary: var(--custom-text-secondary-color, color-mix(in srgb, var(--custom-primary-color, #3b82f6) 18%, #475569 82%));
    --border: var(--custom-border-color, color-mix(in srgb, var(--custom-primary-color, #3b82f6) 22%, #cbd5f5 78%));
    --flash-color: var(--custom-flash-color, color-mix(in srgb, var(--custom-primary-color, #3b82f6) 45%, #e0f2fe 55%));
    --accent-soft: color-mix(in srgb, var(--custom-primary-color, #3b82f6) 26%, transparent);
}

[data-theme="pink"] {
    --primary: #f472b6;
    --primary-hover: #ec4899;
    --bg: #fff5f9;
    --container-bg: #ffffff;
    --text: #831843;
    --text-secondary: #be185d;
    --border: rgba(236, 72, 153, 0.35);
    --flash-color: #fbcfe8;
    --accent-soft: rgba(244, 114, 182, 0.18);
}

[data-theme="gold"] {
    --primary: #f59e0b;
    --primary-hover: #d97706;
    --bg: #fff9ed;
    --container-bg: #ffffff;
    --text: #7c2d12;
    --text-secondary: #b45309;
    --border: rgba(245, 158, 11, 0.4);
    --flash-color: #fde68a;
    --accent-soft: rgba(245, 158, 11, 0.2);
}

[data-theme="sunrise"] {
    --primary: #f97316;
    --primary-hover: #ea580c;
    --bg: #fff7ed;
    --container-bg: #ffffff;
    --text: #7c2d12;
    --text-secondary: #c2410c;
    --border: rgba(249, 115, 22, 0.35);
    --flash-color: #fed7aa;
    --accent-soft: rgba(249, 115, 22, 0.18);
}

[data-theme="aurora"] {
    --primary: #22d3ee;
    --primary-hover: #0ea5e9;
    --bg: #f0fdfa;
    --container-bg: #ffffff;
    --text: #115e59;
    --text-secondary: #0f766e;
    --border: rgba(34, 211, 238, 0.35);
    --flash-color: #99f6e4;
    --accent-soft: rgba(34, 211, 238, 0.2);
}

[data-theme="lilac"] {
    --primary: #6366f1;
    --primary-hover: #4f46e5;
    --bg: #f6f2e9;
    --container-bg: #ffffff;
    --text: #312e81;
    --text-secondary: #4338ca;
    --border: rgba(99, 102, 241, 0.32);
    --flash-color: #c7d2fe;
    --accent-soft: rgba(99, 102, 241, 0.18);
}

[data-theme="meadow"] {
    --primary: #22c55e;
    --primary-hover: #16a34a;
    --bg: #f0fdf4;
    --container-bg: #ffffff;
    --text: #14532d;
    --text-secondary: #15803d;
    --border: rgba(34, 197, 94, 0.35);
    --flash-color: #bbf7d0;
    --accent-soft: rgba(34, 197, 94, 0.2);
}

[data-theme="midnight"] {
    --primary: #93c5fd;
    --primary-hover: #60a5fa;
    --bg: #0b1220;
    --container-bg: #141c2c;
    --text: #e2e8f0;
    --text-secondary: #94a3b8;
    --border: rgba(148, 163, 184, 0.28);
    --flash-color: #1d4ed8;
    --accent-soft: rgba(99, 102, 241, 0.22);
}

[data-theme="violet"] {
    --primary: #a855f7;
    --primary-hover: #8b5cf6;
    --bg: #1d1530;
    --container-bg: #271c3f;
    --text: #f5f3ff;
    --text-secondary: #d1c4f9;
    --border: rgba(168, 85, 247, 0.32);
    --flash-color: #c084fc;
    --accent-soft: rgba(168, 85, 247, 0.25);
}

[data-theme="forest"] {
    --primary: #34d399;
    --primary-hover: #10b981;
    --bg: #0f1a17;
    --container-bg: #13221e;
    --text: #d1fae5;
    --text-secondary: #6ee7b7;
    --border: rgba(16, 185, 129, 0.28);
    --flash-color: #22d3ee;
    --accent-soft: rgba(16, 185, 129, 0.24);
}

[data-theme="oled"] {
    --primary: #38bdf8;
    --primary-hover: #0ea5e9;
    --bg: #000000;
    --container-bg: #050505;
    --text: #f8fafc;
    --text-secondary: #94a3b8;
    --border: rgba(148, 163, 184, 0.22);
    --flash-color: #2563eb;
    --accent-soft: rgba(14, 165, 233, 0.18);
}

[data-theme="ocean"] {
    --primary: #0ea5e9;
    --primary-hover: #0284c7;
    --bg: #e0f7ff;
    --container-bg: #ffffff;
    --text: #0f172a;
    --text-secondary: #0369a1;
    --border: rgba(14, 165, 233, 0.3);
    --flash-color: #bae6fd;
    --accent-soft: rgba(14, 165, 233, 0.18);
}

[data-theme="ember"] {
    --primary: #fb7185;
    --primary-hover: #f97316;
    --bg: #1c0f0d;
    --container-bg: #241413;
    --text: #fee2e2;
    --text-secondary: #fca5a5;
    --border: rgba(248, 113, 113, 0.32);
    --flash-color: #f87171;
    --accent-soft: rgba(243, 114, 114, 0.2);
}

[data-theme="nebula"] {
    --primary: #7dd3fc;
    --primary-hover: #38bdf8;
    --bg: #0a1124;
    --container-bg: #111b2d;
    --text: #e0f2fe;
    --text-secondary: #94a3b8;
    --border: rgba(125, 211, 252, 0.28);
    --flash-color: #38bdf8;
    --accent-soft: rgba(56, 189, 248, 0.22);
}

[data-theme="nocturne"] {
    --primary: #facc15;
    --primary-hover: #eab308;
    --bg: #0c0a09;
    --container-bg: #1c1917;
    --text: #fef3c7;
    --text-secondary: #fcd34d;
    --border: rgba(250, 204, 21, 0.28);
    --flash-color: #fde68a;
    --accent-soft: rgba(250, 204, 21, 0.2);
}
