﻿
body {
    font-family: 'Inter', sans-serif;
}

:root {
    --theme-light-serene-primary: #3B82F6;
    --theme-light-citrus-primary: #F59E0B;
    --theme-light-rose-primary: #EC4899;
    --theme-light-mint-primary: #14B8A6;
    --theme-light-sky-primary: #0c4a6e;
    --theme-dark-slate-primary: #38BDF8;
    --theme-dark-forest-primary: #A3E635;
    --theme-dark-ocean-primary: #5AB2FF;
    --theme-dark-grape-primary: #A855F7;
    --theme-dark-sunset-primary: #F08080;
    /* Default to light-serene if no theme is set */
    --color-bg-primary: #f0f9ff; /* sky-50 */
    --color-bg-secondary: #FFFFFF;
    --color-text-primary: #0c4a6e; /* sky-900 */
    --color-text-secondary: #075985; /* sky-800 */
    --color-border: #e0f2fe; /* sky-100 */
    --color-primary: #0c4a6e; /* sky-500 */
    --color-primary-hover: #0284c7; /* sky-600 */
    --color-primary-text: #FFFFFF;
    --color-secondary: #38bdf8; /* sky-400 */
    --color-secondary-hover: #0ea5e9; /* sky-500 */
    --color-secondary-text: #FFFFFF;
    --color-danger: #EF4444;
    --color-danger-hover: #DC2626;
    --color-danger-text: #FFFFFF;
}

/* ------------------------- */
/* LIGHT THEMES              */
/* ------------------------- */

.theme-light-serene { /* Default Theme */
    --color-bg-primary: #F3F4F6;
    --color-bg-secondary: #FFFFFF;
    --color-text-primary: #1F2937;
    --color-text-secondary: #4B5563;
    --color-border: #D1D5DB;
    --color-primary: #3B82F6;
    --color-primary-hover: #2563EB;
    --color-primary-text: #FFFFFF;
    --color-secondary: #10B981;
    --color-secondary-hover: #059669;
    --color-secondary-text: #FFFFFF;
    --color-danger: #EF4444;
    --color-danger-hover: #DC2626;
    --color-danger-text: #FFFFFF;
}

.theme-light-citrus {
    --color-bg-primary: #FEFCE8;
    --color-bg-secondary: #FFFFFF;
    --color-text-primary: #3F3F46;
    --color-text-secondary: #71717A;
    --color-border: #E4E4E7;
    --color-primary: #F59E0B;
    --color-primary-hover: #D97706;
    --color-primary-text: #FFFFFF;
    --color-secondary: #84CC16;
    --color-secondary-hover: #65A30D;
    --color-secondary-text: #FFFFFF;
    --color-danger: #EF4444;
    --color-danger-hover: #DC2626;
    --color-danger-text: #FFFFFF;
}

.theme-light-rose {
    --color-bg-primary: #FFF1F2;
    --color-bg-secondary: #FFFFFF;
    --color-text-primary: #4C0519;
    --color-text-secondary: #831843;
    --color-border: #FECDD3;
    --color-primary: #EC4899;
    --color-primary-hover: #DB2777;
    --color-primary-text: #FFFFFF;
    --color-secondary: #F472B6;
    --color-secondary-hover: #E11D48;
    --color-secondary-text: #FFFFFF;
    --color-danger: #E11D48;
    --color-danger-hover: #BE123C;
    --color-danger-text: #FFFFFF;
}

.theme-light-mint {
    --color-bg-primary: #F0FDFA;
    --color-bg-secondary: #FFFFFF;
    --color-text-primary: #0F766E;
    --color-text-secondary: #134E4A;
    --color-border: #CCFBF1;
    --color-primary: #14B8A6;
    --color-primary-hover: #0D9488;
    --color-primary-text: #FFFFFF;
    --color-secondary: #2DD4BF;
    --color-secondary-hover: #14B8A6;
    --color-secondary-text: #134E4A;
    --color-danger: #F43F5E;
    --color-danger-hover: #E11D48;
    --color-danger-text: #FFFFFF;
}

.theme-light-sky {
    --color-bg-primary: #f0f9ff; /* sky-50 */
    --color-bg-secondary: #FFFFFF;
    --color-text-primary: #0c4a6e; /* sky-900 */
    --color-text-secondary: #075985; /* sky-800 */
    --color-border: #e0f2fe; /* sky-100 */
    --color-primary: #0c4a6e; /* sky-500 */
    --color-primary-hover: #0284c7; /* sky-600 */
    --color-primary-text: #FFFFFF;
    --color-secondary: #38bdf8; /* sky-400 */
    --color-secondary-hover: #0ea5e9; /* sky-500 */
    --color-secondary-text: #FFFFFF;
    --color-danger: #EF4444;
    --color-danger-hover: #DC2626;
    --color-danger-text: #FFFFFF;
    /* Theme-specific primary colors for theme switcher UI */
}


