:root {
    color-scheme: light;
    --theme-color: #884ac0;
    --logo-purple: #884ac0;
    --logo-red: #d32f2f;
    --purple-light: #a56ed4;
    --purple-mid: #9a5dcc;
    --purple-deep: #7339a8;
    --purple-accent: #7a3f9e;
    --purple-soft: #a35cb8;
    --purple-glow: #c9a6e4;
    --red-light: #e84a46;
    --red-deep: #b52828;
    --page-bg: #f5f0fa;
    --text-primary: #2c2c2c;
    --text-muted: #6b6570;
    --text-on-brand: #ffffff;
    --text-on-brand-muted: rgba(255, 255, 255, 0.88);
    --surface-solid: #ffffff;
    --surface-tint: #f7f2fc;
    --surface-tint-red: #fdf3f3;
    --section-line: rgba(136, 74, 192, 0.16);
    --border-purple-subtle: rgba(136, 74, 192, 0.12);
    --border-purple: rgba(136, 74, 192, 0.14);
    --border-purple-strong: rgba(136, 74, 192, 0.2);
    --border-red: rgba(211, 47, 47, 0.14);
    --border-red-strong: rgba(211, 47, 47, 0.28);
    --border-neutral: rgba(107, 101, 112, 0.35);
    --shadow-brand: rgba(74, 21, 112, 0.08);
    --shadow-brand-strong: rgba(74, 21, 112, 0.18);
    --shadow-plum: rgba(44, 20, 64, 0.1);
    --shadow-purple: rgba(136, 74, 192, 0.08);
    --shadow-red: rgba(211, 47, 47, 0.28);
    --overlay-white: rgba(255, 255, 255, 0.12);
    --overlay-white-strong: rgba(255, 255, 255, 0.2);
    --state-hover: rgba(136, 74, 192, 0.06);
    --focus-ring: rgba(136, 74, 192, 0.12);
    --focus-ring-strong: rgba(136, 74, 192, 0.45);
    --ring-purple: rgba(136, 74, 192, 0.06);
    --ring-red: rgba(211, 47, 47, 0.1);
    --season-spring: #4a7d52;
    --season-summer: #b56a1f;
    --cursor-glow: #a56ed4;
    --cursor-on-brand: #fff8fc;
    --hero-splash-opacity: 1;
    --calendar-tip-bg: var(--logo-purple);
    --calendar-tip-text: var(--text-on-brand);
    --calendar-event-bg: var(--logo-red);
    --calendar-event-text: var(--text-on-brand);
    --calendar-event-gradient: linear-gradient(145deg, #e84a46 0%, #d32f2f 52%, #b52828 100%);
    --calendar-masthead-gradient: linear-gradient(168deg, #9a5dcc 0%, #884ac0 50%, #7339a8 100%);
    --calendar-month-head-gradient: linear-gradient(168deg, #ffffff 0%, #f7f2fc 58%, #efe6f8 100%);
    --calendar-month-head-active-gradient: linear-gradient(168deg, #9a5dcc 0%, #884ac0 52%, #7339a8 100%);
    --calendar-weekdays-gradient: linear-gradient(180deg, #faf7fd 0%, #f3edf9 100%);
    --calendar-masthead-text: var(--text-on-brand);
    --calendar-binding-gradient: linear-gradient(180deg, #ffffff 0%, #ece8f0 100%);
    --surface-card: linear-gradient(168deg, #ffffff 0%, #fefcfe 54%, #faf6fc 100%);
    --surface-panel: linear-gradient(168deg, #ffffff 0%, #fdfbfe 62%, #f8f3fc 100%);
    --surface-inset-gradient: linear-gradient(180deg, #faf7fd 0%, #f3edf9 100%);
    --surface-input-gradient: linear-gradient(180deg, #ffffff 0%, #fdfbfe 100%);
    --bubble-gradient-left: linear-gradient(135deg, #ffffff 0%, #fefeff 84%, #f9f6fd 100%);
    --bubble-gradient-right: linear-gradient(135deg, #ffffff 0%, #fffefe 84%, #fdf8f8 100%);
    --button-purple-gradient: var(--calendar-masthead-gradient);
    --button-purple-hover-gradient: linear-gradient(168deg, #a56ed4 0%, #9250c8 52%, #7d42ad 100%);
    --badge-duration-gradient: linear-gradient(145deg, #fdf3f3 0%, #f8e8e8 55%, #f2dddd 100%);
    --card-hover-gradient: linear-gradient(168deg, #ffffff 0%, #f8f2fc 48%, #efe3f8 100%);
    --route-line-gradient: linear-gradient(90deg, rgba(136, 74, 192, 0.55) 0%, rgba(211, 47, 47, 0.55) 100%);
    --nav-bg: rgba(136, 74, 192, 0.58);
    --nav-bg-stuck: rgba(136, 74, 192, 0.68);
    --nav-border: rgba(255, 255, 255, 0.14);
    --nav-divider: rgba(255, 255, 255, 0.2);
    --nav-active-bg: rgba(255, 255, 255, 0.12);
    --nav-shadow: rgba(74, 21, 112, 0.22);
    --nav-top-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.14) 0%, rgba(255, 255, 255, 0.09) 5%, rgba(255, 255, 255, 0.05) 12%, rgba(255, 255, 255, 0.025) 20%, rgba(255, 255, 255, 0.01) 28%, transparent 36%);
    --nav-body-gradient: linear-gradient(168deg, rgba(154, 93, 204, 0.72) 0%, rgba(136, 74, 192, 0.58) 52%, rgba(115, 57, 168, 0.66) 100%);
    --nav-top-gradient-stuck: linear-gradient(180deg, rgba(255, 255, 255, 0.17) 0%, rgba(255, 255, 255, 0.11) 5%, rgba(255, 255, 255, 0.06) 12%, rgba(255, 255, 255, 0.03) 20%, rgba(255, 255, 255, 0.012) 28%, transparent 36%);
    --nav-body-gradient-stuck: linear-gradient(168deg, rgba(154, 93, 204, 0.8) 0%, rgba(136, 74, 192, 0.68) 52%, rgba(115, 57, 168, 0.76) 100%);
    --text-dark: var(--text-primary);
    --schedule-table-gradient: var(--surface-card);
    --schedule-header-gradient: var(--calendar-masthead-gradient);
}

::placeholder {
    color: var(--text-muted);
    opacity: 0.85;
}

input,
textarea,
select,
button {
    color-scheme: light dark;
}

@media (prefers-color-scheme: dark) {
    input:-webkit-autofill,
    input:-webkit-autofill:hover,
    input:-webkit-autofill:focus {
        -webkit-box-shadow: 0 0 0 1000px var(--surface-solid) inset;
        -webkit-text-fill-color: var(--text-primary);
        caret-color: var(--text-primary);
    }
}

@media (prefers-color-scheme: dark) {
    :root {
        color-scheme: dark;
        --theme-color: #884ac0;
        --page-bg: #141018;
        --text-primary: #ece6f2;
        --text-muted: #a89bb8;
        --text-on-brand: #ffffff;
        --text-on-brand-muted: rgba(255, 255, 255, 0.82);
        --surface-solid: #211a2c;
        --surface-tint: #2a2238;
        --surface-tint-red: #2e2228;
        --section-line: rgba(180, 140, 220, 0.18);
        --border-purple-subtle: rgba(180, 140, 220, 0.14);
        --border-purple: rgba(180, 140, 220, 0.2);
        --border-purple-strong: rgba(180, 140, 220, 0.28);
        --border-red: rgba(239, 120, 120, 0.22);
        --border-red-strong: rgba(239, 120, 120, 0.34);
        --border-neutral: rgba(160, 150, 175, 0.35);
        --shadow-brand: rgba(0, 0, 0, 0.28);
        --shadow-brand-strong: rgba(0, 0, 0, 0.42);
        --shadow-plum: rgba(0, 0, 0, 0.32);
        --shadow-purple: rgba(136, 74, 192, 0.16);
        --shadow-red: rgba(211, 47, 47, 0.22);
        --overlay-white: rgba(255, 255, 255, 0.08);
        --overlay-white-strong: rgba(255, 255, 255, 0.14);
        --state-hover: rgba(180, 140, 220, 0.1);
        --focus-ring: rgba(180, 140, 220, 0.18);
        --focus-ring-strong: rgba(200, 160, 235, 0.45);
        --ring-purple: rgba(180, 140, 220, 0.12);
        --ring-red: rgba(239, 120, 120, 0.14);
        --season-spring: #7cb889;
        --season-summer: #d4924f;
        --cursor-glow: #9a5dcc;
        --cursor-on-brand: #f0e6f8;
        --hero-splash-opacity: 1;
        --calendar-event-gradient: linear-gradient(145deg, #ef5350 0%, #d32f2f 52%, #b71c1c 100%);
        --calendar-masthead-gradient: linear-gradient(168deg, #7a48ad 0%, #6a3d99 50%, #563080 100%);
        --calendar-month-head-gradient: linear-gradient(168deg, #2c2438 0%, #262030 58%, #201a2a 100%);
        --calendar-month-head-active-gradient: linear-gradient(168deg, #8a52be 0%, #7444a8 52%, #5f3690 100%);
        --calendar-weekdays-gradient: linear-gradient(180deg, #241e30 0%, #1e1828 100%);
        --calendar-binding-gradient: linear-gradient(180deg, #2e2640 0%, #241e32 100%);
        --surface-card: linear-gradient(168deg, #261f34 0%, #221c2e 54%, #1e1828 100%);
        --surface-panel: linear-gradient(168deg, #2a2238 0%, #241e30 62%, #1c1626 100%);
        --surface-inset-gradient: linear-gradient(180deg, #241e30 0%, #1c1626 100%);
        --surface-input-gradient: linear-gradient(180deg, #2a2238 0%, #241e30 100%);
        --bubble-gradient-left: linear-gradient(135deg, #2a2238 0%, #262030 84%, #221c2e 100%);
        --bubble-gradient-right: linear-gradient(135deg, #2a2238 0%, #2a2428 84%, #282022 100%);
        --button-purple-hover-gradient: linear-gradient(168deg, #9a5dcc 0%, #8652be 52%, #7044a4 100%);
        --badge-duration-gradient: linear-gradient(145deg, #32242a 0%, #2c2026 55%, #281c22 100%);
        --card-hover-gradient: linear-gradient(168deg, #2e2640 0%, #2a2238 48%, #261e34 100%);
        --route-line-gradient: linear-gradient(90deg, rgba(154, 93, 204, 0.65) 0%, rgba(211, 47, 47, 0.65) 100%);
        --nav-bg: rgba(30, 20, 42, 0.78);
        --nav-bg-stuck: rgba(30, 20, 42, 0.88);
        --nav-border: rgba(255, 255, 255, 0.1);
        --nav-divider: rgba(255, 255, 255, 0.16);
        --nav-active-bg: rgba(255, 255, 255, 0.1);
        --nav-shadow: rgba(0, 0, 0, 0.38);
        --nav-top-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.06) 5%, rgba(255, 255, 255, 0.03) 12%, transparent 36%);
        --nav-body-gradient: linear-gradient(168deg, rgba(90, 52, 130, 0.88) 0%, rgba(70, 38, 108, 0.82) 52%, rgba(52, 28, 86, 0.9) 100%);
        --nav-top-gradient-stuck: linear-gradient(180deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.07) 5%, rgba(255, 255, 255, 0.04) 12%, transparent 36%);
        --nav-body-gradient-stuck: linear-gradient(168deg, rgba(96, 56, 138, 0.92) 0%, rgba(76, 42, 114, 0.88) 52%, rgba(56, 30, 92, 0.94) 100%);
    }
}
