/* South African Public Holiday Themes for Orbio */
/* Automatically applied by holiday-theme.js based on the current date */

/* === HOLIDAY-SPECIFIC COLOR THEMES === */

/* ---- Base holiday defaults ---- */
[data-holiday] {
  --holiday-accent: var(--pu);
  --holiday-glow: rgba(124, 111, 255, 0.15);
}

/* ---- Christmas Day (Dec 25) ---- */
[data-holiday="christmas"] {
  --pu: #E53935; --pu-hi: #FF5252;
  --te: #43A047; --gn: #66BB6A;
  --bg: #0a0505; --sf: #120a0a; --tx: #fff5f5;
  --bd: rgba(255,255,255,0.08);
  --holiday-accent: #E53935;
  --holiday-glow: rgba(229,57,53,0.2);
}

/* ---- Day of Goodwill (Dec 26) ---- */
[data-holiday="goodwill"] {
  --pu: #43A047; --pu-hi: #66BB6A;
  --te: #E53935; --gn: #E53935;
  --bg: #050a05; --sf: #0a120a; --tx: #f5fff5;
  --bd: rgba(255,255,255,0.08);
  --holiday-accent: #43A047;
  --holiday-glow: rgba(67,160,71,0.2);
}

/* ---- Christmas Eve (Dec 24) ---- */
[data-holiday="christmas-eve"] {
  --pu: #C62828; --pu-hi: #EF5350;
  --te: #2E7D32; --gn: #43A047;
  --bg: #0a0505; --sf: #120a0a; --tx: #fff5f5;
  --bd: rgba(255,255,255,0.08);
  --holiday-accent: #C62828;
  --holiday-glow: rgba(198,40,40,0.18);
}

/* ---- New Year's Day (Jan 1) ---- */
[data-holiday="new-year"] {
  --pu: #FFD700; --pu-hi: #FFA000;
  --te: #FF6F00; --gn: #FFD700;
  --bg: #0a0800; --sf: #141000; --tx: #fffde7;
  --bd: rgba(255,215,0,0.1);
  --holiday-accent: #FFD700;
  --holiday-glow: rgba(255,215,0,0.2);
}

/* ---- New Year's Eve (Dec 31) ---- */
[data-holiday="new-year-eve"] {
  --pu: #FF8F00; --pu-hi: #FFCA28;
  --te: #E65100; --gn: #FFB300;
  --bg: #0a0600; --sf: #140e00; --tx: #fff8e1;
  --bd: rgba(255,143,0,0.12);
  --holiday-accent: #FF8F00;
  --holiday-glow: rgba(255,143,0,0.18);
}

/* ---- Human Rights Day (Mar 21) ---- */
[data-holiday="human-rights"] {
  --pu: #1565C0; --pu-hi: #42A5F5;
  --te: #0D47A1; --gn: #1976D2;
  --bg: #020610; --sf: #050d1a; --tx: #e3f2fd;
  --bd: rgba(21,101,192,0.15);
  --holiday-accent: #1565C0;
  --holiday-glow: rgba(21,101,192,0.2);
}

/* ---- Good Friday ---- */
[data-holiday="good-friday"] {
  --pu: #7B1FA2; --pu-hi: #9C27B0;
  --te: #4A148C; --gn: #8E24AA;
  --bg: #0a0510; --sf: #120a1a; --tx: #f3e5f5;
  --bd: rgba(123,31,162,0.12);
  --holiday-accent: #7B1FA2;
  --holiday-glow: rgba(123,31,162,0.15);
}

/* ---- Family Day (Easter Monday) ---- */
[data-holiday="family"] {
  --pu: #FF9800; --pu-hi: #FFB74D;
  --te: #F57C00; --gn: #FFA726;
  --bg: #0a0600; --sf: #140e00; --tx: #fff3e0;
  --bd: rgba(255,152,0,0.1);
  --holiday-accent: #FF9800;
  --holiday-glow: rgba(255,152,0,0.15);
}

