/* ===================================
   THEMES.CSS - Clean Rebuild
   Daymaker Calendars - November 2025
   4 Complete Themes, DRY, No Redundancies
   No Screensaver Overrides (Always Black)
   =================================== */

/* ===================================
   THEME STRUCTURE:
   1. Light Theme (VS Code Style)
   2. Dark Theme (Obsidian Style)
   3. Pastel Theme (Soft & Gentle)
   
   Note: Default theme uses base styles from style.css
   Note: Screensaver is ALWAYS pure black (defined in style.css)
   =================================== */

/* ===================================
   1. LIGHT THEME - Visual Studio Code Style
   =================================== */
body.light-theme {
    background: linear-gradient(to bottom, #f5f5f5, #e8e8e8, #d6d6d6);
}

/* Settings Cog */
body.light-theme .settings-cog {
    background: linear-gradient(135deg, #0078d4 0%, #106ebe 100%);
}

body.light-theme .settings-cog:hover {
    background: linear-gradient(135deg, #106ebe 0%, #005a9e 100%);
}

/* App Header */
body.light-theme .app-title {
    font-family: 'Nunito', sans-serif;
    color: #0078d4;
    text-shadow: 2px 2px 4px rgba(0, 120, 212, 0.2);
    font-weight: 800;
}

body.light-theme .app-subtitle {
    font-family: 'Nunito', sans-serif;
    color: #106ebe;
    text-shadow: 1px 1px 2px rgba(16, 110, 190, 0.2);
    font-weight: 600;
}

/* Current Date & Time */
body.light-theme .current-date-display {
    background: linear-gradient(135deg, #0078d4 0%, #106ebe 100%);
    box-shadow: 0 4px 15px rgba(0, 120, 212, 0.3);
    color: white;
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
}

body.light-theme .current-date-display.clickable:hover {
    box-shadow: 0 6px 20px rgba(0, 120, 212, 0.5);
}

body.light-theme .current-time-display {
    background: linear-gradient(135deg, #2b88d8 0%, #0078d4 100%);
    box-shadow: 0 4px 15px rgba(0, 120, 212, 0.3);
    color: white;
    font-family: 'Nunito', sans-serif;
    font-weight: 800;
    animation: glow-light 2s ease-in-out infinite;
}

@keyframes glow-light {
    0%, 100% { box-shadow: 0 4px 15px rgba(0, 120, 212, 0.3); }
    50% { box-shadow: 0 4px 25px rgba(0, 120, 212, 0.5); }
}

/* Weather Display */
body.light-theme .weather-display {
    background: linear-gradient(135deg, #0078d4 0%, #106ebe 100%);
    box-shadow: 0 4px 15px rgba(0, 120, 212, 0.3);
    animation: glow-light 2s ease-in-out infinite;
}

/* Events Panel */
body.light-theme .events-panel {
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    border: 1px solid #e0e0e0;
}

body.light-theme .events-header h2 {
    color: #1a1a1a;
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
}

body.light-theme .events-header p {
    color: #616161;
    font-family: 'Nunito', sans-serif;
    font-weight: 600;
}

body.light-theme .holidays-title {
    color: #0078d4;
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
}

body.light-theme .holidays-list {
    background: linear-gradient(135deg, #fff9e6 0%, #ffecb3 100%);
    border: 1px solid #ffe082;
}

body.light-theme .holiday-item {
    background: rgba(255, 255, 255, 0.8);
    color: #6d4c41;
}

body.light-theme .event-item {
    background: #fafafa;
    border: 2px solid #e0e0e0;
}

body.light-theme .event-item:hover {
    background: #f5f5f5;
    border-color: #0078d4;
}

body.light-theme .event-number {
    background: #0078d4;
}

body.light-theme .event-text {
    font-family: 'Nunito', sans-serif;
    font-weight: 600;
}

body.light-theme .add-event-section button {
    background: #0078d4;
    font-family: 'Nunito', sans-serif;
}

body.light-theme .add-event-section button:hover {
    background: #106ebe;
}

/* Calendar Container */
body.light-theme .calendar-container {
    background: #ffffff;
    border-color: #0078d4;
    box-shadow: 0 25px 50px rgba(0, 120, 212, 0.2);
}

/* Calendar Header */
body.light-theme .calendar-header {
    background: linear-gradient(to right, #0078d4, #2b88d8);
    font-family: 'Nunito', sans-serif;
}

body.light-theme .calendar-header.no-gradient {
    background: #f8f9fa !important;
    border-bottom: 3px solid #dee2e6;
}

body.light-theme .calendar-header.no-gradient .month-year-selector select {
    background: #e9ecef;
    color: #212529;
    border-color: #adb5bd;
}

body.light-theme .calendar-header.no-gradient .nav-arrow {
    background: #e9ecef;
    color: #212529;
    border-color: #adb5bd;
}

body.light-theme .calendar-header.no-gradient .nav-arrow:hover {
    background: #dee2e6;
}

body.light-theme .header-decorations {
    opacity: 0.2;
}

body.light-theme .nav-arrow {
    background: rgba(255, 255, 255, 0.3);
}

body.light-theme .nav-arrow:hover {
    background: rgba(255, 255, 255, 0.5);
}

body.light-theme .month-year-selector select {
    background: rgba(255, 255, 255, 0.3);
    color: white;
    border-color: white;
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
}

body.light-theme .month-year-selector select:hover {
    background: rgba(255, 255, 255, 0.4);
}

/* Day Headers */
body.light-theme .day-header {
    background: #f0f0f0;
    color: #424242;
    border: 2px solid #d0d0d0;
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
}

/* Day Cells */
body.light-theme .day-cell.filled {
    background: linear-gradient(to bottom right, #ffffff, #fafafa);
    border: 2px solid #e0e0e0;
}

body.light-theme .day-cell.filled:hover {
    box-shadow: 0 10px 20px rgba(0, 120, 212, 0.15);
    border-color: #0078d4;
}

body.light-theme .day-cell.today {
    background: linear-gradient(to bottom right, #e3f2fd, #bbdefb);
    border: 3px solid #0078d4;
    box-shadow: 0 0 0 2px rgba(0, 120, 212, 0.2);
}

body.light-theme .day-cell.today .day-number {
    color: #01579b;
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
}

body.light-theme .day-cell.has-events {
    background: linear-gradient(to bottom right, #e8f5e9, #c8e6c9);
    border: 3px solid #4caf50;
    box-shadow: 0 0 0 2px rgba(76, 175, 80, 0.2);
}

body.light-theme .day-cell.has-events::after {
    color: #2e7d32;
}

body.light-theme .day-cell.today.has-events {
    background: linear-gradient(135deg, #e3f2fd 0%, #e8f5e9 100%);
    border-color: #0078d4;
}

body.light-theme .day-number {
    color: #212121;
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
}

body.light-theme .today-label {
    color: #01579b;
}

body.light-theme .day-events-list {
    color: #2e7d32;
}

body.light-theme .holiday-label {
    color: #0078d4;
}

/* Special Event Days */
body.light-theme .day-cell.special-event-day {
    background: linear-gradient(135deg, #fff9e6 0%, #ffecb3 100%);
    border: 3px solid #ffc107;
    box-shadow: 0 0 0 2px rgba(255, 193, 7, 0.2);
}

body.light-theme .day-cell.special-event-day[data-special-type="birthday"] {
    background: linear-gradient(135deg, #fce4ec 0%, #f8bbd0 100%);
    border: 3px solid #e91e63;
    box-shadow: 0 0 0 2px rgba(233, 30, 99, 0.2);
}

body.light-theme .day-cell.special-event-day[data-special-type="anniversary"] {
    background: linear-gradient(135deg, #fce4ec 0%, #f8bbd0 100%);
    border: 3px solid #c2185b;
    box-shadow: 0 0 0 2px rgba(194, 24, 91, 0.2);
}

body.light-theme .day-cell.special-event-day[data-special-type="memorial"] {
    background: linear-gradient(135deg, #e8eaf6 0%, #c5cae9 100%);
    border: 3px solid #5c6bc0;
    box-shadow: 0 0 0 2px rgba(92, 107, 192, 0.2);
}

body.light-theme .special-event-label {
    color: #0078d4;
}

/* Special Days */
body.light-theme .day-cell.halloween,
body.light-theme .day-cell.special-day {
    background: linear-gradient(to bottom right, #ce93d8, #f48fb1);
    border: 4px solid #8e24aa;
}

body.light-theme .day-cell.thanksgiving {
    background: linear-gradient(to bottom right, #ffcc80, #ffe0b2);
    border: 4px solid #ef6c00;
}

/* Calendar Footer */
body.light-theme .calendar-footer {
    background: linear-gradient(to right, #0078d4, #2b88d8);
    font-family: 'Nunito', sans-serif;
}

body.light-theme .calendar-footer.no-gradient {
    background: #f8f9fa !important;
    border-top: 3px solid #dee2e6;
}

body.light-theme .calendar-footer.no-gradient p {
    color: #212529 !important;
}

body.light-theme .calendar-footer p {
    color: white;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
}

/* Modals */
body.light-theme .modal {
    background: #ffffff;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
    border: 1px solid #e0e0e0;
}

body.light-theme .modal h3 {
    color: #1a1a1a;
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
}

body.light-theme .modal-save {
    background: #0078d4;
}

body.light-theme .modal-save:hover {
    background: #106ebe;
}

body.light-theme .modal-delete {
    background: #e53935;
}

body.light-theme .modal-delete:hover {
    background: #c62828;
}

body.light-theme .toggle-label {
    background: #ffffff;
    border: 2px solid #e0e0e0;
}

body.light-theme .toggle-label:hover {
    border-color: #0078d4;
    box-shadow: 0 2px 8px rgba(0, 120, 212, 0.1);
}

body.light-theme .toggle-label span:first-child {
    font-family: 'Nunito', sans-serif;
}

body.light-theme .settings-section h4 {
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
}

body.light-theme .add-special-event-btn {
    background: #0078d4;
}

body.light-theme .add-special-event-btn:hover {
    background: #106ebe;
}

body.light-theme .edit-special-event {
    background: #0078d4;
}

body.light-theme .edit-special-event:hover {
    background: #106ebe;
}

body.light-theme .delete-special-event {
    background: #e53935;
}

body.light-theme .delete-special-event:hover {
    background: #c62828;
}

body.light-theme .event-list-modal-overlay {
    background: rgba(0, 0, 0, 0.4);
}

body.light-theme .event-list-modal-content {
    background: #ffffff;
    border: 1px solid #e0e0e0;
}

body.light-theme .modal-close-btn {
    background: #e53935;
}

body.light-theme .modal-close-btn:hover {
    background: #c62828;
}

/* ===================================
   2. DARK THEME - Obsidian Style
   =================================== */
body.dark-theme {
    background: linear-gradient(to bottom, #0a0a0a, #1a1a1a, #0f0f0f);
}

/* Settings Cog */
body.dark-theme .settings-cog {
    background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);
    box-shadow: 0 4px 20px rgba(99, 102, 241, 0.4);
}

body.dark-theme .settings-cog:hover {
    background: linear-gradient(135deg, #4f46e5 0%, #4338ca 100%);
    box-shadow: 0 6px 25px rgba(99, 102, 241, 0.6);
}

/* App Header */
body.dark-theme .app-title {
    font-family: 'Quicksand', sans-serif;
    color: #a78bfa;
    text-shadow: 0 0 20px rgba(167, 139, 250, 0.5), 2px 2px 4px rgba(0, 0, 0, 0.8);
    font-weight: 700;
    letter-spacing: 2px;
}

body.dark-theme .app-subtitle {
    font-family: 'Quicksand', sans-serif;
    color: #c4b5fd;
    text-shadow: 0 0 15px rgba(196, 181, 253, 0.4), 1px 1px 2px rgba(0, 0, 0, 0.8);
    font-weight: 600;
    letter-spacing: 1.5px;
}

/* Current Date & Time */
body.dark-theme .current-date-display {
    background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6), 0 0 30px rgba(139, 92, 246, 0.2);
    color: #e0e7ff;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    border: 1px solid #475569;
}

body.dark-theme .current-date-display.clickable:hover {
    box-shadow: 0 6px 25px rgba(0, 0, 0, 0.7), 0 0 40px rgba(139, 92, 246, 0.3);
    border-color: #8b5cf6;
}

body.dark-theme .current-time-display {
    background: linear-gradient(135deg, #312e81 0%, #4338ca 100%);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6), 0 0 30px rgba(99, 102, 241, 0.3);
    color: #e0e7ff;
    font-family: 'Quicksand', sans-serif;
    font-weight: 800;
    border: 1px solid #6366f1;
    animation: glow-dark 2s ease-in-out infinite;
}

@keyframes glow-dark {
    0%, 100% { 
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6), 0 0 30px rgba(99, 102, 241, 0.3);
    }
    50% { 
        box-shadow: 0 4px 25px rgba(0, 0, 0, 0.7), 0 0 50px rgba(99, 102, 241, 0.5);
    }
}

/* Weather Display */
body.dark-theme .weather-display {
    background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6), 0 0 30px rgba(139, 92, 246, 0.2);
    border: 1px solid #475569;
    animation: glow-dark 2s ease-in-out infinite;
}

/* Events Panel */
body.dark-theme .events-panel {
    background: linear-gradient(135deg, #18181b 0%, #27272a 100%);
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.8), 0 0 20px rgba(139, 92, 246, 0.1);
    border: 2px solid #3f3f46;
}

body.dark-theme .events-header h2 {
    color: #e0e7ff;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    text-shadow: 0 0 10px rgba(167, 139, 250, 0.3);
}

body.dark-theme .events-header p {
    color: #a1a1aa;
    font-family: 'Quicksand', sans-serif;
    font-weight: 600;
}

body.dark-theme .holidays-title {
    color: #c4b5fd;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    text-shadow: 0 0 10px rgba(196, 181, 253, 0.3);
}

body.dark-theme .holidays-list {
    background: linear-gradient(135deg, #422006 0%, #713f12 100%);
    border: 1px solid #92400e;
}

body.dark-theme .holiday-item {
    background: rgba(68, 64, 60, 0.4);
    color: #fde68a;
    border: 1px solid #78716c;
}

body.dark-theme .event-item {
    background: linear-gradient(135deg, #27272a 0%, #3f3f46 100%);
    border: 2px solid #52525b;
}

body.dark-theme .event-item:hover {
    background: linear-gradient(135deg, #3f3f46 0%, #52525b 100%);
    border-color: #8b5cf6;
    box-shadow: 0 4px 15px rgba(139, 92, 246, 0.2);
}

body.dark-theme .event-item.completed {
    background: linear-gradient(135deg, #18181b 0%, #27272a 100%);
}

body.dark-theme .event-number {
    background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
    box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);
}

body.dark-theme .event-text {
    font-family: 'Quicksand', sans-serif;
    font-weight: 600;
    color: #e4e4e7;
}

body.dark-theme .event-time {
    color: #a1a1aa;
}

body.dark-theme .add-event-section {
    border-top: 1px solid #3f3f46;
}

body.dark-theme .add-event-section button {
    background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
    font-family: 'Quicksand', sans-serif;
    box-shadow: 0 4px 15px rgba(99, 102, 241, 0.3);
}

body.dark-theme .add-event-section button:hover {
    background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
    box-shadow: 0 6px 20px rgba(99, 102, 241, 0.5);
}

body.dark-theme .no-events {
    color: #71717a;
}

/* Calendar Container */
body.dark-theme .calendar-container {
    background: linear-gradient(135deg, #0a0a0a 0%, #18181b 100%);
    border-color: #6366f1;
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.9), 0 0 40px rgba(99, 102, 241, 0.2);
}

/* Calendar Header */
body.dark-theme .calendar-header {
    background: linear-gradient(to right, #4338ca, #6366f1, #8b5cf6);
    font-family: 'Quicksand', sans-serif;
    box-shadow: 0 4px 20px rgba(99, 102, 241, 0.4);
}

body.dark-theme .calendar-header.no-gradient {
    background: #18181b !important;
    border-bottom: 3px solid #3f3f46;
}

body.dark-theme .calendar-header.no-gradient .month-year-selector select {
    background: #27272a;
    color: #e4e4e7;
    border-color: #52525b;
}

body.dark-theme .calendar-header.no-gradient .nav-arrow {
    background: #27272a;
    color: #e4e4e7;
    border-color: #52525b;
}

body.dark-theme .calendar-header.no-gradient .nav-arrow:hover {
    background: #3f3f46;
}

body.dark-theme .header-decorations {
    opacity: 0.15;
    filter: drop-shadow(0 0 10px rgba(167, 139, 250, 0.5));
}

body.dark-theme .nav-arrow {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
}

body.dark-theme .nav-arrow:hover {
    background: rgba(255, 255, 255, 0.2);
    box-shadow: 0 0 20px rgba(167, 139, 250, 0.4);
}

body.dark-theme .month-year-selector select {
    background: rgba(0, 0, 0, 0.3);
    color: white;
    border-color: rgba(255, 255, 255, 0.3);
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    backdrop-filter: blur(10px);
}

body.dark-theme .month-year-selector select:hover {
    background: rgba(0, 0, 0, 0.5);
    border-color: #a78bfa;
}

body.dark-theme .month-year-selector select option {
    background: #18181b;
    color: white;
}

/* Day Headers */
body.dark-theme .day-header {
    background: linear-gradient(135deg, #27272a 0%, #3f3f46 100%);
    color: #c4b5fd;
    border: 2px solid #52525b;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    text-shadow: 0 0 8px rgba(196, 181, 253, 0.3);
}

/* Day Cells */
body.dark-theme .day-cell.filled {
    background: linear-gradient(to bottom right, #18181b, #27272a);
    border: 2px solid #3f3f46;
}

body.dark-theme .day-cell.filled:hover {
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.8), 0 0 20px rgba(139, 92, 246, 0.3);
    border-color: #8b5cf6;
    background: linear-gradient(to bottom right, #27272a, #3f3f46);
}

body.dark-theme .day-cell.today {
    background: linear-gradient(to bottom right, #1e293b, #334155);
    border: 3px solid #6366f1;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.3), 0 0 25px rgba(99, 102, 241, 0.4);
}

body.dark-theme .day-cell.today .day-number {
    color: #a5b4fc;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    text-shadow: 0 0 10px rgba(165, 180, 252, 0.5);
}

body.dark-theme .day-cell.has-events {
    background: linear-gradient(to bottom right, #14532d, #166534);
    border: 3px solid #22c55e;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.2), 0 0 20px rgba(34, 197, 94, 0.3);
}

body.dark-theme .day-cell.has-events::after {
    color: #4ade80;
    text-shadow: 0 0 10px rgba(74, 222, 128, 0.6);
}

body.dark-theme .day-cell.today.has-events {
    background: linear-gradient(135deg, #1e293b 0%, #14532d 100%);
    border-color: #6366f1;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.3), 0 0 25px rgba(99, 102, 241, 0.4);
}

body.dark-theme .day-number {
    color: #d4d4d8;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
}

body.dark-theme .today-label {
    color: #a5b4fc;
    text-shadow: 0 0 8px rgba(165, 180, 252, 0.5);
}

body.dark-theme .day-events-list {
    color: #86efac;
}

body.dark-theme .day-event-item {
    color: #d4d4d8;
    font-weight: 700;
}

body.dark-theme .holiday-label {
    color: #fde68a;
    text-shadow: 0 0 8px rgba(253, 230, 138, 0.4);
}

/* Special Event Days */
body.dark-theme .day-cell.special-event-day {
    background: linear-gradient(135deg, #713f12 0%, #92400e 100%);
    border: 3px solid #f59e0b;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.2), 0 0 20px rgba(245, 158, 11, 0.3);
}

body.dark-theme .day-cell.special-event-day[data-special-type="birthday"] {
    background: linear-gradient(135deg, #831843 0%, #9f1239 100%);
    border: 3px solid #f43f5e;
    box-shadow: 0 0 0 3px rgba(244, 63, 94, 0.2), 0 0 20px rgba(244, 63, 94, 0.3);
}

body.dark-theme .day-cell.special-event-day[data-special-type="birthday"] .special-event-label {
    color: #fda4af;
    text-shadow: 0 0 10px rgba(253, 164, 175, 0.6);
}

body.dark-theme .day-cell.special-event-day[data-special-type="anniversary"] {
    background: linear-gradient(135deg, #831843 0%, #9f1239 100%);
    border: 3px solid #ec4899;
    box-shadow: 0 0 0 3px rgba(236, 72, 153, 0.2), 0 0 20px rgba(236, 72, 153, 0.3);
}

body.dark-theme .day-cell.special-event-day[data-special-type="anniversary"] .special-event-label {
    color: #fbcfe8;
    text-shadow: 0 0 10px rgba(251, 207, 232, 0.6);
}

body.dark-theme .day-cell.special-event-day[data-special-type="memorial"] {
    background: linear-gradient(135deg, #312e81 0%, #3730a3 100%);
    border: 3px solid #818cf8;
    box-shadow: 0 0 0 3px rgba(129, 140, 248, 0.2), 0 0 20px rgba(129, 140, 248, 0.3);
}

body.dark-theme .day-cell.special-event-day[data-special-type="memorial"] .special-event-label {
    color: #c7d2fe;
    text-shadow: 0 0 10px rgba(199, 210, 254, 0.6);
}

body.dark-theme .day-cell.special-event-day[data-special-type="custom"] .special-event-label {
    color: #fde68a;
    text-shadow: 0 0 10px rgba(253, 230, 138, 0.6);
}

body.dark-theme .special-event-label {
    color: #fde68a;
    text-shadow: 0 0 8px rgba(253, 230, 138, 0.4);
}

/* Special Days */
body.dark-theme .day-cell.halloween,
body.dark-theme .day-cell.special-day {
    background: linear-gradient(to bottom right, #581c87, #7e22ce);
    border: 4px solid #a855f7;
    box-shadow: 0 0 30px rgba(168, 85, 247, 0.5);
}

body.dark-theme .day-cell.thanksgiving {
    background: linear-gradient(to bottom right, #92400e, #b45309);
    border: 4px solid #f59e0b;
    box-shadow: 0 0 30px rgba(245, 158, 11, 0.5);
}

/* Calendar Footer */
body.dark-theme .calendar-footer {
    background: linear-gradient(to right, #4338ca, #6366f1, #8b5cf6);
    font-family: 'Quicksand', sans-serif;
    box-shadow: 0 -4px 20px rgba(99, 102, 241, 0.3);
}

body.dark-theme .calendar-footer.no-gradient {
    background: #18181b !important;
    border-top: 3px solid #3f3f46;
}

body.dark-theme .calendar-footer.no-gradient p {
    color: #e4e4e7 !important;
    text-shadow: none !important;
}

body.dark-theme .calendar-footer p {
    color: white;
    text-shadow: 0 0 15px rgba(255, 255, 255, 0.5), 2px 2px 4px rgba(0, 0, 0, 0.5);
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
}

/* Modals */
body.dark-theme .modal {
    background: linear-gradient(135deg, #18181b 0%, #27272a 100%);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.9), 0 0 40px rgba(99, 102, 241, 0.2);
    border: 2px solid #3f3f46;
}

body.dark-theme .modal h3 {
    color: #e0e7ff;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    text-shadow: 0 0 10px rgba(167, 139, 250, 0.3);
}

body.dark-theme .modal-date-display {
    background: #27272a;
    color: #a1a1aa;
    border: 1px solid #3f3f46;
}

body.dark-theme .form-group label {
    color: #e4e4e7;
}

body.dark-theme .form-group input,
body.dark-theme .form-group select {
    background: #27272a;
    color: #e4e4e7;
    border-color: #52525b;
}

body.dark-theme .form-group input:focus,
body.dark-theme .form-group select:focus {
    border-color: #8b5cf6;
    box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.2);
}

body.dark-theme .form-group input:hover,
body.dark-theme .form-group select:hover {
    border-color: #71717a;
}

body.dark-theme .form-group select option {
    background: #18181b;
    color: white;
}

body.dark-theme .time-error {
    background: #7f1d1d;
    color: #fca5a5;
    border-left-color: #dc2626;
}

body.dark-theme .modal-save {
    background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
    box-shadow: 0 4px 15px rgba(99, 102, 241, 0.3);
}

body.dark-theme .modal-save:hover {
    background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
    box-shadow: 0 6px 20px rgba(99, 102, 241, 0.5);
}

body.dark-theme .modal-cancel {
    background: #3f3f46;
    color: #e4e4e7;
}

body.dark-theme .modal-cancel:hover {
    background: #52525b;
}

body.dark-theme .modal-delete {
    background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
}

body.dark-theme .modal-delete:hover {
    background: linear-gradient(135deg, #b91c1c 0%, #991b1b 100%);
}

body.dark-theme .modal-reset {
    background: linear-gradient(135deg, #d97706 0%, #b45309 100%);
}

body.dark-theme .modal-reset:hover {
    background: linear-gradient(135deg, #b45309 0%, #92400e 100%);
}

body.dark-theme .toggle-label {
    background: #27272a;
    border-color: #3f3f46;
}

body.dark-theme .toggle-label:hover {
    border-color: #8b5cf6;
    box-shadow: 0 2px 8px rgba(139, 92, 246, 0.2);
}

body.dark-theme .toggle-label span:first-child {
    font-family: 'Quicksand', sans-serif;
    color: #e4e4e7;
}

body.dark-theme .toggle-switch {
    background: #52525b;
}

body.dark-theme .toggle-label input[type="checkbox"]:checked + .toggle-switch {
    background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
    box-shadow: 0 0 10px rgba(139, 92, 246, 0.5);
}

body.dark-theme .settings-section {
    border-bottom-color: #3f3f46;
}

body.dark-theme .settings-section h4 {
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    color: #e0e7ff;
}

/* The collapsible section headers are light by default; the light title
   above needs a dark bar */
body.dark-theme .settings-section-header {
    background: #27272a;
}

body.dark-theme .settings-section-header:hover {
    background: #3f3f46;
}

body.dark-theme .setting-item label {
    color: #e4e4e7;
}

body.dark-theme .setting-item select {
    background: #27272a;
    color: #e4e4e7;
    border-color: #52525b;
}

body.dark-theme .setting-item select:focus {
    border-color: #8b5cf6;
}

body.dark-theme .no-special-events {
    color: #71717a;
}

body.dark-theme .special-event-item {
    background: #27272a;
    border: 1px solid #3f3f46;
}

body.dark-theme .special-event-details {
    color: #d4d4d8;
}

body.dark-theme .special-event-details strong {
    color: #e4e4e7;
}

body.dark-theme .add-special-event-btn {
    background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
    box-shadow: 0 4px 15px rgba(99, 102, 241, 0.3);
}

body.dark-theme .add-special-event-btn:hover {
    background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
    box-shadow: 0 6px 20px rgba(99, 102, 241, 0.5);
}

body.dark-theme .create-theme-btn {
    background: #3f3f46;
    color: #a1a1aa;
}

body.dark-theme .create-theme-btn:hover:not(:disabled) {
    background: #52525b;
}

body.dark-theme .edit-special-event {
    background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
}

body.dark-theme .edit-special-event:hover {
    background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
}

body.dark-theme .delete-special-event {
    background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
}

body.dark-theme .delete-special-event:hover {
    background: linear-gradient(135deg, #b91c1c 0%, #991b1b 100%);
}

body.dark-theme .event-list-modal-overlay {
    background: rgba(0, 0, 0, 0.8);
}

body.dark-theme .event-list-modal-content {
    background: linear-gradient(135deg, #18181b 0%, #27272a 100%);
    border: 2px solid #3f3f46;
}

body.dark-theme .modal-close-btn {
    background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
}

body.dark-theme .modal-close-btn:hover {
    background: linear-gradient(135deg, #b91c1c 0%, #991b1b 100%);
    box-shadow: 0 4px 15px rgba(220, 38, 38, 0.5);
}

/* ===================================
   3. PASTEL THEME - Soft & Gentle
   =================================== */
body.pastel-theme {
    background: linear-gradient(to bottom, #ffeef8, #e0f4ff, #fff5e6);
}

/* Settings Cog */
body.pastel-theme .settings-cog {
    background: linear-gradient(135deg, #ffc4e1 0%, #ffb5d5 100%);
}

body.pastel-theme .settings-cog:hover {
    background: linear-gradient(135deg, #ffb5d5 0%, #ffa6c9 100%);
}

/* App Header */
body.pastel-theme .app-title {
    font-family: 'Quicksand', sans-serif;
    color: #ff9ec7;
    text-shadow: 2px 2px 4px rgba(255, 158, 199, 0.3);
    font-weight: 700;
    letter-spacing: 1.5px;
}

body.pastel-theme .app-subtitle {
    font-family: 'Quicksand', sans-serif;
    color: #ffb5d5;
    text-shadow: 1px 1px 2px rgba(255, 181, 213, 0.3);
    font-weight: 600;
    letter-spacing: 1px;
}

/* Current Date & Time */
body.pastel-theme .current-date-display {
    background: linear-gradient(135deg, #b5e7ff 0%, #a0d9ff 100%);
    box-shadow: 0 4px 15px rgba(181, 231, 255, 0.4);
    color: #2c5f7a;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    letter-spacing: 0.5px;
}

body.pastel-theme .current-date-display.clickable:hover {
    box-shadow: 0 6px 20px rgba(181, 231, 255, 0.6);
}

body.pastel-theme .current-time-display {
    background: linear-gradient(135deg, #ffd4a3 0%, #ffc78f 100%);
    box-shadow: 0 4px 15px rgba(255, 212, 163, 0.4);
    color: #8b5a2b;
    font-family: 'Quicksand', sans-serif;
    font-weight: 800;
    letter-spacing: 1.5px;
    animation: glow-pastel 2s ease-in-out infinite;
}

@keyframes glow-pastel {
    0%, 100% { box-shadow: 0 4px 15px rgba(255, 212, 163, 0.4); }
    50% { box-shadow: 0 4px 25px rgba(255, 212, 163, 0.7); }
}

/* Weather Display */
body.pastel-theme .weather-display {
    background: linear-gradient(135deg, #b5e7ff 0%, #a0d9ff 100%);
    box-shadow: 0 4px 15px rgba(181, 231, 255, 0.4);
    color: #2c5f7a;
    animation: glow-pastel 2s ease-in-out infinite;
}

/* Events Panel */
body.pastel-theme .events-panel {
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 10px 30px rgba(255, 182, 193, 0.2);
    border: 2px solid #ffd4e5;
}

body.pastel-theme .events-header h2 {
    color: #d97ba6;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    letter-spacing: 0.5px;
}

body.pastel-theme .events-header p {
    color: #e89fc0;
    font-family: 'Quicksand', sans-serif;
    font-weight: 600;
}

body.pastel-theme .holidays-title {
    color: #ff9ec7;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
}

body.pastel-theme .holidays-list {
    background: linear-gradient(135deg, #fff9e6 0%, #ffecb3 100%);
}

body.pastel-theme .holiday-item {
    background: rgba(255, 255, 255, 0.8);
    color: #8b7355;
}

body.pastel-theme .event-item {
    background: #fef7ff;
    border-color: #f5d0fe;
}

body.pastel-theme .event-item:hover {
    background: #fae8ff;
}

body.pastel-theme .event-number {
    background: #c4b5fd;
}

body.pastel-theme .event-text {
    font-family: 'Quicksand', sans-serif;
    font-weight: 500;
}

body.pastel-theme .add-event-section button {
    background: #d8b4fe;
    color: #4c1d95; /* white on this lilac was ~1.8:1 */
    font-family: 'Quicksand', sans-serif;
    font-weight: 600;
}

body.pastel-theme .add-event-section button:hover {
    background: #c084fc;
}

/* Calendar Container */
body.pastel-theme .calendar-container {
    background: #fffaf5;
    border-color: #ffc4e1;
    box-shadow: 0 25px 50px rgba(255, 196, 225, 0.3);
}

/* Calendar Header */
body.pastel-theme .calendar-header {
    background: linear-gradient(to right, #ffc4e1, #b5e7ff);
    font-family: 'Quicksand', sans-serif;
}

body.pastel-theme .calendar-header.no-gradient {
    background: #fffaf8 !important;
    border-bottom: 3px solid #ffd4e5;
}

body.pastel-theme .calendar-header.no-gradient .month-year-selector select {
    background: #fff0f6;
    color: #d97ba6;
    border-color: #ffc4e1;
}

body.pastel-theme .calendar-header.no-gradient .nav-arrow {
    background: #fff0f6;
    color: #d97ba6;
    border-color: #ffc4e1;
}

body.pastel-theme .calendar-header.no-gradient .nav-arrow:hover {
    background: #ffe6f0;
}

body.pastel-theme .header-decorations {
    opacity: 0.3;
}

body.pastel-theme .nav-arrow {
    background: rgba(255, 255, 255, 0.5);
}

body.pastel-theme .nav-arrow:hover {
    background: rgba(255, 255, 255, 0.7);
}

body.pastel-theme .month-year-selector select {
    background: rgba(255, 255, 255, 0.4);
    color: white;
    border-color: white;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    letter-spacing: 0.5px;
}

body.pastel-theme .month-year-selector select:hover {
    background: rgba(255, 255, 255, 0.6);
}

/* Day Headers */
body.pastel-theme .day-header {
    background: #ffe6f0;
    color: #d97ba6;
    border-color: #ffc4e1;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
}

/* Day Cells */
body.pastel-theme .day-cell.filled {
    background: linear-gradient(to bottom right, #fff9f5, #fffaeb);
    border-color: #ffd4a3;
}

body.pastel-theme .day-cell.filled:hover {
    box-shadow: 0 10px 20px rgba(255, 196, 225, 0.3);
}

body.pastel-theme .day-cell.today {
    background: linear-gradient(to bottom right, #e6f7ff, #cceeff);
    border-color: #91d5ff;
    box-shadow: 0 0 0 2px rgba(145, 213, 255, 0.3);
}

body.pastel-theme .day-cell.today .day-number {
    color: #2c5f7a;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
}

body.pastel-theme .day-cell.has-events {
    background: linear-gradient(to bottom right, #e6fff5, #ccffe6);
    border-color: #95de64;
    box-shadow: 0 0 0 2px rgba(149, 222, 100, 0.3);
}

body.pastel-theme .day-cell.has-events::after {
    color: #52c41a;
}

body.pastel-theme .day-cell.today.has-events {
    background: linear-gradient(135deg, #e6f7ff 0%, #e6fff5 100%);
    border-color: #91d5ff;
}

body.pastel-theme .day-number {
    color: #8b7765;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
}

body.pastel-theme .today-label {
    color: #2c5f7a;
}

body.pastel-theme .day-events-list {
    color: #52c41a;
}

body.pastel-theme .holiday-label {
    color: #d97ba6;
}

/* Special Event Days */
body.pastel-theme .day-cell.special-event-day {
    background: linear-gradient(135deg, #fff9e6 0%, #ffecb3 100%);
    border-color: #ffd666;
    box-shadow: 0 0 0 2px rgba(255, 214, 102, 0.3);
}

body.pastel-theme .day-cell.special-event-day[data-special-type="birthday"] {
    background: linear-gradient(135deg, #fff0f6 0%, #ffe6f0 100%);
    border-color: #ffadd2;
    box-shadow: 0 0 0 2px rgba(255, 173, 210, 0.3);
}

body.pastel-theme .day-cell.special-event-day[data-special-type="anniversary"] {
    background: linear-gradient(135deg, #fff0f6 0%, #ffe6eb 100%);
    border-color: #ffb8c8;
    box-shadow: 0 0 0 2px rgba(255, 184, 200, 0.3);
}

body.pastel-theme .day-cell.special-event-day[data-special-type="memorial"] {
    background: linear-gradient(135deg, #f0f5ff 0%, #e6efff 100%);
    border-color: #adc6ff;
    box-shadow: 0 0 0 2px rgba(173, 198, 255, 0.3);
}

body.pastel-theme .special-event-label {
    color: #d97ba6;
}

/* Special Days */
body.pastel-theme .day-cell.halloween,
body.pastel-theme .day-cell.special-day {
    background: linear-gradient(to bottom right, #e0b3ff, #ffc4e1);
    border-color: #d8b4fe;
}

body.pastel-theme .day-cell.thanksgiving {
    background: linear-gradient(to bottom right, #ffd8a8, #ffe4b3);
    border-color: #ffc069;
}

/* Calendar Footer */
body.pastel-theme .calendar-footer {
    background: linear-gradient(to right, #ffc4e1, #b5e7ff);
    font-family: 'Quicksand', sans-serif;
}

body.pastel-theme .calendar-footer.no-gradient {
    background: #fffaf8 !important;
    border-top: 3px solid #ffd4e5;
}

body.pastel-theme .calendar-footer.no-gradient p {
    color: #d97ba6 !important;
    text-shadow: none !important;
}

body.pastel-theme .calendar-footer p {
    color: white;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    letter-spacing: 0.5px;
}

/* Modals */
body.pastel-theme .modal {
    background: #fffaf8;
    box-shadow: 0 20px 60px rgba(255, 196, 225, 0.3);
    border: 2px solid #ffd4e5;
}

body.pastel-theme .modal h3 {
    color: #d97ba6;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    letter-spacing: 0.5px;
}

body.pastel-theme .modal-save {
    background: #d8b4fe;
    color: #4c1d95;
}

body.pastel-theme .modal-save:hover {
    background: #c084fc;
}

body.pastel-theme .modal-delete {
    background: #ffc4e1;
}

body.pastel-theme .modal-delete:hover {
    background: #ffb5d5;
}

body.pastel-theme .toggle-label {
    background: #fffaf8;
    border-color: #ffd4e5;
}

body.pastel-theme .toggle-label:hover {
    border-color: #ffc4e1;
    box-shadow: 0 2px 8px rgba(255, 196, 225, 0.2);
}

body.pastel-theme .toggle-label span:first-child {
    font-family: 'Quicksand', sans-serif;
    font-weight: 500;
}

body.pastel-theme .settings-section h4 {
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
}

body.pastel-theme .add-special-event-btn {
    background: #d8b4fe;
    color: #4c1d95;
}

body.pastel-theme .add-special-event-btn:hover {
    background: #c084fc;
}

body.pastel-theme .edit-special-event {
    background: #c4b5fd;
}

body.pastel-theme .edit-special-event:hover {
    background: #a78bfa;
}

body.pastel-theme .delete-special-event {
    background: #ffc4e1;
}

body.pastel-theme .delete-special-event:hover {
    background: #ffb5d5;
}

body.pastel-theme .event-list-modal-overlay {
    background: rgba(255, 182, 193, 0.3);
}

body.pastel-theme .event-list-modal-content {
    background: rgba(255, 250, 248, 0.98);
    border: 2px solid #ffd4e5;
}

body.pastel-theme .modal-close-btn {
    background: #ffc4e1;
}

body.pastel-theme .modal-close-btn:hover {
    background: #ffb5d5;
}