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); 12 border: 1px solid var(--border-color, #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/* Dark theme borders - match sidebar widget style */ 21.calendar-theme-matrix.calendar-compact-container { 22 border: 2px solid var(--border-main, #00cc07); 23 box-shadow: 0 0 10px var(--shadow-color, rgba(0, 204, 7, 0.3)); 24} 25 26.calendar-theme-purple.calendar-compact-container { 27 border: 2px solid var(--border-main, #9b59b6); 28 box-shadow: 0 0 10px var(--shadow-color, rgba(155, 89, 182, 0.3)); 29} 30 31.calendar-theme-pink.calendar-compact-container { 32 border: 2px solid var(--border-main, #ff1493); 33 box-shadow: 0 0 10px var(--shadow-color, rgba(255, 20, 147, 0.4)); 34} 35 36/* Mobile responsive */ 37@media (max-width: 768px) { 38 .calendar-compact-container { 39 flex-direction: column; 40 height: auto; 41 min-height: 400px; 42 max-height: none; 43 } 44 45 .calendar-compact-left { 46 width: 100% !important; 47 min-width: 100% !important; 48 border-right: none !important; 49 border-bottom: 1px solid var(--border-color, #e0e0e0); 50 height: auto; 51 min-height: 300px; 52 } 53 54 .calendar-compact-right { 55 width: 100% !important; 56 min-width: 100% !important; 57 max-height: 400px; 58 } 59} 60 61/* Tablet responsive */ 62@media (max-width: 1024px) and (min-width: 769px) { 63 .calendar-compact-container { 64 max-width: 100%; 65 } 66 67 .calendar-compact-left { 68 width: 60% !important; 69 min-width: 400px; 70 } 71 72 .calendar-compact-right { 73 width: 40% !important; 74 min-width: 250px; 75 } 76} 77 78/* Small screens */ 79@media (max-width: 600px) { 80 .calendar-compact-container { 81 font-size: 11px; 82 height: auto; 83 max-height: none; 84 } 85} 86 87/* Left side: Calendar - FLEXIBLE */ 88.calendar-compact-left { 89 flex: 1; 90 min-width: 400px; 91 border-right: 1px solid var(--border-color, #e0e0e0); 92 display: flex; 93 flex-direction: column; 94 background: var(--background-site); 95 overflow: hidden; 96} 97 98/* Right side: Event list - FLEXIBLE */ 99.calendar-compact-right { 100 flex: 0 0 300px; 101 min-width: 250px; 102 max-width: 400px; 103 display: flex; 104 flex-direction: column; 105 background: var(--background-site); 106 overflow: hidden; 107} 108 109/* Calendar header - COMPACT */ 110.calendar-compact-header { 111 display: flex; 112 align-items: center; 113 gap: 12px; 114 padding: 8px 12px; 115 background: var(--background-header); 116 color: var(--text-primary); 117 border-bottom: 1px solid var(--border-color, #e0e0e0); 118} 119 120/* Namespace filter indicator at top of calendar */ 121.calendar-namespace-filter { 122 display: flex; 123 align-items: center; 124 gap: 6px; 125 padding: 6px 10px; 126 background: var(--cell-today-bg, #e8f5e9); 127 border: 1px solid var(--border-main, #81c784); 128 border-radius: 4px; 129 margin: 8px 12px 0 12px; 130 font-size: 11px; 131} 132 133.namespace-filter-label { 134 color: var(--text-bright, #2e7d32); 135 font-weight: 600; 136} 137 138.namespace-filter-name { 139 background: var(--text-bright, #00cc07); 140 color: var(--background-site, white); 141 padding: 2px 6px; 142 border-radius: 3px; 143 font-weight: 500; 144 font-family: monospace; 145 font-size: 10px; 146} 147 148.namespace-filter-clear { 149 background: none; 150 border: none; 151 color: var(--text-bright, #00cc07); 152 cursor: pointer; 153 font-size: 16px; 154 padding: 0; 155 width: 20px; 156 height: 20px; 157 display: flex; 158 align-items: center; 159 justify-content: center; 160 border-radius: 3px; 161 margin-left: auto; 162 transition: background 0.2s; 163} 164 165.namespace-filter-clear:hover { 166 background: var(--cell-today-bg, rgba(0, 204, 7, 0.1)); 167} 168 169.namespace-filter-badge { 170 position: relative; 171 padding-right: 24px !important; 172} 173 174.filter-clear-inline { 175 position: absolute; 176 right: 4px; 177 top: 50%; 178 transform: translateY(-50%); 179 background: none; 180 border: none; 181 color: var(--text-dim, #999); 182 cursor: pointer; 183 font-size: 12px; 184 padding: 0; 185 width: 16px; 186 height: 16px; 187 border-radius: 50%; 188 display: flex; 189 align-items: center; 190 justify-content: center; 191 transition: all 0.15s; 192 line-height: 1; 193} 194 195.filter-clear-inline:hover { 196 background: var(--cell-bg, rgba(211, 47, 47, 0.1)); 197 color: var(--text-bright, #d32f2f); 198} 199 200.calendar-compact-header h3 { 201 margin: 0; 202 font-size: 14px; 203 font-weight: 600; 204 color: var(--text-primary, #2c3e50); 205 flex: 1; 206 text-align: center; 207} 208 209.calendar-month-picker { 210 cursor: pointer; 211 user-select: none; 212 transition: all 0.15s; 213 padding: 4px 8px; 214 border-radius: 4px; 215} 216 217.calendar-month-picker:hover { 218 background: var(--cell-today-bg, #f0f0f0); 219 color: var(--text-bright, #008800); 220 box-shadow: 0 0 3px var(--shadow-color, rgba(0,0,0,0.1)); 221} 222 223.month-picker-overlay { 224 position: fixed; 225 top: 0; 226 left: 0; 227 right: 0; 228 bottom: 0; 229 background: rgba(0, 0, 0, 0.5); 230 display: flex; 231 align-items: center; 232 justify-content: center; 233 z-index: 10000; 234} 235 236.month-picker-dialog { 237 background: var(--background-site, white); 238 border-radius: 8px; 239 padding: 20px; 240 box-shadow: 0 4px 20px var(--shadow-color, rgba(0, 0, 0, 0.3)); 241 min-width: 300px; 242 border: 1px solid var(--border-main, transparent); 243} 244 245.month-picker-dialog h4 { 246 margin: 0 0 16px 0; 247 font-size: 16px; 248 font-weight: 600; 249 color: var(--text-primary, #2c3e50); 250} 251 252.month-picker-selects { 253 display: flex; 254 gap: 12px; 255 margin-bottom: 16px; 256} 257 258.month-picker-select { 259 flex: 1; 260 padding: 8px 12px; 261 border: 1px solid var(--border-color, #d0d0d0); 262 border-radius: 4px; 263 font-size: 14px; 264 background: var(--cell-bg, white); 265 color: var(--text-primary, #333); 266 cursor: pointer; 267} 268 269.month-picker-select:focus { 270 outline: none; 271 border-color: var(--text-bright, #008800); 272 box-shadow: 0 0 0 2px var(--shadow-color, rgba(0, 136, 0, 0.1)); 273} 274 275.month-picker-actions { 276 display: flex; 277 gap: 8px; 278 justify-content: flex-end; 279} 280 281.cal-nav-btn { 282 background: var(--border-main); 283 border: 1px solid var(--border-color); 284 color: var(--background-site); 285 width: 28px; 286 height: 28px; 287 border-radius: 4px; 288 cursor: pointer; 289 font-size: 16px; 290 transition: all 0.15s; 291 padding: 0; 292 display: flex; 293 align-items: center; 294 justify-content: center; 295} 296 297.cal-nav-btn:hover { 298 filter: brightness(1.3); 299 box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3)); 300 transform: scale(1.08); 301} 302 303.cal-nav-btn:active { 304 filter: brightness(0.85); 305 transform: scale(0.95); 306 box-shadow: none; 307} 308 309.cal-today-btn { 310 background: var(--border-main); 311 border: 1px solid var(--border-color); 312 color: var(--background-site); 313 font-size: 11px; 314 font-weight: 600; 315 padding: 4px 10px; 316 border-radius: 4px; 317 cursor: pointer; 318 transition: all 0.15s; 319} 320 321.cal-today-btn:hover { 322 filter: brightness(1.3); 323 box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3)); 324 transform: scale(1.08); 325} 326 327.cal-today-btn:active { 328 filter: brightness(0.85); 329 transform: scale(0.95); 330 box-shadow: none; 331} 332 333/* Calendar grid - Excel-like sizing - RESPONSIVE */ 334.calendar-compact-grid { 335 width: 100%; 336 border-collapse: collapse; 337 table-layout: fixed; 338 flex: 1; 339 margin: 0 !important; 340 padding: 0; 341} 342 343/* Day name headers (SMTWTFS) - rendered as a separate grid div above the table 344 to avoid Firefox table-cell height issues where th matches td height */ 345.calendar-day-headers { 346 display: grid; 347 grid-template-columns: repeat(7, 1fr); 348 background: var(--background-header); 349 border-bottom: 1px solid var(--border-color, #d0d0d0); 350 margin: 0; 351 padding: 0; 352} 353 354.calendar-day-headers span { 355 height: 22px; 356 line-height: 22px; 357 font-size: 10px; 358 font-weight: 600; 359 text-align: center; 360 color: var(--text-primary); 361 border-right: 1px solid var(--border-color, #e8e8e8); 362 box-sizing: border-box; 363} 364 365.calendar-day-headers span:last-child { 366 border-right: none; 367} 368 369.calendar-compact-grid tbody td { 370 height: 58px; 371 min-height: 40px; 372 border: 1px solid var(--border-color, #e8e8e8); 373 border-top: none; 374 border-left: none; 375 background-color: var(--background-site); /* Use scoped CSS var from PHP */ 376 color: var(--text-primary); 377 cursor: pointer; 378 padding: 3px; 379 position: relative; 380 vertical-align: top; 381 transition: background 0.1s; 382} 383 384/* Smaller cells on mobile */ 385@media (max-width: 600px) { 386 .calendar-compact-grid tbody td { 387 height: 45px; 388 min-height: 35px; 389 padding: 2px; 390 } 391 392 .calendar-day-headers span { 393 height: 18px; 394 line-height: 18px; 395 font-size: 9px; 396 } 397} 398 399.calendar-compact-grid tbody td:first-child { 400 border-left: 1px solid var(--border-color, #e8e8e8); 401} 402 403.calendar-compact-grid tbody td:hover { 404 background-color: var(--background-alt); /* Hover state uses scoped var */ 405} 406 407.cal-empty { 408 background: var(--background-site); 409 cursor: default !important; 410} 411 412.cal-empty:hover { 413 background: var(--background-site); 414} 415 416.cal-day { 417 cursor: pointer; 418 transition: background 0.15s, box-shadow 0.15s; 419} 420 421.cal-day:hover { 422 background: var(--cell-today-bg) !important; 423 box-shadow: inset 0 0 0 1px var(--border-main, rgba(0,0,0,0.1)); 424} 425 426.cal-today { 427 background: var(--cell-today-bg); 428} 429 430.cal-today:hover { 431 box-shadow: inset 0 0 0 2px var(--border-main, rgba(0,0,0,0.15)); 432} 433 434.cal-has-events { 435 /* background removed - set via inline style with template colors */ 436} 437 438.cal-has-events:hover { 439 /* background removed - inline style handles this */ 440} 441 442.day-num { 443 display: inline-block; 444 font-size: 11px; 445 font-weight: 500; 446 color: var(--text-primary, #333); 447 padding: 1px 3px; 448} 449 450.cal-today .day-num, 451.day-num-today { 452 background: var(--border-main, #008800); 453 color: var(--background-site, white) !important; 454 border-radius: 50%; 455 font-weight: 700; 456 width: 20px; 457 height: 20px; 458 line-height: 20px; 459 text-align: center; 460 padding: 0; 461 display: inline-block; 462} 463 464.event-indicators { 465 position: absolute; 466 left: 20px; 467 right: 0; 468 top: 20px; 469 bottom: 2px; 470 display: flex; 471 flex-direction: column; 472 gap: 2px; 473 pointer-events: none; 474 overflow: visible; 475} 476 477.event-bar { 478 width: 100%; 479 min-height: 6px; 480 height: 6px; 481 border-radius: 2px; 482 cursor: pointer; 483 pointer-events: auto; 484 transition: all 0.2s; 485 box-shadow: 0 1px 2px rgba(0,0,0,0.1); 486 position: relative; 487 overflow: visible; 488} 489 490.event-bar:hover { 491 transform: scaleY(1.3); 492 box-shadow: 0 2px 4px rgba(0,0,0,0.2); 493 z-index: 10; 494} 495 496.event-bar-no-time { 497 /* Events without time appear at top */ 498 order: -1; 499 opacity: 0.9; 500} 501 502.event-bar-timed { 503 /* Events with time are sorted by time */ 504 opacity: 0.95; 505} 506 507/* Multi-day event styling - creates visual continuity */ 508.event-bar-continues { 509 /* Event continues from previous day - extend left to cell edge */ 510 border-top-left-radius: 0; 511 border-bottom-left-radius: 0; 512 margin-left: -20px; 513 padding-left: 20px; 514} 515 516.event-bar-continuing { 517 /* Event continues to next day - extend right to cell edge */ 518 border-top-right-radius: 0; 519 border-bottom-right-radius: 0; 520 margin-right: -2px; 521 padding-right: 2px; 522} 523 524.event-bar-continues.event-bar-continuing { 525 /* Event continues both ways (middle of span) - no border radius, extends both sides */ 526 border-radius: 0; 527} 528 529/* Important event bar styling */ 530.event-bar-important { 531 box-shadow: 0 1px 3px rgba(255, 215, 0, 0.4); 532} 533 534/* Star is rendered via ::before pseudo-element */ 535.event-bar-important.event-bar-has-star::before { 536 content: '⭐'; 537 position: absolute; 538 left: -12px; 539 top: 50%; 540 transform: translateY(-50%); 541 font-size: 7px; 542 line-height: 1; 543 filter: drop-shadow(0 0 1px rgba(0,0,0,0.3)); 544 pointer-events: none; 545} 546 547/* Hide the inline star span - we use ::before instead */ 548.event-bar-star { 549 display: none; 550} 551 552/* Old event dot - removing */ 553.event-dot { 554 display: none; 555} 556 557/* Event list header - COMPACT */ 558.event-list-header { 559 display: flex; 560 align-items: center; 561 justify-content: space-between; 562 padding: 8px 10px; 563 border-bottom: 1px solid var(--border-color, #e0e0e0); 564 background: var(--background-header); 565 gap: 6px; 566 flex-wrap: nowrap; 567 overflow: hidden; 568} 569 570.event-list-header-content { 571 display: flex; 572 align-items: center; 573 gap: 6px; 574 flex: 0 0 auto; 575 min-width: 0; 576} 577 578.event-list-header h4 { 579 margin: 0; 580 font-size: 12px; 581 font-weight: 600; 582 color: var(--text-primary); 583 white-space: nowrap; 584} 585 586.namespace-badge { 587 background: var(--cell-today-bg, #e8f5e9); 588 color: var(--text-bright, #388e3c); 589 padding: 2px 6px; 590 border-radius: 10px; 591 font-size: 9px; 592 font-weight: 600; 593 text-transform: uppercase; 594 letter-spacing: 0.3px; 595 border: 1px solid var(--border-color, transparent); 596} 597 598/* Event search bar - inline in header */ 599.event-search-container-inline { 600 position: relative; 601 flex: 1 1 auto; 602 min-width: 60px; 603 max-width: 160px; 604 margin: 0 4px; 605 display: flex; 606 gap: 0; 607} 608 609.event-search-input-inline { 610 flex: 1; 611 padding: 4px 24px 4px 8px; 612 border: 1px solid var(--border-color, #d0d0d0); 613 border-radius: 3px 0 0 3px; 614 font-size: 11px; 615 outline: none; 616 transition: border-color 0.2s, box-shadow 0.2s; 617 background: var(--cell-bg); 618 color: var(--text-primary); 619 min-width: 0; 620} 621 622.event-search-input-inline:focus { 623 border-color: var(--text-bright, #00cc07); 624 box-shadow: 0 0 0 2px var(--shadow-color, rgba(0, 204, 7, 0.1)); 625} 626 627.event-search-input-inline::placeholder { 628 color: var(--text-dim); 629 font-size: 10px; 630} 631 632.event-search-clear-inline { 633 position: absolute; 634 right: 26px; 635 top: 50%; 636 transform: translateY(-50%); 637 background: none; 638 border: none; 639 color: var(--text-dim); 640 cursor: pointer; 641 padding: 2px 4px; 642 font-size: 12px; 643 line-height: 1; 644 transition: color 0.2s; 645} 646 647.event-search-clear-inline:hover { 648 color: var(--text-primary); 649} 650 651.event-search-mode-inline { 652 background: var(--cell-bg, #f0f0f0); 653 border: 1px solid var(--border-color, #d0d0d0); 654 border-left: none; 655 border-radius: 0 3px 3px 0; 656 padding: 0 5px; 657 cursor: pointer; 658 font-size: 10px; 659 transition: all 0.2s; 660 color: var(--text-dim, #666); 661 display: flex; 662 align-items: center; 663 flex-shrink: 0; 664} 665 666.event-search-mode-inline:hover { 667 background: var(--cell-today-bg, #e8f5e9); 668 color: var(--text-bright, #00cc07); 669} 670 671.event-search-mode-inline.all-dates { 672 background: var(--text-bright, #00cc07); 673 color: var(--background-site, white); 674 border-color: var(--text-bright, #00cc07); 675} 676 677.event-search-mode-inline.all-dates:hover { 678 filter: brightness(1.1); 679} 680 681.no-search-results { 682 text-align: center; 683 color: var(--text-dim); 684 font-size: 12px; 685 padding: 20px; 686 font-style: italic; 687} 688 689.add-event-compact { 690 background: var(--border-main); 691 color: var(--background-site); 692 border: none; 693 padding: 4px 8px; 694 border-radius: 3px; 695 font-size: 11px; 696 font-weight: 500; 697 cursor: pointer; 698 transition: all 0.15s; 699 flex-shrink: 0; 700 white-space: nowrap; 701} 702 703.add-event-compact:hover { 704 filter: brightness(1.3); 705 box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3)); 706 transform: scale(1.05); 707} 708 709.add-event-compact:active { 710 filter: brightness(0.85); 711 transform: scale(0.95); 712} 713 714/* Event list scrollable area - COMPACT */ 715.event-list-compact { 716 flex: 1; 717 overflow-y: auto; 718 padding: 6px; 719 background: var(--background-site); 720} 721 722.event-list-compact::-webkit-scrollbar { 723 width: 6px; 724} 725 726.event-list-compact::-webkit-scrollbar-track { 727 background: var(--cell-bg, #f5f5f5); 728} 729 730.event-list-compact::-webkit-scrollbar-thumb { 731 background: var(--border-color, #ccc); 732 border-radius: 3px; 733} 734 735.event-list-compact::-webkit-scrollbar-thumb:hover { 736 background: var(--text-dim, #aaa); 737} 738 739/* Event items in list - SUPER COMPACT with checkbox on right */ 740.event-compact-item { 741 display: flex; 742 align-items: flex-start; 743 margin-bottom: 4px; 744 background-color: var(--background-site); 745 color: var(--text-primary); 746 border: 1px solid var(--border-color, #e0e0e0); 747 border-left: 3px solid var(--text-bright, #3498db); 748 border-radius: 3px; 749 padding: 5px 6px; 750 transition: box-shadow 0.15s, background 0.15s, transform 0.15s; 751 gap: 6px; 752 position: relative; 753} 754 755.event-compact-item:hover { 756 box-shadow: 0 1px 3px rgba(0,0,0,0.08); 757 background-color: var(--background-alt); /* Slightly different on hover */ 758} 759 760.event-highlighted { 761 animation: highlightPulse 0.6s ease-in-out; 762 background: var(--tomorrow-bg, #fff9e6) !important; 763 box-shadow: 0 2px 8px var(--shadow-color, rgba(255, 193, 7, 0.4)) !important; 764} 765 766@keyframes highlightPulse { 767 0% { 768 background: var(--background-site, #ffffff); 769 box-shadow: 0 0 0 rgba(255, 193, 7, 0); 770 } 771 50% { 772 background: #fffbea; 773 box-shadow: 0 4px 12px rgba(255, 193, 7, 0.6); 774 transform: scale(1.02); 775 } 776 100% { 777 background: #fff9e6; 778 box-shadow: 0 2px 8px rgba(255, 193, 7, 0.4); 779 transform: scale(1); 780 } 781} 782 783/* Important namespace event highlighting */ 784.event-important { 785 background: var(--important-bg, rgba(0, 204, 7, 0.06)) !important; 786 border-right: 2px solid var(--important-border, rgba(0, 204, 7, 0.3)); 787} 788 789.event-important:hover { 790 background: var(--important-bg-hover, rgba(0, 204, 7, 0.1)) !important; 791} 792 793.event-important-star { 794 font-size: 10px; 795 flex-shrink: 0; 796} 797 798/* Theme-specific important event colors */ 799.calendar-theme-matrix .event-important, 800.sidebar-matrix .event-important { 801 --important-bg: rgba(0, 204, 7, 0.08); 802 --important-bg-hover: rgba(0, 204, 7, 0.12); 803 --important-border: rgba(0, 204, 7, 0.4); 804} 805 806.calendar-theme-purple .event-important, 807.sidebar-purple .event-important { 808 --important-bg: rgba(156, 39, 176, 0.08); 809 --important-bg-hover: rgba(156, 39, 176, 0.12); 810 --important-border: rgba(156, 39, 176, 0.4); 811} 812 813.calendar-theme-pink .event-important, 814.sidebar-pink .event-important { 815 --important-bg: rgba(255, 105, 180, 0.1); 816 --important-bg-hover: rgba(255, 105, 180, 0.15); 817 --important-border: rgba(255, 105, 180, 0.5); 818} 819 820.calendar-theme-professional .event-important { 821 --important-bg: rgba(33, 150, 243, 0.08); 822 --important-bg-hover: rgba(33, 150, 243, 0.12); 823 --important-border: rgba(33, 150, 243, 0.4); 824} 825 826.calendar-theme-wiki .event-important { 827 --important-bg: rgba(0, 102, 204, 0.06); 828 --important-bg-hover: rgba(0, 102, 204, 0.1); 829 --important-border: rgba(0, 102, 204, 0.3); 830} 831 832.event-completed { 833 opacity: 0.55; 834 background: var(--cell-bg, #f5f5f5); 835} 836 837.event-completed .event-title-compact { 838 text-decoration: line-through; 839 color: var(--text-dim, #999); 840} 841 842.event-past { 843 opacity: 0.35; 844 background: var(--cell-bg, #fafafa); 845 font-size: 10px; 846 padding: 3px 6px; 847 margin-bottom: 2px; 848 cursor: pointer; 849 transition: all 0.2s ease; 850} 851 852.event-past:hover { 853 opacity: 0.6; 854 background: var(--cell-today-bg, #f5f5f5); 855} 856 857.event-past-expanded { 858 opacity: 0.8 !important; 859 background: var(--cell-bg, #f9f9f9) !important; 860 padding: 5px 6px !important; 861 font-size: 12px !important; 862} 863 864.event-past-expanded .event-title-compact { 865 font-size: 12px !important; 866 color: var(--text-dim, #666) !important; 867} 868 869.event-past-expanded .event-date-time { 870 font-size: 11px !important; 871 color: var(--text-dim, #888) !important; 872} 873 874.event-past .event-title-compact { 875 font-size: 10px; 876 color: var(--text-dim, #aaa); 877 font-weight: 400; 878} 879 880.event-past .event-date-time { 881 font-size: 9px; 882 color: var(--text-dim, #bbb); 883} 884 885.event-past .event-action-btn { 886 font-size: 11px; 887 opacity: 0.3; 888} 889 890.event-past .event-action-btn:hover { 891 opacity: 0.7; 892} 893 894.event-today-badge { 895 background: var(--border-main, #9b59b6); 896 color: var(--background-site, white); 897 padding: 1px 4px; 898 border-radius: 3px; 899 font-size: 9px; 900 font-weight: 600; 901 letter-spacing: 0.5px; 902 display: inline-block; 903 vertical-align: middle; 904 margin-left: auto; /* Right-align */ 905 float: right; /* Force to right side */ 906} 907 908.event-pastdue-badge { 909 background: var(--pastdue-color, #e74c3c); 910 color: white; 911 padding: 1px 4px; 912 border-radius: 3px; 913 font-size: 9px; 914 font-weight: 600; 915 letter-spacing: 0.5px; 916 display: inline-block; 917 vertical-align: middle; 918 margin-left: auto; /* Right-align */ 919 float: right; /* Force to right side */ 920} 921 922.event-pastdue { 923 border: 2px solid var(--pastdue-color, #e74c3c) !important; 924 border-radius: 4px; 925 opacity: 1 !important; 926} 927 928.event-namespace-badge { 929 background: var(--text-bright, #008800); 930 color: var(--background-site, white); 931 padding: 1px 4px; 932 border-radius: 3px; 933 font-size: 9px; 934 font-weight: 500; 935 display: inline-block; 936 vertical-align: middle; 937 margin-left: 4px; 938 cursor: pointer; 939 transition: all 0.15s; 940} 941 942.event-namespace-badge:hover { 943 filter: brightness(1.3); 944} 945 946.event-conflict-badge { 947 background: var(--border-main, #ff9800); 948 color: var(--background-site, white); 949 padding: 0px 4px; 950 border-radius: 2px; 951 font-size: 9px; 952 display: inline-block; 953 vertical-align: middle; 954 margin-left: 3px; 955 cursor: help; 956 animation: pulse-warning 2s infinite; 957 line-height: 14px; 958 border: 1px solid var(--text-bright, #ff9800); 959} 960 961@keyframes pulse-warning { 962 0%, 100% { 963 opacity: 1; 964 } 965 50% { 966 opacity: 0.7; 967 } 968} 969 970.event-conflict-badge:hover { 971 background: var(--text-bright, #f57c00); 972 animation: none; 973} 974 975/* Custom conflict tooltip - SMALLER FOR MAIN CALENDAR */ 976.conflict-tooltip { 977 position: fixed; 978 z-index: 10000; 979 background: var(--background-site, white); 980 border: 1px solid var(--border-main, #ff9800); 981 border-radius: 3px; 982 box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2)); 983 padding: 0; 984 min-width: 120px; 985 max-width: 200px; 986 opacity: 0; 987 transition: opacity 0.2s; 988 pointer-events: none; 989} 990 991/* Custom tooltip that appears above and to the left - FIXED POSITION */ 992[data-tooltip] { 993 position: relative; 994 cursor: help; 995} 996 997[data-tooltip]:before { 998 content: attr(data-tooltip); 999 position: fixed; 1000 padding: 3px 6px; 1001 background: rgba(0, 0, 0, 0.95); 1002 color: var(--background-site, #fff); 1003 font-size: 9px; 1004 line-height: 1.3; 1005 white-space: pre-line; 1006 border-radius: 3px; 1007 opacity: 0; 1008 pointer-events: none; 1009 transition: opacity 0.2s; 1010 min-width: 120px; 1011 max-width: 200px; 1012 z-index: 10000; 1013 text-align: left; 1014 box-shadow: 0 2px 8px rgba(0,0,0,0.3); 1015} 1016 1017[data-tooltip]:hover:before { 1018 opacity: 1; 1019} 1020 1021/* Pink theme tooltips - with hearts! */ 1022.sidebar-pink [data-tooltip]:before { 1023 background: linear-gradient(135deg, #ff1493 0%, #ff69b4 100%); 1024 color: #fff; 1025 border: 2px solid #ff85c1; 1026 box-shadow: 0 0 15px rgba(255, 20, 147, 0.6), 0 4px 12px rgba(0, 0, 0, 0.4); 1027 font-weight: 600; 1028} 1029 1030.sidebar-pink [data-tooltip]:after { 1031 content: ''; 1032 position: fixed; 1033 font-size: 12px; 1034 opacity: 0; 1035 pointer-events: none; 1036 transition: opacity 0.2s; 1037 z-index: 10001; 1038 filter: drop-shadow(0 0 3px rgba(255, 20, 147, 0.8)); 1039} 1040 1041.sidebar-pink [data-tooltip]:hover:after { 1042 opacity: 1; 1043} 1044 1045/* Position data-tooltip with JavaScript for no cutoff */ 1046.data-tooltip-positioned:before { 1047 /* Position set by JavaScript */ 1048} 1049 1050/* Allow sidebar to overflow for tooltips */ 1051.sidebar-widget, 1052.sidebar-matrix { 1053 overflow: visible !important; 1054} 1055 1056.conflict-tooltip-header { 1057 background: var(--border-main, #ff9800); 1058 color: var(--background-site, white); 1059 padding: 4px 8px; 1060 font-weight: 600; 1061 font-size: 10px; 1062 border-radius: 2px 2px 0 0; 1063} 1064 1065.conflict-tooltip-body { 1066 padding: 6px 8px; 1067 font-size: 9px; 1068 line-height: 1.4; 1069} 1070 1071.conflict-item { 1072 padding: 2px 0; 1073 color: var(--text-primary, #333); 1074 border-bottom: 1px solid var(--border-color, #f0f0f0); 1075 font-size: 9px; 1076} 1077 1078.conflict-item:last-child { 1079 border-bottom: none; 1080} 1081 1082.event-info { 1083 flex: 1; 1084 min-width: 0; 1085 padding-right: 60px; 1086 text-align: left; 1087} 1088 1089.event-title-row { 1090 display: flex; 1091 align-items: center; 1092 gap: 4px; 1093} 1094 1095.event-title-compact { 1096 font-size: 12px; 1097 font-weight: 600; 1098 color: var(--text-primary, #2c3e50); 1099 overflow: hidden; 1100 text-overflow: ellipsis; 1101 white-space: nowrap; 1102 text-align: left; 1103} 1104 1105.event-meta-compact { 1106 font-size: 10px; 1107 color: var(--text-dim, #666); 1108 margin-top: 1px; 1109 text-align: left; 1110} 1111 1112.event-date-time { 1113 font-weight: 500; 1114} 1115 1116.event-desc-compact { 1117 font-size: 10px; 1118 color: var(--text-dim, #666); 1119 line-height: 1.4; 1120 margin-top: 2px; 1121 text-align: left; 1122 word-wrap: break-word; 1123 overflow-wrap: break-word; 1124} 1125 1126.event-desc-compact img.event-image { 1127 max-width: 100%; 1128 height: auto; 1129 margin: 4px 0; 1130 border-radius: 3px; 1131 display: block; 1132} 1133 1134.event-desc-compact a { 1135 color: var(--text-bright, #008800); 1136 text-decoration: none; 1137 border-bottom: 1px dotted var(--text-bright, #008800); 1138} 1139 1140.event-desc-compact a:hover { 1141 color: var(--text-primary, #388e3c); 1142 border-bottom-style: solid; 1143} 1144 1145.event-desc-compact strong, 1146.event-desc-compact b { 1147 font-weight: 600; 1148 color: var(--text-primary, #333); 1149} 1150 1151.event-desc-compact em, 1152.event-desc-compact i { 1153 font-style: italic; 1154} 1155 1156.event-desc-compact code { 1157 background: var(--cell-bg, #f5f5f5); 1158 padding: 1px 3px; 1159 border-radius: 2px; 1160 font-family: monospace; 1161 font-size: 9px; 1162 color: var(--text-primary, inherit); 1163} 1164 1165.event-actions-compact { 1166 position: absolute; 1167 top: 5px; 1168 right: 24px; 1169 display: flex; 1170 gap: 2px; 1171 flex-shrink: 0; 1172} 1173 1174.event-action-btn { 1175 background: none; 1176 border: none; 1177 font-size: 14px; 1178 cursor: pointer; 1179 padding: 2px; 1180 opacity: 0.5; 1181 transition: opacity 0.15s, transform 0.15s; 1182} 1183 1184.event-action-btn:hover { 1185 opacity: 1; 1186 transform: scale(1.15); 1187} 1188 1189.task-checkbox { 1190 position: absolute; 1191 top: 5px; 1192 right: 6px; 1193 width: 16px; 1194 height: 16px; 1195 margin: 0; 1196 cursor: pointer; 1197 flex-shrink: 0; 1198 accent-color: var(--text-bright, #008800); 1199 /* Custom checkbox - bright border for all themes */ 1200 appearance: none; 1201 -webkit-appearance: none; 1202 border: 2px solid var(--text-bright, #008800); 1203 border-radius: 3px; 1204 background: var(--cell-bg, #fff); 1205 transition: all 0.15s; 1206 box-shadow: 0 0 3px var(--shadow-color, rgba(0,0,0,0.1)); 1207} 1208 1209.task-checkbox:hover { 1210 border-color: var(--text-bright, #008800); 1211 box-shadow: 0 0 8px var(--shadow-color, rgba(0,0,0,0.25)); 1212 transform: scale(1.1); 1213} 1214 1215.task-checkbox:checked { 1216 background: var(--text-bright, #008800); 1217 border-color: var(--text-bright, #008800); 1218 box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.2)); 1219} 1220 1221.task-checkbox:checked::after { 1222 content: '✓'; 1223 display: block; 1224 text-align: center; 1225 color: var(--background-site, white); 1226 font-size: 11px; 1227 font-weight: 700; 1228 line-height: 12px; 1229} 1230 1231.no-events-msg { 1232 text-align: center; 1233 color: var(--text-dim, #999); 1234 font-size: 12px; 1235 font-style: italic; 1236 padding: 40px 20px; 1237} 1238 1239/* Sleek Event Dialog - FULLY RESPONSIVE */ 1240.event-dialog-compact { 1241 position: fixed; 1242 top: 0; 1243 left: 0; 1244 width: 100%; 1245 height: 100%; 1246 z-index: 9999; 1247 display: flex; 1248 align-items: center; 1249 justify-content: center; 1250 animation: fadeIn 0.2s ease; 1251 padding: 20px; 1252 box-sizing: border-box; 1253 overflow-y: auto; 1254} 1255 1256@keyframes fadeIn { 1257 from { opacity: 0; } 1258 to { opacity: 1; } 1259} 1260 1261.dialog-content-sleek { 1262 position: relative; 1263 background: var(--background-site, #ffffff); 1264 width: 100%; 1265 max-width: 450px; 1266 max-height: calc(100vh - 40px); 1267 border-radius: 8px; 1268 box-shadow: 0 8px 32px var(--shadow-color, rgba(0,0,0,0.2)); 1269 z-index: 10000; 1270 animation: slideUp 0.3s ease; 1271 overflow: hidden; 1272 display: flex; 1273 flex-direction: column; 1274 margin: auto; 1275 border: 1px solid var(--border-main, transparent); 1276} 1277 1278/* Mobile responsive dialog */ 1279@media (max-width: 768px) { 1280 .event-dialog-compact { 1281 padding: 10px; 1282 } 1283 1284 .dialog-content-sleek { 1285 max-width: 100%; 1286 width: calc(100% - 20px); 1287 max-height: calc(100vh - 20px); 1288 } 1289} 1290 1291@media (max-width: 480px) { 1292 .event-dialog-compact { 1293 padding: 0; 1294 align-items: flex-start; 1295 } 1296 1297 .dialog-content-sleek { 1298 width: 100%; 1299 max-width: 100%; 1300 max-height: 100vh; 1301 border-radius: 0; 1302 margin: 0; 1303 } 1304} 1305 1306@keyframes slideUp { 1307 from { 1308 transform: translateY(20px); 1309 opacity: 0; 1310 } 1311 to { 1312 transform: translateY(0); 1313 opacity: 1; 1314 } 1315} 1316 1317.dialog-header-sleek { 1318 display: flex; 1319 align-items: center; 1320 justify-content: space-between; 1321 padding: 10px 14px; 1322 background: var(--background-header, #2c3e50); 1323 color: var(--text-bright, white); 1324 cursor: move; 1325 flex-shrink: 0; 1326 border-bottom: 1px solid var(--border-main, transparent); 1327} 1328 1329.dialog-drag-handle { 1330 cursor: move; 1331} 1332 1333.dialog-header-sleek h3 { 1334 margin: 0; 1335 font-size: 15px; 1336 font-weight: 600; 1337} 1338 1339.dialog-close-btn { 1340 background: var(--cell-today-bg, rgba(255,255,255,0.2)); 1341 border: none; 1342 color: white; 1343 font-size: 22px; 1344 width: 28px; 1345 height: 28px; 1346 border-radius: 50%; 1347 cursor: pointer; 1348 display: flex; 1349 align-items: center; 1350 justify-content: center; 1351 transition: all 0.2s; 1352 line-height: 1; 1353 padding: 0; 1354 flex-shrink: 0; 1355} 1356 1357.dialog-close-btn:hover { 1358 background: var(--cell-today-bg, rgba(255,255,255,0.3)); 1359 transform: scale(1.1); 1360} 1361 1362.sleek-form { 1363 padding: 10px 12px; 1364 overflow-y: auto; 1365 overflow-x: hidden; 1366 flex: 1; 1367 max-height: calc(100vh - 160px); 1368 background: var(--background-site, #ffffff); 1369} 1370 1371/* Ensure form is scrollable on small screens */ 1372@media (max-height: 600px) { 1373 .sleek-form { 1374 max-height: calc(100vh - 120px); 1375 } 1376} 1377 1378@media (max-height: 500px) { 1379 .sleek-form { 1380 max-height: calc(100vh - 100px); 1381 } 1382} 1383 1384/* Mobile: reduce form padding to maximize field width */ 1385@media (max-width: 480px) { 1386 .sleek-form { 1387 padding: 8px; 1388 } 1389 1390 .sleek-form .form-field { 1391 margin-bottom: 8px; 1392 } 1393 1394 .sleek-form .input-sleek, 1395 .sleek-form .textarea-sleek, 1396 .sleek-form textarea, 1397 .sleek-form select { 1398 width: 100% !important; 1399 max-width: 100% !important; 1400 box-sizing: border-box !important; 1401 } 1402 1403 .sleek-form .form-row-group { 1404 gap: 6px; 1405 } 1406} 1407 1408.form-field { 1409 margin-bottom: 6px; 1410} 1411 1412/* Compact form elements */ 1413.input-compact { 1414 height: 30px !important; 1415 padding: 4px 8px !important; 1416 font-size: 11px !important; 1417} 1418 1419.textarea-compact { 1420 min-height: 28px !important; 1421 padding: 4px 8px !important; 1422 font-size: 11px !important; 1423 line-height: 1.3 !important; 1424} 1425 1426.field-label-compact { 1427 font-size: 10px !important; 1428 margin-bottom: 2px !important; 1429 font-weight: 500; 1430 color: var(--text-dim, #555); 1431} 1432 1433.form-field-checkbox-compact { 1434 padding: 4px 8px !important; 1435 margin-bottom: 6px !important; 1436} 1437 1438.checkbox-label-compact { 1439 font-size: 10px !important; 1440 gap: 4px !important; 1441} 1442 1443.checkbox-label-compact input[type="checkbox"] { 1444 width: 13px !important; 1445 height: 13px !important; 1446 accent-color: var(--text-bright, #008800); 1447} 1448 1449.color-picker-compact { 1450 height: 30px !important; 1451} 1452 1453/* Responsive form fields */ 1454@media (max-width: 480px) { 1455 .form-field { 1456 margin-bottom: 8px; 1457 } 1458} 1459 1460.form-field-checkbox { 1461 background: var(--cell-bg, #f1f8f4); 1462 padding: 8px; 1463 border-radius: 4px; 1464 border: 1px solid var(--border-main, #008800); 1465} 1466 1467.checkbox-label { 1468 display: flex; 1469 align-items: center; 1470 gap: 6px; 1471 cursor: pointer; 1472 font-size: 11px; 1473 font-weight: 500; 1474 color: var(--text-primary, #388e3c); 1475} 1476 1477.checkbox-label input[type="checkbox"] { 1478 width: 15px; 1479 height: 15px; 1480 cursor: pointer; 1481 accent-color: var(--text-bright, #008800); 1482} 1483 1484.recurring-options { 1485 background: var(--cell-bg, #f1f8f4); 1486 padding: 12px; 1487 border-radius: 4px; 1488 border: 1px solid var(--border-main, #81c784); 1489 margin-top: 8px; 1490} 1491 1492.form-row-group { 1493 display: grid; 1494 grid-template-columns: 1fr 1fr; 1495 gap: 10px; 1496 margin-bottom: 10px; 1497} 1498 1499@media (max-width: 768px) { 1500 .form-row-group { 1501 grid-template-columns: 1fr; 1502 gap: 8px; 1503 } 1504} 1505 1506.field-label { 1507 display: block; 1508 font-size: 11px; 1509 font-weight: 600; 1510 color: var(--text-primary, #2c3e50); 1511 margin-bottom: 5px; 1512 text-transform: uppercase; 1513 letter-spacing: 0.3px; 1514} 1515 1516@media (max-width: 480px) { 1517 .field-label { 1518 font-size: 10px; 1519 } 1520} 1521 1522.input-sleek { 1523 width: 100%; 1524 color: var(--text-primary, #333); 1525 padding: 8px 10px; 1526 border: 2px solid var(--border-color, #e0e0e0); 1527 border-radius: 4px; 1528 font-size: 13px; 1529 font-family: inherit; 1530 transition: all 0.2s; 1531 background: var(--cell-bg, #fafafa); 1532 box-sizing: border-box; 1533} 1534 1535.input-sleek:focus { 1536 outline: none; 1537 border-color: var(--text-bright, #008800); 1538 background: var(--background-site, white); 1539 box-shadow: 0 0 0 3px var(--shadow-color, rgba(33, 150, 243, 0.1)); 1540} 1541 1542.input-sleek::placeholder, 1543.textarea-sleek::placeholder { 1544 color: var(--text-dim, #999); 1545} 1546 1547.input-date { 1548 font-weight: 500; 1549 color: var(--text-primary, #2c3e50); 1550 cursor: pointer; 1551} 1552 1553.input-date::-webkit-calendar-picker-indicator { 1554 cursor: pointer; 1555 font-size: 14px; 1556 padding: 2px; 1557} 1558 1559.textarea-sleek { 1560 width: 100%; 1561 resize: vertical; 1562 min-height: 60px; 1563 line-height: 1.4; 1564 box-sizing: border-box; 1565} 1566 1567.color-picker-container { 1568 display: flex; 1569 align-items: center; 1570 gap: 10px; 1571} 1572 1573.color-picker-wrapper { 1574 display: flex; 1575 align-items: center; 1576 gap: 8px; 1577} 1578 1579.color-picker-wrapper .color-select { 1580 flex: 1; 1581} 1582 1583.color-picker-input { 1584 width: 45px; 1585 height: 38px; 1586 border: 2px solid var(--border-color, #e0e0e0); 1587 border-radius: 6px; 1588 cursor: pointer; 1589 padding: 2px; 1590 display: none; 1591} 1592 1593.color-picker-input:hover { 1594 border-color: var(--text-bright, #4CAF50); 1595} 1596 1597.input-color-sleek { 1598 width: 50px; 1599 height: 38px; 1600 border: 2px solid var(--border-color, #e0e0e0); 1601 border-radius: 6px; 1602 cursor: pointer; 1603 transition: all 0.2s; 1604} 1605 1606.input-color-sleek:hover { 1607 border-color: var(--text-bright, #008800); 1608 transform: scale(1.05); 1609} 1610 1611.color-label { 1612 font-size: 11px; 1613 color: var(--text-dim, #666); 1614} 1615 1616.form-row-group { 1617 display: grid; 1618 grid-template-columns: 2fr 1fr; 1619 gap: 16px; 1620 margin-bottom: 20px; 1621} 1622 1623.field-label { 1624 display: block; 1625 font-size: 13px; 1626 font-weight: 600; 1627 color: var(--text-primary, #2c3e50); 1628 margin-bottom: 8px; 1629 text-transform: uppercase; 1630 letter-spacing: 0.5px; 1631} 1632 1633.input-sleek { 1634 width: 100%; 1635 color: var(--text-primary, #333); 1636 padding: 12px 16px; 1637 border: 2px solid var(--border-color, #e0e0e0); 1638 border-radius: 8px; 1639 font-size: 15px; 1640 font-family: inherit; 1641 transition: all 0.2s; 1642 background: var(--cell-bg, #fafafa); 1643 box-sizing: border-box; 1644} 1645 1646.input-sleek:focus { 1647 outline: none; 1648 border-color: var(--text-bright, #667eea); 1649 background: var(--background-site, white); 1650 box-shadow: 0 0 0 3px var(--shadow-color, rgba(102, 126, 234, 0.1)); 1651} 1652 1653.input-date { 1654 font-weight: 500; 1655 color: var(--text-primary, #2c3e50); 1656 cursor: pointer; 1657} 1658 1659.input-date::-webkit-calendar-picker-indicator { 1660 cursor: pointer; 1661 font-size: 18px; 1662 padding: 4px; 1663} 1664 1665.textarea-sleek { 1666 resize: vertical; 1667 min-height: 80px; 1668 line-height: 1.5; 1669} 1670 1671.color-picker-container { 1672 display: flex; 1673 align-items: center; 1674 gap: 12px; 1675} 1676 1677.input-color-sleek { 1678 width: 60px; 1679 height: 44px; 1680 border: 2px solid var(--border-color, #e0e0e0); 1681 border-radius: 8px; 1682 cursor: pointer; 1683 transition: all 0.2s; 1684} 1685 1686.input-color-sleek:hover { 1687 border-color: var(--text-bright, #667eea); 1688 transform: scale(1.05); 1689} 1690 1691.color-label { 1692 font-size: 13px; 1693 color: var(--text-dim, #666); 1694} 1695 1696.form-field-checkbox { 1697 background: var(--cell-bg, #f1f8f4); 1698 padding: 12px; 1699 border-radius: 6px; 1700 border: 1px solid var(--border-main, #008800); 1701} 1702 1703.checkbox-label { 1704 display: flex; 1705 align-items: center; 1706 gap: 8px; 1707 cursor: pointer; 1708 font-size: 13px; 1709 font-weight: 500; 1710 color: var(--text-primary, #388e3c); 1711} 1712 1713.checkbox-label input[type="checkbox"] { 1714 width: 18px; 1715 height: 18px; 1716 cursor: pointer; 1717 accent-color: var(--text-bright, #008800); 1718} 1719 1720.form-row-group { 1721 display: grid; 1722 grid-template-columns: 1fr 1fr; 1723 gap: 12px; 1724 margin-bottom: 16px; 1725} 1726 1727@media (max-width: 768px) { 1728 .form-row-group { 1729 grid-template-columns: 1fr; 1730 } 1731} 1732 1733.dialog-actions-sleek { 1734 display: flex; 1735 gap: 8px; 1736 padding: 12px 14px; 1737 background: var(--cell-bg, #f8f9fa); 1738 border-top: 1px solid var(--border-color, #e0e0e0); 1739 justify-content: flex-end; 1740 flex-shrink: 0; 1741} 1742 1743/* Ensure buttons are visible on small screens */ 1744@media (max-width: 480px) { 1745 .dialog-actions-sleek { 1746 padding: 10px; 1747 } 1748 1749 .btn-sleek { 1750 flex: 1; 1751 justify-content: center; 1752 } 1753} 1754 1755.btn-sleek { 1756 padding: 7px 14px; 1757 border: none; 1758 border-radius: 4px; 1759 font-size: 12px; 1760 font-weight: 600; 1761 cursor: pointer; 1762 transition: all 0.2s; 1763 display: inline-flex; 1764 align-items: center; 1765 gap: 4px; 1766} 1767 1768.btn-cancel-sleek { 1769 background: var(--border-color, #e0e0e0); 1770 color: var(--text-dim, #555); 1771} 1772 1773.btn-cancel-sleek:hover { 1774 filter: brightness(1.2); 1775 box-shadow: 0 0 4px var(--shadow-color, rgba(0,0,0,0.15)); 1776} 1777 1778.btn-save-sleek { 1779 background: var(--text-bright, #008800); 1780 color: var(--background-site, white); 1781 box-shadow: 0 2px 4px var(--shadow-color, rgba(0,0,0,0.2)); 1782} 1783 1784.btn-save-sleek:hover { 1785 filter: brightness(1.3); 1786 box-shadow: 0 4px 8px var(--shadow-color, rgba(0,0,0,0.3)); 1787} 1788 1789.btn-save-sleek:active { 1790 transform: translateY(1px); 1791 filter: brightness(0.9); 1792} 1793 1794/* Day popup */ 1795.day-popup { 1796 position: fixed; 1797 top: 0; 1798 left: 0; 1799 width: 100%; 1800 height: 100%; 1801 z-index: 10000; 1802 display: flex; 1803 align-items: center; 1804 justify-content: center; 1805 padding: 20px; 1806 box-sizing: border-box; 1807} 1808 1809.day-popup-overlay { 1810 position: absolute; 1811 top: 0; 1812 left: 0; 1813 width: 100%; 1814 height: 100%; 1815 background: rgba(0,0,0,0.5); 1816} 1817 1818.day-popup-content { 1819 position: relative; 1820 background: var(--background-site, white); 1821 width: 100%; 1822 max-width: 450px; 1823 max-height: calc(100vh - 40px); 1824 border-radius: 8px; 1825 box-shadow: 0 4px 20px var(--shadow-color, rgba(0,0,0,0.3)); 1826 z-index: 10001; 1827 display: flex; 1828 flex-direction: column; 1829 border: 1px solid var(--border-main, transparent); 1830} 1831 1832/* Responsive day popup */ 1833@media (max-width: 768px) { 1834 .day-popup { 1835 padding: 10px; 1836 } 1837 1838 .day-popup-content { 1839 max-width: 100%; 1840 max-height: calc(100vh - 20px); 1841 } 1842} 1843 1844@media (max-width: 480px) { 1845 .day-popup { 1846 padding: 0; 1847 } 1848 1849 .day-popup-content { 1850 width: 100%; 1851 max-width: 100%; 1852 max-height: 100vh; 1853 border-radius: 0; 1854 } 1855} 1856 1857.day-popup-header { 1858 display: flex; 1859 align-items: center; 1860 justify-content: space-between; 1861 padding: 10px 14px; 1862 border-bottom: 2px solid var(--border-main, #e0e0e0); 1863 background: var(--background-header, #fafafa); 1864 border-radius: 8px 8px 0 0; 1865 cursor: move; 1866 user-select: none; 1867} 1868 1869.day-popup-header h4 { 1870 margin: 0; 1871 font-size: 15px; 1872 font-weight: 600; 1873 color: var(--text-primary, #2c3e50); 1874 pointer-events: none; 1875} 1876 1877.popup-close { 1878 background: none; 1879 border: none; 1880 font-size: 24px; 1881 color: var(--text-dim, #999); 1882 cursor: pointer; 1883 width: 28px; 1884 height: 28px; 1885 display: flex; 1886 align-items: center; 1887 justify-content: center; 1888 border-radius: 4px; 1889 transition: all 0.15s; 1890 line-height: 1; 1891 padding: 0; 1892} 1893 1894.popup-close:hover { 1895 background: var(--cell-bg, #f0f0f0); 1896 color: var(--text-primary, #333); 1897} 1898 1899.day-popup-body { 1900 flex: 1; 1901 overflow-y: auto; 1902 padding: 10px 14px; 1903 max-height: 400px; 1904} 1905 1906.popup-events-list { 1907 display: flex; 1908 flex-direction: column; 1909 gap: 6px; 1910} 1911 1912.popup-continuation-notice { 1913 font-size: 10px; 1914 color: var(--text-dim, #666); 1915 background: var(--cell-bg, #f0f0f0); 1916 padding: 3px 8px; 1917 border-radius: 3px; 1918 margin-bottom: 4px; 1919 border-left: 3px solid var(--text-bright, #00cc07); 1920 font-weight: 500; 1921} 1922 1923.popup-event-item { 1924 display: flex; 1925 background: var(--cell-bg, #f8f9fa); 1926 border: 1px solid var(--border-color, #e0e0e0); 1927 border-radius: 4px; 1928 overflow: visible; 1929 transition: box-shadow 0.15s; 1930} 1931 1932.popup-event-item:hover { 1933 box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.1)); 1934} 1935 1936.popup-event-content { 1937 flex: 1; 1938 padding: 6px 10px; 1939 min-width: 0; 1940} 1941 1942.popup-event-main-row { 1943 display: flex; 1944 align-items: flex-start; 1945 justify-content: space-between; 1946 gap: 8px; 1947 flex-wrap: wrap; 1948} 1949 1950.popup-event-info-inline { 1951 display: flex; 1952 align-items: center; 1953 gap: 6px; 1954 flex: 1; 1955 min-width: 0; 1956 flex-wrap: wrap; 1957} 1958 1959.popup-event-title { 1960 font-size: 13px; 1961 font-weight: 600; 1962 color: var(--text-primary, #2c3e50); 1963 word-break: break-word; 1964 flex: 1 1 100%; 1965 min-width: 100px; 1966} 1967 1968.popup-event-time { 1969 font-size: 11px; 1970 color: var(--text-bright, #008800); 1971 font-weight: 500; 1972 white-space: nowrap; 1973 flex-shrink: 0; 1974} 1975 1976.popup-event-multiday { 1977 font-size: 11px; 1978 color: var(--text-dim, #666); 1979 font-weight: 500; 1980 white-space: nowrap; 1981 flex-shrink: 0; 1982} 1983 1984.popup-event-namespace { 1985 font-size: 10px; 1986 color: var(--background-site, #fff); 1987 background: var(--text-bright, #008800); 1988 padding: 2px 6px; 1989 border-radius: 3px; 1990 font-weight: 500; 1991 white-space: nowrap; 1992 flex-shrink: 0; 1993} 1994 1995.popup-event-desc { 1996 font-size: 11px; 1997 color: var(--text-dim, #666); 1998 line-height: 1.4; 1999 margin-top: 4px; 2000 padding-left: 0; 2001} 2002 2003.popup-event-actions { 2004 display: flex; 2005 gap: 4px; 2006 flex-shrink: 0; 2007 align-self: flex-start; 2008} 2009 2010.event-edit-btn, 2011.event-delete-btn { 2012 background: none; 2013 border: none; 2014 font-size: 16px; 2015 cursor: pointer; 2016 padding: 4px; 2017 border-radius: 3px; 2018 transition: background 0.15s; 2019 line-height: 1; 2020 width: 24px; 2021 height: 24px; 2022 display: flex; 2023 align-items: center; 2024 justify-content: center; 2025} 2026 2027.event-edit-btn:hover { 2028 background: var(--cell-today-bg, #e8f5e9); 2029} 2030 2031.event-delete-btn:hover { 2032 background: var(--cell-today-bg, #ffebee); 2033} 2034 2035.day-popup-footer { 2036 padding: 10px 14px; 2037 border-top: 1px solid var(--border-color, #e0e0e0); 2038 background: var(--cell-bg, #fafafa); 2039 border-radius: 0 0 8px 8px; 2040} 2041 2042.btn-add-event { 2043 width: 100%; 2044 background: var(--text-bright, #008800); 2045 color: var(--background-site, white); 2046 border: none; 2047 padding: 10px 16px; 2048 border-radius: 6px; 2049 font-size: 14px; 2050 font-weight: 500; 2051 cursor: pointer; 2052 transition: background 0.15s; 2053} 2054 2055.btn-add-event:hover { 2056 filter: brightness(1.3); 2057 box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2)); 2058} 2059 2060.btn-add-event:active { 2061 filter: brightness(0.85); 2062 transform: translateY(1px); 2063} 2064 2065.dialog-overlay { 2066 position: absolute; 2067 top: 0; 2068 left: 0; 2069 width: 100%; 2070 height: 100%; 2071 background: rgba(0,0,0,0.4); 2072} 2073 2074.dialog-content-compact { 2075 position: relative; 2076 background: white; 2077 width: 400px; 2078 border-radius: 6px; 2079 box-shadow: 0 4px 12px rgba(0,0,0,0.2); 2080 padding: 20px; 2081 z-index: 10000; 2082} 2083 2084.dialog-content-compact h4 { 2085 margin: 0 0 16px 0; 2086 font-size: 16px; 2087 font-weight: 600; 2088 color: var(--text-primary, #2c3e50); 2089} 2090 2091.form-row { 2092 margin-bottom: 14px; 2093} 2094 2095.form-row-date { 2096 background: var(--cell-bg, #f1f8f4); 2097 padding: 10px; 2098 border-radius: 6px; 2099 border: 2px solid var(--border-main, #008800); 2100 margin-bottom: 18px; 2101} 2102 2103.form-row-date label { 2104 color: var(--text-bright, #388e3c); 2105 font-size: 13px; 2106} 2107 2108.form-row label { 2109 display: block; 2110 font-size: 12px; 2111 font-weight: 600; 2112 color: var(--text-dim, #555); 2113 margin-bottom: 4px; 2114} 2115 2116.form-row input[type="text"], 2117.form-row input[type="time"], 2118.form-row input[type="date"], 2119.form-row input[type="color"], 2120.form-row textarea { 2121 width: 100%; 2122 padding: 8px; 2123 border: 1px solid var(--border-color, #d0d0d0); 2124 border-radius: 4px; 2125 font-size: 13px; 2126 box-sizing: border-box; 2127 font-family: inherit; 2128} 2129 2130.form-row input[type="color"] { 2131 height: 36px; 2132 padding: 2px; 2133} 2134 2135.form-row textarea { 2136 resize: vertical; 2137} 2138 2139.dialog-actions { 2140 display: flex; 2141 gap: 8px; 2142 justify-content: flex-end; 2143 margin-top: 16px; 2144} 2145 2146.btn-save, 2147.btn-cancel { 2148 padding: 8px 16px; 2149 border: none; 2150 border-radius: 4px; 2151 font-size: 13px; 2152 font-weight: 500; 2153 cursor: pointer; 2154 transition: all 0.15s; 2155} 2156 2157.btn-save { 2158 background: var(--text-bright, #008800); 2159 color: var(--background-site, white); 2160} 2161 2162.btn-save:hover { 2163 filter: brightness(1.3); 2164 box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2)); 2165} 2166 2167.btn-cancel { 2168 background: var(--cell-bg, #f5f5f5); 2169 color: var(--text-dim, #555); 2170 border: 1px solid var(--border-color, #d0d0d0); 2171} 2172 2173.btn-cancel:hover { 2174 filter: brightness(1.2); 2175 box-shadow: 0 0 4px var(--shadow-color, rgba(0,0,0,0.15)); 2176} 2177 2178/* Standalone event list */ 2179.eventlist-standalone { 2180 max-width: 700px; 2181 margin: 20px auto; 2182 background: white; 2183 border: 1px solid var(--border-color, #d0d0d0); 2184 border-radius: 6px; 2185 padding: 20px; 2186} 2187 2188.eventlist-standalone h3 { 2189 margin: 0 0 20px 0; 2190 font-size: 18px; 2191 font-weight: 600; 2192 color: var(--text-primary, #2c3e50); 2193 border-bottom: 2px solid var(--border-main, #008800); 2194 padding-bottom: 10px; 2195} 2196 2197/* Compact Event List Widget */ 2198.eventlist-compact-widget { 2199 background: var(--background-site, #ffffff); 2200 border: 1px solid var(--border-color, #d0d0d0); 2201 border-radius: 6px; 2202 box-shadow: 0 2px 6px rgba(0,0,0,0.08); 2203 overflow: visible; 2204 display: flex; 2205 flex-direction: column; 2206 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 2207} 2208 2209/* Simple 2-Line Event List (New Design) */ 2210.eventlist-simple { 2211 width: 100%; 2212 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 2213 font-size: 11px; 2214 line-height: 1.4; 2215 overflow: visible; 2216} 2217 2218/* Compact pastel header for {{eventlist today}} - Single line */ 2219.eventlist-today-header { 2220 display: flex; 2221 flex-direction: column; 2222 align-items: center; 2223 padding: 6px 10px 2px 10px; 2224 background: var(--cell-bg, #1a1a1a); 2225 color: var(--text-bright, #00cc07); 2226 border: 2px solid var(--text-bright, #00cc07); 2227 border-radius: 4px; 2228 margin-bottom: 8px; 2229 box-shadow: 0 0 8px var(--shadow-color, rgba(0, 204, 7, 0.2)); 2230 gap: 3px; 2231 overflow: visible; 2232} 2233 2234/* Purple theme overrides */ 2235.sidebar-purple .eventlist-today-header { 2236 border-color: var(--text-bright, #9b59b6); 2237 box-shadow: 0 0 8px var(--shadow-color, rgba(155, 89, 182, 0.2)); 2238} 2239 2240/* Professional theme overrides */ 2241.sidebar-professional .eventlist-today-header { 2242 border-color: var(--text-bright, #4a90e2); 2243 box-shadow: 0 2px 4px var(--shadow-color, rgba(0, 0, 0, 0.1)); 2244} 2245 2246/* Pink theme overrides */ 2247.sidebar-pink .eventlist-today-header { 2248 border-color: var(--text-bright, #ff1493); 2249 box-shadow: 0 0 6px var(--shadow-color, rgba(255, 20, 147, 0.25)); 2250} 2251 2252.eventlist-bottom-info { 2253 display: flex; 2254 justify-content: space-between; 2255 align-items: center; 2256 width: 100%; 2257 gap: 10px; 2258 overflow: visible; 2259} 2260 2261.eventlist-weather { 2262 font-size: 13px; 2263 font-weight: 700; 2264 font-family: 'Courier New', monospace; 2265 letter-spacing: 0.3px; 2266 text-shadow: 0 0 1px var(--text-primary, rgba(0, 204, 7, 0.4)); 2267 color: var(--text-primary, #00cc07); 2268 white-space: nowrap; 2269} 2270 2271.eventlist-today-date { 2272 font-size: 10px; 2273 font-weight: 700; 2274 color: var(--text-primary, #00cc07); 2275 letter-spacing: 0.5px; 2276 white-space: nowrap; 2277 text-transform: uppercase; 2278 text-align: center; 2279 flex: 1; 2280} 2281 2282.eventlist-today-clock { 2283 font-size: 16px; 2284 font-weight: 700; 2285 font-family: 'Courier New', monospace; 2286 letter-spacing: 1px; 2287 text-shadow: 0 0 2px var(--text-primary, rgba(0, 204, 7, 0.5)); 2288 color: var(--text-primary, #00cc07); 2289} 2290 2291.eventlist-stats-container { 2292 width: 100%; 2293 display: flex; 2294 flex-direction: column; 2295 gap: 2px; 2296 margin: 0; 2297 overflow: visible; 2298} 2299 2300.eventlist-cpu-bar { 2301 width: 100%; 2302 height: 3px; 2303 background: var(--cell-today-bg, rgba(0, 204, 7, 0.1)) !important; 2304 border-radius: 1px; 2305 overflow: visible; 2306 position: relative; 2307 cursor: help; 2308} 2309 2310.system-tooltip { 2311 position: fixed; 2312 background: var(--cell-bg, rgba(0, 0, 0, 0.95)) !important; 2313 padding: 6px 8px; 2314 border-radius: 4px; 2315 font-size: 9px; 2316 line-height: 1.3; 2317 white-space: normal; 2318 min-width: 150px; 2319 max-width: 250px; 2320 z-index: 999999; 2321 border: 1px solid; 2322 box-shadow: 0 3px 8px rgba(0,0,0,0.5); 2323 pointer-events: none; 2324 /* Position will be set by JavaScript */ 2325} 2326 2327.system-tooltip div { 2328 font-size: 9px !important; 2329 line-height: 1.3 !important; 2330 margin: 0; 2331} 2332 2333.system-tooltip .tooltip-title { 2334 font-weight: bold; 2335 margin-bottom: 2px; 2336} 2337 2338.eventlist-cpu-fill { 2339 height: 100%; 2340 background: var(--text-bright, #00cc07) !important; 2341 transition: width 0.3s ease; 2342 box-shadow: 0 0 4px var(--shadow-color, rgba(0, 204, 7, 0.6)) !important; 2343} 2344 2345.eventlist-cpu-fill-purple { 2346 background: var(--border-main, #9b59b6) !important; 2347 box-shadow: 0 0 4px var(--shadow-color, rgba(155, 89, 182, 0.6)) !important; 2348} 2349 2350.eventlist-cpu-fill-orange { 2351 background: var(--text-primary, #ff8c00) !important; 2352 box-shadow: 0 0 4px var(--shadow-color, rgba(255, 140, 0, 0.6)) !important; 2353} 2354 2355/* Pink theme system bars - different shades of pink */ 2356.sidebar-pink .eventlist-cpu-fill { 2357 background: var(--text-bright, #ff1493) !important; 2358 box-shadow: 0 0 5px var(--shadow-color, rgba(255, 20, 147, 0.7)) !important; 2359} 2360 2361.sidebar-pink .eventlist-cpu-fill-purple { 2362 background: var(--border-main, #ff69b4) !important; 2363 box-shadow: 0 0 5px var(--shadow-color, rgba(255, 105, 180, 0.7)) !important; 2364} 2365 2366.sidebar-pink .eventlist-cpu-fill-orange { 2367 background: var(--text-primary, #ff85c1) !important; 2368 box-shadow: 0 0 5px var(--shadow-color, rgba(255, 133, 193, 0.7)) !important; 2369} 2370 2371.sidebar-pink .eventlist-cpu-realtime { 2372 background: var(--cell-today-bg, rgba(255, 20, 147, 0.1)) !important; 2373} 2374 2375.sidebar-pink .eventlist-mem-realtime { 2376 background: var(--cell-today-bg, rgba(255, 133, 193, 0.1)) !important; 2377} 2378 2379.eventlist-cpu-realtime { 2380 background: var(--cell-today-bg, rgba(155, 89, 182, 0.1)) !important; 2381} 2382 2383.eventlist-mem-realtime { 2384 background: var(--cell-today-bg, rgba(255, 140, 0, 0.1)) !important; 2385} 2386 2387.eventlist-simple-item { 2388 border-bottom: 1px solid var(--border-color, #e0e0e0); 2389 padding: 0; 2390} 2391 2392.eventlist-simple-item:last-child { 2393 border-bottom: none; 2394} 2395 2396.eventlist-simple-today { 2397 background: var(--cell-today-bg, #f3eeff) !important; 2398 border-left: 3px solid var(--border-main, #9b59b6) !important; 2399} 2400 2401.eventlist-simple-today .eventlist-simple-header { 2402 background: var(--cell-today-bg, #e8d9ff) !important; 2403} 2404 2405.eventlist-simple-today .eventlist-simple-body { 2406 background: var(--cell-bg, #f9f5ff) !important; 2407} 2408 2409.eventlist-simple-today-badge { 2410 background: var(--border-main, #9b59b6); 2411 color: var(--background-site, white); 2412 padding: 1px 4px; 2413 border-radius: 3px; 2414 font-size: 9px; 2415 font-weight: 600; 2416 letter-spacing: 0.5px; 2417 display: inline-block; 2418 vertical-align: middle; 2419 float: right; /* Right-align */ 2420 margin-left: auto; 2421} 2422 2423.eventlist-simple-pastdue { 2424 background: var(--pastdue-bg, #ffe6e6) !important; 2425 border-left: 3px solid var(--pastdue-color, #e74c3c) !important; 2426} 2427 2428.eventlist-simple-pastdue .eventlist-simple-header { 2429 background: var(--pastdue-bg-strong, #ffd9d9) !important; 2430} 2431 2432.eventlist-simple-pastdue .eventlist-simple-body { 2433 background: var(--pastdue-bg-light, #fff2f2) !important; 2434} 2435 2436.eventlist-simple-pastdue-badge { 2437 background: var(--pastdue-color, #e74c3c); 2438 color: white; 2439 padding: 1px 4px; 2440 border-radius: 3px; 2441 font-size: 9px; 2442 font-weight: 600; 2443 letter-spacing: 0.5px; 2444 display: inline-block; 2445 vertical-align: middle; 2446 float: right; /* Right-align */ 2447 margin-left: auto; 2448} 2449 2450.eventlist-simple-tomorrow { 2451 background: var(--tomorrow-bg, #fff9e6) !important; 2452} 2453 2454.eventlist-simple-tomorrow .eventlist-simple-header { 2455 background: var(--tomorrow-bg-strong, #fff4cc) !important; 2456} 2457 2458.eventlist-simple-tomorrow .eventlist-simple-body { 2459 background: var(--tomorrow-bg-light, #fffbf0) !important; 2460} 2461 2462.eventlist-simple-header { 2463 font-weight: 500; 2464 color: var(--text-primary, #2c3e50); 2465 padding: 4px 6px; 2466 line-height: 1.5; 2467 background: var(--cell-bg, #f5fcf5); 2468 font-size: 11px; 2469} 2470 2471.eventlist-simple-title { 2472 font-weight: 700; 2473 color: var(--text-bright, #ff6600); 2474 font-size: 12px; 2475} 2476 2477.eventlist-simple-time { 2478 color: var(--text-dim, #666); 2479 font-size: 10px; 2480} 2481 2482.eventlist-simple-date { 2483 color: var(--text-dim, #888); 2484 font-size: 10px; 2485} 2486 2487.eventlist-simple-namespace { 2488 background: var(--cell-today-bg, #e8f5e9); 2489 color: var(--text-bright, #388e3c); 2490 padding: 1px 4px; 2491 border-radius: 3px; 2492 font-size: 9px; 2493 font-weight: 500; 2494 margin-left: 4px; 2495} 2496 2497.eventlist-simple-body { 2498 color: var(--text-dim, #555); 2499 font-size: 11px; 2500 line-height: 1.5; 2501 padding: 4px 6px; 2502 background: var(--background-site, #fff); 2503} 2504 2505.eventlist-simple-body a { 2506 color: var(--text-bright, #008800); 2507 text-decoration: none; 2508} 2509 2510.eventlist-simple-body a:hover { 2511 text-decoration: underline; 2512} 2513 2514.eventlist-simple-body strong { 2515 font-weight: 600; 2516 color: var(--text-primary, #2c3e50); 2517} 2518 2519.eventlist-simple-body code { 2520 background: var(--cell-bg, #f5f5f5); 2521 padding: 1px 3px; 2522 border-radius: 3px; 2523 font-family: 'Courier New', monospace; 2524 font-size: 10px; 2525 color: var(--text-primary, inherit); 2526} 2527 2528.eventlist-simple-no-desc { 2529 display: none; 2530} 2531 2532.eventlist-simple-empty { 2533 padding: 10px 0; 2534 color: var(--text-dim, #999); 2535} 2536 2537.eventlist-simple-empty .eventlist-simple-header { 2538 margin-bottom: 4px; 2539 background: var(--cell-bg, #f5fcf5); 2540} 2541 2542.eventlist-simple-empty .eventlist-simple-body { 2543 color: var(--text-dim, #999); 2544 font-style: italic; 2545 padding: 4px 6px; 2546 font-size: 11px; 2547} 2548 2549.eventlist-widget-header { 2550 background: var(--text-bright, #008800); 2551 color: white; 2552 padding: 8px 12px; 2553 flex-shrink: 0; 2554} 2555 2556.eventlist-widget-header h4 { 2557 margin: 0; 2558 font-size: 13px; 2559 font-weight: 600; 2560} 2561 2562.eventlist-widget-content { 2563 overflow-y: auto; 2564 padding: 8px; 2565 flex: 1; 2566} 2567 2568.eventlist-widget-date { 2569 font-size: 11px; 2570 font-weight: 600; 2571 color: var(--text-dim, #666); 2572 margin: 8px 0 4px 0; 2573 padding-bottom: 2px; 2574 border-bottom: 1px solid var(--border-color, #e0e0e0); 2575} 2576 2577.eventlist-widget-item { 2578 background: var(--cell-bg, #fafafa); 2579 border: 1px solid var(--border-color, #e0e0e0); 2580 border-left: 3px solid var(--text-bright, #3498db); 2581 border-radius: 3px; 2582 padding: 6px 8px; 2583 margin-bottom: 6px; 2584 transition: all 0.15s; 2585} 2586 2587.eventlist-widget-item:hover { 2588 background: var(--cell-bg, #f0f0f0); 2589 box-shadow: 0 1px 3px rgba(0,0,0,0.1); 2590} 2591 2592.eventlist-widget-title { 2593 font-size: 12px; 2594 font-weight: 600; 2595 color: var(--text-primary, #2c3e50); 2596 margin-bottom: 2px; 2597} 2598 2599.eventlist-widget-time { 2600 font-size: 11px; 2601 color: var(--text-dim, #666); 2602 margin-bottom: 4px; 2603} 2604 2605.eventlist-widget-desc { 2606 font-size: 11px; 2607 color: var(--text-dim, #555); 2608 margin-top: 4px; 2609 line-height: 1.4; 2610} 2611 2612.eventlist-widget-desc img { 2613 max-width: 100%; 2614 height: auto; 2615 border-radius: 3px; 2616 margin: 4px 0; 2617} 2618 2619.eventlist-widget-desc a { 2620 color: var(--text-bright, #008800); 2621 text-decoration: none; 2622 border-bottom: 1px dotted var(--text-bright, #008800); 2623} 2624 2625.eventlist-widget-desc a:hover { 2626 border-bottom-style: solid; 2627} 2628 2629.eventlist-widget-empty { 2630 text-align: center; 2631 color: var(--text-dim, #999); 2632 font-size: 12px; 2633 padding: 20px; 2634 margin: 0; 2635} 2636 2637/* Global themed link class (used in renderDescription) */ 2638.cal-link { 2639 color: var(--text-bright, #008800) !important; 2640 text-decoration: none; 2641 border-bottom: 1px dotted var(--text-bright, #008800); 2642 transition: all 0.15s; 2643} 2644 2645.cal-link:hover { 2646 border-bottom-style: solid; 2647 opacity: 0.85; 2648} 2649 2650/* Sidebar widget links - inherit theme colors */ 2651.sidebar-widget a.cal-link { 2652 color: var(--text-bright, #00cc07) !important; 2653 border-bottom-color: var(--text-bright, #00cc07); 2654} 2655 2656/* Standalone event panel (right panel only) */ 2657.event-panel-standalone { 2658 width: 320px; 2659 background: var(--background-site, #ffffff); 2660 border: 1px solid var(--border-color, #d0d0d0); 2661 border-radius: 6px; 2662 box-shadow: 0 2px 6px rgba(0,0,0,0.08); 2663 display: flex; 2664 flex-direction: column; 2665 max-height: 600px; 2666 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 2667 font-size: 13px; 2668} 2669 2670/* Dark theme borders for event panel - match sidebar widget style */ 2671.event-panel-standalone[data-theme="matrix"] { 2672 border: 2px solid var(--border-main, #00cc07); 2673 box-shadow: 0 0 10px var(--shadow-color, rgba(0, 204, 7, 0.3)); 2674} 2675 2676.event-panel-standalone[data-theme="purple"] { 2677 border: 2px solid var(--border-main, #9b59b6); 2678 box-shadow: 0 0 10px var(--shadow-color, rgba(155, 89, 182, 0.3)); 2679} 2680 2681.event-panel-standalone[data-theme="pink"] { 2682 border: 2px solid var(--border-main, #ff1493); 2683 box-shadow: 0 0 10px var(--shadow-color, rgba(255, 20, 147, 0.4)); 2684} 2685 2686.event-panel-standalone .event-list-compact { 2687 overflow-y: auto; 2688 flex: 1; 2689 padding: 10px; 2690} 2691 2692/* Event panel - Compact two-row header for ~500px width (10% smaller) */ 2693.panel-header-compact { 2694 background: var(--cell-bg, #f5f5f5); 2695 border-bottom: 2px solid var(--border-color, #ddd); 2696} 2697 2698.panel-header-row-1 { 2699 display: flex; 2700 align-items: center; 2701 gap: 7px; 2702 padding: 7px 11px; 2703 background: var(--cell-bg, #fafafa); 2704 border-bottom: 1px solid var(--border-color, #e8e8e8); 2705} 2706 2707.panel-header-row-2 { 2708 display: flex; 2709 align-items: center; 2710 gap: 7px; 2711 padding: 7px 11px; 2712 background: var(--background-site, #ffffff); 2713} 2714 2715.panel-nav-btn { 2716 background: var(--cell-bg, #ffffff); 2717 border: 1px solid var(--border-color, #ccc); 2718 color: var(--text-primary, #333); 2719 width: 29px; 2720 height: 29px; 2721 border-radius: 4px; 2722 cursor: pointer; 2723 font-size: 16px; 2724 font-weight: bold; 2725 transition: all 0.2s; 2726 display: flex; 2727 align-items: center; 2728 justify-content: center; 2729 padding: 0; 2730 flex-shrink: 0; 2731} 2732 2733.panel-nav-btn:hover { 2734 background: var(--text-bright, #00cc07); 2735 color: var(--background-site, white); 2736 border-color: var(--text-bright, #00cc07); 2737 filter: brightness(1.2); 2738 box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3)); 2739} 2740 2741.panel-month-title { 2742 margin: 0; 2743 font-size: 13px; 2744 font-weight: 600; 2745 color: var(--text-primary, #2c3e50); 2746 cursor: pointer; 2747 padding: 5px 9px; 2748 border-radius: 4px; 2749 transition: background 0.2s; 2750 white-space: nowrap; 2751 user-select: none; 2752 flex: 1; 2753 text-align: center; 2754 background: var(--cell-bg, #ffffff); 2755 border: 1px solid var(--border-color, #e0e0e0); 2756} 2757 2758.panel-month-title:hover { 2759 background: var(--cell-today-bg, #e8f5e9); 2760 border-color: var(--text-bright, #00cc07); 2761} 2762 2763.panel-ns-badge { 2764 background: var(--cell-today-bg, #e3f2fd); 2765 color: var(--text-bright, #1976d2); 2766 padding: 3px 7px; 2767 border-radius: 11px; 2768 font-size: 9px; 2769 font-weight: 600; 2770 text-transform: uppercase; 2771 letter-spacing: 0.3px; 2772 white-space: nowrap; 2773 border: 1px solid var(--border-color, #bbdefb); 2774 flex-shrink: 0; 2775} 2776 2777.panel-ns-badge.filter-on { 2778 background: var(--text-bright, #ff9800); 2779 color: var(--background-site, white); 2780 border-color: var(--border-main, #f57c00); 2781 cursor: pointer; 2782 transition: all 0.2s; 2783} 2784 2785.panel-ns-badge.filter-on:hover { 2786 filter: brightness(1.2); 2787} 2788 2789.panel-today-btn { 2790 background: var(--cell-bg, #ffffff); 2791 border: 1px solid var(--border-color, #ccc); 2792 color: var(--text-primary, #333); 2793 padding: 5px 11px; 2794 border-radius: 4px; 2795 cursor: pointer; 2796 font-size: 10px; 2797 font-weight: 600; 2798 transition: all 0.2s; 2799 white-space: nowrap; 2800 flex-shrink: 0; 2801} 2802 2803.panel-today-btn:hover { 2804 background: var(--text-bright, #00cc07); 2805 color: var(--background-site, white); 2806 border-color: var(--text-bright, #00cc07); 2807 filter: brightness(1.2); 2808 box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3)); 2809} 2810 2811.panel-search-box { 2812 position: relative; 2813 flex: 1; 2814 display: flex; 2815 gap: 0; 2816} 2817 2818.panel-search-input { 2819 flex: 1; 2820 padding: 5px 25px 5px 9px; 2821 border: 1px solid var(--border-color, #d0d0d0); 2822 border-radius: 4px 0 0 4px; 2823 font-size: 11px; 2824 outline: none; 2825 transition: border-color 0.2s, box-shadow 0.2s; 2826 background: var(--cell-bg, #fafafa); 2827 color: var(--text-primary, #333); 2828} 2829 2830.panel-search-input:focus { 2831 border-color: var(--text-bright, #00cc07); 2832 box-shadow: 0 0 0 2px var(--shadow-color, rgba(0, 204, 7, 0.1)); 2833 background: var(--background-site, white); 2834} 2835 2836.panel-search-input::placeholder { 2837 color: var(--text-dim, #999); 2838} 2839 2840.panel-search-clear { 2841 position: absolute; 2842 right: 28px; 2843 top: 50%; 2844 transform: translateY(-50%); 2845 background: none; 2846 border: none; 2847 color: var(--text-dim, #999); 2848 cursor: pointer; 2849 padding: 3px; 2850 font-size: 13px; 2851 line-height: 1; 2852 transition: color 0.2s; 2853} 2854 2855.panel-search-clear:hover { 2856 color: var(--text-primary, #333); 2857} 2858 2859.panel-search-mode { 2860 background: var(--cell-bg, #f0f0f0); 2861 border: 1px solid var(--border-color, #d0d0d0); 2862 border-left: none; 2863 border-radius: 0 4px 4px 0; 2864 padding: 0 6px; 2865 cursor: pointer; 2866 font-size: 11px; 2867 transition: all 0.2s; 2868 color: var(--text-dim, #666); 2869 display: flex; 2870 align-items: center; 2871} 2872 2873.panel-search-mode:hover { 2874 background: var(--cell-today-bg, #e8f5e9); 2875 color: var(--text-bright, #00cc07); 2876} 2877 2878.panel-search-mode.all-dates { 2879 background: var(--text-bright, #00cc07); 2880 color: var(--background-site, white); 2881 border-color: var(--text-bright, #00cc07); 2882} 2883 2884.panel-search-mode.all-dates:hover { 2885 filter: brightness(1.1); 2886} 2887 2888.panel-add-btn { 2889 background: var(--text-bright, #00cc07); 2890 border: 1px solid var(--border-main, #00a806); 2891 color: var(--background-site, white); 2892 padding: 5px 13px; 2893 border-radius: 4px; 2894 cursor: pointer; 2895 font-size: 11px; 2896 font-weight: 600; 2897 transition: all 0.2s; 2898 white-space: nowrap; 2899 flex-shrink: 0; 2900} 2901 2902.panel-add-btn:hover { 2903 filter: brightness(1.3); 2904 transform: translateY(-1px); 2905 box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2)); 2906} 2907 2908.panel-standalone-header { 2909 display: flex; 2910 align-items: center; 2911 gap: 8px; 2912 padding: 12px 12px; 2913 background: var(--cell-bg, #fafafa); 2914 border-bottom: 1px solid var(--border-color, #e0e0e0); 2915 flex-shrink: 0; 2916} 2917 2918.panel-header-content { 2919 flex: 1; 2920 display: flex; 2921 flex-direction: column; 2922 align-items: center; 2923 gap: 4px; 2924} 2925 2926.panel-standalone-header h3 { 2927 margin: 0; 2928 font-size: 12px; 2929 font-weight: 600; 2930 color: var(--text-primary, #2c3e50); 2931 white-space: nowrap; 2932} 2933 2934.panel-standalone-header .calendar-month-picker { 2935 cursor: pointer; 2936 user-select: none; 2937 transition: all 0.15s; 2938 padding: 4px 8px; 2939 border-radius: 4px; 2940 white-space: nowrap; 2941} 2942 2943.panel-standalone-header .calendar-month-picker:hover { 2944 background: var(--cell-today-bg, #e8e8e8); 2945 color: var(--text-bright, #008800); 2946} 2947 2948.panel-standalone-header .namespace-badge { 2949 font-size: 11px; 2950 font-weight: 500; 2951 color: var(--text-bright, #388e3c); 2952 background: var(--cell-today-bg, #e8f5e9); 2953 padding: 2px 8px; 2954 border-radius: 3px; 2955 text-decoration: none; 2956 transition: all 0.15s; 2957 display: inline-block; 2958} 2959 2960.panel-standalone-header .namespace-badge:hover { 2961 background: var(--cell-bg, #c8e6c9); 2962 color: var(--text-primary, #2e7d32); 2963} 2964 2965.panel-standalone-actions { 2966 padding: 10px 16px; 2967 background: var(--background-site, #ffffff); 2968 border-bottom: 1px solid var(--border-color, #e0e0e0); 2969 flex-shrink: 0; 2970 display: flex; 2971 align-items: center; 2972 gap: 8px; 2973} 2974 2975.panel-standalone-actions .add-event-compact { 2976 flex-shrink: 0; 2977} 2978 2979.eventlist-day-group { 2980 margin-bottom: 24px; 2981} 2982 2983.eventlist-date { 2984 margin: 0 0 12px 0; 2985 font-size: 14px; 2986 font-weight: 600; 2987 color: var(--text-primary, #2c3e50); 2988 background: var(--cell-bg, #f8f8f8); 2989 padding: 8px 12px; 2990 border-left: 4px solid var(--border-main, #008800); 2991} 2992 2993.eventlist-item { 2994 display: flex; 2995 margin-bottom: 10px; 2996 background: white; 2997 border: 1px solid var(--border-color, #e0e0e0); 2998 border-radius: 4px; 2999 overflow: hidden; 3000} 3001 3002.eventlist-content { 3003 flex: 1; 3004 padding: 12px; 3005 display: flex; 3006 align-items: center; 3007 gap: 12px; 3008} 3009 3010.eventlist-time { 3011 font-size: 12px; 3012 font-weight: 600; 3013 color: var(--text-bright, #008800); 3014 min-width: 50px; 3015} 3016 3017.eventlist-title { 3018 font-size: 14px; 3019 font-weight: 500; 3020 color: var(--text-primary, #2c3e50); 3021} 3022 3023.eventlist-desc { 3024 font-size: 12px; 3025 color: var(--text-dim, #666); 3026 margin-top: 6px; 3027 line-height: 1.4; 3028} 3029 3030/* =================================== 3031 MOBILE RESPONSIVE - EVENTLIST & EVENTPANEL 3032 =================================== */ 3033 3034/* Tablet and below (768px) */ 3035@media (max-width: 768px) { 3036 /* Event Panel Standalone */ 3037 .event-panel-standalone { 3038 width: 100%; 3039 max-width: 100%; 3040 border-radius: 0; 3041 max-height: none; 3042 min-height: 400px; 3043 } 3044 3045 /* Compact Event List Widget */ 3046 .eventlist-compact-widget { 3047 width: 100% !important; 3048 max-width: 100%; 3049 border-radius: 0; 3050 } 3051 3052 .eventlist-widget-header h4 { 3053 font-size: 14px; 3054 } 3055 3056 .eventlist-widget-title { 3057 font-size: 13px; 3058 } 3059 3060 .eventlist-widget-time { 3061 font-size: 12px; 3062 } 3063 3064 /* Standalone event list (old style) */ 3065 .eventlist-standalone { 3066 max-width: 100%; 3067 margin: 10px; 3068 padding: 15px; 3069 border-radius: 0; 3070 } 3071 3072 .eventlist-standalone h3 { 3073 font-size: 16px; 3074 } 3075} 3076 3077/* Mobile (480px and below) */ 3078@media (max-width: 480px) { 3079 /* Event Panel Standalone */ 3080 .event-panel-standalone { 3081 font-size: 12px; 3082 min-height: 300px; 3083 } 3084 3085 .panel-standalone-header { 3086 padding: 10px 12px; 3087 } 3088 3089 .panel-standalone-header h3 { 3090 font-size: 12px; 3091 } 3092 3093 .panel-standalone-actions { 3094 padding: 8px 12px; 3095 } 3096 3097 .event-panel-standalone .event-list-compact { 3098 padding: 8px; 3099 } 3100 3101 /* Compact Event List Widget */ 3102 .eventlist-compact-widget { 3103 min-width: 280px; 3104 } 3105 3106 .eventlist-widget-header { 3107 padding: 6px 10px; 3108 } 3109 3110 .eventlist-widget-header h4 { 3111 font-size: 13px; 3112 } 3113 3114 .eventlist-widget-content { 3115 padding: 6px; 3116 } 3117 3118 .eventlist-widget-item { 3119 padding: 5px 6px; 3120 margin-bottom: 5px; 3121 } 3122 3123 .eventlist-widget-title { 3124 font-size: 12px; 3125 } 3126 3127 .eventlist-widget-time { 3128 font-size: 11px; 3129 } 3130 3131 .eventlist-widget-desc { 3132 font-size: 11px; 3133 } 3134 3135 /* Standalone event list */ 3136 .eventlist-standalone { 3137 margin: 5px; 3138 padding: 10px; 3139 } 3140 3141 .eventlist-standalone h3 { 3142 font-size: 14px; 3143 margin-bottom: 15px; 3144 } 3145 3146 .eventlist-day-group { 3147 margin-bottom: 18px; 3148 } 3149 3150 .eventlist-date { 3151 font-size: 13px; 3152 padding: 6px 10px; 3153 } 3154 3155 .eventlist-title { 3156 font-size: 13px; 3157 } 3158 3159 .eventlist-time { 3160 font-size: 11px; 3161 } 3162 3163 .eventlist-desc { 3164 font-size: 11px; 3165 } 3166} 3167 3168/* Very small mobile (320px) */ 3169@media (max-width: 320px) { 3170 .eventlist-compact-widget { 3171 min-width: 100%; 3172 } 3173 3174 .event-panel-standalone { 3175 min-height: 250px; 3176 } 3177 3178 .eventlist-widget-header h4 { 3179 font-size: 12px; 3180 } 3181 3182 .eventlist-widget-title { 3183 font-size: 11px; 3184 } 3185 3186 .panel-standalone-header h3 { 3187 font-size: 12px; 3188 } 3189} 3190 3191/* Past Events Collapsible Section */ 3192.past-events-section { 3193 margin-bottom: 10px; 3194 border-bottom: 1px solid var(--border-color, #e0e0e0); 3195} 3196 3197.past-events-toggle { 3198 padding: 6px 10px; 3199 background: var(--cell-bg); 3200 color: var(--text-dim); 3201 cursor: pointer; 3202 user-select: none; 3203 font-size: 11px; 3204 font-weight: 600; 3205 display: flex; 3206 align-items: center; 3207 border-radius: 3px; 3208 transition: background 0.2s; 3209} 3210 3211.past-events-toggle:hover { 3212 background: var(--background-alt); 3213} 3214 3215.past-events-arrow { 3216 font-size: 9px; 3217 margin-right: 5px; 3218 transition: transform 0.2s; 3219 display: inline-block; 3220 width: 10px; 3221 color: var(--text-dim); 3222} 3223 3224.past-events-label { 3225 color: var(--text-dim); 3226} 3227 3228.past-events-content { 3229 margin-top: 5px; 3230} 3231 3232/* Namespace Search Dropdown */ 3233.namespace-search-wrapper { 3234 position: relative; 3235} 3236 3237.namespace-search-input { 3238 width: 100%; 3239} 3240 3241.namespace-dropdown { 3242 position: absolute; 3243 top: 100%; 3244 left: 0; 3245 right: 0; 3246 max-height: 200px; 3247 overflow-y: auto; 3248 background: white; 3249 border: 1px solid var(--border-color, #ddd); 3250 border-top: none; 3251 border-radius: 0 0 4px 4px; 3252 box-shadow: 0 4px 8px rgba(0,0,0,0.1); 3253 z-index: 1000; 3254 margin-top: -1px; 3255} 3256 3257.namespace-option { 3258 padding: 8px 12px; 3259 cursor: pointer; 3260 font-size: 12px; 3261 border-bottom: 1px solid var(--border-color, #f0f0f0); 3262 transition: background-color 0.15s; 3263} 3264 3265.namespace-option:hover { 3266 background-color: var(--cell-bg, #f5f5f5); 3267} 3268 3269.namespace-option.selected { 3270 background-color: var(--cell-today-bg, #e3f2fd); 3271 color: var(--text-bright, #1976d2); 3272} 3273 3274.namespace-option:last-child { 3275 border-bottom: none; 3276} 3277 3278/* Matrix-themed Sidebar Widget */ 3279.sidebar-matrix { 3280 font-family: system-ui, sans-serif !important; 3281 background: linear-gradient(180deg, #242424 0%, #2a2a2a 100%) !important; 3282 border: 2px solid #00cc07 !important; 3283 box-shadow: 0 0 15px rgba(0, 204, 7, 0.4), inset 0 0 20px rgba(0, 204, 7, 0.05) !important; 3284} 3285 3286.sidebar-matrix-header { 3287 background: linear-gradient(180deg, #2a2a2a 0%, #242424 100%) !important; 3288 border-bottom: 2px solid #00cc07 !important; 3289 box-shadow: 0 2px 8px rgba(0, 204, 7, 0.3) !important; 3290} 3291 3292.sidebar-matrix-clock { 3293 animation: matrix-pulse 2s ease-in-out infinite; 3294} 3295 3296.sidebar-matrix-date { 3297 opacity: 0.9; 3298} 3299 3300@keyframes matrix-pulse { 3301 0%, 100% { 3302 text-shadow: 0 0 2px rgba(0, 204, 7, 0.4); 3303 } 3304 50% { 3305 text-shadow: 0 0 4px rgba(0, 255, 0, 0.5), 0 0 6px rgba(0, 204, 7, 0.3); 3306 } 3307} 3308 3309/* Matrix glow effect for sidebar */ 3310.sidebar-widget.sidebar-matrix::before { 3311 content: ''; 3312 position: absolute; 3313 top: -2px; 3314 left: -2px; 3315 right: -2px; 3316 bottom: -2px; 3317 background: linear-gradient(45deg, #00cc07, #00ff00, #00cc07); 3318 border-radius: 4px; 3319 opacity: 0; 3320 z-index: -1; 3321 animation: matrix-border-glow 3s ease-in-out infinite; 3322} 3323 3324@keyframes matrix-border-glow { 3325 0%, 100% { 3326 opacity: 0; 3327 } 3328 50% { 3329 opacity: 0.3; 3330 } 3331} 3332 3333/* Scrollbar styling for matrix theme */ 3334.sidebar-matrix ::-webkit-scrollbar { 3335 width: 6px; 3336} 3337 3338.sidebar-matrix ::-webkit-scrollbar-track { 3339 background: #242424; 3340} 3341 3342.sidebar-matrix ::-webkit-scrollbar-thumb { 3343 background: #00cc07; 3344 border-radius: 3px; 3345 box-shadow: 0 0 5px rgba(0, 204, 7, 0.5); 3346} 3347 3348.sidebar-matrix ::-webkit-scrollbar-thumb:hover { 3349 background: #00ff00; 3350 box-shadow: 0 0 8px rgba(0, 255, 0, 0.8); 3351} 3352 3353/* ==================================== 3354 PINK BLING THEME - SPECIAL EFFECTS 3355 ==================================== */ 3356 3357/* Shimmer animation for today's cell - BARELY NOTICEABLE */ 3358@keyframes pink-shimmer { 3359 0% { 3360 box-shadow: 0 0 2px rgba(255, 20, 147, 0.15), 3361 0 0 3px rgba(255, 20, 147, 0.08); 3362 } 3363 50% { 3364 box-shadow: 0 0 4px rgba(255, 20, 147, 0.25), 3365 0 0 6px rgba(255, 20, 147, 0.12); 3366 } 3367 100% { 3368 box-shadow: 0 0 2px rgba(255, 20, 147, 0.15), 3369 0 0 3px rgba(255, 20, 147, 0.08); 3370 } 3371} 3372 3373/* Sparkle animation for today's day number - BARELY NOTICEABLE */ 3374@keyframes pink-sparkle { 3375 0%, 100% { 3376 text-shadow: 0 0 2px rgba(255, 20, 147, 0.3); 3377 transform: scale(1); 3378 } 3379 50% { 3380 text-shadow: 0 0 3px rgba(255, 20, 147, 0.5); 3381 transform: scale(1.01); 3382 } 3383} 3384 3385/* Glow pulse for event bars - BARELY NOTICEABLE */ 3386@keyframes pink-glow-pulse { 3387 0%, 100% { 3388 box-shadow: 0 0 1px currentColor; 3389 } 3390 50% { 3391 box-shadow: 0 0 2px currentColor, 3392 0 0 3px rgba(255, 105, 180, 0.15); 3393 } 3394} 3395 3396/* Gradient shimmer for headers */ 3397@keyframes pink-gradient-shimmer { 3398 0% { 3399 background-position: 0% 50%; 3400 } 3401 50% { 3402 background-position: 100% 50%; 3403 } 3404 100% { 3405 background-position: 0% 50%; 3406 } 3407} 3408 3409/* Pink particle explosion on click */ 3410@keyframes particle-explode { 3411 0% { 3412 opacity: 1; 3413 transform: translate(0, 0) scale(1); 3414 } 3415 100% { 3416 opacity: 0; 3417 transform: translate(var(--tx), var(--ty)) scale(0); 3418 } 3419} 3420 3421/* Cursor trail glow */ 3422@keyframes cursor-trail-fade { 3423 0% { 3424 opacity: 1; 3425 transform: scale(1); 3426 } 3427 100% { 3428 opacity: 0; 3429 transform: scale(0.5); 3430 } 3431} 3432 3433/* Pink particle styles */ 3434.pink-particle { 3435 position: fixed; /* Changed to fixed so it works anywhere on screen */ 3436 width: 6px; 3437 height: 6px; 3438 background: radial-gradient(circle, #ff1493, #ff69b4); 3439 border-radius: 50%; 3440 pointer-events: none; 3441 z-index: 9999999; /* Above everything including dialogs */ 3442 box-shadow: 0 0 8px #ff1493, 3443 0 0 15px #ff69b4; 3444} 3445 3446/* Cursor trail glow */ 3447.pink-cursor-trail { 3448 position: fixed; /* Changed to fixed so it works anywhere on screen */ 3449 width: 8px; 3450 height: 8px; 3451 background: radial-gradient(circle, rgba(255, 20, 147, 0.8), rgba(255, 105, 180, 0.4)); 3452 border-radius: 50%; 3453 pointer-events: none; 3454 z-index: 9999998; /* Just below particles */ 3455 box-shadow: 0 0 10px rgba(255, 20, 147, 0.6), 3456 0 0 20px rgba(255, 105, 180, 0.3); 3457} 3458 3459/* Tiny neon pixel sparkles */ 3460.pink-pixel-sparkle { 3461 position: fixed; 3462 width: 2px; 3463 height: 2px; 3464 background: var(--background-site, #fff); 3465 border-radius: 50%; 3466 pointer-events: none; 3467 z-index: 9999997; /* Just below trail */ 3468 box-shadow: 0 0 2px #ff1493, 3469 0 0 4px #ff69b4, 3470 0 0 6px #fff; 3471} 3472 3473/* Pixel sparkle twinkle animation */ 3474@keyframes pixel-twinkle { 3475 0%, 100% { 3476 opacity: 0; 3477 transform: scale(0); 3478 } 3479 50% { 3480 opacity: 1; 3481 transform: scale(1.5); 3482 } 3483} 3484 3485/* Pixel sparkle float away */ 3486@keyframes pixel-float-away { 3487 0% { 3488 opacity: 1; 3489 transform: translateY(0) scale(1); 3490 } 3491 100% { 3492 opacity: 0; 3493 transform: translateY(-30px) scale(0); 3494 } 3495} 3496 3497/* Pink theme specific styles - TONED DOWN */ 3498.calendar-theme-pink .cal-today { 3499 animation: pink-shimmer 2s ease-in-out infinite; 3500 border: 2px solid #ff1493 !important; 3501 position: relative; 3502 overflow: visible; 3503} 3504 3505.calendar-theme-pink .cal-today .day-num, 3506.calendar-theme-pink .day-num-today { 3507 background: transparent !important; 3508 color: #fff !important; 3509 position: relative; 3510 z-index: 1; 3511 font-weight: 700; 3512 filter: none; 3513 width: 22px; 3514 height: 22px; 3515 line-height: 22px; 3516 text-align: center; 3517 font-size: 10px; 3518 padding: 0; 3519 display: inline-flex; 3520 align-items: center; 3521 justify-content: center; 3522 overflow: visible; 3523} 3524 3525/* Heart shape behind the day number */ 3526.calendar-theme-pink .cal-today .day-num::before, 3527.calendar-theme-pink .day-num-today::before { 3528 content: '♥'; 3529 position: absolute; 3530 top: 50%; 3531 left: 50%; 3532 transform: translate(-50%, -48%); 3533 font-size: 26px; 3534 color: #ff1493; 3535 z-index: -1; 3536 text-shadow: 0 0 8px rgba(255, 20, 147, 0.7), 3537 0 0 16px rgba(255, 20, 147, 0.4), 3538 0 0 24px rgba(255, 105, 180, 0.2); 3539 animation: pink-heart-beat 1.2s ease-in-out infinite; 3540 line-height: 1; 3541} 3542 3543/* Heart beat animation */ 3544@keyframes pink-heart-beat { 3545 0%, 100% { 3546 transform: translate(-50%, -48%) scale(1); 3547 text-shadow: 0 0 8px rgba(255, 20, 147, 0.7), 3548 0 0 16px rgba(255, 20, 147, 0.4); 3549 } 3550 15% { 3551 transform: translate(-50%, -48%) scale(1.15); 3552 text-shadow: 0 0 12px rgba(255, 20, 147, 0.9), 3553 0 0 24px rgba(255, 20, 147, 0.5), 3554 0 0 36px rgba(255, 105, 180, 0.3); 3555 } 3556 30% { 3557 transform: translate(-50%, -48%) scale(0.95); 3558 } 3559 45% { 3560 transform: translate(-50%, -48%) scale(1.1); 3561 text-shadow: 0 0 10px rgba(255, 20, 147, 0.8), 3562 0 0 20px rgba(255, 20, 147, 0.4); 3563 } 3564 60% { 3565 transform: translate(-50%, -48%) scale(1); 3566 } 3567} 3568 3569.calendar-theme-pink .event-bar { 3570 animation: pink-glow-pulse 2s ease-in-out infinite; 3571} 3572 3573.calendar-theme-pink .calendar-compact-header { 3574 background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24, #1a0d14); 3575 background-size: 300% 300%; 3576 animation: pink-gradient-shimmer 3s ease infinite; 3577} 3578 3579.calendar-theme-pink .event-list-header { 3580 background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24); 3581 background-size: 300% 300%; 3582 animation: pink-gradient-shimmer 3s ease infinite; 3583} 3584 3585/* Subtle hover glow - BARELY NOTICEABLE */ 3586.calendar-theme-pink .cal-today:hover { 3587 box-shadow: 0 0 5px rgba(255, 20, 147, 0.25), 3588 0 0 8px rgba(255, 20, 147, 0.12) !important; 3589} 3590 3591/* Pink theme event items get subtle glow */ 3592.calendar-theme-pink .event-compact-item { 3593 box-shadow: 0 0 1px rgba(255, 20, 147, 0.08); 3594 transition: all 0.3s ease; 3595} 3596 3597.calendar-theme-pink .event-compact-item:hover { 3598 box-shadow: 0 0 3px rgba(255, 20, 147, 0.15); 3599 transform: translateX(2px); 3600} 3601 3602/* Calendar borders get subtle glow */ 3603.calendar-theme-pink.calendar-compact-container { 3604 box-shadow: 0 0 5px rgba(255, 20, 147, 0.12), 3605 0 2px 4px rgba(0,0,0,0.06); 3606 position: relative; 3607} 3608 3609/* Today badge extra sparkle */ 3610.calendar-theme-pink .event-today-badge { 3611 animation: pink-sparkle 1.5s ease-in-out infinite; 3612} 3613 3614/* Consistent subtle text glow for dark themes - main calendar event list */ 3615.calendar-theme-matrix .event-title-compact, 3616.calendar-theme-matrix .event-meta-compact, 3617.calendar-theme-matrix .event-desc-compact { 3618 text-shadow: 0 0 1px var(--text-primary, #00cc07); 3619} 3620 3621.calendar-theme-purple .event-title-compact, 3622.calendar-theme-purple .event-meta-compact, 3623.calendar-theme-purple .event-desc-compact { 3624 text-shadow: 0 0 1px var(--text-primary, #b19cd9); 3625} 3626 3627.calendar-theme-pink .event-title-compact, 3628.calendar-theme-pink .event-meta-compact, 3629.calendar-theme-pink .event-desc-compact { 3630 text-shadow: 0 0 2px var(--text-primary, #ff69b4); 3631} 3632 3633/* Dark theme link glow */ 3634.calendar-theme-matrix .event-desc-compact a, 3635.calendar-theme-matrix .cal-link { 3636 text-shadow: 0 0 1px var(--text-bright, #00ff00); 3637} 3638 3639.calendar-theme-purple .event-desc-compact a, 3640.calendar-theme-purple .cal-link { 3641 text-shadow: 0 0 1px var(--text-bright, #d4a5ff); 3642} 3643 3644.calendar-theme-pink .event-desc-compact a, 3645.calendar-theme-pink .cal-link { 3646 text-shadow: 0 0 2px var(--text-bright, #ff1493); 3647} 3648 3649/* Dark theme event panel text glow */ 3650.event-panel-standalone[data-theme="matrix"] .event-title-compact, 3651.event-panel-standalone[data-theme="matrix"] .event-meta-compact, 3652.event-panel-standalone[data-theme="matrix"] .event-desc-compact { 3653 text-shadow: 0 0 1px var(--text-primary, #00cc07); 3654} 3655 3656.event-panel-standalone[data-theme="purple"] .event-title-compact, 3657.event-panel-standalone[data-theme="purple"] .event-meta-compact, 3658.event-panel-standalone[data-theme="purple"] .event-desc-compact { 3659 text-shadow: 0 0 1px var(--text-primary, #b19cd9); 3660} 3661 3662.event-panel-standalone[data-theme="pink"] .event-title-compact, 3663.event-panel-standalone[data-theme="pink"] .event-meta-compact, 3664.event-panel-standalone[data-theme="pink"] .event-desc-compact { 3665 text-shadow: 0 0 2px var(--text-primary, #ff69b4); 3666} 3667 3668/* Past due badge pulsing effect - SUBTLE */ 3669@keyframes pink-pulse-urgent { 3670 0%, 100% { 3671 box-shadow: 0 0 3px rgba(255, 140, 0, 0.4); 3672 } 3673 50% { 3674 box-shadow: 0 0 8px rgba(255, 140, 0, 0.6); 3675 } 3676} 3677 3678.calendar-theme-pink .event-pastdue-badge { 3679 animation: pink-pulse-urgent 1s ease-in-out infinite; 3680} 3681 3682/* ======================================== 3683 MATRIX THEME: CHECKBOX GLOW 3684 ======================================== */ 3685.calendar-theme-matrix .task-checkbox, 3686.sidebar-matrix .task-checkbox { 3687 border: 2px solid #00ff00; 3688 background: rgba(0, 204, 7, 0.08); 3689 box-shadow: 0 0 6px rgba(0, 255, 0, 0.3), inset 0 0 4px rgba(0, 204, 7, 0.1); 3690} 3691 3692.calendar-theme-matrix .task-checkbox:hover, 3693.sidebar-matrix .task-checkbox:hover { 3694 border-color: #00ff00; 3695 box-shadow: 0 0 10px rgba(0, 255, 0, 0.5), inset 0 0 6px rgba(0, 204, 7, 0.2); 3696} 3697 3698.calendar-theme-matrix .task-checkbox:checked, 3699.sidebar-matrix .task-checkbox:checked { 3700 background: #00cc07; 3701 border-color: #00ff00; 3702 box-shadow: 0 0 8px rgba(0, 255, 0, 0.6); 3703} 3704 3705/* ======================================== 3706 PURPLE THEME: CHECKBOX GLOW 3707 ======================================== */ 3708.calendar-theme-purple .task-checkbox, 3709.sidebar-purple .task-checkbox { 3710 border: 2px solid #d4a5ff; 3711 background: rgba(155, 89, 182, 0.08); 3712 box-shadow: 0 0 6px rgba(212, 165, 255, 0.3), inset 0 0 4px rgba(155, 89, 182, 0.1); 3713} 3714 3715.calendar-theme-purple .task-checkbox:hover, 3716.sidebar-purple .task-checkbox:hover { 3717 border-color: #d4a5ff; 3718 box-shadow: 0 0 10px rgba(212, 165, 255, 0.5), inset 0 0 6px rgba(155, 89, 182, 0.2); 3719} 3720 3721.calendar-theme-purple .task-checkbox:checked, 3722.sidebar-purple .task-checkbox:checked { 3723 background: #9b59b6; 3724 border-color: #d4a5ff; 3725 box-shadow: 0 0 8px rgba(212, 165, 255, 0.6); 3726} 3727 3728/* ======================================== 3729 PINK THEME: CHECKBOX GLOW 3730 ======================================== */ 3731.calendar-theme-pink .task-checkbox, 3732.sidebar-pink .task-checkbox { 3733 border: 2px solid #ff1493; 3734 background: rgba(255, 20, 147, 0.08); 3735 box-shadow: 0 0 6px rgba(255, 20, 147, 0.35), inset 0 0 4px rgba(255, 20, 147, 0.1); 3736} 3737 3738.calendar-theme-pink .task-checkbox:hover, 3739.sidebar-pink .task-checkbox:hover { 3740 border-color: #ff69b4; 3741 box-shadow: 0 0 10px rgba(255, 20, 147, 0.6), inset 0 0 6px rgba(255, 20, 147, 0.2); 3742} 3743 3744.calendar-theme-pink .task-checkbox:checked, 3745.sidebar-pink .task-checkbox:checked { 3746 background: #ff1493; 3747 border-color: #ff69b4; 3748 box-shadow: 0 0 8px rgba(255, 20, 147, 0.7); 3749} 3750 3751/* Pink checkbox in dialog forms */ 3752.calendar-theme-pink .checkbox-label input[type="checkbox"], 3753.calendar-theme-pink .checkbox-label-compact input[type="checkbox"] { 3754 accent-color: #ff1493; 3755} 3756 3757/* Wiki theme checkboxes - use border color */ 3758.calendar-theme-wiki .task-checkbox, 3759.sidebar-wiki .task-checkbox, 3760.eventlist-theme-wiki .task-checkbox { 3761 border: 2px solid var(--border-main, #ccc); 3762 accent-color: var(--border-main, #ccc); 3763} 3764 3765.calendar-theme-wiki .task-checkbox:hover, 3766.sidebar-wiki .task-checkbox:hover, 3767.eventlist-theme-wiki .task-checkbox:hover { 3768 border: 2px solid var(--border-main, #ccc); 3769 box-shadow: 0 0 8px rgba(0, 0, 0, 0.15); 3770} 3771 3772.calendar-theme-wiki .task-checkbox:checked, 3773.sidebar-wiki .task-checkbox:checked, 3774.eventlist-theme-wiki .task-checkbox:checked { 3775 background: var(--border-main, #ccc); 3776 border: 2px solid var(--border-main, #ccc); 3777} 3778 3779/* Wiki theme buttons - use __link__ color */ 3780.calendar-theme-wiki .cal-nav-btn, 3781.calendar-theme-wiki .cal-today-btn { 3782 background: var(--text-bright, #2b73b7); 3783 color: #fff; 3784} 3785 3786/* Wiki theme day headers - use __background_neu__ */ 3787.calendar-theme-wiki .calendar-day-headers { 3788 background: var(--cell-today-bg, #eee); 3789} 3790 3791/* Wiki theme past events toggle - use __background_neu__ */ 3792.calendar-theme-wiki .past-events-toggle { 3793 background: var(--cell-today-bg, #eee); 3794} 3795 3796.calendar-theme-wiki .calendar-day-headers span { 3797 color: var(--text-primary, #333); 3798} 3799 3800.sidebar-wiki .panel-nav-btn, 3801.sidebar-wiki .panel-today-btn { 3802 background: var(--text-bright, #2b73b7); 3803 color: #fff; 3804} 3805 3806.event-panel-standalone[data-theme="wiki"] .panel-nav-btn, 3807.event-panel-standalone[data-theme="wiki"] .panel-today-btn { 3808 background: var(--text-bright, #2b73b7); 3809 color: #fff; 3810} 3811 3812/* Wiki theme clock - no glow */ 3813.sidebar-wiki .eventlist-today-clock, 3814.eventlist-theme-wiki .eventlist-today-clock { 3815 text-shadow: none; 3816} 3817 3818/* Wiki theme clock - no glow, slightly larger */ 3819.sidebar-wiki .eventlist-today-clock, 3820.eventlist-theme-wiki .eventlist-today-clock { 3821 text-shadow: none; 3822 font-size: 20px; 3823} 3824 3825/* ======================================== 3826 PINK THEME: BUTTON FIREWORK BURST HOVER 3827 ======================================== */ 3828@keyframes pink-firework-burst { 3829 0% { 3830 box-shadow: 0 0 4px rgba(255, 20, 147, 0.4); 3831 } 3832 25% { 3833 box-shadow: 0 0 15px rgba(255, 20, 147, 0.8), 3834 0 0 30px rgba(255, 105, 180, 0.4), 3835 5px -5px 8px rgba(255, 20, 147, 0.6), 3836 -5px -5px 8px rgba(255, 105, 180, 0.5), 3837 5px 5px 8px rgba(255, 133, 193, 0.4), 3838 -5px 5px 8px rgba(255, 20, 147, 0.5); 3839 } 3840 50% { 3841 box-shadow: 0 0 20px rgba(255, 20, 147, 0.9), 3842 0 0 40px rgba(255, 105, 180, 0.5), 3843 8px -8px 12px rgba(255, 20, 147, 0.5), 3844 -8px -8px 12px rgba(255, 105, 180, 0.4), 3845 8px 8px 12px rgba(255, 133, 193, 0.3), 3846 -8px 8px 12px rgba(255, 20, 147, 0.4), 3847 0 -10px 15px rgba(255, 20, 147, 0.3), 3848 10px 0 15px rgba(255, 105, 180, 0.3); 3849 } 3850 75% { 3851 box-shadow: 0 0 12px rgba(255, 20, 147, 0.6), 3852 0 0 25px rgba(255, 105, 180, 0.3), 3853 12px -12px 8px rgba(255, 20, 147, 0.2), 3854 -12px -12px 8px rgba(255, 105, 180, 0.15), 3855 12px 12px 8px rgba(255, 133, 193, 0.1), 3856 -12px 12px 8px rgba(255, 20, 147, 0.15); 3857 } 3858 100% { 3859 box-shadow: 0 0 6px rgba(255, 20, 147, 0.5), 3860 0 0 15px rgba(255, 105, 180, 0.3); 3861 } 3862} 3863 3864/* Apply firework burst to all pink theme buttons on hover */ 3865.calendar-theme-pink .cal-nav-btn:hover, 3866.calendar-theme-pink .cal-today-btn:hover, 3867.calendar-theme-pink .btn-save-sleek:hover, 3868.calendar-theme-pink .btn-cancel-sleek:hover, 3869.calendar-theme-pink .btn-add-event:hover, 3870.calendar-theme-pink .event-edit-btn:hover, 3871.calendar-theme-pink .event-delete-btn:hover, 3872.calendar-theme-pink .event-action-btn:hover { 3873 background: #ff1493 !important; 3874 color: #1a0d14 !important; 3875 border-color: #ff69b4 !important; 3876 animation: pink-firework-burst 0.6s ease-out forwards; 3877 transform: scale(1.1); 3878 filter: brightness(1.4); 3879} 3880 3881.calendar-theme-pink .cal-nav-btn:active, 3882.calendar-theme-pink .cal-today-btn:active, 3883.calendar-theme-pink .btn-save-sleek:active, 3884.calendar-theme-pink .btn-cancel-sleek:active, 3885.calendar-theme-pink .btn-add-event:active { 3886 transform: scale(0.92); 3887 filter: brightness(1.6); 3888 animation: none; 3889 box-shadow: 0 0 25px rgba(255, 20, 147, 1), 0 0 50px rgba(255, 105, 180, 0.6); 3890} 3891 3892/* Sidebar pink button firework */ 3893.sidebar-pink .event-edit-btn:hover, 3894.sidebar-pink .event-delete-btn:hover { 3895 background: #ff1493 !important; 3896 color: #1a0d14 !important; 3897 animation: pink-firework-burst 0.6s ease-out forwards; 3898 transform: scale(1.1); 3899} 3900 3901/* Panel standalone pink buttons */ 3902.event-panel-standalone[data-theme="pink"] .panel-nav-btn:hover, 3903.event-panel-standalone[data-theme="pink"] .panel-today-btn:hover, 3904.event-panel-standalone[data-theme="pink"] .panel-add-btn:hover { 3905 background: #ff1493 !important; 3906 color: #1a0d14 !important; 3907 animation: pink-firework-burst 0.6s ease-out forwards; 3908 transform: scale(1.1); 3909} 3910 3911/* ======================================== 3912 TEXT COLOR PROTECTION 3913 Forces text to stay readable on dark themes 3914 when browser extensions modify page colors. 3915 Only uses color !important — no filter, no 3916 color-scheme, no variable resets. 3917 ======================================== */ 3918 3919/* Matrix: green text on dark background */ 3920.calendar-theme-matrix .event-title-compact, 3921.calendar-theme-matrix .event-list-header, 3922.calendar-theme-matrix .calendar-day-headers, 3923.sidebar-matrix .event-title-compact { 3924 color: var(--text-bright, #00ff00) !important; 3925 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 3926} 3927 3928.calendar-theme-matrix .event-meta-compact, 3929.calendar-theme-matrix .event-desc-compact, 3930.calendar-theme-matrix .no-events-msg, 3931.sidebar-matrix .event-meta-compact, 3932.sidebar-matrix .event-desc-compact { 3933 color: var(--text-dim, #00aa00) !important; 3934 -webkit-text-fill-color: var(--text-dim, #00aa00) !important; 3935} 3936 3937.calendar-theme-matrix .day-num, 3938.calendar-theme-matrix .cal-nav-btn, 3939.calendar-theme-matrix .cal-today-btn, 3940.sidebar-matrix .eventlist-today-date { 3941 color: var(--text-primary, #00cc07) !important; 3942 -webkit-text-fill-color: var(--text-primary, #00cc07) !important; 3943} 3944 3945/* Purple: purple text on dark background */ 3946.calendar-theme-purple .event-title-compact, 3947.calendar-theme-purple .event-list-header, 3948.calendar-theme-purple .calendar-day-headers, 3949.sidebar-purple .event-title-compact { 3950 color: var(--text-bright, #d4a5ff) !important; 3951 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 3952} 3953 3954.calendar-theme-purple .event-meta-compact, 3955.calendar-theme-purple .event-desc-compact, 3956.calendar-theme-purple .no-events-msg, 3957.sidebar-purple .event-meta-compact, 3958.sidebar-purple .event-desc-compact { 3959 color: var(--text-dim, #8e7ab8) !important; 3960 -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important; 3961} 3962 3963.calendar-theme-purple .day-num, 3964.calendar-theme-purple .cal-nav-btn, 3965.calendar-theme-purple .cal-today-btn, 3966.sidebar-purple .eventlist-today-date { 3967 color: var(--text-primary, #b19cd9) !important; 3968 -webkit-text-fill-color: var(--text-primary, #b19cd9) !important; 3969} 3970 3971/* Pink: pink text on dark background */ 3972.calendar-theme-pink .event-title-compact, 3973.calendar-theme-pink .event-list-header, 3974.calendar-theme-pink .calendar-day-headers, 3975.sidebar-pink .event-title-compact { 3976 color: var(--text-bright, #ff1493) !important; 3977 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 3978} 3979 3980.calendar-theme-pink .event-meta-compact, 3981.calendar-theme-pink .event-desc-compact, 3982.calendar-theme-pink .no-events-msg, 3983.sidebar-pink .event-meta-compact, 3984.sidebar-pink .event-desc-compact { 3985 color: var(--text-dim, #ff85c1) !important; 3986 -webkit-text-fill-color: var(--text-dim, #ff85c1) !important; 3987} 3988 3989.calendar-theme-pink .day-num, 3990.calendar-theme-pink .cal-nav-btn, 3991.calendar-theme-pink .cal-today-btn, 3992.sidebar-pink .eventlist-today-date { 3993 color: var(--text-primary, #ff69b4) !important; 3994 -webkit-text-fill-color: var(--text-primary, #ff69b4) !important; 3995} 3996 3997/* Badge text AND background protection - all dark themes */ 3998.calendar-theme-matrix .event-today-badge, 3999.calendar-theme-matrix .event-pastdue-badge, 4000.calendar-theme-matrix .event-namespace-badge, 4001.calendar-theme-matrix .eventlist-simple-today-badge, 4002.calendar-theme-matrix .eventlist-simple-pastdue-badge, 4003.calendar-theme-matrix .panel-ns-badge, 4004.sidebar-matrix .event-today-badge, 4005.sidebar-matrix .event-pastdue-badge, 4006.sidebar-matrix .event-namespace-badge, 4007.calendar-theme-purple .event-today-badge, 4008.calendar-theme-purple .event-pastdue-badge, 4009.calendar-theme-purple .event-namespace-badge, 4010.calendar-theme-purple .eventlist-simple-today-badge, 4011.calendar-theme-purple .eventlist-simple-pastdue-badge, 4012.calendar-theme-purple .panel-ns-badge, 4013.sidebar-purple .event-today-badge, 4014.sidebar-purple .event-pastdue-badge, 4015.sidebar-purple .event-namespace-badge, 4016.calendar-theme-pink .event-today-badge, 4017.calendar-theme-pink .event-pastdue-badge, 4018.calendar-theme-pink .event-namespace-badge, 4019.calendar-theme-pink .eventlist-simple-today-badge, 4020.calendar-theme-pink .eventlist-simple-pastdue-badge, 4021.calendar-theme-pink .panel-ns-badge, 4022.sidebar-pink .event-today-badge, 4023.sidebar-pink .event-pastdue-badge, 4024.sidebar-pink .event-namespace-badge { 4025 color: var(--background-site, white) !important; 4026 -webkit-text-fill-color: var(--background-site, white) !important; 4027 background: var(--text-bright) !important; 4028} 4029 4030.calendar-theme-matrix .event-pastdue-badge, 4031.calendar-theme-purple .event-pastdue-badge, 4032.calendar-theme-pink .event-pastdue-badge, 4033.calendar-theme-matrix .eventlist-simple-pastdue-badge, 4034.calendar-theme-purple .eventlist-simple-pastdue-badge, 4035.calendar-theme-pink .eventlist-simple-pastdue-badge, 4036.sidebar-matrix .event-pastdue-badge, 4037.sidebar-purple .event-pastdue-badge, 4038.sidebar-pink .event-pastdue-badge { 4039 background: var(--pastdue-color, #e74c3c) !important; 4040} 4041 4042/* Purple: sidebar section event text and section headers */ 4043.sidebar-purple .event-title-compact, 4044.sidebar-purple .event-meta-compact, 4045.sidebar-purple .event-desc-compact { 4046 color: var(--text-primary, #b19cd9) !important; 4047 -webkit-text-fill-color: var(--text-primary, #b19cd9) !important; 4048} 4049 4050.sidebar-purple .eventlist-today-clock { 4051 color: var(--text-bright, #d4a5ff) !important; 4052 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4053} 4054 4055.sidebar-purple .eventlist-today-date { 4056 color: var(--text-dim, #8e7ab8) !important; 4057 -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important; 4058} 4059 4060/* Pink: sidebar section event text */ 4061.sidebar-pink .event-title-compact { 4062 color: var(--text-bright, #ff1493) !important; 4063 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4064} 4065 4066.sidebar-pink .eventlist-today-clock { 4067 color: var(--text-bright, #ff1493) !important; 4068 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4069} 4070 4071.sidebar-pink .eventlist-today-date { 4072 color: var(--text-dim, #ff85c1) !important; 4073 -webkit-text-fill-color: var(--text-dim, #ff85c1) !important; 4074} 4075 4076/* ======================================== 4077 EVENTLIST THEMING 4078 Applies theme colors to {{eventlist}} output 4079 ======================================== */ 4080 4081/* Matrix eventlist */ 4082.eventlist-theme-matrix .eventlist-simple-title { 4083 color: var(--text-bright, #00ff00) !important; 4084 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4085} 4086 4087.eventlist-theme-matrix .eventlist-simple-header { 4088 color: var(--text-primary, #00cc07) !important; 4089 -webkit-text-fill-color: var(--text-primary, #00cc07) !important; 4090 background: var(--cell-bg, #242424) !important; 4091} 4092 4093.eventlist-theme-matrix .eventlist-simple-time, 4094.eventlist-theme-matrix .eventlist-simple-date, 4095.eventlist-theme-matrix .eventlist-simple-body { 4096 color: var(--text-dim, #00aa00) !important; 4097 -webkit-text-fill-color: var(--text-dim, #00aa00) !important; 4098 background: var(--background-site, #242424) !important; 4099} 4100 4101.eventlist-theme-matrix .eventlist-simple-body a { 4102 color: var(--text-bright, #00ff00) !important; 4103 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4104} 4105 4106.eventlist-theme-matrix .eventlist-simple-body strong { 4107 color: var(--text-primary, #00cc07) !important; 4108 -webkit-text-fill-color: var(--text-primary, #00cc07) !important; 4109} 4110 4111.eventlist-theme-matrix .eventlist-simple-body code { 4112 background: var(--cell-bg, #1a3d1a) !important; 4113 color: var(--text-primary, #00cc07) !important; 4114 -webkit-text-fill-color: var(--text-primary, #00cc07) !important; 4115} 4116 4117.eventlist-theme-matrix .eventlist-simple-namespace { 4118 background: var(--cell-today-bg, #2a4d2a) !important; 4119 color: var(--text-bright, #00ff00) !important; 4120 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4121} 4122 4123.eventlist-theme-matrix .eventlist-simple-empty, 4124.eventlist-theme-matrix .eventlist-simple-empty .eventlist-simple-body { 4125 color: var(--text-dim, #00aa00) !important; 4126 -webkit-text-fill-color: var(--text-dim, #00aa00) !important; 4127} 4128 4129.eventlist-theme-matrix .eventlist-simple-item { 4130 border-bottom-color: var(--border-color, #00cc07) !important; 4131} 4132 4133.eventlist-theme-matrix .eventlist-today-header { 4134 background: var(--cell-bg, #242424) !important; 4135 color: var(--text-bright, #00ff00) !important; 4136 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4137 border-color: var(--text-bright, #00ff00) !important; 4138} 4139 4140.eventlist-theme-matrix .eventlist-today-clock { 4141 color: var(--text-bright, #00ff00) !important; 4142 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4143} 4144 4145.eventlist-theme-matrix .eventlist-today-date { 4146 color: var(--text-dim, #00aa00) !important; 4147 -webkit-text-fill-color: var(--text-dim, #00aa00) !important; 4148} 4149 4150/* Purple eventlist */ 4151.eventlist-theme-purple .eventlist-simple-title { 4152 color: var(--text-bright, #d4a5ff) !important; 4153 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4154} 4155 4156.eventlist-theme-purple .eventlist-simple-header { 4157 color: var(--text-primary, #b19cd9) !important; 4158 -webkit-text-fill-color: var(--text-primary, #b19cd9) !important; 4159 background: var(--cell-bg, #2a2030) !important; 4160} 4161 4162.eventlist-theme-purple .eventlist-simple-time, 4163.eventlist-theme-purple .eventlist-simple-date, 4164.eventlist-theme-purple .eventlist-simple-body { 4165 color: var(--text-dim, #8e7ab8) !important; 4166 -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important; 4167 background: var(--background-site, #2a2030) !important; 4168} 4169 4170.eventlist-theme-purple .eventlist-simple-body a { 4171 color: var(--text-bright, #d4a5ff) !important; 4172 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4173} 4174 4175.eventlist-theme-purple .eventlist-simple-body strong { 4176 color: var(--text-primary, #b19cd9) !important; 4177 -webkit-text-fill-color: var(--text-primary, #b19cd9) !important; 4178} 4179 4180.eventlist-theme-purple .eventlist-simple-body code { 4181 background: var(--cell-bg, #3d2b4d) !important; 4182 color: var(--text-primary, #b19cd9) !important; 4183 -webkit-text-fill-color: var(--text-primary, #b19cd9) !important; 4184} 4185 4186.eventlist-theme-purple .eventlist-simple-namespace { 4187 background: var(--cell-today-bg, #3d2b4d) !important; 4188 color: var(--text-bright, #d4a5ff) !important; 4189 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4190} 4191 4192.eventlist-theme-purple .eventlist-simple-empty, 4193.eventlist-theme-purple .eventlist-simple-empty .eventlist-simple-body { 4194 color: var(--text-dim, #8e7ab8) !important; 4195 -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important; 4196} 4197 4198.eventlist-theme-purple .eventlist-simple-item { 4199 border-bottom-color: var(--border-color, #9b59b6) !important; 4200} 4201 4202.eventlist-theme-purple .eventlist-today-header { 4203 background: var(--cell-bg, #2a2030) !important; 4204 color: var(--text-bright, #d4a5ff) !important; 4205 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4206 border-color: var(--text-bright, #d4a5ff) !important; 4207} 4208 4209.eventlist-theme-purple .eventlist-today-clock { 4210 color: var(--text-bright, #d4a5ff) !important; 4211 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4212} 4213 4214.eventlist-theme-purple .eventlist-today-date { 4215 color: var(--text-dim, #8e7ab8) !important; 4216 -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important; 4217} 4218 4219/* Pink eventlist */ 4220.eventlist-theme-pink .eventlist-simple-title { 4221 color: var(--text-bright, #ff1493) !important; 4222 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4223} 4224 4225.eventlist-theme-pink .eventlist-simple-header { 4226 color: var(--text-primary, #ff69b4) !important; 4227 -webkit-text-fill-color: var(--text-primary, #ff69b4) !important; 4228 background: var(--cell-bg, #1a0d14) !important; 4229} 4230 4231.eventlist-theme-pink .eventlist-simple-time, 4232.eventlist-theme-pink .eventlist-simple-date, 4233.eventlist-theme-pink .eventlist-simple-body { 4234 color: var(--text-dim, #ff85c1) !important; 4235 -webkit-text-fill-color: var(--text-dim, #ff85c1) !important; 4236 background: var(--background-site, #1a0d14) !important; 4237} 4238 4239.eventlist-theme-pink .eventlist-simple-body a { 4240 color: var(--text-bright, #ff1493) !important; 4241 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4242} 4243 4244.eventlist-theme-pink .eventlist-simple-body strong { 4245 color: var(--text-primary, #ff69b4) !important; 4246 -webkit-text-fill-color: var(--text-primary, #ff69b4) !important; 4247} 4248 4249.eventlist-theme-pink .eventlist-simple-body code { 4250 background: var(--cell-bg, #2d1020) !important; 4251 color: var(--text-primary, #ff69b4) !important; 4252 -webkit-text-fill-color: var(--text-primary, #ff69b4) !important; 4253} 4254 4255.eventlist-theme-pink .eventlist-simple-namespace { 4256 background: var(--cell-today-bg, #2d1020) !important; 4257 color: var(--text-bright, #ff1493) !important; 4258 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4259} 4260 4261.eventlist-theme-pink .eventlist-simple-empty, 4262.eventlist-theme-pink .eventlist-simple-empty .eventlist-simple-body { 4263 color: var(--text-dim, #ff85c1) !important; 4264 -webkit-text-fill-color: var(--text-dim, #ff85c1) !important; 4265} 4266 4267.eventlist-theme-pink .eventlist-simple-item { 4268 border-bottom-color: var(--border-color, #ff1493) !important; 4269} 4270 4271.eventlist-theme-pink .eventlist-today-header { 4272 background: var(--cell-bg, #1a0d14) !important; 4273 color: var(--text-bright, #ff1493) !important; 4274 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4275 border-color: var(--text-bright, #ff1493) !important; 4276} 4277 4278.eventlist-theme-pink .eventlist-today-clock { 4279 color: var(--text-bright, #ff1493) !important; 4280 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4281} 4282 4283.eventlist-theme-pink .eventlist-today-date { 4284 color: var(--text-dim, #ff85c1) !important; 4285 -webkit-text-fill-color: var(--text-dim, #ff85c1) !important; 4286} 4287