/* ---- Freedom Day (Apr 27) ---- */
[data-holiday="freedom"] {
  --pu: #00695C; --pu-hi: #26A69A;
  --te: #FFD700; --gn: #00897B;
  --bg: #020a08; --sf: #051210; --tx: #e0f2f1;
  --bd: rgba(0,105,92,0.15);
  --holiday-accent: #00695C;
  --holiday-glow: rgba(0,105,92,0.2);
}

/* ---- Workers' Day (May 1) ---- */
[data-holiday="workers"] {
  --pu: #C62828; --pu-hi: #EF5350;
  --te: #B71C1C; --gn: #E53935;
  --bg: #0a0202; --sf: #140505; --tx: #ffebee;
  --bd: rgba(198,40,40,0.12);
  --holiday-accent: #C62828;
  --holiday-glow: rgba(198,40,40,0.15);
}

/* ---- Youth Day (Jun 16) ---- */
[data-holiday="youth"] {
  --pu: #7CB342; --pu-hi: #9CCC65;
  --te: #558B2F; --gn: #8BC34A;
  --bg: #060a02; --sf: #0c1205; --tx: #f1f8e9;
  --bd: rgba(124,179,66,0.12);
  --holiday-accent: #7CB342;
  --holiday-glow: rgba(124,179,66,0.15);
}

/* ---- Women's Day (Aug 9) ---- */
[data-holiday="women"] {
  --pu: #AD1457; --pu-hi: #EC407A;
  --te: #880E4F; --gn: #D81B60;
  --bg: #0a0208; --sf: #140510; --tx: #fce4ec;
  --bd: rgba(173,20,87,0.12);
  --holiday-accent: #AD1457;
  --holiday-glow: rgba(173,20,87,0.15);
}

/* ---- Heritage Day (Sep 24) ---- */
[data-holiday="heritage"] {
  --pu: #E65100; --pu-hi: #FF9800;
  --te: #BF360C; --gn: #F57C00;
  --bg: #0a0400; --sf: #140a00; --tx: #fff3e0;
  --bd: rgba(230,81,0,0.12);
  --holiday-accent: #E65100;
  --holiday-glow: rgba(230,81,0,0.15);
}

/* ---- Day of Reconciliation (Dec 16) ---- */
[data-holiday="reconciliation"] {
  --pu: #00838F; --pu-hi: #26C6DA;
  --te: #006064; --gn: #00ACC1;
  --bg: #020a0a; --sf: #051212; --tx: #e0f7fa;
  --bd: rgba(0,131,143,0.12);
  --holiday-accent: #00838F;
  --holiday-glow: rgba(0,131,143,0.15);
}

/* === HOLIDAY UI EFFECTS === */
/* Applied to common components when a holiday theme is active */

/* Sidebar and topbar glow */
body.holiday-active .topbar {
  border-bottom: 1px solid var(--holiday-glow);
  box-shadow: 0 1px 20px var(--holiday-glow);
}
body.holiday-active .sidebar {
  border-right: 1px solid var(--holiday-glow);
}

