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