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