xref: /plugin/calendar/style.css (revision 96df7d3e9a825dddf459ab1ee6077a9886837f17)
1/* Compact Calendar Plugin - Sleek Design */
2
3/* Main container: Responsive with flexible sizing */
4.calendar-compact-container {
5    display: flex;
6    width: 100%;
7    max-width: 1200px;
8    min-width: 320px;
9    height: 600px;
10    max-height: 90vh;
11    background-color: var(--background-site, #ffffff);
12    border: 1px solid var(--border-color, #d0d0d0);
13    border-radius: 4px;
14    box-shadow: 0 2px 4px rgba(0,0,0,0.06);
15    overflow: hidden;
16    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
17    font-size: 12px;
18}
19
20/* Dark theme borders - match sidebar widget style */
21.calendar-theme-matrix.calendar-compact-container {
22    border: 2px solid var(--border-main, #00cc07);
23    box-shadow: 0 0 10px var(--shadow-color, rgba(0, 204, 7, 0.3));
24}
25
26.calendar-theme-purple.calendar-compact-container {
27    border: 2px solid var(--border-main, #9b59b6);
28    box-shadow: 0 0 10px var(--shadow-color, rgba(155, 89, 182, 0.3));
29}
30
31.calendar-theme-pink.calendar-compact-container {
32    border: 2px solid var(--border-main, #ff1493);
33    box-shadow: 0 0 10px var(--shadow-color, rgba(255, 20, 147, 0.4));
34}
35
36/* Mobile responsive */
37@media (max-width: 768px) {
38    .calendar-compact-container {
39        flex-direction: column;
40        height: auto;
41        min-height: 400px;
42        max-height: none;
43    }
44
45    .calendar-compact-left {
46        width: 100% !important;
47        min-width: 100% !important;
48        border-right: none !important;
49        border-bottom: 1px solid var(--border-color, #e0e0e0);
50        height: auto;
51        min-height: 300px;
52    }
53
54    .calendar-compact-right {
55        width: 100% !important;
56        min-width: 100% !important;
57        max-height: 400px;
58    }
59}
60
61/* Tablet responsive */
62@media (max-width: 1024px) and (min-width: 769px) {
63    .calendar-compact-container {
64        max-width: 100%;
65    }
66
67    .calendar-compact-left {
68        width: 60% !important;
69        min-width: 400px;
70    }
71
72    .calendar-compact-right {
73        width: 40% !important;
74        min-width: 250px;
75    }
76}
77
78/* Small screens */
79@media (max-width: 600px) {
80    .calendar-compact-container {
81        font-size: 11px;
82        height: auto;
83        max-height: none;
84    }
85}
86
87/* Left side: Calendar - FLEXIBLE */
88.calendar-compact-left {
89    flex: 1;
90    min-width: 400px;
91    border-right: 1px solid var(--border-color, #e0e0e0);
92    display: flex;
93    flex-direction: column;
94    background: var(--background-site);
95    overflow: hidden;
96}
97
98/* Right side: Event list - FLEXIBLE */
99.calendar-compact-right {
100    flex: 0 0 300px;
101    min-width: 250px;
102    max-width: 400px;
103    display: flex;
104    flex-direction: column;
105    background: var(--background-site);
106    overflow: hidden;
107}
108
109/* Calendar header - COMPACT */
110.calendar-compact-header {
111    display: flex;
112    align-items: center;
113    gap: 12px;
114    padding: 8px 12px;
115    background: var(--background-header);
116    color: var(--text-primary);
117    border-bottom: 1px solid var(--border-color, #e0e0e0);
118}
119
120/* Namespace filter indicator at top of calendar */
121.calendar-namespace-filter {
122    display: flex;
123    align-items: center;
124    gap: 6px;
125    padding: 6px 10px;
126    background: var(--cell-today-bg, #e8f5e9);
127    border: 1px solid var(--border-main, #81c784);
128    border-radius: 4px;
129    margin: 8px 12px 0 12px;
130    font-size: 11px;
131}
132
133.namespace-filter-label {
134    color: var(--text-bright, #2e7d32);
135    font-weight: 600;
136}
137
138.namespace-filter-name {
139    background: var(--text-bright, #00cc07);
140    color: var(--background-site, white);
141    padding: 2px 6px;
142    border-radius: 3px;
143    font-weight: 500;
144    font-family: monospace;
145    font-size: 10px;
146}
147
148.namespace-filter-clear {
149    background: none;
150    border: none;
151    color: var(--text-bright, #00cc07);
152    cursor: pointer;
153    font-size: 16px;
154    padding: 0;
155    width: 20px;
156    height: 20px;
157    display: flex;
158    align-items: center;
159    justify-content: center;
160    border-radius: 3px;
161    margin-left: auto;
162    transition: background 0.2s;
163}
164
165.namespace-filter-clear:hover {
166    background: var(--cell-today-bg, rgba(0, 204, 7, 0.1));
167}
168
169.namespace-filter-badge {
170    position: relative;
171    padding-right: 24px !important;
172}
173
174.filter-clear-inline {
175    position: absolute;
176    right: 4px;
177    top: 50%;
178    transform: translateY(-50%);
179    background: none;
180    border: none;
181    color: var(--text-dim, #999);
182    cursor: pointer;
183    font-size: 12px;
184    padding: 0;
185    width: 16px;
186    height: 16px;
187    border-radius: 50%;
188    display: flex;
189    align-items: center;
190    justify-content: center;
191    transition: all 0.15s;
192    line-height: 1;
193}
194
195.filter-clear-inline:hover {
196    background: var(--cell-bg, rgba(211, 47, 47, 0.1));
197    color: var(--text-bright, #d32f2f);
198}
199
200.calendar-compact-header h3 {
201    margin: 0;
202    font-size: 14px;
203    font-weight: 600;
204    color: var(--text-primary, #2c3e50);
205    flex: 1;
206    text-align: center;
207}
208
209.calendar-month-picker {
210    cursor: pointer;
211    user-select: none;
212    transition: all 0.15s;
213    padding: 4px 8px;
214    border-radius: 4px;
215}
216
217.calendar-month-picker:hover {
218    background: var(--cell-today-bg, #f0f0f0);
219    color: var(--text-bright, #008800);
220    box-shadow: 0 0 3px var(--shadow-color, rgba(0,0,0,0.1));
221}
222
223.month-picker-overlay {
224    position: fixed;
225    top: 0;
226    left: 0;
227    right: 0;
228    bottom: 0;
229    background: rgba(0, 0, 0, 0.5);
230    display: flex;
231    align-items: center;
232    justify-content: center;
233    z-index: 10000;
234}
235
236.month-picker-dialog {
237    background: var(--background-site, white);
238    border-radius: 8px;
239    padding: 20px;
240    box-shadow: 0 4px 20px var(--shadow-color, rgba(0, 0, 0, 0.3));
241    min-width: 300px;
242    border: 1px solid var(--border-main, transparent);
243}
244
245.month-picker-dialog h4 {
246    margin: 0 0 16px 0;
247    font-size: 16px;
248    font-weight: 600;
249    color: var(--text-primary, #2c3e50);
250}
251
252.month-picker-selects {
253    display: flex;
254    gap: 12px;
255    margin-bottom: 16px;
256}
257
258.month-picker-select {
259    flex: 1;
260    padding: 8px 12px;
261    border: 1px solid var(--border-color, #d0d0d0);
262    border-radius: 4px;
263    font-size: 14px;
264    background: var(--cell-bg, white);
265    color: var(--text-primary, #333);
266    cursor: pointer;
267}
268
269.month-picker-select:focus {
270    outline: none;
271    border-color: var(--text-bright, #008800);
272    box-shadow: 0 0 0 2px var(--shadow-color, rgba(0, 136, 0, 0.1));
273}
274
275.month-picker-actions {
276    display: flex;
277    gap: 8px;
278    justify-content: flex-end;
279}
280
281.cal-nav-btn {
282    background: var(--border-main);
283    border: 1px solid var(--border-color);
284    color: var(--background-site);
285    width: 28px;
286    height: 28px;
287    border-radius: 4px;
288    cursor: pointer;
289    font-size: 16px;
290    transition: all 0.15s;
291    padding: 0;
292    display: flex;
293    align-items: center;
294    justify-content: center;
295}
296
297.cal-nav-btn:hover {
298    filter: brightness(1.3);
299    box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3));
300    transform: scale(1.08);
301}
302
303.cal-nav-btn:active {
304    filter: brightness(0.85);
305    transform: scale(0.95);
306    box-shadow: none;
307}
308
309.cal-today-btn {
310    background: var(--border-main);
311    border: 1px solid var(--border-color);
312    color: var(--background-site);
313    font-size: 11px;
314    font-weight: 600;
315    padding: 4px 10px;
316    border-radius: 4px;
317    cursor: pointer;
318    transition: all 0.15s;
319}
320
321.cal-today-btn:hover {
322    filter: brightness(1.3);
323    box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3));
324    transform: scale(1.08);
325}
326
327.cal-today-btn:active {
328    filter: brightness(0.85);
329    transform: scale(0.95);
330    box-shadow: none;
331}
332
333/* Calendar grid - Excel-like sizing - RESPONSIVE */
334.calendar-compact-grid {
335    width: 100%;
336    border-collapse: collapse;
337    table-layout: fixed;
338    flex: 1;
339    margin: 0 !important;
340    padding: 0;
341}
342
343/* Day name headers (SMTWTFS) - rendered as a separate grid div above the table
344   to avoid Firefox table-cell height issues where th matches td height */
345.calendar-day-headers {
346    display: grid;
347    grid-template-columns: repeat(7, 1fr);
348    background: var(--background-header);
349    border-bottom: 1px solid var(--border-color, #d0d0d0);
350    margin: 0;
351    padding: 0;
352}
353
354.calendar-day-headers span {
355    height: 22px;
356    line-height: 22px;
357    font-size: 10px;
358    font-weight: 600;
359    text-align: center;
360    color: var(--text-primary);
361    border-right: 1px solid var(--border-color, #e8e8e8);
362    box-sizing: border-box;
363}
364
365.calendar-day-headers span:last-child {
366    border-right: none;
367}
368
369.calendar-compact-grid tbody td {
370    height: 58px;
371    min-height: 40px;
372    border: 1px solid var(--border-color, #e8e8e8);
373    border-top: none;
374    border-left: none;
375    background-color: var(--background-site);  /* Use scoped CSS var from PHP */
376    color: var(--text-primary);
377    cursor: pointer;
378    padding: 3px;
379    position: relative;
380    vertical-align: top;
381    transition: background 0.1s;
382}
383
384/* Smaller cells on mobile */
385@media (max-width: 600px) {
386    .calendar-compact-grid tbody td {
387        height: 45px;
388        min-height: 35px;
389        padding: 2px;
390    }
391
392    .calendar-day-headers span {
393        height: 18px;
394        line-height: 18px;
395        font-size: 9px;
396    }
397}
398
399.calendar-compact-grid tbody td:first-child {
400    border-left: 1px solid var(--border-color, #e8e8e8);
401}
402
403.calendar-compact-grid tbody td:hover {
404    background-color: var(--background-alt);  /* Hover state uses scoped var */
405}
406
407.cal-empty {
408    background: var(--background-site);
409    cursor: default !important;
410}
411
412.cal-empty:hover {
413    background: var(--background-site);
414}
415
416.cal-day {
417    cursor: pointer;
418    transition: background 0.15s, box-shadow 0.15s;
419}
420
421.cal-day:hover {
422    background: var(--cell-today-bg) !important;
423    box-shadow: inset 0 0 0 1px var(--border-main, rgba(0,0,0,0.1));
424}
425
426.cal-today {
427    background: var(--cell-today-bg);
428}
429
430.cal-today:hover {
431    box-shadow: inset 0 0 0 2px var(--border-main, rgba(0,0,0,0.15));
432}
433
434.cal-has-events {
435    /* background removed - set via inline style with template colors */
436}
437
438.cal-has-events:hover {
439    /* background removed - inline style handles this */
440}
441
442.day-num {
443    display: inline-block;
444    font-size: 11px;
445    font-weight: 500;
446    color: var(--text-primary, #333);
447    padding: 1px 3px;
448}
449
450.cal-today .day-num,
451.day-num-today {
452    background: var(--border-main, #008800);
453    color: var(--background-site, white) !important;
454    border-radius: 50%;
455    font-weight: 700;
456    width: 20px;
457    height: 20px;
458    line-height: 20px;
459    text-align: center;
460    padding: 0;
461    display: inline-block;
462}
463
464.event-indicators {
465    position: absolute;
466    left: 20px;
467    right: 0;
468    top: 20px;
469    bottom: 2px;
470    display: flex;
471    flex-direction: column;
472    gap: 2px;
473    pointer-events: none;
474    overflow: visible;
475}
476
477.event-bar {
478    width: 100%;
479    min-height: 6px;
480    height: 6px;
481    border-radius: 2px;
482    cursor: pointer;
483    pointer-events: auto;
484    transition: all 0.2s;
485    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
486    position: relative;
487    overflow: visible;
488}
489
490.event-bar:hover {
491    transform: scaleY(1.3);
492    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
493    z-index: 10;
494}
495
496.event-bar-no-time {
497    /* Events without time appear at top */
498    order: -1;
499    opacity: 0.9;
500}
501
502.event-bar-timed {
503    /* Events with time are sorted by time */
504    opacity: 0.95;
505}
506
507/* Multi-day event styling - creates visual continuity */
508.event-bar-continues {
509    /* Event continues from previous day - extend left to cell edge */
510    border-top-left-radius: 0;
511    border-bottom-left-radius: 0;
512    margin-left: -20px;
513    padding-left: 20px;
514}
515
516.event-bar-continuing {
517    /* Event continues to next day - extend right to cell edge */
518    border-top-right-radius: 0;
519    border-bottom-right-radius: 0;
520    margin-right: -2px;
521    padding-right: 2px;
522}
523
524.event-bar-continues.event-bar-continuing {
525    /* Event continues both ways (middle of span) - no border radius, extends both sides */
526    border-radius: 0;
527}
528
529/* Important event bar styling */
530.event-bar-important {
531    box-shadow: 0 1px 3px rgba(255, 215, 0, 0.4);
532}
533
534/* Star is rendered via ::before pseudo-element */
535.event-bar-important.event-bar-has-star::before {
536    content: '⭐';
537    position: absolute;
538    left: -12px;
539    top: 50%;
540    transform: translateY(-50%);
541    font-size: 7px;
542    line-height: 1;
543    filter: drop-shadow(0 0 1px rgba(0,0,0,0.3));
544    pointer-events: none;
545}
546
547/* Hide the inline star span - we use ::before instead */
548.event-bar-star {
549    display: none;
550}
551
552/* Old event dot - removing */
553.event-dot {
554    display: none;
555}
556
557/* Event list header - COMPACT */
558.event-list-header {
559    display: flex;
560    align-items: center;
561    justify-content: space-between;
562    padding: 8px 10px;
563    border-bottom: 1px solid var(--border-color, #e0e0e0);
564    background: var(--background-header);
565    gap: 6px;
566    flex-wrap: nowrap;
567    overflow: hidden;
568}
569
570.event-list-header-content {
571    display: flex;
572    align-items: center;
573    gap: 6px;
574    flex: 0 0 auto;
575    min-width: 0;
576}
577
578.event-list-header h4 {
579    margin: 0;
580    font-size: 12px;
581    font-weight: 600;
582    color: var(--text-primary);
583    white-space: nowrap;
584}
585
586.namespace-badge {
587    background: var(--cell-today-bg, #e8f5e9);
588    color: var(--text-bright, #388e3c);
589    padding: 2px 6px;
590    border-radius: 10px;
591    font-size: 9px;
592    font-weight: 600;
593    text-transform: uppercase;
594    letter-spacing: 0.3px;
595    border: 1px solid var(--border-color, transparent);
596}
597
598/* Event search bar - inline in header */
599.event-search-container-inline {
600    position: relative;
601    flex: 1 1 auto;
602    min-width: 60px;
603    max-width: 160px;
604    margin: 0 4px;
605    display: flex;
606    gap: 0;
607}
608
609.event-search-input-inline {
610    flex: 1;
611    padding: 4px 24px 4px 8px;
612    border: 1px solid var(--border-color, #d0d0d0);
613    border-radius: 3px 0 0 3px;
614    font-size: 11px;
615    outline: none;
616    transition: border-color 0.2s, box-shadow 0.2s;
617    background: var(--cell-bg);
618    color: var(--text-primary);
619    min-width: 0;
620}
621
622.event-search-input-inline:focus {
623    border-color: var(--text-bright, #00cc07);
624    box-shadow: 0 0 0 2px var(--shadow-color, rgba(0, 204, 7, 0.1));
625}
626
627.event-search-input-inline::placeholder {
628    color: var(--text-dim);
629    font-size: 10px;
630}
631
632.event-search-clear-inline {
633    position: absolute;
634    right: 26px;
635    top: 50%;
636    transform: translateY(-50%);
637    background: none;
638    border: none;
639    color: var(--text-dim);
640    cursor: pointer;
641    padding: 2px 4px;
642    font-size: 12px;
643    line-height: 1;
644    transition: color 0.2s;
645}
646
647.event-search-clear-inline:hover {
648    color: var(--text-primary);
649}
650
651.event-search-mode-inline {
652    background: var(--cell-bg, #f0f0f0);
653    border: 1px solid var(--border-color, #d0d0d0);
654    border-left: none;
655    border-radius: 0 3px 3px 0;
656    padding: 0 5px;
657    cursor: pointer;
658    font-size: 10px;
659    transition: all 0.2s;
660    color: var(--text-dim, #666);
661    display: flex;
662    align-items: center;
663    flex-shrink: 0;
664}
665
666.event-search-mode-inline:hover {
667    background: var(--cell-today-bg, #e8f5e9);
668    color: var(--text-bright, #00cc07);
669}
670
671.event-search-mode-inline.all-dates {
672    background: var(--text-bright, #00cc07);
673    color: var(--background-site, white);
674    border-color: var(--text-bright, #00cc07);
675}
676
677.event-search-mode-inline.all-dates:hover {
678    filter: brightness(1.1);
679}
680
681.no-search-results {
682    text-align: center;
683    color: var(--text-dim);
684    font-size: 12px;
685    padding: 20px;
686    font-style: italic;
687}
688
689.add-event-compact {
690    background: var(--border-main);
691    color: var(--background-site);
692    border: none;
693    padding: 4px 8px;
694    border-radius: 3px;
695    font-size: 11px;
696    font-weight: 500;
697    cursor: pointer;
698    transition: all 0.15s;
699    flex-shrink: 0;
700    white-space: nowrap;
701}
702
703.add-event-compact:hover {
704    filter: brightness(1.3);
705    box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3));
706    transform: scale(1.05);
707}
708
709.add-event-compact:active {
710    filter: brightness(0.85);
711    transform: scale(0.95);
712}
713
714/* Event list scrollable area - COMPACT */
715.event-list-compact {
716    flex: 1;
717    overflow-y: auto;
718    padding: 6px;
719    background: var(--background-site);
720}
721
722.event-list-compact::-webkit-scrollbar {
723    width: 6px;
724}
725
726.event-list-compact::-webkit-scrollbar-track {
727    background: var(--cell-bg, #f5f5f5);
728}
729
730.event-list-compact::-webkit-scrollbar-thumb {
731    background: var(--border-color, #ccc);
732    border-radius: 3px;
733}
734
735.event-list-compact::-webkit-scrollbar-thumb:hover {
736    background: var(--text-dim, #aaa);
737}
738
739/* Event items in list - SUPER COMPACT with checkbox on right */
740.event-compact-item {
741    display: flex;
742    align-items: flex-start;
743    margin-bottom: 4px;
744    background-color: var(--background-site);
745    color: var(--text-primary);
746    border: 1px solid var(--border-color, #e0e0e0);
747    border-left: 3px solid var(--text-bright, #3498db);
748    border-radius: 3px;
749    padding: 5px 6px;
750    transition: box-shadow 0.15s, background 0.15s, transform 0.15s;
751    gap: 6px;
752    position: relative;
753}
754
755.event-compact-item:hover {
756    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
757    background-color: var(--background-alt);  /* Slightly different on hover */
758}
759
760.event-highlighted {
761    animation: highlightPulse 0.6s ease-in-out;
762    background: var(--tomorrow-bg, #fff9e6) !important;
763    box-shadow: 0 2px 8px var(--shadow-color, rgba(255, 193, 7, 0.4)) !important;
764}
765
766@keyframes highlightPulse {
767    0% {
768        background: var(--background-site, #ffffff);
769        box-shadow: 0 0 0 rgba(255, 193, 7, 0);
770    }
771    50% {
772        background: #fffbea;
773        box-shadow: 0 4px 12px rgba(255, 193, 7, 0.6);
774        transform: scale(1.02);
775    }
776    100% {
777        background: #fff9e6;
778        box-shadow: 0 2px 8px rgba(255, 193, 7, 0.4);
779        transform: scale(1);
780    }
781}
782
783/* Important namespace event highlighting */
784.event-important {
785    background: var(--important-bg, rgba(0, 204, 7, 0.06)) !important;
786    border-right: 2px solid var(--important-border, rgba(0, 204, 7, 0.3));
787}
788
789.event-important:hover {
790    background: var(--important-bg-hover, rgba(0, 204, 7, 0.1)) !important;
791}
792
793.event-important-star {
794    font-size: 10px;
795    flex-shrink: 0;
796}
797
798/* Theme-specific important event colors */
799.calendar-theme-matrix .event-important,
800.sidebar-matrix .event-important {
801    --important-bg: rgba(0, 204, 7, 0.08);
802    --important-bg-hover: rgba(0, 204, 7, 0.12);
803    --important-border: rgba(0, 204, 7, 0.4);
804}
805
806.calendar-theme-purple .event-important,
807.sidebar-purple .event-important {
808    --important-bg: rgba(156, 39, 176, 0.08);
809    --important-bg-hover: rgba(156, 39, 176, 0.12);
810    --important-border: rgba(156, 39, 176, 0.4);
811}
812
813.calendar-theme-pink .event-important,
814.sidebar-pink .event-important {
815    --important-bg: rgba(255, 105, 180, 0.1);
816    --important-bg-hover: rgba(255, 105, 180, 0.15);
817    --important-border: rgba(255, 105, 180, 0.5);
818}
819
820.calendar-theme-professional .event-important {
821    --important-bg: rgba(33, 150, 243, 0.08);
822    --important-bg-hover: rgba(33, 150, 243, 0.12);
823    --important-border: rgba(33, 150, 243, 0.4);
824}
825
826.calendar-theme-wiki .event-important {
827    --important-bg: rgba(0, 102, 204, 0.06);
828    --important-bg-hover: rgba(0, 102, 204, 0.1);
829    --important-border: rgba(0, 102, 204, 0.3);
830}
831
832.event-completed {
833    opacity: 0.55;
834    background: var(--cell-bg, #f5f5f5);
835}
836
837.event-completed .event-title-compact {
838    text-decoration: line-through;
839    color: var(--text-dim, #999);
840}
841
842.event-past {
843    opacity: 0.35;
844    background: var(--cell-bg, #fafafa);
845    font-size: 10px;
846    padding: 3px 6px;
847    margin-bottom: 2px;
848    cursor: pointer;
849    transition: all 0.2s ease;
850}
851
852.event-past:hover {
853    opacity: 0.6;
854    background: var(--cell-today-bg, #f5f5f5);
855}
856
857.event-past-expanded {
858    opacity: 0.8 !important;
859    background: var(--cell-bg, #f9f9f9) !important;
860    padding: 5px 6px !important;
861    font-size: 12px !important;
862}
863
864.event-past-expanded .event-title-compact {
865    font-size: 12px !important;
866    color: var(--text-dim, #666) !important;
867}
868
869.event-past-expanded .event-date-time {
870    font-size: 11px !important;
871    color: var(--text-dim, #888) !important;
872}
873
874.event-past .event-title-compact {
875    font-size: 10px;
876    color: var(--text-dim, #aaa);
877    font-weight: 400;
878}
879
880.event-past .event-date-time {
881    font-size: 9px;
882    color: var(--text-dim, #bbb);
883}
884
885.event-past .event-action-btn {
886    font-size: 11px;
887    opacity: 0.3;
888}
889
890.event-past .event-action-btn:hover {
891    opacity: 0.7;
892}
893
894.event-today-badge {
895    background: var(--border-main, #9b59b6);
896    color: var(--background-site, white);
897    padding: 1px 4px;
898    border-radius: 3px;
899    font-size: 9px;
900    font-weight: 600;
901    letter-spacing: 0.5px;
902    display: inline-block;
903    vertical-align: middle;
904    margin-left: auto; /* Right-align */
905    float: right; /* Force to right side */
906}
907
908.event-pastdue-badge {
909    background: var(--pastdue-color, #e74c3c);
910    color: white;
911    padding: 1px 4px;
912    border-radius: 3px;
913    font-size: 9px;
914    font-weight: 600;
915    letter-spacing: 0.5px;
916    display: inline-block;
917    vertical-align: middle;
918    margin-left: auto; /* Right-align */
919    float: right; /* Force to right side */
920}
921
922.event-pastdue {
923    border: 2px solid var(--pastdue-color, #e74c3c) !important;
924    border-radius: 4px;
925    opacity: 1 !important;
926}
927
928.event-namespace-badge {
929    background: var(--text-bright, #008800);
930    color: var(--background-site, white);
931    padding: 1px 4px;
932    border-radius: 3px;
933    font-size: 9px;
934    font-weight: 500;
935    display: inline-block;
936    vertical-align: middle;
937    margin-left: 4px;
938    cursor: pointer;
939    transition: all 0.15s;
940}
941
942.event-namespace-badge:hover {
943    filter: brightness(1.3);
944}
945
946.event-conflict-badge {
947    background: var(--border-main, #ff9800);
948    color: var(--background-site, white);
949    padding: 0px 4px;
950    border-radius: 2px;
951    font-size: 9px;
952    display: inline-block;
953    vertical-align: middle;
954    margin-left: 3px;
955    cursor: help;
956    animation: pulse-warning 2s infinite;
957    line-height: 14px;
958    border: 1px solid var(--text-bright, #ff9800);
959}
960
961@keyframes pulse-warning {
962    0%, 100% {
963        opacity: 1;
964    }
965    50% {
966        opacity: 0.7;
967    }
968}
969
970.event-conflict-badge:hover {
971    background: var(--text-bright, #f57c00);
972    animation: none;
973}
974
975/* Custom conflict tooltip - SMALLER FOR MAIN CALENDAR */
976.conflict-tooltip {
977    position: fixed;
978    z-index: 10000;
979    background: var(--background-site, white);
980    border: 1px solid var(--border-main, #ff9800);
981    border-radius: 3px;
982    box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2));
983    padding: 0;
984    min-width: 120px;
985    max-width: 200px;
986    opacity: 0;
987    transition: opacity 0.2s;
988    pointer-events: none;
989}
990
991/* Custom tooltip that appears above and to the left - FIXED POSITION */
992[data-tooltip] {
993    position: relative;
994    cursor: help;
995}
996
997[data-tooltip]:before {
998    content: attr(data-tooltip);
999    position: fixed;
1000    padding: 3px 6px;
1001    background: rgba(0, 0, 0, 0.95);
1002    color: var(--background-site, #fff);
1003    font-size: 9px;
1004    line-height: 1.3;
1005    white-space: pre-line;
1006    border-radius: 3px;
1007    opacity: 0;
1008    pointer-events: none;
1009    transition: opacity 0.2s;
1010    min-width: 120px;
1011    max-width: 200px;
1012    z-index: 10000;
1013    text-align: left;
1014    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
1015}
1016
1017[data-tooltip]:hover:before {
1018    opacity: 1;
1019}
1020
1021/* Pink theme tooltips - with hearts! */
1022.sidebar-pink [data-tooltip]:before {
1023    background: linear-gradient(135deg, #ff1493 0%, #ff69b4 100%);
1024    color: #fff;
1025    border: 2px solid #ff85c1;
1026    box-shadow: 0 0 15px rgba(255, 20, 147, 0.6), 0 4px 12px rgba(0, 0, 0, 0.4);
1027    font-weight: 600;
1028}
1029
1030.sidebar-pink [data-tooltip]:after {
1031    content: '��';
1032    position: fixed;
1033    font-size: 12px;
1034    opacity: 0;
1035    pointer-events: none;
1036    transition: opacity 0.2s;
1037    z-index: 10001;
1038    filter: drop-shadow(0 0 3px rgba(255, 20, 147, 0.8));
1039}
1040
1041.sidebar-pink [data-tooltip]:hover:after {
1042    opacity: 1;
1043}
1044
1045/* Position data-tooltip with JavaScript for no cutoff */
1046.data-tooltip-positioned:before {
1047    /* Position set by JavaScript */
1048}
1049
1050/* Allow sidebar to overflow for tooltips */
1051.sidebar-widget,
1052.sidebar-matrix {
1053    overflow: visible !important;
1054}
1055
1056.conflict-tooltip-header {
1057    background: var(--border-main, #ff9800);
1058    color: var(--background-site, white);
1059    padding: 4px 8px;
1060    font-weight: 600;
1061    font-size: 10px;
1062    border-radius: 2px 2px 0 0;
1063}
1064
1065.conflict-tooltip-body {
1066    padding: 6px 8px;
1067    font-size: 9px;
1068    line-height: 1.4;
1069}
1070
1071.conflict-item {
1072    padding: 2px 0;
1073    color: var(--text-primary, #333);
1074    border-bottom: 1px solid var(--border-color, #f0f0f0);
1075    font-size: 9px;
1076}
1077
1078.conflict-item:last-child {
1079    border-bottom: none;
1080}
1081
1082.event-info {
1083    flex: 1;
1084    min-width: 0;
1085    padding-right: 60px;
1086    text-align: left;
1087}
1088
1089.event-title-row {
1090    display: flex;
1091    align-items: center;
1092    gap: 4px;
1093}
1094
1095.event-title-compact {
1096    font-size: 12px;
1097    font-weight: 600;
1098    color: var(--text-primary, #2c3e50);
1099    overflow: hidden;
1100    text-overflow: ellipsis;
1101    white-space: nowrap;
1102    text-align: left;
1103}
1104
1105.event-meta-compact {
1106    font-size: 10px;
1107    color: var(--text-dim, #666);
1108    margin-top: 1px;
1109    text-align: left;
1110}
1111
1112.event-date-time {
1113    font-weight: 500;
1114}
1115
1116.event-desc-compact {
1117    font-size: 10px;
1118    color: var(--text-dim, #666);
1119    line-height: 1.4;
1120    margin-top: 2px;
1121    text-align: left;
1122    word-wrap: break-word;
1123    overflow-wrap: break-word;
1124}
1125
1126.event-desc-compact img.event-image {
1127    max-width: 100%;
1128    height: auto;
1129    margin: 4px 0;
1130    border-radius: 3px;
1131    display: block;
1132}
1133
1134.event-desc-compact a {
1135    color: var(--text-bright, #008800);
1136    text-decoration: none;
1137    border-bottom: 1px dotted var(--text-bright, #008800);
1138}
1139
1140.event-desc-compact a:hover {
1141    color: var(--text-primary, #388e3c);
1142    border-bottom-style: solid;
1143}
1144
1145.event-desc-compact strong,
1146.event-desc-compact b {
1147    font-weight: 600;
1148    color: var(--text-primary, #333);
1149}
1150
1151.event-desc-compact em,
1152.event-desc-compact i {
1153    font-style: italic;
1154}
1155
1156.event-desc-compact code {
1157    background: var(--cell-bg, #f5f5f5);
1158    padding: 1px 3px;
1159    border-radius: 2px;
1160    font-family: monospace;
1161    font-size: 9px;
1162    color: var(--text-primary, inherit);
1163}
1164
1165.event-actions-compact {
1166    position: absolute;
1167    top: 5px;
1168    right: 24px;
1169    display: flex;
1170    gap: 2px;
1171    flex-shrink: 0;
1172}
1173
1174.event-action-btn {
1175    background: none;
1176    border: none;
1177    font-size: 14px;
1178    cursor: pointer;
1179    padding: 2px;
1180    opacity: 0.5;
1181    transition: opacity 0.15s, transform 0.15s;
1182}
1183
1184.event-action-btn:hover {
1185    opacity: 1;
1186    transform: scale(1.15);
1187}
1188
1189.task-checkbox {
1190    position: absolute;
1191    top: 5px;
1192    right: 6px;
1193    width: 16px;
1194    height: 16px;
1195    margin: 0;
1196    cursor: pointer;
1197    flex-shrink: 0;
1198    accent-color: var(--text-bright, #008800);
1199    /* Custom checkbox - bright border for all themes */
1200    appearance: none;
1201    -webkit-appearance: none;
1202    border: 2px solid var(--text-bright, #008800);
1203    border-radius: 3px;
1204    background: var(--cell-bg, #fff);
1205    transition: all 0.15s;
1206    box-shadow: 0 0 3px var(--shadow-color, rgba(0,0,0,0.1));
1207}
1208
1209.task-checkbox:hover {
1210    border-color: var(--text-bright, #008800);
1211    box-shadow: 0 0 8px var(--shadow-color, rgba(0,0,0,0.25));
1212    transform: scale(1.1);
1213}
1214
1215.task-checkbox:checked {
1216    background: var(--text-bright, #008800);
1217    border-color: var(--text-bright, #008800);
1218    box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.2));
1219}
1220
1221.task-checkbox:checked::after {
1222    content: '✓';
1223    display: block;
1224    text-align: center;
1225    color: var(--background-site, white);
1226    font-size: 11px;
1227    font-weight: 700;
1228    line-height: 12px;
1229}
1230
1231.no-events-msg {
1232    text-align: center;
1233    color: var(--text-dim, #999);
1234    font-size: 12px;
1235    font-style: italic;
1236    padding: 40px 20px;
1237}
1238
1239/* Sleek Event Dialog - FULLY RESPONSIVE */
1240.event-dialog-compact {
1241    position: fixed;
1242    top: 0;
1243    left: 0;
1244    width: 100%;
1245    height: 100%;
1246    z-index: 9999;
1247    display: flex;
1248    align-items: center;
1249    justify-content: center;
1250    animation: fadeIn 0.2s ease;
1251    padding: 20px;
1252    box-sizing: border-box;
1253    overflow-y: auto;
1254}
1255
1256@keyframes fadeIn {
1257    from { opacity: 0; }
1258    to { opacity: 1; }
1259}
1260
1261.dialog-content-sleek {
1262    position: relative;
1263    background: var(--background-site, #ffffff);
1264    width: 100%;
1265    max-width: 450px;
1266    max-height: calc(100vh - 40px);
1267    border-radius: 8px;
1268    box-shadow: 0 8px 32px var(--shadow-color, rgba(0,0,0,0.2));
1269    z-index: 10000;
1270    animation: slideUp 0.3s ease;
1271    overflow: hidden;
1272    display: flex;
1273    flex-direction: column;
1274    margin: auto;
1275    border: 1px solid var(--border-main, transparent);
1276}
1277
1278/* Mobile responsive dialog */
1279@media (max-width: 768px) {
1280    .event-dialog-compact {
1281        padding: 10px;
1282    }
1283
1284    .dialog-content-sleek {
1285        max-width: 100%;
1286        width: calc(100% - 20px);
1287        max-height: calc(100vh - 20px);
1288    }
1289}
1290
1291@media (max-width: 480px) {
1292    .event-dialog-compact {
1293        padding: 0;
1294        align-items: flex-start;
1295    }
1296
1297    .dialog-content-sleek {
1298        width: 100%;
1299        max-width: 100%;
1300        max-height: 100vh;
1301        border-radius: 0;
1302        margin: 0;
1303    }
1304}
1305
1306@keyframes slideUp {
1307    from {
1308        transform: translateY(20px);
1309        opacity: 0;
1310    }
1311    to {
1312        transform: translateY(0);
1313        opacity: 1;
1314    }
1315}
1316
1317.dialog-header-sleek {
1318    display: flex;
1319    align-items: center;
1320    justify-content: space-between;
1321    padding: 10px 14px;
1322    background: var(--background-header, #2c3e50);
1323    color: var(--text-bright, white);
1324    cursor: move;
1325    flex-shrink: 0;
1326    border-bottom: 1px solid var(--border-main, transparent);
1327}
1328
1329.dialog-drag-handle {
1330    cursor: move;
1331}
1332
1333.dialog-header-sleek h3 {
1334    margin: 0;
1335    font-size: 15px;
1336    font-weight: 600;
1337}
1338
1339.dialog-close-btn {
1340    background: var(--cell-today-bg, rgba(255,255,255,0.2));
1341    border: none;
1342    color: white;
1343    font-size: 22px;
1344    width: 28px;
1345    height: 28px;
1346    border-radius: 50%;
1347    cursor: pointer;
1348    display: flex;
1349    align-items: center;
1350    justify-content: center;
1351    transition: all 0.2s;
1352    line-height: 1;
1353    padding: 0;
1354    flex-shrink: 0;
1355}
1356
1357.dialog-close-btn:hover {
1358    background: var(--cell-today-bg, rgba(255,255,255,0.3));
1359    transform: scale(1.1);
1360}
1361
1362.sleek-form {
1363    padding: 10px 12px;
1364    overflow-y: auto;
1365    overflow-x: hidden;
1366    flex: 1;
1367    max-height: calc(100vh - 160px);
1368    background: var(--background-site, #ffffff);
1369}
1370
1371/* Ensure form is scrollable on small screens */
1372@media (max-height: 600px) {
1373    .sleek-form {
1374        max-height: calc(100vh - 120px);
1375    }
1376}
1377
1378@media (max-height: 500px) {
1379    .sleek-form {
1380        max-height: calc(100vh - 100px);
1381    }
1382}
1383
1384/* Mobile: reduce form padding to maximize field width */
1385@media (max-width: 480px) {
1386    .sleek-form {
1387        padding: 8px;
1388    }
1389
1390    .sleek-form .form-field {
1391        margin-bottom: 8px;
1392    }
1393
1394    .sleek-form .input-sleek,
1395    .sleek-form .textarea-sleek,
1396    .sleek-form textarea,
1397    .sleek-form select {
1398        width: 100% !important;
1399        max-width: 100% !important;
1400        box-sizing: border-box !important;
1401    }
1402
1403    .sleek-form .form-row-group {
1404        gap: 6px;
1405    }
1406}
1407
1408.form-field {
1409    margin-bottom: 6px;
1410}
1411
1412/* Compact form elements */
1413.input-compact {
1414    height: 30px !important;
1415    padding: 4px 8px !important;
1416    font-size: 11px !important;
1417}
1418
1419.textarea-compact {
1420    min-height: 28px !important;
1421    padding: 4px 8px !important;
1422    font-size: 11px !important;
1423    line-height: 1.3 !important;
1424}
1425
1426.field-label-compact {
1427    font-size: 10px !important;
1428    margin-bottom: 2px !important;
1429    font-weight: 500;
1430    color: var(--text-dim, #555);
1431}
1432
1433.form-field-checkbox-compact {
1434    padding: 4px 8px !important;
1435    margin-bottom: 6px !important;
1436}
1437
1438.checkbox-label-compact {
1439    font-size: 10px !important;
1440    gap: 4px !important;
1441}
1442
1443.checkbox-label-compact input[type="checkbox"] {
1444    width: 13px !important;
1445    height: 13px !important;
1446    accent-color: var(--text-bright, #008800);
1447}
1448
1449.color-picker-compact {
1450    height: 30px !important;
1451}
1452
1453/* Responsive form fields */
1454@media (max-width: 480px) {
1455    .form-field {
1456        margin-bottom: 8px;
1457    }
1458}
1459
1460.form-field-checkbox {
1461    background: var(--cell-bg, #f1f8f4);
1462    padding: 8px;
1463    border-radius: 4px;
1464    border: 1px solid var(--border-main, #008800);
1465}
1466
1467.checkbox-label {
1468    display: flex;
1469    align-items: center;
1470    gap: 6px;
1471    cursor: pointer;
1472    font-size: 11px;
1473    font-weight: 500;
1474    color: var(--text-primary, #388e3c);
1475}
1476
1477.checkbox-label input[type="checkbox"] {
1478    width: 15px;
1479    height: 15px;
1480    cursor: pointer;
1481    accent-color: var(--text-bright, #008800);
1482}
1483
1484.recurring-options {
1485    background: var(--cell-bg, #f1f8f4);
1486    padding: 12px;
1487    border-radius: 4px;
1488    border: 1px solid var(--border-main, #81c784);
1489    margin-top: 8px;
1490}
1491
1492.form-row-group {
1493    display: grid;
1494    grid-template-columns: 1fr 1fr;
1495    gap: 10px;
1496    margin-bottom: 10px;
1497}
1498
1499@media (max-width: 768px) {
1500    .form-row-group {
1501        grid-template-columns: 1fr;
1502        gap: 8px;
1503    }
1504}
1505
1506.field-label {
1507    display: block;
1508    font-size: 11px;
1509    font-weight: 600;
1510    color: var(--text-primary, #2c3e50);
1511    margin-bottom: 5px;
1512    text-transform: uppercase;
1513    letter-spacing: 0.3px;
1514}
1515
1516@media (max-width: 480px) {
1517    .field-label {
1518        font-size: 10px;
1519    }
1520}
1521
1522.input-sleek {
1523    width: 100%;
1524    color: var(--text-primary, #333);
1525    padding: 8px 10px;
1526    border: 2px solid var(--border-color, #e0e0e0);
1527    border-radius: 4px;
1528    font-size: 13px;
1529    font-family: inherit;
1530    transition: all 0.2s;
1531    background: var(--cell-bg, #fafafa);
1532    box-sizing: border-box;
1533}
1534
1535.input-sleek:focus {
1536    outline: none;
1537    border-color: var(--text-bright, #008800);
1538    background: var(--background-site, white);
1539    box-shadow: 0 0 0 3px var(--shadow-color, rgba(33, 150, 243, 0.1));
1540}
1541
1542.input-sleek::placeholder,
1543.textarea-sleek::placeholder {
1544    color: var(--text-dim, #999);
1545}
1546
1547.input-date {
1548    font-weight: 500;
1549    color: var(--text-primary, #2c3e50);
1550    cursor: pointer;
1551}
1552
1553.input-date::-webkit-calendar-picker-indicator {
1554    cursor: pointer;
1555    font-size: 14px;
1556    padding: 2px;
1557}
1558
1559.textarea-sleek {
1560    width: 100%;
1561    resize: vertical;
1562    min-height: 60px;
1563    line-height: 1.4;
1564    box-sizing: border-box;
1565}
1566
1567.color-picker-container {
1568    display: flex;
1569    align-items: center;
1570    gap: 10px;
1571}
1572
1573.color-picker-wrapper {
1574    display: flex;
1575    align-items: center;
1576    gap: 8px;
1577}
1578
1579.color-picker-wrapper .color-select {
1580    flex: 1;
1581}
1582
1583.color-picker-input {
1584    width: 45px;
1585    height: 38px;
1586    border: 2px solid var(--border-color, #e0e0e0);
1587    border-radius: 6px;
1588    cursor: pointer;
1589    padding: 2px;
1590    display: none;
1591}
1592
1593.color-picker-input:hover {
1594    border-color: var(--text-bright, #4CAF50);
1595}
1596
1597.input-color-sleek {
1598    width: 50px;
1599    height: 38px;
1600    border: 2px solid var(--border-color, #e0e0e0);
1601    border-radius: 6px;
1602    cursor: pointer;
1603    transition: all 0.2s;
1604}
1605
1606.input-color-sleek:hover {
1607    border-color: var(--text-bright, #008800);
1608    transform: scale(1.05);
1609}
1610
1611.color-label {
1612    font-size: 11px;
1613    color: var(--text-dim, #666);
1614}
1615
1616.form-row-group {
1617    display: grid;
1618    grid-template-columns: 2fr 1fr;
1619    gap: 16px;
1620    margin-bottom: 20px;
1621}
1622
1623.field-label {
1624    display: block;
1625    font-size: 13px;
1626    font-weight: 600;
1627    color: var(--text-primary, #2c3e50);
1628    margin-bottom: 8px;
1629    text-transform: uppercase;
1630    letter-spacing: 0.5px;
1631}
1632
1633.input-sleek {
1634    width: 100%;
1635    color: var(--text-primary, #333);
1636    padding: 12px 16px;
1637    border: 2px solid var(--border-color, #e0e0e0);
1638    border-radius: 8px;
1639    font-size: 15px;
1640    font-family: inherit;
1641    transition: all 0.2s;
1642    background: var(--cell-bg, #fafafa);
1643    box-sizing: border-box;
1644}
1645
1646.input-sleek:focus {
1647    outline: none;
1648    border-color: var(--text-bright, #667eea);
1649    background: var(--background-site, white);
1650    box-shadow: 0 0 0 3px var(--shadow-color, rgba(102, 126, 234, 0.1));
1651}
1652
1653.input-date {
1654    font-weight: 500;
1655    color: var(--text-primary, #2c3e50);
1656    cursor: pointer;
1657}
1658
1659.input-date::-webkit-calendar-picker-indicator {
1660    cursor: pointer;
1661    font-size: 18px;
1662    padding: 4px;
1663}
1664
1665.textarea-sleek {
1666    resize: vertical;
1667    min-height: 80px;
1668    line-height: 1.5;
1669}
1670
1671.color-picker-container {
1672    display: flex;
1673    align-items: center;
1674    gap: 12px;
1675}
1676
1677.input-color-sleek {
1678    width: 60px;
1679    height: 44px;
1680    border: 2px solid var(--border-color, #e0e0e0);
1681    border-radius: 8px;
1682    cursor: pointer;
1683    transition: all 0.2s;
1684}
1685
1686.input-color-sleek:hover {
1687    border-color: var(--text-bright, #667eea);
1688    transform: scale(1.05);
1689}
1690
1691.color-label {
1692    font-size: 13px;
1693    color: var(--text-dim, #666);
1694}
1695
1696.form-field-checkbox {
1697    background: var(--cell-bg, #f1f8f4);
1698    padding: 12px;
1699    border-radius: 6px;
1700    border: 1px solid var(--border-main, #008800);
1701}
1702
1703.checkbox-label {
1704    display: flex;
1705    align-items: center;
1706    gap: 8px;
1707    cursor: pointer;
1708    font-size: 13px;
1709    font-weight: 500;
1710    color: var(--text-primary, #388e3c);
1711}
1712
1713.checkbox-label input[type="checkbox"] {
1714    width: 18px;
1715    height: 18px;
1716    cursor: pointer;
1717    accent-color: var(--text-bright, #008800);
1718}
1719
1720.form-row-group {
1721    display: grid;
1722    grid-template-columns: 1fr 1fr;
1723    gap: 12px;
1724    margin-bottom: 16px;
1725}
1726
1727@media (max-width: 768px) {
1728    .form-row-group {
1729        grid-template-columns: 1fr;
1730    }
1731}
1732
1733.dialog-actions-sleek {
1734    display: flex;
1735    gap: 8px;
1736    padding: 12px 14px;
1737    background: var(--cell-bg, #f8f9fa);
1738    border-top: 1px solid var(--border-color, #e0e0e0);
1739    justify-content: flex-end;
1740    flex-shrink: 0;
1741}
1742
1743/* Ensure buttons are visible on small screens */
1744@media (max-width: 480px) {
1745    .dialog-actions-sleek {
1746        padding: 10px;
1747    }
1748
1749    .btn-sleek {
1750        flex: 1;
1751        justify-content: center;
1752    }
1753}
1754
1755.btn-sleek {
1756    padding: 7px 14px;
1757    border: none;
1758    border-radius: 4px;
1759    font-size: 12px;
1760    font-weight: 600;
1761    cursor: pointer;
1762    transition: all 0.2s;
1763    display: inline-flex;
1764    align-items: center;
1765    gap: 4px;
1766}
1767
1768.btn-cancel-sleek {
1769    background: var(--border-color, #e0e0e0);
1770    color: var(--text-dim, #555);
1771}
1772
1773.btn-cancel-sleek:hover {
1774    filter: brightness(1.2);
1775    box-shadow: 0 0 4px var(--shadow-color, rgba(0,0,0,0.15));
1776}
1777
1778.btn-save-sleek {
1779    background: var(--text-bright, #008800);
1780    color: var(--background-site, white);
1781    box-shadow: 0 2px 4px var(--shadow-color, rgba(0,0,0,0.2));
1782}
1783
1784.btn-save-sleek:hover {
1785    filter: brightness(1.3);
1786    box-shadow: 0 4px 8px var(--shadow-color, rgba(0,0,0,0.3));
1787}
1788
1789.btn-save-sleek:active {
1790    transform: translateY(1px);
1791    filter: brightness(0.9);
1792}
1793
1794/* Day popup */
1795.day-popup {
1796    position: fixed;
1797    top: 0;
1798    left: 0;
1799    width: 100%;
1800    height: 100%;
1801    z-index: 10000;
1802    display: flex;
1803    align-items: center;
1804    justify-content: center;
1805    padding: 20px;
1806    box-sizing: border-box;
1807}
1808
1809.day-popup-overlay {
1810    position: absolute;
1811    top: 0;
1812    left: 0;
1813    width: 100%;
1814    height: 100%;
1815    background: rgba(0,0,0,0.5);
1816}
1817
1818.day-popup-content {
1819    position: relative;
1820    background: var(--background-site, white);
1821    width: 100%;
1822    max-width: 450px;
1823    max-height: calc(100vh - 40px);
1824    border-radius: 8px;
1825    box-shadow: 0 4px 20px var(--shadow-color, rgba(0,0,0,0.3));
1826    z-index: 10001;
1827    display: flex;
1828    flex-direction: column;
1829    border: 1px solid var(--border-main, transparent);
1830}
1831
1832/* Responsive day popup */
1833@media (max-width: 768px) {
1834    .day-popup {
1835        padding: 10px;
1836    }
1837
1838    .day-popup-content {
1839        max-width: 100%;
1840        max-height: calc(100vh - 20px);
1841    }
1842}
1843
1844@media (max-width: 480px) {
1845    .day-popup {
1846        padding: 0;
1847    }
1848
1849    .day-popup-content {
1850        width: 100%;
1851        max-width: 100%;
1852        max-height: 100vh;
1853        border-radius: 0;
1854    }
1855}
1856
1857.day-popup-header {
1858    display: flex;
1859    align-items: center;
1860    justify-content: space-between;
1861    padding: 10px 14px;
1862    border-bottom: 2px solid var(--border-main, #e0e0e0);
1863    background: var(--background-header, #fafafa);
1864    border-radius: 8px 8px 0 0;
1865    cursor: move;
1866    user-select: none;
1867}
1868
1869.day-popup-header h4 {
1870    margin: 0;
1871    font-size: 15px;
1872    font-weight: 600;
1873    color: var(--text-primary, #2c3e50);
1874    pointer-events: none;
1875}
1876
1877.popup-close {
1878    background: none;
1879    border: none;
1880    font-size: 24px;
1881    color: var(--text-dim, #999);
1882    cursor: pointer;
1883    width: 28px;
1884    height: 28px;
1885    display: flex;
1886    align-items: center;
1887    justify-content: center;
1888    border-radius: 4px;
1889    transition: all 0.15s;
1890    line-height: 1;
1891    padding: 0;
1892}
1893
1894.popup-close:hover {
1895    background: var(--cell-bg, #f0f0f0);
1896    color: var(--text-primary, #333);
1897}
1898
1899.day-popup-body {
1900    flex: 1;
1901    overflow-y: auto;
1902    padding: 10px 14px;
1903    max-height: 400px;
1904}
1905
1906.popup-events-list {
1907    display: flex;
1908    flex-direction: column;
1909    gap: 6px;
1910}
1911
1912.popup-continuation-notice {
1913    font-size: 10px;
1914    color: var(--text-dim, #666);
1915    background: var(--cell-bg, #f0f0f0);
1916    padding: 3px 8px;
1917    border-radius: 3px;
1918    margin-bottom: 4px;
1919    border-left: 3px solid var(--text-bright, #00cc07);
1920    font-weight: 500;
1921}
1922
1923.popup-event-item {
1924    display: flex;
1925    background: var(--cell-bg, #f8f9fa);
1926    border: 1px solid var(--border-color, #e0e0e0);
1927    border-radius: 4px;
1928    overflow: visible;
1929    transition: box-shadow 0.15s;
1930}
1931
1932.popup-event-item:hover {
1933    box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.1));
1934}
1935
1936.popup-event-content {
1937    flex: 1;
1938    padding: 6px 10px;
1939    min-width: 0;
1940}
1941
1942.popup-event-main-row {
1943    display: flex;
1944    align-items: flex-start;
1945    justify-content: space-between;
1946    gap: 8px;
1947    flex-wrap: wrap;
1948}
1949
1950.popup-event-info-inline {
1951    display: flex;
1952    align-items: center;
1953    gap: 6px;
1954    flex: 1;
1955    min-width: 0;
1956    flex-wrap: wrap;
1957}
1958
1959.popup-event-title {
1960    font-size: 13px;
1961    font-weight: 600;
1962    color: var(--text-primary, #2c3e50);
1963    word-break: break-word;
1964    flex: 1 1 100%;
1965    min-width: 100px;
1966}
1967
1968.popup-event-time {
1969    font-size: 11px;
1970    color: var(--text-bright, #008800);
1971    font-weight: 500;
1972    white-space: nowrap;
1973    flex-shrink: 0;
1974}
1975
1976.popup-event-multiday {
1977    font-size: 11px;
1978    color: var(--text-dim, #666);
1979    font-weight: 500;
1980    white-space: nowrap;
1981    flex-shrink: 0;
1982}
1983
1984.popup-event-namespace {
1985    font-size: 10px;
1986    color: var(--background-site, #fff);
1987    background: var(--text-bright, #008800);
1988    padding: 2px 6px;
1989    border-radius: 3px;
1990    font-weight: 500;
1991    white-space: nowrap;
1992    flex-shrink: 0;
1993}
1994
1995.popup-event-desc {
1996    font-size: 11px;
1997    color: var(--text-dim, #666);
1998    line-height: 1.4;
1999    margin-top: 4px;
2000    padding-left: 0;
2001}
2002
2003.popup-event-actions {
2004    display: flex;
2005    gap: 4px;
2006    flex-shrink: 0;
2007    align-self: flex-start;
2008}
2009
2010.event-edit-btn,
2011.event-delete-btn {
2012    background: none;
2013    border: none;
2014    font-size: 16px;
2015    cursor: pointer;
2016    padding: 4px;
2017    border-radius: 3px;
2018    transition: background 0.15s;
2019    line-height: 1;
2020    width: 24px;
2021    height: 24px;
2022    display: flex;
2023    align-items: center;
2024    justify-content: center;
2025}
2026
2027.event-edit-btn:hover {
2028    background: var(--cell-today-bg, #e8f5e9);
2029}
2030
2031.event-delete-btn:hover {
2032    background: var(--cell-today-bg, #ffebee);
2033}
2034
2035.day-popup-footer {
2036    padding: 10px 14px;
2037    border-top: 1px solid var(--border-color, #e0e0e0);
2038    background: var(--cell-bg, #fafafa);
2039    border-radius: 0 0 8px 8px;
2040}
2041
2042.btn-add-event {
2043    width: 100%;
2044    background: var(--text-bright, #008800);
2045    color: var(--background-site, white);
2046    border: none;
2047    padding: 10px 16px;
2048    border-radius: 6px;
2049    font-size: 14px;
2050    font-weight: 500;
2051    cursor: pointer;
2052    transition: background 0.15s;
2053}
2054
2055.btn-add-event:hover {
2056    filter: brightness(1.3);
2057    box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2));
2058}
2059
2060.btn-add-event:active {
2061    filter: brightness(0.85);
2062    transform: translateY(1px);
2063}
2064
2065.dialog-overlay {
2066    position: absolute;
2067    top: 0;
2068    left: 0;
2069    width: 100%;
2070    height: 100%;
2071    background: rgba(0,0,0,0.4);
2072}
2073
2074.dialog-content-compact {
2075    position: relative;
2076    background: white;
2077    width: 400px;
2078    border-radius: 6px;
2079    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
2080    padding: 20px;
2081    z-index: 10000;
2082}
2083
2084.dialog-content-compact h4 {
2085    margin: 0 0 16px 0;
2086    font-size: 16px;
2087    font-weight: 600;
2088    color: var(--text-primary, #2c3e50);
2089}
2090
2091.form-row {
2092    margin-bottom: 14px;
2093}
2094
2095.form-row-date {
2096    background: var(--cell-bg, #f1f8f4);
2097    padding: 10px;
2098    border-radius: 6px;
2099    border: 2px solid var(--border-main, #008800);
2100    margin-bottom: 18px;
2101}
2102
2103.form-row-date label {
2104    color: var(--text-bright, #388e3c);
2105    font-size: 13px;
2106}
2107
2108.form-row label {
2109    display: block;
2110    font-size: 12px;
2111    font-weight: 600;
2112    color: var(--text-dim, #555);
2113    margin-bottom: 4px;
2114}
2115
2116.form-row input[type="text"],
2117.form-row input[type="time"],
2118.form-row input[type="date"],
2119.form-row input[type="color"],
2120.form-row textarea {
2121    width: 100%;
2122    padding: 8px;
2123    border: 1px solid var(--border-color, #d0d0d0);
2124    border-radius: 4px;
2125    font-size: 13px;
2126    box-sizing: border-box;
2127    font-family: inherit;
2128}
2129
2130.form-row input[type="color"] {
2131    height: 36px;
2132    padding: 2px;
2133}
2134
2135.form-row textarea {
2136    resize: vertical;
2137}
2138
2139.dialog-actions {
2140    display: flex;
2141    gap: 8px;
2142    justify-content: flex-end;
2143    margin-top: 16px;
2144}
2145
2146.btn-save,
2147.btn-cancel {
2148    padding: 8px 16px;
2149    border: none;
2150    border-radius: 4px;
2151    font-size: 13px;
2152    font-weight: 500;
2153    cursor: pointer;
2154    transition: all 0.15s;
2155}
2156
2157.btn-save {
2158    background: var(--text-bright, #008800);
2159    color: var(--background-site, white);
2160}
2161
2162.btn-save:hover {
2163    filter: brightness(1.3);
2164    box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2));
2165}
2166
2167.btn-cancel {
2168    background: var(--cell-bg, #f5f5f5);
2169    color: var(--text-dim, #555);
2170    border: 1px solid var(--border-color, #d0d0d0);
2171}
2172
2173.btn-cancel:hover {
2174    filter: brightness(1.2);
2175    box-shadow: 0 0 4px var(--shadow-color, rgba(0,0,0,0.15));
2176}
2177
2178/* Standalone event list */
2179.eventlist-standalone {
2180    max-width: 700px;
2181    margin: 20px auto;
2182    background: white;
2183    border: 1px solid var(--border-color, #d0d0d0);
2184    border-radius: 6px;
2185    padding: 20px;
2186}
2187
2188.eventlist-standalone h3 {
2189    margin: 0 0 20px 0;
2190    font-size: 18px;
2191    font-weight: 600;
2192    color: var(--text-primary, #2c3e50);
2193    border-bottom: 2px solid var(--border-main, #008800);
2194    padding-bottom: 10px;
2195}
2196
2197/* Compact Event List Widget */
2198.eventlist-compact-widget {
2199    background: var(--background-site, #ffffff);
2200    border: 1px solid var(--border-color, #d0d0d0);
2201    border-radius: 6px;
2202    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
2203    overflow: visible;
2204    display: flex;
2205    flex-direction: column;
2206    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
2207}
2208
2209/* Simple 2-Line Event List (New Design) */
2210.eventlist-simple {
2211    width: 100%;
2212    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
2213    font-size: 11px;
2214    line-height: 1.4;
2215    overflow: visible;
2216}
2217
2218/* Compact pastel header for {{eventlist today}} - Single line */
2219.eventlist-today-header {
2220    display: flex;
2221    flex-direction: column;
2222    align-items: center;
2223    padding: 6px 10px 2px 10px;
2224    background: var(--cell-bg, #1a1a1a);
2225    color: var(--text-bright, #00cc07);
2226    border: 2px solid var(--text-bright, #00cc07);
2227    border-radius: 4px;
2228    margin-bottom: 8px;
2229    box-shadow: 0 0 8px var(--shadow-color, rgba(0, 204, 7, 0.2));
2230    gap: 3px;
2231    overflow: visible;
2232}
2233
2234/* Purple theme overrides */
2235.sidebar-purple .eventlist-today-header {
2236    border-color: var(--text-bright, #9b59b6);
2237    box-shadow: 0 0 8px var(--shadow-color, rgba(155, 89, 182, 0.2));
2238}
2239
2240/* Professional theme overrides */
2241.sidebar-professional .eventlist-today-header {
2242    border-color: var(--text-bright, #4a90e2);
2243    box-shadow: 0 2px 4px var(--shadow-color, rgba(0, 0, 0, 0.1));
2244}
2245
2246/* Pink theme overrides */
2247.sidebar-pink .eventlist-today-header {
2248    border-color: var(--text-bright, #ff1493);
2249    box-shadow: 0 0 6px var(--shadow-color, rgba(255, 20, 147, 0.25));
2250}
2251
2252.eventlist-bottom-info {
2253    display: flex;
2254    justify-content: space-between;
2255    align-items: center;
2256    width: 100%;
2257    gap: 10px;
2258    overflow: visible;
2259}
2260
2261.eventlist-weather {
2262    font-size: 13px;
2263    font-weight: 700;
2264    font-family: 'Courier New', monospace;
2265    letter-spacing: 0.3px;
2266    text-shadow: 0 0 1px var(--text-primary, rgba(0, 204, 7, 0.4));
2267    color: var(--text-primary, #00cc07);
2268    white-space: nowrap;
2269}
2270
2271.eventlist-today-date {
2272    font-size: 10px;
2273    font-weight: 700;
2274    color: var(--text-primary, #00cc07);
2275    letter-spacing: 0.5px;
2276    white-space: nowrap;
2277    text-transform: uppercase;
2278    text-align: center;
2279    flex: 1;
2280}
2281
2282.eventlist-today-clock {
2283    font-size: 16px;
2284    font-weight: 700;
2285    font-family: 'Courier New', monospace;
2286    letter-spacing: 1px;
2287    text-shadow: 0 0 2px var(--text-primary, rgba(0, 204, 7, 0.5));
2288    color: var(--text-primary, #00cc07);
2289}
2290
2291.eventlist-stats-container {
2292    width: 100%;
2293    display: flex;
2294    flex-direction: column;
2295    gap: 2px;
2296    margin: 0;
2297    overflow: visible;
2298}
2299
2300.eventlist-cpu-bar {
2301    width: 100%;
2302    height: 3px;
2303    background: var(--cell-today-bg, rgba(0, 204, 7, 0.1)) !important;
2304    border-radius: 1px;
2305    overflow: visible;
2306    position: relative;
2307    cursor: help;
2308}
2309
2310.system-tooltip {
2311    position: fixed;
2312    background: var(--cell-bg, rgba(0, 0, 0, 0.95)) !important;
2313    padding: 6px 8px;
2314    border-radius: 4px;
2315    font-size: 9px;
2316    line-height: 1.3;
2317    white-space: normal;
2318    min-width: 150px;
2319    max-width: 250px;
2320    z-index: 999999;
2321    border: 1px solid;
2322    box-shadow: 0 3px 8px rgba(0,0,0,0.5);
2323    pointer-events: none;
2324    /* Position will be set by JavaScript */
2325}
2326
2327.system-tooltip div {
2328    font-size: 9px !important;
2329    line-height: 1.3 !important;
2330    margin: 0;
2331}
2332
2333.system-tooltip .tooltip-title {
2334    font-weight: bold;
2335    margin-bottom: 2px;
2336}
2337
2338.eventlist-cpu-fill {
2339    height: 100%;
2340    background: var(--text-bright, #00cc07) !important;
2341    transition: width 0.3s ease;
2342    box-shadow: 0 0 4px var(--shadow-color, rgba(0, 204, 7, 0.6)) !important;
2343}
2344
2345.eventlist-cpu-fill-purple {
2346    background: var(--border-main, #9b59b6) !important;
2347    box-shadow: 0 0 4px var(--shadow-color, rgba(155, 89, 182, 0.6)) !important;
2348}
2349
2350.eventlist-cpu-fill-orange {
2351    background: var(--text-primary, #ff8c00) !important;
2352    box-shadow: 0 0 4px var(--shadow-color, rgba(255, 140, 0, 0.6)) !important;
2353}
2354
2355/* Pink theme system bars - different shades of pink */
2356.sidebar-pink .eventlist-cpu-fill {
2357    background: var(--text-bright, #ff1493) !important;
2358    box-shadow: 0 0 5px var(--shadow-color, rgba(255, 20, 147, 0.7)) !important;
2359}
2360
2361.sidebar-pink .eventlist-cpu-fill-purple {
2362    background: var(--border-main, #ff69b4) !important;
2363    box-shadow: 0 0 5px var(--shadow-color, rgba(255, 105, 180, 0.7)) !important;
2364}
2365
2366.sidebar-pink .eventlist-cpu-fill-orange {
2367    background: var(--text-primary, #ff85c1) !important;
2368    box-shadow: 0 0 5px var(--shadow-color, rgba(255, 133, 193, 0.7)) !important;
2369}
2370
2371.sidebar-pink .eventlist-cpu-realtime {
2372    background: var(--cell-today-bg, rgba(255, 20, 147, 0.1)) !important;
2373}
2374
2375.sidebar-pink .eventlist-mem-realtime {
2376    background: var(--cell-today-bg, rgba(255, 133, 193, 0.1)) !important;
2377}
2378
2379.eventlist-cpu-realtime {
2380    background: var(--cell-today-bg, rgba(155, 89, 182, 0.1)) !important;
2381}
2382
2383.eventlist-mem-realtime {
2384    background: var(--cell-today-bg, rgba(255, 140, 0, 0.1)) !important;
2385}
2386
2387.eventlist-simple-item {
2388    border-bottom: 1px solid var(--border-color, #e0e0e0);
2389    padding: 0;
2390}
2391
2392.eventlist-simple-item:last-child {
2393    border-bottom: none;
2394}
2395
2396.eventlist-simple-today {
2397    background: var(--cell-today-bg, #f3eeff) !important;
2398    border-left: 3px solid var(--border-main, #9b59b6) !important;
2399}
2400
2401.eventlist-simple-today .eventlist-simple-header {
2402    background: var(--cell-today-bg, #e8d9ff) !important;
2403}
2404
2405.eventlist-simple-today .eventlist-simple-body {
2406    background: var(--cell-bg, #f9f5ff) !important;
2407}
2408
2409.eventlist-simple-today-badge {
2410    background: var(--border-main, #9b59b6);
2411    color: var(--background-site, white);
2412    padding: 1px 4px;
2413    border-radius: 3px;
2414    font-size: 9px;
2415    font-weight: 600;
2416    letter-spacing: 0.5px;
2417    display: inline-block;
2418    vertical-align: middle;
2419    float: right; /* Right-align */
2420    margin-left: auto;
2421}
2422
2423.eventlist-simple-pastdue {
2424    background: var(--pastdue-bg, #ffe6e6) !important;
2425    border-left: 3px solid var(--pastdue-color, #e74c3c) !important;
2426}
2427
2428.eventlist-simple-pastdue .eventlist-simple-header {
2429    background: var(--pastdue-bg-strong, #ffd9d9) !important;
2430}
2431
2432.eventlist-simple-pastdue .eventlist-simple-body {
2433    background: var(--pastdue-bg-light, #fff2f2) !important;
2434}
2435
2436.eventlist-simple-pastdue-badge {
2437    background: var(--pastdue-color, #e74c3c);
2438    color: white;
2439    padding: 1px 4px;
2440    border-radius: 3px;
2441    font-size: 9px;
2442    font-weight: 600;
2443    letter-spacing: 0.5px;
2444    display: inline-block;
2445    vertical-align: middle;
2446    float: right; /* Right-align */
2447    margin-left: auto;
2448}
2449
2450.eventlist-simple-tomorrow {
2451    background: var(--tomorrow-bg, #fff9e6) !important;
2452}
2453
2454.eventlist-simple-tomorrow .eventlist-simple-header {
2455    background: var(--tomorrow-bg-strong, #fff4cc) !important;
2456}
2457
2458.eventlist-simple-tomorrow .eventlist-simple-body {
2459    background: var(--tomorrow-bg-light, #fffbf0) !important;
2460}
2461
2462.eventlist-simple-header {
2463    font-weight: 500;
2464    color: var(--text-primary, #2c3e50);
2465    padding: 4px 6px;
2466    line-height: 1.5;
2467    background: var(--cell-bg, #f5fcf5);
2468    font-size: 11px;
2469}
2470
2471.eventlist-simple-title {
2472    font-weight: 700;
2473    color: var(--text-bright, #ff6600);
2474    font-size: 12px;
2475}
2476
2477.eventlist-simple-time {
2478    color: var(--text-dim, #666);
2479    font-size: 10px;
2480}
2481
2482.eventlist-simple-date {
2483    color: var(--text-dim, #888);
2484    font-size: 10px;
2485}
2486
2487.eventlist-simple-namespace {
2488    background: var(--cell-today-bg, #e8f5e9);
2489    color: var(--text-bright, #388e3c);
2490    padding: 1px 4px;
2491    border-radius: 3px;
2492    font-size: 9px;
2493    font-weight: 500;
2494    margin-left: 4px;
2495}
2496
2497.eventlist-simple-body {
2498    color: var(--text-dim, #555);
2499    font-size: 11px;
2500    line-height: 1.5;
2501    padding: 4px 6px;
2502    background: var(--background-site, #fff);
2503}
2504
2505.eventlist-simple-body a {
2506    color: var(--text-bright, #008800);
2507    text-decoration: none;
2508}
2509
2510.eventlist-simple-body a:hover {
2511    text-decoration: underline;
2512}
2513
2514.eventlist-simple-body strong {
2515    font-weight: 600;
2516    color: var(--text-primary, #2c3e50);
2517}
2518
2519.eventlist-simple-body code {
2520    background: var(--cell-bg, #f5f5f5);
2521    padding: 1px 3px;
2522    border-radius: 3px;
2523    font-family: 'Courier New', monospace;
2524    font-size: 10px;
2525    color: var(--text-primary, inherit);
2526}
2527
2528.eventlist-simple-no-desc {
2529    display: none;
2530}
2531
2532.eventlist-simple-empty {
2533    padding: 10px 0;
2534    color: var(--text-dim, #999);
2535}
2536
2537.eventlist-simple-empty .eventlist-simple-header {
2538    margin-bottom: 4px;
2539    background: var(--cell-bg, #f5fcf5);
2540}
2541
2542.eventlist-simple-empty .eventlist-simple-body {
2543    color: var(--text-dim, #999);
2544    font-style: italic;
2545    padding: 4px 6px;
2546    font-size: 11px;
2547}
2548
2549.eventlist-widget-header {
2550    background: var(--text-bright, #008800);
2551    color: white;
2552    padding: 8px 12px;
2553    flex-shrink: 0;
2554}
2555
2556.eventlist-widget-header h4 {
2557    margin: 0;
2558    font-size: 13px;
2559    font-weight: 600;
2560}
2561
2562.eventlist-widget-content {
2563    overflow-y: auto;
2564    padding: 8px;
2565    flex: 1;
2566}
2567
2568.eventlist-widget-date {
2569    font-size: 11px;
2570    font-weight: 600;
2571    color: var(--text-dim, #666);
2572    margin: 8px 0 4px 0;
2573    padding-bottom: 2px;
2574    border-bottom: 1px solid var(--border-color, #e0e0e0);
2575}
2576
2577.eventlist-widget-item {
2578    background: var(--cell-bg, #fafafa);
2579    border: 1px solid var(--border-color, #e0e0e0);
2580    border-left: 3px solid var(--text-bright, #3498db);
2581    border-radius: 3px;
2582    padding: 6px 8px;
2583    margin-bottom: 6px;
2584    transition: all 0.15s;
2585}
2586
2587.eventlist-widget-item:hover {
2588    background: var(--cell-bg, #f0f0f0);
2589    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
2590}
2591
2592.eventlist-widget-title {
2593    font-size: 12px;
2594    font-weight: 600;
2595    color: var(--text-primary, #2c3e50);
2596    margin-bottom: 2px;
2597}
2598
2599.eventlist-widget-time {
2600    font-size: 11px;
2601    color: var(--text-dim, #666);
2602    margin-bottom: 4px;
2603}
2604
2605.eventlist-widget-desc {
2606    font-size: 11px;
2607    color: var(--text-dim, #555);
2608    margin-top: 4px;
2609    line-height: 1.4;
2610}
2611
2612.eventlist-widget-desc img {
2613    max-width: 100%;
2614    height: auto;
2615    border-radius: 3px;
2616    margin: 4px 0;
2617}
2618
2619.eventlist-widget-desc a {
2620    color: var(--text-bright, #008800);
2621    text-decoration: none;
2622    border-bottom: 1px dotted var(--text-bright, #008800);
2623}
2624
2625.eventlist-widget-desc a:hover {
2626    border-bottom-style: solid;
2627}
2628
2629.eventlist-widget-empty {
2630    text-align: center;
2631    color: var(--text-dim, #999);
2632    font-size: 12px;
2633    padding: 20px;
2634    margin: 0;
2635}
2636
2637/* Global themed link class (used in renderDescription) */
2638.cal-link {
2639    color: var(--text-bright, #008800) !important;
2640    text-decoration: none;
2641    border-bottom: 1px dotted var(--text-bright, #008800);
2642    transition: all 0.15s;
2643}
2644
2645.cal-link:hover {
2646    border-bottom-style: solid;
2647    opacity: 0.85;
2648}
2649
2650/* Sidebar widget links - inherit theme colors */
2651.sidebar-widget a.cal-link {
2652    color: var(--text-bright, #00cc07) !important;
2653    border-bottom-color: var(--text-bright, #00cc07);
2654}
2655
2656/* Standalone event panel (right panel only) */
2657.event-panel-standalone {
2658    width: 320px;
2659    background: var(--background-site, #ffffff);
2660    border: 1px solid var(--border-color, #d0d0d0);
2661    border-radius: 6px;
2662    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
2663    display: flex;
2664    flex-direction: column;
2665    max-height: 600px;
2666    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
2667    font-size: 13px;
2668}
2669
2670/* Dark theme borders for event panel - match sidebar widget style */
2671.event-panel-standalone[data-theme="matrix"] {
2672    border: 2px solid var(--border-main, #00cc07);
2673    box-shadow: 0 0 10px var(--shadow-color, rgba(0, 204, 7, 0.3));
2674}
2675
2676.event-panel-standalone[data-theme="purple"] {
2677    border: 2px solid var(--border-main, #9b59b6);
2678    box-shadow: 0 0 10px var(--shadow-color, rgba(155, 89, 182, 0.3));
2679}
2680
2681.event-panel-standalone[data-theme="pink"] {
2682    border: 2px solid var(--border-main, #ff1493);
2683    box-shadow: 0 0 10px var(--shadow-color, rgba(255, 20, 147, 0.4));
2684}
2685
2686.event-panel-standalone .event-list-compact {
2687    overflow-y: auto;
2688    flex: 1;
2689    padding: 10px;
2690}
2691
2692/* Event panel - Compact two-row header for ~500px width (10% smaller) */
2693.panel-header-compact {
2694    background: var(--cell-bg, #f5f5f5);
2695    border-bottom: 2px solid var(--border-color, #ddd);
2696}
2697
2698.panel-header-row-1 {
2699    display: flex;
2700    align-items: center;
2701    gap: 7px;
2702    padding: 7px 11px;
2703    background: var(--cell-bg, #fafafa);
2704    border-bottom: 1px solid var(--border-color, #e8e8e8);
2705}
2706
2707.panel-header-row-2 {
2708    display: flex;
2709    align-items: center;
2710    gap: 7px;
2711    padding: 7px 11px;
2712    background: var(--background-site, #ffffff);
2713}
2714
2715.panel-nav-btn {
2716    background: var(--cell-bg, #ffffff);
2717    border: 1px solid var(--border-color, #ccc);
2718    color: var(--text-primary, #333);
2719    width: 29px;
2720    height: 29px;
2721    border-radius: 4px;
2722    cursor: pointer;
2723    font-size: 16px;
2724    font-weight: bold;
2725    transition: all 0.2s;
2726    display: flex;
2727    align-items: center;
2728    justify-content: center;
2729    padding: 0;
2730    flex-shrink: 0;
2731}
2732
2733.panel-nav-btn:hover {
2734    background: var(--text-bright, #00cc07);
2735    color: var(--background-site, white);
2736    border-color: var(--text-bright, #00cc07);
2737    filter: brightness(1.2);
2738    box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3));
2739}
2740
2741.panel-month-title {
2742    margin: 0;
2743    font-size: 13px;
2744    font-weight: 600;
2745    color: var(--text-primary, #2c3e50);
2746    cursor: pointer;
2747    padding: 5px 9px;
2748    border-radius: 4px;
2749    transition: background 0.2s;
2750    white-space: nowrap;
2751    user-select: none;
2752    flex: 1;
2753    text-align: center;
2754    background: var(--cell-bg, #ffffff);
2755    border: 1px solid var(--border-color, #e0e0e0);
2756}
2757
2758.panel-month-title:hover {
2759    background: var(--cell-today-bg, #e8f5e9);
2760    border-color: var(--text-bright, #00cc07);
2761}
2762
2763.panel-ns-badge {
2764    background: var(--cell-today-bg, #e3f2fd);
2765    color: var(--text-bright, #1976d2);
2766    padding: 3px 7px;
2767    border-radius: 11px;
2768    font-size: 9px;
2769    font-weight: 600;
2770    text-transform: uppercase;
2771    letter-spacing: 0.3px;
2772    white-space: nowrap;
2773    border: 1px solid var(--border-color, #bbdefb);
2774    flex-shrink: 0;
2775}
2776
2777.panel-ns-badge.filter-on {
2778    background: var(--text-bright, #ff9800);
2779    color: var(--background-site, white);
2780    border-color: var(--border-main, #f57c00);
2781    cursor: pointer;
2782    transition: all 0.2s;
2783}
2784
2785.panel-ns-badge.filter-on:hover {
2786    filter: brightness(1.2);
2787}
2788
2789.panel-today-btn {
2790    background: var(--cell-bg, #ffffff);
2791    border: 1px solid var(--border-color, #ccc);
2792    color: var(--text-primary, #333);
2793    padding: 5px 11px;
2794    border-radius: 4px;
2795    cursor: pointer;
2796    font-size: 10px;
2797    font-weight: 600;
2798    transition: all 0.2s;
2799    white-space: nowrap;
2800    flex-shrink: 0;
2801}
2802
2803.panel-today-btn:hover {
2804    background: var(--text-bright, #00cc07);
2805    color: var(--background-site, white);
2806    border-color: var(--text-bright, #00cc07);
2807    filter: brightness(1.2);
2808    box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3));
2809}
2810
2811.panel-search-box {
2812    position: relative;
2813    flex: 1;
2814    display: flex;
2815    gap: 0;
2816}
2817
2818.panel-search-input {
2819    flex: 1;
2820    padding: 5px 25px 5px 9px;
2821    border: 1px solid var(--border-color, #d0d0d0);
2822    border-radius: 4px 0 0 4px;
2823    font-size: 11px;
2824    outline: none;
2825    transition: border-color 0.2s, box-shadow 0.2s;
2826    background: var(--cell-bg, #fafafa);
2827    color: var(--text-primary, #333);
2828}
2829
2830.panel-search-input:focus {
2831    border-color: var(--text-bright, #00cc07);
2832    box-shadow: 0 0 0 2px var(--shadow-color, rgba(0, 204, 7, 0.1));
2833    background: var(--background-site, white);
2834}
2835
2836.panel-search-input::placeholder {
2837    color: var(--text-dim, #999);
2838}
2839
2840.panel-search-clear {
2841    position: absolute;
2842    right: 28px;
2843    top: 50%;
2844    transform: translateY(-50%);
2845    background: none;
2846    border: none;
2847    color: var(--text-dim, #999);
2848    cursor: pointer;
2849    padding: 3px;
2850    font-size: 13px;
2851    line-height: 1;
2852    transition: color 0.2s;
2853}
2854
2855.panel-search-clear:hover {
2856    color: var(--text-primary, #333);
2857}
2858
2859.panel-search-mode {
2860    background: var(--cell-bg, #f0f0f0);
2861    border: 1px solid var(--border-color, #d0d0d0);
2862    border-left: none;
2863    border-radius: 0 4px 4px 0;
2864    padding: 0 6px;
2865    cursor: pointer;
2866    font-size: 11px;
2867    transition: all 0.2s;
2868    color: var(--text-dim, #666);
2869    display: flex;
2870    align-items: center;
2871}
2872
2873.panel-search-mode:hover {
2874    background: var(--cell-today-bg, #e8f5e9);
2875    color: var(--text-bright, #00cc07);
2876}
2877
2878.panel-search-mode.all-dates {
2879    background: var(--text-bright, #00cc07);
2880    color: var(--background-site, white);
2881    border-color: var(--text-bright, #00cc07);
2882}
2883
2884.panel-search-mode.all-dates:hover {
2885    filter: brightness(1.1);
2886}
2887
2888.panel-add-btn {
2889    background: var(--text-bright, #00cc07);
2890    border: 1px solid var(--border-main, #00a806);
2891    color: var(--background-site, white);
2892    padding: 5px 13px;
2893    border-radius: 4px;
2894    cursor: pointer;
2895    font-size: 11px;
2896    font-weight: 600;
2897    transition: all 0.2s;
2898    white-space: nowrap;
2899    flex-shrink: 0;
2900}
2901
2902.panel-add-btn:hover {
2903    filter: brightness(1.3);
2904    transform: translateY(-1px);
2905    box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2));
2906}
2907
2908.panel-standalone-header {
2909    display: flex;
2910    align-items: center;
2911    gap: 8px;
2912    padding: 12px 12px;
2913    background: var(--cell-bg, #fafafa);
2914    border-bottom: 1px solid var(--border-color, #e0e0e0);
2915    flex-shrink: 0;
2916}
2917
2918.panel-header-content {
2919    flex: 1;
2920    display: flex;
2921    flex-direction: column;
2922    align-items: center;
2923    gap: 4px;
2924}
2925
2926.panel-standalone-header h3 {
2927    margin: 0;
2928    font-size: 12px;
2929    font-weight: 600;
2930    color: var(--text-primary, #2c3e50);
2931    white-space: nowrap;
2932}
2933
2934.panel-standalone-header .calendar-month-picker {
2935    cursor: pointer;
2936    user-select: none;
2937    transition: all 0.15s;
2938    padding: 4px 8px;
2939    border-radius: 4px;
2940    white-space: nowrap;
2941}
2942
2943.panel-standalone-header .calendar-month-picker:hover {
2944    background: var(--cell-today-bg, #e8e8e8);
2945    color: var(--text-bright, #008800);
2946}
2947
2948.panel-standalone-header .namespace-badge {
2949    font-size: 11px;
2950    font-weight: 500;
2951    color: var(--text-bright, #388e3c);
2952    background: var(--cell-today-bg, #e8f5e9);
2953    padding: 2px 8px;
2954    border-radius: 3px;
2955    text-decoration: none;
2956    transition: all 0.15s;
2957    display: inline-block;
2958}
2959
2960.panel-standalone-header .namespace-badge:hover {
2961    background: var(--cell-bg, #c8e6c9);
2962    color: var(--text-primary, #2e7d32);
2963}
2964
2965.panel-standalone-actions {
2966    padding: 10px 16px;
2967    background: var(--background-site, #ffffff);
2968    border-bottom: 1px solid var(--border-color, #e0e0e0);
2969    flex-shrink: 0;
2970    display: flex;
2971    align-items: center;
2972    gap: 8px;
2973}
2974
2975.panel-standalone-actions .add-event-compact {
2976    flex-shrink: 0;
2977}
2978
2979.eventlist-day-group {
2980    margin-bottom: 24px;
2981}
2982
2983.eventlist-date {
2984    margin: 0 0 12px 0;
2985    font-size: 14px;
2986    font-weight: 600;
2987    color: var(--text-primary, #2c3e50);
2988    background: var(--cell-bg, #f8f8f8);
2989    padding: 8px 12px;
2990    border-left: 4px solid var(--border-main, #008800);
2991}
2992
2993.eventlist-item {
2994    display: flex;
2995    margin-bottom: 10px;
2996    background: white;
2997    border: 1px solid var(--border-color, #e0e0e0);
2998    border-radius: 4px;
2999    overflow: hidden;
3000}
3001
3002.eventlist-content {
3003    flex: 1;
3004    padding: 12px;
3005    display: flex;
3006    align-items: center;
3007    gap: 12px;
3008}
3009
3010.eventlist-time {
3011    font-size: 12px;
3012    font-weight: 600;
3013    color: var(--text-bright, #008800);
3014    min-width: 50px;
3015}
3016
3017.eventlist-title {
3018    font-size: 14px;
3019    font-weight: 500;
3020    color: var(--text-primary, #2c3e50);
3021}
3022
3023.eventlist-desc {
3024    font-size: 12px;
3025    color: var(--text-dim, #666);
3026    margin-top: 6px;
3027    line-height: 1.4;
3028}
3029
3030/* ===================================
3031   MOBILE RESPONSIVE - EVENTLIST & EVENTPANEL
3032   =================================== */
3033
3034/* Tablet and below (768px) */
3035@media (max-width: 768px) {
3036    /* Event Panel Standalone */
3037    .event-panel-standalone {
3038        width: 100%;
3039        max-width: 100%;
3040        border-radius: 0;
3041        max-height: none;
3042        min-height: 400px;
3043    }
3044
3045    /* Compact Event List Widget */
3046    .eventlist-compact-widget {
3047        width: 100% !important;
3048        max-width: 100%;
3049        border-radius: 0;
3050    }
3051
3052    .eventlist-widget-header h4 {
3053        font-size: 14px;
3054    }
3055
3056    .eventlist-widget-title {
3057        font-size: 13px;
3058    }
3059
3060    .eventlist-widget-time {
3061        font-size: 12px;
3062    }
3063
3064    /* Standalone event list (old style) */
3065    .eventlist-standalone {
3066        max-width: 100%;
3067        margin: 10px;
3068        padding: 15px;
3069        border-radius: 0;
3070    }
3071
3072    .eventlist-standalone h3 {
3073        font-size: 16px;
3074    }
3075}
3076
3077/* Mobile (480px and below) */
3078@media (max-width: 480px) {
3079    /* Event Panel Standalone */
3080    .event-panel-standalone {
3081        font-size: 12px;
3082        min-height: 300px;
3083    }
3084
3085    .panel-standalone-header {
3086        padding: 10px 12px;
3087    }
3088
3089    .panel-standalone-header h3 {
3090        font-size: 12px;
3091    }
3092
3093    .panel-standalone-actions {
3094        padding: 8px 12px;
3095    }
3096
3097    .event-panel-standalone .event-list-compact {
3098        padding: 8px;
3099    }
3100
3101    /* Compact Event List Widget */
3102    .eventlist-compact-widget {
3103        min-width: 280px;
3104    }
3105
3106    .eventlist-widget-header {
3107        padding: 6px 10px;
3108    }
3109
3110    .eventlist-widget-header h4 {
3111        font-size: 13px;
3112    }
3113
3114    .eventlist-widget-content {
3115        padding: 6px;
3116    }
3117
3118    .eventlist-widget-item {
3119        padding: 5px 6px;
3120        margin-bottom: 5px;
3121    }
3122
3123    .eventlist-widget-title {
3124        font-size: 12px;
3125    }
3126
3127    .eventlist-widget-time {
3128        font-size: 11px;
3129    }
3130
3131    .eventlist-widget-desc {
3132        font-size: 11px;
3133    }
3134
3135    /* Standalone event list */
3136    .eventlist-standalone {
3137        margin: 5px;
3138        padding: 10px;
3139    }
3140
3141    .eventlist-standalone h3 {
3142        font-size: 14px;
3143        margin-bottom: 15px;
3144    }
3145
3146    .eventlist-day-group {
3147        margin-bottom: 18px;
3148    }
3149
3150    .eventlist-date {
3151        font-size: 13px;
3152        padding: 6px 10px;
3153    }
3154
3155    .eventlist-title {
3156        font-size: 13px;
3157    }
3158
3159    .eventlist-time {
3160        font-size: 11px;
3161    }
3162
3163    .eventlist-desc {
3164        font-size: 11px;
3165    }
3166}
3167
3168/* Very small mobile (320px) */
3169@media (max-width: 320px) {
3170    .eventlist-compact-widget {
3171        min-width: 100%;
3172    }
3173
3174    .event-panel-standalone {
3175        min-height: 250px;
3176    }
3177
3178    .eventlist-widget-header h4 {
3179        font-size: 12px;
3180    }
3181
3182    .eventlist-widget-title {
3183        font-size: 11px;
3184    }
3185
3186    .panel-standalone-header h3 {
3187        font-size: 12px;
3188    }
3189}
3190
3191/* Past Events Collapsible Section */
3192.past-events-section {
3193    margin-bottom: 10px;
3194    border-bottom: 1px solid var(--border-color, #e0e0e0);
3195}
3196
3197.past-events-toggle {
3198    padding: 6px 10px;
3199    background: var(--cell-bg);
3200    color: var(--text-dim);
3201    cursor: pointer;
3202    user-select: none;
3203    font-size: 11px;
3204    font-weight: 600;
3205    display: flex;
3206    align-items: center;
3207    border-radius: 3px;
3208    transition: background 0.2s;
3209}
3210
3211.past-events-toggle:hover {
3212    background: var(--background-alt);
3213}
3214
3215.past-events-arrow {
3216    font-size: 9px;
3217    margin-right: 5px;
3218    transition: transform 0.2s;
3219    display: inline-block;
3220    width: 10px;
3221    color: var(--text-dim);
3222}
3223
3224.past-events-label {
3225    color: var(--text-dim);
3226}
3227
3228.past-events-content {
3229    margin-top: 5px;
3230}
3231
3232/* Namespace Search Dropdown */
3233.namespace-search-wrapper {
3234    position: relative;
3235}
3236
3237.namespace-search-input {
3238    width: 100%;
3239}
3240
3241.namespace-dropdown {
3242    position: absolute;
3243    top: 100%;
3244    left: 0;
3245    right: 0;
3246    max-height: 200px;
3247    overflow-y: auto;
3248    background: white;
3249    border: 1px solid var(--border-color, #ddd);
3250    border-top: none;
3251    border-radius: 0 0 4px 4px;
3252    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
3253    z-index: 1000;
3254    margin-top: -1px;
3255}
3256
3257.namespace-option {
3258    padding: 8px 12px;
3259    cursor: pointer;
3260    font-size: 12px;
3261    border-bottom: 1px solid var(--border-color, #f0f0f0);
3262    transition: background-color 0.15s;
3263}
3264
3265.namespace-option:hover {
3266    background-color: var(--cell-bg, #f5f5f5);
3267}
3268
3269.namespace-option.selected {
3270    background-color: var(--cell-today-bg, #e3f2fd);
3271    color: var(--text-bright, #1976d2);
3272}
3273
3274.namespace-option:last-child {
3275    border-bottom: none;
3276}
3277
3278/* Matrix-themed Sidebar Widget */
3279.sidebar-matrix {
3280    font-family: system-ui, sans-serif !important;
3281    background: linear-gradient(180deg, #242424 0%, #2a2a2a 100%) !important;
3282    border: 2px solid #00cc07 !important;
3283    box-shadow: 0 0 15px rgba(0, 204, 7, 0.4), inset 0 0 20px rgba(0, 204, 7, 0.05) !important;
3284}
3285
3286.sidebar-matrix-header {
3287    background: linear-gradient(180deg, #2a2a2a 0%, #242424 100%) !important;
3288    border-bottom: 2px solid #00cc07 !important;
3289    box-shadow: 0 2px 8px rgba(0, 204, 7, 0.3) !important;
3290}
3291
3292.sidebar-matrix-clock {
3293    animation: matrix-pulse 2s ease-in-out infinite;
3294}
3295
3296.sidebar-matrix-date {
3297    opacity: 0.9;
3298}
3299
3300@keyframes matrix-pulse {
3301    0%, 100% {
3302        text-shadow: 0 0 2px rgba(0, 204, 7, 0.4);
3303    }
3304    50% {
3305        text-shadow: 0 0 4px rgba(0, 255, 0, 0.5), 0 0 6px rgba(0, 204, 7, 0.3);
3306    }
3307}
3308
3309/* Matrix glow effect for sidebar */
3310.sidebar-widget.sidebar-matrix::before {
3311    content: '';
3312    position: absolute;
3313    top: -2px;
3314    left: -2px;
3315    right: -2px;
3316    bottom: -2px;
3317    background: linear-gradient(45deg, #00cc07, #00ff00, #00cc07);
3318    border-radius: 4px;
3319    opacity: 0;
3320    z-index: -1;
3321    animation: matrix-border-glow 3s ease-in-out infinite;
3322}
3323
3324@keyframes matrix-border-glow {
3325    0%, 100% {
3326        opacity: 0;
3327    }
3328    50% {
3329        opacity: 0.3;
3330    }
3331}
3332
3333/* Scrollbar styling for matrix theme */
3334.sidebar-matrix ::-webkit-scrollbar {
3335    width: 6px;
3336}
3337
3338.sidebar-matrix ::-webkit-scrollbar-track {
3339    background: #242424;
3340}
3341
3342.sidebar-matrix ::-webkit-scrollbar-thumb {
3343    background: #00cc07;
3344    border-radius: 3px;
3345    box-shadow: 0 0 5px rgba(0, 204, 7, 0.5);
3346}
3347
3348.sidebar-matrix ::-webkit-scrollbar-thumb:hover {
3349    background: #00ff00;
3350    box-shadow: 0 0 8px rgba(0, 255, 0, 0.8);
3351}
3352
3353/* ====================================
3354   PINK BLING THEME - SPECIAL EFFECTS
3355   ==================================== */
3356
3357/* Shimmer animation for today's cell - BARELY NOTICEABLE */
3358@keyframes pink-shimmer {
3359    0% {
3360        box-shadow: 0 0 2px rgba(255, 20, 147, 0.15),
3361                    0 0 3px rgba(255, 20, 147, 0.08);
3362    }
3363    50% {
3364        box-shadow: 0 0 4px rgba(255, 20, 147, 0.25),
3365                    0 0 6px rgba(255, 20, 147, 0.12);
3366    }
3367    100% {
3368        box-shadow: 0 0 2px rgba(255, 20, 147, 0.15),
3369                    0 0 3px rgba(255, 20, 147, 0.08);
3370    }
3371}
3372
3373/* Sparkle animation for today's day number - BARELY NOTICEABLE */
3374@keyframes pink-sparkle {
3375    0%, 100% {
3376        text-shadow: 0 0 2px rgba(255, 20, 147, 0.3);
3377        transform: scale(1);
3378    }
3379    50% {
3380        text-shadow: 0 0 3px rgba(255, 20, 147, 0.5);
3381        transform: scale(1.01);
3382    }
3383}
3384
3385/* Glow pulse for event bars - BARELY NOTICEABLE */
3386@keyframes pink-glow-pulse {
3387    0%, 100% {
3388        box-shadow: 0 0 1px currentColor;
3389    }
3390    50% {
3391        box-shadow: 0 0 2px currentColor,
3392                    0 0 3px rgba(255, 105, 180, 0.15);
3393    }
3394}
3395
3396/* Gradient shimmer for headers */
3397@keyframes pink-gradient-shimmer {
3398    0% {
3399        background-position: 0% 50%;
3400    }
3401    50% {
3402        background-position: 100% 50%;
3403    }
3404    100% {
3405        background-position: 0% 50%;
3406    }
3407}
3408
3409/* Pink particle explosion on click */
3410@keyframes particle-explode {
3411    0% {
3412        opacity: 1;
3413        transform: translate(0, 0) scale(1);
3414    }
3415    100% {
3416        opacity: 0;
3417        transform: translate(var(--tx), var(--ty)) scale(0);
3418    }
3419}
3420
3421/* Cursor trail glow */
3422@keyframes cursor-trail-fade {
3423    0% {
3424        opacity: 1;
3425        transform: scale(1);
3426    }
3427    100% {
3428        opacity: 0;
3429        transform: scale(0.5);
3430    }
3431}
3432
3433/* Pink particle styles */
3434.pink-particle {
3435    position: fixed;  /* Changed to fixed so it works anywhere on screen */
3436    width: 6px;
3437    height: 6px;
3438    background: radial-gradient(circle, #ff1493, #ff69b4);
3439    border-radius: 50%;
3440    pointer-events: none;
3441    z-index: 9999999;  /* Above everything including dialogs */
3442    box-shadow: 0 0 8px #ff1493,
3443                0 0 15px #ff69b4;
3444}
3445
3446/* Cursor trail glow */
3447.pink-cursor-trail {
3448    position: fixed;  /* Changed to fixed so it works anywhere on screen */
3449    width: 8px;
3450    height: 8px;
3451    background: radial-gradient(circle, rgba(255, 20, 147, 0.8), rgba(255, 105, 180, 0.4));
3452    border-radius: 50%;
3453    pointer-events: none;
3454    z-index: 9999998;  /* Just below particles */
3455    box-shadow: 0 0 10px rgba(255, 20, 147, 0.6),
3456                0 0 20px rgba(255, 105, 180, 0.3);
3457}
3458
3459/* Tiny neon pixel sparkles */
3460.pink-pixel-sparkle {
3461    position: fixed;
3462    width: 2px;
3463    height: 2px;
3464    background: var(--background-site, #fff);
3465    border-radius: 50%;
3466    pointer-events: none;
3467    z-index: 9999997;  /* Just below trail */
3468    box-shadow: 0 0 2px #ff1493,
3469                0 0 4px #ff69b4,
3470                0 0 6px #fff;
3471}
3472
3473/* Pixel sparkle twinkle animation */
3474@keyframes pixel-twinkle {
3475    0%, 100% {
3476        opacity: 0;
3477        transform: scale(0);
3478    }
3479    50% {
3480        opacity: 1;
3481        transform: scale(1.5);
3482    }
3483}
3484
3485/* Pixel sparkle float away */
3486@keyframes pixel-float-away {
3487    0% {
3488        opacity: 1;
3489        transform: translateY(0) scale(1);
3490    }
3491    100% {
3492        opacity: 0;
3493        transform: translateY(-30px) scale(0);
3494    }
3495}
3496
3497/* Pink theme specific styles - TONED DOWN */
3498.calendar-theme-pink .cal-today {
3499    animation: pink-shimmer 2s ease-in-out infinite;
3500    border: 2px solid #ff1493 !important;
3501    position: relative;
3502    overflow: visible;
3503}
3504
3505.calendar-theme-pink .cal-today .day-num,
3506.calendar-theme-pink .day-num-today {
3507    background: transparent !important;
3508    color: #fff !important;
3509    position: relative;
3510    z-index: 1;
3511    font-weight: 700;
3512    filter: none;
3513    width: 22px;
3514    height: 22px;
3515    line-height: 22px;
3516    text-align: center;
3517    font-size: 10px;
3518    padding: 0;
3519    display: inline-flex;
3520    align-items: center;
3521    justify-content: center;
3522    overflow: visible;
3523}
3524
3525/* Heart shape behind the day number */
3526.calendar-theme-pink .cal-today .day-num::before,
3527.calendar-theme-pink .day-num-today::before {
3528    content: '♥';
3529    position: absolute;
3530    top: 50%;
3531    left: 50%;
3532    transform: translate(-50%, -48%);
3533    font-size: 26px;
3534    color: #ff1493;
3535    z-index: -1;
3536    text-shadow: 0 0 8px rgba(255, 20, 147, 0.7),
3537                 0 0 16px rgba(255, 20, 147, 0.4),
3538                 0 0 24px rgba(255, 105, 180, 0.2);
3539    animation: pink-heart-beat 1.2s ease-in-out infinite;
3540    line-height: 1;
3541}
3542
3543/* Heart beat animation */
3544@keyframes pink-heart-beat {
3545    0%, 100% {
3546        transform: translate(-50%, -48%) scale(1);
3547        text-shadow: 0 0 8px rgba(255, 20, 147, 0.7),
3548                     0 0 16px rgba(255, 20, 147, 0.4);
3549    }
3550    15% {
3551        transform: translate(-50%, -48%) scale(1.15);
3552        text-shadow: 0 0 12px rgba(255, 20, 147, 0.9),
3553                     0 0 24px rgba(255, 20, 147, 0.5),
3554                     0 0 36px rgba(255, 105, 180, 0.3);
3555    }
3556    30% {
3557        transform: translate(-50%, -48%) scale(0.95);
3558    }
3559    45% {
3560        transform: translate(-50%, -48%) scale(1.1);
3561        text-shadow: 0 0 10px rgba(255, 20, 147, 0.8),
3562                     0 0 20px rgba(255, 20, 147, 0.4);
3563    }
3564    60% {
3565        transform: translate(-50%, -48%) scale(1);
3566    }
3567}
3568
3569.calendar-theme-pink .event-bar {
3570    animation: pink-glow-pulse 2s ease-in-out infinite;
3571}
3572
3573.calendar-theme-pink .calendar-compact-header {
3574    background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24, #1a0d14);
3575    background-size: 300% 300%;
3576    animation: pink-gradient-shimmer 3s ease infinite;
3577}
3578
3579.calendar-theme-pink .event-list-header {
3580    background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24);
3581    background-size: 300% 300%;
3582    animation: pink-gradient-shimmer 3s ease infinite;
3583}
3584
3585/* Subtle hover glow - BARELY NOTICEABLE */
3586.calendar-theme-pink .cal-today:hover {
3587    box-shadow: 0 0 5px rgba(255, 20, 147, 0.25),
3588                0 0 8px rgba(255, 20, 147, 0.12) !important;
3589}
3590
3591/* Pink theme event items get subtle glow */
3592.calendar-theme-pink .event-compact-item {
3593    box-shadow: 0 0 1px rgba(255, 20, 147, 0.08);
3594    transition: all 0.3s ease;
3595}
3596
3597.calendar-theme-pink .event-compact-item:hover {
3598    box-shadow: 0 0 3px rgba(255, 20, 147, 0.15);
3599    transform: translateX(2px);
3600}
3601
3602/* Calendar borders get subtle glow */
3603.calendar-theme-pink.calendar-compact-container {
3604    box-shadow: 0 0 5px rgba(255, 20, 147, 0.12),
3605                0 2px 4px rgba(0,0,0,0.06);
3606    position: relative;
3607}
3608
3609/* Today badge extra sparkle */
3610.calendar-theme-pink .event-today-badge {
3611    animation: pink-sparkle 1.5s ease-in-out infinite;
3612}
3613
3614/* Consistent subtle text glow for dark themes - main calendar event list */
3615.calendar-theme-matrix .event-title-compact,
3616.calendar-theme-matrix .event-meta-compact,
3617.calendar-theme-matrix .event-desc-compact {
3618    text-shadow: 0 0 1px var(--text-primary, #00cc07);
3619}
3620
3621.calendar-theme-purple .event-title-compact,
3622.calendar-theme-purple .event-meta-compact,
3623.calendar-theme-purple .event-desc-compact {
3624    text-shadow: 0 0 1px var(--text-primary, #b19cd9);
3625}
3626
3627.calendar-theme-pink .event-title-compact,
3628.calendar-theme-pink .event-meta-compact,
3629.calendar-theme-pink .event-desc-compact {
3630    text-shadow: 0 0 2px var(--text-primary, #ff69b4);
3631}
3632
3633/* Dark theme link glow */
3634.calendar-theme-matrix .event-desc-compact a,
3635.calendar-theme-matrix .cal-link {
3636    text-shadow: 0 0 1px var(--text-bright, #00ff00);
3637}
3638
3639.calendar-theme-purple .event-desc-compact a,
3640.calendar-theme-purple .cal-link {
3641    text-shadow: 0 0 1px var(--text-bright, #d4a5ff);
3642}
3643
3644.calendar-theme-pink .event-desc-compact a,
3645.calendar-theme-pink .cal-link {
3646    text-shadow: 0 0 2px var(--text-bright, #ff1493);
3647}
3648
3649/* Dark theme event panel text glow */
3650.event-panel-standalone[data-theme="matrix"] .event-title-compact,
3651.event-panel-standalone[data-theme="matrix"] .event-meta-compact,
3652.event-panel-standalone[data-theme="matrix"] .event-desc-compact {
3653    text-shadow: 0 0 1px var(--text-primary, #00cc07);
3654}
3655
3656.event-panel-standalone[data-theme="purple"] .event-title-compact,
3657.event-panel-standalone[data-theme="purple"] .event-meta-compact,
3658.event-panel-standalone[data-theme="purple"] .event-desc-compact {
3659    text-shadow: 0 0 1px var(--text-primary, #b19cd9);
3660}
3661
3662.event-panel-standalone[data-theme="pink"] .event-title-compact,
3663.event-panel-standalone[data-theme="pink"] .event-meta-compact,
3664.event-panel-standalone[data-theme="pink"] .event-desc-compact {
3665    text-shadow: 0 0 2px var(--text-primary, #ff69b4);
3666}
3667
3668/* Past due badge pulsing effect - SUBTLE */
3669@keyframes pink-pulse-urgent {
3670    0%, 100% {
3671        box-shadow: 0 0 3px rgba(255, 140, 0, 0.4);
3672    }
3673    50% {
3674        box-shadow: 0 0 8px rgba(255, 140, 0, 0.6);
3675    }
3676}
3677
3678.calendar-theme-pink .event-pastdue-badge {
3679    animation: pink-pulse-urgent 1s ease-in-out infinite;
3680}
3681
3682/* ========================================
3683   MATRIX THEME: CHECKBOX GLOW
3684   ======================================== */
3685.calendar-theme-matrix .task-checkbox,
3686.sidebar-matrix .task-checkbox {
3687    border: 2px solid #00ff00;
3688    background: rgba(0, 204, 7, 0.08);
3689    box-shadow: 0 0 6px rgba(0, 255, 0, 0.3), inset 0 0 4px rgba(0, 204, 7, 0.1);
3690}
3691
3692.calendar-theme-matrix .task-checkbox:hover,
3693.sidebar-matrix .task-checkbox:hover {
3694    border-color: #00ff00;
3695    box-shadow: 0 0 10px rgba(0, 255, 0, 0.5), inset 0 0 6px rgba(0, 204, 7, 0.2);
3696}
3697
3698.calendar-theme-matrix .task-checkbox:checked,
3699.sidebar-matrix .task-checkbox:checked {
3700    background: #00cc07;
3701    border-color: #00ff00;
3702    box-shadow: 0 0 8px rgba(0, 255, 0, 0.6);
3703}
3704
3705/* ========================================
3706   PURPLE THEME: CHECKBOX GLOW
3707   ======================================== */
3708.calendar-theme-purple .task-checkbox,
3709.sidebar-purple .task-checkbox {
3710    border: 2px solid #d4a5ff;
3711    background: rgba(155, 89, 182, 0.08);
3712    box-shadow: 0 0 6px rgba(212, 165, 255, 0.3), inset 0 0 4px rgba(155, 89, 182, 0.1);
3713}
3714
3715.calendar-theme-purple .task-checkbox:hover,
3716.sidebar-purple .task-checkbox:hover {
3717    border-color: #d4a5ff;
3718    box-shadow: 0 0 10px rgba(212, 165, 255, 0.5), inset 0 0 6px rgba(155, 89, 182, 0.2);
3719}
3720
3721.calendar-theme-purple .task-checkbox:checked,
3722.sidebar-purple .task-checkbox:checked {
3723    background: #9b59b6;
3724    border-color: #d4a5ff;
3725    box-shadow: 0 0 8px rgba(212, 165, 255, 0.6);
3726}
3727
3728/* ========================================
3729   PINK THEME: CHECKBOX GLOW
3730   ======================================== */
3731.calendar-theme-pink .task-checkbox,
3732.sidebar-pink .task-checkbox {
3733    border: 2px solid #ff1493;
3734    background: rgba(255, 20, 147, 0.08);
3735    box-shadow: 0 0 6px rgba(255, 20, 147, 0.35), inset 0 0 4px rgba(255, 20, 147, 0.1);
3736}
3737
3738.calendar-theme-pink .task-checkbox:hover,
3739.sidebar-pink .task-checkbox:hover {
3740    border-color: #ff69b4;
3741    box-shadow: 0 0 10px rgba(255, 20, 147, 0.6), inset 0 0 6px rgba(255, 20, 147, 0.2);
3742}
3743
3744.calendar-theme-pink .task-checkbox:checked,
3745.sidebar-pink .task-checkbox:checked {
3746    background: #ff1493;
3747    border-color: #ff69b4;
3748    box-shadow: 0 0 8px rgba(255, 20, 147, 0.7);
3749}
3750
3751/* Pink checkbox in dialog forms */
3752.calendar-theme-pink .checkbox-label input[type="checkbox"],
3753.calendar-theme-pink .checkbox-label-compact input[type="checkbox"] {
3754    accent-color: #ff1493;
3755}
3756
3757/* Wiki theme checkboxes - use border color */
3758.calendar-theme-wiki .task-checkbox,
3759.sidebar-wiki .task-checkbox,
3760.eventlist-theme-wiki .task-checkbox {
3761    border: 2px solid var(--border-main, #ccc);
3762    accent-color: var(--border-main, #ccc);
3763}
3764
3765.calendar-theme-wiki .task-checkbox:hover,
3766.sidebar-wiki .task-checkbox:hover,
3767.eventlist-theme-wiki .task-checkbox:hover {
3768    border: 2px solid var(--border-main, #ccc);
3769    box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);
3770}
3771
3772.calendar-theme-wiki .task-checkbox:checked,
3773.sidebar-wiki .task-checkbox:checked,
3774.eventlist-theme-wiki .task-checkbox:checked {
3775    background: var(--border-main, #ccc);
3776    border: 2px solid var(--border-main, #ccc);
3777}
3778
3779/* Wiki theme buttons - use __link__ color */
3780.calendar-theme-wiki .cal-nav-btn,
3781.calendar-theme-wiki .cal-today-btn {
3782    background: var(--text-bright, #2b73b7);
3783    color: #fff;
3784}
3785
3786/* Wiki theme day headers - use __background_neu__ */
3787.calendar-theme-wiki .calendar-day-headers {
3788    background: var(--cell-today-bg, #eee);
3789}
3790
3791/* Wiki theme past events toggle - use __background_neu__ */
3792.calendar-theme-wiki .past-events-toggle {
3793    background: var(--cell-today-bg, #eee);
3794}
3795
3796.calendar-theme-wiki .calendar-day-headers span {
3797    color: var(--text-primary, #333);
3798}
3799
3800.sidebar-wiki .panel-nav-btn,
3801.sidebar-wiki .panel-today-btn {
3802    background: var(--text-bright, #2b73b7);
3803    color: #fff;
3804}
3805
3806.event-panel-standalone[data-theme="wiki"] .panel-nav-btn,
3807.event-panel-standalone[data-theme="wiki"] .panel-today-btn {
3808    background: var(--text-bright, #2b73b7);
3809    color: #fff;
3810}
3811
3812/* Wiki theme clock - no glow */
3813.sidebar-wiki .eventlist-today-clock,
3814.eventlist-theme-wiki .eventlist-today-clock {
3815    text-shadow: none;
3816}
3817
3818/* Wiki theme clock - no glow, slightly larger */
3819.sidebar-wiki .eventlist-today-clock,
3820.eventlist-theme-wiki .eventlist-today-clock {
3821    text-shadow: none;
3822    font-size: 20px;
3823}
3824
3825/* ========================================
3826   PINK THEME: BUTTON FIREWORK BURST HOVER
3827   ======================================== */
3828@keyframes pink-firework-burst {
3829    0% {
3830        box-shadow: 0 0 4px rgba(255, 20, 147, 0.4);
3831    }
3832    25% {
3833        box-shadow: 0 0 15px rgba(255, 20, 147, 0.8),
3834                    0 0 30px rgba(255, 105, 180, 0.4),
3835                    5px -5px 8px rgba(255, 20, 147, 0.6),
3836                    -5px -5px 8px rgba(255, 105, 180, 0.5),
3837                    5px 5px 8px rgba(255, 133, 193, 0.4),
3838                    -5px 5px 8px rgba(255, 20, 147, 0.5);
3839    }
3840    50% {
3841        box-shadow: 0 0 20px rgba(255, 20, 147, 0.9),
3842                    0 0 40px rgba(255, 105, 180, 0.5),
3843                    8px -8px 12px rgba(255, 20, 147, 0.5),
3844                    -8px -8px 12px rgba(255, 105, 180, 0.4),
3845                    8px 8px 12px rgba(255, 133, 193, 0.3),
3846                    -8px 8px 12px rgba(255, 20, 147, 0.4),
3847                    0 -10px 15px rgba(255, 20, 147, 0.3),
3848                    10px 0 15px rgba(255, 105, 180, 0.3);
3849    }
3850    75% {
3851        box-shadow: 0 0 12px rgba(255, 20, 147, 0.6),
3852                    0 0 25px rgba(255, 105, 180, 0.3),
3853                    12px -12px 8px rgba(255, 20, 147, 0.2),
3854                    -12px -12px 8px rgba(255, 105, 180, 0.15),
3855                    12px 12px 8px rgba(255, 133, 193, 0.1),
3856                    -12px 12px 8px rgba(255, 20, 147, 0.15);
3857    }
3858    100% {
3859        box-shadow: 0 0 6px rgba(255, 20, 147, 0.5),
3860                    0 0 15px rgba(255, 105, 180, 0.3);
3861    }
3862}
3863
3864/* Apply firework burst to all pink theme buttons on hover */
3865.calendar-theme-pink .cal-nav-btn:hover,
3866.calendar-theme-pink .cal-today-btn:hover,
3867.calendar-theme-pink .btn-save-sleek:hover,
3868.calendar-theme-pink .btn-cancel-sleek:hover,
3869.calendar-theme-pink .btn-add-event:hover,
3870.calendar-theme-pink .event-edit-btn:hover,
3871.calendar-theme-pink .event-delete-btn:hover,
3872.calendar-theme-pink .event-action-btn:hover {
3873    background: #ff1493 !important;
3874    color: #1a0d14 !important;
3875    border-color: #ff69b4 !important;
3876    animation: pink-firework-burst 0.6s ease-out forwards;
3877    transform: scale(1.1);
3878    filter: brightness(1.4);
3879}
3880
3881.calendar-theme-pink .cal-nav-btn:active,
3882.calendar-theme-pink .cal-today-btn:active,
3883.calendar-theme-pink .btn-save-sleek:active,
3884.calendar-theme-pink .btn-cancel-sleek:active,
3885.calendar-theme-pink .btn-add-event:active {
3886    transform: scale(0.92);
3887    filter: brightness(1.6);
3888    animation: none;
3889    box-shadow: 0 0 25px rgba(255, 20, 147, 1), 0 0 50px rgba(255, 105, 180, 0.6);
3890}
3891
3892/* Sidebar pink button firework */
3893.sidebar-pink .event-edit-btn:hover,
3894.sidebar-pink .event-delete-btn:hover {
3895    background: #ff1493 !important;
3896    color: #1a0d14 !important;
3897    animation: pink-firework-burst 0.6s ease-out forwards;
3898    transform: scale(1.1);
3899}
3900
3901/* Panel standalone pink buttons */
3902.event-panel-standalone[data-theme="pink"] .panel-nav-btn:hover,
3903.event-panel-standalone[data-theme="pink"] .panel-today-btn:hover,
3904.event-panel-standalone[data-theme="pink"] .panel-add-btn:hover {
3905    background: #ff1493 !important;
3906    color: #1a0d14 !important;
3907    animation: pink-firework-burst 0.6s ease-out forwards;
3908    transform: scale(1.1);
3909}
3910
3911/* ========================================
3912   TEXT COLOR PROTECTION
3913   Forces text to stay readable on dark themes
3914   when browser extensions modify page colors.
3915   Only uses color !important — no filter, no
3916   color-scheme, no variable resets.
3917   ======================================== */
3918
3919/* Matrix: green text on dark background */
3920.calendar-theme-matrix .event-title-compact,
3921.calendar-theme-matrix .event-list-header,
3922.calendar-theme-matrix .calendar-day-headers,
3923.sidebar-matrix .event-title-compact {
3924    color: var(--text-bright, #00ff00) !important;
3925    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
3926}
3927
3928.calendar-theme-matrix .event-meta-compact,
3929.calendar-theme-matrix .event-desc-compact,
3930.calendar-theme-matrix .no-events-msg,
3931.sidebar-matrix .event-meta-compact,
3932.sidebar-matrix .event-desc-compact {
3933    color: var(--text-dim, #00aa00) !important;
3934    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
3935}
3936
3937.calendar-theme-matrix .day-num,
3938.calendar-theme-matrix .cal-nav-btn,
3939.calendar-theme-matrix .cal-today-btn,
3940.sidebar-matrix .eventlist-today-date {
3941    color: var(--text-primary, #00cc07) !important;
3942    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
3943}
3944
3945/* Purple: purple text on dark background */
3946.calendar-theme-purple .event-title-compact,
3947.calendar-theme-purple .event-list-header,
3948.calendar-theme-purple .calendar-day-headers,
3949.sidebar-purple .event-title-compact {
3950    color: var(--text-bright, #d4a5ff) !important;
3951    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
3952}
3953
3954.calendar-theme-purple .event-meta-compact,
3955.calendar-theme-purple .event-desc-compact,
3956.calendar-theme-purple .no-events-msg,
3957.sidebar-purple .event-meta-compact,
3958.sidebar-purple .event-desc-compact {
3959    color: var(--text-dim, #8e7ab8) !important;
3960    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
3961}
3962
3963.calendar-theme-purple .day-num,
3964.calendar-theme-purple .cal-nav-btn,
3965.calendar-theme-purple .cal-today-btn,
3966.sidebar-purple .eventlist-today-date {
3967    color: var(--text-primary, #b19cd9) !important;
3968    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
3969}
3970
3971/* Pink: pink text on dark background */
3972.calendar-theme-pink .event-title-compact,
3973.calendar-theme-pink .event-list-header,
3974.calendar-theme-pink .calendar-day-headers,
3975.sidebar-pink .event-title-compact {
3976    color: var(--text-bright, #ff1493) !important;
3977    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
3978}
3979
3980.calendar-theme-pink .event-meta-compact,
3981.calendar-theme-pink .event-desc-compact,
3982.calendar-theme-pink .no-events-msg,
3983.sidebar-pink .event-meta-compact,
3984.sidebar-pink .event-desc-compact {
3985    color: var(--text-dim, #ff85c1) !important;
3986    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
3987}
3988
3989.calendar-theme-pink .day-num,
3990.calendar-theme-pink .cal-nav-btn,
3991.calendar-theme-pink .cal-today-btn,
3992.sidebar-pink .eventlist-today-date {
3993    color: var(--text-primary, #ff69b4) !important;
3994    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
3995}
3996
3997/* Badge text AND background protection - all dark themes */
3998.calendar-theme-matrix .event-today-badge,
3999.calendar-theme-matrix .event-pastdue-badge,
4000.calendar-theme-matrix .event-namespace-badge,
4001.calendar-theme-matrix .eventlist-simple-today-badge,
4002.calendar-theme-matrix .eventlist-simple-pastdue-badge,
4003.calendar-theme-matrix .panel-ns-badge,
4004.sidebar-matrix .event-today-badge,
4005.sidebar-matrix .event-pastdue-badge,
4006.sidebar-matrix .event-namespace-badge,
4007.calendar-theme-purple .event-today-badge,
4008.calendar-theme-purple .event-pastdue-badge,
4009.calendar-theme-purple .event-namespace-badge,
4010.calendar-theme-purple .eventlist-simple-today-badge,
4011.calendar-theme-purple .eventlist-simple-pastdue-badge,
4012.calendar-theme-purple .panel-ns-badge,
4013.sidebar-purple .event-today-badge,
4014.sidebar-purple .event-pastdue-badge,
4015.sidebar-purple .event-namespace-badge,
4016.calendar-theme-pink .event-today-badge,
4017.calendar-theme-pink .event-pastdue-badge,
4018.calendar-theme-pink .event-namespace-badge,
4019.calendar-theme-pink .eventlist-simple-today-badge,
4020.calendar-theme-pink .eventlist-simple-pastdue-badge,
4021.calendar-theme-pink .panel-ns-badge,
4022.sidebar-pink .event-today-badge,
4023.sidebar-pink .event-pastdue-badge,
4024.sidebar-pink .event-namespace-badge {
4025    color: var(--background-site, white) !important;
4026    -webkit-text-fill-color: var(--background-site, white) !important;
4027    background: var(--text-bright) !important;
4028}
4029
4030.calendar-theme-matrix .event-pastdue-badge,
4031.calendar-theme-purple .event-pastdue-badge,
4032.calendar-theme-pink .event-pastdue-badge,
4033.calendar-theme-matrix .eventlist-simple-pastdue-badge,
4034.calendar-theme-purple .eventlist-simple-pastdue-badge,
4035.calendar-theme-pink .eventlist-simple-pastdue-badge,
4036.sidebar-matrix .event-pastdue-badge,
4037.sidebar-purple .event-pastdue-badge,
4038.sidebar-pink .event-pastdue-badge {
4039    background: var(--pastdue-color, #e74c3c) !important;
4040}
4041
4042/* Purple: sidebar section event text and section headers */
4043.sidebar-purple .event-title-compact,
4044.sidebar-purple .event-meta-compact,
4045.sidebar-purple .event-desc-compact {
4046    color: var(--text-primary, #b19cd9) !important;
4047    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4048}
4049
4050.sidebar-purple .eventlist-today-clock {
4051    color: var(--text-bright, #d4a5ff) !important;
4052    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4053}
4054
4055.sidebar-purple .eventlist-today-date {
4056    color: var(--text-dim, #8e7ab8) !important;
4057    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4058}
4059
4060/* Pink: sidebar section event text */
4061.sidebar-pink .event-title-compact {
4062    color: var(--text-bright, #ff1493) !important;
4063    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4064}
4065
4066.sidebar-pink .eventlist-today-clock {
4067    color: var(--text-bright, #ff1493) !important;
4068    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4069}
4070
4071.sidebar-pink .eventlist-today-date {
4072    color: var(--text-dim, #ff85c1) !important;
4073    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4074}
4075
4076/* ========================================
4077   EVENTLIST THEMING
4078   Applies theme colors to {{eventlist}} output
4079   ======================================== */
4080
4081/* Matrix eventlist */
4082.eventlist-theme-matrix .eventlist-simple-title {
4083    color: var(--text-bright, #00ff00) !important;
4084    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4085}
4086
4087.eventlist-theme-matrix .eventlist-simple-header {
4088    color: var(--text-primary, #00cc07) !important;
4089    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
4090    background: var(--cell-bg, #242424) !important;
4091}
4092
4093.eventlist-theme-matrix .eventlist-simple-time,
4094.eventlist-theme-matrix .eventlist-simple-date,
4095.eventlist-theme-matrix .eventlist-simple-body {
4096    color: var(--text-dim, #00aa00) !important;
4097    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
4098    background: var(--background-site, #242424) !important;
4099}
4100
4101.eventlist-theme-matrix .eventlist-simple-body a {
4102    color: var(--text-bright, #00ff00) !important;
4103    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4104}
4105
4106.eventlist-theme-matrix .eventlist-simple-body strong {
4107    color: var(--text-primary, #00cc07) !important;
4108    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
4109}
4110
4111.eventlist-theme-matrix .eventlist-simple-body code {
4112    background: var(--cell-bg, #1a3d1a) !important;
4113    color: var(--text-primary, #00cc07) !important;
4114    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
4115}
4116
4117.eventlist-theme-matrix .eventlist-simple-namespace {
4118    background: var(--cell-today-bg, #2a4d2a) !important;
4119    color: var(--text-bright, #00ff00) !important;
4120    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4121}
4122
4123.eventlist-theme-matrix .eventlist-simple-empty,
4124.eventlist-theme-matrix .eventlist-simple-empty .eventlist-simple-body {
4125    color: var(--text-dim, #00aa00) !important;
4126    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
4127}
4128
4129.eventlist-theme-matrix .eventlist-simple-item {
4130    border-bottom-color: var(--border-color, #00cc07) !important;
4131}
4132
4133.eventlist-theme-matrix .eventlist-today-header {
4134    background: var(--cell-bg, #242424) !important;
4135    color: var(--text-bright, #00ff00) !important;
4136    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4137    border-color: var(--text-bright, #00ff00) !important;
4138}
4139
4140.eventlist-theme-matrix .eventlist-today-clock {
4141    color: var(--text-bright, #00ff00) !important;
4142    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4143}
4144
4145.eventlist-theme-matrix .eventlist-today-date {
4146    color: var(--text-dim, #00aa00) !important;
4147    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
4148}
4149
4150/* Purple eventlist */
4151.eventlist-theme-purple .eventlist-simple-title {
4152    color: var(--text-bright, #d4a5ff) !important;
4153    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4154}
4155
4156.eventlist-theme-purple .eventlist-simple-header {
4157    color: var(--text-primary, #b19cd9) !important;
4158    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4159    background: var(--cell-bg, #2a2030) !important;
4160}
4161
4162.eventlist-theme-purple .eventlist-simple-time,
4163.eventlist-theme-purple .eventlist-simple-date,
4164.eventlist-theme-purple .eventlist-simple-body {
4165    color: var(--text-dim, #8e7ab8) !important;
4166    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4167    background: var(--background-site, #2a2030) !important;
4168}
4169
4170.eventlist-theme-purple .eventlist-simple-body a {
4171    color: var(--text-bright, #d4a5ff) !important;
4172    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4173}
4174
4175.eventlist-theme-purple .eventlist-simple-body strong {
4176    color: var(--text-primary, #b19cd9) !important;
4177    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4178}
4179
4180.eventlist-theme-purple .eventlist-simple-body code {
4181    background: var(--cell-bg, #3d2b4d) !important;
4182    color: var(--text-primary, #b19cd9) !important;
4183    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4184}
4185
4186.eventlist-theme-purple .eventlist-simple-namespace {
4187    background: var(--cell-today-bg, #3d2b4d) !important;
4188    color: var(--text-bright, #d4a5ff) !important;
4189    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4190}
4191
4192.eventlist-theme-purple .eventlist-simple-empty,
4193.eventlist-theme-purple .eventlist-simple-empty .eventlist-simple-body {
4194    color: var(--text-dim, #8e7ab8) !important;
4195    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4196}
4197
4198.eventlist-theme-purple .eventlist-simple-item {
4199    border-bottom-color: var(--border-color, #9b59b6) !important;
4200}
4201
4202.eventlist-theme-purple .eventlist-today-header {
4203    background: var(--cell-bg, #2a2030) !important;
4204    color: var(--text-bright, #d4a5ff) !important;
4205    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4206    border-color: var(--text-bright, #d4a5ff) !important;
4207}
4208
4209.eventlist-theme-purple .eventlist-today-clock {
4210    color: var(--text-bright, #d4a5ff) !important;
4211    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4212}
4213
4214.eventlist-theme-purple .eventlist-today-date {
4215    color: var(--text-dim, #8e7ab8) !important;
4216    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4217}
4218
4219/* Pink eventlist */
4220.eventlist-theme-pink .eventlist-simple-title {
4221    color: var(--text-bright, #ff1493) !important;
4222    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4223}
4224
4225.eventlist-theme-pink .eventlist-simple-header {
4226    color: var(--text-primary, #ff69b4) !important;
4227    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
4228    background: var(--cell-bg, #1a0d14) !important;
4229}
4230
4231.eventlist-theme-pink .eventlist-simple-time,
4232.eventlist-theme-pink .eventlist-simple-date,
4233.eventlist-theme-pink .eventlist-simple-body {
4234    color: var(--text-dim, #ff85c1) !important;
4235    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4236    background: var(--background-site, #1a0d14) !important;
4237}
4238
4239.eventlist-theme-pink .eventlist-simple-body a {
4240    color: var(--text-bright, #ff1493) !important;
4241    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4242}
4243
4244.eventlist-theme-pink .eventlist-simple-body strong {
4245    color: var(--text-primary, #ff69b4) !important;
4246    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
4247}
4248
4249.eventlist-theme-pink .eventlist-simple-body code {
4250    background: var(--cell-bg, #2d1020) !important;
4251    color: var(--text-primary, #ff69b4) !important;
4252    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
4253}
4254
4255.eventlist-theme-pink .eventlist-simple-namespace {
4256    background: var(--cell-today-bg, #2d1020) !important;
4257    color: var(--text-bright, #ff1493) !important;
4258    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4259}
4260
4261.eventlist-theme-pink .eventlist-simple-empty,
4262.eventlist-theme-pink .eventlist-simple-empty .eventlist-simple-body {
4263    color: var(--text-dim, #ff85c1) !important;
4264    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4265}
4266
4267.eventlist-theme-pink .eventlist-simple-item {
4268    border-bottom-color: var(--border-color, #ff1493) !important;
4269}
4270
4271.eventlist-theme-pink .eventlist-today-header {
4272    background: var(--cell-bg, #1a0d14) !important;
4273    color: var(--text-bright, #ff1493) !important;
4274    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4275    border-color: var(--text-bright, #ff1493) !important;
4276}
4277
4278.eventlist-theme-pink .eventlist-today-clock {
4279    color: var(--text-bright, #ff1493) !important;
4280    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4281}
4282
4283.eventlist-theme-pink .eventlist-today-date {
4284    color: var(--text-dim, #ff85c1) !important;
4285    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4286}
4287