/* ------------------------- */
/* DARK THEMES               */
/* ------------------------- */

.theme-dark-slate {
    --color-bg-primary: #0F172A;
    --color-bg-secondary: #1E293B;
    --color-text-primary: #F1F5F9;
    --color-text-secondary: #94A3B8;
    --color-border: #334155;
    --color-primary: #38BDF8;
    --color-primary-hover: #7DD3FC;
    --color-primary-text: #0F172A;
    --color-secondary: #4ADE80;
    --color-secondary-hover: #86EFAC;
    --color-secondary-text: #1E293B;
    --color-danger: #F87171;
    --color-danger-hover: #FCA5A5;
    --color-danger-text: #0F172A;
}

.theme-dark-forest {
    --color-bg-primary: #1A2E05;
    --color-bg-secondary: #2A400A;
    --color-text-primary: #D4E2B8;
    --color-text-secondary: #A8C08C;
    --color-border: #3F522B;
    --color-primary: #A3E635;
    --color-primary-hover: #BEF264;
    --color-primary-text: #1A2E05;
    --color-secondary: #65A30D;
    --color-secondary-hover: #84CC16;
    --color-secondary-text: #D4E2B8;
    --color-danger: #F87171;
    --color-danger-hover: #FCA5A5;
    --color-danger-text: #1A2E05;
}

.theme-dark-ocean {
    --color-bg-primary: #0C2A4D;
    --color-bg-secondary: #183A60;
    --color-text-primary: #C3DAF7;
    --color-text-secondary: #9AB2D3;
    --color-border: #2E4C70;
    --color-primary: #5AB2FF;
    --color-primary-hover: #8BC9FF;
    --color-primary-text: #0C2A4D;
    --color-secondary: #2E79C2;
    --color-secondary-hover: #4891D8;
    --color-secondary-text: #C3DAF7;
    --color-danger: #F87171;
    --color-danger-hover: #FCA5A5;
    --color-danger-text: #0C2A4D;
}

.theme-dark-grape {
    --color-bg-primary: #281B3D;
    --color-bg-secondary: #3B2A56;
    --color-text-primary: #E9D5FF;
    --color-text-secondary: #C084FC;
    --color-border: #581C87;
    --color-primary: #A855F7;
    --color-primary-hover: #C084FC;
    --color-primary-text: #F3F4F6;
    --color-secondary: #D8B4FE;
    --color-secondary-hover: #E9D5FF;
    --color-secondary-text: #281B3D;
    --color-danger: #F472B6;
    --color-danger-hover: #F9A8D4;
    --color-danger-text: #281B3D;
}

.theme-dark-sunset {
    --color-bg-primary: #4B1D1D;
    --color-bg-secondary: #632828;
    --color-text-primary: #FADBD4;
    --color-text-secondary: #F4B2A3;
    --color-border: #7B3333;
    --color-primary: #F08080;
    --color-primary-hover: #F29E9E;
    --color-primary-text: #4B1D1D;
    --color-secondary: #DC5A5A;
    --color-secondary-hover: #E47777;
    --color-secondary-text: #FADBD4;
    --color-danger: #FB7185;
    --color-danger-hover: #FDA4AF;
    --color-danger-text: #4B1D1D;
}

/* Helper class for the active theme button's ring color */
.active-theme {
    --tw-ring-color: var(--color-primary);
}

body, header, aside, main, input, button, a, div, svg {
    transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.2s ease-in-out;
}

/* Add margin-left to sidebar transition to allow smooth collapse */
#sidebar {
    transition: transform 0.3s ease-in-out, margin-left 0.3s ease-in-out;
}
/* --- Animation & Transition Utilities --- */

.hidden {
    display: none;
}

/* Sidebar */
#sidebar {
    transform: translateX(-100%); /* Default state: closed on mobile */
}

    #sidebar.is-open {
        transform: translateX(0);
    }

@media (min-width: 768px) {
    #sidebar {
        transform: translateX(0);
        position: relative;
    }

        #sidebar.is-open {
            transform: translateX(-100%);
            margin-left: -16rem;
        }

    #sidebar-overlay {
        display: none;
    }
}

/* Dropdowns */
.dropdown {
    transition: opacity 0.2s ease-out, transform 0.2s ease-out, visibility 0.2s ease-out;
    transform-origin: top right;
}

    .dropdown.is-closed {
        opacity: 0;
        transform: scale(0.95);
        visibility: hidden;
    }

    .dropdown.is-open {
        opacity: 1;
        transform: scale(1);
        visibility: visible;
    }

#components-reconnect-modal,
#components-reconnect-failed,
#components-reconnect-rejected {
    display: none;
}

    #components-reconnect-modal.components-reconnect-show,
    #components-reconnect-failed.components-reconnect-show,
    #components-reconnect-rejected.components-reconnect-show {
        display: flex;
    }
