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