xref: /plugin/calendar/style.css (revision 19378907f6c3c154fcddd2ddfe78fa2d88d43359)
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    justify-content: space-between;
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}
109
110.cal-nav-btn {
111    background: #f5f5f5;
112    border: 1px solid #d0d0d0;
113    width: 28px;
114    height: 28px;
115    border-radius: 4px;
116    cursor: pointer;
117    font-size: 16px;
118    color: #555;
119    transition: all 0.15s;
120    padding: 0;
121    display: flex;
122    align-items: center;
123    justify-content: center;
124}
125
126.cal-nav-btn:hover {
127    background: #e8e8e8;
128    border-color: #aaa;
129}
130
131/* Calendar grid - Excel-like sizing - RESPONSIVE */
132.calendar-compact-grid {
133    width: 100%;
134    border-collapse: collapse;
135    table-layout: fixed;
136    flex: 1;
137}
138
139.calendar-compact-grid thead th {
140    height: 22px;
141    background: #f8f8f8;
142    border-bottom: 1px solid #d0d0d0;
143    border-right: 1px solid #e8e8e8;
144    font-size: 10px;
145    font-weight: 600;
146    color: #666;
147    text-align: center;
148    padding: 0;
149}
150
151.calendar-compact-grid thead th:last-child {
152    border-right: none;
153}
154
155.calendar-compact-grid tbody td {
156    height: 58px;
157    min-height: 40px;
158    border: 1px solid #e8e8e8;
159    border-top: none;
160    border-left: none;
161    background: #ffffff;
162    cursor: pointer;
163    padding: 3px;
164    position: relative;
165    vertical-align: top;
166    transition: background 0.1s;
167}
168
169/* Smaller cells on mobile */
170@media (max-width: 600px) {
171    .calendar-compact-grid tbody td {
172        height: 45px;
173        min-height: 35px;
174        padding: 2px;
175    }
176
177    .calendar-compact-grid thead th {
178        height: 18px;
179        font-size: 9px;
180    }
181}
182
183.calendar-compact-grid tbody td:first-child {
184    border-left: 1px solid #e8e8e8;
185}
186
187.calendar-compact-grid tbody td:hover {
188    background: #f0f7ff;
189}
190
191.cal-empty {
192    background: #fafafa !important;
193    cursor: default !important;
194}
195
196.cal-empty:hover {
197    background: #fafafa !important;
198}
199
200.cal-today {
201    background: #e3f2fd !important;
202}
203
204.cal-today:hover {
205    background: #d1e7fd !important;
206}
207
208.cal-has-events {
209    background: #fffbf0;
210}
211
212.cal-has-events:hover {
213    background: #fff4d9;
214}
215
216.day-num {
217    display: inline-block;
218    font-size: 11px;
219    font-weight: 500;
220    color: #333;
221    padding: 1px 3px;
222}
223
224.cal-today .day-num {
225    background: #2196f3;
226    color: white;
227    border-radius: 2px;
228    font-weight: 600;
229}
230
231.event-indicators {
232    position: absolute;
233    left: 20px;
234    right: 2px;
235    top: 20px;
236    bottom: 2px;
237    display: flex;
238    flex-direction: column;
239    gap: 2px;
240    pointer-events: none;
241}
242
243.event-bar {
244    width: 100%;
245    min-height: 6px;
246    height: 6px;
247    border-radius: 2px;
248    cursor: pointer;
249    pointer-events: auto;
250    transition: all 0.2s;
251    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
252    position: relative;
253}
254
255.event-bar:hover {
256    transform: scaleY(1.3);
257    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
258    z-index: 10;
259}
260
261.event-bar-no-time {
262    /* Events without time appear at top */
263    order: -1;
264    opacity: 0.9;
265}
266
267.event-bar-timed {
268    /* Events with time are sorted by time */
269    opacity: 0.95;
270}
271
272/* Old event dot - removing */
273.event-dot {
274    display: none;
275}
276
277/* Event list header - COMPACT */
278.event-list-header {
279    display: flex;
280    align-items: center;
281    justify-content: space-between;
282    padding: 8px 10px;
283    border-bottom: 1px solid #e0e0e0;
284    background: #fafafa;
285}
286
287.event-list-header-content {
288    display: flex;
289    align-items: center;
290    gap: 6px;
291    flex: 1;
292}
293
294.event-list-header h4 {
295    margin: 0;
296    font-size: 12px;
297    font-weight: 600;
298    color: #2c3e50;
299}
300
301.namespace-badge {
302    background: #e3f2fd;
303    color: #1976d2;
304    padding: 2px 6px;
305    border-radius: 10px;
306    font-size: 9px;
307    font-weight: 600;
308    text-transform: uppercase;
309    letter-spacing: 0.3px;
310}
311
312.add-event-compact {
313    background: #4caf50;
314    color: white;
315    border: none;
316    padding: 4px 8px;
317    border-radius: 3px;
318    font-size: 11px;
319    font-weight: 500;
320    cursor: pointer;
321    transition: background 0.15s;
322}
323
324.add-event-compact:hover {
325    background: #45a049;
326}
327
328/* Event list scrollable area - COMPACT */
329.event-list-compact {
330    flex: 1;
331    overflow-y: auto;
332    padding: 6px;
333}
334
335.event-list-compact::-webkit-scrollbar {
336    width: 6px;
337}
338
339.event-list-compact::-webkit-scrollbar-track {
340    background: #f5f5f5;
341}
342
343.event-list-compact::-webkit-scrollbar-thumb {
344    background: #ccc;
345    border-radius: 3px;
346}
347
348.event-list-compact::-webkit-scrollbar-thumb:hover {
349    background: #aaa;
350}
351
352/* Event items in list - SUPER COMPACT with checkbox on right */
353.event-compact-item {
354    display: flex;
355    align-items: flex-start;
356    margin-bottom: 4px;
357    background: #ffffff;
358    border: 1px solid #e0e0e0;
359    border-left: 3px solid #3498db;
360    border-radius: 3px;
361    padding: 5px 6px;
362    transition: box-shadow 0.15s, background 0.15s, transform 0.15s;
363    gap: 6px;
364    position: relative;
365}
366
367.event-compact-item:hover {
368    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
369    background: #f8f9fa;
370}
371
372.event-highlighted {
373    animation: highlightPulse 0.6s ease-in-out;
374    background: #fff9e6 !important;
375    box-shadow: 0 2px 8px rgba(255, 193, 7, 0.4) !important;
376}
377
378@keyframes highlightPulse {
379    0% {
380        background: #ffffff;
381        box-shadow: 0 0 0 rgba(255, 193, 7, 0);
382    }
383    50% {
384        background: #fffbea;
385        box-shadow: 0 4px 12px rgba(255, 193, 7, 0.6);
386        transform: scale(1.02);
387    }
388    100% {
389        background: #fff9e6;
390        box-shadow: 0 2px 8px rgba(255, 193, 7, 0.4);
391        transform: scale(1);
392    }
393}
394
395.event-completed {
396    opacity: 0.55;
397    background: #f5f5f5;
398}
399
400.event-completed .event-title-compact {
401    text-decoration: line-through;
402    color: #999;
403}
404
405.event-info {
406    flex: 1;
407    min-width: 0;
408    padding-right: 60px;
409    text-align: left;
410}
411
412.event-title-row {
413    display: flex;
414    align-items: center;
415    gap: 4px;
416}
417
418.event-title-compact {
419    font-size: 12px;
420    font-weight: 600;
421    color: #2c3e50;
422    overflow: hidden;
423    text-overflow: ellipsis;
424    white-space: nowrap;
425    text-align: left;
426}
427
428.event-meta-compact {
429    font-size: 10px;
430    color: #666;
431    margin-top: 1px;
432    text-align: left;
433}
434
435.event-date-time {
436    font-weight: 500;
437}
438
439.event-desc-compact {
440    font-size: 10px;
441    color: #666;
442    line-height: 1.4;
443    margin-top: 2px;
444    text-align: left;
445    word-wrap: break-word;
446    overflow-wrap: break-word;
447}
448
449.event-desc-compact img.event-image {
450    max-width: 100%;
451    height: auto;
452    margin: 4px 0;
453    border-radius: 3px;
454    display: block;
455}
456
457.event-desc-compact a {
458    color: #2196f3;
459    text-decoration: none;
460    border-bottom: 1px dotted #2196f3;
461}
462
463.event-desc-compact a:hover {
464    color: #1976d2;
465    border-bottom-style: solid;
466}
467
468.event-desc-compact strong,
469.event-desc-compact b {
470    font-weight: 600;
471    color: #333;
472}
473
474.event-desc-compact em,
475.event-desc-compact i {
476    font-style: italic;
477}
478
479.event-desc-compact code {
480    background: #f5f5f5;
481    padding: 1px 3px;
482    border-radius: 2px;
483    font-family: monospace;
484    font-size: 9px;
485}
486
487.event-actions-compact {
488    position: absolute;
489    top: 5px;
490    right: 24px;
491    display: flex;
492    gap: 2px;
493    flex-shrink: 0;
494}
495
496.event-action-btn {
497    background: none;
498    border: none;
499    font-size: 14px;
500    cursor: pointer;
501    padding: 2px;
502    opacity: 0.5;
503    transition: opacity 0.15s, transform 0.15s;
504}
505
506.event-action-btn:hover {
507    opacity: 1;
508    transform: scale(1.15);
509}
510
511.task-checkbox {
512    position: absolute;
513    top: 5px;
514    right: 6px;
515    width: 16px;
516    height: 16px;
517    margin: 0;
518    cursor: pointer;
519    flex-shrink: 0;
520}
521
522.no-events-msg {
523    text-align: center;
524    color: #999;
525    font-size: 12px;
526    font-style: italic;
527    padding: 40px 20px;
528}
529
530/* Sleek Event Dialog - FULLY RESPONSIVE */
531.event-dialog-compact {
532    position: fixed;
533    top: 0;
534    left: 0;
535    width: 100%;
536    height: 100%;
537    z-index: 9999;
538    display: flex;
539    align-items: center;
540    justify-content: center;
541    animation: fadeIn 0.2s ease;
542    padding: 20px;
543    box-sizing: border-box;
544    overflow-y: auto;
545}
546
547@keyframes fadeIn {
548    from { opacity: 0; }
549    to { opacity: 1; }
550}
551
552.dialog-content-sleek {
553    position: relative;
554    background: #ffffff;
555    width: 100%;
556    max-width: 450px;
557    max-height: calc(100vh - 40px);
558    border-radius: 8px;
559    box-shadow: 0 8px 32px rgba(0,0,0,0.2);
560    z-index: 10000;
561    animation: slideUp 0.3s ease;
562    overflow: hidden;
563    display: flex;
564    flex-direction: column;
565    margin: auto;
566}
567
568/* Mobile responsive dialog */
569@media (max-width: 768px) {
570    .event-dialog-compact {
571        padding: 10px;
572    }
573
574    .dialog-content-sleek {
575        max-width: 100%;
576        width: calc(100% - 20px);
577        max-height: calc(100vh - 20px);
578    }
579}
580
581@media (max-width: 480px) {
582    .event-dialog-compact {
583        padding: 0;
584        align-items: flex-start;
585    }
586
587    .dialog-content-sleek {
588        width: 100%;
589        max-width: 100%;
590        max-height: 100vh;
591        border-radius: 0;
592        margin: 0;
593    }
594}
595
596@keyframes slideUp {
597    from {
598        transform: translateY(20px);
599        opacity: 0;
600    }
601    to {
602        transform: translateY(0);
603        opacity: 1;
604    }
605}
606
607.dialog-header-sleek {
608    display: flex;
609    align-items: center;
610    justify-content: space-between;
611    padding: 10px 14px;
612    background: #2c3e50;
613    color: white;
614    cursor: move;
615    flex-shrink: 0;
616}
617
618.dialog-drag-handle {
619    cursor: move;
620}
621
622.dialog-header-sleek h3 {
623    margin: 0;
624    font-size: 15px;
625    font-weight: 600;
626}
627
628.dialog-close-btn {
629    background: rgba(255,255,255,0.2);
630    border: none;
631    color: white;
632    font-size: 22px;
633    width: 28px;
634    height: 28px;
635    border-radius: 50%;
636    cursor: pointer;
637    display: flex;
638    align-items: center;
639    justify-content: center;
640    transition: all 0.2s;
641    line-height: 1;
642    padding: 0;
643    flex-shrink: 0;
644}
645
646.dialog-close-btn:hover {
647    background: rgba(255,255,255,0.3);
648    transform: scale(1.1);
649}
650
651.sleek-form {
652    padding: 14px;
653    overflow-y: auto;
654    overflow-x: hidden;
655    flex: 1;
656    max-height: calc(100vh - 160px);
657}
658
659/* Ensure form is scrollable on small screens */
660@media (max-height: 600px) {
661    .sleek-form {
662        max-height: calc(100vh - 120px);
663    }
664}
665
666@media (max-height: 500px) {
667    .sleek-form {
668        max-height: calc(100vh - 100px);
669    }
670}
671
672.form-field {
673    margin-bottom: 10px;
674}
675
676/* Responsive form fields */
677@media (max-width: 480px) {
678    .form-field {
679        margin-bottom: 8px;
680    }
681}
682
683.form-field-checkbox {
684    background: #f0f8ff;
685    padding: 8px;
686    border-radius: 4px;
687    border: 1px solid #2196f3;
688}
689
690.checkbox-label {
691    display: flex;
692    align-items: center;
693    gap: 6px;
694    cursor: pointer;
695    font-size: 11px;
696    font-weight: 500;
697    color: #1976d2;
698}
699
700.checkbox-label input[type="checkbox"] {
701    width: 15px;
702    height: 15px;
703    cursor: pointer;
704}
705
706.form-row-group {
707    display: grid;
708    grid-template-columns: 1fr 1fr;
709    gap: 10px;
710    margin-bottom: 10px;
711}
712
713@media (max-width: 768px) {
714    .form-row-group {
715        grid-template-columns: 1fr;
716        gap: 8px;
717    }
718}
719
720.field-label {
721    display: block;
722    font-size: 11px;
723    font-weight: 600;
724    color: #2c3e50;
725    margin-bottom: 5px;
726    text-transform: uppercase;
727    letter-spacing: 0.3px;
728}
729
730@media (max-width: 480px) {
731    .field-label {
732        font-size: 10px;
733    }
734}
735
736.input-sleek {
737    width: 100%;
738    padding: 8px 10px;
739    border: 2px solid #e0e0e0;
740    border-radius: 4px;
741    font-size: 13px;
742    font-family: inherit;
743    transition: all 0.2s;
744    background: #fafafa;
745    box-sizing: border-box;
746}
747
748.input-sleek:focus {
749    outline: none;
750    border-color: #2196f3;
751    background: white;
752    box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);
753}
754
755.input-date {
756    font-weight: 500;
757    color: #2c3e50;
758    cursor: pointer;
759}
760
761.input-date::-webkit-calendar-picker-indicator {
762    cursor: pointer;
763    font-size: 14px;
764    padding: 2px;
765}
766
767.textarea-sleek {
768    resize: vertical;
769    min-height: 60px;
770    line-height: 1.4;
771}
772
773.color-picker-container {
774    display: flex;
775    align-items: center;
776    gap: 10px;
777}
778
779.input-color-sleek {
780    width: 50px;
781    height: 38px;
782    border: 2px solid #e0e0e0;
783    border-radius: 6px;
784    cursor: pointer;
785    transition: all 0.2s;
786}
787
788.input-color-sleek:hover {
789    border-color: #2196f3;
790    transform: scale(1.05);
791}
792
793.color-label {
794    font-size: 11px;
795    color: #666;
796}
797
798.form-row-group {
799    display: grid;
800    grid-template-columns: 2fr 1fr;
801    gap: 16px;
802    margin-bottom: 20px;
803}
804
805.field-label {
806    display: block;
807    font-size: 13px;
808    font-weight: 600;
809    color: #2c3e50;
810    margin-bottom: 8px;
811    text-transform: uppercase;
812    letter-spacing: 0.5px;
813}
814
815.input-sleek {
816    width: 100%;
817    padding: 12px 16px;
818    border: 2px solid #e0e0e0;
819    border-radius: 8px;
820    font-size: 15px;
821    font-family: inherit;
822    transition: all 0.2s;
823    background: #fafafa;
824    box-sizing: border-box;
825}
826
827.input-sleek:focus {
828    outline: none;
829    border-color: #667eea;
830    background: white;
831    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
832}
833
834.input-date {
835    font-weight: 500;
836    color: #2c3e50;
837    cursor: pointer;
838}
839
840.input-date::-webkit-calendar-picker-indicator {
841    cursor: pointer;
842    font-size: 18px;
843    padding: 4px;
844}
845
846.textarea-sleek {
847    resize: vertical;
848    min-height: 80px;
849    line-height: 1.5;
850}
851
852.color-picker-container {
853    display: flex;
854    align-items: center;
855    gap: 12px;
856}
857
858.input-color-sleek {
859    width: 60px;
860    height: 44px;
861    border: 2px solid #e0e0e0;
862    border-radius: 8px;
863    cursor: pointer;
864    transition: all 0.2s;
865}
866
867.input-color-sleek:hover {
868    border-color: #667eea;
869    transform: scale(1.05);
870}
871
872.color-label {
873    font-size: 13px;
874    color: #666;
875}
876
877.form-field-checkbox {
878    background: #f0f8ff;
879    padding: 12px;
880    border-radius: 6px;
881    border: 1px solid #2196f3;
882}
883
884.checkbox-label {
885    display: flex;
886    align-items: center;
887    gap: 8px;
888    cursor: pointer;
889    font-size: 13px;
890    font-weight: 500;
891    color: #1976d2;
892}
893
894.checkbox-label input[type="checkbox"] {
895    width: 18px;
896    height: 18px;
897    cursor: pointer;
898}
899
900.form-row-group {
901    display: grid;
902    grid-template-columns: 1fr 1fr;
903    gap: 12px;
904    margin-bottom: 16px;
905}
906
907@media (max-width: 768px) {
908    .form-row-group {
909        grid-template-columns: 1fr;
910    }
911}
912
913.dialog-actions-sleek {
914    display: flex;
915    gap: 8px;
916    padding: 12px 14px;
917    background: #f8f9fa;
918    border-top: 1px solid #e0e0e0;
919    justify-content: flex-end;
920    flex-shrink: 0;
921}
922
923/* Ensure buttons are visible on small screens */
924@media (max-width: 480px) {
925    .dialog-actions-sleek {
926        padding: 10px;
927    }
928
929    .btn-sleek {
930        flex: 1;
931        justify-content: center;
932    }
933}
934
935.btn-sleek {
936    padding: 7px 14px;
937    border: none;
938    border-radius: 4px;
939    font-size: 12px;
940    font-weight: 600;
941    cursor: pointer;
942    transition: all 0.2s;
943    display: inline-flex;
944    align-items: center;
945    gap: 4px;
946}
947
948.btn-cancel-sleek {
949    background: #e0e0e0;
950    color: #555;
951}
952
953.btn-cancel-sleek:hover {
954    background: #d0d0d0;
955}
956
957.btn-save-sleek {
958    background: #2196f3;
959    color: white;
960    box-shadow: 0 2px 4px rgba(33, 150, 243, 0.3);
961}
962
963.btn-save-sleek:hover {
964    background: #1976d2;
965    box-shadow: 0 4px 8px rgba(33, 150, 243, 0.4);
966}
967
968.btn-save-sleek:active {
969    transform: translateY(1px);
970}
971
972/* Day popup */
973.day-popup {
974    position: fixed;
975    top: 0;
976    left: 0;
977    width: 100%;
978    height: 100%;
979    z-index: 10000;
980    display: flex;
981    align-items: center;
982    justify-content: center;
983    padding: 20px;
984    box-sizing: border-box;
985}
986
987.day-popup-overlay {
988    position: absolute;
989    top: 0;
990    left: 0;
991    width: 100%;
992    height: 100%;
993    background: rgba(0,0,0,0.5);
994}
995
996.day-popup-content {
997    position: relative;
998    background: white;
999    width: 100%;
1000    max-width: 450px;
1001    max-height: calc(100vh - 40px);
1002    border-radius: 8px;
1003    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
1004    z-index: 10001;
1005    display: flex;
1006    flex-direction: column;
1007}
1008
1009/* Responsive day popup */
1010@media (max-width: 768px) {
1011    .day-popup {
1012        padding: 10px;
1013    }
1014
1015    .day-popup-content {
1016        max-width: 100%;
1017        max-height: calc(100vh - 20px);
1018    }
1019}
1020
1021@media (max-width: 480px) {
1022    .day-popup {
1023        padding: 0;
1024    }
1025
1026    .day-popup-content {
1027        width: 100%;
1028        max-width: 100%;
1029        max-height: 100vh;
1030        border-radius: 0;
1031    }
1032}
1033
1034.day-popup-header {
1035    display: flex;
1036    align-items: center;
1037    justify-content: space-between;
1038    padding: 16px 20px;
1039    border-bottom: 2px solid #e0e0e0;
1040    background: #fafafa;
1041    border-radius: 8px 8px 0 0;
1042}
1043
1044.day-popup-header h4 {
1045    margin: 0;
1046    font-size: 16px;
1047    font-weight: 600;
1048    color: #2c3e50;
1049}
1050
1051.popup-close {
1052    background: none;
1053    border: none;
1054    font-size: 28px;
1055    color: #999;
1056    cursor: pointer;
1057    width: 32px;
1058    height: 32px;
1059    display: flex;
1060    align-items: center;
1061    justify-content: center;
1062    border-radius: 4px;
1063    transition: all 0.15s;
1064    line-height: 1;
1065    padding: 0;
1066}
1067
1068.popup-close:hover {
1069    background: #f0f0f0;
1070    color: #333;
1071}
1072
1073.day-popup-body {
1074    flex: 1;
1075    overflow-y: auto;
1076    padding: 16px 20px;
1077    max-height: 400px;
1078}
1079
1080.popup-events-list {
1081    display: flex;
1082    flex-direction: column;
1083    gap: 12px;
1084}
1085
1086.popup-event-item {
1087    display: flex;
1088    background: #f8f9fa;
1089    border: 1px solid #e0e0e0;
1090    border-radius: 6px;
1091    overflow: hidden;
1092    transition: box-shadow 0.15s;
1093}
1094
1095.popup-event-item:hover {
1096    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
1097}
1098
1099.popup-event-content {
1100    flex: 1;
1101    padding: 12px;
1102}
1103
1104.popup-event-title {
1105    font-size: 14px;
1106    font-weight: 600;
1107    color: #2c3e50;
1108    margin-bottom: 6px;
1109}
1110
1111.popup-event-time {
1112    font-size: 12px;
1113    color: #2196f3;
1114    font-weight: 500;
1115    margin-bottom: 6px;
1116}
1117
1118.popup-event-desc {
1119    font-size: 12px;
1120    color: #666;
1121    line-height: 1.5;
1122    margin-bottom: 10px;
1123}
1124
1125.popup-event-actions {
1126    display: flex;
1127    gap: 8px;
1128}
1129
1130.day-popup-footer {
1131    padding: 16px 20px;
1132    border-top: 1px solid #e0e0e0;
1133    background: #fafafa;
1134    border-radius: 0 0 8px 8px;
1135}
1136
1137.btn-add-event {
1138    width: 100%;
1139    background: #4caf50;
1140    color: white;
1141    border: none;
1142    padding: 10px 16px;
1143    border-radius: 6px;
1144    font-size: 14px;
1145    font-weight: 500;
1146    cursor: pointer;
1147    transition: background 0.15s;
1148}
1149
1150.btn-add-event:hover {
1151    background: #45a049;
1152}
1153
1154.dialog-overlay {
1155    position: absolute;
1156    top: 0;
1157    left: 0;
1158    width: 100%;
1159    height: 100%;
1160    background: rgba(0,0,0,0.4);
1161}
1162
1163.dialog-content-compact {
1164    position: relative;
1165    background: white;
1166    width: 400px;
1167    border-radius: 6px;
1168    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
1169    padding: 20px;
1170    z-index: 10000;
1171}
1172
1173.dialog-content-compact h4 {
1174    margin: 0 0 16px 0;
1175    font-size: 16px;
1176    font-weight: 600;
1177    color: #2c3e50;
1178}
1179
1180.form-row {
1181    margin-bottom: 14px;
1182}
1183
1184.form-row-date {
1185    background: #f0f8ff;
1186    padding: 10px;
1187    border-radius: 6px;
1188    border: 2px solid #2196f3;
1189    margin-bottom: 18px;
1190}
1191
1192.form-row-date label {
1193    color: #1976d2;
1194    font-size: 13px;
1195}
1196
1197.form-row label {
1198    display: block;
1199    font-size: 12px;
1200    font-weight: 600;
1201    color: #555;
1202    margin-bottom: 4px;
1203}
1204
1205.form-row input[type="text"],
1206.form-row input[type="time"],
1207.form-row input[type="date"],
1208.form-row input[type="color"],
1209.form-row textarea {
1210    width: 100%;
1211    padding: 8px;
1212    border: 1px solid #d0d0d0;
1213    border-radius: 4px;
1214    font-size: 13px;
1215    box-sizing: border-box;
1216    font-family: inherit;
1217}
1218
1219.form-row input[type="color"] {
1220    height: 36px;
1221    padding: 2px;
1222}
1223
1224.form-row textarea {
1225    resize: vertical;
1226}
1227
1228.dialog-actions {
1229    display: flex;
1230    gap: 8px;
1231    justify-content: flex-end;
1232    margin-top: 16px;
1233}
1234
1235.btn-save,
1236.btn-cancel {
1237    padding: 8px 16px;
1238    border: none;
1239    border-radius: 4px;
1240    font-size: 13px;
1241    font-weight: 500;
1242    cursor: pointer;
1243    transition: all 0.15s;
1244}
1245
1246.btn-save {
1247    background: #4caf50;
1248    color: white;
1249}
1250
1251.btn-save:hover {
1252    background: #45a049;
1253}
1254
1255.btn-cancel {
1256    background: #f5f5f5;
1257    color: #555;
1258    border: 1px solid #d0d0d0;
1259}
1260
1261.btn-cancel:hover {
1262    background: #e8e8e8;
1263}
1264
1265/* Standalone event list */
1266.eventlist-standalone {
1267    max-width: 700px;
1268    margin: 20px auto;
1269    background: white;
1270    border: 1px solid #d0d0d0;
1271    border-radius: 6px;
1272    padding: 20px;
1273}
1274
1275.eventlist-standalone h3 {
1276    margin: 0 0 20px 0;
1277    font-size: 18px;
1278    font-weight: 600;
1279    color: #2c3e50;
1280    border-bottom: 2px solid #2196f3;
1281    padding-bottom: 10px;
1282}
1283
1284/* Standalone event panel (right panel only) */
1285.event-panel-standalone {
1286    width: 320px;
1287    background: #ffffff;
1288    border: 1px solid #d0d0d0;
1289    border-radius: 6px;
1290    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
1291    display: flex;
1292    flex-direction: column;
1293    height: 600px;
1294    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
1295    font-size: 13px;
1296}
1297
1298.panel-standalone-header {
1299    display: flex;
1300    align-items: center;
1301    justify-content: space-between;
1302    padding: 12px 16px;
1303    background: #fafafa;
1304    border-bottom: 1px solid #e0e0e0;
1305}
1306
1307.panel-standalone-header h3 {
1308    margin: 0;
1309    font-size: 14px;
1310    font-weight: 600;
1311    color: #2c3e50;
1312}
1313
1314.panel-standalone-actions {
1315    padding: 10px 16px;
1316    background: #ffffff;
1317    border-bottom: 1px solid #e0e0e0;
1318}
1319
1320.panel-standalone-actions .add-event-compact {
1321    width: 100%;
1322}
1323
1324.eventlist-day-group {
1325    margin-bottom: 24px;
1326}
1327
1328.eventlist-date {
1329    margin: 0 0 12px 0;
1330    font-size: 14px;
1331    font-weight: 600;
1332    color: #2c3e50;
1333    background: #f8f8f8;
1334    padding: 8px 12px;
1335    border-left: 4px solid #2196f3;
1336}
1337
1338.eventlist-item {
1339    display: flex;
1340    margin-bottom: 10px;
1341    background: white;
1342    border: 1px solid #e0e0e0;
1343    border-radius: 4px;
1344    overflow: hidden;
1345}
1346
1347.eventlist-content {
1348    flex: 1;
1349    padding: 12px;
1350    display: flex;
1351    align-items: center;
1352    gap: 12px;
1353}
1354
1355.eventlist-time {
1356    font-size: 12px;
1357    font-weight: 600;
1358    color: #2196f3;
1359    min-width: 50px;
1360}
1361
1362.eventlist-title {
1363    font-size: 14px;
1364    font-weight: 500;
1365    color: #2c3e50;
1366}
1367
1368.eventlist-desc {
1369    font-size: 12px;
1370    color: #666;
1371    margin-top: 6px;
1372    line-height: 1.4;
1373}
1374