/* Logo and wordmark */
body.holiday-active .sb-wordmark {
  background: linear-gradient(135deg, var(--pu), var(--te));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
body.holiday-active .sb-logo svg circle:first-child { fill: var(--pu); }
body.holiday-active .sb-logo svg circle:nth-child(2) { stroke: var(--te); }
body.holiday-active .sb-logo svg circle:nth-child(3) { stroke: var(--gn); }

/* Interactive elements */
body.holiday-active .ib:hover { background: var(--holiday-glow); }
body.holiday-active .ndot {
  background: var(--pu);
  box-shadow: 0 0 8px var(--holiday-glow);
}

/* Cards and panels */
body.holiday-active .card {
  border-color: var(--bd);
  box-shadow: 0 0 20px var(--holiday-glow);
}

/* Buttons */
body.holiday-active .btn-pu {
  background: var(--pu);
  box-shadow: 0 0 15px var(--holiday-glow);
}
body.holiday-active .btn-pu:hover {
  background: var(--pu-hi);
  box-shadow: 0 0 25px var(--holiday-glow);
}

/* Modals */
body.holiday-active .modal {
  border-color: var(--bd);
  box-shadow: 0 0 40px var(--holiday-glow);
}
body.holiday-active .modal .mh { border-bottom-color: var(--bd); }

/* Toasts */
body.holiday-active .toast {
  border-color: var(--bd);
  box-shadow: 0 0 20px var(--holiday-glow);
}

/* Badges and tags */
body.holiday-active .badge,
body.holiday-active .tag {
  background: var(--holiday-glow);
  border-color: var(--bd);
}

/* Progress bars and gauges */
body.holiday-active .progress-bar {
  background: linear-gradient(90deg, var(--pu), var(--te));
}
body.holiday-active .gauge-fill { stroke: var(--pu); }

/* Kanban */
body.holiday-active .kanban-col { border-color: var(--bd); }
body.holiday-active .kanban-card {
  border-color: var(--bd);
  box-shadow: 0 0 10px var(--holiday-glow);
}

/* Chat */
body.holiday-active .chat-bubble { border-color: var(--bd); }
body.holiday-active .chat-bubble.own { background: var(--holiday-glow); }

/* Drawflow automation builder */
body.holiday-active .drawflow .drawflow-node {
  border-color: var(--bd);
  box-shadow: 0 0 10px var(--holiday-glow);
}
body.holiday-active .drawflow .drawflow-node.selected {
  border-color: var(--pu);
  box-shadow: 0 0 20px var(--holiday-glow);
}
body.holiday-active .drawflow .connection .main-path { stroke: var(--pu); }
body.holiday-active .drawflow .connection .main-path.selected { stroke: var(--te); }
body.holiday-active .drawflow .connection .main-path:hover { stroke: var(--pu-hi); }
body.holiday-active .drawflow .drawflow-node .title-box {
  background: var(--sf);
  border-color: var(--bd);
}
body.holiday-active .drawflow .drawflow-node .input,
body.holiday-active .drawflow .drawflow-node .output {
  background: var(--bg);
  border-color: var(--bd);
}
body.holiday-active .drawflow .drawflow-node .input-title,
body.holiday-active .drawflow .drawflow-node .output-title { color: var(--tx); }
body.holiday-active .drawflow .drawflow-node .input-circle {
  background: var(--pu);
  border-color: var(--pu-hi);
}
body.holiday-active .drawflow .drawflow-node .output-circle {
  background: var(--te);
  border-color: var(--te);
}
body.holiday-active .drawflow .drawflow-node .input-circle:hover { background: var(--pu-hi); }
body.holiday-active .drawflow .drawflow-node .output-circle:hover { background: var(--te); }
body.holiday-active .drawflow .drawflow-node .input-circle.selected {
  background: var(--gn);
  border-color: var(--gn);
}
body.holiday-active .drawflow .drawflow-node .output-circle.selected {
  background: var(--gn);
  border-color: var(--gn);
}

/* ---- Winter snow animation (Dec/Jan holidays) ---- */
body.holiday-active[data-holiday="christmas"]::before,
body.holiday-active[data-holiday="goodwill"]::before,
body.holiday-active[data-holiday="new-year"]::before,
body.holiday-active[data-holiday="christmas-eve"]::before,
body.holiday-active[data-holiday="new-year-eve"]::before {
  content: '';
  position: fixed;
  top: -100%;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9998;
  background-image:
    radial-gradient(3px 3px at 25px 35px, rgba(255,255,255,0.8), transparent),
    radial-gradient(2px 2px at 75px 85px, rgba(255,255,255,0.6), transparent),
    radial-gradient(3px 3px at 125px 45px, rgba(255,255,255,0.9), transparent),
    radial-gradient(2px 2px at 175px 95px, rgba(255,255,255,0.7), transparent),
    radial-gradient(3px 3px at 225px 55px, rgba(255,255,255,0.8), transparent),
    radial-gradient(2px 2px at 275px 75px, rgba(255,255,255,0.6), transparent),
    radial-gradient(3px 3px at 325px 25px, rgba(255,255,255,0.9), transparent),
    radial-gradient(2px 2px at 375px 65px, rgba(255,255,255,0.7), transparent),
    radial-gradient(3px 3px at 425px 105px, rgba(255,255,255,0.8), transparent),
    radial-gradient(2px 2px at 475px 45px, rgba(255,255,255,0.6), transparent);
  background-size: 500px 150px;
  animation: snow-fall 10s linear infinite;
  opacity: 0.5;
}
body.holiday-active[data-holiday="christmas"]::after,
body.holiday-active[data-holiday="goodwill"]::after,
body.holiday-active[data-holiday="new-year"]::after,
body.holiday-active[data-holiday="christmas-eve"]::after,
body.holiday-active[data-holiday="new-year-eve"]::after {
  content: '';
  position: fixed;
  top: -100%;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9998;
  background-image:
    radial-gradient(2px 2px at 50px 60px, rgba(255,255,255,0.5), transparent),
    radial-gradient(3px 3px at 150px 20px, rgba(255,255,255,0.4), transparent),
    radial-gradient(2px 2px at 250px 90px, rgba(255,255,255,0.6), transparent),
    radial-gradient(3px 3px at 350px 40px, rgba(255,255,255,0.5), transparent),
    radial-gradient(2px 2px at 450px 70px, rgba(255,255,255,0.4), transparent);
  background-size: 500px 200px;
  animation: snow-fall 15s linear infinite reverse;
  opacity: 0.3;
}
@keyframes snow-fall {
  0% { transform: translateY(0); }
  100% { transform: translateY(200vh); }
}

/* ---- Holiday indicator badge ---- */
body.holiday-active::after {
  content: '\2728 ' attr(data-holiday-label) ' \2728';
  position: fixed;
  bottom: 12px;
  right: 12px;
  z-index: 9999;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.5px;
  color: var(--tx);
  background: var(--sf);
  border: 1px solid var(--bd);
  box-shadow: 0 0 15px var(--holiday-glow);
  pointer-events: none;
  opacity: 0.85;
}

/* ---- Light theme overrides for holidays ---- */
[data-theme="light"] [data-holiday="christmas"] {
  --bg: #fef5f5; --sf: #fff; --tx: #2a0a0a;
}
[data-theme="light"] [data-holiday="goodwill"] {
  --bg: #f5fef5; --sf: #fff; --tx: #0a2a0a;
}
[data-theme="light"] [data-holiday="new-year"] {
  --bg: #fffdf0; --sf: #fff; --tx: #2a2000;
}
[data-theme="light"] [data-holiday="new-year-eve"] {
  --bg: #fff8e8; --sf: #fff; --tx: #2a1a00;
}
[data-theme="light"] [data-holiday="human-rights"] {
  --bg: #f0f7ff; --sf: #fff; --tx: #0a1a30;
}
[data-theme="light"] [data-holiday="good-friday"] {
  --bg: #faf5ff; --sf: #fff; --tx: #1a0a20;
}
[data-theme="light"] [data-holiday="family"] {
  --bg: #fff8f0; --sf: #fff; --tx: #2a1800;
}
[data-theme="light"] [data-holiday="freedom"] {
  --bg: #f0fffc; --sf: #fff; --tx: #002018;
}
[data-theme="light"] [data-holiday="workers"] {
  --bg: #fff5f5; --sf: #fff; --tx: #2a0505;
}
[data-theme="light"] [data-holiday="youth"] {
  --bg: #f8fff0; --sf: #fff; --tx: #1a2a00;
}
[data-theme="light"] [data-holiday="women"] {
  --bg: #fff5fa; --sf: #fff; --tx: #2a0518;
}
[data-theme="light"] [data-holiday="heritage"] {
  --bg: #fff8f0; --sf: #fff; --tx: #2a1500;
}
[data-theme="light"] [data-holiday="reconciliation"] {
  --bg: #f0ffff; --sf: #fff; --tx: #002020;
}
