xref: /plugin/calendar/style.css (revision 815440faa45e800c80f925739a5d3cff27fa36d2)
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-cpu-bar {
2583    width: 100%;
2584    height: 3px;
2585    background: var(--cell-today-bg, rgba(0, 204, 7, 0.1)) !important;
2586    border-radius: 1px;
2587    overflow: visible;
2588    position: relative;
2589    cursor: help;
2590}
2591
2592.system-tooltip {
2593    position: fixed;
2594    background: var(--cell-bg, rgba(0, 0, 0, 0.95)) !important;
2595    padding: 6px 8px;
2596    border-radius: 4px;
2597    font-size: 9px;
2598    line-height: 1.3;
2599    white-space: normal;
2600    min-width: 150px;
2601    max-width: 250px;
2602    z-index: 999999;
2603    border: 1px solid;
2604    box-shadow: 0 3px 8px rgba(0,0,0,0.5);
2605    pointer-events: none;
2606    /* Position will be set by JavaScript */
2607}
2608
2609.system-tooltip div {
2610    font-size: 9px !important;
2611    line-height: 1.3 !important;
2612    margin: 0;
2613}
2614
2615.system-tooltip .tooltip-title {
2616    font-weight: bold;
2617    margin-bottom: 2px;
2618}
2619
2620.eventlist-cpu-fill {
2621    height: 100%;
2622    background: var(--text-bright, #00cc07) !important;
2623    transition: width 0.3s ease;
2624    box-shadow: 0 0 4px var(--shadow-color, rgba(0, 204, 7, 0.6)) !important;
2625}
2626
2627.eventlist-cpu-fill-purple {
2628    background: var(--border-main, #9b59b6) !important;
2629    box-shadow: 0 0 4px var(--shadow-color, rgba(155, 89, 182, 0.6)) !important;
2630}
2631
2632.eventlist-cpu-fill-orange {
2633    background: var(--text-primary, #ff8c00) !important;
2634    box-shadow: 0 0 4px var(--shadow-color, rgba(255, 140, 0, 0.6)) !important;
2635}
2636
2637/* Pink theme system bars - different shades of pink */
2638.sidebar-pink .eventlist-cpu-fill {
2639    background: var(--text-bright, #ff1493) !important;
2640    box-shadow: 0 0 5px var(--shadow-color, rgba(255, 20, 147, 0.7)) !important;
2641}
2642
2643.sidebar-pink .eventlist-cpu-fill-purple {
2644    background: var(--border-main, #ff69b4) !important;
2645    box-shadow: 0 0 5px var(--shadow-color, rgba(255, 105, 180, 0.7)) !important;
2646}
2647
2648.sidebar-pink .eventlist-cpu-fill-orange {
2649    background: var(--text-primary, #ff85c1) !important;
2650    box-shadow: 0 0 5px var(--shadow-color, rgba(255, 133, 193, 0.7)) !important;
2651}
2652
2653.sidebar-pink .eventlist-cpu-realtime {
2654    background: var(--cell-today-bg, rgba(255, 20, 147, 0.1)) !important;
2655}
2656
2657.sidebar-pink .eventlist-mem-realtime {
2658    background: var(--cell-today-bg, rgba(255, 133, 193, 0.1)) !important;
2659}
2660
2661.eventlist-cpu-realtime {
2662    background: var(--cell-today-bg, rgba(155, 89, 182, 0.1)) !important;
2663}
2664
2665.eventlist-mem-realtime {
2666    background: var(--cell-today-bg, rgba(255, 140, 0, 0.1)) !important;
2667}
2668
2669.eventlist-simple-item {
2670    border-bottom: 1px solid var(--border-color, #e0e0e0);
2671    padding: 0;
2672}
2673
2674.eventlist-simple-item:last-child {
2675    border-bottom: none;
2676}
2677
2678.eventlist-simple-today {
2679    background: var(--cell-today-bg, #f3eeff) !important;
2680    border-left: 3px solid var(--border-main, #9b59b6) !important;
2681}
2682
2683.eventlist-simple-today .eventlist-simple-header {
2684    background: var(--cell-today-bg, #e8d9ff) !important;
2685}
2686
2687.eventlist-simple-today .eventlist-simple-body {
2688    background: var(--cell-bg, #f9f5ff) !important;
2689}
2690
2691.eventlist-simple-today-badge {
2692    background: var(--border-main, #9b59b6);
2693    color: var(--background-site, white);
2694    padding: 1px 4px;
2695    border-radius: 3px;
2696    font-size: 9px;
2697    font-weight: 600;
2698    letter-spacing: 0.5px;
2699    display: inline-block;
2700    vertical-align: middle;
2701    float: right; /* Right-align */
2702    margin-left: auto;
2703}
2704
2705.eventlist-simple-pastdue {
2706    background: var(--pastdue-bg, #ffe6e6) !important;
2707    border-left: 3px solid var(--pastdue-color, #e74c3c) !important;
2708}
2709
2710.eventlist-simple-pastdue .eventlist-simple-header {
2711    background: var(--pastdue-bg-strong, #ffd9d9) !important;
2712}
2713
2714.eventlist-simple-pastdue .eventlist-simple-body {
2715    background: var(--pastdue-bg-light, #fff2f2) !important;
2716}
2717
2718.eventlist-simple-pastdue-badge {
2719    background: var(--pastdue-color, #e74c3c);
2720    color: white;
2721    padding: 1px 4px;
2722    border-radius: 3px;
2723    font-size: 9px;
2724    font-weight: 600;
2725    letter-spacing: 0.5px;
2726    display: inline-block;
2727    vertical-align: middle;
2728    float: right; /* Right-align */
2729    margin-left: auto;
2730}
2731
2732.eventlist-simple-tomorrow {
2733    background: var(--tomorrow-bg, #fff9e6) !important;
2734}
2735
2736.eventlist-simple-tomorrow .eventlist-simple-header {
2737    background: var(--tomorrow-bg-strong, #fff4cc) !important;
2738}
2739
2740.eventlist-simple-tomorrow .eventlist-simple-body {
2741    background: var(--tomorrow-bg-light, #fffbf0) !important;
2742}
2743
2744.eventlist-simple-header {
2745    font-weight: 500;
2746    color: var(--text-primary, #2c3e50);
2747    padding: 4px 6px;
2748    line-height: 1.5;
2749    background: var(--cell-bg, #f5fcf5);
2750    font-size: 11px;
2751}
2752
2753.eventlist-simple-title {
2754    font-weight: 700;
2755    color: var(--text-bright, #ff6600);
2756    font-size: 12px;
2757}
2758
2759.eventlist-simple-time {
2760    color: var(--text-dim, #666);
2761    font-size: 10px;
2762}
2763
2764.eventlist-simple-date {
2765    color: var(--text-dim, #888);
2766    font-size: 10px;
2767}
2768
2769.eventlist-simple-namespace {
2770    background: var(--cell-today-bg, #e8f5e9);
2771    color: var(--text-bright, #388e3c);
2772    padding: 1px 4px;
2773    border-radius: 3px;
2774    font-size: 9px;
2775    font-weight: 500;
2776    margin-left: 4px;
2777}
2778
2779.eventlist-simple-body {
2780    color: var(--text-dim, #555);
2781    font-size: 11px;
2782    line-height: 1.5;
2783    padding: 4px 6px;
2784    background: var(--background-site, #fff);
2785}
2786
2787.eventlist-simple-body a {
2788    color: var(--text-bright, #008800);
2789    text-decoration: none;
2790}
2791
2792.eventlist-simple-body a:hover {
2793    text-decoration: underline;
2794}
2795
2796.eventlist-simple-body strong {
2797    font-weight: 600;
2798    color: var(--text-primary, #2c3e50);
2799}
2800
2801.eventlist-simple-body code {
2802    background: var(--cell-bg, #f5f5f5);
2803    padding: 1px 3px;
2804    border-radius: 3px;
2805    font-family: 'Courier New', monospace;
2806    font-size: 10px;
2807    color: var(--text-primary, inherit);
2808}
2809
2810.eventlist-simple-no-desc {
2811    display: none;
2812}
2813
2814.eventlist-simple-empty {
2815    padding: 10px 0;
2816    color: var(--text-dim, #999);
2817}
2818
2819.eventlist-simple-empty .eventlist-simple-header {
2820    margin-bottom: 4px;
2821    background: var(--cell-bg, #f5fcf5);
2822}
2823
2824.eventlist-simple-empty .eventlist-simple-body {
2825    color: var(--text-dim, #999);
2826    font-style: italic;
2827    padding: 4px 6px;
2828    font-size: 11px;
2829}
2830
2831.eventlist-widget-header {
2832    background: var(--text-bright, #008800);
2833    color: white;
2834    padding: 8px 12px;
2835    flex-shrink: 0;
2836}
2837
2838.eventlist-widget-header h4 {
2839    margin: 0;
2840    font-size: 13px;
2841    font-weight: 600;
2842}
2843
2844.eventlist-widget-content {
2845    overflow-y: auto;
2846    padding: 8px;
2847    flex: 1;
2848}
2849
2850.eventlist-widget-date {
2851    font-size: 11px;
2852    font-weight: 600;
2853    color: var(--text-dim, #666);
2854    margin: 8px 0 4px 0;
2855    padding-bottom: 2px;
2856    border-bottom: 1px solid var(--border-color, #e0e0e0);
2857}
2858
2859.eventlist-widget-item {
2860    background: var(--cell-bg, #fafafa);
2861    border: 1px solid var(--border-color, #e0e0e0);
2862    border-left: 3px solid var(--text-bright, #3498db);
2863    border-radius: 3px;
2864    padding: 6px 8px;
2865    margin-bottom: 6px;
2866    transition: all 0.15s;
2867}
2868
2869.eventlist-widget-item:hover {
2870    background: var(--cell-bg, #f0f0f0);
2871    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
2872}
2873
2874.eventlist-widget-title {
2875    font-size: 12px;
2876    font-weight: 600;
2877    color: var(--text-primary, #2c3e50);
2878    margin-bottom: 2px;
2879}
2880
2881.eventlist-widget-time {
2882    font-size: 11px;
2883    color: var(--text-dim, #666);
2884    margin-bottom: 4px;
2885}
2886
2887.eventlist-widget-desc {
2888    font-size: 11px;
2889    color: var(--text-dim, #555);
2890    margin-top: 4px;
2891    line-height: 1.4;
2892}
2893
2894.eventlist-widget-desc img {
2895    max-width: 100%;
2896    height: auto;
2897    border-radius: 3px;
2898    margin: 4px 0;
2899}
2900
2901.eventlist-widget-desc a {
2902    color: var(--text-bright, #008800);
2903    text-decoration: none;
2904    border-bottom: 1px dotted var(--text-bright, #008800);
2905}
2906
2907.eventlist-widget-desc a:hover {
2908    border-bottom-style: solid;
2909}
2910
2911.eventlist-widget-empty {
2912    text-align: center;
2913    color: var(--text-dim, #999);
2914    font-size: 12px;
2915    padding: 20px;
2916    margin: 0;
2917}
2918
2919/* Global themed link class (used in renderDescription) */
2920.cal-link {
2921    color: var(--text-bright, #008800) !important;
2922    text-decoration: none;
2923    border-bottom: 1px dotted var(--text-bright, #008800);
2924    transition: all 0.15s;
2925}
2926
2927.cal-link:hover {
2928    border-bottom-style: solid;
2929    opacity: 0.85;
2930}
2931
2932/* Sidebar widget links - inherit theme colors */
2933.sidebar-widget a.cal-link {
2934    color: var(--text-bright, #00cc07) !important;
2935    border-bottom-color: var(--text-bright, #00cc07);
2936}
2937
2938/* Standalone event panel (right panel only) */
2939.event-panel-standalone {
2940    width: 320px;
2941    background: var(--background-site, #ffffff);
2942    border: 1px solid var(--border-color, #d0d0d0);
2943    border-radius: 6px;
2944    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
2945    display: flex;
2946    flex-direction: column;
2947    max-height: 600px;
2948    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
2949    font-size: 13px;
2950}
2951
2952/* Dark theme borders for event panel - match sidebar widget style */
2953.event-panel-standalone[data-theme="matrix"] {
2954    border: 2px solid var(--border-main, #00cc07);
2955    box-shadow: 0 0 10px var(--shadow-color, rgba(0, 204, 7, 0.3));
2956}
2957
2958.event-panel-standalone[data-theme="purple"] {
2959    border: 2px solid var(--border-main, #9b59b6);
2960    box-shadow: 0 0 10px var(--shadow-color, rgba(155, 89, 182, 0.3));
2961}
2962
2963.event-panel-standalone[data-theme="pink"] {
2964    border: 2px solid var(--border-main, #ff1493);
2965    box-shadow: 0 0 10px var(--shadow-color, rgba(255, 20, 147, 0.4));
2966}
2967
2968.event-panel-standalone .event-list-compact {
2969    overflow-y: auto;
2970    flex: 1;
2971    padding: 10px;
2972}
2973
2974/* Event panel - Compact two-row header for ~500px width (10% smaller) */
2975.panel-header-compact {
2976    background: var(--cell-bg, #f5f5f5);
2977    border-bottom: 2px solid var(--border-color, #ddd);
2978}
2979
2980.panel-header-row-1 {
2981    display: flex;
2982    align-items: center;
2983    gap: 7px;
2984    padding: 7px 11px;
2985    background: var(--cell-bg, #fafafa);
2986    border-bottom: 1px solid var(--border-color, #e8e8e8);
2987}
2988
2989.panel-header-row-2 {
2990    display: flex;
2991    align-items: center;
2992    gap: 7px;
2993    padding: 7px 11px;
2994    background: var(--background-site, #ffffff);
2995}
2996
2997.panel-nav-btn {
2998    background: var(--cell-bg, #ffffff);
2999    border: 1px solid var(--border-color, #ccc);
3000    color: var(--text-primary, #333);
3001    width: 29px;
3002    height: 29px;
3003    border-radius: 4px;
3004    cursor: pointer;
3005    font-size: 16px;
3006    font-weight: bold;
3007    transition: all 0.2s;
3008    display: flex;
3009    align-items: center;
3010    justify-content: center;
3011    padding: 0;
3012    flex-shrink: 0;
3013}
3014
3015.panel-nav-btn:hover {
3016    background: var(--text-bright, #00cc07);
3017    color: var(--background-site, white);
3018    border-color: var(--text-bright, #00cc07);
3019    filter: brightness(1.2);
3020    box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3));
3021}
3022
3023.panel-month-title {
3024    margin: 0;
3025    font-size: 13px;
3026    font-weight: 600;
3027    color: var(--text-primary, #2c3e50);
3028    cursor: pointer;
3029    padding: 5px 9px;
3030    border-radius: 4px;
3031    transition: background 0.2s;
3032    white-space: nowrap;
3033    user-select: none;
3034    flex: 1;
3035    text-align: center;
3036    background: var(--cell-bg, #ffffff);
3037    border: 1px solid var(--border-color, #e0e0e0);
3038}
3039
3040.panel-month-title:hover {
3041    background: var(--cell-today-bg, #e8f5e9);
3042    border-color: var(--text-bright, #00cc07);
3043}
3044
3045.panel-ns-badge {
3046    background: var(--cell-today-bg, #e3f2fd);
3047    color: var(--text-bright, #1976d2);
3048    padding: 3px 7px;
3049    border-radius: 11px;
3050    font-size: 9px;
3051    font-weight: 600;
3052    text-transform: uppercase;
3053    letter-spacing: 0.3px;
3054    white-space: nowrap;
3055    border: 1px solid var(--border-color, #bbdefb);
3056    flex-shrink: 0;
3057}
3058
3059.panel-ns-badge.filter-on {
3060    background: var(--text-bright, #ff9800);
3061    color: var(--background-site, white);
3062    border-color: var(--border-main, #f57c00);
3063    cursor: pointer;
3064    transition: all 0.2s;
3065}
3066
3067.panel-ns-badge.filter-on:hover {
3068    filter: brightness(1.2);
3069}
3070
3071.panel-today-btn {
3072    background: var(--cell-bg, #ffffff);
3073    border: 1px solid var(--border-color, #ccc);
3074    color: var(--text-primary, #333);
3075    padding: 5px 11px;
3076    border-radius: 4px;
3077    cursor: pointer;
3078    font-size: 10px;
3079    font-weight: 600;
3080    transition: all 0.2s;
3081    white-space: nowrap;
3082    flex-shrink: 0;
3083}
3084
3085.panel-today-btn:hover {
3086    background: var(--text-bright, #00cc07);
3087    color: var(--background-site, white);
3088    border-color: var(--text-bright, #00cc07);
3089    filter: brightness(1.2);
3090    box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3));
3091}
3092
3093.panel-search-box {
3094    position: relative;
3095    flex: 1;
3096    display: flex;
3097    gap: 0;
3098}
3099
3100.panel-search-input {
3101    flex: 1;
3102    padding: 5px 25px 5px 9px;
3103    border: 1px solid var(--border-color, #d0d0d0);
3104    border-radius: 4px 0 0 4px;
3105    font-size: 11px;
3106    outline: none;
3107    transition: border-color 0.2s, box-shadow 0.2s;
3108    background: var(--cell-bg, #fafafa);
3109    color: var(--text-primary, #333);
3110}
3111
3112.panel-search-input:focus {
3113    border-color: var(--text-bright, #00cc07);
3114    box-shadow: 0 0 0 2px var(--shadow-color, rgba(0, 204, 7, 0.1));
3115    background: var(--background-site, white);
3116}
3117
3118.panel-search-input::placeholder {
3119    color: var(--text-dim, #999);
3120}
3121
3122.panel-search-clear {
3123    position: absolute;
3124    right: 28px;
3125    top: 50%;
3126    transform: translateY(-50%);
3127    background: none;
3128    border: none;
3129    color: var(--text-dim, #999);
3130    cursor: pointer;
3131    padding: 3px;
3132    font-size: 13px;
3133    line-height: 1;
3134    transition: color 0.2s;
3135}
3136
3137.panel-search-clear:hover {
3138    color: var(--text-primary, #333);
3139}
3140
3141.panel-search-mode {
3142    background: var(--cell-bg, #f0f0f0);
3143    border: 1px solid var(--border-color, #d0d0d0);
3144    border-left: none;
3145    border-radius: 0 4px 4px 0;
3146    padding: 0 6px;
3147    cursor: pointer;
3148    font-size: 11px;
3149    transition: all 0.2s;
3150    color: var(--text-dim, #666);
3151    display: flex;
3152    align-items: center;
3153}
3154
3155.panel-search-mode:hover {
3156    background: var(--cell-today-bg, #e8f5e9);
3157    color: var(--text-bright, #00cc07);
3158}
3159
3160.panel-search-mode.all-dates {
3161    background: var(--text-bright, #00cc07);
3162    color: var(--background-site, white);
3163    border-color: var(--text-bright, #00cc07);
3164}
3165
3166.panel-search-mode.all-dates:hover {
3167    filter: brightness(1.1);
3168}
3169
3170.panel-add-btn {
3171    background: var(--text-bright, #00cc07);
3172    border: 1px solid var(--border-main, #00a806);
3173    color: var(--background-site, white);
3174    padding: 5px 13px;
3175    border-radius: 4px;
3176    cursor: pointer;
3177    font-size: 11px;
3178    font-weight: 600;
3179    transition: all 0.2s;
3180    white-space: nowrap;
3181    flex-shrink: 0;
3182}
3183
3184.panel-add-btn:hover {
3185    filter: brightness(1.3);
3186    transform: translateY(-1px);
3187    box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2));
3188}
3189
3190.panel-standalone-header {
3191    display: flex;
3192    align-items: center;
3193    gap: 8px;
3194    padding: 12px 12px;
3195    background: var(--cell-bg, #fafafa);
3196    border-bottom: 1px solid var(--border-color, #e0e0e0);
3197    flex-shrink: 0;
3198}
3199
3200.panel-header-content {
3201    flex: 1;
3202    display: flex;
3203    flex-direction: column;
3204    align-items: center;
3205    gap: 4px;
3206}
3207
3208.panel-standalone-header h3 {
3209    margin: 0;
3210    font-size: 12px;
3211    font-weight: 600;
3212    color: var(--text-primary, #2c3e50);
3213    white-space: nowrap;
3214}
3215
3216.panel-standalone-header .calendar-month-picker {
3217    cursor: pointer;
3218    user-select: none;
3219    transition: all 0.15s;
3220    padding: 4px 8px;
3221    border-radius: 4px;
3222    white-space: nowrap;
3223}
3224
3225.panel-standalone-header .calendar-month-picker:hover {
3226    background: var(--cell-today-bg, #e8e8e8);
3227    color: var(--text-bright, #008800);
3228}
3229
3230.panel-standalone-header .namespace-badge {
3231    font-size: 11px;
3232    font-weight: 500;
3233    color: var(--text-bright, #388e3c);
3234    background: var(--cell-today-bg, #e8f5e9);
3235    padding: 2px 8px;
3236    border-radius: 3px;
3237    text-decoration: none;
3238    transition: all 0.15s;
3239    display: inline-block;
3240}
3241
3242.panel-standalone-header .namespace-badge:hover {
3243    background: var(--cell-bg, #c8e6c9);
3244    color: var(--text-primary, #2e7d32);
3245}
3246
3247.panel-standalone-actions {
3248    padding: 10px 16px;
3249    background: var(--background-site, #ffffff);
3250    border-bottom: 1px solid var(--border-color, #e0e0e0);
3251    flex-shrink: 0;
3252    display: flex;
3253    align-items: center;
3254    gap: 8px;
3255}
3256
3257.panel-standalone-actions .add-event-compact {
3258    flex-shrink: 0;
3259}
3260
3261.eventlist-day-group {
3262    margin-bottom: 24px;
3263}
3264
3265.eventlist-date {
3266    margin: 0 0 12px 0;
3267    font-size: 14px;
3268    font-weight: 600;
3269    color: var(--text-primary, #2c3e50);
3270    background: var(--cell-bg, #f8f8f8);
3271    padding: 8px 12px;
3272    border-left: 4px solid var(--border-main, #008800);
3273}
3274
3275.eventlist-item {
3276    display: flex;
3277    margin-bottom: 10px;
3278    background: white;
3279    border: 1px solid var(--border-color, #e0e0e0);
3280    border-radius: 4px;
3281    overflow: hidden;
3282}
3283
3284.eventlist-content {
3285    flex: 1;
3286    padding: 12px;
3287    display: flex;
3288    align-items: center;
3289    gap: 12px;
3290}
3291
3292.eventlist-time {
3293    font-size: 12px;
3294    font-weight: 600;
3295    color: var(--text-bright, #008800);
3296    min-width: 50px;
3297}
3298
3299.eventlist-title {
3300    font-size: 14px;
3301    font-weight: 500;
3302    color: var(--text-primary, #2c3e50);
3303}
3304
3305.eventlist-desc {
3306    font-size: 12px;
3307    color: var(--text-dim, #666);
3308    margin-top: 6px;
3309    line-height: 1.4;
3310}
3311
3312/* ===================================
3313   MOBILE RESPONSIVE - EVENTLIST & EVENTPANEL
3314   =================================== */
3315
3316/* Tablet and below (768px) */
3317@media (max-width: 768px) {
3318    /* Event Panel Standalone */
3319    .event-panel-standalone {
3320        width: 100%;
3321        max-width: 100%;
3322        border-radius: 0;
3323        max-height: none;
3324        min-height: 400px;
3325    }
3326
3327    /* Compact Event List Widget */
3328    .eventlist-compact-widget {
3329        width: 100% !important;
3330        max-width: 100%;
3331        border-radius: 0;
3332    }
3333
3334    .eventlist-widget-header h4 {
3335        font-size: 14px;
3336    }
3337
3338    .eventlist-widget-title {
3339        font-size: 13px;
3340    }
3341
3342    .eventlist-widget-time {
3343        font-size: 12px;
3344    }
3345
3346    /* Standalone event list (old style) */
3347    .eventlist-standalone {
3348        max-width: 100%;
3349        margin: 10px;
3350        padding: 15px;
3351        border-radius: 0;
3352    }
3353
3354    .eventlist-standalone h3 {
3355        font-size: 16px;
3356    }
3357}
3358
3359/* Mobile (480px and below) */
3360@media (max-width: 480px) {
3361    /* Event Panel Standalone */
3362    .event-panel-standalone {
3363        font-size: 12px;
3364        min-height: 300px;
3365    }
3366
3367    .panel-standalone-header {
3368        padding: 10px 12px;
3369    }
3370
3371    .panel-standalone-header h3 {
3372        font-size: 12px;
3373    }
3374
3375    .panel-standalone-actions {
3376        padding: 8px 12px;
3377    }
3378
3379    .event-panel-standalone .event-list-compact {
3380        padding: 8px;
3381    }
3382
3383    /* Compact Event List Widget */
3384    .eventlist-compact-widget {
3385        min-width: 280px;
3386    }
3387
3388    .eventlist-widget-header {
3389        padding: 6px 10px;
3390    }
3391
3392    .eventlist-widget-header h4 {
3393        font-size: 13px;
3394    }
3395
3396    .eventlist-widget-content {
3397        padding: 6px;
3398    }
3399
3400    .eventlist-widget-item {
3401        padding: 5px 6px;
3402        margin-bottom: 5px;
3403    }
3404
3405    .eventlist-widget-title {
3406        font-size: 12px;
3407    }
3408
3409    .eventlist-widget-time {
3410        font-size: 11px;
3411    }
3412
3413    .eventlist-widget-desc {
3414        font-size: 11px;
3415    }
3416
3417    /* Standalone event list */
3418    .eventlist-standalone {
3419        margin: 5px;
3420        padding: 10px;
3421    }
3422
3423    .eventlist-standalone h3 {
3424        font-size: 14px;
3425        margin-bottom: 15px;
3426    }
3427
3428    .eventlist-day-group {
3429        margin-bottom: 18px;
3430    }
3431
3432    .eventlist-date {
3433        font-size: 13px;
3434        padding: 6px 10px;
3435    }
3436
3437    .eventlist-title {
3438        font-size: 13px;
3439    }
3440
3441    .eventlist-time {
3442        font-size: 11px;
3443    }
3444
3445    .eventlist-desc {
3446        font-size: 11px;
3447    }
3448}
3449
3450/* Very small mobile (320px) */
3451@media (max-width: 320px) {
3452    .eventlist-compact-widget {
3453        min-width: 100%;
3454    }
3455
3456    .event-panel-standalone {
3457        min-height: 250px;
3458    }
3459
3460    .eventlist-widget-header h4 {
3461        font-size: 12px;
3462    }
3463
3464    .eventlist-widget-title {
3465        font-size: 11px;
3466    }
3467
3468    .panel-standalone-header h3 {
3469        font-size: 12px;
3470    }
3471}
3472
3473/* Past Events Collapsible Section */
3474.past-events-section {
3475    margin-bottom: 10px;
3476    border-bottom: 1px solid var(--border-color, #e0e0e0);
3477}
3478
3479.past-events-toggle {
3480    padding: 6px 10px;
3481    background: var(--cell-bg);
3482    color: var(--text-dim);
3483    cursor: pointer;
3484    user-select: none;
3485    font-size: 11px;
3486    font-weight: 600;
3487    display: flex;
3488    align-items: center;
3489    border-radius: 3px;
3490    transition: background 0.2s;
3491}
3492
3493.past-events-toggle:hover {
3494    background: var(--background-alt);
3495}
3496
3497.past-events-arrow {
3498    font-size: 9px;
3499    margin-right: 5px;
3500    transition: transform 0.2s;
3501    display: inline-block;
3502    width: 10px;
3503    color: var(--text-dim);
3504}
3505
3506.past-events-label {
3507    color: var(--text-dim);
3508}
3509
3510.past-events-content {
3511    margin-top: 5px;
3512}
3513
3514/* Namespace Search Dropdown */
3515.namespace-search-wrapper {
3516    position: relative;
3517}
3518
3519.namespace-search-input {
3520    width: 100%;
3521}
3522
3523.namespace-dropdown {
3524    position: absolute;
3525    top: 100%;
3526    left: 0;
3527    right: 0;
3528    max-height: 200px;
3529    overflow-y: auto;
3530    background: white;
3531    border: 1px solid var(--border-color, #ddd);
3532    border-top: none;
3533    border-radius: 0 0 4px 4px;
3534    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
3535    z-index: 1000;
3536    margin-top: -1px;
3537}
3538
3539.namespace-option {
3540    padding: 8px 12px;
3541    cursor: pointer;
3542    font-size: 12px;
3543    border-bottom: 1px solid var(--border-color, #f0f0f0);
3544    transition: background-color 0.15s;
3545}
3546
3547.namespace-option:hover {
3548    background-color: var(--cell-bg, #f5f5f5);
3549}
3550
3551.namespace-option.selected {
3552    background-color: var(--cell-today-bg, #e3f2fd);
3553    color: var(--text-bright, #1976d2);
3554}
3555
3556.namespace-option:last-child {
3557    border-bottom: none;
3558}
3559
3560/* Matrix-themed Sidebar Widget */
3561.sidebar-matrix {
3562    font-family: system-ui, sans-serif !important;
3563    background: linear-gradient(180deg, #242424 0%, #2a2a2a 100%) !important;
3564    border: 2px solid #00cc07 !important;
3565    box-shadow: 0 0 15px rgba(0, 204, 7, 0.4), inset 0 0 20px rgba(0, 204, 7, 0.05) !important;
3566}
3567
3568.sidebar-matrix-header {
3569    background: linear-gradient(180deg, #2a2a2a 0%, #242424 100%) !important;
3570    border-bottom: 2px solid #00cc07 !important;
3571    box-shadow: 0 2px 8px rgba(0, 204, 7, 0.3) !important;
3572}
3573
3574.sidebar-matrix-clock {
3575    animation: matrix-pulse 2s ease-in-out infinite;
3576}
3577
3578.sidebar-matrix-date {
3579    opacity: 0.9;
3580}
3581
3582@keyframes matrix-pulse {
3583    0%, 100% {
3584        text-shadow: 0 0 2px rgba(0, 204, 7, 0.4);
3585    }
3586    50% {
3587        text-shadow: 0 0 4px rgba(0, 255, 0, 0.5), 0 0 6px rgba(0, 204, 7, 0.3);
3588    }
3589}
3590
3591/* Matrix glow effect for sidebar */
3592.sidebar-widget.sidebar-matrix::before {
3593    content: '';
3594    position: absolute;
3595    top: -2px;
3596    left: -2px;
3597    right: -2px;
3598    bottom: -2px;
3599    background: linear-gradient(45deg, #00cc07, #00ff00, #00cc07);
3600    border-radius: 4px;
3601    opacity: 0;
3602    z-index: -1;
3603    animation: matrix-border-glow 3s ease-in-out infinite;
3604}
3605
3606@keyframes matrix-border-glow {
3607    0%, 100% {
3608        opacity: 0;
3609    }
3610    50% {
3611        opacity: 0.3;
3612    }
3613}
3614
3615/* Scrollbar styling for matrix theme */
3616.sidebar-matrix ::-webkit-scrollbar {
3617    width: 6px;
3618}
3619
3620.sidebar-matrix ::-webkit-scrollbar-track {
3621    background: #242424;
3622}
3623
3624.sidebar-matrix ::-webkit-scrollbar-thumb {
3625    background: #00cc07;
3626    border-radius: 3px;
3627    box-shadow: 0 0 5px rgba(0, 204, 7, 0.5);
3628}
3629
3630.sidebar-matrix ::-webkit-scrollbar-thumb:hover {
3631    background: #00ff00;
3632    box-shadow: 0 0 8px rgba(0, 255, 0, 0.8);
3633}
3634
3635/* ====================================
3636   PINK BLING THEME - SPECIAL EFFECTS
3637   ==================================== */
3638
3639/* Shimmer animation for today's cell - BARELY NOTICEABLE */
3640@keyframes pink-shimmer {
3641    0% {
3642        box-shadow: 0 0 2px rgba(255, 20, 147, 0.15),
3643                    0 0 3px rgba(255, 20, 147, 0.08);
3644    }
3645    50% {
3646        box-shadow: 0 0 4px rgba(255, 20, 147, 0.25),
3647                    0 0 6px rgba(255, 20, 147, 0.12);
3648    }
3649    100% {
3650        box-shadow: 0 0 2px rgba(255, 20, 147, 0.15),
3651                    0 0 3px rgba(255, 20, 147, 0.08);
3652    }
3653}
3654
3655/* Sparkle animation for today's day number - BARELY NOTICEABLE */
3656@keyframes pink-sparkle {
3657    0%, 100% {
3658        text-shadow: 0 0 2px rgba(255, 20, 147, 0.3);
3659        transform: scale(1);
3660    }
3661    50% {
3662        text-shadow: 0 0 3px rgba(255, 20, 147, 0.5);
3663        transform: scale(1.01);
3664    }
3665}
3666
3667/* Glow pulse for event bars - BARELY NOTICEABLE */
3668@keyframes pink-glow-pulse {
3669    0%, 100% {
3670        box-shadow: 0 0 1px currentColor;
3671    }
3672    50% {
3673        box-shadow: 0 0 2px currentColor,
3674                    0 0 3px rgba(255, 105, 180, 0.15);
3675    }
3676}
3677
3678/* Gradient shimmer for headers */
3679@keyframes pink-gradient-shimmer {
3680    0% {
3681        background-position: 0% 50%;
3682    }
3683    50% {
3684        background-position: 100% 50%;
3685    }
3686    100% {
3687        background-position: 0% 50%;
3688    }
3689}
3690
3691/* Pink particle explosion on click */
3692@keyframes particle-explode {
3693    0% {
3694        opacity: 1;
3695        transform: translate(0, 0) scale(1);
3696    }
3697    100% {
3698        opacity: 0;
3699        transform: translate(var(--tx), var(--ty)) scale(0);
3700    }
3701}
3702
3703/* Cursor trail glow */
3704@keyframes cursor-trail-fade {
3705    0% {
3706        opacity: 1;
3707        transform: scale(1);
3708    }
3709    100% {
3710        opacity: 0;
3711        transform: scale(0.5);
3712    }
3713}
3714
3715/* Pink particle styles */
3716.pink-particle {
3717    position: fixed;  /* Changed to fixed so it works anywhere on screen */
3718    width: 6px;
3719    height: 6px;
3720    background: radial-gradient(circle, #ff1493, #ff69b4);
3721    border-radius: 50%;
3722    pointer-events: none;
3723    z-index: 9999999;  /* Above everything including dialogs */
3724    box-shadow: 0 0 8px #ff1493,
3725                0 0 15px #ff69b4;
3726}
3727
3728/* Cursor trail glow */
3729.pink-cursor-trail {
3730    position: fixed;  /* Changed to fixed so it works anywhere on screen */
3731    width: 8px;
3732    height: 8px;
3733    background: radial-gradient(circle, rgba(255, 20, 147, 0.8), rgba(255, 105, 180, 0.4));
3734    border-radius: 50%;
3735    pointer-events: none;
3736    z-index: 9999998;  /* Just below particles */
3737    box-shadow: 0 0 10px rgba(255, 20, 147, 0.6),
3738                0 0 20px rgba(255, 105, 180, 0.3);
3739}
3740
3741/* Tiny neon pixel sparkles */
3742.pink-pixel-sparkle {
3743    position: fixed;
3744    width: 2px;
3745    height: 2px;
3746    background: var(--background-site, #fff);
3747    border-radius: 50%;
3748    pointer-events: none;
3749    z-index: 9999997;  /* Just below trail */
3750    box-shadow: 0 0 2px #ff1493,
3751                0 0 4px #ff69b4,
3752                0 0 6px #fff;
3753}
3754
3755/* Pixel sparkle twinkle animation */
3756@keyframes pixel-twinkle {
3757    0%, 100% {
3758        opacity: 0;
3759        transform: scale(0);
3760    }
3761    50% {
3762        opacity: 1;
3763        transform: scale(1.5);
3764    }
3765}
3766
3767/* Pixel sparkle float away */
3768@keyframes pixel-float-away {
3769    0% {
3770        opacity: 1;
3771        transform: translateY(0) scale(1);
3772    }
3773    100% {
3774        opacity: 0;
3775        transform: translateY(-30px) scale(0);
3776    }
3777}
3778
3779/* Pink theme specific styles - TONED DOWN */
3780.calendar-theme-pink .cal-today {
3781    animation: pink-shimmer 2s ease-in-out infinite;
3782    border: 2px solid #ff1493 !important;
3783    position: relative;
3784    overflow: visible;
3785}
3786
3787.calendar-theme-pink .cal-today .day-num,
3788.calendar-theme-pink .day-num-today {
3789    background: transparent !important;
3790    color: #fff !important;
3791    position: relative;
3792    z-index: 1;
3793    font-weight: 700;
3794    filter: none;
3795    width: 22px;
3796    height: 22px;
3797    line-height: 22px;
3798    text-align: center;
3799    font-size: 10px;
3800    padding: 0;
3801    display: inline-flex;
3802    align-items: center;
3803    justify-content: center;
3804    overflow: visible;
3805}
3806
3807/* Heart shape behind the day number */
3808.calendar-theme-pink .cal-today .day-num::before,
3809.calendar-theme-pink .day-num-today::before {
3810    content: '♥';
3811    position: absolute;
3812    top: 50%;
3813    left: 50%;
3814    transform: translate(-50%, -48%);
3815    font-size: 26px;
3816    color: #ff1493;
3817    z-index: -1;
3818    text-shadow: 0 0 8px rgba(255, 20, 147, 0.7),
3819                 0 0 16px rgba(255, 20, 147, 0.4),
3820                 0 0 24px rgba(255, 105, 180, 0.2);
3821    animation: pink-heart-beat 1.2s ease-in-out infinite;
3822    line-height: 1;
3823}
3824
3825/* Heart beat animation */
3826@keyframes pink-heart-beat {
3827    0%, 100% {
3828        transform: translate(-50%, -48%) scale(1);
3829        text-shadow: 0 0 8px rgba(255, 20, 147, 0.7),
3830                     0 0 16px rgba(255, 20, 147, 0.4);
3831    }
3832    15% {
3833        transform: translate(-50%, -48%) scale(1.15);
3834        text-shadow: 0 0 12px rgba(255, 20, 147, 0.9),
3835                     0 0 24px rgba(255, 20, 147, 0.5),
3836                     0 0 36px rgba(255, 105, 180, 0.3);
3837    }
3838    30% {
3839        transform: translate(-50%, -48%) scale(0.95);
3840    }
3841    45% {
3842        transform: translate(-50%, -48%) scale(1.1);
3843        text-shadow: 0 0 10px rgba(255, 20, 147, 0.8),
3844                     0 0 20px rgba(255, 20, 147, 0.4);
3845    }
3846    60% {
3847        transform: translate(-50%, -48%) scale(1);
3848    }
3849}
3850
3851.calendar-theme-pink .event-bar {
3852    animation: pink-glow-pulse 2s ease-in-out infinite;
3853}
3854
3855.calendar-theme-pink .calendar-compact-header {
3856    background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24, #1a0d14);
3857    background-size: 300% 300%;
3858    animation: pink-gradient-shimmer 3s ease infinite;
3859}
3860
3861.calendar-theme-pink .event-list-header {
3862    background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24);
3863    background-size: 300% 300%;
3864    animation: pink-gradient-shimmer 3s ease infinite;
3865}
3866
3867/* Subtle hover glow - BARELY NOTICEABLE */
3868.calendar-theme-pink .cal-today:hover {
3869    box-shadow: 0 0 5px rgba(255, 20, 147, 0.25),
3870                0 0 8px rgba(255, 20, 147, 0.12) !important;
3871}
3872
3873/* Pink theme event items get subtle glow */
3874.calendar-theme-pink .event-compact-item {
3875    box-shadow: 0 0 1px rgba(255, 20, 147, 0.08);
3876    transition: all 0.3s ease;
3877}
3878
3879.calendar-theme-pink .event-compact-item:hover {
3880    box-shadow: 0 0 3px rgba(255, 20, 147, 0.15);
3881    transform: translateX(2px);
3882}
3883
3884/* Calendar borders get subtle glow */
3885.calendar-theme-pink.calendar-compact-container {
3886    box-shadow: 0 0 5px rgba(255, 20, 147, 0.12),
3887                0 2px 4px rgba(0,0,0,0.06);
3888    position: relative;
3889}
3890
3891/* Today badge extra sparkle */
3892.calendar-theme-pink .event-today-badge {
3893    animation: pink-sparkle 1.5s ease-in-out infinite;
3894}
3895
3896/* Consistent subtle text glow for dark themes - main calendar event list */
3897.calendar-theme-matrix .event-title-compact,
3898.calendar-theme-matrix .event-meta-compact,
3899.calendar-theme-matrix .event-desc-compact {
3900    text-shadow: 0 0 1px var(--text-primary, #00cc07);
3901}
3902
3903.calendar-theme-purple .event-title-compact,
3904.calendar-theme-purple .event-meta-compact,
3905.calendar-theme-purple .event-desc-compact {
3906    text-shadow: 0 0 1px var(--text-primary, #b19cd9);
3907}
3908
3909.calendar-theme-pink .event-title-compact,
3910.calendar-theme-pink .event-meta-compact,
3911.calendar-theme-pink .event-desc-compact {
3912    text-shadow: 0 0 2px var(--text-primary, #ff69b4);
3913}
3914
3915/* Dark theme link glow */
3916.calendar-theme-matrix .event-desc-compact a,
3917.calendar-theme-matrix .cal-link {
3918    text-shadow: 0 0 1px var(--text-bright, #00ff00);
3919}
3920
3921.calendar-theme-purple .event-desc-compact a,
3922.calendar-theme-purple .cal-link {
3923    text-shadow: 0 0 1px var(--text-bright, #d4a5ff);
3924}
3925
3926.calendar-theme-pink .event-desc-compact a,
3927.calendar-theme-pink .cal-link {
3928    text-shadow: 0 0 2px var(--text-bright, #ff1493);
3929}
3930
3931/* Dark theme event panel text glow */
3932.event-panel-standalone[data-theme="matrix"] .event-title-compact,
3933.event-panel-standalone[data-theme="matrix"] .event-meta-compact,
3934.event-panel-standalone[data-theme="matrix"] .event-desc-compact {
3935    text-shadow: 0 0 1px var(--text-primary, #00cc07);
3936}
3937
3938.event-panel-standalone[data-theme="purple"] .event-title-compact,
3939.event-panel-standalone[data-theme="purple"] .event-meta-compact,
3940.event-panel-standalone[data-theme="purple"] .event-desc-compact {
3941    text-shadow: 0 0 1px var(--text-primary, #b19cd9);
3942}
3943
3944.event-panel-standalone[data-theme="pink"] .event-title-compact,
3945.event-panel-standalone[data-theme="pink"] .event-meta-compact,
3946.event-panel-standalone[data-theme="pink"] .event-desc-compact {
3947    text-shadow: 0 0 2px var(--text-primary, #ff69b4);
3948}
3949
3950/* Past due badge pulsing effect - SUBTLE */
3951@keyframes pink-pulse-urgent {
3952    0%, 100% {
3953        box-shadow: 0 0 3px rgba(255, 140, 0, 0.4);
3954    }
3955    50% {
3956        box-shadow: 0 0 8px rgba(255, 140, 0, 0.6);
3957    }
3958}
3959
3960.calendar-theme-pink .event-pastdue-badge {
3961    animation: pink-pulse-urgent 1s ease-in-out infinite;
3962}
3963
3964/* ========================================
3965   MATRIX THEME: CHECKBOX GLOW
3966   ======================================== */
3967.calendar-theme-matrix .task-checkbox,
3968.sidebar-matrix .task-checkbox {
3969    border: 2px solid #00ff00;
3970    background: rgba(0, 204, 7, 0.08);
3971    box-shadow: 0 0 6px rgba(0, 255, 0, 0.3), inset 0 0 4px rgba(0, 204, 7, 0.1);
3972}
3973
3974.calendar-theme-matrix .task-checkbox:hover,
3975.sidebar-matrix .task-checkbox:hover {
3976    border-color: #00ff00;
3977    box-shadow: 0 0 10px rgba(0, 255, 0, 0.5), inset 0 0 6px rgba(0, 204, 7, 0.2);
3978}
3979
3980.calendar-theme-matrix .task-checkbox:checked,
3981.sidebar-matrix .task-checkbox:checked {
3982    background: #00cc07;
3983    border-color: #00ff00;
3984    box-shadow: 0 0 8px rgba(0, 255, 0, 0.6);
3985}
3986
3987/* ========================================
3988   PURPLE THEME: CHECKBOX GLOW
3989   ======================================== */
3990.calendar-theme-purple .task-checkbox,
3991.sidebar-purple .task-checkbox {
3992    border: 2px solid #d4a5ff;
3993    background: rgba(155, 89, 182, 0.08);
3994    box-shadow: 0 0 6px rgba(212, 165, 255, 0.3), inset 0 0 4px rgba(155, 89, 182, 0.1);
3995}
3996
3997.calendar-theme-purple .task-checkbox:hover,
3998.sidebar-purple .task-checkbox:hover {
3999    border-color: #d4a5ff;
4000    box-shadow: 0 0 10px rgba(212, 165, 255, 0.5), inset 0 0 6px rgba(155, 89, 182, 0.2);
4001}
4002
4003.calendar-theme-purple .task-checkbox:checked,
4004.sidebar-purple .task-checkbox:checked {
4005    background: #9b59b6;
4006    border-color: #d4a5ff;
4007    box-shadow: 0 0 8px rgba(212, 165, 255, 0.6);
4008}
4009
4010/* ========================================
4011   PINK THEME: CHECKBOX GLOW
4012   ======================================== */
4013.calendar-theme-pink .task-checkbox,
4014.sidebar-pink .task-checkbox {
4015    border: 2px solid #ff1493;
4016    background: rgba(255, 20, 147, 0.08);
4017    box-shadow: 0 0 6px rgba(255, 20, 147, 0.35), inset 0 0 4px rgba(255, 20, 147, 0.1);
4018}
4019
4020.calendar-theme-pink .task-checkbox:hover,
4021.sidebar-pink .task-checkbox:hover {
4022    border-color: #ff69b4;
4023    box-shadow: 0 0 10px rgba(255, 20, 147, 0.6), inset 0 0 6px rgba(255, 20, 147, 0.2);
4024}
4025
4026.calendar-theme-pink .task-checkbox:checked,
4027.sidebar-pink .task-checkbox:checked {
4028    background: #ff1493;
4029    border-color: #ff69b4;
4030    box-shadow: 0 0 8px rgba(255, 20, 147, 0.7);
4031}
4032
4033/* Pink checkbox in dialog forms */
4034.calendar-theme-pink .checkbox-label input[type="checkbox"],
4035.calendar-theme-pink .checkbox-label-compact input[type="checkbox"] {
4036    accent-color: #ff1493;
4037}
4038
4039/* Wiki theme checkboxes - use border color */
4040.calendar-theme-wiki .task-checkbox,
4041.sidebar-wiki .task-checkbox,
4042.eventlist-theme-wiki .task-checkbox {
4043    border: 2px solid var(--border-main, #ccc);
4044    accent-color: var(--border-main, #ccc);
4045}
4046
4047.calendar-theme-wiki .task-checkbox:hover,
4048.sidebar-wiki .task-checkbox:hover,
4049.eventlist-theme-wiki .task-checkbox:hover {
4050    border: 2px solid var(--border-main, #ccc);
4051    box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);
4052}
4053
4054.calendar-theme-wiki .task-checkbox:checked,
4055.sidebar-wiki .task-checkbox:checked,
4056.eventlist-theme-wiki .task-checkbox:checked {
4057    background: var(--border-main, #ccc);
4058    border: 2px solid var(--border-main, #ccc);
4059}
4060
4061/* Wiki theme buttons - use __link__ color */
4062.calendar-theme-wiki .cal-nav-btn,
4063.calendar-theme-wiki .cal-today-btn {
4064    background: var(--text-bright, #2b73b7);
4065    color: #fff;
4066}
4067
4068/* Wiki theme day headers - use __background_neu__ */
4069.calendar-theme-wiki .calendar-day-headers {
4070    background: var(--cell-today-bg, #eee);
4071}
4072
4073/* Wiki theme past events toggle - use __background_neu__ */
4074.calendar-theme-wiki .past-events-toggle {
4075    background: var(--cell-today-bg, #eee);
4076}
4077
4078.calendar-theme-wiki .calendar-day-headers span {
4079    color: var(--text-primary, #333);
4080}
4081
4082.sidebar-wiki .panel-nav-btn,
4083.sidebar-wiki .panel-today-btn {
4084    background: var(--text-bright, #2b73b7);
4085    color: #fff;
4086}
4087
4088.event-panel-standalone[data-theme="wiki"] .panel-nav-btn,
4089.event-panel-standalone[data-theme="wiki"] .panel-today-btn {
4090    background: var(--text-bright, #2b73b7);
4091    color: #fff;
4092}
4093
4094/* Wiki theme clock - no glow */
4095.sidebar-wiki .eventlist-today-clock,
4096.eventlist-theme-wiki .eventlist-today-clock {
4097    text-shadow: none;
4098}
4099
4100/* Wiki theme clock - no glow, slightly larger */
4101.sidebar-wiki .eventlist-today-clock,
4102.eventlist-theme-wiki .eventlist-today-clock {
4103    text-shadow: none;
4104    font-size: 20px;
4105}
4106
4107/* ========================================
4108   PINK THEME: BUTTON FIREWORK BURST HOVER
4109   ======================================== */
4110@keyframes pink-firework-burst {
4111    0% {
4112        box-shadow: 0 0 4px rgba(255, 20, 147, 0.4);
4113    }
4114    25% {
4115        box-shadow: 0 0 15px rgba(255, 20, 147, 0.8),
4116                    0 0 30px rgba(255, 105, 180, 0.4),
4117                    5px -5px 8px rgba(255, 20, 147, 0.6),
4118                    -5px -5px 8px rgba(255, 105, 180, 0.5),
4119                    5px 5px 8px rgba(255, 133, 193, 0.4),
4120                    -5px 5px 8px rgba(255, 20, 147, 0.5);
4121    }
4122    50% {
4123        box-shadow: 0 0 20px rgba(255, 20, 147, 0.9),
4124                    0 0 40px rgba(255, 105, 180, 0.5),
4125                    8px -8px 12px rgba(255, 20, 147, 0.5),
4126                    -8px -8px 12px rgba(255, 105, 180, 0.4),
4127                    8px 8px 12px rgba(255, 133, 193, 0.3),
4128                    -8px 8px 12px rgba(255, 20, 147, 0.4),
4129                    0 -10px 15px rgba(255, 20, 147, 0.3),
4130                    10px 0 15px rgba(255, 105, 180, 0.3);
4131    }
4132    75% {
4133        box-shadow: 0 0 12px rgba(255, 20, 147, 0.6),
4134                    0 0 25px rgba(255, 105, 180, 0.3),
4135                    12px -12px 8px rgba(255, 20, 147, 0.2),
4136                    -12px -12px 8px rgba(255, 105, 180, 0.15),
4137                    12px 12px 8px rgba(255, 133, 193, 0.1),
4138                    -12px 12px 8px rgba(255, 20, 147, 0.15);
4139    }
4140    100% {
4141        box-shadow: 0 0 6px rgba(255, 20, 147, 0.5),
4142                    0 0 15px rgba(255, 105, 180, 0.3);
4143    }
4144}
4145
4146/* Apply firework burst to all pink theme buttons on hover */
4147.calendar-theme-pink .cal-nav-btn:hover,
4148.calendar-theme-pink .cal-today-btn:hover,
4149.calendar-theme-pink .btn-save-sleek:hover,
4150.calendar-theme-pink .btn-cancel-sleek:hover,
4151.calendar-theme-pink .btn-add-event:hover,
4152.calendar-theme-pink .event-edit-btn:hover,
4153.calendar-theme-pink .event-delete-btn:hover,
4154.calendar-theme-pink .event-action-btn:hover {
4155    background: #ff1493 !important;
4156    color: #1a0d14 !important;
4157    border-color: #ff69b4 !important;
4158    animation: pink-firework-burst 0.6s ease-out forwards;
4159    transform: scale(1.1);
4160    filter: brightness(1.4);
4161}
4162
4163.calendar-theme-pink .cal-nav-btn:active,
4164.calendar-theme-pink .cal-today-btn:active,
4165.calendar-theme-pink .btn-save-sleek:active,
4166.calendar-theme-pink .btn-cancel-sleek:active,
4167.calendar-theme-pink .btn-add-event:active {
4168    transform: scale(0.92);
4169    filter: brightness(1.6);
4170    animation: none;
4171    box-shadow: 0 0 25px rgba(255, 20, 147, 1), 0 0 50px rgba(255, 105, 180, 0.6);
4172}
4173
4174/* Sidebar pink button firework */
4175.sidebar-pink .event-edit-btn:hover,
4176.sidebar-pink .event-delete-btn:hover {
4177    background: #ff1493 !important;
4178    color: #1a0d14 !important;
4179    animation: pink-firework-burst 0.6s ease-out forwards;
4180    transform: scale(1.1);
4181}
4182
4183/* Panel standalone pink buttons */
4184.event-panel-standalone[data-theme="pink"] .panel-nav-btn:hover,
4185.event-panel-standalone[data-theme="pink"] .panel-today-btn:hover,
4186.event-panel-standalone[data-theme="pink"] .panel-add-btn:hover {
4187    background: #ff1493 !important;
4188    color: #1a0d14 !important;
4189    animation: pink-firework-burst 0.6s ease-out forwards;
4190    transform: scale(1.1);
4191}
4192
4193/* ========================================
4194   TEXT COLOR PROTECTION
4195   Forces text to stay readable on dark themes
4196   when browser extensions modify page colors.
4197   Only uses color !important — no filter, no
4198   color-scheme, no variable resets.
4199   ======================================== */
4200
4201/* Matrix: green text on dark background */
4202.calendar-theme-matrix .event-title-compact,
4203.calendar-theme-matrix .event-list-header,
4204.calendar-theme-matrix .calendar-day-headers,
4205.sidebar-matrix .event-title-compact {
4206    color: var(--text-bright, #00ff00) !important;
4207    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4208}
4209
4210.calendar-theme-matrix .event-meta-compact,
4211.calendar-theme-matrix .event-desc-compact,
4212.calendar-theme-matrix .no-events-msg,
4213.sidebar-matrix .event-meta-compact,
4214.sidebar-matrix .event-desc-compact {
4215    color: var(--text-dim, #00aa00) !important;
4216    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
4217}
4218
4219.calendar-theme-matrix .day-num,
4220.calendar-theme-matrix .cal-nav-btn,
4221.calendar-theme-matrix .cal-today-btn,
4222.sidebar-matrix .eventlist-today-date {
4223    color: var(--text-primary, #00cc07) !important;
4224    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
4225}
4226
4227/* Purple: purple text on dark background */
4228.calendar-theme-purple .event-title-compact,
4229.calendar-theme-purple .event-list-header,
4230.calendar-theme-purple .calendar-day-headers,
4231.sidebar-purple .event-title-compact {
4232    color: var(--text-bright, #d4a5ff) !important;
4233    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4234}
4235
4236.calendar-theme-purple .event-meta-compact,
4237.calendar-theme-purple .event-desc-compact,
4238.calendar-theme-purple .no-events-msg,
4239.sidebar-purple .event-meta-compact,
4240.sidebar-purple .event-desc-compact {
4241    color: var(--text-dim, #8e7ab8) !important;
4242    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4243}
4244
4245.calendar-theme-purple .day-num,
4246.calendar-theme-purple .cal-nav-btn,
4247.calendar-theme-purple .cal-today-btn,
4248.sidebar-purple .eventlist-today-date {
4249    color: var(--text-primary, #b19cd9) !important;
4250    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4251}
4252
4253/* Pink: pink text on dark background */
4254.calendar-theme-pink .event-title-compact,
4255.calendar-theme-pink .event-list-header,
4256.calendar-theme-pink .calendar-day-headers,
4257.sidebar-pink .event-title-compact {
4258    color: var(--text-bright, #ff1493) !important;
4259    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4260}
4261
4262.calendar-theme-pink .event-meta-compact,
4263.calendar-theme-pink .event-desc-compact,
4264.calendar-theme-pink .no-events-msg,
4265.sidebar-pink .event-meta-compact,
4266.sidebar-pink .event-desc-compact {
4267    color: var(--text-dim, #ff85c1) !important;
4268    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4269}
4270
4271.calendar-theme-pink .day-num,
4272.calendar-theme-pink .cal-nav-btn,
4273.calendar-theme-pink .cal-today-btn,
4274.sidebar-pink .eventlist-today-date {
4275    color: var(--text-primary, #ff69b4) !important;
4276    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
4277}
4278
4279/* Badge text AND background protection - all dark themes */
4280.calendar-theme-matrix .event-today-badge,
4281.calendar-theme-matrix .event-pastdue-badge,
4282.calendar-theme-matrix .event-namespace-badge,
4283.calendar-theme-matrix .eventlist-simple-today-badge,
4284.calendar-theme-matrix .eventlist-simple-pastdue-badge,
4285.calendar-theme-matrix .panel-ns-badge,
4286.sidebar-matrix .event-today-badge,
4287.sidebar-matrix .event-pastdue-badge,
4288.sidebar-matrix .event-namespace-badge,
4289.calendar-theme-purple .event-today-badge,
4290.calendar-theme-purple .event-pastdue-badge,
4291.calendar-theme-purple .event-namespace-badge,
4292.calendar-theme-purple .eventlist-simple-today-badge,
4293.calendar-theme-purple .eventlist-simple-pastdue-badge,
4294.calendar-theme-purple .panel-ns-badge,
4295.sidebar-purple .event-today-badge,
4296.sidebar-purple .event-pastdue-badge,
4297.sidebar-purple .event-namespace-badge,
4298.calendar-theme-pink .event-today-badge,
4299.calendar-theme-pink .event-pastdue-badge,
4300.calendar-theme-pink .event-namespace-badge,
4301.calendar-theme-pink .eventlist-simple-today-badge,
4302.calendar-theme-pink .eventlist-simple-pastdue-badge,
4303.calendar-theme-pink .panel-ns-badge,
4304.sidebar-pink .event-today-badge,
4305.sidebar-pink .event-pastdue-badge,
4306.sidebar-pink .event-namespace-badge {
4307    color: var(--background-site, white) !important;
4308    -webkit-text-fill-color: var(--background-site, white) !important;
4309    background: var(--text-bright) !important;
4310}
4311
4312.calendar-theme-matrix .event-pastdue-badge,
4313.calendar-theme-purple .event-pastdue-badge,
4314.calendar-theme-pink .event-pastdue-badge,
4315.calendar-theme-matrix .eventlist-simple-pastdue-badge,
4316.calendar-theme-purple .eventlist-simple-pastdue-badge,
4317.calendar-theme-pink .eventlist-simple-pastdue-badge,
4318.sidebar-matrix .event-pastdue-badge,
4319.sidebar-purple .event-pastdue-badge,
4320.sidebar-pink .event-pastdue-badge {
4321    background: var(--pastdue-color, #e74c3c) !important;
4322}
4323
4324/* Purple: sidebar section event text and section headers */
4325.sidebar-purple .event-title-compact,
4326.sidebar-purple .event-meta-compact,
4327.sidebar-purple .event-desc-compact {
4328    color: var(--text-primary, #b19cd9) !important;
4329    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4330}
4331
4332.sidebar-purple .eventlist-today-clock {
4333    color: var(--text-bright, #d4a5ff) !important;
4334    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4335}
4336
4337.sidebar-purple .eventlist-today-date {
4338    color: var(--text-dim, #8e7ab8) !important;
4339    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4340}
4341
4342/* Pink: sidebar section event text */
4343.sidebar-pink .event-title-compact {
4344    color: var(--text-bright, #ff1493) !important;
4345    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4346}
4347
4348.sidebar-pink .eventlist-today-clock {
4349    color: var(--text-bright, #ff1493) !important;
4350    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4351}
4352
4353.sidebar-pink .eventlist-today-date {
4354    color: var(--text-dim, #ff85c1) !important;
4355    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4356}
4357
4358/* ========================================
4359   EVENTLIST THEMING
4360   Applies theme colors to {{eventlist}} output
4361   ======================================== */
4362
4363/* Matrix eventlist */
4364.eventlist-theme-matrix .eventlist-simple-title {
4365    color: var(--text-bright, #00ff00) !important;
4366    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4367}
4368
4369.eventlist-theme-matrix .eventlist-simple-header {
4370    color: var(--text-primary, #00cc07) !important;
4371    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
4372    background: var(--cell-bg, #242424) !important;
4373}
4374
4375.eventlist-theme-matrix .eventlist-simple-time,
4376.eventlist-theme-matrix .eventlist-simple-date,
4377.eventlist-theme-matrix .eventlist-simple-body {
4378    color: var(--text-dim, #00aa00) !important;
4379    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
4380    background: var(--background-site, #242424) !important;
4381}
4382
4383.eventlist-theme-matrix .eventlist-simple-body a {
4384    color: var(--text-bright, #00ff00) !important;
4385    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4386}
4387
4388.eventlist-theme-matrix .eventlist-simple-body strong {
4389    color: var(--text-primary, #00cc07) !important;
4390    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
4391}
4392
4393.eventlist-theme-matrix .eventlist-simple-body code {
4394    background: var(--cell-bg, #1a3d1a) !important;
4395    color: var(--text-primary, #00cc07) !important;
4396    -webkit-text-fill-color: var(--text-primary, #00cc07) !important;
4397}
4398
4399.eventlist-theme-matrix .eventlist-simple-namespace {
4400    background: var(--cell-today-bg, #2a4d2a) !important;
4401    color: var(--text-bright, #00ff00) !important;
4402    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4403}
4404
4405.eventlist-theme-matrix .eventlist-simple-empty,
4406.eventlist-theme-matrix .eventlist-simple-empty .eventlist-simple-body {
4407    color: var(--text-dim, #00aa00) !important;
4408    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
4409}
4410
4411.eventlist-theme-matrix .eventlist-simple-item {
4412    border-bottom-color: var(--border-color, #00cc07) !important;
4413}
4414
4415.eventlist-theme-matrix .eventlist-today-header {
4416    background: var(--cell-bg, #242424) !important;
4417    color: var(--text-bright, #00ff00) !important;
4418    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4419    border-color: var(--text-bright, #00ff00) !important;
4420}
4421
4422.eventlist-theme-matrix .eventlist-today-clock {
4423    color: var(--text-bright, #00ff00) !important;
4424    -webkit-text-fill-color: var(--text-bright, #00ff00) !important;
4425}
4426
4427.eventlist-theme-matrix .eventlist-today-date {
4428    color: var(--text-dim, #00aa00) !important;
4429    -webkit-text-fill-color: var(--text-dim, #00aa00) !important;
4430}
4431
4432/* Purple eventlist */
4433.eventlist-theme-purple .eventlist-simple-title {
4434    color: var(--text-bright, #d4a5ff) !important;
4435    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4436}
4437
4438.eventlist-theme-purple .eventlist-simple-header {
4439    color: var(--text-primary, #b19cd9) !important;
4440    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4441    background: var(--cell-bg, #2a2030) !important;
4442}
4443
4444.eventlist-theme-purple .eventlist-simple-time,
4445.eventlist-theme-purple .eventlist-simple-date,
4446.eventlist-theme-purple .eventlist-simple-body {
4447    color: var(--text-dim, #8e7ab8) !important;
4448    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4449    background: var(--background-site, #2a2030) !important;
4450}
4451
4452.eventlist-theme-purple .eventlist-simple-body a {
4453    color: var(--text-bright, #d4a5ff) !important;
4454    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4455}
4456
4457.eventlist-theme-purple .eventlist-simple-body strong {
4458    color: var(--text-primary, #b19cd9) !important;
4459    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4460}
4461
4462.eventlist-theme-purple .eventlist-simple-body code {
4463    background: var(--cell-bg, #3d2b4d) !important;
4464    color: var(--text-primary, #b19cd9) !important;
4465    -webkit-text-fill-color: var(--text-primary, #b19cd9) !important;
4466}
4467
4468.eventlist-theme-purple .eventlist-simple-namespace {
4469    background: var(--cell-today-bg, #3d2b4d) !important;
4470    color: var(--text-bright, #d4a5ff) !important;
4471    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4472}
4473
4474.eventlist-theme-purple .eventlist-simple-empty,
4475.eventlist-theme-purple .eventlist-simple-empty .eventlist-simple-body {
4476    color: var(--text-dim, #8e7ab8) !important;
4477    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4478}
4479
4480.eventlist-theme-purple .eventlist-simple-item {
4481    border-bottom-color: var(--border-color, #9b59b6) !important;
4482}
4483
4484.eventlist-theme-purple .eventlist-today-header {
4485    background: var(--cell-bg, #2a2030) !important;
4486    color: var(--text-bright, #d4a5ff) !important;
4487    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4488    border-color: var(--text-bright, #d4a5ff) !important;
4489}
4490
4491.eventlist-theme-purple .eventlist-today-clock {
4492    color: var(--text-bright, #d4a5ff) !important;
4493    -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important;
4494}
4495
4496.eventlist-theme-purple .eventlist-today-date {
4497    color: var(--text-dim, #8e7ab8) !important;
4498    -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important;
4499}
4500
4501/* Pink eventlist */
4502.eventlist-theme-pink .eventlist-simple-title {
4503    color: var(--text-bright, #ff1493) !important;
4504    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4505}
4506
4507.eventlist-theme-pink .eventlist-simple-header {
4508    color: var(--text-primary, #ff69b4) !important;
4509    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
4510    background: var(--cell-bg, #1a0d14) !important;
4511}
4512
4513.eventlist-theme-pink .eventlist-simple-time,
4514.eventlist-theme-pink .eventlist-simple-date,
4515.eventlist-theme-pink .eventlist-simple-body {
4516    color: var(--text-dim, #ff85c1) !important;
4517    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4518    background: var(--background-site, #1a0d14) !important;
4519}
4520
4521.eventlist-theme-pink .eventlist-simple-body a {
4522    color: var(--text-bright, #ff1493) !important;
4523    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4524}
4525
4526.eventlist-theme-pink .eventlist-simple-body strong {
4527    color: var(--text-primary, #ff69b4) !important;
4528    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
4529}
4530
4531.eventlist-theme-pink .eventlist-simple-body code {
4532    background: var(--cell-bg, #2d1020) !important;
4533    color: var(--text-primary, #ff69b4) !important;
4534    -webkit-text-fill-color: var(--text-primary, #ff69b4) !important;
4535}
4536
4537.eventlist-theme-pink .eventlist-simple-namespace {
4538    background: var(--cell-today-bg, #2d1020) !important;
4539    color: var(--text-bright, #ff1493) !important;
4540    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4541}
4542
4543.eventlist-theme-pink .eventlist-simple-empty,
4544.eventlist-theme-pink .eventlist-simple-empty .eventlist-simple-body {
4545    color: var(--text-dim, #ff85c1) !important;
4546    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4547}
4548
4549.eventlist-theme-pink .eventlist-simple-item {
4550    border-bottom-color: var(--border-color, #ff1493) !important;
4551}
4552
4553.eventlist-theme-pink .eventlist-today-header {
4554    background: var(--cell-bg, #1a0d14) !important;
4555    color: var(--text-bright, #ff1493) !important;
4556    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4557    border-color: var(--text-bright, #ff1493) !important;
4558}
4559
4560.eventlist-theme-pink .eventlist-today-clock {
4561    color: var(--text-bright, #ff1493) !important;
4562    -webkit-text-fill-color: var(--text-bright, #ff1493) !important;
4563}
4564
4565.eventlist-theme-pink .eventlist-today-date {
4566    color: var(--text-dim, #ff85c1) !important;
4567    -webkit-text-fill-color: var(--text-dim, #ff85c1) !important;
4568}
4569
4570/* ========================================
4571   STATIC CALENDAR - Read-only Presentation Mode
4572   ======================================== */
4573
4574.calendar-static {
4575    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
4576    width: 100%;
4577    max-width: 100%;
4578    margin: 0 auto;
4579    box-sizing: border-box;
4580    overflow-x: auto;
4581}
4582
4583/* Header with navigation */
4584.static-header {
4585    display: flex;
4586    align-items: center;
4587    justify-content: center;
4588    gap: 15px;
4589    padding: 12px;
4590    background: #2c3e50;
4591    color: white;
4592    border-radius: 8px 8px 0 0;
4593}
4594
4595.static-month-title {
4596    margin: 0;
4597    font-size: 1.3em;
4598    font-weight: 600;
4599    min-width: 180px;
4600    text-align: center;
4601}
4602
4603.static-nav-btn {
4604    background: rgba(255,255,255,0.2);
4605    border: none;
4606    color: white;
4607    font-size: 16px;
4608    width: 32px;
4609    height: 32px;
4610    border-radius: 50%;
4611    cursor: pointer;
4612    transition: background 0.2s;
4613    flex-shrink: 0;
4614}
4615
4616.static-nav-btn:hover {
4617    background: rgba(255,255,255,0.3);
4618}
4619
4620.static-print-btn {
4621    background: rgba(255,255,255,0.2);
4622    border: none;
4623    color: white;
4624    font-size: 16px;
4625    width: 32px;
4626    height: 32px;
4627    border-radius: 50%;
4628    cursor: pointer;
4629    transition: background 0.2s;
4630    flex-shrink: 0;
4631    margin-left: 10px;
4632    display: flex;
4633    align-items: center;
4634    justify-content: center;
4635    padding: 0;
4636    line-height: 1;
4637}
4638
4639.static-print-btn:hover {
4640    background: rgba(255,255,255,0.3);
4641}
4642
4643/* Calendar grid */
4644.static-calendar-grid {
4645    width: 100%;
4646    border-collapse: collapse;
4647    background: white;
4648    border: 1px solid #ddd;
4649    table-layout: fixed;
4650}
4651
4652.static-calendar-grid th {
4653    background: #f5f5f5;
4654    padding: 8px 4px;
4655    text-align: center;
4656    font-weight: 600;
4657    color: #555;
4658    border-bottom: 2px solid #ddd;
4659    font-size: 12px;
4660}
4661
4662.static-calendar-grid td {
4663    border: 1px solid #eee;
4664    vertical-align: top;
4665    height: 80px;
4666    width: 14.28%;
4667    padding: 0;
4668    overflow: hidden;
4669}
4670
4671.static-day {
4672    height: 100%;
4673    position: relative;
4674}
4675
4676.static-day-empty {
4677    background: #fafafa;
4678}
4679
4680.static-day-number {
4681    position: absolute;
4682    top: 5px;
4683    right: 8px;
4684    font-size: 14px;
4685    font-weight: 500;
4686    color: #666;
4687}
4688
4689.static-day-today .static-day-number {
4690    background: #2c3e50;
4691    color: white;
4692    width: 24px;
4693    height: 24px;
4694    border-radius: 50%;
4695    display: flex;
4696    align-items: center;
4697    justify-content: center;
4698    right: 5px;
4699}
4700
4701.static-day-weekend {
4702    background: #fafafa;
4703}
4704
4705.static-day-events {
4706    padding: 28px 4px 4px 4px;
4707    display: flex;
4708    flex-direction: column;
4709    gap: 2px;
4710    max-height: 80px;
4711    overflow-y: auto;
4712}
4713
4714/* Individual events */
4715.static-event {
4716    font-size: 11px;
4717    padding: 2px 4px;
4718    background: #f0f8ff;
4719    border-left: 3px solid #3498db;
4720    border-radius: 2px;
4721    white-space: nowrap;
4722    overflow: hidden;
4723    text-overflow: ellipsis;
4724    cursor: default;
4725}
4726
4727.static-event:hover {
4728    background: #e3f2fd;
4729}
4730
4731.static-event-important {
4732    background: linear-gradient(135deg, rgba(255, 215, 0, 0.2), rgba(255, 193, 7, 0.1));
4733    border-left-color: #ffc107;
4734}
4735
4736.static-event-important:hover {
4737    background: linear-gradient(135deg, rgba(255, 215, 0, 0.3), rgba(255, 193, 7, 0.2));
4738}
4739
4740.static-event-star {
4741    font-size: 10px;
4742    margin-right: 2px;
4743}
4744
4745.static-event-time {
4746    font-weight: 600;
4747    color: #2c3e50;
4748}
4749
4750.static-event-title {
4751    color: #333;
4752}
4753
4754/* Print view - hidden on screen */
4755.static-print-view {
4756    display: none;
4757}
4758
4759/* Itinerary table for printing */
4760.static-itinerary {
4761    width: 100%;
4762    border-collapse: collapse;
4763    margin-top: 20px;
4764}
4765
4766.static-itinerary th {
4767    background: #2c3e50;
4768    color: white;
4769    padding: 10px;
4770    text-align: left;
4771    font-weight: 600;
4772}
4773
4774.static-itinerary td {
4775    padding: 8px 10px;
4776    border-bottom: 1px solid #ddd;
4777    vertical-align: top;
4778}
4779
4780.static-itinerary-date {
4781    font-weight: 600;
4782    white-space: nowrap;
4783    width: 100px;
4784}
4785
4786.static-itinerary-time {
4787    white-space: nowrap;
4788    width: 120px;
4789    color: #555;
4790}
4791
4792.static-itinerary-title {
4793    font-weight: 500;
4794}
4795
4796.static-itinerary-desc {
4797    color: #666;
4798    font-size: 0.9em;
4799}
4800
4801.static-itinerary-important {
4802    background: rgba(255, 215, 0, 0.15);
4803}
4804
4805.static-print-title {
4806    margin: 0 0 10px 0;
4807    font-size: 1.5em;
4808    color: #2c3e50;
4809}
4810
4811.static-print-namespace {
4812    color: #666;
4813    margin: 0 0 15px 0;
4814    font-style: italic;
4815}
4816
4817.static-print-empty {
4818    color: #888;
4819    font-style: italic;
4820}
4821
4822/* Print styles */
4823@media print {
4824    .calendar-static {
4825        max-width: 100%;
4826        width: 100%;
4827        overflow: visible !important;
4828        height: auto !important;
4829        min-height: 0 !important;
4830        max-height: none !important;
4831    }
4832
4833    /* Completely remove screen view from print flow */
4834    .static-screen-view,
4835    .static-screen-view *,
4836    .static-header,
4837    .static-calendar-grid,
4838    .static-day,
4839    .static-day-events,
4840    .static-event,
4841    .static-nav-btn {
4842        display: none !important;
4843        visibility: hidden !important;
4844        height: 0 !important;
4845        max-height: 0 !important;
4846        width: 0 !important;
4847        max-width: 0 !important;
4848        overflow: hidden !important;
4849        position: absolute !important;
4850        left: -9999px !important;
4851        margin: 0 !important;
4852        padding: 0 !important;
4853        border: none !important;
4854    }
4855
4856    /* Show print view */
4857    .static-print-view {
4858        display: block !important;
4859        visibility: visible !important;
4860        position: relative !important;
4861        height: auto !important;
4862        width: 100% !important;
4863        left: auto !important;
4864    }
4865
4866    .static-print-view * {
4867        visibility: visible !important;
4868        position: relative !important;
4869        left: auto !important;
4870    }
4871
4872    .static-itinerary {
4873        page-break-inside: auto;
4874        width: 100%;
4875        display: table !important;
4876    }
4877
4878    .static-itinerary tr {
4879        page-break-inside: avoid;
4880        page-break-after: auto;
4881        display: table-row !important;
4882    }
4883
4884    .static-itinerary td,
4885    .static-itinerary th {
4886        display: table-cell !important;
4887        height: auto !important;
4888        width: auto !important;
4889    }
4890
4891    .static-itinerary th {
4892        background: #333 !important;
4893        -webkit-print-color-adjust: exact;
4894        print-color-adjust: exact;
4895    }
4896
4897    .static-itinerary-important {
4898        background: #fffde7 !important;
4899        -webkit-print-color-adjust: exact;
4900        print-color-adjust: exact;
4901    }
4902
4903    .static-print-title,
4904    .static-print-namespace,
4905    .static-print-empty {
4906        page-break-after: avoid;
4907        display: block !important;
4908        height: auto !important;
4909        width: auto !important;
4910    }
4911}
4912
4913/* Responsive */
4914@media (max-width: 768px) {
4915    .static-header {
4916        padding: 10px;
4917        gap: 10px;
4918    }
4919
4920    .static-month-title {
4921        font-size: 1.1em;
4922        min-width: 120px;
4923    }
4924
4925    .static-nav-btn {
4926        width: 28px;
4927        height: 28px;
4928        font-size: 14px;
4929    }
4930
4931    .static-calendar-grid th {
4932        padding: 6px 2px;
4933        font-size: 10px;
4934    }
4935
4936    .static-calendar-grid td {
4937        height: 60px;
4938    }
4939
4940    .static-day-number {
4941        font-size: 11px;
4942        top: 2px;
4943        right: 4px;
4944    }
4945
4946    .static-day-today .static-day-number {
4947        width: 18px;
4948        height: 18px;
4949        right: 2px;
4950    }
4951
4952    .static-day-events {
4953        padding: 20px 2px 2px 2px;
4954        max-height: 40px;
4955        gap: 1px;
4956    }
4957
4958    .static-event {
4959        font-size: 9px;
4960        padding: 1px 2px;
4961    }
4962
4963    .static-event-time {
4964        display: none;
4965    }
4966}
4967
4968@media (max-width: 480px) {
4969    .static-calendar-grid th {
4970        font-size: 9px;
4971        padding: 4px 1px;
4972    }
4973
4974    .static-calendar-grid td {
4975        height: 50px;
4976    }
4977
4978    .static-day-events {
4979        max-height: 30px;
4980    }
4981
4982    .static-event {
4983        font-size: 8px;
4984    }
4985}
4986
4987/* Static Calendar Theme Variations */
4988.static-theme-matrix .static-header {
4989    background: #0a0a0a;
4990    border-bottom: 1px solid #00ff00;
4991}
4992
4993.static-theme-matrix .static-calendar-grid {
4994    background: #0d0d0d;
4995    border-color: #00ff00;
4996}
4997
4998.static-theme-matrix .static-calendar-grid th {
4999    background: #0a0a0a;
5000    color: #00ff00;
5001    border-color: #004400;
5002}
5003
5004.static-theme-matrix .static-calendar-grid td {
5005    border-color: #003300;
5006    color: #00cc00;
5007}
5008
5009.static-theme-matrix .static-day-empty {
5010    background: #050505;
5011}
5012
5013.static-theme-matrix .static-day-weekend {
5014    background: #0a0a0a;
5015}
5016
5017.static-theme-matrix .static-day-number {
5018    color: #00ff00;
5019}
5020
5021.static-theme-matrix .static-day-today .static-day-number {
5022    background: #00ff00;
5023    color: #000;
5024}
5025
5026.static-theme-matrix .static-event {
5027    background: rgba(0, 255, 0, 0.1);
5028    color: #00cc00;
5029}
5030
5031.static-theme-matrix .static-event:hover {
5032    background: rgba(0, 255, 0, 0.2);
5033}
5034
5035/* Pink theme */
5036.static-theme-pink .static-header {
5037    background: linear-gradient(135deg, #ff1493, #ff69b4);
5038}
5039
5040.static-theme-pink .static-calendar-grid {
5041    background: #1a0a10;
5042    border-color: #ff1493;
5043}
5044
5045.static-theme-pink .static-calendar-grid th {
5046    background: #2a0a15;
5047    color: #ff69b4;
5048    border-color: #ff1493;
5049}
5050
5051.static-theme-pink .static-calendar-grid td {
5052    border-color: #440020;
5053    color: #ff85c0;
5054}
5055
5056.static-theme-pink .static-day-empty {
5057    background: #0d0508;
5058}
5059
5060.static-theme-pink .static-day-weekend {
5061    background: #150810;
5062}
5063
5064.static-theme-pink .static-day-number {
5065    color: #ff69b4;
5066}
5067
5068.static-theme-pink .static-day-today .static-day-number {
5069    background: #ff1493;
5070    color: #fff;
5071}
5072
5073.static-theme-pink .static-event {
5074    background: rgba(255, 20, 147, 0.15);
5075    color: #ff85c0;
5076}
5077
5078/* Dark theme */
5079.static-theme-dark .static-header {
5080    background: #1a1a2e;
5081}
5082
5083.static-theme-dark .static-calendar-grid {
5084    background: #16213e;
5085    border-color: #1a1a2e;
5086}
5087
5088.static-theme-dark .static-calendar-grid th {
5089    background: #1a1a2e;
5090    color: #e0e0e0;
5091}
5092
5093.static-theme-dark .static-calendar-grid td {
5094    border-color: #2a2a4e;
5095    color: #c0c0c0;
5096}
5097
5098.static-theme-dark .static-day-empty {
5099    background: #0f0f1a;
5100}
5101
5102.static-theme-dark .static-day-weekend {
5103    background: #12121f;
5104}
5105
5106.static-theme-dark .static-day-number {
5107    color: #a0a0a0;
5108}
5109
5110.static-theme-dark .static-day-today .static-day-number {
5111    background: #4a90d9;
5112    color: #fff;
5113}
5114
5115.static-theme-dark .static-event {
5116    background: rgba(74, 144, 217, 0.2);
5117    color: #8ab4f8;
5118}
5119
5120
5121/* Purple theme for static calendar */
5122.static-theme-purple .static-header {
5123    background: linear-gradient(180deg, #2f2438 0%, #2a2030 100%);
5124    border-bottom: 1px solid #9b59b6;
5125}
5126
5127.static-theme-purple .static-calendar-grid {
5128    background: #2a2030;
5129    border-color: #9b59b6;
5130}
5131
5132.static-theme-purple .static-calendar-grid th {
5133    background: #3d2b4d;
5134    color: #d4a5ff;
5135    border-color: #9b59b6;
5136}
5137
5138.static-theme-purple .static-calendar-grid td {
5139    border-color: #4d3860;
5140    color: #b19cd9;
5141}
5142
5143.static-theme-purple .static-day-empty {
5144    background: #1f1828;
5145}
5146
5147.static-theme-purple .static-day-weekend {
5148    background: #251d30;
5149}
5150
5151.static-theme-purple .static-day-number {
5152    color: #d4a5ff;
5153}
5154
5155.static-theme-purple .static-day-today .static-day-number {
5156    background: #9b59b6;
5157    color: #fff;
5158}
5159
5160.static-theme-purple .static-event {
5161    background: rgba(155, 89, 182, 0.2);
5162    color: #d4a5ff;
5163    border-left-color: #9b59b6;
5164}
5165
5166.static-theme-purple .static-event:hover {
5167    background: rgba(155, 89, 182, 0.3);
5168}
5169
5170/* Professional theme for static calendar */
5171.static-theme-professional .static-header {
5172    background: linear-gradient(180deg, #ffffff 0%, #f5f7fa 100%);
5173    border-bottom: 2px solid #4a90e2;
5174    color: #2c3e50;
5175}
5176
5177.static-theme-professional .static-header h2 {
5178    color: #2c3e50;
5179}
5180
5181.static-theme-professional .static-nav-btn,
5182.static-theme-professional .static-print-btn {
5183    background: #4a90e2;
5184    color: white;
5185}
5186
5187.static-theme-professional .static-nav-btn:hover,
5188.static-theme-professional .static-print-btn:hover {
5189    background: #3a7bc8;
5190}
5191
5192.static-theme-professional .static-calendar-grid {
5193    background: #ffffff;
5194    border-color: #d0d7de;
5195}
5196
5197.static-theme-professional .static-calendar-grid th {
5198    background: #f5f7fa;
5199    color: #2c3e50;
5200    border-color: #d0d7de;
5201}
5202
5203.static-theme-professional .static-calendar-grid td {
5204    border-color: #e8ecf1;
5205    color: #2c3e50;
5206}
5207
5208.static-theme-professional .static-day-empty {
5209    background: #fafbfc;
5210}
5211
5212.static-theme-professional .static-day-weekend {
5213    background: #f5f7fa;
5214}
5215
5216.static-theme-professional .static-day-number {
5217    color: #2c3e50;
5218}
5219
5220.static-theme-professional .static-day-today .static-day-number {
5221    background: #4a90e2;
5222    color: #fff;
5223}
5224
5225.static-theme-professional .static-event {
5226    background: rgba(74, 144, 226, 0.1);
5227    color: #2c3e50;
5228    border-left-color: #4a90e2;
5229}
5230
5231.static-theme-professional .static-event:hover {
5232    background: rgba(74, 144, 226, 0.2);
5233}
5234
5235/* Wiki theme for static calendar (neutral, matches DokuWiki default) */
5236.static-theme-wiki .static-header {
5237    background: #f5f5f5;
5238    border-bottom: 1px solid #ccc;
5239    color: #333;
5240}
5241
5242.static-theme-wiki .static-header h2 {
5243    color: #333;
5244}
5245
5246.static-theme-wiki .static-nav-btn,
5247.static-theme-wiki .static-print-btn {
5248    background: #ddd;
5249    color: #333;
5250}
5251
5252.static-theme-wiki .static-nav-btn:hover,
5253.static-theme-wiki .static-print-btn:hover {
5254    background: #ccc;
5255}
5256
5257.static-theme-wiki .static-calendar-grid {
5258    background: #fff;
5259    border-color: #ccc;
5260}
5261
5262.static-theme-wiki .static-calendar-grid th {
5263    background: #f0f0f0;
5264    color: #333;
5265    border-color: #ccc;
5266}
5267
5268.static-theme-wiki .static-calendar-grid td {
5269    border-color: #ddd;
5270    color: #333;
5271}
5272
5273.static-theme-wiki .static-day-empty {
5274    background: #fafafa;
5275}
5276
5277.static-theme-wiki .static-day-weekend {
5278    background: #f5f5f5;
5279}
5280
5281.static-theme-wiki .static-day-number {
5282    color: #333;
5283}
5284
5285.static-theme-wiki .static-day-today .static-day-number {
5286    background: #2196f3;
5287    color: #fff;
5288}
5289
5290.static-theme-wiki .static-event {
5291    background: #e3f2fd;
5292    color: #333;
5293    border-left-color: #2196f3;
5294}
5295
5296.static-theme-wiki .static-event:hover {
5297    background: #bbdefb;
5298}
5299
5300/* Light theme (clean white) */
5301.static-theme-light .static-header {
5302    background: #ffffff;
5303    border-bottom: 2px solid #e0e0e0;
5304    color: #333;
5305}
5306
5307.static-theme-light .static-header h2 {
5308    color: #333;
5309}
5310
5311.static-theme-light .static-nav-btn,
5312.static-theme-light .static-print-btn {
5313    background: #e0e0e0;
5314    color: #333;
5315}
5316
5317.static-theme-light .static-nav-btn:hover,
5318.static-theme-light .static-print-btn:hover {
5319    background: #d0d0d0;
5320}
5321
5322.static-theme-light .static-calendar-grid {
5323    background: #ffffff;
5324    border-color: #e0e0e0;
5325}
5326
5327.static-theme-light .static-calendar-grid th {
5328    background: #fafafa;
5329    color: #333;
5330    border-color: #e0e0e0;
5331}
5332
5333.static-theme-light .static-calendar-grid td {
5334    border-color: #f0f0f0;
5335    color: #333;
5336}
5337
5338.static-theme-light .static-day-empty {
5339    background: #fafafa;
5340}
5341
5342.static-theme-light .static-day-weekend {
5343    background: #f5f5f5;
5344}
5345
5346.static-theme-light .static-day-number {
5347    color: #666;
5348}
5349
5350.static-theme-light .static-day-today .static-day-number {
5351    background: #333;
5352    color: #fff;
5353}
5354
5355.static-theme-light .static-event {
5356    background: #f5f5f5;
5357    color: #333;
5358}
5359
5360.static-theme-light .static-event:hover {
5361    background: #eeeeee;
5362}
5363
5364/* Static calendar rich tooltip */
5365.static-tooltip {
5366    position: fixed;
5367    background: #2c3e50;
5368    color: white;
5369    padding: 10px 14px;
5370    border-radius: 6px;
5371    font-size: 12px;
5372    max-width: 300px;
5373    z-index: 10000;
5374    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
5375    pointer-events: none;
5376    line-height: 1.4;
5377}
5378
5379.static-tooltip strong {
5380    display: block;
5381    margin-bottom: 4px;
5382    font-size: 13px;
5383}
5384
5385.static-tooltip .tooltip-time {
5386    color: #3498db;
5387    font-weight: 500;
5388}
5389
5390.static-tooltip .tooltip-desc {
5391    display: block;
5392    margin-top: 6px;
5393    color: #ecf0f1;
5394    border-top: 1px solid rgba(255,255,255,0.2);
5395    padding-top: 6px;
5396}
5397
5398.static-tooltip .tooltip-desc strong {
5399    display: inline;
5400    margin: 0;
5401    font-size: inherit;
5402}
5403
5404.static-tooltip .tooltip-desc em {
5405    font-style: italic;
5406}
5407
5408.static-tooltip a {
5409    color: #3498db;
5410    text-decoration: underline;
5411}
5412
5413/* Itinerary description formatting */
5414.static-itinerary-desc strong {
5415    font-weight: 600;
5416}
5417
5418.static-itinerary-desc em {
5419    font-style: italic;
5420}
5421
5422.static-itinerary-desc a {
5423    color: #2980b9;
5424    text-decoration: underline;
5425}
5426
5427.static-itinerary-desc br {
5428    display: block;
5429    content: "";
5430    margin-top: 4px;
5431}
5432