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