:root {
    color-scheme: light dark;
    --background: #ffffff;
    --text-color: #1d1d1f;
    --transition-duration: 0.3s;
}

:root[data-theme="dark"] {
    --background: #1f2937;
    --text-color: #f9fafb;
}

html {
    background-color: var(--background);
    color: var(--text-color);
    transition: background-color var(--transition-duration) ease,
                color var(--transition-duration) ease;
}

body {
    background-color: var(--background);
    color: var(--text-color);
    margin: 0;
    padding: 0;
    transition: background-color var(--transition-duration) ease,
                color var(--transition-duration) ease;
}

/* Theme-specific transitions */
[data-theme] * {
    transition: background-color var(--transition-duration) ease,
                color var(--transition-duration) ease,
                border-color var(--transition-duration) ease,
                box-shadow var(--transition-duration) ease;
}

/* Interactive elements transitions */
a,
button,
.theme-switcher,
.language-switcher a,
.nav__link,
.cta-button,
.form-input:focus,
.results__item:hover {
    transition: all var(--transition-duration) ease !important;
}

/* System theme detection */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --background: #1f2937;
        --text-color: #f9fafb;
    }
}

@media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) {
        --background: #ffffff;
        --text-color: #1d1d1f;
    }
} 