/* 
   Indonesian Holiday Themes for MIKHMON
   Bright & Modern Light Mode + Vivid Ambient Dark Mode
*/

/* --- THEME VARIANT ROOT VARIABLES --- */

/* 0. DEFAULT FALLBACK - Premium Indigo & Mint */
body.holiday-default {
  --holiday-bg-color: #f9fafc;
  --holiday-primary: #4f46e5;
  --holiday-primary-rgb: 79, 70, 229;
  --holiday-accent: #10b981;
  --holiday-accent-rgb: 16, 185, 129;
  --holiday-sidebar-bg: #1e1b4b;
  --holiday-sidebar-hover: #312e81;
  --holiday-card-bg: #ffffff;
  --holiday-card-border: rgba(79, 70, 229, 0.15);
  --holiday-text-color: #0f172a;
  --holiday-table-bg: #ffffff;
  --holiday-table-head-bg: rgba(79, 70, 229, 0.06);
  --holiday-table-text: #0f172a;
  --holiday-input-bg: #ffffff;
  --holiday-input-text: #0f172a;
  --holiday-input-border: rgba(79, 70, 229, 0.45);
  --holiday-shadow: 0 8px 32px rgba(79, 70, 229, 0.08);
  --holiday-glow: 0 0 20px rgba(16, 185, 129, 0.25);
  background-image: linear-gradient(135deg, #f9fafc 0%, #f7f9fc 50%, #fafafd 100%);
}
body.holiday-default.wrapper, body.holiday-default .wrapper {
  background: linear-gradient(135deg, #f9fafc 0%, #f7f9fc 50%, #fafafd 100%) !important;
}

/* 1. IDUL FITRI (Lebaran) - Emerald Green & Warm Gold */
body.holiday-idulfitri {
  --holiday-bg-color: #f7fcf9;
  --holiday-primary: #059669;
  --holiday-primary-rgb: 5, 150, 105;
  --holiday-accent: #fbbf24;
  --holiday-accent-rgb: 251, 191, 36;
  --holiday-sidebar-bg: #065f46;
  --holiday-sidebar-hover: #047857;
  --holiday-card-bg: #ffffff;
  --holiday-card-border: rgba(5, 150, 105, 0.18);
  --holiday-text-color: #0f172a;
  --holiday-table-bg: #ffffff;
  --holiday-table-head-bg: rgba(5, 150, 105, 0.08);
  --holiday-table-text: #0f172a;
  --holiday-input-bg: #ffffff;
  --holiday-input-text: #0f172a;
  --holiday-input-border: rgba(5, 150, 105, 0.45);
  --holiday-shadow: 0 8px 32px rgba(5, 150, 105, 0.12);
  --holiday-glow: 0 0 20px rgba(251, 191, 36, 0.35);
  background-image: linear-gradient(135deg, #f7fcf9 0%, #f2faf5 50%, #fbfbf4 100%);
}
body.holiday-idulfitri.wrapper, body.holiday-idulfitri .wrapper {
  background: linear-gradient(135deg, #f7fcf9 0%, #f2faf5 50%, #fbfbf4 100%) !important;
}

/* 2. KEMERDEKAAN (17 Agustus) - Vivid Red & Pure White */
body.holiday-kemerdekaan {
  --holiday-bg-color: #fdf8f9;
  --holiday-primary: #e11d48;
  --holiday-primary-rgb: 225, 29, 72;
  --holiday-accent: #fb923c;
  --holiday-accent-rgb: 251, 146, 60;
  --holiday-sidebar-bg: #be123c;
  --holiday-sidebar-hover: #e11d48;
  --holiday-card-bg: #ffffff;
  --holiday-card-border: rgba(225, 29, 72, 0.18);
  --holiday-text-color: #0f172a;
  --holiday-table-bg: #ffffff;
  --holiday-table-head-bg: rgba(225, 29, 72, 0.07);
  --holiday-table-text: #0f172a;
  --holiday-input-bg: #ffffff;
  --holiday-input-text: #0f172a;
  --holiday-input-border: rgba(225, 29, 72, 0.45);
  --holiday-shadow: 0 8px 32px rgba(225, 29, 72, 0.12);
  --holiday-glow: 0 0 20px rgba(251, 146, 60, 0.3);
  background-image: linear-gradient(135deg, #fdf8f9 0%, #fbf4f5 50%, #fdfaf2 100%);
}
body.holiday-kemerdekaan.wrapper, body.holiday-kemerdekaan .wrapper {
  background: linear-gradient(135deg, #fdf8f9 0%, #fbf4f5 50%, #fdfaf2 100%) !important;
}

/* 3. IMLEK - Crimson Red & Bright Gold */
body.holiday-imlek {
  --holiday-bg-color: #fdf8f8;
  --holiday-primary: #dc2626;
  --holiday-primary-rgb: 220, 38, 38;
  --holiday-accent: #f59e0b;
  --holiday-accent-rgb: 245, 158, 11;
  --holiday-sidebar-bg: #b91c1c;
  --holiday-sidebar-hover: #dc2626;
  --holiday-card-bg: #ffffff;
  --holiday-card-border: rgba(220, 38, 38, 0.18);
  --holiday-text-color: #0f172a;
  --holiday-table-bg: #ffffff;
  --holiday-table-head-bg: rgba(220, 38, 38, 0.07);
  --holiday-table-text: #0f172a;
  --holiday-input-bg: #ffffff;
  --holiday-input-text: #0f172a;
  --holiday-input-border: rgba(220, 38, 38, 0.45);
  --holiday-shadow: 0 8px 32px rgba(220, 38, 38, 0.12);
  --holiday-glow: 0 0 20px rgba(245, 158, 11, 0.35);
  background-image: linear-gradient(135deg, #fdf8f8 0%, #faf2f2 40%, #fdfaf3 100%);
}
body.holiday-imlek.wrapper, body.holiday-imlek .wrapper {
  background: linear-gradient(135deg, #fdf8f8 0%, #faf2f2 40%, #fdfaf3 100%) !important;
}

/* 4. NATAL - Fresh Green & Cherry Red */
body.holiday-natal {
  --holiday-bg-color: #f8fcf9;
  --holiday-primary: #16a34a;
  --holiday-primary-rgb: 22, 163, 74;
  --holiday-accent: #ef4444;
  --holiday-accent-rgb: 239, 68, 68;
  --holiday-sidebar-bg: #15803d;
  --holiday-sidebar-hover: #16a34a;
  --holiday-card-bg: #ffffff;
  --holiday-card-border: rgba(22, 163, 74, 0.18);
  --holiday-text-color: #0f172a;
  --holiday-table-bg: #ffffff;
  --holiday-table-head-bg: rgba(22, 163, 74, 0.07);
  --holiday-table-text: #0f172a;
  --holiday-input-bg: #ffffff;
  --holiday-input-text: #0f172a;
  --holiday-input-border: rgba(22, 163, 74, 0.45);
  --holiday-shadow: 0 8px 32px rgba(22, 163, 74, 0.12);
  --holiday-glow: 0 0 20px rgba(239, 68, 68, 0.25);
  background-image: linear-gradient(135deg, #f8fcf9 0%, #f3faf6 50%, #fdf8f8 100%);
}
body.holiday-natal.wrapper, body.holiday-natal .wrapper {
  background: linear-gradient(135deg, #f8fcf9 0%, #f3faf6 50%, #fdf8f8 100%) !important;
}

/* 5. NYEPI - Soft Lavender & Violet */
body.holiday-nyepi {
  --holiday-bg-color: #fafafd;
  --holiday-primary: #7c3aed;
  --holiday-primary-rgb: 124, 58, 237;
  --holiday-accent: #a78bfa;
  --holiday-accent-rgb: 167, 139, 250;
  --holiday-sidebar-bg: #6d28d9;
  --holiday-sidebar-hover: #7c3aed;
  --holiday-card-bg: #ffffff;
  --holiday-card-border: rgba(124, 58, 237, 0.18);
  --holiday-text-color: #0f172a;
  --holiday-table-bg: #ffffff;
  --holiday-table-head-bg: rgba(124, 58, 237, 0.06);
  --holiday-table-text: #0f172a;
  --holiday-input-bg: #ffffff;
  --holiday-input-text: #0f172a;
  --holiday-input-border: rgba(124, 58, 237, 0.45);
  --holiday-shadow: 0 8px 32px rgba(124, 58, 237, 0.12);
  --holiday-glow: 0 0 20px rgba(167, 139, 250, 0.35);
  background-image: linear-gradient(135deg, #fafafd 0%, #f7f6fc 50%, #f7f8fd 100%);
}
body.holiday-nyepi.wrapper, body.holiday-nyepi .wrapper {
  background: linear-gradient(135deg, #fafafd 0%, #f7f6fc 50%, #f7f8fd 100%) !important;
}

/* 6. WAISAK - Warm Amber & Lotus Pink */
body.holiday-waisak {
  --holiday-bg-color: #fdfaf5;
  --holiday-primary: #d97706;
  --holiday-primary-rgb: 217, 119, 6;
  --holiday-accent: #ec4899;
  --holiday-accent-rgb: 236, 72, 153;
  --holiday-sidebar-bg: #b45309;
  --holiday-sidebar-hover: #d97706;
  --holiday-card-bg: #ffffff;
  --holiday-card-border: rgba(217, 119, 6, 0.18);
  --holiday-text-color: #0f172a;
  --holiday-table-bg: #ffffff;
  --holiday-table-head-bg: rgba(217, 119, 6, 0.07);
  --holiday-table-text: #0f172a;
  --holiday-input-bg: #ffffff;
  --holiday-input-text: #0f172a;
  --holiday-input-border: rgba(217, 119, 6, 0.45);
  --holiday-shadow: 0 8px 32px rgba(217, 119, 6, 0.12);
  --holiday-glow: 0 0 20px rgba(236, 72, 153, 0.3);
  background-image: linear-gradient(135deg, #fdfaf5 0%, #fbf7ec 50%, #fcf8fb 100%);
}
body.holiday-waisak.wrapper, body.holiday-waisak .wrapper {
  background: linear-gradient(135deg, #fdfaf5 0%, #fbf7ec 50%, #fcf8fb 100%) !important;
}


/* --- DARK HOLIDAY MODE VARIANT OVERRIDES --- */

body.holiday-active.dm-dark,
body.dm-dark.holiday-active {
  --holiday-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
}

/* 0. DEFAULT DARK FALLBACK */
body.holiday-default.dm-dark,
body.holiday-default.dm-dark.wrapper, 
body.holiday-default.dm-dark .wrapper {
  --holiday-bg-color: #0b1329;
  --holiday-card-bg: rgba(15, 23, 42, 0.85);
  --holiday-card-border: rgba(99, 102, 241, 0.3);
  --holiday-text-color: #f8fafc;
  --holiday-table-bg: rgba(15, 23, 42, 0.7);
  --holiday-table-head-bg: rgba(79, 70, 229, 0.25);
  --holiday-table-text: #f8fafc;
  --holiday-input-bg: #1e293b;
  --holiday-input-text: #f8fafc;
  --holiday-input-border: rgba(99, 102, 241, 0.55);
  background-image: linear-gradient(135deg, #0b1329 0%, #1e1b4b 50%, #0a0f1d 100%) !important;
}

/* 1. IDUL FITRI DARK */
body.holiday-idulfitri.dm-dark,
body.holiday-idulfitri.dm-dark.wrapper, 
body.holiday-idulfitri.dm-dark .wrapper {
  --holiday-bg-color: #022c22;
  --holiday-card-bg: rgba(6, 78, 59, 0.65);
  --holiday-card-border: rgba(16, 185, 129, 0.35);
  --holiday-text-color: #f0fdf4;
  --holiday-sidebar-bg: #022c22;
  --holiday-sidebar-hover: #064e3b;
  --holiday-table-bg: rgba(6, 78, 59, 0.5);
  --holiday-table-head-bg: rgba(16, 185, 129, 0.25);
  --holiday-table-text: #f0fdf4;
  --holiday-input-bg: #064e3b;
  --holiday-input-text: #ffffff;
  --holiday-input-border: rgba(16, 185, 129, 0.55);
  background-image: linear-gradient(135deg, #022c22 0%, #064e3b 50%, #042f2e 100%) !important;
}

/* 2. KEMERDEKAAN DARK */
body.holiday-kemerdekaan.dm-dark,
body.holiday-kemerdekaan.dm-dark.wrapper, 
body.holiday-kemerdekaan.dm-dark .wrapper {
  --holiday-bg-color: #1f0910;
  --holiday-card-bg: rgba(63, 14, 27, 0.65);
  --holiday-card-border: rgba(225, 29, 72, 0.35);
  --holiday-text-color: #fff1f2;
  --holiday-sidebar-bg: #1f0910;
  --holiday-sidebar-hover: #3f0e1b;
  --holiday-table-bg: rgba(63, 14, 27, 0.5);
  --holiday-table-head-bg: rgba(225, 29, 72, 0.25);
  --holiday-table-text: #fff1f2;
  --holiday-input-bg: #3f0e1b;
  --holiday-input-text: #ffffff;
  --holiday-input-border: rgba(225, 29, 72, 0.55);
  background-image: linear-gradient(135deg, #1f0910 0%, #3f0e1b 50%, #111827 100%) !important;
}

/* 3. IMLEK DARK */
body.holiday-imlek.dm-dark,
body.holiday-imlek.dm-dark.wrapper, 
body.holiday-imlek.dm-dark .wrapper {
  --holiday-bg-color: #1c0a0a;
  --holiday-card-bg: rgba(59, 17, 17, 0.65);
  --holiday-card-border: rgba(220, 38, 38, 0.35);
  --holiday-text-color: #fef2f2;
  --holiday-sidebar-bg: #1c0a0a;
  --holiday-sidebar-hover: #3b1111;
  --holiday-table-bg: rgba(59, 17, 17, 0.5);
  --holiday-table-head-bg: rgba(220, 38, 38, 0.25);
  --holiday-table-text: #fef2f2;
  --holiday-input-bg: #3b1111;
  --holiday-input-text: #ffffff;
  --holiday-input-border: rgba(239, 68, 68, 0.55);
  background-image: linear-gradient(135deg, #1c0a0a 0%, #3b1111 50%, #111827 100%) !important;
}

/* 4. NATAL DARK */
body.holiday-natal.dm-dark,
body.holiday-natal.dm-dark.wrapper, 
body.holiday-natal.dm-dark .wrapper {
  --holiday-bg-color: #032814;
  --holiday-card-bg: rgba(6, 78, 40, 0.65);
  --holiday-card-border: rgba(22, 163, 74, 0.35);
  --holiday-text-color: #f0fdf4;
  --holiday-sidebar-bg: #032814;
  --holiday-sidebar-hover: #064e28;
  --holiday-table-bg: rgba(6, 78, 40, 0.5);
  --holiday-table-head-bg: rgba(22, 163, 74, 0.25);
  --holiday-table-text: #f0fdf4;
  --holiday-input-bg: #064e28;
  --holiday-input-text: #ffffff;
  --holiday-input-border: rgba(34, 197, 94, 0.55);
  background-image: linear-gradient(135deg, #032814 0%, #064e28 50%, #111827 100%) !important;
}

/* 5. NYEPI DARK */
body.holiday-nyepi.dm-dark,
body.holiday-nyepi.dm-dark.wrapper, 
body.holiday-nyepi.dm-dark .wrapper {
  --holiday-bg-color: #0f0e26;
  --holiday-card-bg: rgba(30, 27, 75, 0.7);
  --holiday-card-border: rgba(124, 58, 237, 0.35);
  --holiday-text-color: #f5f3ff;
  --holiday-sidebar-bg: #0f0e26;
  --holiday-sidebar-hover: #1e1b4b;
  --holiday-table-bg: rgba(30, 27, 75, 0.5);
  --holiday-table-head-bg: rgba(124, 58, 237, 0.25);
  --holiday-table-text: #f5f3ff;
  --holiday-input-bg: #1e1b4b;
  --holiday-input-text: #ffffff;
  --holiday-input-border: rgba(167, 139, 250, 0.55);
  background-image: linear-gradient(135deg, #0f0e26 0%, #1e1b4b 50%, #090915 100%) !important;
}

/* 6. WAISAK DARK */
body.holiday-waisak.dm-dark,
body.holiday-waisak.dm-dark.wrapper, 
body.holiday-waisak.dm-dark .wrapper {
  --holiday-bg-color: #1f1406;
  --holiday-card-bg: rgba(59, 36, 11, 0.7);
  --holiday-card-border: rgba(217, 119, 6, 0.35);
  --holiday-text-color: #fffbeb;
  --holiday-sidebar-bg: #1f1406;
  --holiday-sidebar-hover: #3b240b;
  --holiday-table-bg: rgba(59, 36, 11, 0.5);
  --holiday-table-head-bg: rgba(217, 119, 6, 0.25);
  --holiday-table-text: #fffbeb;
  --holiday-input-bg: #3b240b;
  --holiday-input-text: #ffffff;
  --holiday-input-border: rgba(245, 158, 11, 0.55);
  background-image: linear-gradient(135deg, #1f1406 0%, #3b240b 50%, #0f172a 100%) !important;
}


/* --- GLOBAL STYLE OVERRIDES FOR HOLIDAY ACTIVE --- */

body.holiday-active {
  transition: background 0.5s ease, color 0.5s ease;
  color: var(--holiday-text-color) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Scope text colors to main body content safely */
body.holiday-active #main,
body.holiday-active .main-container,
body.holiday-active .card-body,
body.holiday-active .card-footer,
body.holiday-active .box-body,
body.holiday-active .box-footer {
  color: var(--holiday-text-color);
}

body.holiday-active #main h1:not(.bg-*):not(.small-box *),
body.holiday-active #main h2:not(.bg-*):not(.small-box *),
body.holiday-active #main h3:not(.bg-*):not(.small-box *),
body.holiday-active #main h4:not(.bg-*):not(.small-box *),
body.holiday-active #main h5:not(.bg-*):not(.small-box *),
body.holiday-active #main h6:not(.bg-*):not(.small-box *),
body.holiday-active .card-body h1:not(.bg-*),
body.holiday-active .card-body h2:not(.bg-*),
body.holiday-active .card-body h3:not(.bg-*),
body.holiday-active .card-body h4:not(.bg-*),
body.holiday-active .card-body h5:not(.bg-*),
body.holiday-active .card-body h6:not(.bg-*),
body.holiday-active .card-body p:not(.bg-*):not(.badge),
body.holiday-active .card-body label:not(.badge),
body.holiday-active .card-body td:not(.badge),
body.holiday-active .card-body th:not(.badge) {
  color: var(--holiday-text-color);
}

/* Settings & Form labels contrast */
body.holiday-active .card-body table td:not(.badge),
body.holiday-active .card-body table th:not(.badge),
body.holiday-active .card-body table td span:not(.badge):not(.btn),
body.holiday-active .card-body table td label:not(.badge),
body.holiday-active .card-header h3:not(.badge),
body.holiday-active .card-title,
body.holiday-active .row label,
body.holiday-active .row p:not(.badge) {
  color: var(--holiday-text-color);
}

/* Links contrast */
body.holiday-active #main a:not(.btn):not(.menu):not(.dropdown-item):not(.badge):not(.small-box-footer):not(.hu-hdr-btn):not(.hu-btn):not(.resume-btn):not(.paginate_button),
body.holiday-active .card-body a:not(.btn):not(.menu):not(.dropdown-item):not(.badge):not(.small-box-footer):not(.hu-hdr-btn):not(.hu-btn):not(.resume-btn):not(.paginate_button) {
  color: var(--holiday-primary) !important;
  text-decoration: none;
}
body.holiday-active #main a:not(.btn):not(.menu):not(.dropdown-item):not(.badge):not(.small-box-footer):not(.hu-hdr-btn):not(.hu-btn):not(.resume-btn):not(.paginate_button):hover,
body.holiday-active .card-body a:not(.btn):not(.menu):not(.dropdown-item):not(.badge):not(.small-box-footer):not(.hu-hdr-btn):not(.hu-btn):not(.resume-btn):not(.paginate_button):hover {
  color: var(--holiday-accent) !important;
  text-decoration: underline;
}

body.holiday-active.dm-dark #main a:not(.btn):not(.menu):not(.dropdown-item):not(.badge):not(.small-box-footer):not(.hu-hdr-btn):not(.hu-btn):not(.resume-btn):not(.paginate_button),
body.holiday-active.dm-dark .card-body a:not(.btn):not(.menu):not(.dropdown-item):not(.badge):not(.small-box-footer):not(.hu-hdr-btn):not(.hu-btn):not(.resume-btn):not(.paginate_button) {
  color: #60a5fa !important;
}
body.holiday-active.dm-dark #main a:not(.btn):not(.menu):not(.dropdown-item):not(.badge):not(.small-box-footer):not(.hu-hdr-btn):not(.hu-btn):not(.resume-btn):not(.paginate_button):hover,
body.holiday-active.dm-dark .card-body a:not(.btn):not(.menu):not(.dropdown-item):not(.badge):not(.small-box-footer):not(.hu-hdr-btn):not(.hu-btn):not(.resume-btn):not(.paginate_button):hover {
  color: #93c5fd !important;
}

/* Input group addon badges (e.g. "Sec", "Min", "MB") */
body.holiday-active span.group-item,
body.holiday-active div.group-item:not(input):not(select) {
  color: var(--holiday-text-color) !important;
  background: rgba(var(--holiday-primary-rgb), 0.12) !important;
  border: 1px solid rgba(var(--holiday-primary-rgb), 0.25) !important;
}

/* Navbar: preserve crisp white text & icons */
body.holiday-active #navbar,
body.holiday-active .navbar {
  background: linear-gradient(135deg, var(--holiday-primary) 0%, rgba(var(--holiday-primary-rgb), 0.9) 100%) !important;
  border-bottom: 2px solid var(--holiday-accent) !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2) !important;
}

body.holiday-active #navbar #brand,
body.holiday-active #navbar .brand-name,
body.holiday-active #navbar .cpage-title,
body.holiday-active #navbar #logout,
body.holiday-active #navbar button,
body.holiday-active #navbar span,
body.holiday-active #navbar a,
body.holiday-active #navbar i {
  color: #ffffff !important;
}

body.holiday-active #navbar select.ses,
body.holiday-active #navbar select.slang {
  background: rgba(255, 255, 255, 0.18) !important;
  border: 1px solid rgba(255, 255, 255, 0.35) !important;
  color: #ffffff !important;
  border-radius: 6px !important;
}
body.holiday-active #navbar select.ses option,
body.holiday-active #navbar select.slang option {
  background-color: var(--holiday-input-bg, #ffffff) !important;
  color: var(--holiday-input-text, #0f172a) !important;
}

/* Sidenav: sidebar styling */
body.holiday-active #sidenav,
body.holiday-active .sidenav {
  background: var(--holiday-sidebar-bg) !important;
  border-right: 1px solid rgba(var(--holiday-accent-rgb), 0.25) !important;
  box-shadow: 4px 0 18px rgba(0, 0, 0, 0.15) !important;
}

body.holiday-active #sidenav a.menu,
body.holiday-active #sidenav .dropdown-btn {
  color: rgba(255, 255, 255, 0.82) !important;
  border-left: 3px solid transparent;
  transition: all 0.25s ease !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

body.holiday-active #sidenav a.menu:hover,
body.holiday-active #sidenav .dropdown-btn:hover {
  background: var(--holiday-sidebar-hover) !important;
  color: #ffffff !important;
  border-left: 3px solid var(--holiday-accent) !important;
  padding-left: 15px !important;
}

body.holiday-active #sidenav a.active,
body.holiday-active #sidenav .dropdown-btn.active {
  background: linear-gradient(90deg, var(--holiday-sidebar-hover) 0%, rgba(var(--holiday-primary-rgb), 0.4) 100%) !important;
  color: var(--holiday-accent) !important;
  border-left: 3px solid var(--holiday-accent) !important;
  font-weight: bold !important;
}

body.holiday-active #sidenav .card-header h3 {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #ffffff !important;
  border-bottom: 1px solid rgba(var(--holiday-accent-rgb), 0.35) !important;
}

/* Cards & Glassmorphism */
body.holiday-active .card,
body.holiday-active .box,
body.holiday-active .traffic-card,
body.holiday-active .reboot-card,
body.holiday-active .income-card,
body.holiday-active .sch-item-card,
body.holiday-active .preset-box,
body.holiday-active .resume-card,
body.holiday-active .resume-kpi-card,
body.holiday-active .resume-chart-box,
body.holiday-active .resume-meta-card,
body.holiday-active .resume-table-box {
  background: var(--holiday-card-bg) !important;
  border: 1px solid var(--holiday-card-border, rgba(var(--holiday-primary-rgb), 0.18)) !important;
  border-radius: 16px !important;
  box-shadow: var(--holiday-shadow) !important;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  color: var(--holiday-text-color) !important;
}

body.holiday-active .card:hover,
body.holiday-active .box:hover,
body.holiday-active .sch-item-card:hover,
body.holiday-active .preset-box:hover,
body.holiday-active .resume-kpi-card:hover {
  box-shadow: 0 15px 35px rgba(var(--holiday-primary-rgb), 0.22) !important;
}

body.holiday-active .card-header,
body.holiday-active .box-header,
body.holiday-active .sch-card-header {
  background: linear-gradient(135deg, rgba(var(--holiday-primary-rgb), 0.12) 0%, rgba(var(--holiday-primary-rgb), 0.03) 100%) !important;
  border-bottom: 1px solid rgba(var(--holiday-primary-rgb), 0.15) !important;
  font-weight: 600 !important;
  color: var(--holiday-text-color) !important;
}
body.holiday-active .card-header h3 a,
body.holiday-active .box-header h3 a {
  color: var(--holiday-primary) !important;
}

/* Report page custom header (Selling Report): keep saturated bg + white text readable */
body.holiday-active .report-card .card-header {
  background: linear-gradient(135deg, var(--holiday-primary) 0%, rgba(var(--holiday-primary-rgb), 0.85) 100%) !important;
  color: #ffffff !important;
}

body.holiday-active .report-card .card-header h3 {
  color: #ffffff !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

body.holiday-active .report-card .card-header h3 i {
  color: var(--holiday-accent) !important;
}

body.holiday-active .report-card .report-badge {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.25) !important;
  border-color: rgba(255, 255, 255, 0.3) !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

/* PPP auto-isolir panel header: restore its red gradient so white controls stay readable */
body.holiday-active .card .card-header[style*="ef4444"] {
  background: linear-gradient(135deg, #ef4444 0%, #b91c1c 100%) !important;
  color: #ffffff !important;
}

/* Colored Stat Boxes / Small Boxes High Contrast Rules */
body.holiday-active .small-box.bg-primary,
body.holiday-active .small-box.bg-success,
body.holiday-active .small-box.bg-green,
body.holiday-active .small-box.bg-danger,
body.holiday-active .small-box.bg-red,
body.holiday-active .small-box.bg-info,
body.holiday-active .small-box.bg-blue,
body.holiday-active .small-box.bg-purple,
body.holiday-active .small-box.bg-indigo,
body.holiday-active .small-box.bg-teal,
body.holiday-active .small-box.bg-dark,
body.holiday-active .box.bg-primary,
body.holiday-active .box.bg-success,
body.holiday-active .box.bg-danger,
body.holiday-active .box.bg-info {
  color: #ffffff !important;
}
body.holiday-active .small-box.bg-primary h3,
body.holiday-active .small-box.bg-primary h4,
body.holiday-active .small-box.bg-primary p,
body.holiday-active .small-box.bg-primary span,
body.holiday-active .small-box.bg-primary i,
body.holiday-active .small-box.bg-success h3,
body.holiday-active .small-box.bg-success h4,
body.holiday-active .small-box.bg-success p,
body.holiday-active .small-box.bg-success span,
body.holiday-active .small-box.bg-success i,
body.holiday-active .small-box.bg-green h3,
body.holiday-active .small-box.bg-green h4,
body.holiday-active .small-box.bg-green p,
body.holiday-active .small-box.bg-green span,
body.holiday-active .small-box.bg-green i,
body.holiday-active .small-box.bg-danger h3,
body.holiday-active .small-box.bg-danger h4,
body.holiday-active .small-box.bg-danger p,
body.holiday-active .small-box.bg-danger span,
body.holiday-active .small-box.bg-danger i,
body.holiday-active .small-box.bg-red h3,
body.holiday-active .small-box.bg-red h4,
body.holiday-active .small-box.bg-red p,
body.holiday-active .small-box.bg-red span,
body.holiday-active .small-box.bg-red i,
body.holiday-active .small-box.bg-info h3,
body.holiday-active .small-box.bg-info h4,
body.holiday-active .small-box.bg-info p,
body.holiday-active .small-box.bg-info span,
body.holiday-active .small-box.bg-info i,
body.holiday-active .small-box.bg-purple h3,
body.holiday-active .small-box.bg-purple h4,
body.holiday-active .small-box.bg-purple p,
body.holiday-active .small-box.bg-purple span,
body.holiday-active .small-box.bg-purple i,
body.holiday-active .small-box.bg-teal h3,
body.holiday-active .small-box.bg-teal h4,
body.holiday-active .small-box.bg-teal p,
body.holiday-active .small-box.bg-teal span,
body.holiday-active .small-box.bg-teal i,
body.holiday-active .small-box .small-box-footer {
  color: #ffffff !important;
}

body.holiday-active .small-box.bg-warning,
body.holiday-active .small-box.bg-yellow,
body.holiday-active .small-box.bg-light {
  color: #0f172a !important;
}
body.holiday-active .small-box.bg-warning h3,
body.holiday-active .small-box.bg-warning h4,
body.holiday-active .small-box.bg-warning p,
body.holiday-active .small-box.bg-warning span,
body.holiday-active .small-box.bg-warning i,
body.holiday-active .small-box.bg-yellow h3,
body.holiday-active .small-box.bg-yellow h4,
body.holiday-active .small-box.bg-yellow p,
body.holiday-active .small-box.bg-yellow span,
body.holiday-active .small-box.bg-yellow i {
  color: #0f172a !important;
}

/* High Contrast Rules for Presets & Active Schedule Cards */
body.holiday-active .preset-title,
body.holiday-active .sch-name-text,
body.holiday-active .sch-info-val,
body.holiday-active .form-group-custom label {
  color: var(--holiday-text-color) !important;
}

body.holiday-active .preset-desc,
body.holiday-active .sch-info-label,
body.holiday-active .sch-comment-text {
  color: var(--holiday-text-color) !important;
  opacity: 0.88 !important;
}

body.holiday-active .sch-info-box {
  background: rgba(var(--holiday-primary-rgb), 0.06) !important;
  border: 1px solid rgba(var(--holiday-primary-rgb), 0.12) !important;
}

/* High Contrast Dark Mode Variant Overrides */
body.holiday-active.dm-dark .card:not(.bg-primary):not(.bg-success):not(.bg-danger):not(.bg-warning),
body.holiday-active.dm-dark .box:not(.bg-primary):not(.bg-success):not(.bg-danger):not(.bg-warning),
body.holiday-active.dm-dark .sch-item-card,
body.holiday-active.dm-dark .preset-box {
  background: var(--holiday-card-bg, rgba(15, 23, 42, 0.85)) !important;
  border-color: var(--holiday-card-border, rgba(255, 255, 255, 0.12)) !important;
  color: #f8fafc !important;
}

body.holiday-active.dm-dark .sch-info-box {
  background: rgba(15, 23, 42, 0.7) !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
}

body.holiday-active.dm-dark .preset-title,
body.holiday-active.dm-dark .sch-name-text,
body.holiday-active.dm-dark .sch-info-val,
body.holiday-active.dm-dark .form-group-custom label,
body.holiday-active.dm-dark h1:not(.badge):not(.small-box *),
body.holiday-active.dm-dark h2:not(.badge):not(.small-box *),
body.holiday-active.dm-dark h3:not(.badge):not(.small-box *),
body.holiday-active.dm-dark h4:not(.badge):not(.small-box *),
body.holiday-active.dm-dark label:not(.badge),
body.holiday-active.dm-dark strong:not(.badge) {
  color: #ffffff !important;
}

body.holiday-active.dm-dark .preset-desc,
body.holiday-active.dm-dark .sch-info-label,
body.holiday-active.dm-dark .sch-comment-text,
body.holiday-active.dm-dark p:not(.badge):not(.small-box *),
body.holiday-active.dm-dark span:not(.badge):not(.btn):not(.small-box *) {
  color: #cbd5e1 !important;
}

/* Buttons */
body.holiday-active .btn-primary,
body.holiday-active .btn-login,
body.holiday-active input[type="submit"] {
  background: linear-gradient(135deg, var(--holiday-primary) 0%, rgba(var(--holiday-primary-rgb), 0.85) 100%) !important;
  color: #ffffff !important;
  border: 1px solid rgba(var(--holiday-accent-rgb), 0.2) !important;
  border-radius: 8px !important;
  padding: 8px 16px !important;
  box-shadow: 0 4px 12px rgba(var(--holiday-primary-rgb), 0.25) !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  cursor: pointer;
  font-weight: 600;
}

body.holiday-active .btn-primary:hover,
body.holiday-active .btn-login:hover,
body.holiday-active input[type="submit"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(var(--holiday-primary-rgb), 0.4), var(--holiday-glow) !important;
  border-color: var(--holiday-accent) !important;
}

body.holiday-active .btn-success,
body.holiday-active .bg-green.btn {
  background: #0d9668 !important;
  color: #ffffff !important;
  border: none !important;
}
body.holiday-active .btn-danger,
body.holiday-active .bg-red.btn,
body.holiday-active .bg-danger.btn {
  background: #ef4444 !important;
  color: #ffffff !important;
  border: none !important;
}
body.holiday-active .btn-warning,
body.holiday-active .bg-yellow.btn,
body.holiday-active .bg-warning.btn {
  background: #f59e0b !important;
  color: #0f172a !important;
  border: none !important;
  font-weight: 600 !important;
}
body.holiday-active .btn-info,
body.holiday-active .bg-info.btn {
  background: #0891b2 !important;
  color: #ffffff !important;
  border: none !important;
}
body.holiday-active .btn.bg-primary {
  background: #1082b8 !important;
  color: #ffffff !important;
  border: none !important;
}
body.holiday-active .btn-secondary,
body.holiday-active .btn-default,
body.holiday-active .bg-grey.btn {
  background: #e2e8f0 !important;
  color: #0f172a !important;
  border: 1px solid #cbd5e1 !important;
}
body.holiday-active.dm-dark .btn-secondary,
body.holiday-active.dm-dark .btn-default,
body.holiday-active.dm-dark .bg-grey.btn {
  background: #334155 !important;
  color: #f8fafc !important;
  border: 1px solid #475569 !important;
}

/* Badges High Contrast Rules */
body.holiday-active .badge {
  font-weight: 600 !important;
  padding: 4px 8px !important;
  border-radius: 6px !important;
}
body.holiday-active .badge.bg-primary,
body.holiday-active .badge.bg-success,
body.holiday-active .badge.bg-green,
body.holiday-active .badge.bg-danger,
body.holiday-active .badge.bg-red,
body.holiday-active .badge.bg-info,
body.holiday-active .badge.bg-blue,
body.holiday-active .badge.bg-purple,
body.holiday-active .badge.bg-indigo,
body.holiday-active .badge.bg-teal,
body.holiday-active .badge.bg-dark,
body.holiday-active .badge-primary,
body.holiday-active .badge-success,
body.holiday-active .badge-danger,
body.holiday-active .badge-info {
  color: #ffffff !important;
}

body.holiday-active .badge.bg-warning,
body.holiday-active .badge.bg-yellow,
body.holiday-active .badge.bg-light,
body.holiday-active .badge.bg-secondary,
body.holiday-active .badge.bg-gray,
body.holiday-active .badge-warning,
body.holiday-active .badge-light {
  color: #0f172a !important;
}

/* Tables styling */
body.holiday-active table,
body.holiday-active table.table,
body.holiday-active #dataTable,
body.holiday-active .table-reboot {
  background-color: var(--holiday-table-bg, #ffffff) !important;
  color: var(--holiday-table-text, var(--holiday-text-color)) !important;
}

body.holiday-active table.table th,
body.holiday-active table th,
body.holiday-active .table-reboot th {
  background-color: var(--holiday-table-head-bg, rgba(var(--holiday-primary-rgb), 0.08)) !important;
  color: var(--holiday-table-text, var(--holiday-text-color)) !important;
  font-weight: 600 !important;
  border-bottom: 2px solid rgba(var(--holiday-primary-rgb), 0.2) !important;
  padding: 12px 10px !important;
}

body.holiday-active table.table td,
body.holiday-active table td,
body.holiday-active .table-reboot td {
  background-color: var(--holiday-table-bg, #ffffff) !important;
  color: var(--holiday-table-text, var(--holiday-text-color)) !important;
  padding: 10px !important;
  border-bottom: 1px solid rgba(var(--holiday-primary-rgb), 0.08) !important;
  opacity: 1 !important;
}

body.holiday-active table.table tr:hover td,
body.holiday-active .table-reboot tr:hover td {
  background-color: rgba(var(--holiday-primary-rgb), 0.12) !important;
}

/* DataTables controls & Pagination */
body.holiday-active .dataTables_wrapper .dataTables_length,
body.holiday-active .dataTables_wrapper .dataTables_filter,
body.holiday-active .dataTables_wrapper .dataTables_info,
body.holiday-active .dataTables_wrapper .dataTables_paginate {
  color: var(--holiday-text-color) !important;
}

body.holiday-active .dataTables_wrapper .dataTables_paginate .paginate_button {
  background: transparent !important;
  color: var(--holiday-text-color) !important;
  border: 1px solid rgba(var(--holiday-primary-rgb), 0.2) !important;
  border-radius: 6px !important;
  padding: 4px 10px !important;
  margin: 0 2px !important;
}
body.holiday-active .dataTables_wrapper .dataTables_paginate .paginate_button.current,
body.holiday-active .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: var(--holiday-primary) !important;
  color: #ffffff !important;
  border-color: var(--holiday-primary) !important;
  font-weight: 600 !important;
}
body.holiday-active .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  background: rgba(var(--holiday-primary-rgb), 0.15) !important;
  color: var(--holiday-primary) !important;
}
body.holiday-active.dm-dark .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  color: #ffffff !important;
}

/* Form inputs, textfields & selects */
body.holiday-active input[type="text"],
body.holiday-active input[type="password"],
body.holiday-active input[type="number"],
body.holiday-active input[type="email"],
body.holiday-active input[type="search"],
body.holiday-active input[type="tel"],
body.holiday-active input[type="url"],
body.holiday-active input[type="time"],
body.holiday-active input[type="date"],
body.holiday-active input[type="datetime-local"],
body.holiday-active input.form-control,
body.holiday-active select.form-control,
body.holiday-active textarea.form-control,
body.holiday-active select,
body.holiday-active textarea,
body.holiday-active .form-control,
body.holiday-active .group-item:not(span):not(div):not(label),
body.holiday-active input.group-item,
body.holiday-active select.group-item,
body.holiday-active .input-main,
body.holiday-active .input-addon,
body.holiday-active .t-input,
body.holiday-active .ps-input,
body.holiday-active .mobile-form-table input,
body.holiday-active .mobile-form-table select,
body.holiday-active .form-group input,
body.holiday-active .form-group select,
body.holiday-active .form-group-custom input,
body.holiday-active .form-group-custom select,
body.holiday-active #filterTable,
body.holiday-active table input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
body.holiday-active table select,
body.holiday-active .card-body input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
body.holiday-active .card-body select,
body.holiday-active .card-body textarea,
body.holiday-active .box-body input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
body.holiday-active .box-body select,
body.holiday-active .box-body textarea {
  border: 1.5px solid var(--holiday-input-border, #cbd5e1) !important;
  border-radius: 8px !important;
  padding: 8px 12px !important;
  transition: all 0.25s ease !important;
  background-color: var(--holiday-input-bg, #ffffff) !important;
  color: var(--holiday-input-text, #0f172a) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important;
  box-sizing: border-box !important;
}

/* Clear focus state with glow */
body.holiday-active input[type="text"]:focus,
body.holiday-active input[type="password"]:focus,
body.holiday-active input[type="number"]:focus,
body.holiday-active input[type="email"]:focus,
body.holiday-active input[type="search"]:focus,
body.holiday-active input[type="tel"]:focus,
body.holiday-active input[type="url"]:focus,
body.holiday-active input[type="time"]:focus,
body.holiday-active input[type="date"]:focus,
body.holiday-active input[type="datetime-local"]:focus,
body.holiday-active input.form-control:focus,
body.holiday-active select.form-control:focus,
body.holiday-active textarea.form-control:focus,
body.holiday-active select:focus,
body.holiday-active textarea:focus,
body.holiday-active .form-control:focus,
body.holiday-active .group-item:focus,
body.holiday-active .input-main:focus,
body.holiday-active .input-addon:focus,
body.holiday-active .t-input:focus,
body.holiday-active .ps-input:focus,
body.holiday-active table input:focus,
body.holiday-active table select:focus,
body.holiday-active .card-body input:focus,
body.holiday-active .card-body select:focus,
body.holiday-active .card-body textarea:focus,
body.holiday-active .box-body input:focus,
body.holiday-active .box-body select:focus,
body.holiday-active .box-body textarea:focus {
  border-color: var(--holiday-primary) !important;
  box-shadow: 0 0 0 3px rgba(var(--holiday-primary-rgb), 0.25) !important;
  outline: none !important;
}

/* Adjust radius & borders for connected/grouped inputs */
body.holiday-active .group-item-l,
body.holiday-active .input-group-responsive .input-main,
body.holiday-active .input-group-responsive input[type="text"],
body.holiday-active .input-group-responsive input[type="password"],
body.holiday-active .input-group-responsive input[type="number"] {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

body.holiday-active .group-item-r,
body.holiday-active .input-group-responsive .input-addon,
body.holiday-active .input-group-responsive select,
body.holiday-active .input-group-responsive .addon-btn {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  border-left: 0 !important;
}

body.holiday-active .input-group-responsive .addon-checkbox-label {
  border: 1.5px solid var(--holiday-input-border, #cbd5e1) !important;
  border-left: 0 !important;
  background: rgba(var(--holiday-primary-rgb), 0.08) !important;
  border-top-right-radius: 8px !important;
  border-bottom-right-radius: 8px !important;
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}

body.holiday-active.dm-dark .input-group-responsive .addon-checkbox-label {
  border-color: var(--holiday-input-border, rgba(255, 255, 255, 0.25)) !important;
  border-left: 0 !important;
  background: rgba(255, 255, 255, 0.08) !important;
}

body.holiday-active input::placeholder,
body.holiday-active textarea::placeholder {
  color: #94a3b8 !important;
  opacity: 0.85;
}

body.holiday-active.dm-dark input::placeholder,
body.holiday-active.dm-dark textarea::placeholder {
  color: #94a3b8 !important;
  opacity: 0.85;
}

body.holiday-active input:disabled,
body.holiday-active select:disabled,
body.holiday-active textarea:disabled,
body.holiday-active input[readonly] {
  background-color: rgba(0, 0, 0, 0.04) !important;
  border-color: rgba(0, 0, 0, 0.12) !important;
  opacity: 0.8 !important;
}
body.holiday-active.dm-dark input:disabled,
body.holiday-active.dm-dark select:disabled,
body.holiday-active.dm-dark textarea:disabled,
body.holiday-active.dm-dark input[readonly] {
  background-color: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
  color: #cbd5e1 !important;
}

body.holiday-active select.form-control option,
body.holiday-active select option,
body.holiday-active .form-group-custom select option {
  background-color: var(--holiday-input-bg, #ffffff) !important;
  color: var(--holiday-input-text, #0f172a) !important;
}

/* Date Filter Bar Contrast (Selling Report & Custom Filters) */
body.holiday-active .date-filter-bar {
  background: var(--holiday-card-bg, #ffffff) !important;
  border: 1px solid var(--holiday-card-border, rgba(var(--holiday-primary-rgb), 0.2)) !important;
  color: var(--holiday-text-color) !important;
  border-radius: 12px !important;
}
body.holiday-active .date-filter-bar label {
  color: var(--holiday-primary) !important;
}
body.holiday-active .date-filter-bar span {
  color: var(--holiday-accent) !important;
}
body.holiday-active .date-filter-bar input[type="date"] {
  background-color: var(--holiday-input-bg, #ffffff) !important;
  color: var(--holiday-input-text, #0f172a) !important;
  border: 1px solid var(--holiday-input-border) !important;
}
body.holiday-active .date-filter-bar .btn-go {
  background: linear-gradient(135deg, var(--holiday-primary) 0%, rgba(var(--holiday-primary-rgb), 0.85) 100%) !important;
  color: #ffffff !important;
}

body.holiday-active.dm-dark .date-filter-bar {
  background: var(--holiday-card-bg, rgba(15, 23, 42, 0.85)) !important;
  border-color: rgba(255, 255, 255, 0.15) !important;
}
body.holiday-active.dm-dark .date-filter-bar label {
  color: var(--holiday-accent) !important;
}
body.holiday-active.dm-dark .date-filter-bar span {
  color: #fef08a !important;
}

/* User Traffic & Reboot Schedule Custom Cards */
body.holiday-active .ut-card,
body.holiday-active .ut-stat,
body.holiday-active .ut-card-item,
body.holiday-active .ut-activity-card,
body.holiday-active .ut-ai-user-chip,
body.holiday-active .sch-meta-row {
  background: var(--holiday-card-bg, #ffffff) !important;
  border-color: var(--holiday-card-border, rgba(var(--holiday-primary-rgb), 0.18)) !important;
  color: var(--holiday-text-color) !important;
}

body.holiday-active .ut-card .card-header,
body.holiday-active .ut-table-wrap thead th {
  background: var(--holiday-table-head-bg, rgba(var(--holiday-primary-rgb), 0.08)) !important;
  color: var(--holiday-table-text, var(--holiday-text-color)) !important;
}

body.holiday-active.dm-dark .ut-card,
body.holiday-active.dm-dark .ut-stat,
body.holiday-active.dm-dark .ut-card-item,
body.holiday-active.dm-dark .ut-activity-card,
body.holiday-active.dm-dark .ut-ai-user-chip,
body.holiday-active.dm-dark .sch-meta-row {
  background: rgba(15, 23, 42, 0.85) !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
  color: #f8fafc !important;
}

body.holiday-active.dm-dark .ut-card-item .ut-stat-mini,
body.holiday-active.dm-dark .ut-mob-speed .ut-moch-item {
  background: rgba(30, 41, 59, 0.8) !important;
  color: #f8fafc !important;
}

/* Modals High Contrast Styling */
body.holiday-active .modal-content {
  background: #ffffff !important;
  color: #0f172a !important;
  border: 1px solid var(--holiday-card-border, rgba(0,0,0,0.15)) !important;
  border-radius: 16px !important;
  box-shadow: 0 20px 50px rgba(0,0,0,0.2) !important;
}
body.holiday-active.dm-dark .modal-content {
  background: #0f172a !important;
  color: #f8fafc !important;
  border-color: rgba(255, 255, 255, 0.15) !important;
  box-shadow: 0 20px 50px rgba(0,0,0,0.6) !important;
}

body.holiday-active .modal-header {
  background: linear-gradient(135deg, rgba(var(--holiday-primary-rgb), 0.1) 0%, rgba(var(--holiday-primary-rgb), 0.02) 100%) !important;
  border-bottom: 1px solid rgba(var(--holiday-primary-rgb), 0.15) !important;
  color: var(--holiday-primary) !important;
}
body.holiday-active.dm-dark .modal-header {
  background: linear-gradient(135deg, rgba(var(--holiday-primary-rgb), 0.3) 0%, rgba(var(--holiday-primary-rgb), 0.1) 100%) !important;
  border-bottom-color: rgba(255, 255, 255, 0.1) !important;
  color: #ffffff !important;
}

body.holiday-active .modal-body {
  color: var(--holiday-text-color) !important;
}
body.holiday-active.dm-dark .modal-body {
  color: #f8fafc !important;
}

body.holiday-active .modal-footer {
  background: rgba(0,0,0,0.02) !important;
  border-top: 1px solid rgba(0,0,0,0.08) !important;
}
body.holiday-active.dm-dark .modal-footer {
  background: rgba(15, 23, 42, 0.9) !important;
  border-top-color: rgba(255, 255, 255, 0.1) !important;
}

/* Dropdown Menus */
body.holiday-active .dropdown-menu {
  background-color: #ffffff !important;
  color: #0f172a !important;
  border: 1px solid rgba(0,0,0,0.1) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,0.12) !important;
  border-radius: 10px !important;
}
body.holiday-active.dm-dark .dropdown-menu {
  background-color: #1e293b !important;
  color: #f8fafc !important;
  border-color: rgba(255,255,255,0.15) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,0.5) !important;
}
body.holiday-active .dropdown-item {
  color: #0f172a !important;
}
body.holiday-active .dropdown-item:hover {
  background-color: rgba(var(--holiday-primary-rgb), 0.1) !important;
  color: var(--holiday-primary) !important;
}
body.holiday-active.dm-dark .dropdown-item {
  color: #f8fafc !important;
}
body.holiday-active.dm-dark .dropdown-item:hover {
  background-color: rgba(var(--holiday-primary-rgb), 0.3) !important;
  color: #ffffff !important;
}

/* Alerts & Callouts */
body.holiday-active .alert-success {
  background-color: #f0fdf4 !important;
  border: 1px solid #86efac !important;
  color: #166534 !important;
}
body.holiday-active .alert-danger {
  background-color: #fef2f2 !important;
  border: 1px solid #fca5a5 !important;
  color: #991b1b !important;
}
body.holiday-active .alert-warning {
  background-color: #fffbeb !important;
  border: 1px solid #fde047 !important;
  color: #854d0e !important;
}
body.holiday-active .alert-info {
  background-color: #eff6ff !important;
  border: 1px solid #93c5fd !important;
  color: #1e40af !important;
}

body.holiday-active.dm-dark .alert-success {
  background-color: rgba(22, 101, 52, 0.45) !important;
  border-color: rgba(34, 197, 94, 0.5) !important;
  color: #bbf7d0 !important;
}
body.holiday-active.dm-dark .alert-danger {
  background-color: rgba(153, 27, 27, 0.45) !important;
  border-color: rgba(239, 68, 68, 0.5) !important;
  color: #fecaca !important;
}
body.holiday-active.dm-dark .alert-warning {
  background-color: rgba(133, 77, 14, 0.45) !important;
  border-color: rgba(234, 179, 8, 0.5) !important;
  color: #fef08a !important;
}
body.holiday-active.dm-dark .alert-info {
  background-color: rgba(30, 64, 175, 0.45) !important;
  border-color: rgba(59, 130, 246, 0.5) !important;
  color: #bfdbfe !important;
}

/* Pre, Code, Terminal, Log Window Styling */
body.holiday-active pre,
body.holiday-active code,
body.holiday-active .log-box,
body.holiday-active .terminal-window,
body.holiday-active textarea.bg-dark {
  background-color: #0f172a !important;
  color: #f8fafc !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 8px !important;
  padding: 12px !important;
}

/* Vouchers & Invoices Isolation (Ensure print readability) */
body.holiday-active .voucher,
body.holiday-active .invoice,
body.holiday-active .print-area,
body.holiday-active .receipt,
body.holiday-active #print-area,
body.holiday-active .voucher-card,
body.holiday-active .ticket {
  background-color: #ffffff !important;
  color: #0f172a !important;
}
body.holiday-active .voucher *,
body.holiday-active .invoice *,
body.holiday-active .print-area *,
body.holiday-active .receipt *,
body.holiday-active #print-area *,
body.holiday-active .voucher-card *,
body.holiday-active .ticket * {
  color: #0f172a !important;
}

/* --- THEME SPECIFIC CUSTOM OVERLAYS AND DECORATIONS --- */

/* General Container for decoration canvas/divs */
.holiday-decorations-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 9999;
  overflow: hidden;
}

/* Banner Ucapan Selamat Hari Raya */
.holiday-greeting-banner {
  background: linear-gradient(135deg, var(--holiday-primary) 0%, rgba(var(--holiday-primary-rgb), 0.82) 100%);
  border: 2px solid var(--holiday-accent);
  color: #ffffff;
  padding: 12px 28px 12px 20px;
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(var(--holiday-primary-rgb), 0.35), var(--holiday-glow);
  max-width: 450px;
  width: 90%;
  text-align: center;
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 999999;
  animation: slideDownFade 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  pointer-events: auto;
  box-sizing: border-box;
  overflow: visible;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.holiday-greeting-banner h4 {
  margin: 0 0 4px 0;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #fef08a;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.6);
  text-transform: uppercase;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.35;
}

.holiday-greeting-banner p {
  margin: 0;
  font-size: 12.5px;
  color: #ffffff;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
  opacity: 0.95;
  line-height: 1.45;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

@keyframes slideDownFade {
  0% {
    transform: translate(-50%, -50px);
    opacity: 0;
  }
  100% {
    transform: translate(-50%, 0);
    opacity: 1;
  }
}

@media (max-width: 767.98px) {
  .holiday-greeting-banner,
  .holiday-greeting-banner.mobile {
    top: 56px;
    left: 10px;
    right: 10px;
    width: auto;
    max-width: none;
    transform: translateY(0);
    animation: slideDownFadeMobile 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    padding: 10px 26px 10px 12px;
    border-radius: 10px;
  }

  .holiday-greeting-banner h4,
  .holiday-greeting-banner.mobile h4 {
    font-size: 11px;
    margin-bottom: 3px;
    letter-spacing: 0.03em;
    line-height: 1.3;
    text-transform: none;
  }

  .holiday-greeting-banner p,
  .holiday-greeting-banner.mobile p {
    font-size: 11px;
    line-height: 1.4;
  }
}

@keyframes slideDownFadeMobile {
  0% {
    transform: translateY(-35px);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

/* 1. Idul Fitri: Mosque dome background glow & Floating Ketupat */
.idulfitri-dome {
  position: absolute;
  bottom: 0;
  right: 5%;
  width: 250px;
  height: auto;
  opacity: 0.08;
  filter: grayscale(1);
}

.ketupat {
  position: absolute;
  width: 40px;
  height: 40px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50 0 L100 50 L50 100 L0 50 Z' fill='%23ffb300' opacity='0.7'/%3E%3Cpath d='M50 10 L90 50 L50 90 L10 50 Z' fill='%231b5e20'/%3E%3Cline x1='50' y1='0' x2='50' y2='100' stroke='%23ffb300' stroke-width='2'/%3E%3Cline x1='0' y1='50' x2='100' y2='50' stroke='%23ffb300' stroke-width='2'/%3E%3Crect x='42' y='90' width='16' height='20' fill='%23ffb300'/%3E%3C/svg%3E") no-repeat;
  animation: floatUpDown 6s infinite ease-in-out;
}

@keyframes floatUpDown {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-20px) rotate(10deg); }
}

/* 2. Kemerdekaan: Waving mini flags */
.waving-flag {
  position: absolute;
  width: 50px;
  height: 30px;
  background: linear-gradient(to bottom, #d32f2f 50%, #ffffff 50%);
  border: 1px solid #999;
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.15);
  animation: waveFlag 1.5s infinite ease-in-out alternate;
  transform-origin: left center;
}

.waving-flag::before {
  content: '';
  position: absolute;
  left: -2px;
  top: 0;
  width: 3px;
  height: 60px;
  background: #555;
}

@keyframes waveFlag {
  0% { transform: skewY(-5deg) scaleY(1); }
  100% { transform: skewY(5deg) scaleY(0.95); }
}

/* Confetti particles */
.confetti {
  position: absolute;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  animation: fallConfetti 8s infinite linear;
}

@keyframes fallConfetti {
  0% { transform: translateY(-10px) rotate(0deg); }
  100% { transform: translateY(105vh) rotate(360deg); }
}

/* 3. Imlek: Swaying Red Lanterns */
.lantern-string {
  position: absolute;
  top: 0;
  display: flex;
  justify-content: space-around;
  width: 100%;
  padding: 0 10%;
  box-sizing: border-box;
}

.lantern {
  width: 45px;
  height: 55px;
  background: #d32f2f;
  border-radius: 50% / 20%;
  border: 2px solid #ffd700;
  position: relative;
  box-shadow: 0 0 20px rgba(211, 47, 47, 0.6), inset 0 0 15px rgba(255, 215, 0, 0.4);
  animation: swayLantern 4s infinite ease-in-out alternate;
  transform-origin: top center;
}

.lantern::before {
  content: '';
  position: absolute;
  top: -10px;
  left: 20px;
  width: 3px;
  height: 10px;
  background: #ffd700;
}

.lantern::after {
  content: '';
  position: absolute;
  bottom: -15px;
  left: 21px;
  width: 3px;
  height: 15px;
  background: #ffd700;
}

@keyframes swayLantern {
  0% { transform: rotate(-8deg); }
  100% { transform: rotate(8deg); }
}

/* Cherry blossoms */
.sakura {
  position: absolute;
  background: #ffb7c5;
  border-radius: 10px 0 10px 10px;
  animation: fallSakura 10s infinite linear;
  opacity: 0.85;
}

@keyframes fallSakura {
  0% { transform: translateY(-20px) rotate(0deg) translateX(0px); }
  50% { transform: translateY(50vh) rotate(180deg) translateX(30px); }
  100% { transform: translateY(105vh) rotate(360deg) translateX(-20px); }
}

/* 4. Natal: Floating Snowflakes & Holiday Lights */
.snowflake {
  position: absolute;
  color: #16a34a;
  font-size: 1.5em;
  font-family: Arial, sans-serif;
  text-shadow: 0 0 8px rgba(22, 163, 74, 0.5);
  animation: fallSnow 12s infinite linear;
  pointer-events: none;
}

@keyframes fallSnow {
  0% { transform: translateY(-20px) rotate(0deg); opacity: 0; }
  10% { opacity: 0.9; }
  90% { opacity: 0.9; }
  100% { transform: translateY(105vh) rotate(360deg); opacity: 0; }
}

.christmas-lights {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 12px;
  background: radial-gradient(circle, rgba(255,0,0,0.8) 10%, transparent 60%);
  background-size: 40px 100%;
  animation: glowLights 1s infinite alternate;
}

@keyframes glowLights {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}

/* 5. Nyepi: Parallax Stars Canvas */
#nyepi-stars-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  background: transparent;
}

/* 6. Waisak: Floating Sky Lanterns & Floating Lotuses */
.sky-lantern {
  position: absolute;
  width: 35px;
  height: 50px;
  background: rgba(230, 81, 0, 0.85);
  border-radius: 10px 10px 4px 4px;
  box-shadow: 0 0 25px rgba(255, 143, 0, 0.8), inset 0 0 15px rgba(255, 213, 79, 0.6);
  animation: floatUp 15s infinite linear;
  opacity: 0.8;
}

.sky-lantern::after {
  content: '';
  position: absolute;
  bottom: 2px;
  left: 10px;
  width: 15px;
  height: 6px;
  background: #ffb300;
  border-radius: 50%;
  box-shadow: 0 0 8px #fff;
}

@keyframes floatUp {
  0% { transform: translateY(105vh) scale(0.8) rotate(0deg); opacity: 0; }
  10% { opacity: 0.9; }
  90% { opacity: 0.9; }
  100% { transform: translateY(-50px) scale(1.1) rotate(15deg); opacity: 0; }
}

/* Floating Lotus Flower SVG/CSS */
.lotus-flower {
  position: absolute;
  bottom: 10px;
  left: 80%;
  width: 60px;
  height: 35px;
  opacity: 0.15;
  filter: drop-shadow(0 0 5px rgba(236, 64, 122, 0.4));
  animation: lotusSway 8s infinite ease-in-out alternate;
}

@keyframes lotusSway {
  0% { transform: translateX(-10px) rotate(-3deg); }
  100% { transform: translateX(10px) rotate(3deg); }
}

/* --- OVERRIDES FOR LOGIN CARD DURING HOLIDAY --- */

body.holiday-active.wrapper, body.holiday-active .wrapper {
  transition: all 0.5s ease;
}

body.holiday-active .login-box .card {
  background: rgba(255, 255, 255, 0.92) !important;
  border: 2px solid rgba(var(--holiday-primary-rgb), 0.2) !important;
  box-shadow: var(--holiday-shadow), var(--holiday-glow) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 20px !important;
}

body.holiday-active .login-box .brand-title {
  font-size: 28px !important;
  font-weight: 800 !important;
  color: var(--holiday-primary) !important;
  text-shadow: none !important;
  background: linear-gradient(135deg, var(--holiday-primary) 0%, var(--holiday-accent) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  padding: 10px 0 15px 0 !important;
  margin-top: 0 !important;
}

body.holiday-active .login-box .card-header {
  background: linear-gradient(135deg, rgba(var(--holiday-primary-rgb), 0.08) 0%, rgba(var(--holiday-accent-rgb), 0.05) 100%) !important;
}

body.holiday-active .login-box .card-header h3 {
  color: var(--holiday-primary) !important;
}

body.holiday-active .login-box .form-control {
  border: 1.5px solid rgba(var(--holiday-primary-rgb), 0.25) !important;
  background: rgba(255, 255, 255, 0.9) !important;
  color: #1e293b !important;
  border-radius: 10px !important;
  padding: 10px 16px 10px 46px !important;
}

body.holiday-active .login-box .form-control:focus {
  border-color: var(--holiday-primary) !important;
  box-shadow: 0 0 0 3px rgba(var(--holiday-primary-rgb), 0.18) !important;
}

body.holiday-active .login-box .btn-login {
  background: linear-gradient(135deg, var(--holiday-primary) 0%, rgba(var(--holiday-primary-rgb), 0.85) 100%) !important;
  border: none !important;
  box-shadow: 0 6px 18px rgba(var(--holiday-primary-rgb), 0.35), var(--holiday-glow) !important;
  border-radius: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.03em !important;
}

body.holiday-active .login-box .btn-login:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(var(--holiday-primary-rgb), 0.45), var(--holiday-glow) !important;
}

/* === ROBOT LOGIN HOLIDAY OVERRIDES === */

/* Holiday robot login wrapper */
body.holiday-active .login-wrapper {
  background: var(--holiday-bg-color) !important;
}

/* Holiday robot greeting */
body.holiday-active .robot-greeting h2 {
  color: var(--holiday-primary) !important;
}
body.holiday-active .robot-greeting p {
  color: var(--holiday-text-color) !important;
  opacity: 0.75;
}

/* Holiday robot SVG accent colors */
body.holiday-active .robot-svg {
  filter: drop-shadow(0 10px 25px rgba(var(--holiday-primary-rgb), 0.35)) !important;
}

/* Holiday login card */
body.holiday-active .login-card {
  background: rgba(255, 255, 255, 0.88) !important;
  border: 1.5px solid rgba(var(--holiday-primary-rgb), 0.18) !important;
  box-shadow: var(--holiday-shadow), var(--holiday-glow) !important;
}

/* Holiday app icon */
body.holiday-active .login-logo .app-icon {
  background: linear-gradient(135deg, var(--holiday-primary), var(--holiday-accent)) !important;
  box-shadow: 0 8px 25px rgba(var(--holiday-primary-rgb), 0.4) !important;
}
body.holiday-active .login-logo .app-icon.has-img {
  background: #ffffff !important;
  border: 2px solid rgba(var(--holiday-primary-rgb), 0.3) !important;
}

/* Holiday input fields */
body.holiday-active .login-input-group input,
.login-input-group input {
  border: 2px solid var(--holiday-input-border, #cbd5e1) !important;
  padding: 0 46px 0 48px !important;
  height: 48px !important;
  font-size: 14px !important;
  line-height: 48px !important;
  box-sizing: border-box !important;
}
body.holiday-active .login-input-group input:focus,
.login-input-group input:focus {
  border-color: var(--holiday-primary) !important;
  background: #ffffff !important;
  box-shadow: 0 0 0 4px rgba(var(--holiday-primary-rgb), 0.22) !important;
}
body.holiday-active .login-input-group:focus-within .input-icon,
body.holiday-active .login-input-group input:focus ~ .input-icon,
body.holiday-active .login-input-group input:focus + .input-icon {
  color: var(--holiday-primary) !important;
}

/* Holiday eye toggle */
body.holiday-active .eye-toggle:hover {
  color: var(--holiday-primary) !important;
  background: rgba(var(--holiday-primary-rgb), 0.08) !important;
}

/* Holiday login button */
body.holiday-active .btn-login-robot {
  background: linear-gradient(135deg, var(--holiday-primary) 0%, var(--holiday-accent) 100%) !important;
  box-shadow: 0 8px 25px rgba(var(--holiday-primary-rgb), 0.4), var(--holiday-glow) !important;
}
body.holiday-active .btn-login-robot:hover {
  box-shadow: 0 12px 35px rgba(var(--holiday-primary-rgb), 0.55), var(--holiday-glow) !important;
}

/* Holiday footer dots */
body.holiday-active .login-footer-robot .footer-dot {
  background: var(--holiday-primary) !important;
}

/* === FLOATING DECORATION: Orbits === */
.orbit-ring {
  position: absolute;
  border-radius: 50%;
  border: 1.5px dashed rgba(var(--holiday-primary-rgb), 0.12);
  animation: orbitSpin 20s infinite linear;
  pointer-events: none;
}
@keyframes orbitSpin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* === FLOATING DECORATION: Glow Orbs === */
.glow-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(30px);
  animation: orbPulse 6s infinite ease-in-out;
  pointer-events: none;
}
@keyframes orbPulse {
  0%, 100% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.4); opacity: 0.6; }
}

/* === IDUL FITRI: Star & Crescent === */
.star-crescent {
  position: absolute;
  font-size: 40px;
  animation: starTwinkle 3s infinite ease-in-out;
  opacity: 0.2;
  pointer-events: none;
}
@keyframes starTwinkle {
  0%, 100% { opacity: 0.15; transform: scale(1); }
  50% { opacity: 0.35; transform: scale(1.15); }
}

/* === KEMERDEKAAN: Eagle Silhouette === */
.garuda-silhouette {
  position: absolute;
  opacity: 0.06;
  pointer-events: none;
  animation: garudaFloat 10s infinite ease-in-out;
}
@keyframes garudaFloat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-15px) rotate(2deg); }
}

/* === IMLEK: Firecracker spark === */
.firecracker {
  position: absolute;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  animation: firecrackerBurst 1.5s infinite ease-out;
  pointer-events: none;
}
@keyframes firecrackerBurst {
  0% { transform: scale(0) translate(0, 0); opacity: 1; }
  100% { transform: scale(1) translate(var(--fx), var(--fy)); opacity: 0; }
}

/* === NATAL: Gift box bounce === */
.gift-box {
  position: absolute;
  animation: giftBounce 2s infinite ease-in-out;
  pointer-events: none;
  font-size: 30px;
}
@keyframes giftBounce {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-25px) rotate(-8deg); }
  60% { transform: translateY(0) rotate(0deg); }
  80% { transform: translateY(-10px) rotate(5deg); }
}

/* === DARK MODE SUPPORT for ROBOT LOGIN & HOLIDAY CARDS === */
body.holiday-active.dm-dark .login-card,
body.dm-dark.holiday-active .login-card,
html.dm-dark body.holiday-active .login-card {
  background: rgba(30, 41, 59, 0.95) !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
  color: #f8fafc !important;
}
body.holiday-active.dm-dark .login-card .form-control,
body.dm-dark.holiday-active .login-card .form-control,
body.holiday-active.dm-dark .login-input-group input,
body.dm-dark.holiday-active .login-input-group input,
html.dm-dark body.holiday-active .login-input-group input {
  background: #0f172a !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  border-color: #334155 !important;
}
body.holiday-active.dm-dark .login-input-group input:focus,
body.dm-dark.holiday-active .login-input-group input:focus,
html.dm-dark body.holiday-active .login-input-group input:focus {
  background: #1e293b !important;
  border-color: #818cf8 !important;
  box-shadow: 0 0 0 4px rgba(129, 140, 248, 0.25) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
body.holiday-active.dm-dark .login-input-group input::placeholder,
body.dm-dark.holiday-active .login-input-group input::placeholder,
html.dm-dark body.holiday-active .login-input-group input::placeholder {
  color: #94a3b8 !important;
  -webkit-text-fill-color: #94a3b8 !important;
  opacity: 0.9 !important;
}
body.holiday-active.dm-dark .robot-greeting,
body.dm-dark.holiday-active .robot-greeting,
html.dm-dark body.holiday-active .robot-greeting {
  background: rgba(15, 23, 42, 0.94) !important;
  border: 1.5px solid rgba(255, 255, 255, 0.15) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45) !important;
}
body.holiday-active.dm-dark .robot-greeting::before,
body.dm-dark.holiday-active .robot-greeting::before,
html.dm-dark body.holiday-active .robot-greeting::before {
  border-bottom-color: rgba(15, 23, 42, 0.94) !important;
}
body.holiday-active.dm-dark .robot-greeting h2,
body.dm-dark.holiday-active .robot-greeting h2,
html.dm-dark body.holiday-active .robot-greeting h2 {
  color: #f8fafc !important;
  text-shadow: 0 0 12px rgba(255, 255, 255, 0.3) !important;
}
body.holiday-active.dm-dark .robot-greeting p,
body.dm-dark.holiday-active .robot-greeting p,
html.dm-dark body.holiday-active .robot-greeting p {
  color: #cbd5e1 !important;
}
body.holiday-active.dm-dark .login-logo .app-name,
body.dm-dark.holiday-active .login-logo .app-name,
html.dm-dark body.holiday-active .login-logo .app-name {
  color: #f8fafc !important;
}
body.holiday-active.dm-dark .eye-toggle,
body.dm-dark.holiday-active .eye-toggle,
html.dm-dark body.holiday-active .eye-toggle {
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: rgba(255, 255, 255, 0.2) !important;
  color: #e2e8f0 !important;
}
body.holiday-active.dm-dark .eye-toggle:hover,
body.dm-dark.holiday-active .eye-toggle:hover,
html.dm-dark body.holiday-active .eye-toggle:hover {
  background: rgba(255, 255, 255, 0.2) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.35) !important;
}

/* ==========================================================================
   CROSS-BROWSER CONSISTENCY (AUTO HOLIDAY)
   Memastikan tampilan dekorasi libur seragam di Chrome, Firefox, Safari,
   dan Edge: font/emoji, efek blur/glass, animasi jatuh, & lebar teks.
   ========================================================================== */

/* 1) Font stack seragam untuk teks & emoji (OS/browser apapun) */
.holiday-greeting-banner h4,
.holiday-greeting-banner p,
.holiday-robot-badge,
.greeting-sparkle,
.robot-greeting h2,
.robot-greeting p,
.login-footer-robot,
.holiday-emoji {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, "Segoe UI Emoji", "Apple Color Emoji",
    "Noto Color Emoji", "EmojiOne Color", "Twemoji Mozilla", sans-serif;
}

/* Cegah auto text-inflation Safari & buat posisi teks banner konsisten */
.holiday-greeting-banner h4,
.holiday-greeting-banner p,
.robot-greeting h2,
.robot-greeting p {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  max-width: 100%;
}

/* 2) Fallback blur/glass: browser tanpa backdrop-filter mendapat
      background solid yang sama rata (tidak tampak pucat/transparan). */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  body.holiday-active .login-box .card,
  body.holiday-active .login-card,
  .login-card {
    background: rgba(255, 255, 255, 0.98) !important;
  }
  .robot-greeting {
    background: rgba(255, 255, 255, 0.98);
  }
  .holiday-greeting-banner {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  body.holiday-active.dm-dark .login-card,
  body.holiday-active.dm-dark .login-box .card,
  body.holiday-active .login-card.dm-dark,
  body.dm-dark.holiday-active .robot-greeting {
    background: #1e293b !important;
  }
}

/* 3) Animasi jatuh memakai dvh (viewport dinamis) agar lintasan dekorasi
      identik antara iOS Safari, mobile, dan desktop. Unit vh lama tetap
      dipakai sebagai fallback untuk browser yang belum mendukung dvh. */
@keyframes fallConfettiDvh {
  0%   { transform: translateY(-10px) rotate(0deg); }
  100% { transform: translateY(105dvh) rotate(360deg); }
}
@keyframes fallSakuraDvh {
  0%   { transform: translateY(-20px) rotate(0deg) translateX(0px); }
  50%  { transform: translateY(50dvh) rotate(180deg) translateX(30px); }
  100% { transform: translateY(105dvh) rotate(360deg) translateX(-20px); }
}
@keyframes fallSnowDvh {
  0%   { transform: translateY(-20px) rotate(0deg); opacity: 0; }
  10%  { opacity: 0.9; }
  90%  { opacity: 0.9; }
  100% { transform: translateY(105dvh) rotate(360deg); opacity: 0; }
}
@keyframes floatUpDvh {
  0%   { transform: translateY(105dvh) scale(0.8) rotate(0deg); opacity: 0; }
  10%  { opacity: 0.9; }
  90%  { opacity: 0.9; }
  100% { transform: translateY(-50px) scale(1.1) rotate(15deg); opacity: 0; }
}
@supports (height: 1dvh) {
  .confetti    { animation-name: fallConfettiDvh; }
  .sakura      { animation-name: fallSakuraDvh; }
  .snowflake   { animation-name: fallSnowDvh; }
  .sky-lantern { animation-name: floatUpDvh; }
}

/* 4) Badge SVG holiday (pengganti emoji) — tampil identik di semua browser */
.holiday-robot-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: #ffffff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}
.holiday-robot-badge svg {
  display: block;
  width: 20px;
  height: 20px;
}

/* ==========================================================================
   MASTER CONTRAST & ANTI-COLLISION SHIELD (LIGHT & DARK AUTO HOLIDAY)
   Memastikan 100% teks terbaca jernih tanpa tabrakan warna di seluruh halaman
   ========================================================================== */

/* 1. Dark & Colored Gradient Hero Banners (Light & Dark Mode) */
body.holiday-active .admin-hero,
body.holiday-active .admin-hero h2,
body.holiday-active .admin-hero h3,
body.holiday-active .admin-hero p,
body.holiday-active .admin-hero span,
body.holiday-active .admin-hero i,
body.holiday-active .router-header-banner,
body.holiday-active .router-header-banner h2,
body.holiday-active .router-header-banner h3,
body.holiday-active .router-header-banner p,
body.holiday-active .router-header-banner span,
body.holiday-active .router-header-banner i,
body.holiday-active .ps-hero,
body.holiday-active .ps-hero h2,
body.holiday-active .ps-hero h3,
body.holiday-active .ps-hero p,
body.holiday-active .ps-hero span,
body.holiday-active .ps-hero i,
body.holiday-active .modal-header-modern,
body.holiday-active .modal-header-modern h3,
body.holiday-active .modal-header-modern span,
body.holiday-active .modal-header-modern i,
body.holiday-active .glass-badge,
body.holiday-active .glass-badge span,
body.holiday-active .glass-badge i {
  color: #ffffff !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) !important;
}

/* 2. Action Buttons & Icons Text Protection (Never turn into dark text) */
body.holiday-active .btn-primary,
body.holiday-active .btn-primary *,
body.holiday-active .btn-hero,
body.holiday-active .btn-hero *,
body.holiday-active .btn-modern,
body.holiday-active .btn-modern *,
body.holiday-active .btn-login-robot,
body.holiday-active .btn-login-robot *,
body.holiday-active .router-btn-save,
body.holiday-active .router-btn-save *,
body.holiday-active .router-btn-connect,
body.holiday-active .router-btn-connect *,
body.holiday-active .btn-success,
body.holiday-active .btn-success *,
body.holiday-active .btn-danger,
body.holiday-active .btn-danger *,
body.holiday-active .btn-info,
body.holiday-active .btn-info * {
  color: #ffffff !important;
}

/* 3. Light Secondary Buttons (Clear contrast on both modes) */
body.holiday-active:not(.dm-dark) .btn-secondary,
body.holiday-active:not(.dm-dark) .btn-default,
body.holiday-active:not(.dm-dark) .bg-grey.btn,
body.holiday-active:not(.dm-dark) .router-btn-ping,
body.holiday-active:not(.dm-dark) .router-btn-icon-only {
  background: #f1f5f9 !important;
  color: #1e293b !important;
  border: 1px solid #cbd5e1 !important;
}

body.holiday-active.dm-dark .btn-secondary,
body.holiday-active.dm-dark .btn-default,
body.holiday-active.dm-dark .bg-grey.btn,
body.holiday-active.dm-dark .router-btn-ping,
body.holiday-active.dm-dark .router-btn-icon-only {
  background: #334155 !important;
  color: #f8fafc !important;
  border: 1px solid #475569 !important;
}

/* 4. Warning & Yellow Elements (Must ALWAYS have dark text for maximum readability) */
body.holiday-active .bg-warning,
body.holiday-active .bg-yellow,
body.holiday-active .badge.bg-warning,
body.holiday-active .badge.bg-yellow,
body.holiday-active .badge-warning,
body.holiday-active .small-box.bg-warning,
body.holiday-active .small-box.bg-warning *,
body.holiday-active .small-box.bg-yellow,
body.holiday-active .small-box.bg-yellow *,
body.holiday-active .btn-warning,
body.holiday-active .btn-warning * {
  color: #0f172a !important;
  text-shadow: none !important;
}

/* 5. Dark Mode Cards & Panel Overrides */
body.holiday-active.dm-dark .router-card,
body.holiday-active.dm-dark .admin-card,
body.holiday-active.dm-dark .manage-users-panel,
body.holiday-active.dm-dark .modern-form-card {
  background: var(--holiday-card-bg, #1e293b) !important;
  border-color: var(--holiday-card-border, #334155) !important;
  color: #f8fafc !important;
}

body.holiday-active.dm-dark .router-card-header,
body.holiday-active.dm-dark .admin-card .card-header {
  background: rgba(15, 23, 42, 0.7) !important;
  border-bottom-color: var(--holiday-card-border, #334155) !important;
  color: #f8fafc !important;
}

body.holiday-active.dm-dark .router-label {
  color: #cbd5e1 !important;
}

body.holiday-active.dm-dark .router-hint {
  color: #94a3b8 !important;
}

/* 6. Chips & Badges in Dark Mode */
body.holiday-active.dm-dark .action-chip {
  background: rgba(99, 102, 241, 0.18) !important;
  color: #a5b4fc !important;
  border-color: rgba(99, 102, 241, 0.35) !important;
}

body.holiday-active.dm-dark .stat-chip {
  background: rgba(99, 102, 241, 0.18) !important;
  color: #a5b4fc !important;
}

body.holiday-active.dm-dark .router-os-chip {
  background: rgba(99, 102, 241, 0.2) !important;
  color: #a5b4fc !important;
  border-color: rgba(99, 102, 241, 0.4) !important;
}

/* 7. Form Controls Contrast Protection in Dark Mode */
body.holiday-active.dm-dark input.form-control,
body.holiday-active.dm-dark select.form-control,
body.holiday-active.dm-dark textarea.form-control,
body.holiday-active.dm-dark .router-input {
  background: var(--holiday-input-bg, #0f172a) !important;
  border-color: var(--holiday-input-border, #334155) !important;
  color: #ffffff !important;
}

body.holiday-active.dm-dark input::placeholder,
body.holiday-active.dm-dark textarea::placeholder {
  color: #94a3b8 !important;
}

