/* =========================
   THEME VARIABLES
========================= */

/* 🌙 DARK MODE */
body.dark {
    --bg: #121212;
    --bg-alpha: rgba(18, 18, 18, 0.85);
    --card: #1e1e1e;
    --text: #f5f5f5;
    --muted: #aaa;
    --border: rgba(255, 255, 255, 0.08);
    --shadow: rgba(0, 0, 0, 0.5);
    --hover: #2a2a2a;
    --primary-alpha: rgba(175, 50, 54, 0.25);

    /* Semantic colors — dark mode overrides */
    --info: #60a5fa;
    --info-light: rgba(96, 165, 250, 0.12);
    --info-dark: #93c5fd;
    --success: #4ade80;
    --success-light: rgba(74, 222, 128, 0.12);
    --success-dark: #86efac;
    --error: #f87171;
    --error-light: rgba(248, 113, 113, 0.12);
    --warning: #fbbf24;
    --warning-light: rgba(251, 191, 36, 0.12);
    --warning-dark: #fde68a;

    /* Accent tokens — dark mode */
    --accent-rose: #f9a8d4;
    --accent-rose-light: rgba(157, 23, 77, 0.12);
    --accent-event: #c4b5fd;
    --accent-event-light: rgba(91, 33, 182, 0.12);
}

/* Theme Fade */

.theme-fade {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    background: var(--bg);
    opacity: 0;
    pointer-events: none;
    z-index: 9999;

    transition: opacity 0.25s ease;
}

.theme-fade.active {
    opacity: 1;
}


/* Theme Toggle */

.theme-toggle {
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px;
}

/* Icon base */
.icon-sun-moon {
    width: 24px;
    height: 24px;
    fill: var(--text);
    stroke: var(--text);
    stroke-width: 1.5;
    transition: transform 0.4s ease;
}

/* Default state (LIGHT = sun visible) */
.sun {
    opacity: 1;
    transform: scale(1) rotate(0deg);
    transform-origin: center;
    transition: opacity 0.4s ease, transform 0.4s ease;
}

.moon {
    opacity: 0;
    transform: scale(0.6) translateX(4px);
    transform-origin: center;
    transition: opacity 0.4s ease, transform 0.4s ease;
}

/* DARK MODE STATE */
body.dark .sun {
    opacity: 0;
    transform: scale(0.6) rotate(90deg);
}

body.dark .moon {
    opacity: 1;
    transform: scale(1) translateX(0);
}