:root {
    /* Dark Theme */
    --background-base: rgb(0, 0, 0);
    --background-surface: var(--background-base);
    --background-card: rgb(20, 20, 20);
    --background-input: var(--background-base);
    --border: rgb(40, 40, 40);

    --text-main: rgb(255, 255, 255);
    --text-muted: rgb(120, 120, 120);

    --accent: #B43C78;
    --accent-glow: var(--accent);
    --accent-shadow: 0 0 10px var(--accent-glow);

    --cyan: #B43C78;
    --cyan-glow: var(--cyan);

    --schedule-active-background: var(--background-card);

    --badge-green: #1ec85a;
    --status-finished: var(--badge-green);
    --status-finished-shadow: 0 0 10px var(--badge-green);

    --status-ongoing: #f0960a;
    --status-ongoing-shadow: 0 0 10px var(--status-ongoing);

    --status-anons: #aa8cfa;
    --status-anons-shadow: 0 0 10px var(--status-anons);

    --star: rgb(255, 210, 0);
    --star-glow: 0 0 10px var(--star);
    --rating-star: var(--star);

    --opacity-hover: 0.9;
    --opacity-disabled: 0.5;
}

[data-theme="light"] {
    /* Light Theme */
    --background-base: rgb(255, 255, 255);
    --background-surface: var(--background-base);
    --background-card: rgb(225, 225, 225);
    --background-input: var(--background-base);
    --border: rgb(205, 205, 205);

    --text-main: rgb(0, 0, 0);
    --text-muted: rgb(120, 120, 120);

    --accent: #B43C78;
    --accent-glow: var(--accent);
    --accent-shadow: 0 0 10px var(--accent-glow);

    --cyan: #B43C78;
    --cyan-glow: var(--cyan);

    --schedule-active-background: var(--background-card);

    --badge-green: #1ec85a;
    --status-finished: var(--badge-green);
    --status-finished-shadow: 0 0 10px var(--badge-green);

    --status-ongoing: #f0960a;
    --status-ongoing-shadow: 0 0 10px var(--status-ongoing);

    --status-anons: #aa8cfa;
    --status-anons-shadow: 0 0 10px var(--status-anons);

    --star: rgb(217, 119, 6);
    --star-glow: 0 0 8px rgba(217, 119, 6, 0.35);
    --rating-star: var(--star);

    --opacity-hover: 0.9;
    --opacity-disabled: 0.5;
}

/* Global Color Utility Classes */
.color-accent { color: var(--accent) !important; }
.background-accent { background-color: var(--accent) !important; }
.color-main { color: var(--text-main) !important; }
.color-muted { color: var(--text-muted) !important; }
.color-star { color: var(--star) !important; }
.border-accent { border-color: var(--accent) !important; }
.border-main { border-color: var(--border) !important; }
.background-card { background-color: var(--background-card) !important; }
.background-surface { background-color: var(--background-surface) !important; }

/* Status Badges */
.status-badge {
    font-weight: 800 !important;
    font-size: 0.95rem;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    letter-spacing: 0.2px;
}
.status-finished {
    color: var(--status-finished) !important;
    text-shadow: var(--status-finished-shadow);
}
.status-ongoing {
    color: var(--status-ongoing) !important;
    text-shadow: var(--status-ongoing-shadow);
}
.status-anons {
    color: var(--status-anons) !important;
    text-shadow: var(--status-anons-shadow);
}

/* Unified Inputs & Placeholder Theme Binding */
input::placeholder,
textarea::placeholder {
    color: var(--text-muted) !important;
    opacity: 1 !important;
}
