xref: /plugin/calendar/style.css (revision da2061786a295965aec1e3343408c72b19fbbb6c)
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/* Important event highlighting in day popup */
1937.popup-event-item.popup-event-important {
1938    background: linear-gradient(135deg, rgba(255, 215, 0, 0.15), rgba(255, 193, 7, 0.08));
1939    border-color: rgba(255, 193, 7, 0.5);
1940    box-shadow: 0 0 8px rgba(255, 193, 7, 0.3);
1941}
1942
1943.popup-event-item.popup-event-important:hover {
1944    box-shadow: 0 2px 12px rgba(255, 193, 7, 0.4);
1945}
1946
1947.popup-event-content {
1948    flex: 1;
1949    padding: 6px 10px;
1950    min-width: 0;
1951}
1952
1953.popup-event-main-row {
1954    display: flex;
1955    align-items: flex-start;
1956    justify-content: space-between;
1957    gap: 8px;
1958    flex-wrap: wrap;
1959}
1960
1961.popup-event-info-inline {
1962    display: flex;
1963    align-items: center;
1964    gap: 6px;
1965    flex: 1;
1966    min-width: 0;
1967    flex-wrap: wrap;
1968}
1969
1970.popup-event-star {
1971    font-size: 12px;
1972    flex-shrink: 0;
1973    line-height: 1;
1974}
1975
1976.popup-event-title {
1977    font-size: 13px;
1978    font-weight: 600;
1979    color: var(--text-primary, #2c3e50);
1980    word-break: break-word;
1981    flex: 1 1 auto;
1982    min-width: 100px;
1983}
1984
1985/* When star is present, keep star and title together */
1986.popup-event-star + .popup-event-title {
1987    flex: 1 1 auto;
1988}
1989
1990.popup-event-time {
1991    font-size: 11px;
1992    color: var(--text-bright, #008800);
1993    font-weight: 500;
1994    white-space: nowrap;
1995    flex-shrink: 0;
1996}
1997
1998.popup-event-multiday {
1999    font-size: 11px;
2000    color: var(--text-dim, #666);
2001    font-weight: 500;
2002    white-space: nowrap;
2003    flex-shrink: 0;
2004}
2005
2006.popup-event-namespace {
2007    font-size: 10px;
2008    color: var(--background-site, #fff);
2009    background: var(--text-bright, #008800);
2010    padding: 2px 6px;
2011    border-radius: 3px;
2012    font-weight: 500;
2013    white-space: nowrap;
2014    flex-shrink: 0;
2015}
2016
2017.popup-event-desc {
2018    font-size: 11px;
2019    color: var(--text-dim, #666);
2020    line-height: 1.4;
2021    margin-top: 4px;
2022    padding-left: 0;
2023}
2024
2025.popup-event-actions {
2026    display: flex;
2027    gap: 4px;
2028    flex-shrink: 0;
2029    align-self: flex-start;
2030}
2031
2032.event-edit-btn,
2033.event-delete-btn {
2034    background: none;
2035    border: none;
2036    font-size: 16px;
2037    cursor: pointer;
2038    padding: 4px;
2039    border-radius: 3px;
2040    transition: background 0.15s;
2041    line-height: 1;
2042    width: 32px;
2043    height: 32px;
2044    min-width: 32px;
2045    min-height: 32px;
2046    display: flex;
2047    align-items: center;
2048    justify-content: center;
2049    -webkit-tap-highlight-color: rgba(0,0,0,0.1);
2050    touch-action: manipulation;
2051}
2052
2053/* Larger touch targets on mobile */
2054@media (max-width: 768px) {
2055    .event-edit-btn,
2056    .event-delete-btn {
2057        width: 40px;
2058        height: 40px;
2059        min-width: 40px;
2060        min-height: 40px;
2061        font-size: 18px;
2062    }
2063}
2064
2065.event-edit-btn:hover {
2066    background: var(--cell-today-bg, #e8f5e9);
2067}
2068
2069.event-delete-btn:hover {
2070    background: var(--cell-today-bg, #ffebee);
2071}
2072
2073.day-popup-footer {
2074    padding: 10px 14px;
2075    border-top: 1px solid var(--border-color, #e0e0e0);
2076    background: var(--cell-bg, #fafafa);
2077    border-radius: 0 0 8px 8px;
2078}
2079
2080.btn-add-event {
2081    width: 100%;
2082    background: var(--text-bright, #008800);
2083    color: var(--background-site, white);
2084    border: none;
2085    padding: 10px 16px;
2086    border-radius: 6px;
2087    font-size: 14px;
2088    font-weight: 500;
2089    cursor: pointer;
2090    transition: background 0.15s;
2091}
2092
2093.btn-add-event:hover {
2094    filter: brightness(1.3);
2095    box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2));
2096}
2097
2098.btn-add-event:active {
2099    filter: brightness(0.85);
2100    transform: translateY(1px);
2101}
2102
2103.dialog-overlay {
2104    position: absolute;
2105    top: 0;
2106    left: 0;
2107    width: 100%;
2108    height: 100%;
2109    background: rgba(0,0,0,0.4);
2110}
2111
2112.dialog-content-compact {
2113    position: relative;
2114    background: white;
2115    width: 400px;
2116    border-radius: 6px;
2117    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
2118    padding: 20px;
2119    z-index: 10000;
2120}
2121
2122.dialog-content-compact h4 {
2123    margin: 0 0 16px 0;
2124    font-size: 16px;
2125    font-weight: 600;
2126    color: var(--text-primary, #2c3e50);
2127}
2128
2129.form-row {
2130    margin-bottom: 14px;
2131}
2132
2133.form-row-date {
2134    background: var(--cell-bg, #f1f8f4);
2135    padding: 10px;
2136    border-radius: 6px;
2137    border: 2px solid var(--border-main, #008800);
2138    margin-bottom: 18px;
2139}
2140
2141.form-row-date label {
2142    color: var(--text-bright, #388e3c);
2143    font-size: 13px;
2144}
2145
2146.form-row label {
2147    display: block;
2148    font-size: 12px;
2149    font-weight: 600;
2150    color: var(--text-dim, #555);
2151    margin-bottom: 4px;
2152}
2153
2154.form-row input[type="text"],
2155.form-row input[type="time"],
2156.form-row input[type="date"],
2157.form-row input[type="color"],
2158.form-row textarea {
2159    width: 100%;
2160    padding: 8px;
2161    border: 1px solid var(--border-color, #d0d0d0);
2162    border-radius: 4px;
2163    font-size: 13px;
2164    box-sizing: border-box;
2165    font-family: inherit;
2166}
2167
2168.form-row input[type="color"] {
2169    height: 36px;
2170    padding: 2px;
2171}
2172
2173.form-row textarea {
2174    resize: vertical;
2175}
2176
2177.dialog-actions {
2178    display: flex;
2179    gap: 8px;
2180    justify-content: flex-end;
2181    margin-top: 16px;
2182}
2183
2184.btn-save,
2185.btn-cancel {
2186    padding: 8px 16px;
2187    border: none;
2188    border-radius: 4px;
2189    font-size: 13px;
2190    font-weight: 500;
2191    cursor: pointer;
2192    transition: all 0.15s;
2193}
2194
2195.btn-save {
2196    background: var(--text-bright, #008800);
2197    color: var(--background-site, white);
2198}
2199
2200.btn-save:hover {
2201    filter: brightness(1.3);
2202    box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2));
2203}
2204
2205.btn-cancel {
2206    background: var(--cell-bg, #f5f5f5);
2207    color: var(--text-dim, #555);
2208    border: 1px solid var(--border-color, #d0d0d0);
2209}
2210
2211.btn-cancel:hover {
2212    filter: brightness(1.2);
2213    box-shadow: 0 0 4px var(--shadow-color, rgba(0,0,0,0.15));
2214}
2215
2216/* Standalone event list */
2217.eventlist-standalone {
2218    max-width: 700px;
2219    margin: 20px auto;
2220    background: white;
2221    border: 1px solid var(--border-color, #d0d0d0);
2222    border-radius: 6px;
2223    padding: 20px;
2224}
2225
2226.eventlist-standalone h3 {
2227    margin: 0 0 20px 0;
2228    font-size: 18px;
2229    font-weight: 600;
2230    color: var(--text-primary, #2c3e50);
2231    border-bottom: 2px solid var(--border-main, #008800);
2232    padding-bottom: 10px;
2233}
2234
2235/* Compact Event List Widget */
2236.eventlist-compact-widget {
2237    background: var(--background-site, #ffffff);
2238    border: 1px solid var(--border-color, #d0d0d0);
2239    border-radius: 6px;
2240    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
2241    overflow: visible;
2242    display: flex;
2243    flex-direction: column;
2244    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
2245}
2246
2247/* Simple 2-Line Event List (New Design) */
2248.eventlist-simple {
2249    width: 100%;
2250    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
2251    font-size: 11px;
2252    line-height: 1.4;
2253    overflow: visible;
2254}
2255
2256/* Compact pastel header for {{eventlist today}} - Single line */
2257.eventlist-today-header {
2258    display: flex;
2259    flex-direction: column;
2260    align-items: center;
2261    padding: 6px 10px 2px 10px;
2262    background: var(--cell-bg, #1a1a1a);
2263    color: var(--text-bright, #00cc07);
2264    border: 2px solid var(--text-bright, #00cc07);
2265    border-radius: 4px;
2266    margin-bottom: 8px;
2267    box-shadow: 0 0 8px var(--shadow-color, rgba(0, 204, 7, 0.2));
2268    gap: 3px;
2269    overflow: visible;
2270}
2271
2272/* Purple theme overrides */
2273.sidebar-purple .eventlist-today-header {
2274    border-color: var(--text-bright, #9b59b6);
2275    box-shadow: 0 0 8px var(--shadow-color, rgba(155, 89, 182, 0.2));
2276}
2277
2278/* Professional theme overrides */
2279.sidebar-professional .eventlist-today-header {
2280    border-color: var(--text-bright, #4a90e2);
2281    box-shadow: 0 2px 4px var(--shadow-color, rgba(0, 0, 0, 0.1));
2282}
2283
2284/* Pink theme overrides */
2285.sidebar-pink .eventlist-today-header {
2286    border-color: var(--text-bright, #ff1493);
2287    box-shadow: 0 0 6px var(--shadow-color, rgba(255, 20, 147, 0.25));
2288}
2289
2290.eventlist-bottom-info {
2291    display: flex;
2292    justify-content: space-between;
2293    align-items: center;
2294    width: 100%;
2295    gap: 10px;
2296    overflow: visible;
2297}
2298
2299.eventlist-weather {
2300    font-size: 13px;
2301    font-weight: 700;
2302    font-family: 'Courier New', monospace;
2303    letter-spacing: 0.3px;
2304    text-shadow: 0 0 1px var(--text-primary, rgba(0, 204, 7, 0.4));
2305    color: var(--text-primary, #00cc07);
2306    white-space: nowrap;
2307}
2308
2309.eventlist-today-date {
2310    font-size: 10px;
2311    font-weight: 700;
2312    color: var(--text-primary, #00cc07);
2313    letter-spacing: 0.5px;
2314    white-space: nowrap;
2315    text-transform: uppercase;
2316    text-align: center;
2317    flex: 1;
2318}
2319
2320.eventlist-today-clock {
2321    font-size: 16px;
2322    font-weight: 700;
2323    font-family: 'Courier New', monospace;
2324    letter-spacing: 1px;
2325    text-shadow: 0 0 2px var(--text-primary, rgba(0, 204, 7, 0.5));
2326    color: var(--text-primary, #00cc07);
2327}
2328
2329.eventlist-stats-container {
2330    width: 100%;
2331    display: flex;
2332    flex-direction: column;
2333    gap: 2px;
2334    margin: 0;
2335    overflow: visible;
2336}
2337
2338.eventlist-cpu-bar {
2339    width: 100%;
2340    height: 3px;
2341    background: var(--cell-today-bg, rgba(0, 204, 7, 0.1)) !important;
2342    border-radius: 1px;
2343    overflow: visible;
2344    position: relative;
2345    cursor: help;
2346}
2347
2348.system-tooltip {
2349    position: fixed;
2350    background: var(--cell-bg, rgba(0, 0, 0, 0.95)) !important;
2351    padding: 6px 8px;
2352    border-radius: 4px;
2353    font-size: 9px;
2354    line-height: 1.3;
2355    white-space: normal;
2356    min-width: 150px;
2357    max-width: 250px;
2358    z-index: 999999;
2359    border: 1px solid;
2360    box-shadow: 0 3px 8px rgba(0,0,0,0.5);
2361    pointer-events: none;
2362    /* Position will be set by JavaScript */
2363}
2364
2365.system-tooltip div {
2366    font-size: 9px !important;
2367    line-height: 1.3 !important;
2368    margin: 0;
2369}
2370
2371.system-tooltip .tooltip-title {
2372    font-weight: bold;
2373    margin-bottom: 2px;
2374}
2375
2376.eventlist-cpu-fill {
2377    height: 100%;
2378    background: var(--text-bright, #00cc07) !important;
2379    transition: width 0.3s ease;
2380    box-shadow: 0 0 4px var(--shadow-color, rgba(0, 204, 7, 0.6)) !important;
2381}
2382
2383.eventlist-cpu-fill-purple {
2384    background: var(--border-main, #9b59b6) !important;
2385    box-shadow: 0 0 4px var(--shadow-color, rgba(155, 89, 182, 0.6)) !important;
2386}
2387
2388.eventlist-cpu-fill-orange {
2389    background: var(--text-primary, #ff8c00) !important;
2390    box-shadow: 0 0 4px var(--shadow-color, rgba(255, 140, 0, 0.6)) !important;
2391}
2392
2393/* Pink theme system bars - different shades of pink */
2394.sidebar-pink .eventlist-cpu-fill {
2395    background: var(--text-bright, #ff1493) !important;
2396    box-shadow: 0 0 5px var(--shadow-color, rgba(255, 20, 147, 0.7)) !important;
2397}
2398
2399.sidebar-pink .eventlist-cpu-fill-purple {
2400    background: var(--border-main, #ff69b4) !important;
2401    box-shadow: 0 0 5px var(--shadow-color, rgba(255, 105, 180, 0.7)) !important;
2402}
2403
2404.sidebar-pink .eventlist-cpu-fill-orange {
2405    background: var(--text-primary, #ff85c1) !important;
2406    box-shadow: 0 0 5px var(--shadow-color, rgba(255, 133, 193, 0.7)) !important;
2407}
2408
2409.sidebar-pink .eventlist-cpu-realtime {
2410    background: var(--cell-today-bg, rgba(255, 20, 147, 0.1)) !important;
2411}
2412
2413.sidebar-pink .eventlist-mem-realtime {
2414    background: var(--cell-today-bg, rgba(255, 133, 193, 0.1)) !important;
2415}
2416
2417.eventlist-cpu-realtime {
2418    background: var(--cell-today-bg, rgba(155, 89, 182, 0.1)) !important;
2419}
2420
2421.eventlist-mem-realtime {
2422    background: var(--cell-today-bg, rgba(255, 140, 0, 0.1)) !important;
2423}
2424
2425.eventlist-simple-item {
2426    border-bottom: 1px solid var(--border-color, #e0e0e0);
2427    padding: 0;
2428}
2429
2430.eventlist-simple-item:last-child {
2431    border-bottom: none;
2432}
2433
2434.eventlist-simple-today {
2435    background: var(--cell-today-bg, #f3eeff) !important;
2436    border-left: 3px solid var(--border-main, #9b59b6) !important;
2437}
2438
2439.eventlist-simple-today .eventlist-simple-header {
2440    background: var(--cell-today-bg, #e8d9ff) !important;
2441}
2442
2443.eventlist-simple-today .eventlist-simple-body {
2444    background: var(--cell-bg, #f9f5ff) !important;
2445}
2446
2447.eventlist-simple-today-badge {
2448    background: var(--border-main, #9b59b6);
2449    color: var(--background-site, white);
2450    padding: 1px 4px;
2451    border-radius: 3px;
2452    font-size: 9px;
2453    font-weight: 600;
2454    letter-spacing: 0.5px;
2455    display: inline-block;
2456    vertical-align: middle;
2457    float: right; /* Right-align */
2458    margin-left: auto;
2459}
2460
2461.eventlist-simple-pastdue {
2462    background: var(--pastdue-bg, #ffe6e6) !important;
2463    border-left: 3px solid var(--pastdue-color, #e74c3c) !important;
2464}
2465
2466.eventlist-simple-pastdue .eventlist-simple-header {
2467    background: var(--pastdue-bg-strong, #ffd9d9) !important;
2468}
2469
2470.eventlist-simple-pastdue .eventlist-simple-body {
2471    background: var(--pastdue-bg-light, #fff2f2) !important;
2472}
2473
2474.eventlist-simple-pastdue-badge {
2475    background: var(--pastdue-color, #e74c3c);
2476    color: white;
2477    padding: 1px 4px;
2478    border-radius: 3px;
2479    font-size: 9px;
2480    font-weight: 600;
2481    letter-spacing: 0.5px;
2482    display: inline-block;
2483    vertical-align: middle;
2484    float: right; /* Right-align */
2485    margin-left: auto;
2486}
2487
2488.eventlist-simple-tomorrow {
2489    background: var(--tomorrow-bg, #fff9e6) !important;
2490}
2491
2492.eventlist-simple-tomorrow .eventlist-simple-header {
2493    background: var(--tomorrow-bg-strong, #fff4cc) !important;
2494}
2495
2496.eventlist-simple-tomorrow .eventlist-simple-body {
2497    background: var(--tomorrow-bg-light, #fffbf0) !important;
2498}
2499
2500.eventlist-simple-header {
2501    font-weight: 500;
2502    color: var(--text-primary, #2c3e50);
2503    padding: 4px 6px;
2504    line-height: 1.5;
2505    background: var(--cell-bg, #f5fcf5);
2506    font-size: 11px;
2507}
2508
2509.eventlist-simple-title {
2510    font-weight: 700;
2511    color: var(--text-bright, #ff6600);
2512    font-size: 12px;
2513}
2514
2515.eventlist-simple-time {
2516    color: var(--text-dim, #666);
2517    font-size: 10px;
2518}
2519
2520.eventlist-simple-date {
2521    color: var(--text-dim, #888);
2522    font-size: 10px;
2523}
2524
2525.eventlist-simple-namespace {
2526    background: var(--cell-today-bg, #e8f5e9);
2527    color: var(--text-bright, #388e3c);
2528    padding: 1px 4px;
2529    border-radius: 3px;
2530    font-size: 9px;
2531    font-weight: 500;
2532    margin-left: 4px;
2533}
2534
2535.eventlist-simple-body {
2536    color: var(--text-dim, #555);
2537    font-size: 11px;
2538    line-height: 1.5;
2539    padding: 4px 6px;
2540    background: var(--background-site, #fff);
2541}
2542
2543.eventlist-simple-body a {
2544    color: var(--text-bright, #008800);
2545    text-decoration: none;
2546}
2547
2548.eventlist-simple-body a:hover {
2549    text-decoration: underline;
2550}
2551
2552.eventlist-simple-body strong {
2553    font-weight: 600;
2554    color: var(--text-primary, #2c3e50);
2555}
2556
2557.eventlist-simple-body code {
2558    background: var(--cell-bg, #f5f5f5);
2559    padding: 1px 3px;
2560    border-radius: 3px;
2561    font-family: 'Courier New', monospace;
2562    font-size: 10px;
2563    color: var(--text-primary, inherit);
2564}
2565
2566.eventlist-simple-no-desc {
2567    display: none;
2568}
2569
2570.eventlist-simple-empty {
2571    padding: 10px 0;
2572    color: var(--text-dim, #999);
2573}
2574
2575.eventlist-simple-empty .eventlist-simple-header {
2576    margin-bottom: 4px;
2577    background: var(--cell-bg, #f5fcf5);
2578}
2579
2580.eventlist-simple-empty .eventlist-simple-body {
2581    color: var(--text-dim, #999);
2582    font-style: italic;
2583    padding: 4px 6px;
2584    font-size: 11px;
2585}
2586
2587.eventlist-widget-header {
2588    background: var(--text-bright, #008800);
2589    color: white;
2590    padding: 8px 12px;
2591    flex-shrink: 0;
2592}
2593
2594.eventlist-widget-header h4 {
2595    margin: 0;
2596    font-size: 13px;
2597    font-weight: 600;
2598}
2599
2600.eventlist-widget-content {
2601    overflow-y: auto;
2602    padding: 8px;
2603    flex: 1;
2604}
2605
2606.eventlist-widget-date {
2607    font-size: 11px;
2608    font-weight: 600;
2609    color: var(--text-dim, #666);
2610    margin: 8px 0 4px 0;
2611    padding-bottom: 2px;
2612    border-bottom: 1px solid var(--border-color, #e0e0e0);
2613}
2614
2615.eventlist-widget-item {
2616    background: var(--cell-bg, #fafafa);
2617    border: 1px solid var(--border-color, #e0e0e0);
2618    border-left: 3px solid var(--text-bright, #3498db);
2619    border-radius: 3px;
2620    padding: 6px 8px;
2621    margin-bottom: 6px;
2622    transition: all 0.15s;
2623}
2624
2625.eventlist-widget-item:hover {
2626    background: var(--cell-bg, #f0f0f0);
2627    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
2628}
2629
2630.eventlist-widget-title {
2631    font-size: 12px;
2632    font-weight: 600;
2633    color: var(--text-primary, #2c3e50);
2634    margin-bottom: 2px;
2635}
2636
2637.eventlist-widget-time {
2638    font-size: 11px;
2639    color: var(--text-dim, #666);
2640    margin-bottom: 4px;
2641}
2642
2643.eventlist-widget-desc {
2644    font-size: 11px;
2645    color: var(--text-dim, #555);
2646    margin-top: 4px;
2647    line-height: 1.4;
2648}
2649
2650.eventlist-widget-desc img {
2651    max-width: 100%;
2652    height: auto;
2653    border-radius: 3px;
2654    margin: 4px 0;
2655}
2656
2657.eventlist-widget-desc a {
2658    color: var(--text-bright, #008800);
2659    text-decoration: none;
2660    border-bottom: 1px dotted var(--text-bright, #008800);
2661}
2662
2663.eventlist-widget-desc a:hover {
2664    border-bottom-style: solid;
2665}
2666
2667.eventlist-widget-empty {
2668    text-align: center;
2669    color: var(--text-dim, #999);
2670    font-size: 12px;
2671    padding: 20px;
2672    margin: 0;
2673}
2674
2675/* Global themed link class (used in renderDescription) */
2676.cal-link {
2677    color: var(--text-bright, #008800) !important;
2678    text-decoration: none;
2679    border-bottom: 1px dotted var(--text-bright, #008800);
2680    transition: all 0.15s;
2681}
2682
2683.cal-link:hover {
2684    border-bottom-style: solid;
2685    opacity: 0.85;
2686}
2687
2688/* Sidebar widget links - inherit theme colors */
2689.sidebar-widget a.cal-link {
2690    color: var(--text-bright, #00cc07) !important;
2691    border-bottom-color: var(--text-bright, #00cc07);
2692}
2693
2694/* Standalone event panel (right panel only) */
2695.event-panel-standalone {
2696    width: 320px;
2697    background: var(--background-site, #ffffff);
2698    border: 1px solid var(--border-color, #d0d0d0);
2699    border-radius: 6px;
2700    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
2701    display: flex;
2702    flex-direction: column;
2703    max-height: 600px;
2704    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
2705    font-size: 13px;
2706}
2707
2708/* Dark theme borders for event panel - match sidebar widget style */
2709.event-panel-standalone[data-theme="matrix"] {
2710    border: 2px solid var(--border-main, #00cc07);
2711    box-shadow: 0 0 10px var(--shadow-color, rgba(0, 204, 7, 0.3));
2712}
2713
2714.event-panel-standalone[data-theme="purple"] {
2715    border: 2px solid var(--border-main, #9b59b6);
2716    box-shadow: 0 0 10px var(--shadow-color, rgba(155, 89, 182, 0.3));
2717}
2718
2719.event-panel-standalone[data-theme="pink"] {
2720    border: 2px solid var(--border-main, #ff1493);
2721    box-shadow: 0 0 10px var(--shadow-color, rgba(255, 20, 147, 0.4));
2722}
2723
2724.event-panel-standalone .event-list-compact {
2725    overflow-y: auto;
2726    flex: 1;
2727    padding: 10px;
2728}
2729
2730/* Event panel - Compact two-row header for ~500px width (10% smaller) */
2731.panel-header-compact {
2732    background: var(--cell-bg, #f5f5f5);
2733    border-bottom: 2px solid var(--border-color, #ddd);
2734}
2735
2736.panel-header-row-1 {
2737    display: flex;
2738    align-items: center;
2739    gap: 7px;
2740    padding: 7px 11px;
2741    background: var(--cell-bg, #fafafa);
2742    border-bottom: 1px solid var(--border-color, #e8e8e8);
2743}
2744
2745.panel-header-row-2 {
2746    display: flex;
2747    align-items: center;
2748    gap: 7px;
2749    padding: 7px 11px;
2750    background: var(--background-site, #ffffff);
2751}
2752
2753.panel-nav-btn {
2754    background: var(--cell-bg, #ffffff);
2755    border: 1px solid var(--border-color, #ccc);
2756    color: var(--text-primary, #333);
2757    width: 29px;
2758    height: 29px;
2759    border-radius: 4px;
2760    cursor: pointer;
2761    font-size: 16px;
2762    font-weight: bold;
2763    transition: all 0.2s;
2764    display: flex;
2765    align-items: center;
2766    justify-content: center;
2767    padding: 0;
2768    flex-shrink: 0;
2769}
2770
2771.panel-nav-btn:hover {
2772    background: var(--text-bright, #00cc07);
2773    color: var(--background-site, white);
2774    border-color: var(--text-bright, #00cc07);
2775    filter: brightness(1.2);
2776    box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3));
2777}
2778
2779.panel-month-title {
2780    margin: 0;
2781    font-size: 13px;
2782    font-weight: 600;
2783    color: var(--text-primary, #2c3e50);
2784    cursor: pointer;
2785    padding: 5px 9px;
2786    border-radius: 4px;
2787    transition: background 0.2s;
2788    white-space: nowrap;
2789    user-select: none;
2790    flex: 1;
2791    text-align: center;
2792    background: var(--cell-bg, #ffffff);
2793    border: 1px solid var(--border-color, #e0e0e0);
2794}
2795
2796.panel-month-title:hover {
2797    background: var(--cell-today-bg, #e8f5e9);
2798    border-color: var(--text-bright, #00cc07);
2799}
2800
2801.panel-ns-badge {
2802    background: var(--cell-today-bg, #e3f2fd);
2803    color: var(--text-bright, #1976d2);
2804    padding: 3px 7px;
2805    border-radius: 11px;
2806    font-size: 9px;
2807    font-weight: 600;
2808    text-transform: uppercase;
2809    letter-spacing: 0.3px;
2810    white-space: nowrap;
2811    border: 1px solid var(--border-color, #bbdefb);
2812    flex-shrink: 0;
2813}
2814
2815.panel-ns-badge.filter-on {
2816    background: var(--text-bright, #ff9800);
2817    color: var(--background-site, white);
2818    border-color: var(--border-main, #f57c00);
2819    cursor: pointer;
2820    transition: all 0.2s;
2821}
2822
2823.panel-ns-badge.filter-on:hover {
2824    filter: brightness(1.2);
2825}
2826
2827.panel-today-btn {
2828    background: var(--cell-bg, #ffffff);
2829    border: 1px solid var(--border-color, #ccc);
2830    color: var(--text-primary, #333);
2831    padding: 5px 11px;
2832    border-radius: 4px;
2833    cursor: pointer;
2834    font-size: 10px;
2835    font-weight: 600;
2836    transition: all 0.2s;
2837    white-space: nowrap;
2838    flex-shrink: 0;
2839}
2840
2841.panel-today-btn:hover {
2842    background: var(--text-bright, #00cc07);
2843    color: var(--background-site, white);
2844    border-color: var(--text-bright, #00cc07);
2845    filter: brightness(1.2);
2846    box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3));
2847}
2848
2849.panel-search-box {
2850    position: relative;
2851    flex: 1;
2852    display: flex;
2853    gap: 0;
2854}
2855
2856.panel-search-input {
2857    flex: 1;
2858    padding: 5px 25px 5px 9px;
2859    border: 1px solid var(--border-color, #d0d0d0);
2860    border-radius: 4px 0 0 4px;
2861    font-size: 11px;
2862    outline: none;
2863    transition: border-color 0.2s, box-shadow 0.2s;
2864    background: var(--cell-bg, #fafafa);
2865    color: var(--text-primary, #333);
2866}
2867
2868.panel-search-input:focus {
2869    border-color: var(--text-bright, #00cc07);
2870    box-shadow: 0 0 0 2px var(--shadow-color, rgba(0, 204, 7, 0.1));
2871    background: var(--background-site, white);
2872}
2873
2874.panel-search-input::placeholder {
2875    color: var(--text-dim, #999);
2876}
2877
2878.panel-search-clear {
2879    position: absolute;
2880    right: 28px;
2881    top: 50%;
2882    transform: translateY(-50%);
2883    background: none;
2884    border: none;
2885    color: var(--text-dim, #999);
2886    cursor: pointer;
2887    padding: 3px;
2888    font-size: 13px;
2889    line-height: 1;
2890    transition: color 0.2s;
2891}
2892
2893.panel-search-clear:hover {
2894    color: var(--text-primary, #333);
2895}
2896
2897.panel-search-mode {
2898    background: var(--cell-bg, #f0f0f0);
2899    border: 1px solid var(--border-color, #d0d0d0);
2900    border-left: none;
2901    border-radius: 0 4px 4px 0;
2902    padding: 0 6px;
2903    cursor: pointer;
2904    font-size: 11px;
2905    transition: all 0.2s;
2906    color: var(--text-dim, #666);
2907    display: flex;
2908    align-items: center;
2909}
2910
2911.panel-search-mode:hover {
2912    background: var(--cell-today-bg, #e8f5e9);
2913    color: var(--text-bright, #00cc07);
2914}
2915
2916.panel-search-mode.all-dates {
2917    background: var(--text-bright, #00cc07);
2918    color: var(--background-site, white);
2919    border-color: var(--text-bright, #00cc07);
2920}
2921
2922.panel-search-mode.all-dates:hover {
2923    filter: brightness(1.1);
2924}
2925
2926.panel-add-btn {
2927    background: var(--text-bright, #00cc07);
2928    border: 1px solid var(--border-main, #00a806);
2929    color: var(--background-site, white);
2930    padding: 5px 13px;
2931    border-radius: 4px;
2932    cursor: pointer;
2933    font-size: 11px;
2934    font-weight: 600;
2935    transition: all 0.2s;
2936    white-space: nowrap;
2937    flex-shrink: 0;
2938}
2939
2940.panel-add-btn:hover {
2941    filter: brightness(1.3);
2942    transform: translateY(-1px);
2943    box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2));
2944}
2945
2946.panel-standalone-header {
2947    display: flex;
2948    align-items: center;
2949    gap: 8px;
2950    padding: 12px 12px;
2951    background: var(--cell-bg, #fafafa);
2952    border-bottom: 1px solid var(--border-color, #e0e0e0);
2953    flex-shrink: 0;
2954}
2955
2956.panel-header-content {
2957    flex: 1;
2958    display: flex;
2959    flex-direction: column;
2960    align-items: center;
2961    gap: 4px;
2962}
2963
2964.panel-standalone-header h3 {
2965    margin: 0;
2966    font-size: 12px;
2967    font-weight: 600;
2968    color: var(--text-primary, #2c3e50);
2969    white-space: nowrap;
2970}
2971
2972.panel-standalone-header .calendar-month-picker {
2973    cursor: pointer;
2974    user-select: none;
2975    transition: all 0.15s;
2976    padding: 4px 8px;
2977    border-radius: 4px;
2978    white-space: nowrap;
2979}
2980
2981.panel-standalone-header .calendar-month-picker:hover {
2982    background: var(--cell-today-bg, #e8e8e8);
2983    color: var(--text-bright, #008800);
2984}
2985
2986.panel-standalone-header .namespace-badge {
2987    font-size: 11px;
2988    font-weight: 500;
2989    color: var(--text-bright, #388e3c);
2990    background: var(--cell-today-bg, #e8f5e9);
2991    padding: 2px 8px;
2992    border-radius: 3px;
2993    text-decoration: none;
2994    transition: all 0.15s;
2995    display: inline-block;
2996}
2997
2998.panel-standalone-header .namespace-badge:hover {
2999    background: var(--cell-bg, #c8e6c9);
3000    color: var(--text-primary, #2e7d32);
3001}
3002
3003.panel-standalone-actions {
3004    padding: 10px 16px;
3005    background: var(--background-site, #ffffff);
3006    border-bottom: 1px solid var(--border-color, #e0e0e0);
3007    flex-shrink: 0;
3008    display: flex;
3009    align-items: center;
3010    gap: 8px;
3011}
3012
3013.panel-standalone-actions .add-event-compact {
3014    flex-shrink: 0;
3015}
3016
3017.eventlist-day-group {
3018    margin-bottom: 24px;
3019}
3020
3021.eventlist-date {
3022    margin: 0 0 12px 0;
3023    font-size: 14px;
3024    font-weight: 600;
3025    color: var(--text-primary, #2c3e50);
3026    background: var(--cell-bg, #f8f8f8);
3027    padding: 8px 12px;
3028    border-left: 4px solid var(--border-main, #008800);
3029}
3030
3031.eventlist-item {
3032    display: flex;
3033    margin-bottom: 10px;
3034    background: white;
3035    border: 1px solid var(--border-color, #e0e0e0);
3036    border-radius: 4px;
3037    overflow: hidden;
3038}
3039
3040.eventlist-content {
3041    flex: 1;
3042    padding: 12px;
3043    display: flex;
3044    align-items: center;
3045    gap: 12px;
3046}
3047
3048.eventlist-time {
3049    font-size: 12px;
3050    font-weight: 600;
3051    color: var(--text-bright, #008800);
3052    min-width: 50px;
3053}
3054
3055.eventlist-title {
3056    font-size: 14px;
3057    font-weight: 500;
3058    color: var(--text-primary, #2c3e50);
3059}
3060
3061.eventlist-desc {
3062    font-size: 12px;
3063    color: var(--text-dim, #666);
3064    margin-top: 6px;
3065    line-height: 1.4;
3066}
3067
3068/* ===================================
3069   MOBILE RESPONSIVE - EVENTLIST & EVENTPANEL
3070   =================================== */
3071
3072/* Tablet and below (768px) */
3073@media (max-width: 768px) {
3074    /* Event Panel Standalone */
3075    .event-panel-standalone {
3076        width: 100%;
3077        max-width: 100%;
3078        border-radius: 0;
3079        max-height: none;
3080        min-height: 400px;
3081    }
3082
3083    /* Compact Event List Widget */
3084    .eventlist-compact-widget {
3085        width: 100% !important;
3086        max-width: 100%;
3087        border-radius: 0;
3088    }
3089
3090    .eventlist-widget-header h4 {
3091        font-size: 14px;
3092    }
3093
3094    .eventlist-widget-title {
3095        font-size: 13px;
3096    }
3097
3098    .eventlist-widget-time {
3099        font-size: 12px;
3100    }
3101
3102    /* Standalone event list (old style) */
3103    .eventlist-standalone {
3104        max-width: 100%;
3105        margin: 10px;
3106        padding: 15px;
3107        border-radius: 0;
3108    }
3109
3110    .eventlist-standalone h3 {
3111        font-size: 16px;
3112    }
3113}
3114
3115/* Mobile (480px and below) */
3116@media (max-width: 480px) {
3117    /* Event Panel Standalone */
3118    .event-panel-standalone {
3119        font-size: 12px;
3120        min-height: 300px;
3121    }
3122
3123    .panel-standalone-header {
3124        padding: 10px 12px;
3125    }
3126
3127    .panel-standalone-header h3 {
3128        font-size: 12px;
3129    }
3130
3131    .panel-standalone-actions {
3132        padding: 8px 12px;
3133    }
3134
3135    .event-panel-standalone .event-list-compact {
3136        padding: 8px;
3137    }
3138
3139    /* Compact Event List Widget */
3140    .eventlist-compact-widget {
3141        min-width: 280px;
3142    }
3143
3144    .eventlist-widget-header {
3145        padding: 6px 10px;
3146    }
3147
3148    .eventlist-widget-header h4 {
3149        font-size: 13px;
3150    }
3151
3152    .eventlist-widget-content {
3153        padding: 6px;
3154    }
3155
3156    .eventlist-widget-item {
3157        padding: 5px 6px;
3158        margin-bottom: 5px;
3159    }
3160
3161    .eventlist-widget-title {
3162        font-size: 12px;
3163    }
3164
3165    .eventlist-widget-time {
3166        font-size: 11px;
3167    }
3168
3169    .eventlist-widget-desc {
3170        font-size: 11px;
3171    }
3172
3173    /* Standalone event list */
3174    .eventlist-standalone {
3175        margin: 5px;
3176        padding: 10px;
3177    }
3178
3179    .eventlist-standalone h3 {
3180        font-size: 14px;
3181        margin-bottom: 15px;
3182    }
3183
3184    .eventlist-day-group {
3185        margin-bottom: 18px;
3186    }
3187
3188    .eventlist-date {
3189        font-size: 13px;
3190        padding: 6px 10px;
3191    }
3192
3193    .eventlist-title {
3194        font-size: 13px;
3195    }
3196
3197    .eventlist-time {
3198        font-size: 11px;
3199    }
3200
3201    .eventlist-desc {
3202        font-size: 11px;
3203    }
3204}
3205
3206/* Very small mobile (320px) */
3207@media (max-width: 320px) {
3208    .eventlist-compact-widget {
3209        min-width: 100%;
3210    }
3211
3212    .event-panel-standalone {
3213        min-height: 250px;
3214    }
3215
3216    .eventlist-widget-header h4 {
3217        font-size: 12px;
3218    }
3219
3220    .eventlist-widget-title {
3221        font-size: 11px;
3222    }
3223
3224    .panel-standalone-header h3 {
3225        font-size: 12px;
3226    }
3227}
3228
3229/* Past Events Collapsible Section */
3230.past-events-section {
3231    margin-bottom: 10px;
3232    border-bottom: 1px solid var(--border-color, #e0e0e0);
3233}
3234
3235.past-events-toggle {
3236    padding: 6px 10px;
3237    background: var(--cell-bg);
3238    color: var(--text-dim);
3239    cursor: pointer;
3240    user-select: none;
3241    font-size: 11px;
3242    font-weight: 600;
3243    display: flex;
3244    align-items: center;
3245    border-radius: 3px;
3246    transition: background 0.2s;
3247}
3248
3249.past-events-toggle:hover {
3250    background: var(--background-alt);
3251}
3252
3253.past-events-arrow {
3254    font-size: 9px;
3255    margin-right: 5px;
3256    transition: transform 0.2s;
3257    display: inline-block;
3258    width: 10px;
3259    color: var(--text-dim);
3260}
3261
3262.past-events-label {
3263    color: var(--text-dim);
3264}
3265
3266.past-events-content {
3267    margin-top: 5px;
3268}
3269
3270/* Namespace Search Dropdown */
3271.namespace-search-wrapper {
3272    position: relative;
3273}
3274
3275.namespace-search-input {
3276    width: 100%;
3277}
3278
3279.namespace-dropdown {
3280    position: absolute;
3281    top: 100%;
3282    left: 0;
3283    right: 0;
3284    max-height: 200px;
3285    overflow-y: auto;
3286    background: white;
3287    border: 1px solid var(--border-color, #ddd);
3288    border-top: none;
3289    border-radius: 0 0 4px 4px;
3290    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
3291    z-index: 1000;
3292    margin-top: -1px;
3293}
3294
3295.namespace-option {
3296    padding: 8px 12px;
3297    cursor: pointer;
3298    font-size: 12px;
3299    border-bottom: 1px solid var(--border-color, #f0f0f0);
3300    transition: background-color 0.15s;
3301}
3302
3303.namespace-option:hover {
3304    background-color: var(--cell-bg, #f5f5f5);
3305}
3306
3307.namespace-option.selected {
3308    background-color: var(--cell-today-bg, #e3f2fd);
3309    color: var(--text-bright, #1976d2);
3310}
3311
3312.namespace-option:last-child {
3313    border-bottom: none;
3314}
3315
3316/* Matrix-themed Sidebar Widget */
3317.sidebar-matrix {
3318    font-family: system-ui, sans-serif !important;
3319    background: linear-gradient(180deg, #242424 0%, #2a2a2a 100%) !important;
3320    border: 2px solid #00cc07 !important;
3321    box-shadow: 0 0 15px rgba(0, 204, 7, 0.4), inset 0 0 20px rgba(0, 204, 7, 0.05) !important;
3322}
3323
3324.sidebar-matrix-header {
3325    background: linear-gradient(180deg, #2a2a2a 0%, #242424 100%) !important;
3326    border-bottom: 2px solid #00cc07 !important;
3327    box-shadow: 0 2px 8px rgba(0, 204, 7, 0.3) !important;
3328}
3329
3330.sidebar-matrix-clock {
3331    animation: matrix-pulse 2s ease-in-out infinite;
3332}
3333
3334.sidebar-matrix-date {
3335    opacity: 0.9;
3336}
3337
3338@keyframes matrix-pulse {
3339    0%, 100% {
3340        text-shadow: 0 0 2px rgba(0, 204, 7, 0.4);
3341    }
3342    50% {
3343        text-shadow: 0 0 4px rgba(0, 255, 0, 0.5), 0 0 6px rgba(0, 204, 7, 0.3);
3344    }
3345}
3346
3347/* Matrix glow effect for sidebar */
3348.sidebar-widget.sidebar-matrix::before {
3349    content: '';
3350    position: absolute;
3351    top: -2px;
3352    left: -2px;
3353    right: -2px;
3354    bottom: -2px;
3355    background: linear-gradient(45deg, #00cc07, #00ff00, #00cc07);
3356    border-radius: 4px;
3357    opacity: 0;
3358    z-index: -1;
3359    animation: matrix-border-glow 3s ease-in-out infinite;
3360}
3361
3362@keyframes matrix-border-glow {
3363    0%, 100% {
3364        opacity: 0;
3365    }
3366    50% {
3367        opacity: 0.3;
3368    }
3369}
3370
3371/* Scrollbar styling for matrix theme */
3372.sidebar-matrix ::-webkit-scrollbar {
3373    width: 6px;
3374}
3375
3376.sidebar-matrix ::-webkit-scrollbar-track {
3377    background: #242424;
3378}
3379
3380.sidebar-matrix ::-webkit-scrollbar-thumb {
3381    background: #00cc07;
3382    border-radius: 3px;
3383    box-shadow: 0 0 5px rgba(0, 204, 7, 0.5);
3384}
3385
3386.sidebar-matrix ::-webkit-scrollbar-thumb:hover {
3387    background: #00ff00;
3388    box-shadow: 0 0 8px rgba(0, 255, 0, 0.8);
3389}
3390
3391/* ====================================
3392   PINK BLING THEME - SPECIAL EFFECTS
3393   ==================================== */
3394
3395/* Shimmer animation for today's cell - BARELY NOTICEABLE */
3396@keyframes pink-shimmer {
3397    0% {
3398        box-shadow: 0 0 2px rgba(255, 20, 147, 0.15),
3399                    0 0 3px rgba(255, 20, 147, 0.08);
3400    }
3401    50% {
3402        box-shadow: 0 0 4px rgba(255, 20, 147, 0.25),
3403                    0 0 6px rgba(255, 20, 147, 0.12);
3404    }
3405    100% {
3406        box-shadow: 0 0 2px rgba(255, 20, 147, 0.15),
3407                    0 0 3px rgba(255, 20, 147, 0.08);
3408    }
3409}
3410
3411/* Sparkle animation for today's day number - BARELY NOTICEABLE */
3412@keyframes pink-sparkle {
3413    0%, 100% {
3414        text-shadow: 0 0 2px rgba(255, 20, 147, 0.3);
3415        transform: scale(1);
3416    }
3417    50% {
3418        text-shadow: 0 0 3px rgba(255, 20, 147, 0.5);
3419        transform: scale(1.01);
3420    }
3421}
3422
3423/* Glow pulse for event bars - BARELY NOTICEABLE */
3424@keyframes pink-glow-pulse {
3425    0%, 100% {
3426        box-shadow: 0 0 1px currentColor;
3427    }
3428    50% {
3429        box-shadow: 0 0 2px currentColor,
3430                    0 0 3px rgba(255, 105, 180, 0.15);
3431    }
3432}
3433
3434/* Gradient shimmer for headers */
3435@keyframes pink-gradient-shimmer {
3436    0% {
3437        background-position: 0% 50%;
3438    }
3439    50% {
3440        background-position: 100% 50%;
3441    }
3442    100% {
3443        background-position: 0% 50%;
3444    }
3445}
3446
3447/* Pink particle explosion on click */
3448@keyframes particle-explode {
3449    0% {
3450        opacity: 1;
3451        transform: translate(0, 0) scale(1);
3452    }
3453    100% {
3454        opacity: 0;
3455        transform: translate(var(--tx), var(--ty)) scale(0);
3456    }
3457}
3458
3459/* Cursor trail glow */
3460@keyframes cursor-trail-fade {
3461    0% {
3462        opacity: 1;
3463        transform: scale(1);
3464    }
3465    100% {
3466        opacity: 0;
3467        transform: scale(0.5);
3468    }
3469}
3470
3471/* Pink particle styles */
3472.pink-particle {
3473    position: fixed;  /* Changed to fixed so it works anywhere on screen */
3474    width: 6px;
3475    height: 6px;
3476    background: radial-gradient(circle, #ff1493, #ff69b4);
3477    border-radius: 50%;
3478    pointer-events: none;
3479    z-index: 9999999;  /* Above everything including dialogs */
3480    box-shadow: 0 0 8px #ff1493,
3481                0 0 15px #ff69b4;
3482}
3483
3484/* Cursor trail glow */
3485.pink-cursor-trail {
3486    position: fixed;  /* Changed to fixed so it works anywhere on screen */
3487    width: 8px;
3488    height: 8px;
3489    background: radial-gradient(circle, rgba(255, 20, 147, 0.8), rgba(255, 105, 180, 0.4));
3490    border-radius: 50%;
3491    pointer-events: none;
3492    z-index: 9999998;  /* Just below particles */
3493    box-shadow: 0 0 10px rgba(255, 20, 147, 0.6),
3494                0 0 20px rgba(255, 105, 180, 0.3);
3495}
3496
3497/* Tiny neon pixel sparkles */
3498.pink-pixel-sparkle {
3499    position: fixed;
3500    width: 2px;
3501    height: 2px;
3502    background: var(--background-site, #fff);
3503    border-radius: 50%;
3504    pointer-events: none;
3505    z-index: 9999997;  /* Just below trail */
3506    box-shadow: 0 0 2px #ff1493,
3507                0 0 4px #ff69b4,
3508                0 0 6px #fff;
3509}
3510
3511/* Pixel sparkle twinkle animation */
3512@keyframes pixel-twinkle {
3513    0%, 100% {
3514        opacity: 0;
3515        transform: scale(0);
3516    }
3517    50% {
3518        opacity: 1;
3519        transform: scale(1.5);
3520    }
3521}
3522
3523/* Pixel sparkle float away */
3524@keyframes pixel-float-away {
3525    0% {
3526        opacity: 1;
3527        transform: translateY(0) scale(1);
3528    }
3529    100% {
3530        opacity: 0;
3531        transform: translateY(-30px) scale(0);
3532    }
3533}
3534
3535/* Pink theme specific styles - TONED DOWN */
3536.calendar-theme-pink .cal-today {
3537    animation: pink-shimmer 2s ease-in-out infinite;
3538    border: 2px solid #ff1493 !important;
3539    position: relative;
3540    overflow: visible;
3541}
3542
3543.calendar-theme-pink .cal-today .day-num,
3544.calendar-theme-pink .day-num-today {
3545    background: transparent !important;
3546    color: #fff !important;
3547    position: relative;
3548    z-index: 1;
3549    font-weight: 700;
3550    filter: none;
3551    width: 22px;
3552    height: 22px;
3553    line-height: 22px;
3554    text-align: center;
3555    font-size: 10px;
3556    padding: 0;
3557    display: inline-flex;
3558    align-items: center;
3559    justify-content: center;
3560    overflow: visible;
3561}
3562
3563/* Heart shape behind the day number */
3564.calendar-theme-pink .cal-today .day-num::before,
3565.calendar-theme-pink .day-num-today::before {
3566    content: '♥';
3567    position: absolute;
3568    top: 50%;
3569    left: 50%;
3570    transform: translate(-50%, -48%);
3571    font-size: 26px;
3572    color: #ff1493;
3573    z-index: -1;
3574    text-shadow: 0 0 8px rgba(255, 20, 147, 0.7),
3575                 0 0 16px rgba(255, 20, 147, 0.4),
3576                 0 0 24px rgba(255, 105, 180, 0.2);
3577    animation: pink-heart-beat 1.2s ease-in-out infinite;
3578    line-height: 1;
3579}
3580
3581/* Heart beat animation */
3582@keyframes pink-heart-beat {
3583    0%, 100% {
3584        transform: translate(-50%, -48%) scale(1);
3585        text-shadow: 0 0 8px rgba(255, 20, 147, 0.7),
3586                     0 0 16px rgba(255, 20, 147, 0.4);
3587    }
3588    15% {
3589        transform: translate(-50%, -48%) scale(1.15);
3590        text-shadow: 0 0 12px rgba(255, 20, 147, 0.9),
3591                     0 0 24px rgba(255, 20, 147, 0.5),
3592                     0 0 36px rgba(255, 105, 180, 0.3);
3593    }
3594    30% {
3595        transform: translate(-50%, -48%) scale(0.95);
3596    }
3597    45% {
3598        transform: translate(-50%, -48%) scale(1.1);
3599        text-shadow: 0 0 10px rgba(255, 20, 147, 0.8),
3600                     0 0 20px rgba(255, 20, 147, 0.4);
3601    }
3602    60% {
3603        transform: translate(-50%, -48%) scale(1);
3604    }
3605}
3606
3607.calendar-theme-pink .event-bar {
3608    animation: pink-glow-pulse 2s ease-in-out infinite;
3609}
3610
3611.calendar-theme-pink .calendar-compact-header {
3612    background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24, #1a0d14);
3613    background-size: 300% 300%;
3614    animation: pink-gradient-shimmer 3s ease infinite;
3615}
3616
3617.calendar-theme-pink .event-list-header {
3618    background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24);
3619    background-size: 300% 300%;
3620    animation: pink-gradient-shimmer 3s ease infinite;
3621}
3622
3623/* Subtle hover glow - BARELY NOTICEABLE */
3624.calendar-theme-pink .cal-today:hover {
3625    box-shadow: 0 0 5px rgba(255, 20, 147, 0.25),
3626                0 0 8px rgba(255, 20, 147, 0.12) !important;
3627}
3628
3629/* Pink theme event items get subtle glow */
3630.calendar-theme-pink .event-compact-item {
3631    box-shadow: 0 0 1px rgba(255, 20, 147, 0.08);
3632    transition: all 0.3s ease;
3633}
3634
3635.calendar-theme-pink .event-compact-item:hover {
3636    box-shadow: 0 0 3px rgba(255, 20, 147, 0.15);
3637    transform: translateX(2px);
3638}
3639
3640/* Calendar borders get subtle glow */
3641.calendar-theme-pink.calendar-compact-container {
3642    box-shadow: 0 0 5px rgba(255, 20, 147, 0.12),
3643                0 2px 4px rgba(0,0,0,0.06);
3644    position: relative;
3645}
3646
3647/* Today badge extra sparkle */
3648.calendar-theme-pink .event-today-badge {
3649    animation: pink-sparkle 1.5s ease-in-out infinite;
3650}
3651
3652/* Consistent subtle text glow for dark themes - main calendar event list */
3653.calendar-theme-matrix .event-title-compact,
3654.calendar-theme-matrix .event-meta-compact,
3655.calendar-theme-matrix .event-desc-compact {
3656    text-shadow: 0 0 1px var(--text-primary, #00cc07);
3657}
3658
3659.calendar-theme-purple .event-title-compact,
3660.calendar-theme-purple .event-meta-compact,
3661.calendar-theme-purple .event-desc-compact {
3662    text-shadow: 0 0 1px var(--text-primary, #b19cd9);
3663}
3664
3665.calendar-theme-pink .event-title-compact,
3666.calendar-theme-pink .event-meta-compact,
3667.calendar-theme-pink .event-desc-compact {
3668    text-shadow: 0 0 2px var(--text-primary, #ff69b4);
3669}
3670
3671/* Dark theme link glow */
3672.calendar-theme-matrix .event-desc-compact a,
3673.calendar-theme-matrix .cal-link {
3674    text-shadow: 0 0 1px var(--text-bright, #00ff00);
3675}
3676
3677.calendar-theme-purple .event-desc-compact a,
3678.calendar-theme-purple .cal-link {
3679    text-shadow: 0 0 1px var(--text-bright, #d4a5ff);
3680}
3681
3682.calendar-theme-pink .event-desc-compact a,
3683.calendar-theme-pink .cal-link {
3684    text-shadow: 0 0 2px var(--text-bright, #ff1493);
3685}
3686
3687/* Dark theme event panel text glow */
3688.event-panel-standalone[data-theme="matrix"] .event-title-compact,
3689.event-panel-standalone[data-theme="matrix"] .event-meta-compact,
3690.event-panel-standalone[data-theme="matrix"] .event-desc-compact {
3691    text-shadow: 0 0 1px var(--text-primary, #00cc07);
3692}
3693
3694.event-panel-standalone[data-theme="purple"] .event-title-compact,
3695.event-panel-standalone[data-theme="purple"] .event-meta-compact,
3696.event-panel-standalone[data-theme="purple"] .event-desc-compact {
3697    text-shadow: 0 0 1px var(--text-primary, #b19cd9);
3698}
3699
3700.event-panel-standalone[data-theme="pink"] .event-title-compact,
3701.event-panel-standalone[data-theme="pink"] .event-meta-compact,
3702.event-panel-standalone[data-theme="pink"] .event-desc-compact {
3703    text-shadow: 0 0 2px var(--text-primary, #ff69b4);
3704}
3705
3706/* Past due badge pulsing effect - SUBTLE */
3707@keyframes pink-pulse-urgent {
3708    0%, 100% {
3709        box-shadow: 0 0 3px rgba(255, 140, 0, 0.4);
3710    }
3711    50% {
3712        box-shadow: 0 0 8px rgba(255, 140, 0, 0.6);
3713    }
3714}
3715
3716.calendar-theme-pink .event-pastdue-badge {
3717    animation: pink-pulse-urgent 1s ease-in-out infinite;
3718}
3719
3720/* ========================================
3721   MATRIX THEME: CHECKBOX GLOW
3722   ======================================== */
3723.calendar-theme-matrix .task-checkbox,
3724.sidebar-matrix .task-checkbox {
3725    border: 2px solid #00ff00;
3726    background: rgba(0, 204, 7, 0.08);
3727    box-shadow: 0 0 6px rgba(0, 255, 0, 0.3), inset 0 0 4px rgba(0, 204, 7, 0.1);
3728}
3729
3730.calendar-theme-matrix .task-checkbox:hover,
3731.sidebar-matrix .task-checkbox:hover {
3732    border-color: #00ff00;
3733    box-shadow: 0 0 10px rgba(0, 255, 0, 0.5), inset 0 0 6px rgba(0, 204, 7, 0.2);
3734}
3735
3736.calendar-theme-matrix .task-checkbox:checked,
3737.sidebar-matrix .task-checkbox:checked {
3738    background: #00cc07;
3739    border-color: #00ff00;
3740    box-shadow: 0 0 8px rgba(0, 255, 0, 0.6);
3741}
3742
3743/* ========================================
3744   PURPLE THEME: CHECKBOX GLOW
3745   ======================================== */
3746.calendar-theme-purple .task-checkbox,
3747.sidebar-purple .task-checkbox {
3748    border: 2px solid #d4a5ff;
3749    background: rgba(155, 89, 182, 0.08);
3750    box-shadow: 0 0 6px rgba(212, 165, 255, 0.3), inset 0 0 4px rgba(155, 89, 182, 0.1);
3751}
3752
3753.calendar-theme-purple .task-checkbox:hover,
3754.sidebar-purple .task-checkbox:hover {
3755    border-color: #d4a5ff;
3756    box-shadow: 0 0 10px rgba(212, 165, 255, 0.5), inset 0 0 6px rgba(155, 89, 182, 0.2);
3757}
3758
3759.calendar-theme-purple .task-checkbox:checked,
3760.sidebar-purple .task-checkbox:checked {
3761    background: #9b59b6;
3762    border-color: #d4a5ff;
3763    box-shadow: 0 0 8px rgba(212, 165, 255, 0.6);
3764}
3765
3766/* ========================================
3767   PINK THEME: CHECKBOX GLOW
3768   ======================================== */
3769.calendar-theme-pink .task-checkbox,
3770.sidebar-pink .task-checkbox {
3771    border: 2px solid #ff1493;
3772    background: rgba(255, 20, 147, 0.08);
3773    box-shadow: 0 0 6px rgba(255, 20, 147, 0.35), inset 0 0 4px rgba(255, 20, 147, 0.1);
3774}
3775
3776.calendar-theme-pink .task-checkbox:hover,
3777.sidebar-pink .task-checkbox:hover {
3778    border-color: #ff69b4;
3779    box-shadow: 0 0 10px rgba(255, 20, 147, 0.6), inset 0 0 6px rgba(255, 20, 147, 0.2);
3780}
3781
3782.calendar-theme-pink .task-checkbox:checked,
3783.sidebar-pink .task-checkbox:checked {
3784    background: #ff1493;
3785    border-color: #ff69b4;
3786    box-shadow: 0 0 8px rgba(255, 20, 147, 0.7);
3787}
3788
3789/* Pink checkbox in dialog forms */
3790.calendar-theme-pink .checkbox-label input[type="checkbox"],
3791.calendar-theme-pink .checkbox-label-compact input[type="checkbox"] {
3792    accent-color: #ff1493;
3793}
3794
3795/* Wiki theme checkboxes - use border color */
3796.calendar-theme-wiki .task-checkbox,
3797.sidebar-wiki .task-checkbox,
3798.eventlist-theme-wiki .task-checkbox {
3799    border: 2px solid var(--border-main, #ccc);
3800    accent-color: var(--border-main, #ccc);
3801}
3802
3803.calendar-theme-wiki .task-checkbox:hover,
3804.sidebar-wiki .task-checkbox:hover,
3805.eventlist-theme-wiki .task-checkbox:hover {
3806    border: 2px solid var(--border-main, #ccc);
3807    box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);
3808}
3809
3810.calendar-theme-wiki .task-checkbox:checked,
3811.sidebar-wiki .task-checkbox:checked,
3812.eventlist-theme-wiki .task-checkbox:checked {
3813    background: var(--border-main, #ccc);
3814    border: 2px solid var(--border-main, #ccc);
3815}
3816
3817/* Wiki theme buttons - use __link__ color */
3818.calendar-theme-wiki .cal-nav-btn,
3819.calendar-theme-wiki .cal-today-btn {
3820    background: var(--text-bright, #2b73b7);
3821    color: #fff;
3822}
3823
3824/* Wiki theme day headers - use __background_neu__ */
3825.calendar-theme-wiki .calendar-day-headers {
3826    background: var(--cell-today-bg, #eee);
3827}
3828
3829/* Wiki theme past events toggle - use __background_neu__ */
3830.calendar-theme-wiki .past-events-toggle {
3831    background: var(--cell-today-bg, #eee);
3832}
3833
3834.calendar-theme-wiki .calendar-day-headers span {
3835    color: var(--text-primary, #333);
3836}
3837
3838.sidebar-wiki .panel-nav-btn,
3839.sidebar-wiki .panel-today-btn {
3840    background: var(--text-bright, #2b73b7);
3841    color: #fff;
3842}
3843
3844.event-panel-standalone[data-theme="wiki"] .panel-nav-btn,
3845.event-panel-standalone[data-theme="wiki"] .panel-today-btn {
3846    background: var(--text-bright, #2b73b7);
3847    color: #fff;
3848}
3849
3850/* Wiki theme clock - no glow */
3851.sidebar-wiki .eventlist-today-clock,
3852.eventlist-theme-wiki .eventlist-today-clock {
3853    text-shadow: none;
3854}
3855
3856/* Wiki theme clock - no glow, slightly larger */
3857.sidebar-wiki .eventlist-today-clock,
3858.eventlist-theme-wiki .eventlist-today-clock {
3859    text-shadow: none;
3860    font-size: 20px;
3861}
3862
3863/* ========================================
3864   PINK THEME: BUTTON FIREWORK BURST HOVER
3865   ======================================== */
3866@keyframes pink-firework-burst {
3867    0% {
3868        box-shadow: 0 0 4px rgba(255, 20, 147, 0.4);
3869    }
3870    25% {
3871        box-shadow: 0 0 15px rgba(255, 20, 147, 0.8),
3872                    0 0 30px rgba(255, 105, 180, 0.4),
3873                    5px -5px 8px rgba(255, 20, 147, 0.6),
3874                    -5px -5px 8px rgba(255, 105, 180, 0.5),
3875                    5px 5px 8px rgba(255, 133, 193, 0.4),
3876                    -5px 5px 8px rgba(255, 20, 147, 0.5);
3877    }
3878    50% {
3879        box-shadow: 0 0 20px rgba(255, 20, 147, 0.9),
3880                    0 0 40px rgba(255, 105, 180, 0.5),
3881                    8px -8px 12px rgba(255, 20, 147, 0.5),
3882                    -8px -8px 12px rgba(255, 105, 180, 0.4),
3883                    8px 8px 12px rgba(255, 133, 193, 0.3),
3884                    -8px 8px 12px rgba(255, 20, 147, 0.4),
3885                    0 -10px 15px rgba(255, 20, 147, 0.3),
3886                    10px 0 15px rgba(255, 105, 180, 0.3);
3887    }
3888    75% {
3889        box-shadow: 0 0 12px rgba(255, 20, 147, 0.6),
3890                    0 0 25px rgba(255, 105, 180, 0.3),
3891                    12px -12px 8px rgba(255, 20, 147, 0.2),
3892                    -12px -12px 8px rgba(255, 105, 180, 0.15),
3893                    12px 12px 8px rgba(255, 133, 193, 0.1),
3894                    -12px 12px 8px rgba(255, 20, 147, 0.15);
3895    }
3896    100% {
3897        box-shadow: 0 0 6px rgba(255, 20, 147, 0.5),
3898                    0 0 15px rgba(255, 105, 180, 0.3);
3899    }
3900}
3901
3902/* Apply firework burst to all pink theme buttons on hover */
3903.calendar-theme-pink .cal-nav-btn:hover,
3904.calendar-theme-pink .cal-today-btn:hover,
3905.calendar-theme-pink .btn-save-sleek:hover,
3906.calendar-theme-pink .btn-cancel-sleek:hover,
3907.calendar-theme-pink .btn-add-event:hover,
3908.calendar-theme-pink .event-edit-btn:hover,
3909.calendar-theme-pink .event-delete-btn:hover,
3910.calendar-theme-pink .event-action-btn:hover {
3911    background: #ff1493 !important;
3912    color: #1a0d14 !important;
3913    border-color: #ff69b4 !important;
3914    animation: pink-firework-burst 0.6s ease-out forwards;
3915    transform: scale(1.1);
3916    filter: brightness(1.4);
3917}
3918
3919.calendar-theme-pink .cal-nav-btn:active,
3920.calendar-theme-pink .cal-today-btn:active,
3921.calendar-theme-pink .btn-save-sleek:active,
3922.calendar-theme-pink .btn-cancel-sleek:active,
3923.calendar-theme-pink .btn-add-event:active {
3924    transform: scale(0.92);
3925    filter: brightness(1.6);
3926    animation: none;
3927    box-shadow: 0 0 25px rgba(255, 20, 147, 1), 0 0 50px rgba(255, 105, 180, 0.6);
3928}
3929
3930/* Sidebar pink button firework */
3931.sidebar-pink .event-edit-btn:hover,
3932.sidebar-pink .event-delete-btn:hover {
3933    background: #ff1493 !important;
3934    color: #1a0d14 !important;
3935    animation: pink-firework-burst 0.6s ease-out forwards;
3936    transform: scale(1.1);
3937}
3938
3939/* Panel standalone pink buttons */
3940.event-panel-standalone[data-theme="pink"] .panel-nav-btn:hover,
3941.event-panel-standalone[data-theme="pink"] .panel-today-btn:hover,
3942.event-panel-standalone[data-theme="pink"] .panel-add-btn:hover {
3943    background: #ff1493 !important;
3944    color: #1a0d14 !important;
3945    animation: pink-firework-burst 0.6s ease-out forwards;
3946    transform: scale(1.1);
3947}
3948
3949/* ========================================
3950   TEXT COLOR PROTECTION
3951   Forces text to stay readable on dark themes
3952   when browser extensions modify page colors.
3953   Only uses color !important — no filter, no
3954   color-scheme, no variable resets.
3955   ======================================== */
3956
3957/* Matrix: green text on dark background */
3958.calendar-theme-matrix .event-title-compact,
3959.calendar-theme-matrix .event-list-header,
3960.calendar-theme-matrix .calendar-day-headers,
3961.sidebar-matrix .event-title-compact {
3962    color: var(--text-bright, #00ff00) !important;
3963    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
3964}
3965
3966.calendar-theme-matrix .event-meta-compact,
3967.calendar-theme-matrix .event-desc-compact,
3968.calendar-theme-matrix .no-events-msg,
3969.sidebar-matrix .event-meta-compact,
3970.sidebar-matrix .event-desc-compact {
3971    color: var(--text-dim, #00aa00) !important;
3972    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
3973}
3974
3975.calendar-theme-matrix .day-num,
3976.calendar-theme-matrix .cal-nav-btn,
3977.calendar-theme-matrix .cal-today-btn,
3978.sidebar-matrix .eventlist-today-date {
3979    color: var(--text-primary, #00cc07) !important;
3980    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
3981}
3982
3983/* Purple: purple text on dark background */
3984.calendar-theme-purple .event-title-compact,
3985.calendar-theme-purple .event-list-header,
3986.calendar-theme-purple .calendar-day-headers,
3987.sidebar-purple .event-title-compact {
3988    color: var(--text-bright, #d4a5ff) !important;
3989    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
3990}
3991
3992.calendar-theme-purple .event-meta-compact,
3993.calendar-theme-purple .event-desc-compact,
3994.calendar-theme-purple .no-events-msg,
3995.sidebar-purple .event-meta-compact,
3996.sidebar-purple .event-desc-compact {
3997    color: var(--text-dim, #8e7ab8) !important;
3998    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
3999}
4000
4001.calendar-theme-purple .day-num,
4002.calendar-theme-purple .cal-nav-btn,
4003.calendar-theme-purple .cal-today-btn,
4004.sidebar-purple .eventlist-today-date {
4005    color: var(--text-primary, #b19cd9) !important;
4006    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4007}
4008
4009/* Pink: pink text on dark background */
4010.calendar-theme-pink .event-title-compact,
4011.calendar-theme-pink .event-list-header,
4012.calendar-theme-pink .calendar-day-headers,
4013.sidebar-pink .event-title-compact {
4014    color: var(--text-bright, #ff1493) !important;
4015    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4016}
4017
4018.calendar-theme-pink .event-meta-compact,
4019.calendar-theme-pink .event-desc-compact,
4020.calendar-theme-pink .no-events-msg,
4021.sidebar-pink .event-meta-compact,
4022.sidebar-pink .event-desc-compact {
4023    color: var(--text-dim, #ff85c1) !important;
4024    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4025}
4026
4027.calendar-theme-pink .day-num,
4028.calendar-theme-pink .cal-nav-btn,
4029.calendar-theme-pink .cal-today-btn,
4030.sidebar-pink .eventlist-today-date {
4031    color: var(--text-primary, #ff69b4) !important;
4032    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
4033}
4034
4035/* Badge text AND background protection - all dark themes */
4036.calendar-theme-matrix .event-today-badge,
4037.calendar-theme-matrix .event-pastdue-badge,
4038.calendar-theme-matrix .event-namespace-badge,
4039.calendar-theme-matrix .eventlist-simple-today-badge,
4040.calendar-theme-matrix .eventlist-simple-pastdue-badge,
4041.calendar-theme-matrix .panel-ns-badge,
4042.sidebar-matrix .event-today-badge,
4043.sidebar-matrix .event-pastdue-badge,
4044.sidebar-matrix .event-namespace-badge,
4045.calendar-theme-purple .event-today-badge,
4046.calendar-theme-purple .event-pastdue-badge,
4047.calendar-theme-purple .event-namespace-badge,
4048.calendar-theme-purple .eventlist-simple-today-badge,
4049.calendar-theme-purple .eventlist-simple-pastdue-badge,
4050.calendar-theme-purple .panel-ns-badge,
4051.sidebar-purple .event-today-badge,
4052.sidebar-purple .event-pastdue-badge,
4053.sidebar-purple .event-namespace-badge,
4054.calendar-theme-pink .event-today-badge,
4055.calendar-theme-pink .event-pastdue-badge,
4056.calendar-theme-pink .event-namespace-badge,
4057.calendar-theme-pink .eventlist-simple-today-badge,
4058.calendar-theme-pink .eventlist-simple-pastdue-badge,
4059.calendar-theme-pink .panel-ns-badge,
4060.sidebar-pink .event-today-badge,
4061.sidebar-pink .event-pastdue-badge,
4062.sidebar-pink .event-namespace-badge {
4063    color: var(--background-site, white) !important;
4064    -webkit-text-fill-color: var(--background-site, white) !important;
4065    background: var(--text-bright) !important;
4066}
4067
4068.calendar-theme-matrix .event-pastdue-badge,
4069.calendar-theme-purple .event-pastdue-badge,
4070.calendar-theme-pink .event-pastdue-badge,
4071.calendar-theme-matrix .eventlist-simple-pastdue-badge,
4072.calendar-theme-purple .eventlist-simple-pastdue-badge,
4073.calendar-theme-pink .eventlist-simple-pastdue-badge,
4074.sidebar-matrix .event-pastdue-badge,
4075.sidebar-purple .event-pastdue-badge,
4076.sidebar-pink .event-pastdue-badge {
4077    background: var(--pastdue-color, #e74c3c) !important;
4078}
4079
4080/* Purple: sidebar section event text and section headers */
4081.sidebar-purple .event-title-compact,
4082.sidebar-purple .event-meta-compact,
4083.sidebar-purple .event-desc-compact {
4084    color: var(--text-primary, #b19cd9) !important;
4085    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4086}
4087
4088.sidebar-purple .eventlist-today-clock {
4089    color: var(--text-bright, #d4a5ff) !important;
4090    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4091}
4092
4093.sidebar-purple .eventlist-today-date {
4094    color: var(--text-dim, #8e7ab8) !important;
4095    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4096}
4097
4098/* Pink: sidebar section event text */
4099.sidebar-pink .event-title-compact {
4100    color: var(--text-bright, #ff1493) !important;
4101    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4102}
4103
4104.sidebar-pink .eventlist-today-clock {
4105    color: var(--text-bright, #ff1493) !important;
4106    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4107}
4108
4109.sidebar-pink .eventlist-today-date {
4110    color: var(--text-dim, #ff85c1) !important;
4111    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4112}
4113
4114/* ========================================
4115   EVENTLIST THEMING
4116   Applies theme colors to {{eventlist}} output
4117   ======================================== */
4118
4119/* Matrix eventlist */
4120.eventlist-theme-matrix .eventlist-simple-title {
4121    color: var(--text-bright, #00ff00) !important;
4122    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4123}
4124
4125.eventlist-theme-matrix .eventlist-simple-header {
4126    color: var(--text-primary, #00cc07) !important;
4127    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
4128    background: var(--cell-bg, #242424) !important;
4129}
4130
4131.eventlist-theme-matrix .eventlist-simple-time,
4132.eventlist-theme-matrix .eventlist-simple-date,
4133.eventlist-theme-matrix .eventlist-simple-body {
4134    color: var(--text-dim, #00aa00) !important;
4135    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
4136    background: var(--background-site, #242424) !important;
4137}
4138
4139.eventlist-theme-matrix .eventlist-simple-body a {
4140    color: var(--text-bright, #00ff00) !important;
4141    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4142}
4143
4144.eventlist-theme-matrix .eventlist-simple-body strong {
4145    color: var(--text-primary, #00cc07) !important;
4146    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
4147}
4148
4149.eventlist-theme-matrix .eventlist-simple-body code {
4150    background: var(--cell-bg, #1a3d1a) !important;
4151    color: var(--text-primary, #00cc07) !important;
4152    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
4153}
4154
4155.eventlist-theme-matrix .eventlist-simple-namespace {
4156    background: var(--cell-today-bg, #2a4d2a) !important;
4157    color: var(--text-bright, #00ff00) !important;
4158    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4159}
4160
4161.eventlist-theme-matrix .eventlist-simple-empty,
4162.eventlist-theme-matrix .eventlist-simple-empty .eventlist-simple-body {
4163    color: var(--text-dim, #00aa00) !important;
4164    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
4165}
4166
4167.eventlist-theme-matrix .eventlist-simple-item {
4168    border-bottom-color: var(--border-color, #00cc07) !important;
4169}
4170
4171.eventlist-theme-matrix .eventlist-today-header {
4172    background: var(--cell-bg, #242424) !important;
4173    color: var(--text-bright, #00ff00) !important;
4174    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4175    border-color: var(--text-bright, #00ff00) !important;
4176}
4177
4178.eventlist-theme-matrix .eventlist-today-clock {
4179    color: var(--text-bright, #00ff00) !important;
4180    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4181}
4182
4183.eventlist-theme-matrix .eventlist-today-date {
4184    color: var(--text-dim, #00aa00) !important;
4185    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
4186}
4187
4188/* Purple eventlist */
4189.eventlist-theme-purple .eventlist-simple-title {
4190    color: var(--text-bright, #d4a5ff) !important;
4191    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4192}
4193
4194.eventlist-theme-purple .eventlist-simple-header {
4195    color: var(--text-primary, #b19cd9) !important;
4196    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4197    background: var(--cell-bg, #2a2030) !important;
4198}
4199
4200.eventlist-theme-purple .eventlist-simple-time,
4201.eventlist-theme-purple .eventlist-simple-date,
4202.eventlist-theme-purple .eventlist-simple-body {
4203    color: var(--text-dim, #8e7ab8) !important;
4204    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4205    background: var(--background-site, #2a2030) !important;
4206}
4207
4208.eventlist-theme-purple .eventlist-simple-body a {
4209    color: var(--text-bright, #d4a5ff) !important;
4210    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4211}
4212
4213.eventlist-theme-purple .eventlist-simple-body strong {
4214    color: var(--text-primary, #b19cd9) !important;
4215    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4216}
4217
4218.eventlist-theme-purple .eventlist-simple-body code {
4219    background: var(--cell-bg, #3d2b4d) !important;
4220    color: var(--text-primary, #b19cd9) !important;
4221    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4222}
4223
4224.eventlist-theme-purple .eventlist-simple-namespace {
4225    background: var(--cell-today-bg, #3d2b4d) !important;
4226    color: var(--text-bright, #d4a5ff) !important;
4227    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4228}
4229
4230.eventlist-theme-purple .eventlist-simple-empty,
4231.eventlist-theme-purple .eventlist-simple-empty .eventlist-simple-body {
4232    color: var(--text-dim, #8e7ab8) !important;
4233    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4234}
4235
4236.eventlist-theme-purple .eventlist-simple-item {
4237    border-bottom-color: var(--border-color, #9b59b6) !important;
4238}
4239
4240.eventlist-theme-purple .eventlist-today-header {
4241    background: var(--cell-bg, #2a2030) !important;
4242    color: var(--text-bright, #d4a5ff) !important;
4243    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4244    border-color: var(--text-bright, #d4a5ff) !important;
4245}
4246
4247.eventlist-theme-purple .eventlist-today-clock {
4248    color: var(--text-bright, #d4a5ff) !important;
4249    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4250}
4251
4252.eventlist-theme-purple .eventlist-today-date {
4253    color: var(--text-dim, #8e7ab8) !important;
4254    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4255}
4256
4257/* Pink eventlist */
4258.eventlist-theme-pink .eventlist-simple-title {
4259    color: var(--text-bright, #ff1493) !important;
4260    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4261}
4262
4263.eventlist-theme-pink .eventlist-simple-header {
4264    color: var(--text-primary, #ff69b4) !important;
4265    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
4266    background: var(--cell-bg, #1a0d14) !important;
4267}
4268
4269.eventlist-theme-pink .eventlist-simple-time,
4270.eventlist-theme-pink .eventlist-simple-date,
4271.eventlist-theme-pink .eventlist-simple-body {
4272    color: var(--text-dim, #ff85c1) !important;
4273    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4274    background: var(--background-site, #1a0d14) !important;
4275}
4276
4277.eventlist-theme-pink .eventlist-simple-body a {
4278    color: var(--text-bright, #ff1493) !important;
4279    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4280}
4281
4282.eventlist-theme-pink .eventlist-simple-body strong {
4283    color: var(--text-primary, #ff69b4) !important;
4284    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
4285}
4286
4287.eventlist-theme-pink .eventlist-simple-body code {
4288    background: var(--cell-bg, #2d1020) !important;
4289    color: var(--text-primary, #ff69b4) !important;
4290    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
4291}
4292
4293.eventlist-theme-pink .eventlist-simple-namespace {
4294    background: var(--cell-today-bg, #2d1020) !important;
4295    color: var(--text-bright, #ff1493) !important;
4296    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4297}
4298
4299.eventlist-theme-pink .eventlist-simple-empty,
4300.eventlist-theme-pink .eventlist-simple-empty .eventlist-simple-body {
4301    color: var(--text-dim, #ff85c1) !important;
4302    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4303}
4304
4305.eventlist-theme-pink .eventlist-simple-item {
4306    border-bottom-color: var(--border-color, #ff1493) !important;
4307}
4308
4309.eventlist-theme-pink .eventlist-today-header {
4310    background: var(--cell-bg, #1a0d14) !important;
4311    color: var(--text-bright, #ff1493) !important;
4312    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4313    border-color: var(--text-bright, #ff1493) !important;
4314}
4315
4316.eventlist-theme-pink .eventlist-today-clock {
4317    color: var(--text-bright, #ff1493) !important;
4318    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4319}
4320
4321.eventlist-theme-pink .eventlist-today-date {
4322    color: var(--text-dim, #ff85c1) !important;
4323    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4324}
4325
4326/* ========================================
4327   STATIC CALENDAR - Read-only Presentation Mode
4328   ======================================== */
4329
4330.calendar-static {
4331    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
4332    width: 100%;
4333    max-width: 100%;
4334    margin: 0 auto;
4335    box-sizing: border-box;
4336    overflow-x: auto;
4337}
4338
4339/* Header with navigation */
4340.static-header {
4341    display: flex;
4342    align-items: center;
4343    justify-content: center;
4344    gap: 15px;
4345    padding: 12px;
4346    background: #2c3e50;
4347    color: white;
4348    border-radius: 8px 8px 0 0;
4349}
4350
4351.static-month-title {
4352    margin: 0;
4353    font-size: 1.3em;
4354    font-weight: 600;
4355    min-width: 180px;
4356    text-align: center;
4357}
4358
4359.static-nav-btn {
4360    background: rgba(255,255,255,0.2);
4361    border: none;
4362    color: white;
4363    font-size: 16px;
4364    width: 32px;
4365    height: 32px;
4366    border-radius: 50%;
4367    cursor: pointer;
4368    transition: background 0.2s;
4369    flex-shrink: 0;
4370}
4371
4372.static-nav-btn:hover {
4373    background: rgba(255,255,255,0.3);
4374}
4375
4376.static-print-btn {
4377    background: rgba(255,255,255,0.2);
4378    border: none;
4379    color: white;
4380    font-size: 16px;
4381    width: 32px;
4382    height: 32px;
4383    border-radius: 50%;
4384    cursor: pointer;
4385    transition: background 0.2s;
4386    flex-shrink: 0;
4387    margin-left: 10px;
4388    display: flex;
4389    align-items: center;
4390    justify-content: center;
4391    padding: 0;
4392    line-height: 1;
4393}
4394
4395.static-print-btn:hover {
4396    background: rgba(255,255,255,0.3);
4397}
4398
4399/* Calendar grid */
4400.static-calendar-grid {
4401    width: 100%;
4402    border-collapse: collapse;
4403    background: white;
4404    border: 1px solid #ddd;
4405    table-layout: fixed;
4406}
4407
4408.static-calendar-grid th {
4409    background: #f5f5f5;
4410    padding: 8px 4px;
4411    text-align: center;
4412    font-weight: 600;
4413    color: #555;
4414    border-bottom: 2px solid #ddd;
4415    font-size: 12px;
4416}
4417
4418.static-calendar-grid td {
4419    border: 1px solid #eee;
4420    vertical-align: top;
4421    height: 80px;
4422    width: 14.28%;
4423    padding: 0;
4424    overflow: hidden;
4425}
4426
4427.static-day {
4428    height: 100%;
4429    position: relative;
4430}
4431
4432.static-day-empty {
4433    background: #fafafa;
4434}
4435
4436.static-day-number {
4437    position: absolute;
4438    top: 5px;
4439    right: 8px;
4440    font-size: 14px;
4441    font-weight: 500;
4442    color: #666;
4443}
4444
4445.static-day-today .static-day-number {
4446    background: #2c3e50;
4447    color: white;
4448    width: 24px;
4449    height: 24px;
4450    border-radius: 50%;
4451    display: flex;
4452    align-items: center;
4453    justify-content: center;
4454    right: 5px;
4455}
4456
4457.static-day-weekend {
4458    background: #fafafa;
4459}
4460
4461.static-day-events {
4462    padding: 28px 4px 4px 4px;
4463    display: flex;
4464    flex-direction: column;
4465    gap: 2px;
4466    max-height: 80px;
4467    overflow-y: auto;
4468}
4469
4470/* Individual events */
4471.static-event {
4472    font-size: 11px;
4473    padding: 2px 4px;
4474    background: #f0f8ff;
4475    border-left: 3px solid #3498db;
4476    border-radius: 2px;
4477    white-space: nowrap;
4478    overflow: hidden;
4479    text-overflow: ellipsis;
4480    cursor: default;
4481}
4482
4483.static-event:hover {
4484    background: #e3f2fd;
4485}
4486
4487.static-event-important {
4488    background: linear-gradient(135deg, rgba(255, 215, 0, 0.2), rgba(255, 193, 7, 0.1));
4489    border-left-color: #ffc107;
4490}
4491
4492.static-event-important:hover {
4493    background: linear-gradient(135deg, rgba(255, 215, 0, 0.3), rgba(255, 193, 7, 0.2));
4494}
4495
4496.static-event-star {
4497    font-size: 10px;
4498    margin-right: 2px;
4499}
4500
4501.static-event-time {
4502    font-weight: 600;
4503    color: #2c3e50;
4504}
4505
4506.static-event-title {
4507    color: #333;
4508}
4509
4510/* Print view - hidden on screen */
4511.static-print-view {
4512    display: none;
4513}
4514
4515/* Itinerary table for printing */
4516.static-itinerary {
4517    width: 100%;
4518    border-collapse: collapse;
4519    margin-top: 20px;
4520}
4521
4522.static-itinerary th {
4523    background: #2c3e50;
4524    color: white;
4525    padding: 10px;
4526    text-align: left;
4527    font-weight: 600;
4528}
4529
4530.static-itinerary td {
4531    padding: 8px 10px;
4532    border-bottom: 1px solid #ddd;
4533    vertical-align: top;
4534}
4535
4536.static-itinerary-date {
4537    font-weight: 600;
4538    white-space: nowrap;
4539    width: 100px;
4540}
4541
4542.static-itinerary-time {
4543    white-space: nowrap;
4544    width: 120px;
4545    color: #555;
4546}
4547
4548.static-itinerary-title {
4549    font-weight: 500;
4550}
4551
4552.static-itinerary-desc {
4553    color: #666;
4554    font-size: 0.9em;
4555}
4556
4557.static-itinerary-important {
4558    background: rgba(255, 215, 0, 0.15);
4559}
4560
4561.static-print-title {
4562    margin: 0 0 10px 0;
4563    font-size: 1.5em;
4564    color: #2c3e50;
4565}
4566
4567.static-print-namespace {
4568    color: #666;
4569    margin: 0 0 15px 0;
4570    font-style: italic;
4571}
4572
4573.static-print-empty {
4574    color: #888;
4575    font-style: italic;
4576}
4577
4578/* Print styles */
4579@media print {
4580    .calendar-static {
4581        max-width: 100%;
4582        width: 100%;
4583        overflow: visible !important;
4584        height: auto !important;
4585        min-height: 0 !important;
4586        max-height: none !important;
4587    }
4588
4589    /* Completely remove screen view from print flow */
4590    .static-screen-view,
4591    .static-screen-view *,
4592    .static-header,
4593    .static-calendar-grid,
4594    .static-day,
4595    .static-day-events,
4596    .static-event,
4597    .static-nav-btn {
4598        display: none !important;
4599        visibility: hidden !important;
4600        height: 0 !important;
4601        max-height: 0 !important;
4602        width: 0 !important;
4603        max-width: 0 !important;
4604        overflow: hidden !important;
4605        position: absolute !important;
4606        left: -9999px !important;
4607        margin: 0 !important;
4608        padding: 0 !important;
4609        border: none !important;
4610    }
4611
4612    /* Show print view */
4613    .static-print-view {
4614        display: block !important;
4615        visibility: visible !important;
4616        position: relative !important;
4617        height: auto !important;
4618        width: 100% !important;
4619        left: auto !important;
4620    }
4621
4622    .static-print-view * {
4623        visibility: visible !important;
4624        position: relative !important;
4625        left: auto !important;
4626    }
4627
4628    .static-itinerary {
4629        page-break-inside: auto;
4630        width: 100%;
4631        display: table !important;
4632    }
4633
4634    .static-itinerary tr {
4635        page-break-inside: avoid;
4636        page-break-after: auto;
4637        display: table-row !important;
4638    }
4639
4640    .static-itinerary td,
4641    .static-itinerary th {
4642        display: table-cell !important;
4643        height: auto !important;
4644        width: auto !important;
4645    }
4646
4647    .static-itinerary th {
4648        background: #333 !important;
4649        -webkit-print-color-adjust: exact;
4650        print-color-adjust: exact;
4651    }
4652
4653    .static-itinerary-important {
4654        background: #fffde7 !important;
4655        -webkit-print-color-adjust: exact;
4656        print-color-adjust: exact;
4657    }
4658
4659    .static-print-title,
4660    .static-print-namespace,
4661    .static-print-empty {
4662        page-break-after: avoid;
4663        display: block !important;
4664        height: auto !important;
4665        width: auto !important;
4666    }
4667}
4668
4669/* Responsive */
4670@media (max-width: 768px) {
4671    .static-header {
4672        padding: 10px;
4673        gap: 10px;
4674    }
4675
4676    .static-month-title {
4677        font-size: 1.1em;
4678        min-width: 120px;
4679    }
4680
4681    .static-nav-btn {
4682        width: 28px;
4683        height: 28px;
4684        font-size: 14px;
4685    }
4686
4687    .static-calendar-grid th {
4688        padding: 6px 2px;
4689        font-size: 10px;
4690    }
4691
4692    .static-calendar-grid td {
4693        height: 60px;
4694    }
4695
4696    .static-day-number {
4697        font-size: 11px;
4698        top: 2px;
4699        right: 4px;
4700    }
4701
4702    .static-day-today .static-day-number {
4703        width: 18px;
4704        height: 18px;
4705        right: 2px;
4706    }
4707
4708    .static-day-events {
4709        padding: 20px 2px 2px 2px;
4710        max-height: 40px;
4711        gap: 1px;
4712    }
4713
4714    .static-event {
4715        font-size: 9px;
4716        padding: 1px 2px;
4717    }
4718
4719    .static-event-time {
4720        display: none;
4721    }
4722}
4723
4724@media (max-width: 480px) {
4725    .static-calendar-grid th {
4726        font-size: 9px;
4727        padding: 4px 1px;
4728    }
4729
4730    .static-calendar-grid td {
4731        height: 50px;
4732    }
4733
4734    .static-day-events {
4735        max-height: 30px;
4736    }
4737
4738    .static-event {
4739        font-size: 8px;
4740    }
4741}
4742
4743/* Static Calendar Theme Variations */
4744.static-theme-matrix .static-header {
4745    background: #0a0a0a;
4746    border-bottom: 1px solid #00ff00;
4747}
4748
4749.static-theme-matrix .static-calendar-grid {
4750    background: #0d0d0d;
4751    border-color: #00ff00;
4752}
4753
4754.static-theme-matrix .static-calendar-grid th {
4755    background: #0a0a0a;
4756    color: #00ff00;
4757    border-color: #004400;
4758}
4759
4760.static-theme-matrix .static-calendar-grid td {
4761    border-color: #003300;
4762    color: #00cc00;
4763}
4764
4765.static-theme-matrix .static-day-empty {
4766    background: #050505;
4767}
4768
4769.static-theme-matrix .static-day-weekend {
4770    background: #0a0a0a;
4771}
4772
4773.static-theme-matrix .static-day-number {
4774    color: #00ff00;
4775}
4776
4777.static-theme-matrix .static-day-today .static-day-number {
4778    background: #00ff00;
4779    color: #000;
4780}
4781
4782.static-theme-matrix .static-event {
4783    background: rgba(0, 255, 0, 0.1);
4784    color: #00cc00;
4785}
4786
4787.static-theme-matrix .static-event:hover {
4788    background: rgba(0, 255, 0, 0.2);
4789}
4790
4791/* Pink theme */
4792.static-theme-pink .static-header {
4793    background: linear-gradient(135deg, #ff1493, #ff69b4);
4794}
4795
4796.static-theme-pink .static-calendar-grid {
4797    background: #1a0a10;
4798    border-color: #ff1493;
4799}
4800
4801.static-theme-pink .static-calendar-grid th {
4802    background: #2a0a15;
4803    color: #ff69b4;
4804    border-color: #ff1493;
4805}
4806
4807.static-theme-pink .static-calendar-grid td {
4808    border-color: #440020;
4809    color: #ff85c0;
4810}
4811
4812.static-theme-pink .static-day-empty {
4813    background: #0d0508;
4814}
4815
4816.static-theme-pink .static-day-weekend {
4817    background: #150810;
4818}
4819
4820.static-theme-pink .static-day-number {
4821    color: #ff69b4;
4822}
4823
4824.static-theme-pink .static-day-today .static-day-number {
4825    background: #ff1493;
4826    color: #fff;
4827}
4828
4829.static-theme-pink .static-event {
4830    background: rgba(255, 20, 147, 0.15);
4831    color: #ff85c0;
4832}
4833
4834/* Dark theme */
4835.static-theme-dark .static-header {
4836    background: #1a1a2e;
4837}
4838
4839.static-theme-dark .static-calendar-grid {
4840    background: #16213e;
4841    border-color: #1a1a2e;
4842}
4843
4844.static-theme-dark .static-calendar-grid th {
4845    background: #1a1a2e;
4846    color: #e0e0e0;
4847}
4848
4849.static-theme-dark .static-calendar-grid td {
4850    border-color: #2a2a4e;
4851    color: #c0c0c0;
4852}
4853
4854.static-theme-dark .static-day-empty {
4855    background: #0f0f1a;
4856}
4857
4858.static-theme-dark .static-day-weekend {
4859    background: #12121f;
4860}
4861
4862.static-theme-dark .static-day-number {
4863    color: #a0a0a0;
4864}
4865
4866.static-theme-dark .static-day-today .static-day-number {
4867    background: #4a90d9;
4868    color: #fff;
4869}
4870
4871.static-theme-dark .static-event {
4872    background: rgba(74, 144, 217, 0.2);
4873    color: #8ab4f8;
4874}
4875
4876
4877/* Purple theme for static calendar */
4878.static-theme-purple .static-header {
4879    background: linear-gradient(180deg, #2f2438 0%, #2a2030 100%);
4880    border-bottom: 1px solid #9b59b6;
4881}
4882
4883.static-theme-purple .static-calendar-grid {
4884    background: #2a2030;
4885    border-color: #9b59b6;
4886}
4887
4888.static-theme-purple .static-calendar-grid th {
4889    background: #3d2b4d;
4890    color: #d4a5ff;
4891    border-color: #9b59b6;
4892}
4893
4894.static-theme-purple .static-calendar-grid td {
4895    border-color: #4d3860;
4896    color: #b19cd9;
4897}
4898
4899.static-theme-purple .static-day-empty {
4900    background: #1f1828;
4901}
4902
4903.static-theme-purple .static-day-weekend {
4904    background: #251d30;
4905}
4906
4907.static-theme-purple .static-day-number {
4908    color: #d4a5ff;
4909}
4910
4911.static-theme-purple .static-day-today .static-day-number {
4912    background: #9b59b6;
4913    color: #fff;
4914}
4915
4916.static-theme-purple .static-event {
4917    background: rgba(155, 89, 182, 0.2);
4918    color: #d4a5ff;
4919    border-left-color: #9b59b6;
4920}
4921
4922.static-theme-purple .static-event:hover {
4923    background: rgba(155, 89, 182, 0.3);
4924}
4925
4926/* Professional theme for static calendar */
4927.static-theme-professional .static-header {
4928    background: linear-gradient(180deg, #ffffff 0%, #f5f7fa 100%);
4929    border-bottom: 2px solid #4a90e2;
4930    color: #2c3e50;
4931}
4932
4933.static-theme-professional .static-header h2 {
4934    color: #2c3e50;
4935}
4936
4937.static-theme-professional .static-nav-btn,
4938.static-theme-professional .static-print-btn {
4939    background: #4a90e2;
4940    color: white;
4941}
4942
4943.static-theme-professional .static-nav-btn:hover,
4944.static-theme-professional .static-print-btn:hover {
4945    background: #3a7bc8;
4946}
4947
4948.static-theme-professional .static-calendar-grid {
4949    background: #ffffff;
4950    border-color: #d0d7de;
4951}
4952
4953.static-theme-professional .static-calendar-grid th {
4954    background: #f5f7fa;
4955    color: #2c3e50;
4956    border-color: #d0d7de;
4957}
4958
4959.static-theme-professional .static-calendar-grid td {
4960    border-color: #e8ecf1;
4961    color: #2c3e50;
4962}
4963
4964.static-theme-professional .static-day-empty {
4965    background: #fafbfc;
4966}
4967
4968.static-theme-professional .static-day-weekend {
4969    background: #f5f7fa;
4970}
4971
4972.static-theme-professional .static-day-number {
4973    color: #2c3e50;
4974}
4975
4976.static-theme-professional .static-day-today .static-day-number {
4977    background: #4a90e2;
4978    color: #fff;
4979}
4980
4981.static-theme-professional .static-event {
4982    background: rgba(74, 144, 226, 0.1);
4983    color: #2c3e50;
4984    border-left-color: #4a90e2;
4985}
4986
4987.static-theme-professional .static-event:hover {
4988    background: rgba(74, 144, 226, 0.2);
4989}
4990
4991/* Wiki theme for static calendar (neutral, matches DokuWiki default) */
4992.static-theme-wiki .static-header {
4993    background: #f5f5f5;
4994    border-bottom: 1px solid #ccc;
4995    color: #333;
4996}
4997
4998.static-theme-wiki .static-header h2 {
4999    color: #333;
5000}
5001
5002.static-theme-wiki .static-nav-btn,
5003.static-theme-wiki .static-print-btn {
5004    background: #ddd;
5005    color: #333;
5006}
5007
5008.static-theme-wiki .static-nav-btn:hover,
5009.static-theme-wiki .static-print-btn:hover {
5010    background: #ccc;
5011}
5012
5013.static-theme-wiki .static-calendar-grid {
5014    background: #fff;
5015    border-color: #ccc;
5016}
5017
5018.static-theme-wiki .static-calendar-grid th {
5019    background: #f0f0f0;
5020    color: #333;
5021    border-color: #ccc;
5022}
5023
5024.static-theme-wiki .static-calendar-grid td {
5025    border-color: #ddd;
5026    color: #333;
5027}
5028
5029.static-theme-wiki .static-day-empty {
5030    background: #fafafa;
5031}
5032
5033.static-theme-wiki .static-day-weekend {
5034    background: #f5f5f5;
5035}
5036
5037.static-theme-wiki .static-day-number {
5038    color: #333;
5039}
5040
5041.static-theme-wiki .static-day-today .static-day-number {
5042    background: #2196f3;
5043    color: #fff;
5044}
5045
5046.static-theme-wiki .static-event {
5047    background: #e3f2fd;
5048    color: #333;
5049    border-left-color: #2196f3;
5050}
5051
5052.static-theme-wiki .static-event:hover {
5053    background: #bbdefb;
5054}
5055
5056/* Light theme (clean white) */
5057.static-theme-light .static-header {
5058    background: #ffffff;
5059    border-bottom: 2px solid #e0e0e0;
5060    color: #333;
5061}
5062
5063.static-theme-light .static-header h2 {
5064    color: #333;
5065}
5066
5067.static-theme-light .static-nav-btn,
5068.static-theme-light .static-print-btn {
5069    background: #e0e0e0;
5070    color: #333;
5071}
5072
5073.static-theme-light .static-nav-btn:hover,
5074.static-theme-light .static-print-btn:hover {
5075    background: #d0d0d0;
5076}
5077
5078.static-theme-light .static-calendar-grid {
5079    background: #ffffff;
5080    border-color: #e0e0e0;
5081}
5082
5083.static-theme-light .static-calendar-grid th {
5084    background: #fafafa;
5085    color: #333;
5086    border-color: #e0e0e0;
5087}
5088
5089.static-theme-light .static-calendar-grid td {
5090    border-color: #f0f0f0;
5091    color: #333;
5092}
5093
5094.static-theme-light .static-day-empty {
5095    background: #fafafa;
5096}
5097
5098.static-theme-light .static-day-weekend {
5099    background: #f5f5f5;
5100}
5101
5102.static-theme-light .static-day-number {
5103    color: #666;
5104}
5105
5106.static-theme-light .static-day-today .static-day-number {
5107    background: #333;
5108    color: #fff;
5109}
5110
5111.static-theme-light .static-event {
5112    background: #f5f5f5;
5113    color: #333;
5114}
5115
5116.static-theme-light .static-event:hover {
5117    background: #eeeeee;
5118}
5119
5120/* Static calendar rich tooltip */
5121.static-tooltip {
5122    position: fixed;
5123    background: #2c3e50;
5124    color: white;
5125    padding: 10px 14px;
5126    border-radius: 6px;
5127    font-size: 12px;
5128    max-width: 300px;
5129    z-index: 10000;
5130    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
5131    pointer-events: none;
5132    line-height: 1.4;
5133}
5134
5135.static-tooltip strong {
5136    display: block;
5137    margin-bottom: 4px;
5138    font-size: 13px;
5139}
5140
5141.static-tooltip .tooltip-time {
5142    color: #3498db;
5143    font-weight: 500;
5144}
5145
5146.static-tooltip .tooltip-desc {
5147    display: block;
5148    margin-top: 6px;
5149    color: #ecf0f1;
5150    border-top: 1px solid rgba(255,255,255,0.2);
5151    padding-top: 6px;
5152}
5153
5154.static-tooltip .tooltip-desc strong {
5155    display: inline;
5156    margin: 0;
5157    font-size: inherit;
5158}
5159
5160.static-tooltip .tooltip-desc em {
5161    font-style: italic;
5162}
5163
5164.static-tooltip a {
5165    color: #3498db;
5166    text-decoration: underline;
5167}
5168
5169/* Itinerary description formatting */
5170.static-itinerary-desc strong {
5171    font-weight: 600;
5172}
5173
5174.static-itinerary-desc em {
5175    font-style: italic;
5176}
5177
5178.static-itinerary-desc a {
5179    color: #2980b9;
5180    text-decoration: underline;
5181}
5182
5183.static-itinerary-desc br {
5184    display: block;
5185    content: "";
5186    margin-top: 4px;
5187}
5188