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