xref: /plugin/calendar/style.css (revision 87ac9bf3391b3f7059f4ccd6abc619e9db5fad8d)
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.calendar-compact-header h3 {
104    margin: 0;
105    font-size: 14px;
106    font-weight: 600;
107    color: #2c3e50;
108    flex: 1;
109    text-align: center;
110}
111
112.calendar-month-picker {
113    cursor: pointer;
114    user-select: none;
115    transition: all 0.15s;
116    padding: 4px 8px;
117    border-radius: 4px;
118}
119
120.calendar-month-picker:hover {
121    background: #f0f0f0;
122    color: #008800;
123}
124
125.month-picker-overlay {
126    position: fixed;
127    top: 0;
128    left: 0;
129    right: 0;
130    bottom: 0;
131    background: rgba(0, 0, 0, 0.5);
132    display: flex;
133    align-items: center;
134    justify-content: center;
135    z-index: 10000;
136}
137
138.month-picker-dialog {
139    background: white;
140    border-radius: 8px;
141    padding: 20px;
142    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
143    min-width: 300px;
144}
145
146.month-picker-dialog h4 {
147    margin: 0 0 16px 0;
148    font-size: 16px;
149    font-weight: 600;
150    color: #2c3e50;
151}
152
153.month-picker-selects {
154    display: flex;
155    gap: 12px;
156    margin-bottom: 16px;
157}
158
159.month-picker-select {
160    flex: 1;
161    padding: 8px 12px;
162    border: 1px solid #d0d0d0;
163    border-radius: 4px;
164    font-size: 14px;
165    background: white;
166    cursor: pointer;
167}
168
169.month-picker-select:focus {
170    outline: none;
171    border-color: #008800;
172    box-shadow: 0 0 0 2px rgba(0, 136, 0, 0.1);
173}
174
175.month-picker-actions {
176    display: flex;
177    gap: 8px;
178    justify-content: flex-end;
179}
180
181.cal-nav-btn {
182    background: #f5f5f5;
183    border: 1px solid #d0d0d0;
184    width: 28px;
185    height: 28px;
186    border-radius: 4px;
187    cursor: pointer;
188    font-size: 16px;
189    color: #555;
190    transition: all 0.15s;
191    padding: 0;
192    display: flex;
193    align-items: center;
194    justify-content: center;
195}
196
197.cal-nav-btn:hover {
198    background: #e8e8e8;
199    border-color: #aaa;
200}
201
202.cal-today-btn {
203    background: #008800;
204    border: 1px solid #388e3c;
205    color: white;
206    font-size: 11px;
207    font-weight: 600;
208    padding: 4px 10px;
209    border-radius: 4px;
210    cursor: pointer;
211    transition: all 0.15s;
212}
213
214.cal-today-btn:hover {
215    background: #388e3c;
216    border-color: #2e7d32;
217}
218
219/* Calendar grid - Excel-like sizing - RESPONSIVE */
220.calendar-compact-grid {
221    width: 100%;
222    border-collapse: collapse;
223    table-layout: fixed;
224    flex: 1;
225}
226
227.calendar-compact-grid thead th {
228    height: 22px;
229    background: #f8f8f8;
230    border-bottom: 1px solid #d0d0d0;
231    border-right: 1px solid #e8e8e8;
232    font-size: 10px;
233    font-weight: 600;
234    color: #666;
235    text-align: center;
236    padding: 0;
237}
238
239.calendar-compact-grid thead th:last-child {
240    border-right: none;
241}
242
243.calendar-compact-grid tbody td {
244    height: 58px;
245    min-height: 40px;
246    border: 1px solid #e8e8e8;
247    border-top: none;
248    border-left: none;
249    background: #ffffff;
250    cursor: pointer;
251    padding: 3px;
252    position: relative;
253    vertical-align: top;
254    transition: background 0.1s;
255}
256
257/* Smaller cells on mobile */
258@media (max-width: 600px) {
259    .calendar-compact-grid tbody td {
260        height: 45px;
261        min-height: 35px;
262        padding: 2px;
263    }
264
265    .calendar-compact-grid thead th {
266        height: 18px;
267        font-size: 9px;
268    }
269}
270
271.calendar-compact-grid tbody td:first-child {
272    border-left: 1px solid #e8e8e8;
273}
274
275.calendar-compact-grid tbody td:hover {
276    background: #f0f7ff;
277}
278
279.cal-empty {
280    background: #fafafa !important;
281    cursor: default !important;
282}
283
284.cal-empty:hover {
285    background: #fafafa !important;
286}
287
288.cal-today {
289    background: #e8f5e9 !important;
290}
291
292.cal-today:hover {
293    background: #c8e6c9 !important;
294}
295
296.cal-has-events {
297    background: #fffbf0;
298}
299
300.cal-has-events:hover {
301    background: #fff4d9;
302}
303
304.day-num {
305    display: inline-block;
306    font-size: 11px;
307    font-weight: 500;
308    color: #333;
309    padding: 1px 3px;
310}
311
312.cal-today .day-num {
313    background: #008800;
314    color: white;
315    border-radius: 2px;
316    font-weight: 600;
317}
318
319.event-indicators {
320    position: absolute;
321    left: 20px;
322    right: 0;
323    top: 20px;
324    bottom: 2px;
325    display: flex;
326    flex-direction: column;
327    gap: 2px;
328    pointer-events: none;
329}
330
331.event-bar {
332    width: 100%;
333    min-height: 6px;
334    height: 6px;
335    border-radius: 2px;
336    cursor: pointer;
337    pointer-events: auto;
338    transition: all 0.2s;
339    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
340    position: relative;
341}
342
343.event-bar:hover {
344    transform: scaleY(1.3);
345    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
346    z-index: 10;
347}
348
349.event-bar-no-time {
350    /* Events without time appear at top */
351    order: -1;
352    opacity: 0.9;
353}
354
355.event-bar-timed {
356    /* Events with time are sorted by time */
357    opacity: 0.95;
358}
359
360/* Multi-day event styling - creates visual continuity */
361.event-bar-continues {
362    /* Event continues from previous day - extend left to cell edge */
363    border-top-left-radius: 0;
364    border-bottom-left-radius: 0;
365    margin-left: -20px;
366    padding-left: 20px;
367}
368
369.event-bar-continuing {
370    /* Event continues to next day - extend right to cell edge */
371    border-top-right-radius: 0;
372    border-bottom-right-radius: 0;
373    margin-right: -2px;
374    padding-right: 2px;
375}
376
377.event-bar-continues.event-bar-continuing {
378    /* Event continues both ways (middle of span) - no border radius, extends both sides */
379    border-radius: 0;
380}
381
382/* Old event dot - removing */
383.event-dot {
384    display: none;
385}
386
387/* Event list header - COMPACT */
388.event-list-header {
389    display: flex;
390    align-items: center;
391    justify-content: space-between;
392    padding: 8px 10px;
393    border-bottom: 1px solid #e0e0e0;
394    background: #fafafa;
395}
396
397.event-list-header-content {
398    display: flex;
399    align-items: center;
400    gap: 6px;
401    flex: 1;
402}
403
404.event-list-header h4 {
405    margin: 0;
406    font-size: 12px;
407    font-weight: 600;
408    color: #2c3e50;
409}
410
411.namespace-badge {
412    background: #e8f5e9;
413    color: #388e3c;
414    padding: 2px 6px;
415    border-radius: 10px;
416    font-size: 9px;
417    font-weight: 600;
418    text-transform: uppercase;
419    letter-spacing: 0.3px;
420}
421
422.add-event-compact {
423    background: #008800;
424    color: white;
425    border: none;
426    padding: 4px 8px;
427    border-radius: 3px;
428    font-size: 11px;
429    font-weight: 500;
430    cursor: pointer;
431    transition: background 0.15s;
432}
433
434.add-event-compact:hover {
435    background: #45a049;
436}
437
438/* Event list scrollable area - COMPACT */
439.event-list-compact {
440    flex: 1;
441    overflow-y: auto;
442    padding: 6px;
443}
444
445.event-list-compact::-webkit-scrollbar {
446    width: 6px;
447}
448
449.event-list-compact::-webkit-scrollbar-track {
450    background: #f5f5f5;
451}
452
453.event-list-compact::-webkit-scrollbar-thumb {
454    background: #ccc;
455    border-radius: 3px;
456}
457
458.event-list-compact::-webkit-scrollbar-thumb:hover {
459    background: #aaa;
460}
461
462/* Event items in list - SUPER COMPACT with checkbox on right */
463.event-compact-item {
464    display: flex;
465    align-items: flex-start;
466    margin-bottom: 4px;
467    background: #ffffff;
468    border: 1px solid #e0e0e0;
469    border-left: 3px solid #3498db;
470    border-radius: 3px;
471    padding: 5px 6px;
472    transition: box-shadow 0.15s, background 0.15s, transform 0.15s;
473    gap: 6px;
474    position: relative;
475}
476
477.event-compact-item:hover {
478    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
479    background: #f8f9fa;
480}
481
482.event-highlighted {
483    animation: highlightPulse 0.6s ease-in-out;
484    background: #fff9e6 !important;
485    box-shadow: 0 2px 8px rgba(255, 193, 7, 0.4) !important;
486}
487
488@keyframes highlightPulse {
489    0% {
490        background: #ffffff;
491        box-shadow: 0 0 0 rgba(255, 193, 7, 0);
492    }
493    50% {
494        background: #fffbea;
495        box-shadow: 0 4px 12px rgba(255, 193, 7, 0.6);
496        transform: scale(1.02);
497    }
498    100% {
499        background: #fff9e6;
500        box-shadow: 0 2px 8px rgba(255, 193, 7, 0.4);
501        transform: scale(1);
502    }
503}
504
505.event-completed {
506    opacity: 0.55;
507    background: #f5f5f5;
508}
509
510.event-completed .event-title-compact {
511    text-decoration: line-through;
512    color: #999;
513}
514
515.event-info {
516    flex: 1;
517    min-width: 0;
518    padding-right: 60px;
519    text-align: left;
520}
521
522.event-title-row {
523    display: flex;
524    align-items: center;
525    gap: 4px;
526}
527
528.event-title-compact {
529    font-size: 12px;
530    font-weight: 600;
531    color: #2c3e50;
532    overflow: hidden;
533    text-overflow: ellipsis;
534    white-space: nowrap;
535    text-align: left;
536}
537
538.event-meta-compact {
539    font-size: 10px;
540    color: #666;
541    margin-top: 1px;
542    text-align: left;
543}
544
545.event-date-time {
546    font-weight: 500;
547}
548
549.event-desc-compact {
550    font-size: 10px;
551    color: #666;
552    line-height: 1.4;
553    margin-top: 2px;
554    text-align: left;
555    word-wrap: break-word;
556    overflow-wrap: break-word;
557}
558
559.event-desc-compact img.event-image {
560    max-width: 100%;
561    height: auto;
562    margin: 4px 0;
563    border-radius: 3px;
564    display: block;
565}
566
567.event-desc-compact a {
568    color: #008800;
569    text-decoration: none;
570    border-bottom: 1px dotted #008800;
571}
572
573.event-desc-compact a:hover {
574    color: #388e3c;
575    border-bottom-style: solid;
576}
577
578.event-desc-compact strong,
579.event-desc-compact b {
580    font-weight: 600;
581    color: #333;
582}
583
584.event-desc-compact em,
585.event-desc-compact i {
586    font-style: italic;
587}
588
589.event-desc-compact code {
590    background: #f5f5f5;
591    padding: 1px 3px;
592    border-radius: 2px;
593    font-family: monospace;
594    font-size: 9px;
595}
596
597.event-actions-compact {
598    position: absolute;
599    top: 5px;
600    right: 24px;
601    display: flex;
602    gap: 2px;
603    flex-shrink: 0;
604}
605
606.event-action-btn {
607    background: none;
608    border: none;
609    font-size: 14px;
610    cursor: pointer;
611    padding: 2px;
612    opacity: 0.5;
613    transition: opacity 0.15s, transform 0.15s;
614}
615
616.event-action-btn:hover {
617    opacity: 1;
618    transform: scale(1.15);
619}
620
621.task-checkbox {
622    position: absolute;
623    top: 5px;
624    right: 6px;
625    width: 16px;
626    height: 16px;
627    margin: 0;
628    cursor: pointer;
629    flex-shrink: 0;
630}
631
632.no-events-msg {
633    text-align: center;
634    color: #999;
635    font-size: 12px;
636    font-style: italic;
637    padding: 40px 20px;
638}
639
640/* Sleek Event Dialog - FULLY RESPONSIVE */
641.event-dialog-compact {
642    position: fixed;
643    top: 0;
644    left: 0;
645    width: 100%;
646    height: 100%;
647    z-index: 9999;
648    display: flex;
649    align-items: center;
650    justify-content: center;
651    animation: fadeIn 0.2s ease;
652    padding: 20px;
653    box-sizing: border-box;
654    overflow-y: auto;
655}
656
657@keyframes fadeIn {
658    from { opacity: 0; }
659    to { opacity: 1; }
660}
661
662.dialog-content-sleek {
663    position: relative;
664    background: #ffffff;
665    width: 100%;
666    max-width: 450px;
667    max-height: calc(100vh - 40px);
668    border-radius: 8px;
669    box-shadow: 0 8px 32px rgba(0,0,0,0.2);
670    z-index: 10000;
671    animation: slideUp 0.3s ease;
672    overflow: hidden;
673    display: flex;
674    flex-direction: column;
675    margin: auto;
676}
677
678/* Mobile responsive dialog */
679@media (max-width: 768px) {
680    .event-dialog-compact {
681        padding: 10px;
682    }
683
684    .dialog-content-sleek {
685        max-width: 100%;
686        width: calc(100% - 20px);
687        max-height: calc(100vh - 20px);
688    }
689}
690
691@media (max-width: 480px) {
692    .event-dialog-compact {
693        padding: 0;
694        align-items: flex-start;
695    }
696
697    .dialog-content-sleek {
698        width: 100%;
699        max-width: 100%;
700        max-height: 100vh;
701        border-radius: 0;
702        margin: 0;
703    }
704}
705
706@keyframes slideUp {
707    from {
708        transform: translateY(20px);
709        opacity: 0;
710    }
711    to {
712        transform: translateY(0);
713        opacity: 1;
714    }
715}
716
717.dialog-header-sleek {
718    display: flex;
719    align-items: center;
720    justify-content: space-between;
721    padding: 10px 14px;
722    background: #2c3e50;
723    color: white;
724    cursor: move;
725    flex-shrink: 0;
726}
727
728.dialog-drag-handle {
729    cursor: move;
730}
731
732.dialog-header-sleek h3 {
733    margin: 0;
734    font-size: 15px;
735    font-weight: 600;
736}
737
738.dialog-close-btn {
739    background: rgba(255,255,255,0.2);
740    border: none;
741    color: white;
742    font-size: 22px;
743    width: 28px;
744    height: 28px;
745    border-radius: 50%;
746    cursor: pointer;
747    display: flex;
748    align-items: center;
749    justify-content: center;
750    transition: all 0.2s;
751    line-height: 1;
752    padding: 0;
753    flex-shrink: 0;
754}
755
756.dialog-close-btn:hover {
757    background: rgba(255,255,255,0.3);
758    transform: scale(1.1);
759}
760
761.sleek-form {
762    padding: 14px;
763    overflow-y: auto;
764    overflow-x: hidden;
765    flex: 1;
766    max-height: calc(100vh - 160px);
767}
768
769/* Ensure form is scrollable on small screens */
770@media (max-height: 600px) {
771    .sleek-form {
772        max-height: calc(100vh - 120px);
773    }
774}
775
776@media (max-height: 500px) {
777    .sleek-form {
778        max-height: calc(100vh - 100px);
779    }
780}
781
782.form-field {
783    margin-bottom: 10px;
784}
785
786/* Responsive form fields */
787@media (max-width: 480px) {
788    .form-field {
789        margin-bottom: 8px;
790    }
791}
792
793.form-field-checkbox {
794    background: #f1f8f4;
795    padding: 8px;
796    border-radius: 4px;
797    border: 1px solid #008800;
798}
799
800.checkbox-label {
801    display: flex;
802    align-items: center;
803    gap: 6px;
804    cursor: pointer;
805    font-size: 11px;
806    font-weight: 500;
807    color: #388e3c;
808}
809
810.checkbox-label input[type="checkbox"] {
811    width: 15px;
812    height: 15px;
813    cursor: pointer;
814}
815
816.recurring-options {
817    background: #f1f8f4;
818    padding: 12px;
819    border-radius: 4px;
820    border: 1px solid #81c784;
821    margin-top: 8px;
822}
823
824.form-row-group {
825    display: grid;
826    grid-template-columns: 1fr 1fr;
827    gap: 10px;
828    margin-bottom: 10px;
829}
830
831@media (max-width: 768px) {
832    .form-row-group {
833        grid-template-columns: 1fr;
834        gap: 8px;
835    }
836}
837
838.field-label {
839    display: block;
840    font-size: 11px;
841    font-weight: 600;
842    color: #2c3e50;
843    margin-bottom: 5px;
844    text-transform: uppercase;
845    letter-spacing: 0.3px;
846}
847
848@media (max-width: 480px) {
849    .field-label {
850        font-size: 10px;
851    }
852}
853
854.input-sleek {
855    width: 100%;
856    padding: 8px 10px;
857    border: 2px solid #e0e0e0;
858    border-radius: 4px;
859    font-size: 13px;
860    font-family: inherit;
861    transition: all 0.2s;
862    background: #fafafa;
863    box-sizing: border-box;
864}
865
866.input-sleek:focus {
867    outline: none;
868    border-color: #008800;
869    background: white;
870    box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);
871}
872
873.input-date {
874    font-weight: 500;
875    color: #2c3e50;
876    cursor: pointer;
877}
878
879.input-date::-webkit-calendar-picker-indicator {
880    cursor: pointer;
881    font-size: 14px;
882    padding: 2px;
883}
884
885.textarea-sleek {
886    resize: vertical;
887    min-height: 60px;
888    line-height: 1.4;
889}
890
891.color-picker-container {
892    display: flex;
893    align-items: center;
894    gap: 10px;
895}
896
897.input-color-sleek {
898    width: 50px;
899    height: 38px;
900    border: 2px solid #e0e0e0;
901    border-radius: 6px;
902    cursor: pointer;
903    transition: all 0.2s;
904}
905
906.input-color-sleek:hover {
907    border-color: #008800;
908    transform: scale(1.05);
909}
910
911.color-label {
912    font-size: 11px;
913    color: #666;
914}
915
916.form-row-group {
917    display: grid;
918    grid-template-columns: 2fr 1fr;
919    gap: 16px;
920    margin-bottom: 20px;
921}
922
923.field-label {
924    display: block;
925    font-size: 13px;
926    font-weight: 600;
927    color: #2c3e50;
928    margin-bottom: 8px;
929    text-transform: uppercase;
930    letter-spacing: 0.5px;
931}
932
933.input-sleek {
934    width: 100%;
935    padding: 12px 16px;
936    border: 2px solid #e0e0e0;
937    border-radius: 8px;
938    font-size: 15px;
939    font-family: inherit;
940    transition: all 0.2s;
941    background: #fafafa;
942    box-sizing: border-box;
943}
944
945.input-sleek:focus {
946    outline: none;
947    border-color: #667eea;
948    background: white;
949    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
950}
951
952.input-date {
953    font-weight: 500;
954    color: #2c3e50;
955    cursor: pointer;
956}
957
958.input-date::-webkit-calendar-picker-indicator {
959    cursor: pointer;
960    font-size: 18px;
961    padding: 4px;
962}
963
964.textarea-sleek {
965    resize: vertical;
966    min-height: 80px;
967    line-height: 1.5;
968}
969
970.color-picker-container {
971    display: flex;
972    align-items: center;
973    gap: 12px;
974}
975
976.input-color-sleek {
977    width: 60px;
978    height: 44px;
979    border: 2px solid #e0e0e0;
980    border-radius: 8px;
981    cursor: pointer;
982    transition: all 0.2s;
983}
984
985.input-color-sleek:hover {
986    border-color: #667eea;
987    transform: scale(1.05);
988}
989
990.color-label {
991    font-size: 13px;
992    color: #666;
993}
994
995.form-field-checkbox {
996    background: #f1f8f4;
997    padding: 12px;
998    border-radius: 6px;
999    border: 1px solid #008800;
1000}
1001
1002.checkbox-label {
1003    display: flex;
1004    align-items: center;
1005    gap: 8px;
1006    cursor: pointer;
1007    font-size: 13px;
1008    font-weight: 500;
1009    color: #388e3c;
1010}
1011
1012.checkbox-label input[type="checkbox"] {
1013    width: 18px;
1014    height: 18px;
1015    cursor: pointer;
1016}
1017
1018.form-row-group {
1019    display: grid;
1020    grid-template-columns: 1fr 1fr;
1021    gap: 12px;
1022    margin-bottom: 16px;
1023}
1024
1025@media (max-width: 768px) {
1026    .form-row-group {
1027        grid-template-columns: 1fr;
1028    }
1029}
1030
1031.dialog-actions-sleek {
1032    display: flex;
1033    gap: 8px;
1034    padding: 12px 14px;
1035    background: #f8f9fa;
1036    border-top: 1px solid #e0e0e0;
1037    justify-content: flex-end;
1038    flex-shrink: 0;
1039}
1040
1041/* Ensure buttons are visible on small screens */
1042@media (max-width: 480px) {
1043    .dialog-actions-sleek {
1044        padding: 10px;
1045    }
1046
1047    .btn-sleek {
1048        flex: 1;
1049        justify-content: center;
1050    }
1051}
1052
1053.btn-sleek {
1054    padding: 7px 14px;
1055    border: none;
1056    border-radius: 4px;
1057    font-size: 12px;
1058    font-weight: 600;
1059    cursor: pointer;
1060    transition: all 0.2s;
1061    display: inline-flex;
1062    align-items: center;
1063    gap: 4px;
1064}
1065
1066.btn-cancel-sleek {
1067    background: #e0e0e0;
1068    color: #555;
1069}
1070
1071.btn-cancel-sleek:hover {
1072    background: #d0d0d0;
1073}
1074
1075.btn-save-sleek {
1076    background: #008800;
1077    color: white;
1078    box-shadow: 0 2px 4px rgba(33, 150, 243, 0.3);
1079}
1080
1081.btn-save-sleek:hover {
1082    background: #388e3c;
1083    box-shadow: 0 4px 8px rgba(33, 150, 243, 0.4);
1084}
1085
1086.btn-save-sleek:active {
1087    transform: translateY(1px);
1088}
1089
1090/* Day popup */
1091.day-popup {
1092    position: fixed;
1093    top: 0;
1094    left: 0;
1095    width: 100%;
1096    height: 100%;
1097    z-index: 10000;
1098    display: flex;
1099    align-items: center;
1100    justify-content: center;
1101    padding: 20px;
1102    box-sizing: border-box;
1103}
1104
1105.day-popup-overlay {
1106    position: absolute;
1107    top: 0;
1108    left: 0;
1109    width: 100%;
1110    height: 100%;
1111    background: rgba(0,0,0,0.5);
1112}
1113
1114.day-popup-content {
1115    position: relative;
1116    background: white;
1117    width: 100%;
1118    max-width: 450px;
1119    max-height: calc(100vh - 40px);
1120    border-radius: 8px;
1121    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
1122    z-index: 10001;
1123    display: flex;
1124    flex-direction: column;
1125}
1126
1127/* Responsive day popup */
1128@media (max-width: 768px) {
1129    .day-popup {
1130        padding: 10px;
1131    }
1132
1133    .day-popup-content {
1134        max-width: 100%;
1135        max-height: calc(100vh - 20px);
1136    }
1137}
1138
1139@media (max-width: 480px) {
1140    .day-popup {
1141        padding: 0;
1142    }
1143
1144    .day-popup-content {
1145        width: 100%;
1146        max-width: 100%;
1147        max-height: 100vh;
1148        border-radius: 0;
1149    }
1150}
1151
1152.day-popup-header {
1153    display: flex;
1154    align-items: center;
1155    justify-content: space-between;
1156    padding: 16px 20px;
1157    border-bottom: 2px solid #e0e0e0;
1158    background: #fafafa;
1159    border-radius: 8px 8px 0 0;
1160}
1161
1162.day-popup-header h4 {
1163    margin: 0;
1164    font-size: 16px;
1165    font-weight: 600;
1166    color: #2c3e50;
1167}
1168
1169.popup-close {
1170    background: none;
1171    border: none;
1172    font-size: 28px;
1173    color: #999;
1174    cursor: pointer;
1175    width: 32px;
1176    height: 32px;
1177    display: flex;
1178    align-items: center;
1179    justify-content: center;
1180    border-radius: 4px;
1181    transition: all 0.15s;
1182    line-height: 1;
1183    padding: 0;
1184}
1185
1186.popup-close:hover {
1187    background: #f0f0f0;
1188    color: #333;
1189}
1190
1191.day-popup-body {
1192    flex: 1;
1193    overflow-y: auto;
1194    padding: 16px 20px;
1195    max-height: 400px;
1196}
1197
1198.popup-events-list {
1199    display: flex;
1200    flex-direction: column;
1201    gap: 12px;
1202}
1203
1204.popup-event-item {
1205    display: flex;
1206    background: #f8f9fa;
1207    border: 1px solid #e0e0e0;
1208    border-radius: 6px;
1209    overflow: hidden;
1210    transition: box-shadow 0.15s;
1211}
1212
1213.popup-event-item:hover {
1214    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
1215}
1216
1217.popup-event-content {
1218    flex: 1;
1219    padding: 12px;
1220}
1221
1222.popup-event-title {
1223    font-size: 14px;
1224    font-weight: 600;
1225    color: #2c3e50;
1226    margin-bottom: 6px;
1227}
1228
1229.popup-event-time {
1230    font-size: 12px;
1231    color: #008800;
1232    font-weight: 500;
1233    margin-bottom: 6px;
1234}
1235
1236.popup-event-desc {
1237    font-size: 12px;
1238    color: #666;
1239    line-height: 1.5;
1240    margin-bottom: 10px;
1241}
1242
1243.popup-event-actions {
1244    display: flex;
1245    gap: 8px;
1246}
1247
1248.day-popup-footer {
1249    padding: 16px 20px;
1250    border-top: 1px solid #e0e0e0;
1251    background: #fafafa;
1252    border-radius: 0 0 8px 8px;
1253}
1254
1255.btn-add-event {
1256    width: 100%;
1257    background: #008800;
1258    color: white;
1259    border: none;
1260    padding: 10px 16px;
1261    border-radius: 6px;
1262    font-size: 14px;
1263    font-weight: 500;
1264    cursor: pointer;
1265    transition: background 0.15s;
1266}
1267
1268.btn-add-event:hover {
1269    background: #45a049;
1270}
1271
1272.dialog-overlay {
1273    position: absolute;
1274    top: 0;
1275    left: 0;
1276    width: 100%;
1277    height: 100%;
1278    background: rgba(0,0,0,0.4);
1279}
1280
1281.dialog-content-compact {
1282    position: relative;
1283    background: white;
1284    width: 400px;
1285    border-radius: 6px;
1286    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
1287    padding: 20px;
1288    z-index: 10000;
1289}
1290
1291.dialog-content-compact h4 {
1292    margin: 0 0 16px 0;
1293    font-size: 16px;
1294    font-weight: 600;
1295    color: #2c3e50;
1296}
1297
1298.form-row {
1299    margin-bottom: 14px;
1300}
1301
1302.form-row-date {
1303    background: #f1f8f4;
1304    padding: 10px;
1305    border-radius: 6px;
1306    border: 2px solid #008800;
1307    margin-bottom: 18px;
1308}
1309
1310.form-row-date label {
1311    color: #388e3c;
1312    font-size: 13px;
1313}
1314
1315.form-row label {
1316    display: block;
1317    font-size: 12px;
1318    font-weight: 600;
1319    color: #555;
1320    margin-bottom: 4px;
1321}
1322
1323.form-row input[type="text"],
1324.form-row input[type="time"],
1325.form-row input[type="date"],
1326.form-row input[type="color"],
1327.form-row textarea {
1328    width: 100%;
1329    padding: 8px;
1330    border: 1px solid #d0d0d0;
1331    border-radius: 4px;
1332    font-size: 13px;
1333    box-sizing: border-box;
1334    font-family: inherit;
1335}
1336
1337.form-row input[type="color"] {
1338    height: 36px;
1339    padding: 2px;
1340}
1341
1342.form-row textarea {
1343    resize: vertical;
1344}
1345
1346.dialog-actions {
1347    display: flex;
1348    gap: 8px;
1349    justify-content: flex-end;
1350    margin-top: 16px;
1351}
1352
1353.btn-save,
1354.btn-cancel {
1355    padding: 8px 16px;
1356    border: none;
1357    border-radius: 4px;
1358    font-size: 13px;
1359    font-weight: 500;
1360    cursor: pointer;
1361    transition: all 0.15s;
1362}
1363
1364.btn-save {
1365    background: #008800;
1366    color: white;
1367}
1368
1369.btn-save:hover {
1370    background: #45a049;
1371}
1372
1373.btn-cancel {
1374    background: #f5f5f5;
1375    color: #555;
1376    border: 1px solid #d0d0d0;
1377}
1378
1379.btn-cancel:hover {
1380    background: #e8e8e8;
1381}
1382
1383/* Standalone event list */
1384.eventlist-standalone {
1385    max-width: 700px;
1386    margin: 20px auto;
1387    background: white;
1388    border: 1px solid #d0d0d0;
1389    border-radius: 6px;
1390    padding: 20px;
1391}
1392
1393.eventlist-standalone h3 {
1394    margin: 0 0 20px 0;
1395    font-size: 18px;
1396    font-weight: 600;
1397    color: #2c3e50;
1398    border-bottom: 2px solid #008800;
1399    padding-bottom: 10px;
1400}
1401
1402/* Compact Event List Widget */
1403.eventlist-compact-widget {
1404    background: #ffffff;
1405    border: 1px solid #d0d0d0;
1406    border-radius: 6px;
1407    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
1408    overflow: hidden;
1409    display: flex;
1410    flex-direction: column;
1411    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
1412}
1413
1414.eventlist-widget-header {
1415    background: #008800;
1416    color: white;
1417    padding: 8px 12px;
1418    flex-shrink: 0;
1419}
1420
1421.eventlist-widget-header h4 {
1422    margin: 0;
1423    font-size: 13px;
1424    font-weight: 600;
1425}
1426
1427.eventlist-widget-content {
1428    overflow-y: auto;
1429    padding: 8px;
1430    flex: 1;
1431}
1432
1433.eventlist-widget-date {
1434    font-size: 11px;
1435    font-weight: 600;
1436    color: #666;
1437    margin: 8px 0 4px 0;
1438    padding-bottom: 2px;
1439    border-bottom: 1px solid #e0e0e0;
1440}
1441
1442.eventlist-widget-item {
1443    background: #fafafa;
1444    border: 1px solid #e0e0e0;
1445    border-left: 3px solid #3498db;
1446    border-radius: 3px;
1447    padding: 6px 8px;
1448    margin-bottom: 6px;
1449    transition: all 0.15s;
1450}
1451
1452.eventlist-widget-item:hover {
1453    background: #f0f0f0;
1454    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
1455}
1456
1457.eventlist-widget-title {
1458    font-size: 12px;
1459    font-weight: 600;
1460    color: #2c3e50;
1461    margin-bottom: 2px;
1462}
1463
1464.eventlist-widget-time {
1465    font-size: 11px;
1466    color: #666;
1467    margin-bottom: 4px;
1468}
1469
1470.eventlist-widget-desc {
1471    font-size: 11px;
1472    color: #555;
1473    margin-top: 4px;
1474    line-height: 1.4;
1475}
1476
1477.eventlist-widget-desc img {
1478    max-width: 100%;
1479    height: auto;
1480    border-radius: 3px;
1481    margin: 4px 0;
1482}
1483
1484.eventlist-widget-desc a {
1485    color: #008800;
1486    text-decoration: none;
1487    border-bottom: 1px dotted #008800;
1488}
1489
1490.eventlist-widget-desc a:hover {
1491    border-bottom-style: solid;
1492}
1493
1494.eventlist-widget-empty {
1495    text-align: center;
1496    color: #999;
1497    font-size: 12px;
1498    padding: 20px;
1499    margin: 0;
1500}
1501
1502/* Standalone event panel (right panel only) */
1503.event-panel-standalone {
1504    width: 320px;
1505    background: #ffffff;
1506    border: 1px solid #d0d0d0;
1507    border-radius: 6px;
1508    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
1509    display: flex;
1510    flex-direction: column;
1511    max-height: 600px;
1512    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
1513    font-size: 13px;
1514}
1515
1516.event-panel-standalone .event-list-compact {
1517    overflow-y: auto;
1518    flex: 1;
1519    padding: 10px;
1520}
1521
1522.panel-standalone-header {
1523    display: flex;
1524    align-items: center;
1525    gap: 8px;
1526    padding: 12px 12px;
1527    background: #fafafa;
1528    border-bottom: 1px solid #e0e0e0;
1529    flex-shrink: 0;
1530}
1531
1532.panel-header-content {
1533    flex: 1;
1534    display: flex;
1535    flex-direction: column;
1536    align-items: center;
1537    gap: 4px;
1538}
1539
1540.panel-standalone-header h3 {
1541    margin: 0;
1542    font-size: 12px;
1543    font-weight: 600;
1544    color: #2c3e50;
1545    white-space: nowrap;
1546}
1547
1548.panel-standalone-header .calendar-month-picker {
1549    cursor: pointer;
1550    user-select: none;
1551    transition: all 0.15s;
1552    padding: 4px 8px;
1553    border-radius: 4px;
1554    white-space: nowrap;
1555}
1556
1557.panel-standalone-header .calendar-month-picker:hover {
1558    background: #e8e8e8;
1559    color: #008800;
1560}
1561
1562.panel-standalone-header .namespace-badge {
1563    font-size: 11px;
1564    font-weight: 500;
1565    color: #388e3c;
1566    background: #e8f5e9;
1567    padding: 2px 8px;
1568    border-radius: 3px;
1569    text-decoration: none;
1570    transition: all 0.15s;
1571    display: inline-block;
1572}
1573
1574.panel-standalone-header .namespace-badge:hover {
1575    background: #c8e6c9;
1576    color: #2e7d32;
1577}
1578
1579.panel-standalone-actions {
1580    padding: 10px 16px;
1581    background: #ffffff;
1582    border-bottom: 1px solid #e0e0e0;
1583    flex-shrink: 0;
1584}
1585
1586.panel-standalone-actions .add-event-compact {
1587    width: 100%;
1588}
1589
1590.eventlist-day-group {
1591    margin-bottom: 24px;
1592}
1593
1594.eventlist-date {
1595    margin: 0 0 12px 0;
1596    font-size: 14px;
1597    font-weight: 600;
1598    color: #2c3e50;
1599    background: #f8f8f8;
1600    padding: 8px 12px;
1601    border-left: 4px solid #008800;
1602}
1603
1604.eventlist-item {
1605    display: flex;
1606    margin-bottom: 10px;
1607    background: white;
1608    border: 1px solid #e0e0e0;
1609    border-radius: 4px;
1610    overflow: hidden;
1611}
1612
1613.eventlist-content {
1614    flex: 1;
1615    padding: 12px;
1616    display: flex;
1617    align-items: center;
1618    gap: 12px;
1619}
1620
1621.eventlist-time {
1622    font-size: 12px;
1623    font-weight: 600;
1624    color: #008800;
1625    min-width: 50px;
1626}
1627
1628.eventlist-title {
1629    font-size: 14px;
1630    font-weight: 500;
1631    color: #2c3e50;
1632}
1633
1634.eventlist-desc {
1635    font-size: 12px;
1636    color: #666;
1637    margin-top: 6px;
1638    line-height: 1.4;
1639}
1640
1641/* ===================================
1642   MOBILE RESPONSIVE - EVENTLIST & EVENTPANEL
1643   =================================== */
1644
1645/* Tablet and below (768px) */
1646@media (max-width: 768px) {
1647    /* Event Panel Standalone */
1648    .event-panel-standalone {
1649        width: 100%;
1650        max-width: 100%;
1651        border-radius: 0;
1652        max-height: none;
1653        min-height: 400px;
1654    }
1655
1656    /* Compact Event List Widget */
1657    .eventlist-compact-widget {
1658        width: 100% !important;
1659        max-width: 100%;
1660        border-radius: 0;
1661    }
1662
1663    .eventlist-widget-header h4 {
1664        font-size: 14px;
1665    }
1666
1667    .eventlist-widget-title {
1668        font-size: 13px;
1669    }
1670
1671    .eventlist-widget-time {
1672        font-size: 12px;
1673    }
1674
1675    /* Standalone event list (old style) */
1676    .eventlist-standalone {
1677        max-width: 100%;
1678        margin: 10px;
1679        padding: 15px;
1680        border-radius: 0;
1681    }
1682
1683    .eventlist-standalone h3 {
1684        font-size: 16px;
1685    }
1686}
1687
1688/* Mobile (480px and below) */
1689@media (max-width: 480px) {
1690    /* Event Panel Standalone */
1691    .event-panel-standalone {
1692        font-size: 12px;
1693        min-height: 300px;
1694    }
1695
1696    .panel-standalone-header {
1697        padding: 10px 12px;
1698    }
1699
1700    .panel-standalone-header h3 {
1701        font-size: 12px;
1702    }
1703
1704    .panel-standalone-actions {
1705        padding: 8px 12px;
1706    }
1707
1708    .event-panel-standalone .event-list-compact {
1709        padding: 8px;
1710    }
1711
1712    /* Compact Event List Widget */
1713    .eventlist-compact-widget {
1714        min-width: 280px;
1715    }
1716
1717    .eventlist-widget-header {
1718        padding: 6px 10px;
1719    }
1720
1721    .eventlist-widget-header h4 {
1722        font-size: 13px;
1723    }
1724
1725    .eventlist-widget-content {
1726        padding: 6px;
1727    }
1728
1729    .eventlist-widget-item {
1730        padding: 5px 6px;
1731        margin-bottom: 5px;
1732    }
1733
1734    .eventlist-widget-title {
1735        font-size: 12px;
1736    }
1737
1738    .eventlist-widget-time {
1739        font-size: 11px;
1740    }
1741
1742    .eventlist-widget-desc {
1743        font-size: 11px;
1744    }
1745
1746    /* Standalone event list */
1747    .eventlist-standalone {
1748        margin: 5px;
1749        padding: 10px;
1750    }
1751
1752    .eventlist-standalone h3 {
1753        font-size: 14px;
1754        margin-bottom: 15px;
1755    }
1756
1757    .eventlist-day-group {
1758        margin-bottom: 18px;
1759    }
1760
1761    .eventlist-date {
1762        font-size: 13px;
1763        padding: 6px 10px;
1764    }
1765
1766    .eventlist-title {
1767        font-size: 13px;
1768    }
1769
1770    .eventlist-time {
1771        font-size: 11px;
1772    }
1773
1774    .eventlist-desc {
1775        font-size: 11px;
1776    }
1777}
1778
1779/* Very small mobile (320px) */
1780@media (max-width: 320px) {
1781    .eventlist-compact-widget {
1782        min-width: 100%;
1783    }
1784
1785    .event-panel-standalone {
1786        min-height: 250px;
1787    }
1788
1789    .eventlist-widget-header h4 {
1790        font-size: 12px;
1791    }
1792
1793    .eventlist-widget-title {
1794        font-size: 11px;
1795    }
1796
1797    .panel-standalone-header h3 {
1798        font-size: 12px;
1799    }
1800}
1801
1802