xref: /plugin/calendar/style.css (revision 0c3b6e81ea51fcdea713a92bed21d8a9d13849e2)
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);  /* Use CSS var with fallback for dark readers */
12    border: 1px solid #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/* Mobile responsive */
21@media (max-width: 768px) {
22    .calendar-compact-container {
23        flex-direction: column;
24        height: auto;
25        min-height: 400px;
26        max-height: none;
27    }
28
29    .calendar-compact-left {
30        width: 100% !important;
31        min-width: 100% !important;
32        border-right: none !important;
33        border-bottom: 1px solid #e0e0e0;
34        height: auto;
35        min-height: 300px;
36    }
37
38    .calendar-compact-right {
39        width: 100% !important;
40        min-width: 100% !important;
41        max-height: 400px;
42    }
43}
44
45/* Tablet responsive */
46@media (max-width: 1024px) and (min-width: 769px) {
47    .calendar-compact-container {
48        max-width: 100%;
49    }
50
51    .calendar-compact-left {
52        width: 60% !important;
53        min-width: 400px;
54    }
55
56    .calendar-compact-right {
57        width: 40% !important;
58        min-width: 250px;
59    }
60}
61
62/* Small screens */
63@media (max-width: 600px) {
64    .calendar-compact-container {
65        font-size: 11px;
66        height: auto;
67        max-height: none;
68    }
69}
70
71/* Left side: Calendar - FLEXIBLE */
72.calendar-compact-left {
73    flex: 1;
74    min-width: 400px;
75    border-right: 1px solid #e0e0e0;
76    display: flex;
77    flex-direction: column;
78    background: var(--background-site);
79    overflow: hidden;
80}
81
82/* Right side: Event list - FLEXIBLE */
83.calendar-compact-right {
84    flex: 0 0 300px;
85    min-width: 250px;
86    max-width: 400px;
87    display: flex;
88    flex-direction: column;
89    background: var(--background-site);
90    overflow: hidden;
91}
92
93/* Calendar header - COMPACT */
94.calendar-compact-header {
95    display: flex;
96    align-items: center;
97    gap: 12px;
98    padding: 8px 12px;
99    background: var(--background-header);
100    color: var(--text-primary);
101    border-bottom: 1px solid #e0e0e0;
102}
103
104/* Namespace filter indicator at top of calendar */
105.calendar-namespace-filter {
106    display: flex;
107    align-items: center;
108    gap: 6px;
109    padding: 6px 10px;
110    background: #e8f5e9;
111    border: 1px solid #81c784;
112    border-radius: 4px;
113    margin: 8px 12px 0 12px;
114    font-size: 11px;
115}
116
117.namespace-filter-label {
118    color: #2e7d32;
119    font-weight: 600;
120}
121
122.namespace-filter-name {
123    background: #00cc07;
124    color: white;
125    padding: 2px 6px;
126    border-radius: 3px;
127    font-weight: 500;
128    font-family: monospace;
129    font-size: 10px;
130}
131
132.namespace-filter-clear {
133    background: none;
134    border: none;
135    color: #00cc07;
136    cursor: pointer;
137    font-size: 16px;
138    padding: 0;
139    width: 20px;
140    height: 20px;
141    display: flex;
142    align-items: center;
143    justify-content: center;
144    border-radius: 3px;
145    margin-left: auto;
146    transition: background 0.2s;
147}
148
149.namespace-filter-clear:hover {
150    background: rgba(0, 204, 7, 0.1);
151}
152
153.namespace-filter-badge {
154    position: relative;
155    padding-right: 24px !important;
156}
157
158.filter-clear-inline {
159    position: absolute;
160    right: 4px;
161    top: 50%;
162    transform: translateY(-50%);
163    background: none;
164    border: none;
165    color: #999;
166    cursor: pointer;
167    font-size: 12px;
168    padding: 0;
169    width: 16px;
170    height: 16px;
171    border-radius: 50%;
172    display: flex;
173    align-items: center;
174    justify-content: center;
175    transition: all 0.15s;
176    line-height: 1;
177}
178
179.filter-clear-inline:hover {
180    background: rgba(211, 47, 47, 0.1);
181    color: #d32f2f;
182}
183
184.calendar-compact-header h3 {
185    margin: 0;
186    font-size: 14px;
187    font-weight: 600;
188    color: #2c3e50;
189    flex: 1;
190    text-align: center;
191}
192
193.calendar-month-picker {
194    cursor: pointer;
195    user-select: none;
196    transition: all 0.15s;
197    padding: 4px 8px;
198    border-radius: 4px;
199}
200
201.calendar-month-picker:hover {
202    background: #f0f0f0;
203    color: #008800;
204}
205
206.month-picker-overlay {
207    position: fixed;
208    top: 0;
209    left: 0;
210    right: 0;
211    bottom: 0;
212    background: rgba(0, 0, 0, 0.5);
213    display: flex;
214    align-items: center;
215    justify-content: center;
216    z-index: 10000;
217}
218
219.month-picker-dialog {
220    background: white;
221    border-radius: 8px;
222    padding: 20px;
223    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
224    min-width: 300px;
225}
226
227.month-picker-dialog h4 {
228    margin: 0 0 16px 0;
229    font-size: 16px;
230    font-weight: 600;
231    color: #2c3e50;
232}
233
234.month-picker-selects {
235    display: flex;
236    gap: 12px;
237    margin-bottom: 16px;
238}
239
240.month-picker-select {
241    flex: 1;
242    padding: 8px 12px;
243    border: 1px solid #d0d0d0;
244    border-radius: 4px;
245    font-size: 14px;
246    background: white;
247    cursor: pointer;
248}
249
250.month-picker-select:focus {
251    outline: none;
252    border-color: #008800;
253    box-shadow: 0 0 0 2px rgba(0, 136, 0, 0.1);
254}
255
256.month-picker-actions {
257    display: flex;
258    gap: 8px;
259    justify-content: flex-end;
260}
261
262.cal-nav-btn {
263    background: var(--border-main);
264    border: 1px solid var(--border-color);
265    color: var(--background-site);
266    width: 28px;
267    height: 28px;
268    border-radius: 4px;
269    cursor: pointer;
270    font-size: 16px;
271    transition: all 0.15s;
272    padding: 0;
273    display: flex;
274    align-items: center;
275    justify-content: center;
276}
277
278.cal-nav-btn:hover {
279    opacity: 0.9;
280}
281
282.cal-today-btn {
283    background: var(--border-main);
284    border: 1px solid var(--border-color);
285    color: var(--background-site);
286    font-size: 11px;
287    font-weight: 600;
288    padding: 4px 10px;
289    border-radius: 4px;
290    cursor: pointer;
291    transition: all 0.15s;
292}
293
294.cal-today-btn:hover {
295    opacity: 0.9;
296}
297
298/* Calendar grid - Excel-like sizing - RESPONSIVE */
299.calendar-compact-grid {
300    width: 100%;
301    border-collapse: collapse;
302    table-layout: fixed;
303    flex: 1;
304    margin: 0 !important;
305    padding: 0;
306}
307
308/* Day name headers (SMTWTFS) - rendered as a separate grid div above the table
309   to avoid Firefox table-cell height issues where th matches td height */
310.calendar-day-headers {
311    display: grid;
312    grid-template-columns: repeat(7, 1fr);
313    background: var(--background-header);
314    border-bottom: 1px solid #d0d0d0;
315    margin: 0;
316    padding: 0;
317}
318
319.calendar-day-headers span {
320    height: 22px;
321    line-height: 22px;
322    font-size: 10px;
323    font-weight: 600;
324    text-align: center;
325    color: var(--text-primary);
326    border-right: 1px solid #e8e8e8;
327    box-sizing: border-box;
328}
329
330.calendar-day-headers span:last-child {
331    border-right: none;
332}
333
334.calendar-compact-grid tbody td {
335    height: 58px;
336    min-height: 40px;
337    border: 1px solid #e8e8e8;
338    border-top: none;
339    border-left: none;
340    background-color: var(--background-site);  /* Use scoped CSS var from PHP */
341    color: var(--text-primary);
342    cursor: pointer;
343    padding: 3px;
344    position: relative;
345    vertical-align: top;
346    transition: background 0.1s;
347}
348
349/* Smaller cells on mobile */
350@media (max-width: 600px) {
351    .calendar-compact-grid tbody td {
352        height: 45px;
353        min-height: 35px;
354        padding: 2px;
355    }
356
357    .calendar-day-headers span {
358        height: 18px;
359        line-height: 18px;
360        font-size: 9px;
361    }
362}
363
364.calendar-compact-grid tbody td:first-child {
365    border-left: 1px solid #e8e8e8;
366}
367
368.calendar-compact-grid tbody td:hover {
369    background-color: var(--background-alt);  /* Hover state uses scoped var */
370}
371
372.cal-empty {
373    background: var(--background-site);
374    cursor: default !important;
375}
376
377.cal-empty:hover {
378    background: var(--background-site);
379}
380
381.cal-today {
382    background: var(--cell-today-bg);
383}
384
385.cal-today:hover {
386    /* background removed - inline style handles this */
387}
388
389.cal-has-events {
390    /* background removed - set via inline style with template colors */
391}
392
393.cal-has-events:hover {
394    /* background removed - inline style handles this */
395}
396
397.day-num {
398    display: inline-block;
399    font-size: 11px;
400    font-weight: 500;
401    /* color removed - set via inline style */
402    padding: 1px 3px;
403}
404
405.cal-today .day-num {
406    /* background removed - set via inline style with theme colors */
407    /* color removed - set via inline style with theme colors */
408    border-radius: 2px;
409    font-weight: 600;
410}
411
412.event-indicators {
413    position: absolute;
414    left: 20px;
415    right: 0;
416    top: 20px;
417    bottom: 2px;
418    display: flex;
419    flex-direction: column;
420    gap: 2px;
421    pointer-events: none;
422}
423
424.event-bar {
425    width: 100%;
426    min-height: 6px;
427    height: 6px;
428    border-radius: 2px;
429    cursor: pointer;
430    pointer-events: auto;
431    transition: all 0.2s;
432    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
433    position: relative;
434}
435
436.event-bar:hover {
437    transform: scaleY(1.3);
438    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
439    z-index: 10;
440}
441
442.event-bar-no-time {
443    /* Events without time appear at top */
444    order: -1;
445    opacity: 0.9;
446}
447
448.event-bar-timed {
449    /* Events with time are sorted by time */
450    opacity: 0.95;
451}
452
453/* Multi-day event styling - creates visual continuity */
454.event-bar-continues {
455    /* Event continues from previous day - extend left to cell edge */
456    border-top-left-radius: 0;
457    border-bottom-left-radius: 0;
458    margin-left: -20px;
459    padding-left: 20px;
460}
461
462.event-bar-continuing {
463    /* Event continues to next day - extend right to cell edge */
464    border-top-right-radius: 0;
465    border-bottom-right-radius: 0;
466    margin-right: -2px;
467    padding-right: 2px;
468}
469
470.event-bar-continues.event-bar-continuing {
471    /* Event continues both ways (middle of span) - no border radius, extends both sides */
472    border-radius: 0;
473}
474
475/* Old event dot - removing */
476.event-dot {
477    display: none;
478}
479
480/* Event list header - COMPACT */
481.event-list-header {
482    display: flex;
483    align-items: center;
484    justify-content: space-between;
485    padding: 8px 10px;
486    border-bottom: 1px solid #e0e0e0;
487    background: var(--background-header);
488}
489
490.event-list-header-content {
491    display: flex;
492    align-items: center;
493    gap: 6px;
494    flex: 1;
495}
496
497.event-list-header h4 {
498    margin: 0;
499    font-size: 12px;
500    font-weight: 600;
501    color: var(--text-primary);
502}
503
504.namespace-badge {
505    background: #e8f5e9;
506    color: #388e3c;
507    padding: 2px 6px;
508    border-radius: 10px;
509    font-size: 9px;
510    font-weight: 600;
511    text-transform: uppercase;
512    letter-spacing: 0.3px;
513}
514
515/* Event search bar - inline in header */
516.event-search-container-inline {
517    position: relative;
518    flex: 1;
519    max-width: 200px;
520    margin: 0 8px;
521}
522
523.event-search-input-inline {
524    width: 100%;
525    padding: 4px 24px 4px 8px;
526    border: 1px solid #d0d0d0;
527    border-radius: 3px;
528    font-size: 11px;
529    outline: none;
530    transition: border-color 0.2s, box-shadow 0.2s;
531    background: var(--cell-bg);
532    color: var(--text-primary);
533}
534
535.event-search-input-inline:focus {
536    border-color: #00cc07;
537    box-shadow: 0 0 0 2px rgba(0, 204, 7, 0.1);
538}
539
540.event-search-input-inline::placeholder {
541    color: var(--text-dim);
542    font-size: 10px;
543}
544
545.event-search-clear-inline {
546    position: absolute;
547    right: 4px;
548    top: 50%;
549    transform: translateY(-50%);
550    background: none;
551    border: none;
552    color: var(--text-dim);
553    cursor: pointer;
554    padding: 2px 4px;
555    font-size: 12px;
556    line-height: 1;
557    transition: color 0.2s;
558}
559
560.event-search-clear-inline:hover {
561    color: var(--text-primary);
562}
563
564.no-search-results {
565    text-align: center;
566    color: var(--text-dim);
567    font-size: 12px;
568    padding: 20px;
569    font-style: italic;
570}
571
572.add-event-compact {
573    background: var(--border-main);
574    color: var(--background-site);
575    border: none;
576    padding: 4px 8px;
577    border-radius: 3px;
578    font-size: 11px;
579    font-weight: 500;
580    cursor: pointer;
581    transition: background 0.15s;
582}
583
584.add-event-compact:hover {
585    opacity: 0.9;
586}
587
588/* Event list scrollable area - COMPACT */
589.event-list-compact {
590    flex: 1;
591    overflow-y: auto;
592    padding: 6px;
593    background: var(--background-site);
594}
595
596.event-list-compact::-webkit-scrollbar {
597    width: 6px;
598}
599
600.event-list-compact::-webkit-scrollbar-track {
601    background: #f5f5f5;
602}
603
604.event-list-compact::-webkit-scrollbar-thumb {
605    background: #ccc;
606    border-radius: 3px;
607}
608
609.event-list-compact::-webkit-scrollbar-thumb:hover {
610    background: #aaa;
611}
612
613/* Event items in list - SUPER COMPACT with checkbox on right */
614.event-compact-item {
615    display: flex;
616    align-items: flex-start;
617    margin-bottom: 4px;
618    background-color: var(--background-site);  /* Use scoped CSS var */
619    color: var(--text-primary);
620    border: 1px solid #e0e0e0;
621    border-left: 3px solid #3498db;
622    border-radius: 3px;
623    padding: 5px 6px;
624    transition: box-shadow 0.15s, background 0.15s, transform 0.15s;
625    gap: 6px;
626    position: relative;
627}
628
629.event-compact-item:hover {
630    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
631    background-color: var(--background-alt);  /* Slightly different on hover */
632}
633
634.event-highlighted {
635    animation: highlightPulse 0.6s ease-in-out;
636    background: #fff9e6 !important;
637    box-shadow: 0 2px 8px rgba(255, 193, 7, 0.4) !important;
638}
639
640@keyframes highlightPulse {
641    0% {
642        background: #ffffff;
643        box-shadow: 0 0 0 rgba(255, 193, 7, 0);
644    }
645    50% {
646        background: #fffbea;
647        box-shadow: 0 4px 12px rgba(255, 193, 7, 0.6);
648        transform: scale(1.02);
649    }
650    100% {
651        background: #fff9e6;
652        box-shadow: 0 2px 8px rgba(255, 193, 7, 0.4);
653        transform: scale(1);
654    }
655}
656
657.event-completed {
658    opacity: 0.55;
659    background: #f5f5f5;
660}
661
662.event-completed .event-title-compact {
663    text-decoration: line-through;
664    color: #999;
665}
666
667.event-past {
668    opacity: 0.35;
669    background: #fafafa;
670    font-size: 10px;
671    padding: 3px 6px;
672    margin-bottom: 2px;
673    cursor: pointer;
674    transition: all 0.2s ease;
675}
676
677.event-past:hover {
678    opacity: 0.6;
679    background: #f5f5f5;
680}
681
682.event-past-expanded {
683    opacity: 0.8 !important;
684    background: #f9f9f9 !important;
685    padding: 5px 6px !important;
686    font-size: 12px !important;
687}
688
689.event-past-expanded .event-title-compact {
690    font-size: 12px !important;
691    color: #666 !important;
692}
693
694.event-past-expanded .event-date-time {
695    font-size: 11px !important;
696    color: #888 !important;
697}
698
699.event-past .event-title-compact {
700    font-size: 10px;
701    color: #aaa;
702    font-weight: 400;
703}
704
705.event-past .event-date-time {
706    font-size: 9px;
707    color: #bbb;
708}
709
710.event-past .event-action-btn {
711    font-size: 11px;
712    opacity: 0.3;
713}
714
715.event-past .event-action-btn:hover {
716    opacity: 0.7;
717}
718
719.event-today-badge {
720    background: #9b59b6;
721    color: white;
722    padding: 1px 4px;
723    border-radius: 3px;
724    font-size: 9px;
725    font-weight: 600;
726    letter-spacing: 0.5px;
727    display: inline-block;
728    vertical-align: middle;
729    margin-left: auto; /* Right-align */
730    float: right; /* Force to right side */
731}
732
733.event-pastdue-badge {
734    background: #e74c3c;
735    color: white;
736    padding: 1px 4px;
737    border-radius: 3px;
738    font-size: 9px;
739    font-weight: 600;
740    letter-spacing: 0.5px;
741    display: inline-block;
742    vertical-align: middle;
743    margin-left: auto; /* Right-align */
744    float: right; /* Force to right side */
745}
746
747.event-pastdue {
748    border: 2px solid #e74c3c !important;
749    border-radius: 4px;
750    opacity: 1 !important;
751}
752
753.event-namespace-badge {
754    background: #008800;
755    color: white;
756    padding: 1px 4px;
757    border-radius: 3px;
758    font-size: 9px;
759    font-weight: 500;
760    display: inline-block;
761    vertical-align: middle;
762    margin-left: 4px;
763    cursor: pointer;
764    transition: background 0.2s;
765}
766
767.event-namespace-badge:hover {
768    background: #006600;
769}
770
771.event-conflict-badge {
772    background: #ff9800;
773    color: white;
774    padding: 0px 4px;
775    border-radius: 2px;
776    font-size: 9px;
777    display: inline-block;
778    vertical-align: middle;
779    margin-left: 3px;
780    cursor: help;
781    animation: pulse-warning 2s infinite;
782    line-height: 14px;
783}
784
785@keyframes pulse-warning {
786    0%, 100% {
787        opacity: 1;
788    }
789    50% {
790        opacity: 0.7;
791    }
792}
793
794.event-conflict-badge:hover {
795    background: #f57c00;
796    animation: none;
797}
798
799/* Custom conflict tooltip - SMALLER FOR MAIN CALENDAR */
800.conflict-tooltip {
801    position: fixed;
802    z-index: 10000;
803    background: white;
804    border: 1px solid #ff9800;
805    border-radius: 3px;
806    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
807    padding: 0;
808    min-width: 120px;
809    max-width: 200px;
810    opacity: 0;
811    transition: opacity 0.2s;
812    pointer-events: none;
813}
814
815/* Custom tooltip that appears above and to the left - FIXED POSITION */
816[data-tooltip] {
817    position: relative;
818    cursor: help;
819}
820
821[data-tooltip]:before {
822    content: attr(data-tooltip);
823    position: fixed;
824    padding: 3px 6px;
825    background: rgba(0, 0, 0, 0.95);
826    color: #fff;
827    font-size: 9px;
828    line-height: 1.3;
829    white-space: pre-line;
830    border-radius: 3px;
831    opacity: 0;
832    pointer-events: none;
833    transition: opacity 0.2s;
834    min-width: 120px;
835    max-width: 200px;
836    z-index: 10000;
837    text-align: left;
838    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
839}
840
841[data-tooltip]:hover:before {
842    opacity: 1;
843}
844
845/* Pink theme tooltips - with hearts! */
846.sidebar-pink [data-tooltip]:before {
847    background: linear-gradient(135deg, #ff1493 0%, #ff69b4 100%);
848    color: #fff;
849    border: 2px solid #ff85c1;
850    box-shadow: 0 0 15px rgba(255, 20, 147, 0.6), 0 4px 12px rgba(0, 0, 0, 0.4);
851    font-weight: 600;
852}
853
854.sidebar-pink [data-tooltip]:after {
855    content: '��';
856    position: fixed;
857    font-size: 12px;
858    opacity: 0;
859    pointer-events: none;
860    transition: opacity 0.2s;
861    z-index: 10001;
862    filter: drop-shadow(0 0 3px rgba(255, 20, 147, 0.8));
863}
864
865.sidebar-pink [data-tooltip]:hover:after {
866    opacity: 1;
867}
868
869/* Position data-tooltip with JavaScript for no cutoff */
870.data-tooltip-positioned:before {
871    /* Position set by JavaScript */
872}
873
874/* Allow sidebar to overflow for tooltips */
875.sidebar-widget,
876.sidebar-matrix {
877    overflow: visible !important;
878}
879
880.conflict-tooltip-header {
881    background: #ff9800;
882    color: white;
883    padding: 4px 8px;
884    font-weight: 600;
885    font-size: 10px;
886    border-radius: 2px 2px 0 0;
887}
888
889.conflict-tooltip-body {
890    padding: 6px 8px;
891    font-size: 9px;
892    line-height: 1.4;
893}
894
895.conflict-item {
896    padding: 2px 0;
897    color: #333;
898    border-bottom: 1px solid #f0f0f0;
899    font-size: 9px;
900}
901
902.conflict-item:last-child {
903    border-bottom: none;
904}
905
906.event-info {
907    flex: 1;
908    min-width: 0;
909    padding-right: 60px;
910    text-align: left;
911}
912
913.event-title-row {
914    display: flex;
915    align-items: center;
916    gap: 4px;
917}
918
919.event-title-compact {
920    font-size: 12px;
921    font-weight: 600;
922    color: #2c3e50;
923    overflow: hidden;
924    text-overflow: ellipsis;
925    white-space: nowrap;
926    text-align: left;
927}
928
929.event-meta-compact {
930    font-size: 10px;
931    color: #666;
932    margin-top: 1px;
933    text-align: left;
934}
935
936.event-date-time {
937    font-weight: 500;
938}
939
940.event-desc-compact {
941    font-size: 10px;
942    color: #666;
943    line-height: 1.4;
944    margin-top: 2px;
945    text-align: left;
946    word-wrap: break-word;
947    overflow-wrap: break-word;
948}
949
950.event-desc-compact img.event-image {
951    max-width: 100%;
952    height: auto;
953    margin: 4px 0;
954    border-radius: 3px;
955    display: block;
956}
957
958.event-desc-compact a {
959    color: #008800;
960    text-decoration: none;
961    border-bottom: 1px dotted #008800;
962}
963
964.event-desc-compact a:hover {
965    color: #388e3c;
966    border-bottom-style: solid;
967}
968
969.event-desc-compact strong,
970.event-desc-compact b {
971    font-weight: 600;
972    color: #333;
973}
974
975.event-desc-compact em,
976.event-desc-compact i {
977    font-style: italic;
978}
979
980.event-desc-compact code {
981    background: #f5f5f5;
982    padding: 1px 3px;
983    border-radius: 2px;
984    font-family: monospace;
985    font-size: 9px;
986}
987
988.event-actions-compact {
989    position: absolute;
990    top: 5px;
991    right: 24px;
992    display: flex;
993    gap: 2px;
994    flex-shrink: 0;
995}
996
997.event-action-btn {
998    background: none;
999    border: none;
1000    font-size: 14px;
1001    cursor: pointer;
1002    padding: 2px;
1003    opacity: 0.5;
1004    transition: opacity 0.15s, transform 0.15s;
1005}
1006
1007.event-action-btn:hover {
1008    opacity: 1;
1009    transform: scale(1.15);
1010}
1011
1012.task-checkbox {
1013    position: absolute;
1014    top: 5px;
1015    right: 6px;
1016    width: 16px;
1017    height: 16px;
1018    margin: 0;
1019    cursor: pointer;
1020    flex-shrink: 0;
1021}
1022
1023.no-events-msg {
1024    text-align: center;
1025    color: #999;
1026    font-size: 12px;
1027    font-style: italic;
1028    padding: 40px 20px;
1029}
1030
1031/* Sleek Event Dialog - FULLY RESPONSIVE */
1032.event-dialog-compact {
1033    position: fixed;
1034    top: 0;
1035    left: 0;
1036    width: 100%;
1037    height: 100%;
1038    z-index: 9999;
1039    display: flex;
1040    align-items: center;
1041    justify-content: center;
1042    animation: fadeIn 0.2s ease;
1043    padding: 20px;
1044    box-sizing: border-box;
1045    overflow-y: auto;
1046}
1047
1048@keyframes fadeIn {
1049    from { opacity: 0; }
1050    to { opacity: 1; }
1051}
1052
1053.dialog-content-sleek {
1054    position: relative;
1055    background: #ffffff;
1056    width: 100%;
1057    max-width: 450px;
1058    max-height: calc(100vh - 40px);
1059    border-radius: 8px;
1060    box-shadow: 0 8px 32px rgba(0,0,0,0.2);
1061    z-index: 10000;
1062    animation: slideUp 0.3s ease;
1063    overflow: hidden;
1064    display: flex;
1065    flex-direction: column;
1066    margin: auto;
1067}
1068
1069/* Mobile responsive dialog */
1070@media (max-width: 768px) {
1071    .event-dialog-compact {
1072        padding: 10px;
1073    }
1074
1075    .dialog-content-sleek {
1076        max-width: 100%;
1077        width: calc(100% - 20px);
1078        max-height: calc(100vh - 20px);
1079    }
1080}
1081
1082@media (max-width: 480px) {
1083    .event-dialog-compact {
1084        padding: 0;
1085        align-items: flex-start;
1086    }
1087
1088    .dialog-content-sleek {
1089        width: 100%;
1090        max-width: 100%;
1091        max-height: 100vh;
1092        border-radius: 0;
1093        margin: 0;
1094    }
1095}
1096
1097@keyframes slideUp {
1098    from {
1099        transform: translateY(20px);
1100        opacity: 0;
1101    }
1102    to {
1103        transform: translateY(0);
1104        opacity: 1;
1105    }
1106}
1107
1108.dialog-header-sleek {
1109    display: flex;
1110    align-items: center;
1111    justify-content: space-between;
1112    padding: 10px 14px;
1113    background: #2c3e50;
1114    color: white;
1115    cursor: move;
1116    flex-shrink: 0;
1117}
1118
1119.dialog-drag-handle {
1120    cursor: move;
1121}
1122
1123.dialog-header-sleek h3 {
1124    margin: 0;
1125    font-size: 15px;
1126    font-weight: 600;
1127}
1128
1129.dialog-close-btn {
1130    background: rgba(255,255,255,0.2);
1131    border: none;
1132    color: white;
1133    font-size: 22px;
1134    width: 28px;
1135    height: 28px;
1136    border-radius: 50%;
1137    cursor: pointer;
1138    display: flex;
1139    align-items: center;
1140    justify-content: center;
1141    transition: all 0.2s;
1142    line-height: 1;
1143    padding: 0;
1144    flex-shrink: 0;
1145}
1146
1147.dialog-close-btn:hover {
1148    background: rgba(255,255,255,0.3);
1149    transform: scale(1.1);
1150}
1151
1152.sleek-form {
1153    padding: 10px 12px;
1154    overflow-y: auto;
1155    overflow-x: hidden;
1156    flex: 1;
1157    max-height: calc(100vh - 160px);
1158}
1159
1160/* Ensure form is scrollable on small screens */
1161@media (max-height: 600px) {
1162    .sleek-form {
1163        max-height: calc(100vh - 120px);
1164    }
1165}
1166
1167@media (max-height: 500px) {
1168    .sleek-form {
1169        max-height: calc(100vh - 100px);
1170    }
1171}
1172
1173.form-field {
1174    margin-bottom: 6px;
1175}
1176
1177/* Compact form elements */
1178.input-compact {
1179    height: 30px !important;
1180    padding: 4px 8px !important;
1181    font-size: 11px !important;
1182}
1183
1184.textarea-compact {
1185    min-height: 28px !important;
1186    padding: 4px 8px !important;
1187    font-size: 11px !important;
1188    line-height: 1.3 !important;
1189}
1190
1191.field-label-compact {
1192    font-size: 10px !important;
1193    margin-bottom: 2px !important;
1194    font-weight: 500;
1195    color: #555;
1196}
1197
1198.form-field-checkbox-compact {
1199    padding: 4px 8px !important;
1200    margin-bottom: 6px !important;
1201}
1202
1203.checkbox-label-compact {
1204    font-size: 10px !important;
1205    gap: 4px !important;
1206}
1207
1208.checkbox-label-compact input[type="checkbox"] {
1209    width: 13px !important;
1210    height: 13px !important;
1211}
1212
1213.color-picker-compact {
1214    height: 30px !important;
1215}
1216
1217/* Responsive form fields */
1218@media (max-width: 480px) {
1219    .form-field {
1220        margin-bottom: 8px;
1221    }
1222}
1223
1224.form-field-checkbox {
1225    background: #f1f8f4;
1226    padding: 8px;
1227    border-radius: 4px;
1228    border: 1px solid #008800;
1229}
1230
1231.checkbox-label {
1232    display: flex;
1233    align-items: center;
1234    gap: 6px;
1235    cursor: pointer;
1236    font-size: 11px;
1237    font-weight: 500;
1238    color: #388e3c;
1239}
1240
1241.checkbox-label input[type="checkbox"] {
1242    width: 15px;
1243    height: 15px;
1244    cursor: pointer;
1245}
1246
1247.recurring-options {
1248    background: #f1f8f4;
1249    padding: 12px;
1250    border-radius: 4px;
1251    border: 1px solid #81c784;
1252    margin-top: 8px;
1253}
1254
1255.form-row-group {
1256    display: grid;
1257    grid-template-columns: 1fr 1fr;
1258    gap: 10px;
1259    margin-bottom: 10px;
1260}
1261
1262@media (max-width: 768px) {
1263    .form-row-group {
1264        grid-template-columns: 1fr;
1265        gap: 8px;
1266    }
1267}
1268
1269.field-label {
1270    display: block;
1271    font-size: 11px;
1272    font-weight: 600;
1273    color: #2c3e50;
1274    margin-bottom: 5px;
1275    text-transform: uppercase;
1276    letter-spacing: 0.3px;
1277}
1278
1279@media (max-width: 480px) {
1280    .field-label {
1281        font-size: 10px;
1282    }
1283}
1284
1285.input-sleek {
1286    width: 100%;
1287    padding: 8px 10px;
1288    border: 2px solid #e0e0e0;
1289    border-radius: 4px;
1290    font-size: 13px;
1291    font-family: inherit;
1292    transition: all 0.2s;
1293    background: #fafafa;
1294    box-sizing: border-box;
1295}
1296
1297.input-sleek:focus {
1298    outline: none;
1299    border-color: #008800;
1300    background: white;
1301    box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);
1302}
1303
1304.input-date {
1305    font-weight: 500;
1306    color: #2c3e50;
1307    cursor: pointer;
1308}
1309
1310.input-date::-webkit-calendar-picker-indicator {
1311    cursor: pointer;
1312    font-size: 14px;
1313    padding: 2px;
1314}
1315
1316.textarea-sleek {
1317    resize: vertical;
1318    min-height: 60px;
1319    line-height: 1.4;
1320}
1321
1322.color-picker-container {
1323    display: flex;
1324    align-items: center;
1325    gap: 10px;
1326}
1327
1328.color-picker-wrapper {
1329    display: flex;
1330    align-items: center;
1331    gap: 8px;
1332}
1333
1334.color-picker-wrapper .color-select {
1335    flex: 1;
1336}
1337
1338.color-picker-input {
1339    width: 45px;
1340    height: 38px;
1341    border: 2px solid #e0e0e0;
1342    border-radius: 6px;
1343    cursor: pointer;
1344    padding: 2px;
1345    display: none;
1346}
1347
1348.color-picker-input:hover {
1349    border-color: #4CAF50;
1350}
1351
1352.input-color-sleek {
1353    width: 50px;
1354    height: 38px;
1355    border: 2px solid #e0e0e0;
1356    border-radius: 6px;
1357    cursor: pointer;
1358    transition: all 0.2s;
1359}
1360
1361.input-color-sleek:hover {
1362    border-color: #008800;
1363    transform: scale(1.05);
1364}
1365
1366.color-label {
1367    font-size: 11px;
1368    color: #666;
1369}
1370
1371.form-row-group {
1372    display: grid;
1373    grid-template-columns: 2fr 1fr;
1374    gap: 16px;
1375    margin-bottom: 20px;
1376}
1377
1378.field-label {
1379    display: block;
1380    font-size: 13px;
1381    font-weight: 600;
1382    color: #2c3e50;
1383    margin-bottom: 8px;
1384    text-transform: uppercase;
1385    letter-spacing: 0.5px;
1386}
1387
1388.input-sleek {
1389    width: 100%;
1390    padding: 12px 16px;
1391    border: 2px solid #e0e0e0;
1392    border-radius: 8px;
1393    font-size: 15px;
1394    font-family: inherit;
1395    transition: all 0.2s;
1396    background: #fafafa;
1397    box-sizing: border-box;
1398}
1399
1400.input-sleek:focus {
1401    outline: none;
1402    border-color: #667eea;
1403    background: white;
1404    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
1405}
1406
1407.input-date {
1408    font-weight: 500;
1409    color: #2c3e50;
1410    cursor: pointer;
1411}
1412
1413.input-date::-webkit-calendar-picker-indicator {
1414    cursor: pointer;
1415    font-size: 18px;
1416    padding: 4px;
1417}
1418
1419.textarea-sleek {
1420    resize: vertical;
1421    min-height: 80px;
1422    line-height: 1.5;
1423}
1424
1425.color-picker-container {
1426    display: flex;
1427    align-items: center;
1428    gap: 12px;
1429}
1430
1431.input-color-sleek {
1432    width: 60px;
1433    height: 44px;
1434    border: 2px solid #e0e0e0;
1435    border-radius: 8px;
1436    cursor: pointer;
1437    transition: all 0.2s;
1438}
1439
1440.input-color-sleek:hover {
1441    border-color: #667eea;
1442    transform: scale(1.05);
1443}
1444
1445.color-label {
1446    font-size: 13px;
1447    color: #666;
1448}
1449
1450.form-field-checkbox {
1451    background: #f1f8f4;
1452    padding: 12px;
1453    border-radius: 6px;
1454    border: 1px solid #008800;
1455}
1456
1457.checkbox-label {
1458    display: flex;
1459    align-items: center;
1460    gap: 8px;
1461    cursor: pointer;
1462    font-size: 13px;
1463    font-weight: 500;
1464    color: #388e3c;
1465}
1466
1467.checkbox-label input[type="checkbox"] {
1468    width: 18px;
1469    height: 18px;
1470    cursor: pointer;
1471}
1472
1473.form-row-group {
1474    display: grid;
1475    grid-template-columns: 1fr 1fr;
1476    gap: 12px;
1477    margin-bottom: 16px;
1478}
1479
1480@media (max-width: 768px) {
1481    .form-row-group {
1482        grid-template-columns: 1fr;
1483    }
1484}
1485
1486.dialog-actions-sleek {
1487    display: flex;
1488    gap: 8px;
1489    padding: 12px 14px;
1490    background: #f8f9fa;
1491    border-top: 1px solid #e0e0e0;
1492    justify-content: flex-end;
1493    flex-shrink: 0;
1494}
1495
1496/* Ensure buttons are visible on small screens */
1497@media (max-width: 480px) {
1498    .dialog-actions-sleek {
1499        padding: 10px;
1500    }
1501
1502    .btn-sleek {
1503        flex: 1;
1504        justify-content: center;
1505    }
1506}
1507
1508.btn-sleek {
1509    padding: 7px 14px;
1510    border: none;
1511    border-radius: 4px;
1512    font-size: 12px;
1513    font-weight: 600;
1514    cursor: pointer;
1515    transition: all 0.2s;
1516    display: inline-flex;
1517    align-items: center;
1518    gap: 4px;
1519}
1520
1521.btn-cancel-sleek {
1522    background: #e0e0e0;
1523    color: #555;
1524}
1525
1526.btn-cancel-sleek:hover {
1527    background: #d0d0d0;
1528}
1529
1530.btn-save-sleek {
1531    background: #008800;
1532    color: white;
1533    box-shadow: 0 2px 4px rgba(33, 150, 243, 0.3);
1534}
1535
1536.btn-save-sleek:hover {
1537    background: #388e3c;
1538    box-shadow: 0 4px 8px rgba(33, 150, 243, 0.4);
1539}
1540
1541.btn-save-sleek:active {
1542    transform: translateY(1px);
1543}
1544
1545/* Day popup */
1546.day-popup {
1547    position: fixed;
1548    top: 0;
1549    left: 0;
1550    width: 100%;
1551    height: 100%;
1552    z-index: 10000;
1553    display: flex;
1554    align-items: center;
1555    justify-content: center;
1556    padding: 20px;
1557    box-sizing: border-box;
1558}
1559
1560.day-popup-overlay {
1561    position: absolute;
1562    top: 0;
1563    left: 0;
1564    width: 100%;
1565    height: 100%;
1566    background: rgba(0,0,0,0.5);
1567}
1568
1569.day-popup-content {
1570    position: relative;
1571    background: white;
1572    width: 100%;
1573    max-width: 450px;
1574    max-height: calc(100vh - 40px);
1575    border-radius: 8px;
1576    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
1577    z-index: 10001;
1578    display: flex;
1579    flex-direction: column;
1580}
1581
1582/* Responsive day popup */
1583@media (max-width: 768px) {
1584    .day-popup {
1585        padding: 10px;
1586    }
1587
1588    .day-popup-content {
1589        max-width: 100%;
1590        max-height: calc(100vh - 20px);
1591    }
1592}
1593
1594@media (max-width: 480px) {
1595    .day-popup {
1596        padding: 0;
1597    }
1598
1599    .day-popup-content {
1600        width: 100%;
1601        max-width: 100%;
1602        max-height: 100vh;
1603        border-radius: 0;
1604    }
1605}
1606
1607.day-popup-header {
1608    display: flex;
1609    align-items: center;
1610    justify-content: space-between;
1611    padding: 10px 14px;
1612    border-bottom: 2px solid #e0e0e0;
1613    background: #fafafa;
1614    border-radius: 8px 8px 0 0;
1615}
1616
1617.day-popup-header h4 {
1618    margin: 0;
1619    font-size: 15px;
1620    font-weight: 600;
1621    color: #2c3e50;
1622}
1623
1624.popup-close {
1625    background: none;
1626    border: none;
1627    font-size: 24px;
1628    color: #999;
1629    cursor: pointer;
1630    width: 28px;
1631    height: 28px;
1632    display: flex;
1633    align-items: center;
1634    justify-content: center;
1635    border-radius: 4px;
1636    transition: all 0.15s;
1637    line-height: 1;
1638    padding: 0;
1639}
1640
1641.popup-close:hover {
1642    background: #f0f0f0;
1643    color: #333;
1644}
1645
1646.day-popup-body {
1647    flex: 1;
1648    overflow-y: auto;
1649    padding: 10px 14px;
1650    max-height: 400px;
1651}
1652
1653.popup-events-list {
1654    display: flex;
1655    flex-direction: column;
1656    gap: 6px;
1657}
1658
1659.popup-continuation-notice {
1660    font-size: 10px;
1661    color: #666;
1662    background: #f0f0f0;
1663    padding: 3px 8px;
1664    border-radius: 3px;
1665    margin-bottom: 4px;
1666    border-left: 3px solid #00cc07;
1667    font-weight: 500;
1668}
1669
1670.popup-event-item {
1671    display: flex;
1672    background: #f8f9fa;
1673    border: 1px solid #e0e0e0;
1674    border-radius: 4px;
1675    overflow: hidden;
1676    transition: box-shadow 0.15s;
1677}
1678
1679.popup-event-item:hover {
1680    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
1681}
1682
1683.popup-event-content {
1684    flex: 1;
1685    padding: 6px 10px;
1686}
1687
1688.popup-event-main-row {
1689    display: flex;
1690    align-items: center;
1691    justify-content: space-between;
1692    gap: 8px;
1693}
1694
1695.popup-event-info-inline {
1696    display: flex;
1697    align-items: center;
1698    gap: 8px;
1699    flex: 1;
1700    min-width: 0;
1701}
1702
1703.popup-event-title {
1704    font-size: 13px;
1705    font-weight: 600;
1706    color: #2c3e50;
1707    white-space: nowrap;
1708    overflow: hidden;
1709    text-overflow: ellipsis;
1710    flex-shrink: 1;
1711}
1712
1713.popup-event-time {
1714    font-size: 11px;
1715    color: #008800;
1716    font-weight: 500;
1717    white-space: nowrap;
1718    flex-shrink: 0;
1719}
1720
1721.popup-event-multiday {
1722    font-size: 11px;
1723    color: #666;
1724    font-weight: 500;
1725    white-space: nowrap;
1726    flex-shrink: 0;
1727}
1728
1729.popup-event-namespace {
1730    font-size: 10px;
1731    color: #fff;
1732    background: #008800;
1733    padding: 2px 6px;
1734    border-radius: 3px;
1735    font-weight: 500;
1736    white-space: nowrap;
1737    flex-shrink: 0;
1738}
1739
1740.popup-event-desc {
1741    font-size: 11px;
1742    color: #666;
1743    line-height: 1.4;
1744    margin-top: 4px;
1745    padding-left: 0;
1746}
1747
1748.popup-event-actions {
1749    display: flex;
1750    gap: 4px;
1751    flex-shrink: 0;
1752}
1753
1754.event-edit-btn,
1755.event-delete-btn {
1756    background: none;
1757    border: none;
1758    font-size: 16px;
1759    cursor: pointer;
1760    padding: 4px;
1761    border-radius: 3px;
1762    transition: background 0.15s;
1763    line-height: 1;
1764    width: 24px;
1765    height: 24px;
1766    display: flex;
1767    align-items: center;
1768    justify-content: center;
1769}
1770
1771.event-edit-btn:hover {
1772    background: #e8f5e9;
1773}
1774
1775.event-delete-btn:hover {
1776    background: #ffebee;
1777}
1778
1779.day-popup-footer {
1780    padding: 10px 14px;
1781    border-top: 1px solid #e0e0e0;
1782    background: #fafafa;
1783    border-radius: 0 0 8px 8px;
1784}
1785
1786.btn-add-event {
1787    width: 100%;
1788    background: #008800;
1789    color: white;
1790    border: none;
1791    padding: 10px 16px;
1792    border-radius: 6px;
1793    font-size: 14px;
1794    font-weight: 500;
1795    cursor: pointer;
1796    transition: background 0.15s;
1797}
1798
1799.btn-add-event:hover {
1800    background: #45a049;
1801}
1802
1803.dialog-overlay {
1804    position: absolute;
1805    top: 0;
1806    left: 0;
1807    width: 100%;
1808    height: 100%;
1809    background: rgba(0,0,0,0.4);
1810}
1811
1812.dialog-content-compact {
1813    position: relative;
1814    background: white;
1815    width: 400px;
1816    border-radius: 6px;
1817    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
1818    padding: 20px;
1819    z-index: 10000;
1820}
1821
1822.dialog-content-compact h4 {
1823    margin: 0 0 16px 0;
1824    font-size: 16px;
1825    font-weight: 600;
1826    color: #2c3e50;
1827}
1828
1829.form-row {
1830    margin-bottom: 14px;
1831}
1832
1833.form-row-date {
1834    background: #f1f8f4;
1835    padding: 10px;
1836    border-radius: 6px;
1837    border: 2px solid #008800;
1838    margin-bottom: 18px;
1839}
1840
1841.form-row-date label {
1842    color: #388e3c;
1843    font-size: 13px;
1844}
1845
1846.form-row label {
1847    display: block;
1848    font-size: 12px;
1849    font-weight: 600;
1850    color: #555;
1851    margin-bottom: 4px;
1852}
1853
1854.form-row input[type="text"],
1855.form-row input[type="time"],
1856.form-row input[type="date"],
1857.form-row input[type="color"],
1858.form-row textarea {
1859    width: 100%;
1860    padding: 8px;
1861    border: 1px solid #d0d0d0;
1862    border-radius: 4px;
1863    font-size: 13px;
1864    box-sizing: border-box;
1865    font-family: inherit;
1866}
1867
1868.form-row input[type="color"] {
1869    height: 36px;
1870    padding: 2px;
1871}
1872
1873.form-row textarea {
1874    resize: vertical;
1875}
1876
1877.dialog-actions {
1878    display: flex;
1879    gap: 8px;
1880    justify-content: flex-end;
1881    margin-top: 16px;
1882}
1883
1884.btn-save,
1885.btn-cancel {
1886    padding: 8px 16px;
1887    border: none;
1888    border-radius: 4px;
1889    font-size: 13px;
1890    font-weight: 500;
1891    cursor: pointer;
1892    transition: all 0.15s;
1893}
1894
1895.btn-save {
1896    background: #008800;
1897    color: white;
1898}
1899
1900.btn-save:hover {
1901    background: #45a049;
1902}
1903
1904.btn-cancel {
1905    background: #f5f5f5;
1906    color: #555;
1907    border: 1px solid #d0d0d0;
1908}
1909
1910.btn-cancel:hover {
1911    background: #e8e8e8;
1912}
1913
1914/* Standalone event list */
1915.eventlist-standalone {
1916    max-width: 700px;
1917    margin: 20px auto;
1918    background: white;
1919    border: 1px solid #d0d0d0;
1920    border-radius: 6px;
1921    padding: 20px;
1922}
1923
1924.eventlist-standalone h3 {
1925    margin: 0 0 20px 0;
1926    font-size: 18px;
1927    font-weight: 600;
1928    color: #2c3e50;
1929    border-bottom: 2px solid #008800;
1930    padding-bottom: 10px;
1931}
1932
1933/* Compact Event List Widget */
1934.eventlist-compact-widget {
1935    background: #ffffff;
1936    border: 1px solid #d0d0d0;
1937    border-radius: 6px;
1938    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
1939    overflow: visible;
1940    display: flex;
1941    flex-direction: column;
1942    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
1943}
1944
1945/* Simple 2-Line Event List (New Design) */
1946.eventlist-simple {
1947    width: 100%;
1948    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
1949    font-size: 11px;
1950    line-height: 1.4;
1951    overflow: visible;
1952}
1953
1954/* Compact pastel header for {{eventlist today}} - Single line */
1955.eventlist-today-header {
1956    display: flex;
1957    flex-direction: column;
1958    align-items: center;
1959    padding: 6px 10px 2px 10px;
1960    background: #1a1a1a;
1961    color: #00cc07;
1962    border: 2px solid #00cc07;
1963    border-radius: 4px;
1964    margin-bottom: 8px;
1965    box-shadow: 0 0 8px rgba(0, 204, 7, 0.2);
1966    gap: 3px;
1967    overflow: visible;
1968}
1969
1970/* Purple theme overrides */
1971.sidebar-purple .eventlist-today-header {
1972    border-color: #9b59b6;
1973    box-shadow: 0 0 8px rgba(155, 89, 182, 0.2);
1974}
1975
1976/* Professional theme overrides */
1977.sidebar-professional .eventlist-today-header {
1978    border-color: #4a90e2;
1979    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
1980}
1981
1982/* Pink theme overrides */
1983.sidebar-pink .eventlist-today-header {
1984    border-color: #ff1493;
1985    box-shadow: 0 0 10px rgba(255, 20, 147, 0.4);
1986}
1987
1988.eventlist-bottom-info {
1989    display: flex;
1990    justify-content: space-between;
1991    align-items: center;
1992    width: 100%;
1993    gap: 10px;
1994    overflow: visible;
1995}
1996
1997.eventlist-weather {
1998    font-size: 13px;
1999    font-weight: 700;
2000    font-family: 'Courier New', monospace;
2001    letter-spacing: 0.3px;
2002    text-shadow: 0 0 4px rgba(0, 204, 7, 0.4);
2003    color: #00cc07;
2004    white-space: nowrap;
2005}
2006
2007.eventlist-today-date {
2008    font-size: 10px;
2009    font-weight: 700;
2010    color: #00cc07;
2011    letter-spacing: 0.5px;
2012    white-space: nowrap;
2013    text-transform: uppercase;
2014    text-align: center;
2015    flex: 1;
2016}
2017
2018.eventlist-today-clock {
2019    font-size: 16px;
2020    font-weight: 700;
2021    font-family: 'Courier New', monospace;
2022    letter-spacing: 1px;
2023    text-shadow: 0 0 6px rgba(0, 204, 7, 0.5);
2024    color: #00cc07;
2025}
2026
2027.eventlist-stats-container {
2028    width: 100%;
2029    display: flex;
2030    flex-direction: column;
2031    gap: 2px;
2032    margin: 0;
2033    overflow: visible;
2034}
2035
2036.eventlist-cpu-bar {
2037    width: 100%;
2038    height: 3px;
2039    background: rgba(0, 204, 7, 0.1);
2040    border-radius: 1px;
2041    overflow: visible;
2042    position: relative;
2043    cursor: help;
2044}
2045
2046.system-tooltip {
2047    position: fixed;
2048    background: rgba(0, 0, 0, 0.95);
2049    padding: 6px 8px;
2050    border-radius: 4px;
2051    font-size: 9px;
2052    line-height: 1.3;
2053    white-space: normal;
2054    min-width: 150px;
2055    max-width: 250px;
2056    z-index: 999999;
2057    border: 1px solid;
2058    box-shadow: 0 3px 8px rgba(0,0,0,0.5);
2059    pointer-events: none;
2060    /* Position will be set by JavaScript */
2061}
2062
2063.system-tooltip div {
2064    font-size: 9px !important;
2065    line-height: 1.3 !important;
2066    margin: 0;
2067}
2068
2069.system-tooltip .tooltip-title {
2070    font-weight: bold;
2071    margin-bottom: 2px;
2072}
2073
2074.eventlist-cpu-fill {
2075    height: 100%;
2076    background: #00cc07;
2077    transition: width 0.3s ease;
2078    box-shadow: 0 0 4px rgba(0, 204, 7, 0.6);
2079}
2080
2081.eventlist-cpu-fill-purple {
2082    background: #9b59b6;
2083    box-shadow: 0 0 4px rgba(155, 89, 182, 0.6);
2084}
2085
2086.eventlist-cpu-fill-orange {
2087    background: #ff8c00;
2088    box-shadow: 0 0 4px rgba(255, 140, 0, 0.6);
2089}
2090
2091/* Pink theme system bars - different shades of pink */
2092.sidebar-pink .eventlist-cpu-fill {
2093    background: #ff1493;  /* Hot pink for 5-min load */
2094    box-shadow: 0 0 5px rgba(255, 20, 147, 0.7);
2095}
2096
2097.sidebar-pink .eventlist-cpu-fill-purple {
2098    background: #ff69b4;  /* Pink for realtime CPU */
2099    box-shadow: 0 0 5px rgba(255, 105, 180, 0.7);
2100}
2101
2102.sidebar-pink .eventlist-cpu-fill-orange {
2103    background: #ff85c1;  /* Light pink for memory */
2104    box-shadow: 0 0 5px rgba(255, 133, 193, 0.7);
2105}
2106
2107.sidebar-pink .eventlist-cpu-realtime {
2108    background: rgba(255, 20, 147, 0.1);
2109}
2110
2111.sidebar-pink .eventlist-mem-realtime {
2112    background: rgba(255, 133, 193, 0.1);
2113}
2114
2115.eventlist-cpu-realtime {
2116    background: rgba(155, 89, 182, 0.1);
2117}
2118
2119.eventlist-mem-realtime {
2120    background: rgba(255, 140, 0, 0.1);
2121}
2122
2123.eventlist-simple-item {
2124    border-bottom: 1px solid #e0e0e0;
2125    padding: 0;
2126}
2127
2128.eventlist-simple-item:last-child {
2129    border-bottom: none;
2130}
2131
2132.eventlist-simple-today {
2133    background: #f3eeff !important;
2134    border-left: 3px solid #9b59b6 !important;
2135}
2136
2137.eventlist-simple-today .eventlist-simple-header {
2138    background: #e8d9ff !important;
2139}
2140
2141.eventlist-simple-today .eventlist-simple-body {
2142    background: #f9f5ff !important;
2143}
2144
2145.eventlist-simple-today-badge {
2146    background: #9b59b6;
2147    color: white;
2148    padding: 1px 4px;
2149    border-radius: 3px;
2150    font-size: 9px;
2151    font-weight: 600;
2152    letter-spacing: 0.5px;
2153    display: inline-block;
2154    vertical-align: middle;
2155    float: right; /* Right-align */
2156    margin-left: auto;
2157}
2158
2159.eventlist-simple-pastdue {
2160    background: #ffe6e6 !important;
2161    border-left: 3px solid #e74c3c !important;
2162}
2163
2164.eventlist-simple-pastdue .eventlist-simple-header {
2165    background: #ffd9d9 !important;
2166}
2167
2168.eventlist-simple-pastdue .eventlist-simple-body {
2169    background: #fff2f2 !important;
2170}
2171
2172.eventlist-simple-pastdue-badge {
2173    background: #e74c3c;
2174    color: white;
2175    padding: 1px 4px;
2176    border-radius: 3px;
2177    font-size: 9px;
2178    font-weight: 600;
2179    letter-spacing: 0.5px;
2180    display: inline-block;
2181    vertical-align: middle;
2182    float: right; /* Right-align */
2183    margin-left: auto;
2184}
2185
2186.eventlist-simple-tomorrow {
2187    background: #fff9e6 !important;
2188}
2189
2190.eventlist-simple-tomorrow .eventlist-simple-header {
2191    background: #fff4cc !important;
2192}
2193
2194.eventlist-simple-tomorrow .eventlist-simple-body {
2195    background: #fffbf0 !important;
2196}
2197
2198.eventlist-simple-header {
2199    font-weight: 500;
2200    color: #2c3e50;
2201    padding: 4px 6px;
2202    line-height: 1.5;
2203    background: #f5fcf5;
2204    font-size: 11px;
2205}
2206
2207.eventlist-simple-title {
2208    font-weight: 700;
2209    color: #ff6600;
2210    font-size: 12px;
2211}
2212
2213.eventlist-simple-time {
2214    color: #666;
2215    font-size: 10px;
2216}
2217
2218.eventlist-simple-date {
2219    color: #888;
2220    font-size: 10px;
2221}
2222
2223.eventlist-simple-namespace {
2224    background: #e8f5e9;
2225    color: #388e3c;
2226    padding: 1px 4px;
2227    border-radius: 3px;
2228    font-size: 9px;
2229    font-weight: 500;
2230    margin-left: 4px;
2231}
2232
2233.eventlist-simple-body {
2234    color: #555;
2235    font-size: 11px;
2236    line-height: 1.5;
2237    padding: 4px 6px;
2238    background: #fff;
2239}
2240
2241.eventlist-simple-body a {
2242    color: #008800;
2243    text-decoration: none;
2244}
2245
2246.eventlist-simple-body a:hover {
2247    text-decoration: underline;
2248}
2249
2250.eventlist-simple-body strong {
2251    font-weight: 600;
2252    color: #2c3e50;
2253}
2254
2255.eventlist-simple-body code {
2256    background: #f5f5f5;
2257    padding: 1px 3px;
2258    border-radius: 3px;
2259    font-family: 'Courier New', monospace;
2260    font-size: 10px;
2261}
2262
2263.eventlist-simple-no-desc {
2264    display: none;
2265}
2266
2267.eventlist-simple-empty {
2268    padding: 10px 0;
2269    color: #999;
2270}
2271
2272.eventlist-simple-empty .eventlist-simple-header {
2273    margin-bottom: 4px;
2274    background: #f5fcf5;
2275}
2276
2277.eventlist-simple-empty .eventlist-simple-body {
2278    color: #999;
2279    font-style: italic;
2280    padding: 4px 6px;
2281    font-size: 11px;
2282}
2283
2284.eventlist-widget-header {
2285    background: #008800;
2286    color: white;
2287    padding: 8px 12px;
2288    flex-shrink: 0;
2289}
2290
2291.eventlist-widget-header h4 {
2292    margin: 0;
2293    font-size: 13px;
2294    font-weight: 600;
2295}
2296
2297.eventlist-widget-content {
2298    overflow-y: auto;
2299    padding: 8px;
2300    flex: 1;
2301}
2302
2303.eventlist-widget-date {
2304    font-size: 11px;
2305    font-weight: 600;
2306    color: #666;
2307    margin: 8px 0 4px 0;
2308    padding-bottom: 2px;
2309    border-bottom: 1px solid #e0e0e0;
2310}
2311
2312.eventlist-widget-item {
2313    background: #fafafa;
2314    border: 1px solid #e0e0e0;
2315    border-left: 3px solid #3498db;
2316    border-radius: 3px;
2317    padding: 6px 8px;
2318    margin-bottom: 6px;
2319    transition: all 0.15s;
2320}
2321
2322.eventlist-widget-item:hover {
2323    background: #f0f0f0;
2324    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
2325}
2326
2327.eventlist-widget-title {
2328    font-size: 12px;
2329    font-weight: 600;
2330    color: #2c3e50;
2331    margin-bottom: 2px;
2332}
2333
2334.eventlist-widget-time {
2335    font-size: 11px;
2336    color: #666;
2337    margin-bottom: 4px;
2338}
2339
2340.eventlist-widget-desc {
2341    font-size: 11px;
2342    color: #555;
2343    margin-top: 4px;
2344    line-height: 1.4;
2345}
2346
2347.eventlist-widget-desc img {
2348    max-width: 100%;
2349    height: auto;
2350    border-radius: 3px;
2351    margin: 4px 0;
2352}
2353
2354.eventlist-widget-desc a {
2355    color: #008800;
2356    text-decoration: none;
2357    border-bottom: 1px dotted #008800;
2358}
2359
2360.eventlist-widget-desc a:hover {
2361    border-bottom-style: solid;
2362}
2363
2364.eventlist-widget-empty {
2365    text-align: center;
2366    color: #999;
2367    font-size: 12px;
2368    padding: 20px;
2369    margin: 0;
2370}
2371
2372/* Standalone event panel (right panel only) */
2373.event-panel-standalone {
2374    width: 320px;
2375    background: #ffffff;
2376    border: 1px solid #d0d0d0;
2377    border-radius: 6px;
2378    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
2379    display: flex;
2380    flex-direction: column;
2381    max-height: 600px;
2382    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
2383    font-size: 13px;
2384}
2385
2386.event-panel-standalone .event-list-compact {
2387    overflow-y: auto;
2388    flex: 1;
2389    padding: 10px;
2390}
2391
2392/* Event panel - Compact two-row header for ~500px width (10% smaller) */
2393.panel-header-compact {
2394    background: #f5f5f5;
2395    border-bottom: 2px solid #ddd;
2396}
2397
2398.panel-header-row-1 {
2399    display: flex;
2400    align-items: center;
2401    gap: 7px;
2402    padding: 7px 11px;
2403    background: #fafafa;
2404    border-bottom: 1px solid #e8e8e8;
2405}
2406
2407.panel-header-row-2 {
2408    display: flex;
2409    align-items: center;
2410    gap: 7px;
2411    padding: 7px 11px;
2412    background: #ffffff;
2413}
2414
2415.panel-nav-btn {
2416    background: #ffffff;
2417    border: 1px solid #ccc;
2418    color: #333;
2419    width: 29px;
2420    height: 29px;
2421    border-radius: 4px;
2422    cursor: pointer;
2423    font-size: 16px;
2424    font-weight: bold;
2425    transition: all 0.2s;
2426    display: flex;
2427    align-items: center;
2428    justify-content: center;
2429    padding: 0;
2430    flex-shrink: 0;
2431}
2432
2433.panel-nav-btn:hover {
2434    background: #00cc07;
2435    color: white;
2436    border-color: #00cc07;
2437}
2438
2439.panel-month-title {
2440    margin: 0;
2441    font-size: 13px;
2442    font-weight: 600;
2443    color: #2c3e50;
2444    cursor: pointer;
2445    padding: 5px 9px;
2446    border-radius: 4px;
2447    transition: background 0.2s;
2448    white-space: nowrap;
2449    user-select: none;
2450    flex: 1;
2451    text-align: center;
2452    background: #ffffff;
2453    border: 1px solid #e0e0e0;
2454}
2455
2456.panel-month-title:hover {
2457    background: #e8f5e9;
2458    border-color: #00cc07;
2459}
2460
2461.panel-ns-badge {
2462    background: #e3f2fd;
2463    color: #1976d2;
2464    padding: 3px 7px;
2465    border-radius: 11px;
2466    font-size: 9px;
2467    font-weight: 600;
2468    text-transform: uppercase;
2469    letter-spacing: 0.3px;
2470    white-space: nowrap;
2471    border: 1px solid #bbdefb;
2472    flex-shrink: 0;
2473}
2474
2475.panel-ns-badge.filter-on {
2476    background: #ff9800;
2477    color: white;
2478    border-color: #f57c00;
2479    cursor: pointer;
2480    transition: all 0.2s;
2481}
2482
2483.panel-ns-badge.filter-on:hover {
2484    background: #f57c00;
2485}
2486
2487.panel-today-btn {
2488    background: #ffffff;
2489    border: 1px solid #ccc;
2490    color: #333;
2491    padding: 5px 11px;
2492    border-radius: 4px;
2493    cursor: pointer;
2494    font-size: 10px;
2495    font-weight: 600;
2496    transition: all 0.2s;
2497    white-space: nowrap;
2498    flex-shrink: 0;
2499}
2500
2501.panel-today-btn:hover {
2502    background: #00cc07;
2503    color: white;
2504    border-color: #00cc07;
2505}
2506
2507.panel-search-box {
2508    position: relative;
2509    flex: 1;
2510}
2511
2512.panel-search-input {
2513    width: 100%;
2514    padding: 5px 25px 5px 9px;
2515    border: 1px solid #d0d0d0;
2516    border-radius: 4px;
2517    font-size: 11px;
2518    outline: none;
2519    transition: border-color 0.2s, box-shadow 0.2s;
2520    background: #fafafa;
2521}
2522
2523.panel-search-input:focus {
2524    border-color: #00cc07;
2525    box-shadow: 0 0 0 2px rgba(0, 204, 7, 0.1);
2526    background: white;
2527}
2528
2529.panel-search-input::placeholder {
2530    color: #999;
2531}
2532
2533.panel-search-clear {
2534    position: absolute;
2535    right: 5px;
2536    top: 50%;
2537    transform: translateY(-50%);
2538    background: none;
2539    border: none;
2540    color: #999;
2541    cursor: pointer;
2542    padding: 3px;
2543    font-size: 13px;
2544    line-height: 1;
2545    transition: color 0.2s;
2546}
2547
2548.panel-search-clear:hover {
2549    color: #333;
2550}
2551
2552.panel-add-btn {
2553    background: #00cc07;
2554    border: 1px solid #00a806;
2555    color: white;
2556    padding: 5px 13px;
2557    border-radius: 4px;
2558    cursor: pointer;
2559    font-size: 11px;
2560    font-weight: 600;
2561    transition: all 0.2s;
2562    white-space: nowrap;
2563    flex-shrink: 0;
2564}
2565
2566.panel-add-btn:hover {
2567    background: #00a806;
2568    transform: translateY(-1px);
2569    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
2570}
2571
2572.panel-standalone-header {
2573    display: flex;
2574    align-items: center;
2575    gap: 8px;
2576    padding: 12px 12px;
2577    background: #fafafa;
2578    border-bottom: 1px solid #e0e0e0;
2579    flex-shrink: 0;
2580}
2581
2582.panel-header-content {
2583    flex: 1;
2584    display: flex;
2585    flex-direction: column;
2586    align-items: center;
2587    gap: 4px;
2588}
2589
2590.panel-standalone-header h3 {
2591    margin: 0;
2592    font-size: 12px;
2593    font-weight: 600;
2594    color: #2c3e50;
2595    white-space: nowrap;
2596}
2597
2598.panel-standalone-header .calendar-month-picker {
2599    cursor: pointer;
2600    user-select: none;
2601    transition: all 0.15s;
2602    padding: 4px 8px;
2603    border-radius: 4px;
2604    white-space: nowrap;
2605}
2606
2607.panel-standalone-header .calendar-month-picker:hover {
2608    background: #e8e8e8;
2609    color: #008800;
2610}
2611
2612.panel-standalone-header .namespace-badge {
2613    font-size: 11px;
2614    font-weight: 500;
2615    color: #388e3c;
2616    background: #e8f5e9;
2617    padding: 2px 8px;
2618    border-radius: 3px;
2619    text-decoration: none;
2620    transition: all 0.15s;
2621    display: inline-block;
2622}
2623
2624.panel-standalone-header .namespace-badge:hover {
2625    background: #c8e6c9;
2626    color: #2e7d32;
2627}
2628
2629.panel-standalone-actions {
2630    padding: 10px 16px;
2631    background: #ffffff;
2632    border-bottom: 1px solid #e0e0e0;
2633    flex-shrink: 0;
2634    display: flex;
2635    align-items: center;
2636    gap: 8px;
2637}
2638
2639.panel-standalone-actions .add-event-compact {
2640    flex-shrink: 0;
2641}
2642
2643.eventlist-day-group {
2644    margin-bottom: 24px;
2645}
2646
2647.eventlist-date {
2648    margin: 0 0 12px 0;
2649    font-size: 14px;
2650    font-weight: 600;
2651    color: #2c3e50;
2652    background: #f8f8f8;
2653    padding: 8px 12px;
2654    border-left: 4px solid #008800;
2655}
2656
2657.eventlist-item {
2658    display: flex;
2659    margin-bottom: 10px;
2660    background: white;
2661    border: 1px solid #e0e0e0;
2662    border-radius: 4px;
2663    overflow: hidden;
2664}
2665
2666.eventlist-content {
2667    flex: 1;
2668    padding: 12px;
2669    display: flex;
2670    align-items: center;
2671    gap: 12px;
2672}
2673
2674.eventlist-time {
2675    font-size: 12px;
2676    font-weight: 600;
2677    color: #008800;
2678    min-width: 50px;
2679}
2680
2681.eventlist-title {
2682    font-size: 14px;
2683    font-weight: 500;
2684    color: #2c3e50;
2685}
2686
2687.eventlist-desc {
2688    font-size: 12px;
2689    color: #666;
2690    margin-top: 6px;
2691    line-height: 1.4;
2692}
2693
2694/* ===================================
2695   MOBILE RESPONSIVE - EVENTLIST & EVENTPANEL
2696   =================================== */
2697
2698/* Tablet and below (768px) */
2699@media (max-width: 768px) {
2700    /* Event Panel Standalone */
2701    .event-panel-standalone {
2702        width: 100%;
2703        max-width: 100%;
2704        border-radius: 0;
2705        max-height: none;
2706        min-height: 400px;
2707    }
2708
2709    /* Compact Event List Widget */
2710    .eventlist-compact-widget {
2711        width: 100% !important;
2712        max-width: 100%;
2713        border-radius: 0;
2714    }
2715
2716    .eventlist-widget-header h4 {
2717        font-size: 14px;
2718    }
2719
2720    .eventlist-widget-title {
2721        font-size: 13px;
2722    }
2723
2724    .eventlist-widget-time {
2725        font-size: 12px;
2726    }
2727
2728    /* Standalone event list (old style) */
2729    .eventlist-standalone {
2730        max-width: 100%;
2731        margin: 10px;
2732        padding: 15px;
2733        border-radius: 0;
2734    }
2735
2736    .eventlist-standalone h3 {
2737        font-size: 16px;
2738    }
2739}
2740
2741/* Mobile (480px and below) */
2742@media (max-width: 480px) {
2743    /* Event Panel Standalone */
2744    .event-panel-standalone {
2745        font-size: 12px;
2746        min-height: 300px;
2747    }
2748
2749    .panel-standalone-header {
2750        padding: 10px 12px;
2751    }
2752
2753    .panel-standalone-header h3 {
2754        font-size: 12px;
2755    }
2756
2757    .panel-standalone-actions {
2758        padding: 8px 12px;
2759    }
2760
2761    .event-panel-standalone .event-list-compact {
2762        padding: 8px;
2763    }
2764
2765    /* Compact Event List Widget */
2766    .eventlist-compact-widget {
2767        min-width: 280px;
2768    }
2769
2770    .eventlist-widget-header {
2771        padding: 6px 10px;
2772    }
2773
2774    .eventlist-widget-header h4 {
2775        font-size: 13px;
2776    }
2777
2778    .eventlist-widget-content {
2779        padding: 6px;
2780    }
2781
2782    .eventlist-widget-item {
2783        padding: 5px 6px;
2784        margin-bottom: 5px;
2785    }
2786
2787    .eventlist-widget-title {
2788        font-size: 12px;
2789    }
2790
2791    .eventlist-widget-time {
2792        font-size: 11px;
2793    }
2794
2795    .eventlist-widget-desc {
2796        font-size: 11px;
2797    }
2798
2799    /* Standalone event list */
2800    .eventlist-standalone {
2801        margin: 5px;
2802        padding: 10px;
2803    }
2804
2805    .eventlist-standalone h3 {
2806        font-size: 14px;
2807        margin-bottom: 15px;
2808    }
2809
2810    .eventlist-day-group {
2811        margin-bottom: 18px;
2812    }
2813
2814    .eventlist-date {
2815        font-size: 13px;
2816        padding: 6px 10px;
2817    }
2818
2819    .eventlist-title {
2820        font-size: 13px;
2821    }
2822
2823    .eventlist-time {
2824        font-size: 11px;
2825    }
2826
2827    .eventlist-desc {
2828        font-size: 11px;
2829    }
2830}
2831
2832/* Very small mobile (320px) */
2833@media (max-width: 320px) {
2834    .eventlist-compact-widget {
2835        min-width: 100%;
2836    }
2837
2838    .event-panel-standalone {
2839        min-height: 250px;
2840    }
2841
2842    .eventlist-widget-header h4 {
2843        font-size: 12px;
2844    }
2845
2846    .eventlist-widget-title {
2847        font-size: 11px;
2848    }
2849
2850    .panel-standalone-header h3 {
2851        font-size: 12px;
2852    }
2853}
2854
2855/* Past Events Collapsible Section */
2856.past-events-section {
2857    margin-bottom: 10px;
2858    border-bottom: 1px solid #e0e0e0;
2859}
2860
2861.past-events-toggle {
2862    padding: 6px 10px;
2863    background: var(--cell-bg);
2864    color: var(--text-dim);
2865    cursor: pointer;
2866    user-select: none;
2867    font-size: 11px;
2868    font-weight: 600;
2869    display: flex;
2870    align-items: center;
2871    border-radius: 3px;
2872    transition: background 0.2s;
2873}
2874
2875.past-events-toggle:hover {
2876    background: var(--background-alt);
2877}
2878
2879.past-events-arrow {
2880    font-size: 9px;
2881    margin-right: 5px;
2882    transition: transform 0.2s;
2883    display: inline-block;
2884    width: 10px;
2885    color: var(--text-dim);
2886}
2887
2888.past-events-label {
2889    color: var(--text-dim);
2890}
2891
2892.past-events-content {
2893    margin-top: 5px;
2894}
2895
2896/* Namespace Search Dropdown */
2897.namespace-search-wrapper {
2898    position: relative;
2899}
2900
2901.namespace-search-input {
2902    width: 100%;
2903}
2904
2905.namespace-dropdown {
2906    position: absolute;
2907    top: 100%;
2908    left: 0;
2909    right: 0;
2910    max-height: 200px;
2911    overflow-y: auto;
2912    background: white;
2913    border: 1px solid #ddd;
2914    border-top: none;
2915    border-radius: 0 0 4px 4px;
2916    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
2917    z-index: 1000;
2918    margin-top: -1px;
2919}
2920
2921.namespace-option {
2922    padding: 8px 12px;
2923    cursor: pointer;
2924    font-size: 12px;
2925    border-bottom: 1px solid #f0f0f0;
2926    transition: background-color 0.15s;
2927}
2928
2929.namespace-option:hover {
2930    background-color: #f5f5f5;
2931}
2932
2933.namespace-option.selected {
2934    background-color: #e3f2fd;
2935    color: #1976d2;
2936}
2937
2938.namespace-option:last-child {
2939    border-bottom: none;
2940}
2941
2942/* Matrix-themed Sidebar Widget */
2943.sidebar-matrix {
2944    font-family: system-ui, sans-serif !important;
2945    background: linear-gradient(180deg, #242424 0%, #2a2a2a 100%) !important;
2946    border: 2px solid #00cc07 !important;
2947    box-shadow: 0 0 15px rgba(0, 204, 7, 0.4), inset 0 0 20px rgba(0, 204, 7, 0.05) !important;
2948}
2949
2950.sidebar-matrix-header {
2951    background: linear-gradient(180deg, #2a2a2a 0%, #242424 100%) !important;
2952    border-bottom: 2px solid #00cc07 !important;
2953    box-shadow: 0 2px 8px rgba(0, 204, 7, 0.3) !important;
2954}
2955
2956.sidebar-matrix-clock {
2957    animation: matrix-pulse 2s ease-in-out infinite;
2958}
2959
2960.sidebar-matrix-date {
2961    opacity: 0.9;
2962}
2963
2964@keyframes matrix-pulse {
2965    0%, 100% {
2966        text-shadow: 0 0 6px rgba(0, 204, 7, 0.5);
2967    }
2968    50% {
2969        text-shadow: 0 0 10px rgba(0, 255, 0, 0.8), 0 0 15px rgba(0, 204, 7, 0.4);
2970    }
2971}
2972
2973/* Matrix glow effect for sidebar */
2974.sidebar-widget.sidebar-matrix::before {
2975    content: '';
2976    position: absolute;
2977    top: -2px;
2978    left: -2px;
2979    right: -2px;
2980    bottom: -2px;
2981    background: linear-gradient(45deg, #00cc07, #00ff00, #00cc07);
2982    border-radius: 4px;
2983    opacity: 0;
2984    z-index: -1;
2985    animation: matrix-border-glow 3s ease-in-out infinite;
2986}
2987
2988@keyframes matrix-border-glow {
2989    0%, 100% {
2990        opacity: 0;
2991    }
2992    50% {
2993        opacity: 0.3;
2994    }
2995}
2996
2997/* Scrollbar styling for matrix theme */
2998.sidebar-matrix ::-webkit-scrollbar {
2999    width: 6px;
3000}
3001
3002.sidebar-matrix ::-webkit-scrollbar-track {
3003    background: #242424;
3004}
3005
3006.sidebar-matrix ::-webkit-scrollbar-thumb {
3007    background: #00cc07;
3008    border-radius: 3px;
3009    box-shadow: 0 0 5px rgba(0, 204, 7, 0.5);
3010}
3011
3012.sidebar-matrix ::-webkit-scrollbar-thumb:hover {
3013    background: #00ff00;
3014    box-shadow: 0 0 8px rgba(0, 255, 0, 0.8);
3015}
3016
3017/* ====================================
3018   PINK BLING THEME - SPECIAL EFFECTS
3019   ==================================== */
3020
3021/* Shimmer animation for today's cell - TONED DOWN */
3022@keyframes pink-shimmer {
3023    0% {
3024        box-shadow: 0 0 3px rgba(255, 20, 147, 0.2),
3025                    0 0 5px rgba(255, 20, 147, 0.1);
3026    }
3027    50% {
3028        box-shadow: 0 0 8px rgba(255, 20, 147, 0.4),
3029                    0 0 12px rgba(255, 20, 147, 0.2);
3030    }
3031    100% {
3032        box-shadow: 0 0 3px rgba(255, 20, 147, 0.2),
3033                    0 0 5px rgba(255, 20, 147, 0.1);
3034    }
3035}
3036
3037/* Sparkle animation for today's day number - SUBTLE */
3038@keyframes pink-sparkle {
3039    0%, 100% {
3040        text-shadow: 0 0 3px rgba(255, 20, 147, 0.6);
3041        transform: scale(1);
3042    }
3043    50% {
3044        text-shadow: 0 0 6px rgba(255, 20, 147, 0.8),
3045                     0 0 10px rgba(255, 105, 180, 0.5);
3046        transform: scale(1.02);
3047    }
3048}
3049
3050/* Glow pulse for event bars - SUBTLE */
3051@keyframes pink-glow-pulse {
3052    0%, 100% {
3053        box-shadow: 0 0 2px currentColor;
3054    }
3055    50% {
3056        box-shadow: 0 0 4px currentColor,
3057                    0 0 6px rgba(255, 105, 180, 0.3);
3058    }
3059}
3060
3061/* Gradient shimmer for headers */
3062@keyframes pink-gradient-shimmer {
3063    0% {
3064        background-position: 0% 50%;
3065    }
3066    50% {
3067        background-position: 100% 50%;
3068    }
3069    100% {
3070        background-position: 0% 50%;
3071    }
3072}
3073
3074/* Pink particle explosion on click */
3075@keyframes particle-explode {
3076    0% {
3077        opacity: 1;
3078        transform: translate(0, 0) scale(1);
3079    }
3080    100% {
3081        opacity: 0;
3082        transform: translate(var(--tx), var(--ty)) scale(0);
3083    }
3084}
3085
3086/* Cursor trail glow */
3087@keyframes cursor-trail-fade {
3088    0% {
3089        opacity: 1;
3090        transform: scale(1);
3091    }
3092    100% {
3093        opacity: 0;
3094        transform: scale(0.5);
3095    }
3096}
3097
3098/* Pink particle styles */
3099.pink-particle {
3100    position: fixed;  /* Changed to fixed so it works anywhere on screen */
3101    width: 6px;
3102    height: 6px;
3103    background: radial-gradient(circle, #ff1493, #ff69b4);
3104    border-radius: 50%;
3105    pointer-events: none;
3106    z-index: 9999999;  /* Above everything including dialogs */
3107    box-shadow: 0 0 8px #ff1493,
3108                0 0 15px #ff69b4;
3109}
3110
3111/* Cursor trail glow */
3112.pink-cursor-trail {
3113    position: fixed;  /* Changed to fixed so it works anywhere on screen */
3114    width: 8px;
3115    height: 8px;
3116    background: radial-gradient(circle, rgba(255, 20, 147, 0.8), rgba(255, 105, 180, 0.4));
3117    border-radius: 50%;
3118    pointer-events: none;
3119    z-index: 9999998;  /* Just below particles */
3120    box-shadow: 0 0 10px rgba(255, 20, 147, 0.6),
3121                0 0 20px rgba(255, 105, 180, 0.3);
3122}
3123
3124/* Tiny neon pixel sparkles */
3125.pink-pixel-sparkle {
3126    position: fixed;
3127    width: 2px;
3128    height: 2px;
3129    background: #fff;
3130    border-radius: 50%;
3131    pointer-events: none;
3132    z-index: 9999997;  /* Just below trail */
3133    box-shadow: 0 0 2px #ff1493,
3134                0 0 4px #ff69b4,
3135                0 0 6px #fff;
3136}
3137
3138/* Pixel sparkle twinkle animation */
3139@keyframes pixel-twinkle {
3140    0%, 100% {
3141        opacity: 0;
3142        transform: scale(0);
3143    }
3144    50% {
3145        opacity: 1;
3146        transform: scale(1.5);
3147    }
3148}
3149
3150/* Pixel sparkle float away */
3151@keyframes pixel-float-away {
3152    0% {
3153        opacity: 1;
3154        transform: translateY(0) scale(1);
3155    }
3156    100% {
3157        opacity: 0;
3158        transform: translateY(-30px) scale(0);
3159    }
3160}
3161
3162/* Pink theme specific styles - TONED DOWN */
3163.calendar-theme-pink .cal-today {
3164    animation: pink-shimmer 2s ease-in-out infinite;
3165    border: 2px solid #ff1493 !important;
3166    position: relative;
3167    overflow: visible;
3168}
3169
3170.calendar-theme-pink .cal-today .day-num {
3171    animation: pink-sparkle 1.5s ease-in-out infinite;
3172}
3173
3174.calendar-theme-pink .event-bar {
3175    animation: pink-glow-pulse 2s ease-in-out infinite;
3176}
3177
3178.calendar-theme-pink .calendar-compact-header {
3179    background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24, #1a0d14);
3180    background-size: 300% 300%;
3181    animation: pink-gradient-shimmer 3s ease infinite;
3182}
3183
3184.calendar-theme-pink .event-list-header {
3185    background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24);
3186    background-size: 300% 300%;
3187    animation: pink-gradient-shimmer 3s ease infinite;
3188}
3189
3190/* Subtle hover glow - TONED DOWN */
3191.calendar-theme-pink .cal-today:hover {
3192    box-shadow: 0 0 10px rgba(255, 20, 147, 0.5),
3193                0 0 15px rgba(255, 20, 147, 0.3) !important;
3194}
3195
3196/* Pink theme event items get subtle glow */
3197.calendar-theme-pink .event-compact-item {
3198    box-shadow: 0 0 2px rgba(255, 20, 147, 0.1);
3199    transition: all 0.3s ease;
3200}
3201
3202.calendar-theme-pink .event-compact-item:hover {
3203    box-shadow: 0 0 5px rgba(255, 20, 147, 0.3);
3204    transform: translateX(2px);
3205}
3206
3207/* Calendar borders get subtle glow */
3208.calendar-theme-pink.calendar-compact-container {
3209    box-shadow: 0 0 8px rgba(255, 20, 147, 0.2),
3210                0 2px 4px rgba(0,0,0,0.06);
3211    position: relative;
3212}
3213
3214/* Today badge extra sparkle */
3215.calendar-theme-pink .event-today-badge {
3216    animation: pink-sparkle 1.5s ease-in-out infinite;
3217}
3218
3219/* Past due badge pulsing effect - SUBTLE */
3220@keyframes pink-pulse-urgent {
3221    0%, 100% {
3222        box-shadow: 0 0 3px rgba(255, 140, 0, 0.4);
3223    }
3224    50% {
3225        box-shadow: 0 0 8px rgba(255, 140, 0, 0.6);
3226    }
3227}
3228
3229.calendar-theme-pink .event-pastdue-badge {
3230    animation: pink-pulse-urgent 1s ease-in-out infinite;
3231}
3232