xref: /plugin/calendar/style.css (revision 2866e8271e4daef3b32eacb3a9082d02159b592b)
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-day:focus {
427    outline: 2px solid var(--text-bright, #00cc07);
428    outline-offset: -2px;
429    background: var(--cell-today-bg) !important;
430}
431
432.cal-day:focus-visible {
433    outline: 2px solid var(--text-bright, #00cc07);
434    outline-offset: -2px;
435}
436
437.cal-today {
438    background: var(--cell-today-bg);
439}
440
441.cal-today:hover {
442    box-shadow: inset 0 0 0 2px var(--border-main, rgba(0,0,0,0.15));
443}
444
445.cal-has-events {
446    /* background removed - set via inline style with template colors */
447}
448
449.cal-has-events:hover {
450    /* background removed - inline style handles this */
451}
452
453.day-num {
454    display: inline-block;
455    font-size: 11px;
456    font-weight: 500;
457    color: var(--text-primary, #333);
458    padding: 1px 3px;
459}
460
461.cal-today .day-num,
462.day-num-today {
463    background: var(--border-main, #008800);
464    color: var(--background-site, white) !important;
465    border-radius: 50%;
466    font-weight: 700;
467    width: 20px;
468    height: 20px;
469    line-height: 20px;
470    text-align: center;
471    padding: 0;
472    display: inline-block;
473}
474
475.event-indicators {
476    position: absolute;
477    left: 20px;
478    right: 0;
479    top: 20px;
480    bottom: 2px;
481    display: flex;
482    flex-direction: column;
483    gap: 2px;
484    pointer-events: none;
485    overflow: visible;
486}
487
488.event-bar {
489    width: 100%;
490    min-height: 6px;
491    height: 6px;
492    border-radius: 2px;
493    cursor: pointer;
494    pointer-events: auto;
495    transition: all 0.2s;
496    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
497    position: relative;
498    overflow: visible;
499}
500
501.event-bar:hover {
502    transform: scaleY(1.3);
503    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
504    z-index: 10;
505}
506
507.event-bar-no-time {
508    /* Events without time appear at top */
509    order: -1;
510    opacity: 0.9;
511}
512
513.event-bar-timed {
514    /* Events with time are sorted by time */
515    opacity: 0.95;
516}
517
518/* Multi-day event styling - creates visual continuity */
519.event-bar-continues {
520    /* Event continues from previous day - extend left to cell edge */
521    border-top-left-radius: 0;
522    border-bottom-left-radius: 0;
523    margin-left: -20px;
524    padding-left: 20px;
525}
526
527.event-bar-continuing {
528    /* Event continues to next day - extend right to cell edge */
529    border-top-right-radius: 0;
530    border-bottom-right-radius: 0;
531    margin-right: -2px;
532    padding-right: 2px;
533}
534
535.event-bar-continues.event-bar-continuing {
536    /* Event continues both ways (middle of span) - no border radius, extends both sides */
537    border-radius: 0;
538}
539
540/* Important event bar styling */
541.event-bar-important {
542    box-shadow: 0 1px 3px rgba(255, 215, 0, 0.4);
543}
544
545/* Star is rendered via ::before pseudo-element */
546.event-bar-important.event-bar-has-star::before {
547    content: '⭐';
548    position: absolute;
549    left: -12px;
550    top: 50%;
551    transform: translateY(-50%);
552    font-size: 7px;
553    line-height: 1;
554    filter: drop-shadow(0 0 1px rgba(0,0,0,0.3));
555    pointer-events: none;
556}
557
558/* Hide the inline star span - we use ::before instead */
559.event-bar-star {
560    display: none;
561}
562
563/* Old event dot - removing */
564.event-dot {
565    display: none;
566}
567
568/* Event list header - COMPACT */
569.event-list-header {
570    display: flex;
571    align-items: center;
572    justify-content: space-between;
573    padding: 8px 10px;
574    border-bottom: 1px solid var(--border-color, #e0e0e0);
575    background: var(--background-header);
576    gap: 6px;
577    flex-wrap: nowrap;
578    overflow: hidden;
579}
580
581.event-list-header-content {
582    display: flex;
583    align-items: center;
584    gap: 6px;
585    flex: 0 0 auto;
586    min-width: 0;
587}
588
589.event-list-header h4 {
590    margin: 0;
591    font-size: 12px;
592    font-weight: 600;
593    color: var(--text-primary);
594    white-space: nowrap;
595}
596
597.namespace-badge {
598    background: var(--cell-today-bg, #e8f5e9);
599    color: var(--text-bright, #388e3c);
600    padding: 2px 6px;
601    border-radius: 10px;
602    font-size: 9px;
603    font-weight: 600;
604    text-transform: uppercase;
605    letter-spacing: 0.3px;
606    border: 1px solid var(--border-color, transparent);
607}
608
609/* Event search bar - inline in header */
610.event-search-container-inline {
611    position: relative;
612    flex: 1 1 auto;
613    min-width: 60px;
614    max-width: 160px;
615    margin: 0 4px;
616    display: flex;
617    gap: 0;
618}
619
620.event-search-input-inline {
621    flex: 1;
622    padding: 4px 24px 4px 8px;
623    border: 1px solid var(--border-color, #d0d0d0);
624    border-radius: 3px 0 0 3px;
625    font-size: 11px;
626    outline: none;
627    transition: border-color 0.2s, box-shadow 0.2s;
628    background: var(--cell-bg);
629    color: var(--text-primary);
630    min-width: 0;
631}
632
633.event-search-input-inline:focus {
634    border-color: var(--text-bright, #00cc07);
635    box-shadow: 0 0 0 2px var(--shadow-color, rgba(0, 204, 7, 0.1));
636}
637
638.event-search-input-inline::placeholder {
639    color: var(--text-dim);
640    font-size: 10px;
641}
642
643.event-search-clear-inline {
644    position: absolute;
645    right: 26px;
646    top: 50%;
647    transform: translateY(-50%);
648    background: none;
649    border: none;
650    color: var(--text-dim);
651    cursor: pointer;
652    padding: 2px 4px;
653    font-size: 12px;
654    line-height: 1;
655    transition: color 0.2s;
656}
657
658.event-search-clear-inline:hover {
659    color: var(--text-primary);
660}
661
662.event-search-mode-inline {
663    background: var(--cell-bg, #f0f0f0);
664    border: 1px solid var(--border-color, #d0d0d0);
665    border-left: none;
666    border-radius: 0 3px 3px 0;
667    padding: 0 5px;
668    cursor: pointer;
669    font-size: 10px;
670    transition: all 0.2s;
671    color: var(--text-dim, #666);
672    display: flex;
673    align-items: center;
674    flex-shrink: 0;
675}
676
677.event-search-mode-inline:hover {
678    background: var(--cell-today-bg, #e8f5e9);
679    color: var(--text-bright, #00cc07);
680}
681
682.event-search-mode-inline.all-dates {
683    background: var(--text-bright, #00cc07);
684    color: var(--background-site, white);
685    border-color: var(--text-bright, #00cc07);
686}
687
688.event-search-mode-inline.all-dates:hover {
689    filter: brightness(1.1);
690}
691
692.no-search-results {
693    text-align: center;
694    color: var(--text-dim);
695    font-size: 12px;
696    padding: 20px;
697    font-style: italic;
698}
699
700.add-event-compact {
701    background: var(--border-main);
702    color: var(--background-site);
703    border: none;
704    padding: 4px 8px;
705    border-radius: 3px;
706    font-size: 11px;
707    font-weight: 500;
708    cursor: pointer;
709    transition: all 0.15s;
710    flex-shrink: 0;
711    white-space: nowrap;
712}
713
714.add-event-compact:hover {
715    filter: brightness(1.3);
716    box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3));
717    transform: scale(1.05);
718}
719
720.add-event-compact:active {
721    filter: brightness(0.85);
722    transform: scale(0.95);
723}
724
725/* Event list scrollable area - COMPACT */
726.event-list-compact {
727    flex: 1;
728    overflow-y: auto;
729    padding: 6px;
730    background: var(--background-site);
731}
732
733.event-list-compact::-webkit-scrollbar {
734    width: 6px;
735}
736
737.event-list-compact::-webkit-scrollbar-track {
738    background: var(--cell-bg, #f5f5f5);
739}
740
741.event-list-compact::-webkit-scrollbar-thumb {
742    background: var(--border-color, #ccc);
743    border-radius: 3px;
744}
745
746.event-list-compact::-webkit-scrollbar-thumb:hover {
747    background: var(--text-dim, #aaa);
748}
749
750/* Event items in list - SUPER COMPACT with checkbox on right */
751.event-compact-item {
752    display: flex;
753    align-items: flex-start;
754    margin-bottom: 4px;
755    background-color: var(--background-site);
756    color: var(--text-primary);
757    border: 1px solid var(--border-color, #e0e0e0);
758    border-left: 3px solid var(--text-bright, #3498db);
759    border-radius: 3px;
760    padding: 5px 6px;
761    transition: box-shadow 0.15s, background 0.15s, transform 0.15s;
762    gap: 6px;
763    position: relative;
764}
765
766.event-compact-item:hover {
767    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
768    background-color: var(--background-alt);  /* Slightly different on hover */
769}
770
771.event-highlighted {
772    animation: highlightPulse 0.6s ease-in-out;
773    background: var(--tomorrow-bg, #fff9e6) !important;
774    box-shadow: 0 2px 8px var(--shadow-color, rgba(255, 193, 7, 0.4)) !important;
775}
776
777@keyframes highlightPulse {
778    0% {
779        background: var(--background-site, #ffffff);
780        box-shadow: 0 0 0 rgba(255, 193, 7, 0);
781    }
782    50% {
783        background: #fffbea;
784        box-shadow: 0 4px 12px rgba(255, 193, 7, 0.6);
785        transform: scale(1.02);
786    }
787    100% {
788        background: #fff9e6;
789        box-shadow: 0 2px 8px rgba(255, 193, 7, 0.4);
790        transform: scale(1);
791    }
792}
793
794/* Important namespace event highlighting */
795.event-important {
796    background: var(--important-bg, rgba(0, 204, 7, 0.06)) !important;
797    border-right: 2px solid var(--important-border, rgba(0, 204, 7, 0.3));
798}
799
800.event-important:hover {
801    background: var(--important-bg-hover, rgba(0, 204, 7, 0.1)) !important;
802}
803
804.event-important-star {
805    font-size: 10px;
806    flex-shrink: 0;
807}
808
809/* Theme-specific important event colors */
810.calendar-theme-matrix .event-important,
811.sidebar-matrix .event-important {
812    --important-bg: rgba(0, 204, 7, 0.08);
813    --important-bg-hover: rgba(0, 204, 7, 0.12);
814    --important-border: rgba(0, 204, 7, 0.4);
815}
816
817.calendar-theme-purple .event-important,
818.sidebar-purple .event-important {
819    --important-bg: rgba(156, 39, 176, 0.08);
820    --important-bg-hover: rgba(156, 39, 176, 0.12);
821    --important-border: rgba(156, 39, 176, 0.4);
822}
823
824.calendar-theme-pink .event-important,
825.sidebar-pink .event-important {
826    --important-bg: rgba(255, 105, 180, 0.1);
827    --important-bg-hover: rgba(255, 105, 180, 0.15);
828    --important-border: rgba(255, 105, 180, 0.5);
829}
830
831.calendar-theme-professional .event-important {
832    --important-bg: rgba(33, 150, 243, 0.08);
833    --important-bg-hover: rgba(33, 150, 243, 0.12);
834    --important-border: rgba(33, 150, 243, 0.4);
835}
836
837.calendar-theme-wiki .event-important {
838    --important-bg: rgba(0, 102, 204, 0.06);
839    --important-bg-hover: rgba(0, 102, 204, 0.1);
840    --important-border: rgba(0, 102, 204, 0.3);
841}
842
843.event-completed {
844    opacity: 0.55;
845    background: var(--cell-bg, #f5f5f5);
846}
847
848.event-completed .event-title-compact {
849    text-decoration: line-through;
850    color: var(--text-dim, #999);
851}
852
853.event-past {
854    opacity: 0.35;
855    background: var(--cell-bg, #fafafa);
856    font-size: 10px;
857    padding: 3px 6px;
858    margin-bottom: 2px;
859    cursor: pointer;
860    transition: all 0.2s ease;
861}
862
863.event-past:hover {
864    opacity: 0.6;
865    background: var(--cell-today-bg, #f5f5f5);
866}
867
868.event-past-expanded {
869    opacity: 0.8 !important;
870    background: var(--cell-bg, #f9f9f9) !important;
871    padding: 5px 6px !important;
872    font-size: 12px !important;
873}
874
875.event-past-expanded .event-title-compact {
876    font-size: 12px !important;
877    color: var(--text-dim, #666) !important;
878}
879
880.event-past-expanded .event-date-time {
881    font-size: 11px !important;
882    color: var(--text-dim, #888) !important;
883}
884
885.event-past .event-title-compact {
886    font-size: 10px;
887    color: var(--text-dim, #aaa);
888    font-weight: 400;
889}
890
891.event-past .event-date-time {
892    font-size: 9px;
893    color: var(--text-dim, #bbb);
894}
895
896.event-past .event-action-btn {
897    font-size: 11px;
898    opacity: 0.3;
899}
900
901.event-past .event-action-btn:hover {
902    opacity: 0.7;
903}
904
905.event-today-badge {
906    background: var(--border-main, #9b59b6);
907    color: var(--background-site, white);
908    padding: 1px 4px;
909    border-radius: 3px;
910    font-size: 9px;
911    font-weight: 600;
912    letter-spacing: 0.5px;
913    display: inline-block;
914    vertical-align: middle;
915    margin-left: auto; /* Right-align */
916    float: right; /* Force to right side */
917}
918
919.event-pastdue-badge {
920    background: var(--pastdue-color, #e74c3c);
921    color: white;
922    padding: 1px 4px;
923    border-radius: 3px;
924    font-size: 9px;
925    font-weight: 600;
926    letter-spacing: 0.5px;
927    display: inline-block;
928    vertical-align: middle;
929    margin-left: auto; /* Right-align */
930    float: right; /* Force to right side */
931}
932
933.event-pastdue {
934    border: 2px solid var(--pastdue-color, #e74c3c) !important;
935    border-radius: 4px;
936    opacity: 1 !important;
937}
938
939.event-namespace-badge {
940    background: var(--text-bright, #008800);
941    color: var(--background-site, white);
942    padding: 1px 4px;
943    border-radius: 3px;
944    font-size: 9px;
945    font-weight: 500;
946    display: inline-block;
947    vertical-align: middle;
948    margin-left: 4px;
949    cursor: pointer;
950    transition: all 0.15s;
951}
952
953.event-namespace-badge:hover {
954    filter: brightness(1.3);
955}
956
957.event-conflict-badge {
958    background: var(--border-main, #ff9800);
959    color: var(--background-site, white);
960    padding: 0px 4px;
961    border-radius: 2px;
962    font-size: 9px;
963    display: inline-block;
964    vertical-align: middle;
965    margin-left: 3px;
966    cursor: help;
967    animation: pulse-warning 2s infinite;
968    line-height: 14px;
969    border: 1px solid var(--text-bright, #ff9800);
970}
971
972@keyframes pulse-warning {
973    0%, 100% {
974        opacity: 1;
975    }
976    50% {
977        opacity: 0.7;
978    }
979}
980
981.event-conflict-badge:hover {
982    background: var(--text-bright, #f57c00);
983    animation: none;
984}
985
986/* Custom conflict tooltip - SMALLER FOR MAIN CALENDAR */
987.conflict-tooltip {
988    position: fixed;
989    z-index: 10000;
990    background: var(--background-site, white);
991    border: 1px solid var(--border-main, #ff9800);
992    border-radius: 3px;
993    box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2));
994    padding: 0;
995    min-width: 120px;
996    max-width: 200px;
997    opacity: 0;
998    transition: opacity 0.2s;
999    pointer-events: none;
1000}
1001
1002/* Custom tooltip that appears above and to the left - FIXED POSITION */
1003[data-tooltip] {
1004    position: relative;
1005    cursor: help;
1006}
1007
1008[data-tooltip]:before {
1009    content: attr(data-tooltip);
1010    position: fixed;
1011    padding: 3px 6px;
1012    background: rgba(0, 0, 0, 0.95);
1013    color: var(--background-site, #fff);
1014    font-size: 9px;
1015    line-height: 1.3;
1016    white-space: pre-line;
1017    border-radius: 3px;
1018    opacity: 0;
1019    pointer-events: none;
1020    transition: opacity 0.2s;
1021    min-width: 120px;
1022    max-width: 200px;
1023    z-index: 10000;
1024    text-align: left;
1025    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
1026}
1027
1028[data-tooltip]:hover:before {
1029    opacity: 1;
1030}
1031
1032/* Pink theme tooltips - with hearts! */
1033.sidebar-pink [data-tooltip]:before {
1034    background: linear-gradient(135deg, #ff1493 0%, #ff69b4 100%);
1035    color: #fff;
1036    border: 2px solid #ff85c1;
1037    box-shadow: 0 0 15px rgba(255, 20, 147, 0.6), 0 4px 12px rgba(0, 0, 0, 0.4);
1038    font-weight: 600;
1039}
1040
1041.sidebar-pink [data-tooltip]:after {
1042    content: '��';
1043    position: fixed;
1044    font-size: 12px;
1045    opacity: 0;
1046    pointer-events: none;
1047    transition: opacity 0.2s;
1048    z-index: 10001;
1049    filter: drop-shadow(0 0 3px rgba(255, 20, 147, 0.8));
1050}
1051
1052.sidebar-pink [data-tooltip]:hover:after {
1053    opacity: 1;
1054}
1055
1056/* Position data-tooltip with JavaScript for no cutoff */
1057.data-tooltip-positioned:before {
1058    /* Position set by JavaScript */
1059}
1060
1061/* Allow sidebar to overflow for tooltips */
1062.sidebar-widget,
1063.sidebar-matrix {
1064    overflow: visible !important;
1065}
1066
1067.conflict-tooltip-header {
1068    background: var(--border-main, #ff9800);
1069    color: var(--background-site, white);
1070    padding: 4px 8px;
1071    font-weight: 600;
1072    font-size: 10px;
1073    border-radius: 2px 2px 0 0;
1074}
1075
1076.conflict-tooltip-body {
1077    padding: 6px 8px;
1078    font-size: 9px;
1079    line-height: 1.4;
1080}
1081
1082.conflict-item {
1083    padding: 2px 0;
1084    color: var(--text-primary, #333);
1085    border-bottom: 1px solid var(--border-color, #f0f0f0);
1086    font-size: 9px;
1087}
1088
1089.conflict-item:last-child {
1090    border-bottom: none;
1091}
1092
1093.event-info {
1094    flex: 1;
1095    min-width: 0;
1096    padding-right: 60px;
1097    text-align: left;
1098}
1099
1100.event-title-row {
1101    display: flex;
1102    align-items: center;
1103    gap: 4px;
1104}
1105
1106.event-title-compact {
1107    font-size: 12px;
1108    font-weight: 600;
1109    color: var(--text-primary, #2c3e50);
1110    overflow: hidden;
1111    text-overflow: ellipsis;
1112    white-space: nowrap;
1113    text-align: left;
1114}
1115
1116.event-meta-compact {
1117    font-size: 10px;
1118    color: var(--text-dim, #666);
1119    margin-top: 1px;
1120    text-align: left;
1121}
1122
1123.event-date-time {
1124    font-weight: 500;
1125}
1126
1127.event-desc-compact {
1128    font-size: 10px;
1129    color: var(--text-dim, #666);
1130    line-height: 1.4;
1131    margin-top: 2px;
1132    text-align: left;
1133    word-wrap: break-word;
1134    overflow-wrap: break-word;
1135}
1136
1137.event-desc-compact img.event-image {
1138    max-width: 100%;
1139    height: auto;
1140    margin: 4px 0;
1141    border-radius: 3px;
1142    display: block;
1143}
1144
1145.event-desc-compact a {
1146    color: var(--text-bright, #008800);
1147    text-decoration: none;
1148    border-bottom: 1px dotted var(--text-bright, #008800);
1149}
1150
1151.event-desc-compact a:hover {
1152    color: var(--text-primary, #388e3c);
1153    border-bottom-style: solid;
1154}
1155
1156.event-desc-compact strong,
1157.event-desc-compact b {
1158    font-weight: 600;
1159    color: var(--text-primary, #333);
1160}
1161
1162.event-desc-compact em,
1163.event-desc-compact i {
1164    font-style: italic;
1165}
1166
1167.event-desc-compact code {
1168    background: var(--cell-bg, #f5f5f5);
1169    padding: 1px 3px;
1170    border-radius: 2px;
1171    font-family: monospace;
1172    font-size: 9px;
1173    color: var(--text-primary, inherit);
1174}
1175
1176.event-actions-compact {
1177    position: absolute;
1178    top: 5px;
1179    right: 24px;
1180    display: flex;
1181    gap: 2px;
1182    flex-shrink: 0;
1183}
1184
1185.event-action-btn {
1186    background: none;
1187    border: none;
1188    font-size: 14px;
1189    cursor: pointer;
1190    padding: 2px;
1191    opacity: 0.5;
1192    transition: opacity 0.15s, transform 0.15s;
1193}
1194
1195.event-action-btn:hover {
1196    opacity: 1;
1197    transform: scale(1.15);
1198}
1199
1200.task-checkbox {
1201    position: absolute;
1202    top: 5px;
1203    right: 6px;
1204    width: 16px;
1205    height: 16px;
1206    margin: 0;
1207    cursor: pointer;
1208    flex-shrink: 0;
1209    accent-color: var(--text-bright, #008800);
1210    /* Custom checkbox - bright border for all themes */
1211    appearance: none;
1212    -webkit-appearance: none;
1213    border: 2px solid var(--text-bright, #008800);
1214    border-radius: 3px;
1215    background: var(--cell-bg, #fff);
1216    transition: all 0.15s;
1217    box-shadow: 0 0 3px var(--shadow-color, rgba(0,0,0,0.1));
1218}
1219
1220.task-checkbox:hover {
1221    border-color: var(--text-bright, #008800);
1222    box-shadow: 0 0 8px var(--shadow-color, rgba(0,0,0,0.25));
1223    transform: scale(1.1);
1224}
1225
1226.task-checkbox:checked {
1227    background: var(--text-bright, #008800);
1228    border-color: var(--text-bright, #008800);
1229    box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.2));
1230}
1231
1232.task-checkbox:checked::after {
1233    content: '✓';
1234    display: block;
1235    text-align: center;
1236    color: var(--background-site, white);
1237    font-size: 11px;
1238    font-weight: 700;
1239    line-height: 12px;
1240}
1241
1242.no-events-msg {
1243    text-align: center;
1244    color: var(--text-dim, #999);
1245    font-size: 12px;
1246    font-style: italic;
1247    padding: 40px 20px;
1248}
1249
1250/* Sleek Event Dialog - FULLY RESPONSIVE */
1251.event-dialog-compact {
1252    position: fixed;
1253    top: 0;
1254    left: 0;
1255    width: 100%;
1256    height: 100%;
1257    z-index: 9999;
1258    display: flex;
1259    align-items: center;
1260    justify-content: center;
1261    animation: fadeIn 0.2s ease;
1262    padding: 20px;
1263    box-sizing: border-box;
1264    overflow-y: auto;
1265}
1266
1267@keyframes fadeIn {
1268    from { opacity: 0; }
1269    to { opacity: 1; }
1270}
1271
1272.dialog-content-sleek {
1273    position: relative;
1274    background: var(--background-site, #ffffff);
1275    width: 100%;
1276    max-width: 450px;
1277    max-height: calc(100vh - 40px);
1278    border-radius: 8px;
1279    box-shadow: 0 8px 32px var(--shadow-color, rgba(0,0,0,0.2));
1280    z-index: 10000;
1281    animation: slideUp 0.3s ease;
1282    overflow: hidden;
1283    display: flex;
1284    flex-direction: column;
1285    margin: auto;
1286    border: 1px solid var(--border-main, transparent);
1287}
1288
1289/* Mobile responsive dialog */
1290@media (max-width: 768px) {
1291    .event-dialog-compact {
1292        padding: 10px;
1293    }
1294
1295    .dialog-content-sleek {
1296        max-width: 100%;
1297        width: calc(100% - 20px);
1298        max-height: calc(100vh - 20px);
1299    }
1300}
1301
1302@media (max-width: 480px) {
1303    .event-dialog-compact {
1304        padding: 0;
1305        align-items: flex-start;
1306    }
1307
1308    .dialog-content-sleek {
1309        width: 100%;
1310        max-width: 100%;
1311        max-height: 100vh;
1312        border-radius: 0;
1313        margin: 0;
1314    }
1315}
1316
1317@keyframes slideUp {
1318    from {
1319        transform: translateY(20px);
1320        opacity: 0;
1321    }
1322    to {
1323        transform: translateY(0);
1324        opacity: 1;
1325    }
1326}
1327
1328.dialog-header-sleek {
1329    display: flex;
1330    align-items: center;
1331    justify-content: space-between;
1332    padding: 10px 14px;
1333    background: var(--background-header, #2c3e50);
1334    color: var(--text-bright, white);
1335    cursor: move;
1336    flex-shrink: 0;
1337    border-bottom: 1px solid var(--border-main, transparent);
1338}
1339
1340.dialog-drag-handle {
1341    cursor: move;
1342}
1343
1344.dialog-header-sleek h3 {
1345    margin: 0;
1346    font-size: 15px;
1347    font-weight: 600;
1348}
1349
1350.dialog-close-btn {
1351    background: var(--cell-today-bg, rgba(255,255,255,0.2));
1352    border: none;
1353    color: white;
1354    font-size: 22px;
1355    width: 28px;
1356    height: 28px;
1357    border-radius: 50%;
1358    cursor: pointer;
1359    display: flex;
1360    align-items: center;
1361    justify-content: center;
1362    transition: all 0.2s;
1363    line-height: 1;
1364    padding: 0;
1365    flex-shrink: 0;
1366}
1367
1368.dialog-close-btn:hover {
1369    background: var(--cell-today-bg, rgba(255,255,255,0.3));
1370    transform: scale(1.1);
1371}
1372
1373.sleek-form {
1374    padding: 10px 12px;
1375    overflow-y: auto;
1376    overflow-x: hidden;
1377    flex: 1;
1378    max-height: calc(100vh - 160px);
1379    background: var(--background-site, #ffffff);
1380}
1381
1382/* Ensure form is scrollable on small screens */
1383@media (max-height: 600px) {
1384    .sleek-form {
1385        max-height: calc(100vh - 120px);
1386    }
1387}
1388
1389@media (max-height: 500px) {
1390    .sleek-form {
1391        max-height: calc(100vh - 100px);
1392    }
1393}
1394
1395/* Mobile: reduce form padding to maximize field width */
1396@media (max-width: 480px) {
1397    .sleek-form {
1398        padding: 8px;
1399    }
1400
1401    .sleek-form .form-field {
1402        margin-bottom: 8px;
1403    }
1404
1405    .sleek-form .input-sleek,
1406    .sleek-form .textarea-sleek,
1407    .sleek-form textarea,
1408    .sleek-form select {
1409        width: 100% !important;
1410        max-width: 100% !important;
1411        box-sizing: border-box !important;
1412    }
1413
1414    .sleek-form .form-row-group {
1415        gap: 6px;
1416    }
1417}
1418
1419.form-field {
1420    margin-bottom: 6px;
1421}
1422
1423/* Compact form elements */
1424.input-compact {
1425    height: 30px !important;
1426    padding: 4px 8px !important;
1427    font-size: 11px !important;
1428}
1429
1430.textarea-compact {
1431    min-height: 28px !important;
1432    padding: 4px 8px !important;
1433    font-size: 11px !important;
1434    line-height: 1.3 !important;
1435}
1436
1437.field-label-compact {
1438    font-size: 10px !important;
1439    margin-bottom: 2px !important;
1440    font-weight: 500;
1441    color: var(--text-dim, #555);
1442}
1443
1444.form-field-checkbox-compact {
1445    padding: 4px 8px !important;
1446    margin-bottom: 6px !important;
1447}
1448
1449.checkbox-label-compact {
1450    font-size: 10px !important;
1451    gap: 4px !important;
1452}
1453
1454.checkbox-label-compact input[type="checkbox"] {
1455    width: 13px !important;
1456    height: 13px !important;
1457    accent-color: var(--text-bright, #008800);
1458}
1459
1460.color-picker-compact {
1461    height: 30px !important;
1462}
1463
1464/* Responsive form fields */
1465@media (max-width: 480px) {
1466    .form-field {
1467        margin-bottom: 8px;
1468    }
1469}
1470
1471.form-field-checkbox {
1472    background: var(--cell-bg, #f1f8f4);
1473    padding: 8px;
1474    border-radius: 4px;
1475    border: 1px solid var(--border-main, #008800);
1476}
1477
1478.checkbox-label {
1479    display: flex;
1480    align-items: center;
1481    gap: 6px;
1482    cursor: pointer;
1483    font-size: 11px;
1484    font-weight: 500;
1485    color: var(--text-primary, #388e3c);
1486}
1487
1488.checkbox-label input[type="checkbox"] {
1489    width: 15px;
1490    height: 15px;
1491    cursor: pointer;
1492    accent-color: var(--text-bright, #008800);
1493}
1494
1495.recurring-options {
1496    background: var(--cell-bg, #f1f8f4);
1497    padding: 12px;
1498    border-radius: 4px;
1499    border: 1px solid var(--border-main, #81c784);
1500    margin-top: 8px;
1501}
1502
1503.form-row-group {
1504    display: grid;
1505    grid-template-columns: 1fr 1fr;
1506    gap: 10px;
1507    margin-bottom: 10px;
1508}
1509
1510@media (max-width: 768px) {
1511    .form-row-group {
1512        grid-template-columns: 1fr;
1513        gap: 8px;
1514    }
1515}
1516
1517.field-label {
1518    display: block;
1519    font-size: 11px;
1520    font-weight: 600;
1521    color: var(--text-primary, #2c3e50);
1522    margin-bottom: 5px;
1523    text-transform: uppercase;
1524    letter-spacing: 0.3px;
1525}
1526
1527@media (max-width: 480px) {
1528    .field-label {
1529        font-size: 10px;
1530    }
1531}
1532
1533.input-sleek {
1534    width: 100%;
1535    color: var(--text-primary, #333);
1536    padding: 8px 10px;
1537    border: 2px solid var(--border-color, #e0e0e0);
1538    border-radius: 4px;
1539    font-size: 13px;
1540    font-family: inherit;
1541    /* Use specific transitions instead of 'all' to avoid dropdown rendering issues */
1542    transition: border-color 0.2s, background-color 0.2s, box-shadow 0.2s;
1543    background: var(--cell-bg, #fafafa);
1544    box-sizing: border-box;
1545}
1546
1547.input-sleek:focus {
1548    outline: none;
1549    border-color: var(--text-bright, #008800);
1550    background: var(--background-site, white);
1551    box-shadow: 0 0 0 3px var(--shadow-color, rgba(33, 150, 243, 0.1));
1552}
1553
1554.input-sleek::placeholder,
1555.textarea-sleek::placeholder {
1556    color: var(--text-dim, #999);
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/* Custom Time Picker Styles */
1584.custom-time-picker,
1585.custom-date-picker {
1586    display: flex;
1587    justify-content: space-between;
1588    align-items: center;
1589    cursor: pointer;
1590    text-align: left;
1591    background: var(--cell-bg, #fafafa);
1592    min-width: 120px;
1593    position: relative;
1594}
1595
1596.custom-time-picker:disabled,
1597.custom-date-picker:disabled {
1598    opacity: 0.6;
1599    cursor: not-allowed;
1600}
1601
1602.custom-time-picker:focus,
1603.custom-date-picker:focus {
1604    outline: 2px solid var(--text-bright, #00cc07);
1605    outline-offset: -2px;
1606}
1607
1608.custom-time-picker:focus-visible,
1609.custom-date-picker:focus-visible {
1610    outline: 2px solid var(--text-bright, #00cc07);
1611    outline-offset: -2px;
1612}
1613
1614.custom-time-picker .time-display,
1615.custom-date-picker .date-display {
1616    flex: 1;
1617}
1618
1619.custom-time-picker .time-arrow,
1620.custom-date-picker .date-arrow {
1621    font-size: 10px;
1622    margin-left: 8px;
1623    opacity: 0.6;
1624}
1625
1626.custom-time-picker.open .time-arrow,
1627.custom-date-picker.open .date-arrow {
1628    transform: rotate(180deg);
1629}
1630
1631.time-picker-wrapper,
1632.date-picker-wrapper {
1633    position: relative;
1634}
1635
1636.time-dropdown,
1637.date-dropdown {
1638    display: none;
1639    position: absolute;
1640    top: 100%;
1641    left: 0;
1642    right: 0;
1643    max-height: 280px;
1644    overflow-y: auto;
1645    background: var(--background-site, white);
1646    border: 2px solid var(--border-color, #e0e0e0);
1647    border-top: none;
1648    border-radius: 0 0 6px 6px;
1649    z-index: 10000;
1650    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
1651}
1652
1653.date-dropdown {
1654    min-width: 280px;
1655    max-height: none;
1656    overflow: visible;
1657}
1658
1659/* Start date dropdown (first half) expands to the right */
1660.form-field-half:first-child .date-dropdown {
1661    left: 0;
1662    right: auto;
1663}
1664
1665/* End date dropdown (second half) expands to the left to avoid overflow */
1666.form-field-half:last-child .date-dropdown,
1667.form-field-half:nth-child(2) .date-dropdown {
1668    right: 0;
1669    left: auto;
1670}
1671
1672.time-dropdown.open,
1673.date-dropdown.open {
1674    display: block;
1675}
1676
1677/* Date Picker Calendar Grid */
1678.date-picker-calendar {
1679    padding: 8px;
1680}
1681
1682.date-picker-header {
1683    display: flex;
1684    justify-content: space-between;
1685    align-items: center;
1686    padding: 8px 4px;
1687    margin-bottom: 8px;
1688    border-bottom: 1px solid var(--border-color, #e0e0e0);
1689}
1690
1691.date-picker-title {
1692    font-weight: 600;
1693    font-size: 14px;
1694    color: var(--text-primary, #333);
1695}
1696
1697.date-picker-nav {
1698    background: transparent;
1699    border: none;
1700    cursor: pointer;
1701    padding: 4px 8px;
1702    font-size: 16px;
1703    color: var(--text-dim, #666);
1704    border-radius: 4px;
1705}
1706
1707.date-picker-nav:hover {
1708    background: var(--cell-today-bg, rgba(0, 200, 0, 0.1));
1709    color: var(--text-bright, #00cc07);
1710}
1711
1712.date-picker-weekdays {
1713    display: grid;
1714    grid-template-columns: repeat(7, 1fr);
1715    gap: 2px;
1716    margin-bottom: 4px;
1717}
1718
1719.date-picker-weekday {
1720    text-align: center;
1721    font-size: 11px;
1722    font-weight: 600;
1723    color: var(--text-dim, #666);
1724    padding: 4px 0;
1725}
1726
1727.date-picker-days {
1728    display: grid;
1729    grid-template-columns: repeat(7, 1fr);
1730    gap: 2px;
1731}
1732
1733.date-picker-day {
1734    text-align: center;
1735    padding: 8px 4px;
1736    cursor: pointer;
1737    border-radius: 4px;
1738    font-size: 13px;
1739    color: var(--text-primary, #333);
1740    background: transparent;
1741    border: none;
1742}
1743
1744.date-picker-day:hover {
1745    background: var(--cell-today-bg, rgba(0, 200, 0, 0.1));
1746}
1747
1748.date-picker-day.other-month {
1749    color: var(--text-dim, #999);
1750    opacity: 0.5;
1751}
1752
1753.date-picker-day.today {
1754    font-weight: bold;
1755    color: var(--text-bright, #00cc07);
1756}
1757
1758.date-picker-day.selected {
1759    background: var(--text-bright, #00cc07);
1760    color: white;
1761}
1762
1763.date-picker-day.disabled {
1764    opacity: 0.3;
1765    cursor: not-allowed;
1766}
1767
1768.date-picker-clear {
1769    display: block;
1770    width: 100%;
1771    padding: 8px;
1772    margin-top: 8px;
1773    border: none;
1774    background: var(--background-alt, #f5f5f5);
1775    color: var(--text-dim, #666);
1776    cursor: pointer;
1777    border-radius: 4px;
1778    font-size: 12px;
1779}
1780
1781.date-picker-clear:hover {
1782    background: var(--cell-today-bg, rgba(0, 200, 0, 0.1));
1783    color: var(--text-bright, #00cc07);
1784}
1785
1786.time-dropdown-section {
1787    padding: 4px 0;
1788    border-bottom: 1px solid var(--border-color, #e0e0e0);
1789}
1790
1791.time-dropdown-section:last-child {
1792    border-bottom: none;
1793}
1794
1795.time-dropdown-header {
1796    padding: 6px 12px;
1797    font-size: 11px;
1798    font-weight: 600;
1799    color: var(--text-dim, #666);
1800    background: var(--background-alt, #f5f5f5);
1801    text-transform: uppercase;
1802    letter-spacing: 0.5px;
1803}
1804
1805.time-option {
1806    padding: 8px 12px;
1807    cursor: pointer;
1808    font-size: 13px;
1809    color: var(--text-primary, #333);
1810    transition: background 0.1s;
1811}
1812
1813.time-option:hover {
1814    background: var(--cell-today-bg, rgba(0, 200, 0, 0.1));
1815}
1816
1817.time-option.selected {
1818    background: var(--text-bright, #00cc07);
1819    color: white;
1820}
1821
1822.time-option.disabled {
1823    opacity: 0.4;
1824    cursor: not-allowed;
1825    pointer-events: none;
1826}
1827
1828.color-picker-input {
1829    width: 45px;
1830    height: 38px;
1831    border: 2px solid var(--border-color, #e0e0e0);
1832    border-radius: 6px;
1833    cursor: pointer;
1834    padding: 2px;
1835    display: none;
1836}
1837
1838.color-picker-input:hover {
1839    border-color: var(--text-bright, #4CAF50);
1840}
1841
1842.input-color-sleek {
1843    width: 50px;
1844    height: 38px;
1845    border: 2px solid var(--border-color, #e0e0e0);
1846    border-radius: 6px;
1847    cursor: pointer;
1848    transition: all 0.2s;
1849}
1850
1851.input-color-sleek:hover {
1852    border-color: var(--text-bright, #008800);
1853    transform: scale(1.05);
1854}
1855
1856.color-label {
1857    font-size: 11px;
1858    color: var(--text-dim, #666);
1859}
1860
1861.form-row-group {
1862    display: grid;
1863    grid-template-columns: 2fr 1fr;
1864    gap: 16px;
1865    margin-bottom: 20px;
1866}
1867
1868.field-label {
1869    display: block;
1870    font-size: 13px;
1871    font-weight: 600;
1872    color: var(--text-primary, #2c3e50);
1873    margin-bottom: 8px;
1874    text-transform: uppercase;
1875    letter-spacing: 0.5px;
1876}
1877
1878.input-sleek {
1879    width: 100%;
1880    color: var(--text-primary, #333);
1881    padding: 12px 16px;
1882    border: 2px solid var(--border-color, #e0e0e0);
1883    border-radius: 8px;
1884    font-size: 15px;
1885    font-family: inherit;
1886    /* Use specific transitions instead of 'all' to avoid dropdown rendering issues */
1887    transition: border-color 0.2s, background-color 0.2s, box-shadow 0.2s;
1888    background: var(--cell-bg, #fafafa);
1889    box-sizing: border-box;
1890}
1891
1892.input-sleek:focus {
1893    outline: none;
1894    border-color: var(--text-bright, #667eea);
1895    background: var(--background-site, white);
1896    box-shadow: 0 0 0 3px var(--shadow-color, rgba(102, 126, 234, 0.1));
1897}
1898
1899.textarea-sleek {
1900    resize: vertical;
1901    min-height: 80px;
1902    line-height: 1.5;
1903}
1904
1905.color-picker-container {
1906    display: flex;
1907    align-items: center;
1908    gap: 12px;
1909}
1910
1911.input-color-sleek {
1912    width: 60px;
1913    height: 44px;
1914    border: 2px solid var(--border-color, #e0e0e0);
1915    border-radius: 8px;
1916    cursor: pointer;
1917    transition: all 0.2s;
1918}
1919
1920.input-color-sleek:hover {
1921    border-color: var(--text-bright, #667eea);
1922    transform: scale(1.05);
1923}
1924
1925.color-label {
1926    font-size: 13px;
1927    color: var(--text-dim, #666);
1928}
1929
1930.form-field-checkbox {
1931    background: var(--cell-bg, #f1f8f4);
1932    padding: 12px;
1933    border-radius: 6px;
1934    border: 1px solid var(--border-main, #008800);
1935}
1936
1937.checkbox-label {
1938    display: flex;
1939    align-items: center;
1940    gap: 8px;
1941    cursor: pointer;
1942    font-size: 13px;
1943    font-weight: 500;
1944    color: var(--text-primary, #388e3c);
1945}
1946
1947.checkbox-label input[type="checkbox"] {
1948    width: 18px;
1949    height: 18px;
1950    cursor: pointer;
1951    accent-color: var(--text-bright, #008800);
1952}
1953
1954.form-row-group {
1955    display: grid;
1956    grid-template-columns: 1fr 1fr;
1957    gap: 12px;
1958    margin-bottom: 16px;
1959}
1960
1961@media (max-width: 768px) {
1962    .form-row-group {
1963        grid-template-columns: 1fr;
1964    }
1965}
1966
1967.dialog-actions-sleek {
1968    display: flex;
1969    gap: 8px;
1970    padding: 12px 14px;
1971    background: var(--cell-bg, #f8f9fa);
1972    border-top: 1px solid var(--border-color, #e0e0e0);
1973    justify-content: flex-end;
1974    flex-shrink: 0;
1975}
1976
1977/* Ensure buttons are visible on small screens */
1978@media (max-width: 480px) {
1979    .dialog-actions-sleek {
1980        padding: 10px;
1981    }
1982
1983    .btn-sleek {
1984        flex: 1;
1985        justify-content: center;
1986    }
1987}
1988
1989.btn-sleek {
1990    padding: 7px 14px;
1991    border: none;
1992    border-radius: 4px;
1993    font-size: 12px;
1994    font-weight: 600;
1995    cursor: pointer;
1996    transition: all 0.2s;
1997    display: inline-flex;
1998    align-items: center;
1999    gap: 4px;
2000}
2001
2002.btn-cancel-sleek {
2003    background: var(--border-color, #e0e0e0);
2004    color: var(--text-dim, #555);
2005}
2006
2007.btn-cancel-sleek:hover {
2008    filter: brightness(1.2);
2009    box-shadow: 0 0 4px var(--shadow-color, rgba(0,0,0,0.15));
2010}
2011
2012.btn-save-sleek {
2013    background: var(--text-bright, #008800);
2014    color: var(--background-site, white);
2015    box-shadow: 0 2px 4px var(--shadow-color, rgba(0,0,0,0.2));
2016}
2017
2018.btn-save-sleek:hover {
2019    filter: brightness(1.3);
2020    box-shadow: 0 4px 8px var(--shadow-color, rgba(0,0,0,0.3));
2021}
2022
2023.btn-save-sleek:active {
2024    transform: translateY(1px);
2025    filter: brightness(0.9);
2026}
2027
2028/* Day popup */
2029.day-popup {
2030    position: fixed;
2031    top: 0;
2032    left: 0;
2033    width: 100%;
2034    height: 100%;
2035    z-index: 10000;
2036    display: flex;
2037    align-items: center;
2038    justify-content: center;
2039    padding: 20px;
2040    box-sizing: border-box;
2041}
2042
2043.day-popup-overlay {
2044    position: absolute;
2045    top: 0;
2046    left: 0;
2047    width: 100%;
2048    height: 100%;
2049    background: rgba(0,0,0,0.5);
2050}
2051
2052.day-popup-content {
2053    position: relative;
2054    background: var(--background-site, white);
2055    width: 100%;
2056    max-width: 450px;
2057    max-height: calc(100vh - 40px);
2058    border-radius: 8px;
2059    box-shadow: 0 4px 20px var(--shadow-color, rgba(0,0,0,0.3));
2060    z-index: 10001;
2061    display: flex;
2062    flex-direction: column;
2063    border: 1px solid var(--border-main, transparent);
2064}
2065
2066/* Responsive day popup */
2067@media (max-width: 768px) {
2068    .day-popup {
2069        padding: 10px;
2070    }
2071
2072    .day-popup-content {
2073        max-width: 100%;
2074        max-height: calc(100vh - 20px);
2075    }
2076}
2077
2078@media (max-width: 480px) {
2079    .day-popup {
2080        padding: 0;
2081    }
2082
2083    .day-popup-content {
2084        width: 100%;
2085        max-width: 100%;
2086        max-height: 100vh;
2087        border-radius: 0;
2088    }
2089}
2090
2091.day-popup-header {
2092    display: flex;
2093    align-items: center;
2094    justify-content: space-between;
2095    padding: 10px 14px;
2096    border-bottom: 2px solid var(--border-main, #e0e0e0);
2097    background: var(--background-header, #fafafa);
2098    border-radius: 8px 8px 0 0;
2099    cursor: move;
2100    user-select: none;
2101}
2102
2103.day-popup-header h4 {
2104    margin: 0;
2105    font-size: 15px;
2106    font-weight: 600;
2107    color: var(--text-primary, #2c3e50);
2108    pointer-events: none;
2109}
2110
2111.popup-close {
2112    background: none;
2113    border: none;
2114    font-size: 24px;
2115    color: var(--text-dim, #999);
2116    cursor: pointer;
2117    width: 28px;
2118    height: 28px;
2119    display: flex;
2120    align-items: center;
2121    justify-content: center;
2122    border-radius: 4px;
2123    transition: all 0.15s;
2124    line-height: 1;
2125    padding: 0;
2126}
2127
2128.popup-close:hover {
2129    background: var(--cell-bg, #f0f0f0);
2130    color: var(--text-primary, #333);
2131}
2132
2133.day-popup-body {
2134    flex: 1;
2135    overflow-y: auto;
2136    padding: 10px 14px;
2137    max-height: 400px;
2138}
2139
2140.popup-events-list {
2141    display: flex;
2142    flex-direction: column;
2143    gap: 6px;
2144}
2145
2146.popup-continuation-notice {
2147    font-size: 10px;
2148    color: var(--text-dim, #666);
2149    background: var(--cell-bg, #f0f0f0);
2150    padding: 3px 8px;
2151    border-radius: 3px;
2152    margin-bottom: 4px;
2153    border-left: 3px solid var(--text-bright, #00cc07);
2154    font-weight: 500;
2155}
2156
2157.popup-event-item {
2158    display: flex;
2159    background: var(--cell-bg, #f8f9fa);
2160    border: 1px solid var(--border-color, #e0e0e0);
2161    border-radius: 4px;
2162    overflow: visible;
2163    transition: box-shadow 0.15s;
2164}
2165
2166.popup-event-item:hover {
2167    box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.1));
2168}
2169
2170.popup-event-item:focus {
2171    outline: 2px solid var(--text-bright, #00cc07);
2172    outline-offset: 1px;
2173}
2174
2175.popup-event-item:focus-visible {
2176    outline: 2px solid var(--text-bright, #00cc07);
2177    outline-offset: 1px;
2178}
2179
2180/* Important event highlighting in day popup */
2181.popup-event-item.popup-event-important {
2182    background: linear-gradient(135deg, rgba(255, 215, 0, 0.15), rgba(255, 193, 7, 0.08));
2183    border-color: rgba(255, 193, 7, 0.5);
2184    box-shadow: 0 0 8px rgba(255, 193, 7, 0.3);
2185}
2186
2187.popup-event-item.popup-event-important:hover {
2188    box-shadow: 0 2px 12px rgba(255, 193, 7, 0.4);
2189}
2190
2191.popup-event-content {
2192    flex: 1;
2193    padding: 6px 10px;
2194    min-width: 0;
2195}
2196
2197.popup-event-main-row {
2198    display: flex;
2199    align-items: flex-start;
2200    justify-content: space-between;
2201    gap: 8px;
2202    flex-wrap: wrap;
2203}
2204
2205.popup-event-info-inline {
2206    display: flex;
2207    align-items: center;
2208    gap: 6px;
2209    flex: 1;
2210    min-width: 0;
2211    flex-wrap: wrap;
2212}
2213
2214.popup-event-star {
2215    font-size: 12px;
2216    flex-shrink: 0;
2217    line-height: 1;
2218}
2219
2220.popup-event-title {
2221    font-size: 13px;
2222    font-weight: 600;
2223    color: var(--text-primary, #2c3e50);
2224    word-break: break-word;
2225    flex: 1 1 auto;
2226    min-width: 100px;
2227}
2228
2229/* When star is present, keep star and title together */
2230.popup-event-star + .popup-event-title {
2231    flex: 1 1 auto;
2232}
2233
2234.popup-event-time {
2235    font-size: 11px;
2236    color: var(--text-bright, #008800);
2237    font-weight: 500;
2238    white-space: nowrap;
2239    flex-shrink: 0;
2240}
2241
2242.popup-event-multiday {
2243    font-size: 11px;
2244    color: var(--text-dim, #666);
2245    font-weight: 500;
2246    white-space: nowrap;
2247    flex-shrink: 0;
2248}
2249
2250.popup-event-namespace {
2251    font-size: 10px;
2252    color: var(--background-site, #fff);
2253    background: var(--text-bright, #008800);
2254    padding: 2px 6px;
2255    border-radius: 3px;
2256    font-weight: 500;
2257    white-space: nowrap;
2258    flex-shrink: 0;
2259}
2260
2261.popup-event-desc {
2262    font-size: 11px;
2263    color: var(--text-dim, #666);
2264    line-height: 1.4;
2265    margin-top: 4px;
2266    padding-left: 0;
2267}
2268
2269.popup-event-actions {
2270    display: flex;
2271    gap: 4px;
2272    flex-shrink: 0;
2273    align-self: flex-start;
2274}
2275
2276.event-edit-btn,
2277.event-delete-btn {
2278    background: none;
2279    border: none;
2280    font-size: 16px;
2281    cursor: pointer;
2282    padding: 4px;
2283    border-radius: 3px;
2284    transition: background 0.15s;
2285    line-height: 1;
2286    width: 32px;
2287    height: 32px;
2288    min-width: 32px;
2289    min-height: 32px;
2290    display: flex;
2291    align-items: center;
2292    justify-content: center;
2293    -webkit-tap-highlight-color: rgba(0,0,0,0.1);
2294    touch-action: manipulation;
2295}
2296
2297/* Larger touch targets on mobile */
2298@media (max-width: 768px) {
2299    .event-edit-btn,
2300    .event-delete-btn {
2301        width: 40px;
2302        height: 40px;
2303        min-width: 40px;
2304        min-height: 40px;
2305        font-size: 18px;
2306    }
2307}
2308
2309.event-edit-btn:hover {
2310    background: var(--cell-today-bg, #e8f5e9);
2311}
2312
2313.event-delete-btn:hover {
2314    background: var(--cell-today-bg, #ffebee);
2315}
2316
2317.day-popup-footer {
2318    padding: 10px 14px;
2319    border-top: 1px solid var(--border-color, #e0e0e0);
2320    background: var(--cell-bg, #fafafa);
2321    border-radius: 0 0 8px 8px;
2322}
2323
2324.btn-add-event {
2325    width: 100%;
2326    background: var(--text-bright, #008800);
2327    color: var(--background-site, white);
2328    border: none;
2329    padding: 10px 16px;
2330    border-radius: 6px;
2331    font-size: 14px;
2332    font-weight: 500;
2333    cursor: pointer;
2334    transition: background 0.15s;
2335}
2336
2337.btn-add-event:hover {
2338    filter: brightness(1.3);
2339    box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2));
2340}
2341
2342.btn-add-event:active {
2343    filter: brightness(0.85);
2344    transform: translateY(1px);
2345}
2346
2347.dialog-overlay {
2348    position: absolute;
2349    top: 0;
2350    left: 0;
2351    width: 100%;
2352    height: 100%;
2353    background: rgba(0,0,0,0.4);
2354}
2355
2356.dialog-content-compact {
2357    position: relative;
2358    background: white;
2359    width: 400px;
2360    border-radius: 6px;
2361    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
2362    padding: 20px;
2363    z-index: 10000;
2364}
2365
2366.dialog-content-compact h4 {
2367    margin: 0 0 16px 0;
2368    font-size: 16px;
2369    font-weight: 600;
2370    color: var(--text-primary, #2c3e50);
2371}
2372
2373.form-row {
2374    margin-bottom: 14px;
2375}
2376
2377.form-row-date {
2378    background: var(--cell-bg, #f1f8f4);
2379    padding: 10px;
2380    border-radius: 6px;
2381    border: 2px solid var(--border-main, #008800);
2382    margin-bottom: 18px;
2383}
2384
2385.form-row-date label {
2386    color: var(--text-bright, #388e3c);
2387    font-size: 13px;
2388}
2389
2390.form-row label {
2391    display: block;
2392    font-size: 12px;
2393    font-weight: 600;
2394    color: var(--text-dim, #555);
2395    margin-bottom: 4px;
2396}
2397
2398.form-row input[type="text"],
2399.form-row input[type="time"],
2400.form-row input[type="date"],
2401.form-row input[type="color"],
2402.form-row textarea {
2403    width: 100%;
2404    padding: 8px;
2405    border: 1px solid var(--border-color, #d0d0d0);
2406    border-radius: 4px;
2407    font-size: 13px;
2408    box-sizing: border-box;
2409    font-family: inherit;
2410}
2411
2412.form-row input[type="color"] {
2413    height: 36px;
2414    padding: 2px;
2415}
2416
2417.form-row textarea {
2418    resize: vertical;
2419}
2420
2421.dialog-actions {
2422    display: flex;
2423    gap: 8px;
2424    justify-content: flex-end;
2425    margin-top: 16px;
2426}
2427
2428.btn-save,
2429.btn-cancel {
2430    padding: 8px 16px;
2431    border: none;
2432    border-radius: 4px;
2433    font-size: 13px;
2434    font-weight: 500;
2435    cursor: pointer;
2436    transition: all 0.15s;
2437}
2438
2439.btn-save {
2440    background: var(--text-bright, #008800);
2441    color: var(--background-site, white);
2442}
2443
2444.btn-save:hover {
2445    filter: brightness(1.3);
2446    box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2));
2447}
2448
2449.btn-cancel {
2450    background: var(--cell-bg, #f5f5f5);
2451    color: var(--text-dim, #555);
2452    border: 1px solid var(--border-color, #d0d0d0);
2453}
2454
2455.btn-cancel:hover {
2456    filter: brightness(1.2);
2457    box-shadow: 0 0 4px var(--shadow-color, rgba(0,0,0,0.15));
2458}
2459
2460/* Standalone event list */
2461.eventlist-standalone {
2462    max-width: 700px;
2463    margin: 20px auto;
2464    background: white;
2465    border: 1px solid var(--border-color, #d0d0d0);
2466    border-radius: 6px;
2467    padding: 20px;
2468}
2469
2470.eventlist-standalone h3 {
2471    margin: 0 0 20px 0;
2472    font-size: 18px;
2473    font-weight: 600;
2474    color: var(--text-primary, #2c3e50);
2475    border-bottom: 2px solid var(--border-main, #008800);
2476    padding-bottom: 10px;
2477}
2478
2479/* Compact Event List Widget */
2480.eventlist-compact-widget {
2481    background: var(--background-site, #ffffff);
2482    border: 1px solid var(--border-color, #d0d0d0);
2483    border-radius: 6px;
2484    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
2485    overflow: visible;
2486    display: flex;
2487    flex-direction: column;
2488    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
2489}
2490
2491/* Simple 2-Line Event List (New Design) */
2492.eventlist-simple {
2493    width: 100%;
2494    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
2495    font-size: 11px;
2496    line-height: 1.4;
2497    overflow: visible;
2498}
2499
2500/* Compact pastel header for {{eventlist today}} - Single line */
2501.eventlist-today-header {
2502    display: flex;
2503    flex-direction: column;
2504    align-items: center;
2505    padding: 6px 10px 2px 10px;
2506    background: var(--cell-bg, #1a1a1a);
2507    color: var(--text-bright, #00cc07);
2508    border: 2px solid var(--text-bright, #00cc07);
2509    border-radius: 4px;
2510    margin-bottom: 8px;
2511    box-shadow: 0 0 8px var(--shadow-color, rgba(0, 204, 7, 0.2));
2512    gap: 3px;
2513    overflow: visible;
2514}
2515
2516/* Purple theme overrides */
2517.sidebar-purple .eventlist-today-header {
2518    border-color: var(--text-bright, #9b59b6);
2519    box-shadow: 0 0 8px var(--shadow-color, rgba(155, 89, 182, 0.2));
2520}
2521
2522/* Professional theme overrides */
2523.sidebar-professional .eventlist-today-header {
2524    border-color: var(--text-bright, #4a90e2);
2525    box-shadow: 0 2px 4px var(--shadow-color, rgba(0, 0, 0, 0.1));
2526}
2527
2528/* Pink theme overrides */
2529.sidebar-pink .eventlist-today-header {
2530    border-color: var(--text-bright, #ff1493);
2531    box-shadow: 0 0 6px var(--shadow-color, rgba(255, 20, 147, 0.25));
2532}
2533
2534.eventlist-bottom-info {
2535    display: flex;
2536    justify-content: space-between;
2537    align-items: center;
2538    width: 100%;
2539    gap: 10px;
2540    overflow: visible;
2541}
2542
2543.eventlist-weather {
2544    font-size: 13px;
2545    font-weight: 700;
2546    font-family: 'Courier New', monospace;
2547    letter-spacing: 0.3px;
2548    text-shadow: 0 0 1px var(--text-primary, rgba(0, 204, 7, 0.4));
2549    color: var(--text-primary, #00cc07);
2550    white-space: nowrap;
2551}
2552
2553.eventlist-today-date {
2554    font-size: 10px;
2555    font-weight: 700;
2556    color: var(--text-primary, #00cc07);
2557    letter-spacing: 0.5px;
2558    white-space: nowrap;
2559    text-transform: uppercase;
2560    text-align: center;
2561    flex: 1;
2562}
2563
2564.eventlist-today-clock {
2565    font-size: 16px;
2566    font-weight: 700;
2567    font-family: 'Courier New', monospace;
2568    letter-spacing: 1px;
2569    text-shadow: 0 0 2px var(--text-primary, rgba(0, 204, 7, 0.5));
2570    color: var(--text-primary, #00cc07);
2571}
2572
2573.eventlist-stats-container {
2574    width: 100%;
2575    display: flex;
2576    flex-direction: column;
2577    gap: 2px;
2578    margin: 0;
2579    overflow: visible;
2580}
2581
2582.eventlist-simple-item {
2583    border-bottom: 1px solid var(--border-color, #e0e0e0);
2584    padding: 0;
2585}
2586
2587.eventlist-simple-item:last-child {
2588    border-bottom: none;
2589}
2590
2591.eventlist-simple-today {
2592    background: var(--cell-today-bg, #f3eeff) !important;
2593    border-left: 3px solid var(--border-main, #9b59b6) !important;
2594}
2595
2596.eventlist-simple-today .eventlist-simple-header {
2597    background: var(--cell-today-bg, #e8d9ff) !important;
2598}
2599
2600.eventlist-simple-today .eventlist-simple-body {
2601    background: var(--cell-bg, #f9f5ff) !important;
2602}
2603
2604.eventlist-simple-today-badge {
2605    background: var(--border-main, #9b59b6);
2606    color: var(--background-site, white);
2607    padding: 1px 4px;
2608    border-radius: 3px;
2609    font-size: 9px;
2610    font-weight: 600;
2611    letter-spacing: 0.5px;
2612    display: inline-block;
2613    vertical-align: middle;
2614    float: right; /* Right-align */
2615    margin-left: auto;
2616}
2617
2618.eventlist-simple-pastdue {
2619    background: var(--pastdue-bg, #ffe6e6) !important;
2620    border-left: 3px solid var(--pastdue-color, #e74c3c) !important;
2621}
2622
2623.eventlist-simple-pastdue .eventlist-simple-header {
2624    background: var(--pastdue-bg-strong, #ffd9d9) !important;
2625}
2626
2627.eventlist-simple-pastdue .eventlist-simple-body {
2628    background: var(--pastdue-bg-light, #fff2f2) !important;
2629}
2630
2631.eventlist-simple-pastdue-badge {
2632    background: var(--pastdue-color, #e74c3c);
2633    color: white;
2634    padding: 1px 4px;
2635    border-radius: 3px;
2636    font-size: 9px;
2637    font-weight: 600;
2638    letter-spacing: 0.5px;
2639    display: inline-block;
2640    vertical-align: middle;
2641    float: right; /* Right-align */
2642    margin-left: auto;
2643}
2644
2645.eventlist-simple-tomorrow {
2646    background: var(--tomorrow-bg, #fff9e6) !important;
2647}
2648
2649.eventlist-simple-tomorrow .eventlist-simple-header {
2650    background: var(--tomorrow-bg-strong, #fff4cc) !important;
2651}
2652
2653.eventlist-simple-tomorrow .eventlist-simple-body {
2654    background: var(--tomorrow-bg-light, #fffbf0) !important;
2655}
2656
2657.eventlist-simple-header {
2658    font-weight: 500;
2659    color: var(--text-primary, #2c3e50);
2660    padding: 4px 6px;
2661    line-height: 1.5;
2662    background: var(--cell-bg, #f5fcf5);
2663    font-size: 11px;
2664}
2665
2666.eventlist-simple-title {
2667    font-weight: 700;
2668    color: var(--text-bright, #ff6600);
2669    font-size: 12px;
2670}
2671
2672.eventlist-simple-time {
2673    color: var(--text-dim, #666);
2674    font-size: 10px;
2675}
2676
2677.eventlist-simple-date {
2678    color: var(--text-dim, #888);
2679    font-size: 10px;
2680}
2681
2682.eventlist-simple-namespace {
2683    background: var(--cell-today-bg, #e8f5e9);
2684    color: var(--text-bright, #388e3c);
2685    padding: 1px 4px;
2686    border-radius: 3px;
2687    font-size: 9px;
2688    font-weight: 500;
2689    margin-left: 4px;
2690}
2691
2692.eventlist-simple-body {
2693    color: var(--text-dim, #555);
2694    font-size: 11px;
2695    line-height: 1.5;
2696    padding: 4px 6px;
2697    background: var(--background-site, #fff);
2698}
2699
2700.eventlist-simple-body a {
2701    color: var(--text-bright, #008800);
2702    text-decoration: none;
2703}
2704
2705.eventlist-simple-body a:hover {
2706    text-decoration: underline;
2707}
2708
2709.eventlist-simple-body strong {
2710    font-weight: 600;
2711    color: var(--text-primary, #2c3e50);
2712}
2713
2714.eventlist-simple-body code {
2715    background: var(--cell-bg, #f5f5f5);
2716    padding: 1px 3px;
2717    border-radius: 3px;
2718    font-family: 'Courier New', monospace;
2719    font-size: 10px;
2720    color: var(--text-primary, inherit);
2721}
2722
2723.eventlist-simple-no-desc {
2724    display: none;
2725}
2726
2727.eventlist-simple-empty {
2728    padding: 10px 0;
2729    color: var(--text-dim, #999);
2730}
2731
2732.eventlist-simple-empty .eventlist-simple-header {
2733    margin-bottom: 4px;
2734    background: var(--cell-bg, #f5fcf5);
2735}
2736
2737.eventlist-simple-empty .eventlist-simple-body {
2738    color: var(--text-dim, #999);
2739    font-style: italic;
2740    padding: 4px 6px;
2741    font-size: 11px;
2742}
2743
2744.eventlist-widget-header {
2745    background: var(--text-bright, #008800);
2746    color: white;
2747    padding: 8px 12px;
2748    flex-shrink: 0;
2749}
2750
2751.eventlist-widget-header h4 {
2752    margin: 0;
2753    font-size: 13px;
2754    font-weight: 600;
2755}
2756
2757.eventlist-widget-content {
2758    overflow-y: auto;
2759    padding: 8px;
2760    flex: 1;
2761}
2762
2763.eventlist-widget-date {
2764    font-size: 11px;
2765    font-weight: 600;
2766    color: var(--text-dim, #666);
2767    margin: 8px 0 4px 0;
2768    padding-bottom: 2px;
2769    border-bottom: 1px solid var(--border-color, #e0e0e0);
2770}
2771
2772.eventlist-widget-item {
2773    background: var(--cell-bg, #fafafa);
2774    border: 1px solid var(--border-color, #e0e0e0);
2775    border-left: 3px solid var(--text-bright, #3498db);
2776    border-radius: 3px;
2777    padding: 6px 8px;
2778    margin-bottom: 6px;
2779    transition: all 0.15s;
2780}
2781
2782.eventlist-widget-item:hover {
2783    background: var(--cell-bg, #f0f0f0);
2784    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
2785}
2786
2787.eventlist-widget-title {
2788    font-size: 12px;
2789    font-weight: 600;
2790    color: var(--text-primary, #2c3e50);
2791    margin-bottom: 2px;
2792}
2793
2794.eventlist-widget-time {
2795    font-size: 11px;
2796    color: var(--text-dim, #666);
2797    margin-bottom: 4px;
2798}
2799
2800.eventlist-widget-desc {
2801    font-size: 11px;
2802    color: var(--text-dim, #555);
2803    margin-top: 4px;
2804    line-height: 1.4;
2805}
2806
2807.eventlist-widget-desc img {
2808    max-width: 100%;
2809    height: auto;
2810    border-radius: 3px;
2811    margin: 4px 0;
2812}
2813
2814.eventlist-widget-desc a {
2815    color: var(--text-bright, #008800);
2816    text-decoration: none;
2817    border-bottom: 1px dotted var(--text-bright, #008800);
2818}
2819
2820.eventlist-widget-desc a:hover {
2821    border-bottom-style: solid;
2822}
2823
2824.eventlist-widget-empty {
2825    text-align: center;
2826    color: var(--text-dim, #999);
2827    font-size: 12px;
2828    padding: 20px;
2829    margin: 0;
2830}
2831
2832/* Global themed link class (used in renderDescription) */
2833.cal-link {
2834    color: var(--text-bright, #008800) !important;
2835    text-decoration: none;
2836    border-bottom: 1px dotted var(--text-bright, #008800);
2837    transition: all 0.15s;
2838}
2839
2840.cal-link:hover {
2841    border-bottom-style: solid;
2842    opacity: 0.85;
2843}
2844
2845/* Sidebar widget links - inherit theme colors */
2846.sidebar-widget a.cal-link {
2847    color: var(--text-bright, #00cc07) !important;
2848    border-bottom-color: var(--text-bright, #00cc07);
2849}
2850
2851/* Standalone event panel (right panel only) */
2852.event-panel-standalone {
2853    width: 320px;
2854    background: var(--background-site, #ffffff);
2855    border: 1px solid var(--border-color, #d0d0d0);
2856    border-radius: 6px;
2857    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
2858    display: flex;
2859    flex-direction: column;
2860    max-height: 600px;
2861    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
2862    font-size: 13px;
2863}
2864
2865/* Dark theme borders for event panel - match sidebar widget style */
2866.event-panel-standalone[data-theme="matrix"] {
2867    border: 2px solid var(--border-main, #00cc07);
2868    box-shadow: 0 0 10px var(--shadow-color, rgba(0, 204, 7, 0.3));
2869}
2870
2871.event-panel-standalone[data-theme="purple"] {
2872    border: 2px solid var(--border-main, #9b59b6);
2873    box-shadow: 0 0 10px var(--shadow-color, rgba(155, 89, 182, 0.3));
2874}
2875
2876.event-panel-standalone[data-theme="pink"] {
2877    border: 2px solid var(--border-main, #ff1493);
2878    box-shadow: 0 0 10px var(--shadow-color, rgba(255, 20, 147, 0.4));
2879}
2880
2881.event-panel-standalone .event-list-compact {
2882    overflow-y: auto;
2883    flex: 1;
2884    padding: 10px;
2885}
2886
2887/* Event panel - Compact two-row header for ~500px width (10% smaller) */
2888.panel-header-compact {
2889    background: var(--cell-bg, #f5f5f5);
2890    border-bottom: 2px solid var(--border-color, #ddd);
2891}
2892
2893.panel-header-row-1 {
2894    display: flex;
2895    align-items: center;
2896    gap: 7px;
2897    padding: 7px 11px;
2898    background: var(--cell-bg, #fafafa);
2899    border-bottom: 1px solid var(--border-color, #e8e8e8);
2900}
2901
2902.panel-header-row-2 {
2903    display: flex;
2904    align-items: center;
2905    gap: 7px;
2906    padding: 7px 11px;
2907    background: var(--background-site, #ffffff);
2908}
2909
2910.panel-nav-btn {
2911    background: var(--cell-bg, #ffffff);
2912    border: 1px solid var(--border-color, #ccc);
2913    color: var(--text-primary, #333);
2914    width: 29px;
2915    height: 29px;
2916    border-radius: 4px;
2917    cursor: pointer;
2918    font-size: 16px;
2919    font-weight: bold;
2920    transition: all 0.2s;
2921    display: flex;
2922    align-items: center;
2923    justify-content: center;
2924    padding: 0;
2925    flex-shrink: 0;
2926}
2927
2928.panel-nav-btn:hover {
2929    background: var(--text-bright, #00cc07);
2930    color: var(--background-site, white);
2931    border-color: var(--text-bright, #00cc07);
2932    filter: brightness(1.2);
2933    box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3));
2934}
2935
2936.panel-month-title {
2937    margin: 0;
2938    font-size: 13px;
2939    font-weight: 600;
2940    color: var(--text-primary, #2c3e50);
2941    cursor: pointer;
2942    padding: 5px 9px;
2943    border-radius: 4px;
2944    transition: background 0.2s;
2945    white-space: nowrap;
2946    user-select: none;
2947    flex: 1;
2948    text-align: center;
2949    background: var(--cell-bg, #ffffff);
2950    border: 1px solid var(--border-color, #e0e0e0);
2951}
2952
2953.panel-month-title:hover {
2954    background: var(--cell-today-bg, #e8f5e9);
2955    border-color: var(--text-bright, #00cc07);
2956}
2957
2958.panel-ns-badge {
2959    background: var(--cell-today-bg, #e3f2fd);
2960    color: var(--text-bright, #1976d2);
2961    padding: 3px 7px;
2962    border-radius: 11px;
2963    font-size: 9px;
2964    font-weight: 600;
2965    text-transform: uppercase;
2966    letter-spacing: 0.3px;
2967    white-space: nowrap;
2968    border: 1px solid var(--border-color, #bbdefb);
2969    flex-shrink: 0;
2970}
2971
2972.panel-ns-badge.filter-on {
2973    background: var(--text-bright, #ff9800);
2974    color: var(--background-site, white);
2975    border-color: var(--border-main, #f57c00);
2976    cursor: pointer;
2977    transition: all 0.2s;
2978}
2979
2980.panel-ns-badge.filter-on:hover {
2981    filter: brightness(1.2);
2982}
2983
2984.panel-today-btn {
2985    background: var(--cell-bg, #ffffff);
2986    border: 1px solid var(--border-color, #ccc);
2987    color: var(--text-primary, #333);
2988    padding: 5px 11px;
2989    border-radius: 4px;
2990    cursor: pointer;
2991    font-size: 10px;
2992    font-weight: 600;
2993    transition: all 0.2s;
2994    white-space: nowrap;
2995    flex-shrink: 0;
2996}
2997
2998.panel-today-btn:hover {
2999    background: var(--text-bright, #00cc07);
3000    color: var(--background-site, white);
3001    border-color: var(--text-bright, #00cc07);
3002    filter: brightness(1.2);
3003    box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3));
3004}
3005
3006.panel-search-box {
3007    position: relative;
3008    flex: 1;
3009    display: flex;
3010    gap: 0;
3011}
3012
3013.panel-search-input {
3014    flex: 1;
3015    padding: 5px 25px 5px 9px;
3016    border: 1px solid var(--border-color, #d0d0d0);
3017    border-radius: 4px 0 0 4px;
3018    font-size: 11px;
3019    outline: none;
3020    transition: border-color 0.2s, box-shadow 0.2s;
3021    background: var(--cell-bg, #fafafa);
3022    color: var(--text-primary, #333);
3023}
3024
3025.panel-search-input:focus {
3026    border-color: var(--text-bright, #00cc07);
3027    box-shadow: 0 0 0 2px var(--shadow-color, rgba(0, 204, 7, 0.1));
3028    background: var(--background-site, white);
3029}
3030
3031.panel-search-input::placeholder {
3032    color: var(--text-dim, #999);
3033}
3034
3035.panel-search-clear {
3036    position: absolute;
3037    right: 28px;
3038    top: 50%;
3039    transform: translateY(-50%);
3040    background: none;
3041    border: none;
3042    color: var(--text-dim, #999);
3043    cursor: pointer;
3044    padding: 3px;
3045    font-size: 13px;
3046    line-height: 1;
3047    transition: color 0.2s;
3048}
3049
3050.panel-search-clear:hover {
3051    color: var(--text-primary, #333);
3052}
3053
3054.panel-search-mode {
3055    background: var(--cell-bg, #f0f0f0);
3056    border: 1px solid var(--border-color, #d0d0d0);
3057    border-left: none;
3058    border-radius: 0 4px 4px 0;
3059    padding: 0 6px;
3060    cursor: pointer;
3061    font-size: 11px;
3062    transition: all 0.2s;
3063    color: var(--text-dim, #666);
3064    display: flex;
3065    align-items: center;
3066}
3067
3068.panel-search-mode:hover {
3069    background: var(--cell-today-bg, #e8f5e9);
3070    color: var(--text-bright, #00cc07);
3071}
3072
3073.panel-search-mode.all-dates {
3074    background: var(--text-bright, #00cc07);
3075    color: var(--background-site, white);
3076    border-color: var(--text-bright, #00cc07);
3077}
3078
3079.panel-search-mode.all-dates:hover {
3080    filter: brightness(1.1);
3081}
3082
3083.panel-add-btn {
3084    background: var(--text-bright, #00cc07);
3085    border: 1px solid var(--border-main, #00a806);
3086    color: var(--background-site, white);
3087    padding: 5px 13px;
3088    border-radius: 4px;
3089    cursor: pointer;
3090    font-size: 11px;
3091    font-weight: 600;
3092    transition: all 0.2s;
3093    white-space: nowrap;
3094    flex-shrink: 0;
3095}
3096
3097.panel-add-btn:hover {
3098    filter: brightness(1.3);
3099    transform: translateY(-1px);
3100    box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2));
3101}
3102
3103.panel-standalone-header {
3104    display: flex;
3105    align-items: center;
3106    gap: 8px;
3107    padding: 12px 12px;
3108    background: var(--cell-bg, #fafafa);
3109    border-bottom: 1px solid var(--border-color, #e0e0e0);
3110    flex-shrink: 0;
3111}
3112
3113.panel-header-content {
3114    flex: 1;
3115    display: flex;
3116    flex-direction: column;
3117    align-items: center;
3118    gap: 4px;
3119}
3120
3121.panel-standalone-header h3 {
3122    margin: 0;
3123    font-size: 12px;
3124    font-weight: 600;
3125    color: var(--text-primary, #2c3e50);
3126    white-space: nowrap;
3127}
3128
3129.panel-standalone-header .calendar-month-picker {
3130    cursor: pointer;
3131    user-select: none;
3132    transition: all 0.15s;
3133    padding: 4px 8px;
3134    border-radius: 4px;
3135    white-space: nowrap;
3136}
3137
3138.panel-standalone-header .calendar-month-picker:hover {
3139    background: var(--cell-today-bg, #e8e8e8);
3140    color: var(--text-bright, #008800);
3141}
3142
3143.panel-standalone-header .namespace-badge {
3144    font-size: 11px;
3145    font-weight: 500;
3146    color: var(--text-bright, #388e3c);
3147    background: var(--cell-today-bg, #e8f5e9);
3148    padding: 2px 8px;
3149    border-radius: 3px;
3150    text-decoration: none;
3151    transition: all 0.15s;
3152    display: inline-block;
3153}
3154
3155.panel-standalone-header .namespace-badge:hover {
3156    background: var(--cell-bg, #c8e6c9);
3157    color: var(--text-primary, #2e7d32);
3158}
3159
3160.panel-standalone-actions {
3161    padding: 10px 16px;
3162    background: var(--background-site, #ffffff);
3163    border-bottom: 1px solid var(--border-color, #e0e0e0);
3164    flex-shrink: 0;
3165    display: flex;
3166    align-items: center;
3167    gap: 8px;
3168}
3169
3170.panel-standalone-actions .add-event-compact {
3171    flex-shrink: 0;
3172}
3173
3174.eventlist-day-group {
3175    margin-bottom: 24px;
3176}
3177
3178.eventlist-date {
3179    margin: 0 0 12px 0;
3180    font-size: 14px;
3181    font-weight: 600;
3182    color: var(--text-primary, #2c3e50);
3183    background: var(--cell-bg, #f8f8f8);
3184    padding: 8px 12px;
3185    border-left: 4px solid var(--border-main, #008800);
3186}
3187
3188.eventlist-item {
3189    display: flex;
3190    margin-bottom: 10px;
3191    background: white;
3192    border: 1px solid var(--border-color, #e0e0e0);
3193    border-radius: 4px;
3194    overflow: hidden;
3195}
3196
3197.eventlist-content {
3198    flex: 1;
3199    padding: 12px;
3200    display: flex;
3201    align-items: center;
3202    gap: 12px;
3203}
3204
3205.eventlist-time {
3206    font-size: 12px;
3207    font-weight: 600;
3208    color: var(--text-bright, #008800);
3209    min-width: 50px;
3210}
3211
3212.eventlist-title {
3213    font-size: 14px;
3214    font-weight: 500;
3215    color: var(--text-primary, #2c3e50);
3216}
3217
3218.eventlist-desc {
3219    font-size: 12px;
3220    color: var(--text-dim, #666);
3221    margin-top: 6px;
3222    line-height: 1.4;
3223}
3224
3225/* ===================================
3226   MOBILE RESPONSIVE - EVENTLIST & EVENTPANEL
3227   =================================== */
3228
3229/* Tablet and below (768px) */
3230@media (max-width: 768px) {
3231    /* Event Panel Standalone */
3232    .event-panel-standalone {
3233        width: 100%;
3234        max-width: 100%;
3235        border-radius: 0;
3236        max-height: none;
3237        min-height: 400px;
3238    }
3239
3240    /* Compact Event List Widget */
3241    .eventlist-compact-widget {
3242        width: 100% !important;
3243        max-width: 100%;
3244        border-radius: 0;
3245    }
3246
3247    .eventlist-widget-header h4 {
3248        font-size: 14px;
3249    }
3250
3251    .eventlist-widget-title {
3252        font-size: 13px;
3253    }
3254
3255    .eventlist-widget-time {
3256        font-size: 12px;
3257    }
3258
3259    /* Standalone event list (old style) */
3260    .eventlist-standalone {
3261        max-width: 100%;
3262        margin: 10px;
3263        padding: 15px;
3264        border-radius: 0;
3265    }
3266
3267    .eventlist-standalone h3 {
3268        font-size: 16px;
3269    }
3270}
3271
3272/* Mobile (480px and below) */
3273@media (max-width: 480px) {
3274    /* Event Panel Standalone */
3275    .event-panel-standalone {
3276        font-size: 12px;
3277        min-height: 300px;
3278    }
3279
3280    .panel-standalone-header {
3281        padding: 10px 12px;
3282    }
3283
3284    .panel-standalone-header h3 {
3285        font-size: 12px;
3286    }
3287
3288    .panel-standalone-actions {
3289        padding: 8px 12px;
3290    }
3291
3292    .event-panel-standalone .event-list-compact {
3293        padding: 8px;
3294    }
3295
3296    /* Compact Event List Widget */
3297    .eventlist-compact-widget {
3298        min-width: 280px;
3299    }
3300
3301    .eventlist-widget-header {
3302        padding: 6px 10px;
3303    }
3304
3305    .eventlist-widget-header h4 {
3306        font-size: 13px;
3307    }
3308
3309    .eventlist-widget-content {
3310        padding: 6px;
3311    }
3312
3313    .eventlist-widget-item {
3314        padding: 5px 6px;
3315        margin-bottom: 5px;
3316    }
3317
3318    .eventlist-widget-title {
3319        font-size: 12px;
3320    }
3321
3322    .eventlist-widget-time {
3323        font-size: 11px;
3324    }
3325
3326    .eventlist-widget-desc {
3327        font-size: 11px;
3328    }
3329
3330    /* Standalone event list */
3331    .eventlist-standalone {
3332        margin: 5px;
3333        padding: 10px;
3334    }
3335
3336    .eventlist-standalone h3 {
3337        font-size: 14px;
3338        margin-bottom: 15px;
3339    }
3340
3341    .eventlist-day-group {
3342        margin-bottom: 18px;
3343    }
3344
3345    .eventlist-date {
3346        font-size: 13px;
3347        padding: 6px 10px;
3348    }
3349
3350    .eventlist-title {
3351        font-size: 13px;
3352    }
3353
3354    .eventlist-time {
3355        font-size: 11px;
3356    }
3357
3358    .eventlist-desc {
3359        font-size: 11px;
3360    }
3361}
3362
3363/* Very small mobile (320px) */
3364@media (max-width: 320px) {
3365    .eventlist-compact-widget {
3366        min-width: 100%;
3367    }
3368
3369    .event-panel-standalone {
3370        min-height: 250px;
3371    }
3372
3373    .eventlist-widget-header h4 {
3374        font-size: 12px;
3375    }
3376
3377    .eventlist-widget-title {
3378        font-size: 11px;
3379    }
3380
3381    .panel-standalone-header h3 {
3382        font-size: 12px;
3383    }
3384}
3385
3386/* Past Events Collapsible Section */
3387.past-events-section {
3388    margin-bottom: 10px;
3389    border-bottom: 1px solid var(--border-color, #e0e0e0);
3390}
3391
3392.past-events-toggle {
3393    padding: 6px 10px;
3394    background: var(--cell-bg);
3395    color: var(--text-dim);
3396    cursor: pointer;
3397    user-select: none;
3398    font-size: 11px;
3399    font-weight: 600;
3400    display: flex;
3401    align-items: center;
3402    border-radius: 3px;
3403    transition: background 0.2s;
3404}
3405
3406.past-events-toggle:hover {
3407    background: var(--background-alt);
3408}
3409
3410.past-events-arrow {
3411    font-size: 9px;
3412    margin-right: 5px;
3413    transition: transform 0.2s;
3414    display: inline-block;
3415    width: 10px;
3416    color: var(--text-dim);
3417}
3418
3419.past-events-label {
3420    color: var(--text-dim);
3421}
3422
3423.past-events-content {
3424    margin-top: 5px;
3425}
3426
3427/* Namespace Search Dropdown */
3428.namespace-search-wrapper {
3429    position: relative;
3430}
3431
3432.namespace-search-input {
3433    width: 100%;
3434}
3435
3436.namespace-dropdown {
3437    position: absolute;
3438    top: 100%;
3439    left: 0;
3440    right: 0;
3441    max-height: 200px;
3442    overflow-y: auto;
3443    background: white;
3444    border: 1px solid var(--border-color, #ddd);
3445    border-top: none;
3446    border-radius: 0 0 4px 4px;
3447    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
3448    z-index: 1000;
3449    margin-top: -1px;
3450}
3451
3452.namespace-option {
3453    padding: 8px 12px;
3454    cursor: pointer;
3455    font-size: 12px;
3456    border-bottom: 1px solid var(--border-color, #f0f0f0);
3457    transition: background-color 0.15s;
3458}
3459
3460.namespace-option:hover {
3461    background-color: var(--cell-bg, #f5f5f5);
3462}
3463
3464.namespace-option.selected {
3465    background-color: var(--cell-today-bg, #e3f2fd);
3466    color: var(--text-bright, #1976d2);
3467}
3468
3469.namespace-option:last-child {
3470    border-bottom: none;
3471}
3472
3473/* Matrix-themed Sidebar Widget */
3474.sidebar-matrix {
3475    font-family: system-ui, sans-serif !important;
3476    background: linear-gradient(180deg, #242424 0%, #2a2a2a 100%) !important;
3477    border: 2px solid #00cc07 !important;
3478    box-shadow: 0 0 15px rgba(0, 204, 7, 0.4), inset 0 0 20px rgba(0, 204, 7, 0.05) !important;
3479}
3480
3481.sidebar-matrix-header {
3482    background: linear-gradient(180deg, #2a2a2a 0%, #242424 100%) !important;
3483    border-bottom: 2px solid #00cc07 !important;
3484    box-shadow: 0 2px 8px rgba(0, 204, 7, 0.3) !important;
3485}
3486
3487.sidebar-matrix-clock {
3488    animation: matrix-pulse 2s ease-in-out infinite;
3489}
3490
3491.sidebar-matrix-date {
3492    opacity: 0.9;
3493}
3494
3495@keyframes matrix-pulse {
3496    0%, 100% {
3497        text-shadow: 0 0 2px rgba(0, 204, 7, 0.4);
3498    }
3499    50% {
3500        text-shadow: 0 0 4px rgba(0, 255, 0, 0.5), 0 0 6px rgba(0, 204, 7, 0.3);
3501    }
3502}
3503
3504/* Matrix glow effect for sidebar */
3505.sidebar-widget.sidebar-matrix::before {
3506    content: '';
3507    position: absolute;
3508    top: -2px;
3509    left: -2px;
3510    right: -2px;
3511    bottom: -2px;
3512    background: linear-gradient(45deg, #00cc07, #00ff00, #00cc07);
3513    border-radius: 4px;
3514    opacity: 0;
3515    z-index: -1;
3516    animation: matrix-border-glow 3s ease-in-out infinite;
3517}
3518
3519@keyframes matrix-border-glow {
3520    0%, 100% {
3521        opacity: 0;
3522    }
3523    50% {
3524        opacity: 0.3;
3525    }
3526}
3527
3528/* Scrollbar styling for matrix theme */
3529.sidebar-matrix ::-webkit-scrollbar {
3530    width: 6px;
3531}
3532
3533.sidebar-matrix ::-webkit-scrollbar-track {
3534    background: #242424;
3535}
3536
3537.sidebar-matrix ::-webkit-scrollbar-thumb {
3538    background: #00cc07;
3539    border-radius: 3px;
3540    box-shadow: 0 0 5px rgba(0, 204, 7, 0.5);
3541}
3542
3543.sidebar-matrix ::-webkit-scrollbar-thumb:hover {
3544    background: #00ff00;
3545    box-shadow: 0 0 8px rgba(0, 255, 0, 0.8);
3546}
3547
3548/* ====================================
3549   PINK BLING THEME - SPECIAL EFFECTS
3550   ==================================== */
3551
3552/* Shimmer animation for today's cell - BARELY NOTICEABLE */
3553@keyframes pink-shimmer {
3554    0% {
3555        box-shadow: 0 0 2px rgba(255, 20, 147, 0.15),
3556                    0 0 3px rgba(255, 20, 147, 0.08);
3557    }
3558    50% {
3559        box-shadow: 0 0 4px rgba(255, 20, 147, 0.25),
3560                    0 0 6px rgba(255, 20, 147, 0.12);
3561    }
3562    100% {
3563        box-shadow: 0 0 2px rgba(255, 20, 147, 0.15),
3564                    0 0 3px rgba(255, 20, 147, 0.08);
3565    }
3566}
3567
3568/* Sparkle animation for today's day number - BARELY NOTICEABLE */
3569@keyframes pink-sparkle {
3570    0%, 100% {
3571        text-shadow: 0 0 2px rgba(255, 20, 147, 0.3);
3572        transform: scale(1);
3573    }
3574    50% {
3575        text-shadow: 0 0 3px rgba(255, 20, 147, 0.5);
3576        transform: scale(1.01);
3577    }
3578}
3579
3580/* Glow pulse for event bars - BARELY NOTICEABLE */
3581@keyframes pink-glow-pulse {
3582    0%, 100% {
3583        box-shadow: 0 0 1px currentColor;
3584    }
3585    50% {
3586        box-shadow: 0 0 2px currentColor,
3587                    0 0 3px rgba(255, 105, 180, 0.15);
3588    }
3589}
3590
3591/* Gradient shimmer for headers */
3592@keyframes pink-gradient-shimmer {
3593    0% {
3594        background-position: 0% 50%;
3595    }
3596    50% {
3597        background-position: 100% 50%;
3598    }
3599    100% {
3600        background-position: 0% 50%;
3601    }
3602}
3603
3604/* Pink particle explosion on click */
3605@keyframes particle-explode {
3606    0% {
3607        opacity: 1;
3608        transform: translate(0, 0) scale(1);
3609    }
3610    100% {
3611        opacity: 0;
3612        transform: translate(var(--tx), var(--ty)) scale(0);
3613    }
3614}
3615
3616/* Cursor trail glow */
3617@keyframes cursor-trail-fade {
3618    0% {
3619        opacity: 1;
3620        transform: scale(1);
3621    }
3622    100% {
3623        opacity: 0;
3624        transform: scale(0.5);
3625    }
3626}
3627
3628/* Pink particle styles */
3629.pink-particle {
3630    position: fixed;  /* Changed to fixed so it works anywhere on screen */
3631    width: 6px;
3632    height: 6px;
3633    background: radial-gradient(circle, #ff1493, #ff69b4);
3634    border-radius: 50%;
3635    pointer-events: none;
3636    z-index: 9999999;  /* Above everything including dialogs */
3637    box-shadow: 0 0 8px #ff1493,
3638                0 0 15px #ff69b4;
3639}
3640
3641/* Cursor trail glow */
3642.pink-cursor-trail {
3643    position: fixed;  /* Changed to fixed so it works anywhere on screen */
3644    width: 8px;
3645    height: 8px;
3646    background: radial-gradient(circle, rgba(255, 20, 147, 0.8), rgba(255, 105, 180, 0.4));
3647    border-radius: 50%;
3648    pointer-events: none;
3649    z-index: 9999998;  /* Just below particles */
3650    box-shadow: 0 0 10px rgba(255, 20, 147, 0.6),
3651                0 0 20px rgba(255, 105, 180, 0.3);
3652}
3653
3654/* Tiny neon pixel sparkles */
3655.pink-pixel-sparkle {
3656    position: fixed;
3657    width: 2px;
3658    height: 2px;
3659    background: var(--background-site, #fff);
3660    border-radius: 50%;
3661    pointer-events: none;
3662    z-index: 9999997;  /* Just below trail */
3663    box-shadow: 0 0 2px #ff1493,
3664                0 0 4px #ff69b4,
3665                0 0 6px #fff;
3666}
3667
3668/* Pixel sparkle twinkle animation */
3669@keyframes pixel-twinkle {
3670    0%, 100% {
3671        opacity: 0;
3672        transform: scale(0);
3673    }
3674    50% {
3675        opacity: 1;
3676        transform: scale(1.5);
3677    }
3678}
3679
3680/* Pixel sparkle float away */
3681@keyframes pixel-float-away {
3682    0% {
3683        opacity: 1;
3684        transform: translateY(0) scale(1);
3685    }
3686    100% {
3687        opacity: 0;
3688        transform: translateY(-30px) scale(0);
3689    }
3690}
3691
3692/* Pink theme specific styles - TONED DOWN */
3693.calendar-theme-pink .cal-today {
3694    animation: pink-shimmer 2s ease-in-out infinite;
3695    border: 2px solid #ff1493 !important;
3696    position: relative;
3697    overflow: visible;
3698}
3699
3700.calendar-theme-pink .cal-today .day-num,
3701.calendar-theme-pink .day-num-today {
3702    background: transparent !important;
3703    color: #fff !important;
3704    position: relative;
3705    z-index: 1;
3706    font-weight: 700;
3707    filter: none;
3708    width: 22px;
3709    height: 22px;
3710    line-height: 22px;
3711    text-align: center;
3712    font-size: 10px;
3713    padding: 0;
3714    display: inline-flex;
3715    align-items: center;
3716    justify-content: center;
3717    overflow: visible;
3718}
3719
3720/* Heart shape behind the day number */
3721.calendar-theme-pink .cal-today .day-num::before,
3722.calendar-theme-pink .day-num-today::before {
3723    content: '♥';
3724    position: absolute;
3725    top: 50%;
3726    left: 50%;
3727    transform: translate(-50%, -48%);
3728    font-size: 26px;
3729    color: #ff1493;
3730    z-index: -1;
3731    text-shadow: 0 0 8px rgba(255, 20, 147, 0.7),
3732                 0 0 16px rgba(255, 20, 147, 0.4),
3733                 0 0 24px rgba(255, 105, 180, 0.2);
3734    animation: pink-heart-beat 1.2s ease-in-out infinite;
3735    line-height: 1;
3736}
3737
3738/* Heart beat animation */
3739@keyframes pink-heart-beat {
3740    0%, 100% {
3741        transform: translate(-50%, -48%) scale(1);
3742        text-shadow: 0 0 8px rgba(255, 20, 147, 0.7),
3743                     0 0 16px rgba(255, 20, 147, 0.4);
3744    }
3745    15% {
3746        transform: translate(-50%, -48%) scale(1.15);
3747        text-shadow: 0 0 12px rgba(255, 20, 147, 0.9),
3748                     0 0 24px rgba(255, 20, 147, 0.5),
3749                     0 0 36px rgba(255, 105, 180, 0.3);
3750    }
3751    30% {
3752        transform: translate(-50%, -48%) scale(0.95);
3753    }
3754    45% {
3755        transform: translate(-50%, -48%) scale(1.1);
3756        text-shadow: 0 0 10px rgba(255, 20, 147, 0.8),
3757                     0 0 20px rgba(255, 20, 147, 0.4);
3758    }
3759    60% {
3760        transform: translate(-50%, -48%) scale(1);
3761    }
3762}
3763
3764.calendar-theme-pink .event-bar {
3765    animation: pink-glow-pulse 2s ease-in-out infinite;
3766}
3767
3768.calendar-theme-pink .calendar-compact-header {
3769    background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24, #1a0d14);
3770    background-size: 300% 300%;
3771    animation: pink-gradient-shimmer 3s ease infinite;
3772}
3773
3774.calendar-theme-pink .event-list-header {
3775    background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24);
3776    background-size: 300% 300%;
3777    animation: pink-gradient-shimmer 3s ease infinite;
3778}
3779
3780/* Subtle hover glow - BARELY NOTICEABLE */
3781.calendar-theme-pink .cal-today:hover {
3782    box-shadow: 0 0 5px rgba(255, 20, 147, 0.25),
3783                0 0 8px rgba(255, 20, 147, 0.12) !important;
3784}
3785
3786/* Pink theme event items get subtle glow */
3787.calendar-theme-pink .event-compact-item {
3788    box-shadow: 0 0 1px rgba(255, 20, 147, 0.08);
3789    transition: all 0.3s ease;
3790}
3791
3792.calendar-theme-pink .event-compact-item:hover {
3793    box-shadow: 0 0 3px rgba(255, 20, 147, 0.15);
3794    transform: translateX(2px);
3795}
3796
3797/* Calendar borders get subtle glow */
3798.calendar-theme-pink.calendar-compact-container {
3799    box-shadow: 0 0 5px rgba(255, 20, 147, 0.12),
3800                0 2px 4px rgba(0,0,0,0.06);
3801    position: relative;
3802}
3803
3804/* Today badge extra sparkle */
3805.calendar-theme-pink .event-today-badge {
3806    animation: pink-sparkle 1.5s ease-in-out infinite;
3807}
3808
3809/* Consistent subtle text glow for dark themes - main calendar event list */
3810.calendar-theme-matrix .event-title-compact,
3811.calendar-theme-matrix .event-meta-compact,
3812.calendar-theme-matrix .event-desc-compact {
3813    text-shadow: 0 0 1px var(--text-primary, #00cc07);
3814}
3815
3816.calendar-theme-purple .event-title-compact,
3817.calendar-theme-purple .event-meta-compact,
3818.calendar-theme-purple .event-desc-compact {
3819    text-shadow: 0 0 1px var(--text-primary, #b19cd9);
3820}
3821
3822.calendar-theme-pink .event-title-compact,
3823.calendar-theme-pink .event-meta-compact,
3824.calendar-theme-pink .event-desc-compact {
3825    text-shadow: 0 0 2px var(--text-primary, #ff69b4);
3826}
3827
3828/* Dark theme link glow */
3829.calendar-theme-matrix .event-desc-compact a,
3830.calendar-theme-matrix .cal-link {
3831    text-shadow: 0 0 1px var(--text-bright, #00ff00);
3832}
3833
3834.calendar-theme-purple .event-desc-compact a,
3835.calendar-theme-purple .cal-link {
3836    text-shadow: 0 0 1px var(--text-bright, #d4a5ff);
3837}
3838
3839.calendar-theme-pink .event-desc-compact a,
3840.calendar-theme-pink .cal-link {
3841    text-shadow: 0 0 2px var(--text-bright, #ff1493);
3842}
3843
3844/* Dark theme event panel text glow */
3845.event-panel-standalone[data-theme="matrix"] .event-title-compact,
3846.event-panel-standalone[data-theme="matrix"] .event-meta-compact,
3847.event-panel-standalone[data-theme="matrix"] .event-desc-compact {
3848    text-shadow: 0 0 1px var(--text-primary, #00cc07);
3849}
3850
3851.event-panel-standalone[data-theme="purple"] .event-title-compact,
3852.event-panel-standalone[data-theme="purple"] .event-meta-compact,
3853.event-panel-standalone[data-theme="purple"] .event-desc-compact {
3854    text-shadow: 0 0 1px var(--text-primary, #b19cd9);
3855}
3856
3857.event-panel-standalone[data-theme="pink"] .event-title-compact,
3858.event-panel-standalone[data-theme="pink"] .event-meta-compact,
3859.event-panel-standalone[data-theme="pink"] .event-desc-compact {
3860    text-shadow: 0 0 2px var(--text-primary, #ff69b4);
3861}
3862
3863/* Past due badge pulsing effect - SUBTLE */
3864@keyframes pink-pulse-urgent {
3865    0%, 100% {
3866        box-shadow: 0 0 3px rgba(255, 140, 0, 0.4);
3867    }
3868    50% {
3869        box-shadow: 0 0 8px rgba(255, 140, 0, 0.6);
3870    }
3871}
3872
3873.calendar-theme-pink .event-pastdue-badge {
3874    animation: pink-pulse-urgent 1s ease-in-out infinite;
3875}
3876
3877/* ========================================
3878   MATRIX THEME: CHECKBOX GLOW
3879   ======================================== */
3880.calendar-theme-matrix .task-checkbox,
3881.sidebar-matrix .task-checkbox {
3882    border: 2px solid #00ff00;
3883    background: rgba(0, 204, 7, 0.08);
3884    box-shadow: 0 0 6px rgba(0, 255, 0, 0.3), inset 0 0 4px rgba(0, 204, 7, 0.1);
3885}
3886
3887.calendar-theme-matrix .task-checkbox:hover,
3888.sidebar-matrix .task-checkbox:hover {
3889    border-color: #00ff00;
3890    box-shadow: 0 0 10px rgba(0, 255, 0, 0.5), inset 0 0 6px rgba(0, 204, 7, 0.2);
3891}
3892
3893.calendar-theme-matrix .task-checkbox:checked,
3894.sidebar-matrix .task-checkbox:checked {
3895    background: #00cc07;
3896    border-color: #00ff00;
3897    box-shadow: 0 0 8px rgba(0, 255, 0, 0.6);
3898}
3899
3900/* ========================================
3901   PURPLE THEME: CHECKBOX GLOW
3902   ======================================== */
3903.calendar-theme-purple .task-checkbox,
3904.sidebar-purple .task-checkbox {
3905    border: 2px solid #d4a5ff;
3906    background: rgba(155, 89, 182, 0.08);
3907    box-shadow: 0 0 6px rgba(212, 165, 255, 0.3), inset 0 0 4px rgba(155, 89, 182, 0.1);
3908}
3909
3910.calendar-theme-purple .task-checkbox:hover,
3911.sidebar-purple .task-checkbox:hover {
3912    border-color: #d4a5ff;
3913    box-shadow: 0 0 10px rgba(212, 165, 255, 0.5), inset 0 0 6px rgba(155, 89, 182, 0.2);
3914}
3915
3916.calendar-theme-purple .task-checkbox:checked,
3917.sidebar-purple .task-checkbox:checked {
3918    background: #9b59b6;
3919    border-color: #d4a5ff;
3920    box-shadow: 0 0 8px rgba(212, 165, 255, 0.6);
3921}
3922
3923/* ========================================
3924   PINK THEME: CHECKBOX GLOW
3925   ======================================== */
3926.calendar-theme-pink .task-checkbox,
3927.sidebar-pink .task-checkbox {
3928    border: 2px solid #ff1493;
3929    background: rgba(255, 20, 147, 0.08);
3930    box-shadow: 0 0 6px rgba(255, 20, 147, 0.35), inset 0 0 4px rgba(255, 20, 147, 0.1);
3931}
3932
3933.calendar-theme-pink .task-checkbox:hover,
3934.sidebar-pink .task-checkbox:hover {
3935    border-color: #ff69b4;
3936    box-shadow: 0 0 10px rgba(255, 20, 147, 0.6), inset 0 0 6px rgba(255, 20, 147, 0.2);
3937}
3938
3939.calendar-theme-pink .task-checkbox:checked,
3940.sidebar-pink .task-checkbox:checked {
3941    background: #ff1493;
3942    border-color: #ff69b4;
3943    box-shadow: 0 0 8px rgba(255, 20, 147, 0.7);
3944}
3945
3946/* Pink checkbox in dialog forms */
3947.calendar-theme-pink .checkbox-label input[type="checkbox"],
3948.calendar-theme-pink .checkbox-label-compact input[type="checkbox"] {
3949    accent-color: #ff1493;
3950}
3951
3952/* Wiki theme checkboxes - use border color */
3953.calendar-theme-wiki .task-checkbox,
3954.sidebar-wiki .task-checkbox,
3955.eventlist-theme-wiki .task-checkbox {
3956    border: 2px solid var(--border-main, #ccc);
3957    accent-color: var(--border-main, #ccc);
3958}
3959
3960.calendar-theme-wiki .task-checkbox:hover,
3961.sidebar-wiki .task-checkbox:hover,
3962.eventlist-theme-wiki .task-checkbox:hover {
3963    border: 2px solid var(--border-main, #ccc);
3964    box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);
3965}
3966
3967.calendar-theme-wiki .task-checkbox:checked,
3968.sidebar-wiki .task-checkbox:checked,
3969.eventlist-theme-wiki .task-checkbox:checked {
3970    background: var(--border-main, #ccc);
3971    border: 2px solid var(--border-main, #ccc);
3972}
3973
3974/* Wiki theme buttons - use __link__ color */
3975.calendar-theme-wiki .cal-nav-btn,
3976.calendar-theme-wiki .cal-today-btn {
3977    background: var(--text-bright, #2b73b7);
3978    color: #fff;
3979}
3980
3981/* Wiki theme day headers - use __background_neu__ */
3982.calendar-theme-wiki .calendar-day-headers {
3983    background: var(--cell-today-bg, #eee);
3984}
3985
3986/* Wiki theme past events toggle - use __background_neu__ */
3987.calendar-theme-wiki .past-events-toggle {
3988    background: var(--cell-today-bg, #eee);
3989}
3990
3991.calendar-theme-wiki .calendar-day-headers span {
3992    color: var(--text-primary, #333);
3993}
3994
3995.sidebar-wiki .panel-nav-btn,
3996.sidebar-wiki .panel-today-btn {
3997    background: var(--text-bright, #2b73b7);
3998    color: #fff;
3999}
4000
4001.event-panel-standalone[data-theme="wiki"] .panel-nav-btn,
4002.event-panel-standalone[data-theme="wiki"] .panel-today-btn {
4003    background: var(--text-bright, #2b73b7);
4004    color: #fff;
4005}
4006
4007/* Wiki theme clock - no glow */
4008.sidebar-wiki .eventlist-today-clock,
4009.eventlist-theme-wiki .eventlist-today-clock {
4010    text-shadow: none;
4011}
4012
4013/* Wiki theme clock - no glow, slightly larger */
4014.sidebar-wiki .eventlist-today-clock,
4015.eventlist-theme-wiki .eventlist-today-clock {
4016    text-shadow: none;
4017    font-size: 20px;
4018}
4019
4020/* ========================================
4021   PINK THEME: BUTTON FIREWORK BURST HOVER
4022   ======================================== */
4023@keyframes pink-firework-burst {
4024    0% {
4025        box-shadow: 0 0 4px rgba(255, 20, 147, 0.4);
4026    }
4027    25% {
4028        box-shadow: 0 0 15px rgba(255, 20, 147, 0.8),
4029                    0 0 30px rgba(255, 105, 180, 0.4),
4030                    5px -5px 8px rgba(255, 20, 147, 0.6),
4031                    -5px -5px 8px rgba(255, 105, 180, 0.5),
4032                    5px 5px 8px rgba(255, 133, 193, 0.4),
4033                    -5px 5px 8px rgba(255, 20, 147, 0.5);
4034    }
4035    50% {
4036        box-shadow: 0 0 20px rgba(255, 20, 147, 0.9),
4037                    0 0 40px rgba(255, 105, 180, 0.5),
4038                    8px -8px 12px rgba(255, 20, 147, 0.5),
4039                    -8px -8px 12px rgba(255, 105, 180, 0.4),
4040                    8px 8px 12px rgba(255, 133, 193, 0.3),
4041                    -8px 8px 12px rgba(255, 20, 147, 0.4),
4042                    0 -10px 15px rgba(255, 20, 147, 0.3),
4043                    10px 0 15px rgba(255, 105, 180, 0.3);
4044    }
4045    75% {
4046        box-shadow: 0 0 12px rgba(255, 20, 147, 0.6),
4047                    0 0 25px rgba(255, 105, 180, 0.3),
4048                    12px -12px 8px rgba(255, 20, 147, 0.2),
4049                    -12px -12px 8px rgba(255, 105, 180, 0.15),
4050                    12px 12px 8px rgba(255, 133, 193, 0.1),
4051                    -12px 12px 8px rgba(255, 20, 147, 0.15);
4052    }
4053    100% {
4054        box-shadow: 0 0 6px rgba(255, 20, 147, 0.5),
4055                    0 0 15px rgba(255, 105, 180, 0.3);
4056    }
4057}
4058
4059/* Apply firework burst to all pink theme buttons on hover */
4060.calendar-theme-pink .cal-nav-btn:hover,
4061.calendar-theme-pink .cal-today-btn:hover,
4062.calendar-theme-pink .btn-save-sleek:hover,
4063.calendar-theme-pink .btn-cancel-sleek:hover,
4064.calendar-theme-pink .btn-add-event:hover,
4065.calendar-theme-pink .event-edit-btn:hover,
4066.calendar-theme-pink .event-delete-btn:hover,
4067.calendar-theme-pink .event-action-btn:hover {
4068    background: #ff1493 !important;
4069    color: #1a0d14 !important;
4070    border-color: #ff69b4 !important;
4071    animation: pink-firework-burst 0.6s ease-out forwards;
4072    transform: scale(1.1);
4073    filter: brightness(1.4);
4074}
4075
4076.calendar-theme-pink .cal-nav-btn:active,
4077.calendar-theme-pink .cal-today-btn:active,
4078.calendar-theme-pink .btn-save-sleek:active,
4079.calendar-theme-pink .btn-cancel-sleek:active,
4080.calendar-theme-pink .btn-add-event:active {
4081    transform: scale(0.92);
4082    filter: brightness(1.6);
4083    animation: none;
4084    box-shadow: 0 0 25px rgba(255, 20, 147, 1), 0 0 50px rgba(255, 105, 180, 0.6);
4085}
4086
4087/* Sidebar pink button firework */
4088.sidebar-pink .event-edit-btn:hover,
4089.sidebar-pink .event-delete-btn:hover {
4090    background: #ff1493 !important;
4091    color: #1a0d14 !important;
4092    animation: pink-firework-burst 0.6s ease-out forwards;
4093    transform: scale(1.1);
4094}
4095
4096/* Panel standalone pink buttons */
4097.event-panel-standalone[data-theme="pink"] .panel-nav-btn:hover,
4098.event-panel-standalone[data-theme="pink"] .panel-today-btn:hover,
4099.event-panel-standalone[data-theme="pink"] .panel-add-btn:hover {
4100    background: #ff1493 !important;
4101    color: #1a0d14 !important;
4102    animation: pink-firework-burst 0.6s ease-out forwards;
4103    transform: scale(1.1);
4104}
4105
4106/* ========================================
4107   TEXT COLOR PROTECTION
4108   Forces text to stay readable on dark themes
4109   when browser extensions modify page colors.
4110   Only uses color !important — no filter, no
4111   color-scheme, no variable resets.
4112   ======================================== */
4113
4114/* Matrix: green text on dark background */
4115.calendar-theme-matrix .event-title-compact,
4116.calendar-theme-matrix .event-list-header,
4117.calendar-theme-matrix .calendar-day-headers,
4118.sidebar-matrix .event-title-compact {
4119    color: var(--text-bright, #00ff00) !important;
4120    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4121}
4122
4123.calendar-theme-matrix .event-meta-compact,
4124.calendar-theme-matrix .event-desc-compact,
4125.calendar-theme-matrix .no-events-msg,
4126.sidebar-matrix .event-meta-compact,
4127.sidebar-matrix .event-desc-compact {
4128    color: var(--text-dim, #00aa00) !important;
4129    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
4130}
4131
4132.calendar-theme-matrix .day-num,
4133.calendar-theme-matrix .cal-nav-btn,
4134.calendar-theme-matrix .cal-today-btn,
4135.sidebar-matrix .eventlist-today-date {
4136    color: var(--text-primary, #00cc07) !important;
4137    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
4138}
4139
4140/* Purple: purple text on dark background */
4141.calendar-theme-purple .event-title-compact,
4142.calendar-theme-purple .event-list-header,
4143.calendar-theme-purple .calendar-day-headers,
4144.sidebar-purple .event-title-compact {
4145    color: var(--text-bright, #d4a5ff) !important;
4146    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4147}
4148
4149.calendar-theme-purple .event-meta-compact,
4150.calendar-theme-purple .event-desc-compact,
4151.calendar-theme-purple .no-events-msg,
4152.sidebar-purple .event-meta-compact,
4153.sidebar-purple .event-desc-compact {
4154    color: var(--text-dim, #8e7ab8) !important;
4155    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4156}
4157
4158.calendar-theme-purple .day-num,
4159.calendar-theme-purple .cal-nav-btn,
4160.calendar-theme-purple .cal-today-btn,
4161.sidebar-purple .eventlist-today-date {
4162    color: var(--text-primary, #b19cd9) !important;
4163    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4164}
4165
4166/* Pink: pink text on dark background */
4167.calendar-theme-pink .event-title-compact,
4168.calendar-theme-pink .event-list-header,
4169.calendar-theme-pink .calendar-day-headers,
4170.sidebar-pink .event-title-compact {
4171    color: var(--text-bright, #ff1493) !important;
4172    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4173}
4174
4175.calendar-theme-pink .event-meta-compact,
4176.calendar-theme-pink .event-desc-compact,
4177.calendar-theme-pink .no-events-msg,
4178.sidebar-pink .event-meta-compact,
4179.sidebar-pink .event-desc-compact {
4180    color: var(--text-dim, #ff85c1) !important;
4181    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4182}
4183
4184.calendar-theme-pink .day-num,
4185.calendar-theme-pink .cal-nav-btn,
4186.calendar-theme-pink .cal-today-btn,
4187.sidebar-pink .eventlist-today-date {
4188    color: var(--text-primary, #ff69b4) !important;
4189    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
4190}
4191
4192/* Badge text AND background protection - all dark themes */
4193.calendar-theme-matrix .event-today-badge,
4194.calendar-theme-matrix .event-pastdue-badge,
4195.calendar-theme-matrix .event-namespace-badge,
4196.calendar-theme-matrix .eventlist-simple-today-badge,
4197.calendar-theme-matrix .eventlist-simple-pastdue-badge,
4198.calendar-theme-matrix .panel-ns-badge,
4199.sidebar-matrix .event-today-badge,
4200.sidebar-matrix .event-pastdue-badge,
4201.sidebar-matrix .event-namespace-badge,
4202.calendar-theme-purple .event-today-badge,
4203.calendar-theme-purple .event-pastdue-badge,
4204.calendar-theme-purple .event-namespace-badge,
4205.calendar-theme-purple .eventlist-simple-today-badge,
4206.calendar-theme-purple .eventlist-simple-pastdue-badge,
4207.calendar-theme-purple .panel-ns-badge,
4208.sidebar-purple .event-today-badge,
4209.sidebar-purple .event-pastdue-badge,
4210.sidebar-purple .event-namespace-badge,
4211.calendar-theme-pink .event-today-badge,
4212.calendar-theme-pink .event-pastdue-badge,
4213.calendar-theme-pink .event-namespace-badge,
4214.calendar-theme-pink .eventlist-simple-today-badge,
4215.calendar-theme-pink .eventlist-simple-pastdue-badge,
4216.calendar-theme-pink .panel-ns-badge,
4217.sidebar-pink .event-today-badge,
4218.sidebar-pink .event-pastdue-badge,
4219.sidebar-pink .event-namespace-badge {
4220    color: var(--background-site, white) !important;
4221    -webkit-text-fill-color: var(--background-site, white) !important;
4222    background: var(--text-bright) !important;
4223}
4224
4225.calendar-theme-matrix .event-pastdue-badge,
4226.calendar-theme-purple .event-pastdue-badge,
4227.calendar-theme-pink .event-pastdue-badge,
4228.calendar-theme-matrix .eventlist-simple-pastdue-badge,
4229.calendar-theme-purple .eventlist-simple-pastdue-badge,
4230.calendar-theme-pink .eventlist-simple-pastdue-badge,
4231.sidebar-matrix .event-pastdue-badge,
4232.sidebar-purple .event-pastdue-badge,
4233.sidebar-pink .event-pastdue-badge {
4234    background: var(--pastdue-color, #e74c3c) !important;
4235}
4236
4237/* Purple: sidebar section event text and section headers */
4238.sidebar-purple .event-title-compact,
4239.sidebar-purple .event-meta-compact,
4240.sidebar-purple .event-desc-compact {
4241    color: var(--text-primary, #b19cd9) !important;
4242    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4243}
4244
4245.sidebar-purple .eventlist-today-clock {
4246    color: var(--text-bright, #d4a5ff) !important;
4247    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4248}
4249
4250.sidebar-purple .eventlist-today-date {
4251    color: var(--text-dim, #8e7ab8) !important;
4252    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4253}
4254
4255/* Pink: sidebar section event text */
4256.sidebar-pink .event-title-compact {
4257    color: var(--text-bright, #ff1493) !important;
4258    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4259}
4260
4261.sidebar-pink .eventlist-today-clock {
4262    color: var(--text-bright, #ff1493) !important;
4263    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4264}
4265
4266.sidebar-pink .eventlist-today-date {
4267    color: var(--text-dim, #ff85c1) !important;
4268    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4269}
4270
4271/* ========================================
4272   EVENTLIST THEMING
4273   Applies theme colors to {{eventlist}} output
4274   ======================================== */
4275
4276/* Matrix eventlist */
4277.eventlist-theme-matrix .eventlist-simple-title {
4278    color: var(--text-bright, #00ff00) !important;
4279    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4280}
4281
4282.eventlist-theme-matrix .eventlist-simple-header {
4283    color: var(--text-primary, #00cc07) !important;
4284    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
4285    background: var(--cell-bg, #242424) !important;
4286}
4287
4288.eventlist-theme-matrix .eventlist-simple-time,
4289.eventlist-theme-matrix .eventlist-simple-date,
4290.eventlist-theme-matrix .eventlist-simple-body {
4291    color: var(--text-dim, #00aa00) !important;
4292    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
4293    background: var(--background-site, #242424) !important;
4294}
4295
4296.eventlist-theme-matrix .eventlist-simple-body a {
4297    color: var(--text-bright, #00ff00) !important;
4298    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4299}
4300
4301.eventlist-theme-matrix .eventlist-simple-body strong {
4302    color: var(--text-primary, #00cc07) !important;
4303    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
4304}
4305
4306.eventlist-theme-matrix .eventlist-simple-body code {
4307    background: var(--cell-bg, #1a3d1a) !important;
4308    color: var(--text-primary, #00cc07) !important;
4309    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
4310}
4311
4312.eventlist-theme-matrix .eventlist-simple-namespace {
4313    background: var(--cell-today-bg, #2a4d2a) !important;
4314    color: var(--text-bright, #00ff00) !important;
4315    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4316}
4317
4318.eventlist-theme-matrix .eventlist-simple-empty,
4319.eventlist-theme-matrix .eventlist-simple-empty .eventlist-simple-body {
4320    color: var(--text-dim, #00aa00) !important;
4321    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
4322}
4323
4324.eventlist-theme-matrix .eventlist-simple-item {
4325    border-bottom-color: var(--border-color, #00cc07) !important;
4326}
4327
4328.eventlist-theme-matrix .eventlist-today-header {
4329    background: var(--cell-bg, #242424) !important;
4330    color: var(--text-bright, #00ff00) !important;
4331    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4332    border-color: var(--text-bright, #00ff00) !important;
4333}
4334
4335.eventlist-theme-matrix .eventlist-today-clock {
4336    color: var(--text-bright, #00ff00) !important;
4337    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4338}
4339
4340.eventlist-theme-matrix .eventlist-today-date {
4341    color: var(--text-dim, #00aa00) !important;
4342    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
4343}
4344
4345/* Purple eventlist */
4346.eventlist-theme-purple .eventlist-simple-title {
4347    color: var(--text-bright, #d4a5ff) !important;
4348    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4349}
4350
4351.eventlist-theme-purple .eventlist-simple-header {
4352    color: var(--text-primary, #b19cd9) !important;
4353    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4354    background: var(--cell-bg, #2a2030) !important;
4355}
4356
4357.eventlist-theme-purple .eventlist-simple-time,
4358.eventlist-theme-purple .eventlist-simple-date,
4359.eventlist-theme-purple .eventlist-simple-body {
4360    color: var(--text-dim, #8e7ab8) !important;
4361    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4362    background: var(--background-site, #2a2030) !important;
4363}
4364
4365.eventlist-theme-purple .eventlist-simple-body a {
4366    color: var(--text-bright, #d4a5ff) !important;
4367    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4368}
4369
4370.eventlist-theme-purple .eventlist-simple-body strong {
4371    color: var(--text-primary, #b19cd9) !important;
4372    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4373}
4374
4375.eventlist-theme-purple .eventlist-simple-body code {
4376    background: var(--cell-bg, #3d2b4d) !important;
4377    color: var(--text-primary, #b19cd9) !important;
4378    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4379}
4380
4381.eventlist-theme-purple .eventlist-simple-namespace {
4382    background: var(--cell-today-bg, #3d2b4d) !important;
4383    color: var(--text-bright, #d4a5ff) !important;
4384    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4385}
4386
4387.eventlist-theme-purple .eventlist-simple-empty,
4388.eventlist-theme-purple .eventlist-simple-empty .eventlist-simple-body {
4389    color: var(--text-dim, #8e7ab8) !important;
4390    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4391}
4392
4393.eventlist-theme-purple .eventlist-simple-item {
4394    border-bottom-color: var(--border-color, #9b59b6) !important;
4395}
4396
4397.eventlist-theme-purple .eventlist-today-header {
4398    background: var(--cell-bg, #2a2030) !important;
4399    color: var(--text-bright, #d4a5ff) !important;
4400    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4401    border-color: var(--text-bright, #d4a5ff) !important;
4402}
4403
4404.eventlist-theme-purple .eventlist-today-clock {
4405    color: var(--text-bright, #d4a5ff) !important;
4406    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4407}
4408
4409.eventlist-theme-purple .eventlist-today-date {
4410    color: var(--text-dim, #8e7ab8) !important;
4411    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4412}
4413
4414/* Pink eventlist */
4415.eventlist-theme-pink .eventlist-simple-title {
4416    color: var(--text-bright, #ff1493) !important;
4417    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4418}
4419
4420.eventlist-theme-pink .eventlist-simple-header {
4421    color: var(--text-primary, #ff69b4) !important;
4422    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
4423    background: var(--cell-bg, #1a0d14) !important;
4424}
4425
4426.eventlist-theme-pink .eventlist-simple-time,
4427.eventlist-theme-pink .eventlist-simple-date,
4428.eventlist-theme-pink .eventlist-simple-body {
4429    color: var(--text-dim, #ff85c1) !important;
4430    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4431    background: var(--background-site, #1a0d14) !important;
4432}
4433
4434.eventlist-theme-pink .eventlist-simple-body a {
4435    color: var(--text-bright, #ff1493) !important;
4436    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4437}
4438
4439.eventlist-theme-pink .eventlist-simple-body strong {
4440    color: var(--text-primary, #ff69b4) !important;
4441    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
4442}
4443
4444.eventlist-theme-pink .eventlist-simple-body code {
4445    background: var(--cell-bg, #2d1020) !important;
4446    color: var(--text-primary, #ff69b4) !important;
4447    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
4448}
4449
4450.eventlist-theme-pink .eventlist-simple-namespace {
4451    background: var(--cell-today-bg, #2d1020) !important;
4452    color: var(--text-bright, #ff1493) !important;
4453    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4454}
4455
4456.eventlist-theme-pink .eventlist-simple-empty,
4457.eventlist-theme-pink .eventlist-simple-empty .eventlist-simple-body {
4458    color: var(--text-dim, #ff85c1) !important;
4459    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4460}
4461
4462.eventlist-theme-pink .eventlist-simple-item {
4463    border-bottom-color: var(--border-color, #ff1493) !important;
4464}
4465
4466.eventlist-theme-pink .eventlist-today-header {
4467    background: var(--cell-bg, #1a0d14) !important;
4468    color: var(--text-bright, #ff1493) !important;
4469    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4470    border-color: var(--text-bright, #ff1493) !important;
4471}
4472
4473.eventlist-theme-pink .eventlist-today-clock {
4474    color: var(--text-bright, #ff1493) !important;
4475    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4476}
4477
4478.eventlist-theme-pink .eventlist-today-date {
4479    color: var(--text-dim, #ff85c1) !important;
4480    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4481}
4482
4483/* ========================================
4484   STATIC CALENDAR - Read-only Presentation Mode
4485   ======================================== */
4486
4487.calendar-static {
4488    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
4489    width: 100%;
4490    max-width: 100%;
4491    margin: 0 auto;
4492    box-sizing: border-box;
4493    overflow-x: auto;
4494}
4495
4496/* Header with navigation */
4497.static-header {
4498    display: flex;
4499    align-items: center;
4500    justify-content: center;
4501    gap: 15px;
4502    padding: 12px;
4503    background: #2c3e50;
4504    color: white;
4505    border-radius: 8px 8px 0 0;
4506}
4507
4508.static-month-title {
4509    margin: 0;
4510    font-size: 1.3em;
4511    font-weight: 600;
4512    min-width: 180px;
4513    text-align: center;
4514}
4515
4516.static-nav-btn {
4517    background: rgba(255,255,255,0.2);
4518    border: none;
4519    color: white;
4520    font-size: 16px;
4521    width: 32px;
4522    height: 32px;
4523    border-radius: 50%;
4524    cursor: pointer;
4525    transition: background 0.2s;
4526    flex-shrink: 0;
4527}
4528
4529.static-nav-btn:hover {
4530    background: rgba(255,255,255,0.3);
4531}
4532
4533.static-print-btn {
4534    background: rgba(255,255,255,0.2);
4535    border: none;
4536    color: white;
4537    font-size: 16px;
4538    width: 32px;
4539    height: 32px;
4540    border-radius: 50%;
4541    cursor: pointer;
4542    transition: background 0.2s;
4543    flex-shrink: 0;
4544    margin-left: 10px;
4545    display: flex;
4546    align-items: center;
4547    justify-content: center;
4548    padding: 0;
4549    line-height: 1;
4550}
4551
4552.static-print-btn:hover {
4553    background: rgba(255,255,255,0.3);
4554}
4555
4556/* Calendar grid */
4557.static-calendar-grid {
4558    width: 100%;
4559    border-collapse: collapse;
4560    background: white;
4561    border: 1px solid #ddd;
4562    table-layout: fixed;
4563}
4564
4565.static-calendar-grid th {
4566    background: #f5f5f5;
4567    padding: 8px 4px;
4568    text-align: center;
4569    font-weight: 600;
4570    color: #555;
4571    border-bottom: 2px solid #ddd;
4572    font-size: 12px;
4573}
4574
4575.static-calendar-grid td {
4576    border: 1px solid #eee;
4577    vertical-align: top;
4578    height: 80px;
4579    width: 14.28%;
4580    padding: 0;
4581    overflow: hidden;
4582}
4583
4584.static-day {
4585    height: 100%;
4586    position: relative;
4587}
4588
4589.static-day-empty {
4590    background: #fafafa;
4591}
4592
4593.static-day-number {
4594    position: absolute;
4595    top: 5px;
4596    right: 8px;
4597    font-size: 14px;
4598    font-weight: 500;
4599    color: #666;
4600}
4601
4602.static-day-today .static-day-number {
4603    background: #2c3e50;
4604    color: white;
4605    width: 24px;
4606    height: 24px;
4607    border-radius: 50%;
4608    display: flex;
4609    align-items: center;
4610    justify-content: center;
4611    right: 5px;
4612}
4613
4614.static-day-weekend {
4615    background: #fafafa;
4616}
4617
4618.static-day-events {
4619    padding: 28px 4px 4px 4px;
4620    display: flex;
4621    flex-direction: column;
4622    gap: 2px;
4623    max-height: 80px;
4624    overflow-y: auto;
4625}
4626
4627/* Individual events */
4628.static-event {
4629    font-size: 11px;
4630    padding: 2px 4px;
4631    background: #f0f8ff;
4632    border-left: 3px solid #3498db;
4633    border-radius: 2px;
4634    white-space: nowrap;
4635    overflow: hidden;
4636    text-overflow: ellipsis;
4637    cursor: default;
4638}
4639
4640.static-event:hover {
4641    background: #e3f2fd;
4642}
4643
4644.static-event-important {
4645    background: linear-gradient(135deg, rgba(255, 215, 0, 0.2), rgba(255, 193, 7, 0.1));
4646    border-left-color: #ffc107;
4647}
4648
4649.static-event-important:hover {
4650    background: linear-gradient(135deg, rgba(255, 215, 0, 0.3), rgba(255, 193, 7, 0.2));
4651}
4652
4653.static-event-star {
4654    font-size: 10px;
4655    margin-right: 2px;
4656}
4657
4658.static-event-time {
4659    font-weight: 600;
4660    color: #2c3e50;
4661}
4662
4663.static-event-title {
4664    color: #333;
4665}
4666
4667/* Print view - hidden on screen */
4668.static-print-view {
4669    display: none;
4670}
4671
4672/* Itinerary table for printing */
4673.static-itinerary {
4674    width: 100%;
4675    border-collapse: collapse;
4676    margin-top: 20px;
4677}
4678
4679.static-itinerary th {
4680    background: #2c3e50;
4681    color: white;
4682    padding: 10px;
4683    text-align: left;
4684    font-weight: 600;
4685}
4686
4687.static-itinerary td {
4688    padding: 8px 10px;
4689    border-bottom: 1px solid #ddd;
4690    vertical-align: top;
4691}
4692
4693.static-itinerary-date {
4694    font-weight: 600;
4695    white-space: nowrap;
4696    width: 100px;
4697}
4698
4699.static-itinerary-time {
4700    white-space: nowrap;
4701    width: 120px;
4702    color: #555;
4703}
4704
4705.static-itinerary-title {
4706    font-weight: 500;
4707}
4708
4709.static-itinerary-desc {
4710    color: #666;
4711    font-size: 0.9em;
4712}
4713
4714.static-itinerary-important {
4715    background: rgba(255, 215, 0, 0.15);
4716}
4717
4718.static-print-title {
4719    margin: 0 0 10px 0;
4720    font-size: 1.5em;
4721    color: #2c3e50;
4722}
4723
4724.static-print-namespace {
4725    color: #666;
4726    margin: 0 0 15px 0;
4727    font-style: italic;
4728}
4729
4730.static-print-empty {
4731    color: #888;
4732    font-style: italic;
4733}
4734
4735/* Print styles */
4736@media print {
4737    .calendar-static {
4738        max-width: 100%;
4739        width: 100%;
4740        overflow: visible !important;
4741        height: auto !important;
4742        min-height: 0 !important;
4743        max-height: none !important;
4744    }
4745
4746    /* Completely remove screen view from print flow */
4747    .static-screen-view,
4748    .static-screen-view *,
4749    .static-header,
4750    .static-calendar-grid,
4751    .static-day,
4752    .static-day-events,
4753    .static-event,
4754    .static-nav-btn {
4755        display: none !important;
4756        visibility: hidden !important;
4757        height: 0 !important;
4758        max-height: 0 !important;
4759        width: 0 !important;
4760        max-width: 0 !important;
4761        overflow: hidden !important;
4762        position: absolute !important;
4763        left: -9999px !important;
4764        margin: 0 !important;
4765        padding: 0 !important;
4766        border: none !important;
4767    }
4768
4769    /* Show print view */
4770    .static-print-view {
4771        display: block !important;
4772        visibility: visible !important;
4773        position: relative !important;
4774        height: auto !important;
4775        width: 100% !important;
4776        left: auto !important;
4777    }
4778
4779    .static-print-view * {
4780        visibility: visible !important;
4781        position: relative !important;
4782        left: auto !important;
4783    }
4784
4785    .static-itinerary {
4786        page-break-inside: auto;
4787        width: 100%;
4788        display: table !important;
4789    }
4790
4791    .static-itinerary tr {
4792        page-break-inside: avoid;
4793        page-break-after: auto;
4794        display: table-row !important;
4795    }
4796
4797    .static-itinerary td,
4798    .static-itinerary th {
4799        display: table-cell !important;
4800        height: auto !important;
4801        width: auto !important;
4802    }
4803
4804    .static-itinerary th {
4805        background: #333 !important;
4806        -webkit-print-color-adjust: exact;
4807        print-color-adjust: exact;
4808    }
4809
4810    .static-itinerary-important {
4811        background: #fffde7 !important;
4812        -webkit-print-color-adjust: exact;
4813        print-color-adjust: exact;
4814    }
4815
4816    .static-print-title,
4817    .static-print-namespace,
4818    .static-print-empty {
4819        page-break-after: avoid;
4820        display: block !important;
4821        height: auto !important;
4822        width: auto !important;
4823    }
4824}
4825
4826/* Responsive */
4827@media (max-width: 768px) {
4828    .static-header {
4829        padding: 10px;
4830        gap: 10px;
4831    }
4832
4833    .static-month-title {
4834        font-size: 1.1em;
4835        min-width: 120px;
4836    }
4837
4838    .static-nav-btn {
4839        width: 28px;
4840        height: 28px;
4841        font-size: 14px;
4842    }
4843
4844    .static-calendar-grid th {
4845        padding: 6px 2px;
4846        font-size: 10px;
4847    }
4848
4849    .static-calendar-grid td {
4850        height: 60px;
4851    }
4852
4853    .static-day-number {
4854        font-size: 11px;
4855        top: 2px;
4856        right: 4px;
4857    }
4858
4859    .static-day-today .static-day-number {
4860        width: 18px;
4861        height: 18px;
4862        right: 2px;
4863    }
4864
4865    .static-day-events {
4866        padding: 20px 2px 2px 2px;
4867        max-height: 40px;
4868        gap: 1px;
4869    }
4870
4871    .static-event {
4872        font-size: 9px;
4873        padding: 1px 2px;
4874    }
4875
4876    .static-event-time {
4877        display: none;
4878    }
4879}
4880
4881@media (max-width: 480px) {
4882    .static-calendar-grid th {
4883        font-size: 9px;
4884        padding: 4px 1px;
4885    }
4886
4887    .static-calendar-grid td {
4888        height: 50px;
4889    }
4890
4891    .static-day-events {
4892        max-height: 30px;
4893    }
4894
4895    .static-event {
4896        font-size: 8px;
4897    }
4898}
4899
4900/* Static Calendar Theme Variations */
4901.static-theme-matrix .static-header {
4902    background: #0a0a0a;
4903    border-bottom: 1px solid #00ff00;
4904}
4905
4906.static-theme-matrix .static-calendar-grid {
4907    background: #0d0d0d;
4908    border-color: #00ff00;
4909}
4910
4911.static-theme-matrix .static-calendar-grid th {
4912    background: #0a0a0a;
4913    color: #00ff00;
4914    border-color: #004400;
4915}
4916
4917.static-theme-matrix .static-calendar-grid td {
4918    border-color: #003300;
4919    color: #00cc00;
4920}
4921
4922.static-theme-matrix .static-day-empty {
4923    background: #050505;
4924}
4925
4926.static-theme-matrix .static-day-weekend {
4927    background: #0a0a0a;
4928}
4929
4930.static-theme-matrix .static-day-number {
4931    color: #00ff00;
4932}
4933
4934.static-theme-matrix .static-day-today .static-day-number {
4935    background: #00ff00;
4936    color: #000;
4937}
4938
4939.static-theme-matrix .static-event {
4940    background: rgba(0, 255, 0, 0.1);
4941    color: #00cc00;
4942}
4943
4944.static-theme-matrix .static-event:hover {
4945    background: rgba(0, 255, 0, 0.2);
4946}
4947
4948/* Pink theme */
4949.static-theme-pink .static-header {
4950    background: linear-gradient(135deg, #ff1493, #ff69b4);
4951}
4952
4953.static-theme-pink .static-calendar-grid {
4954    background: #1a0a10;
4955    border-color: #ff1493;
4956}
4957
4958.static-theme-pink .static-calendar-grid th {
4959    background: #2a0a15;
4960    color: #ff69b4;
4961    border-color: #ff1493;
4962}
4963
4964.static-theme-pink .static-calendar-grid td {
4965    border-color: #440020;
4966    color: #ff85c0;
4967}
4968
4969.static-theme-pink .static-day-empty {
4970    background: #0d0508;
4971}
4972
4973.static-theme-pink .static-day-weekend {
4974    background: #150810;
4975}
4976
4977.static-theme-pink .static-day-number {
4978    color: #ff69b4;
4979}
4980
4981.static-theme-pink .static-day-today .static-day-number {
4982    background: #ff1493;
4983    color: #fff;
4984}
4985
4986.static-theme-pink .static-event {
4987    background: rgba(255, 20, 147, 0.15);
4988    color: #ff85c0;
4989}
4990
4991/* Dark theme */
4992.static-theme-dark .static-header {
4993    background: #1a1a2e;
4994}
4995
4996.static-theme-dark .static-calendar-grid {
4997    background: #16213e;
4998    border-color: #1a1a2e;
4999}
5000
5001.static-theme-dark .static-calendar-grid th {
5002    background: #1a1a2e;
5003    color: #e0e0e0;
5004}
5005
5006.static-theme-dark .static-calendar-grid td {
5007    border-color: #2a2a4e;
5008    color: #c0c0c0;
5009}
5010
5011.static-theme-dark .static-day-empty {
5012    background: #0f0f1a;
5013}
5014
5015.static-theme-dark .static-day-weekend {
5016    background: #12121f;
5017}
5018
5019.static-theme-dark .static-day-number {
5020    color: #a0a0a0;
5021}
5022
5023.static-theme-dark .static-day-today .static-day-number {
5024    background: #4a90d9;
5025    color: #fff;
5026}
5027
5028.static-theme-dark .static-event {
5029    background: rgba(74, 144, 217, 0.2);
5030    color: #8ab4f8;
5031}
5032
5033
5034/* Purple theme for static calendar */
5035.static-theme-purple .static-header {
5036    background: linear-gradient(180deg, #2f2438 0%, #2a2030 100%);
5037    border-bottom: 1px solid #9b59b6;
5038}
5039
5040.static-theme-purple .static-calendar-grid {
5041    background: #2a2030;
5042    border-color: #9b59b6;
5043}
5044
5045.static-theme-purple .static-calendar-grid th {
5046    background: #3d2b4d;
5047    color: #d4a5ff;
5048    border-color: #9b59b6;
5049}
5050
5051.static-theme-purple .static-calendar-grid td {
5052    border-color: #4d3860;
5053    color: #b19cd9;
5054}
5055
5056.static-theme-purple .static-day-empty {
5057    background: #1f1828;
5058}
5059
5060.static-theme-purple .static-day-weekend {
5061    background: #251d30;
5062}
5063
5064.static-theme-purple .static-day-number {
5065    color: #d4a5ff;
5066}
5067
5068.static-theme-purple .static-day-today .static-day-number {
5069    background: #9b59b6;
5070    color: #fff;
5071}
5072
5073.static-theme-purple .static-event {
5074    background: rgba(155, 89, 182, 0.2);
5075    color: #d4a5ff;
5076    border-left-color: #9b59b6;
5077}
5078
5079.static-theme-purple .static-event:hover {
5080    background: rgba(155, 89, 182, 0.3);
5081}
5082
5083/* Professional theme for static calendar */
5084.static-theme-professional .static-header {
5085    background: linear-gradient(180deg, #ffffff 0%, #f5f7fa 100%);
5086    border-bottom: 2px solid #4a90e2;
5087    color: #2c3e50;
5088}
5089
5090.static-theme-professional .static-header h2 {
5091    color: #2c3e50;
5092}
5093
5094.static-theme-professional .static-nav-btn,
5095.static-theme-professional .static-print-btn {
5096    background: #4a90e2;
5097    color: white;
5098}
5099
5100.static-theme-professional .static-nav-btn:hover,
5101.static-theme-professional .static-print-btn:hover {
5102    background: #3a7bc8;
5103}
5104
5105.static-theme-professional .static-calendar-grid {
5106    background: #ffffff;
5107    border-color: #d0d7de;
5108}
5109
5110.static-theme-professional .static-calendar-grid th {
5111    background: #f5f7fa;
5112    color: #2c3e50;
5113    border-color: #d0d7de;
5114}
5115
5116.static-theme-professional .static-calendar-grid td {
5117    border-color: #e8ecf1;
5118    color: #2c3e50;
5119}
5120
5121.static-theme-professional .static-day-empty {
5122    background: #fafbfc;
5123}
5124
5125.static-theme-professional .static-day-weekend {
5126    background: #f5f7fa;
5127}
5128
5129.static-theme-professional .static-day-number {
5130    color: #2c3e50;
5131}
5132
5133.static-theme-professional .static-day-today .static-day-number {
5134    background: #4a90e2;
5135    color: #fff;
5136}
5137
5138.static-theme-professional .static-event {
5139    background: rgba(74, 144, 226, 0.1);
5140    color: #2c3e50;
5141    border-left-color: #4a90e2;
5142}
5143
5144.static-theme-professional .static-event:hover {
5145    background: rgba(74, 144, 226, 0.2);
5146}
5147
5148/* Wiki theme for static calendar (neutral, matches DokuWiki default) */
5149.static-theme-wiki .static-header {
5150    background: #f5f5f5;
5151    border-bottom: 1px solid #ccc;
5152    color: #333;
5153}
5154
5155.static-theme-wiki .static-header h2 {
5156    color: #333;
5157}
5158
5159.static-theme-wiki .static-nav-btn,
5160.static-theme-wiki .static-print-btn {
5161    background: #ddd;
5162    color: #333;
5163}
5164
5165.static-theme-wiki .static-nav-btn:hover,
5166.static-theme-wiki .static-print-btn:hover {
5167    background: #ccc;
5168}
5169
5170.static-theme-wiki .static-calendar-grid {
5171    background: #fff;
5172    border-color: #ccc;
5173}
5174
5175.static-theme-wiki .static-calendar-grid th {
5176    background: #f0f0f0;
5177    color: #333;
5178    border-color: #ccc;
5179}
5180
5181.static-theme-wiki .static-calendar-grid td {
5182    border-color: #ddd;
5183    color: #333;
5184}
5185
5186.static-theme-wiki .static-day-empty {
5187    background: #fafafa;
5188}
5189
5190.static-theme-wiki .static-day-weekend {
5191    background: #f5f5f5;
5192}
5193
5194.static-theme-wiki .static-day-number {
5195    color: #333;
5196}
5197
5198.static-theme-wiki .static-day-today .static-day-number {
5199    background: #2196f3;
5200    color: #fff;
5201}
5202
5203.static-theme-wiki .static-event {
5204    background: #e3f2fd;
5205    color: #333;
5206    border-left-color: #2196f3;
5207}
5208
5209.static-theme-wiki .static-event:hover {
5210    background: #bbdefb;
5211}
5212
5213/* Light theme (clean white) */
5214.static-theme-light .static-header {
5215    background: #ffffff;
5216    border-bottom: 2px solid #e0e0e0;
5217    color: #333;
5218}
5219
5220.static-theme-light .static-header h2 {
5221    color: #333;
5222}
5223
5224.static-theme-light .static-nav-btn,
5225.static-theme-light .static-print-btn {
5226    background: #e0e0e0;
5227    color: #333;
5228}
5229
5230.static-theme-light .static-nav-btn:hover,
5231.static-theme-light .static-print-btn:hover {
5232    background: #d0d0d0;
5233}
5234
5235.static-theme-light .static-calendar-grid {
5236    background: #ffffff;
5237    border-color: #e0e0e0;
5238}
5239
5240.static-theme-light .static-calendar-grid th {
5241    background: #fafafa;
5242    color: #333;
5243    border-color: #e0e0e0;
5244}
5245
5246.static-theme-light .static-calendar-grid td {
5247    border-color: #f0f0f0;
5248    color: #333;
5249}
5250
5251.static-theme-light .static-day-empty {
5252    background: #fafafa;
5253}
5254
5255.static-theme-light .static-day-weekend {
5256    background: #f5f5f5;
5257}
5258
5259.static-theme-light .static-day-number {
5260    color: #666;
5261}
5262
5263.static-theme-light .static-day-today .static-day-number {
5264    background: #333;
5265    color: #fff;
5266}
5267
5268.static-theme-light .static-event {
5269    background: #f5f5f5;
5270    color: #333;
5271}
5272
5273.static-theme-light .static-event:hover {
5274    background: #eeeeee;
5275}
5276
5277/* Static calendar rich tooltip */
5278.static-tooltip {
5279    position: fixed;
5280    background: #2c3e50;
5281    color: white;
5282    padding: 10px 14px;
5283    border-radius: 6px;
5284    font-size: 12px;
5285    max-width: 300px;
5286    z-index: 10000;
5287    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
5288    pointer-events: none;
5289    line-height: 1.4;
5290}
5291
5292.static-tooltip strong {
5293    display: block;
5294    margin-bottom: 4px;
5295    font-size: 13px;
5296}
5297
5298.static-tooltip .tooltip-time {
5299    color: #3498db;
5300    font-weight: 500;
5301}
5302
5303.static-tooltip .tooltip-desc {
5304    display: block;
5305    margin-top: 6px;
5306    color: #ecf0f1;
5307    border-top: 1px solid rgba(255,255,255,0.2);
5308    padding-top: 6px;
5309}
5310
5311.static-tooltip .tooltip-desc strong {
5312    display: inline;
5313    margin: 0;
5314    font-size: inherit;
5315}
5316
5317.static-tooltip .tooltip-desc em {
5318    font-style: italic;
5319}
5320
5321.static-tooltip a {
5322    color: #3498db;
5323    text-decoration: underline;
5324}
5325
5326/* Itinerary description formatting */
5327.static-itinerary-desc strong {
5328    font-weight: 600;
5329}
5330
5331.static-itinerary-desc em {
5332    font-style: italic;
5333}
5334
5335.static-itinerary-desc a {
5336    color: #2980b9;
5337    text-decoration: underline;
5338}
5339
5340.static-itinerary-desc br {
5341    display: block;
5342    content: "";
5343    margin-top: 4px;
5344}
5345