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-day:focus { 427 outline: 2px solid var(--text-bright, #00cc07); 428 outline-offset: -2px; 429 background: var(--cell-today-bg) !important; 430} 431 432.cal-day:focus-visible { 433 outline: 2px solid var(--text-bright, #00cc07); 434 outline-offset: -2px; 435} 436 437.cal-today { 438 background: var(--cell-today-bg); 439} 440 441.cal-today:hover { 442 box-shadow: inset 0 0 0 2px var(--border-main, rgba(0,0,0,0.15)); 443} 444 445.cal-has-events { 446 /* background removed - set via inline style with template colors */ 447} 448 449.cal-has-events:hover { 450 /* background removed - inline style handles this */ 451} 452 453.day-num { 454 display: inline-block; 455 font-size: 11px; 456 font-weight: 500; 457 color: var(--text-primary, #333); 458 padding: 1px 3px; 459} 460 461.cal-today .day-num, 462.day-num-today { 463 background: var(--border-main, #008800); 464 color: var(--background-site, white) !important; 465 border-radius: 50%; 466 font-weight: 700; 467 width: 20px; 468 height: 20px; 469 line-height: 20px; 470 text-align: center; 471 padding: 0; 472 display: inline-block; 473} 474 475.event-indicators { 476 position: absolute; 477 left: 20px; 478 right: 0; 479 top: 20px; 480 bottom: 2px; 481 display: flex; 482 flex-direction: column; 483 gap: 2px; 484 pointer-events: none; 485 overflow: visible; 486} 487 488.event-bar { 489 width: 100%; 490 min-height: 6px; 491 height: 6px; 492 border-radius: 2px; 493 cursor: pointer; 494 pointer-events: auto; 495 transition: all 0.2s; 496 box-shadow: 0 1px 2px rgba(0,0,0,0.1); 497 position: relative; 498 overflow: visible; 499} 500 501.event-bar:hover { 502 transform: scaleY(1.3); 503 box-shadow: 0 2px 4px rgba(0,0,0,0.2); 504 z-index: 10; 505} 506 507.event-bar-no-time { 508 /* Events without time appear at top */ 509 order: -1; 510 opacity: 0.9; 511} 512 513.event-bar-timed { 514 /* Events with time are sorted by time */ 515 opacity: 0.95; 516} 517 518/* Multi-day event styling - creates visual continuity */ 519.event-bar-continues { 520 /* Event continues from previous day - extend left to cell edge */ 521 border-top-left-radius: 0; 522 border-bottom-left-radius: 0; 523 margin-left: -20px; 524 padding-left: 20px; 525} 526 527.event-bar-continuing { 528 /* Event continues to next day - extend right to cell edge */ 529 border-top-right-radius: 0; 530 border-bottom-right-radius: 0; 531 margin-right: -2px; 532 padding-right: 2px; 533} 534 535.event-bar-continues.event-bar-continuing { 536 /* Event continues both ways (middle of span) - no border radius, extends both sides */ 537 border-radius: 0; 538} 539 540/* Important event bar styling */ 541.event-bar-important { 542 box-shadow: 0 1px 3px rgba(255, 215, 0, 0.4); 543} 544 545/* Star is rendered via ::before pseudo-element */ 546.event-bar-important.event-bar-has-star::before { 547 content: '⭐'; 548 position: absolute; 549 left: -12px; 550 top: 50%; 551 transform: translateY(-50%); 552 font-size: 7px; 553 line-height: 1; 554 filter: drop-shadow(0 0 1px rgba(0,0,0,0.3)); 555 pointer-events: none; 556} 557 558/* Hide the inline star span - we use ::before instead */ 559.event-bar-star { 560 display: none; 561} 562 563/* Old event dot - removing */ 564.event-dot { 565 display: none; 566} 567 568/* Event list header - COMPACT */ 569.event-list-header { 570 display: flex; 571 align-items: center; 572 justify-content: space-between; 573 padding: 8px 10px; 574 border-bottom: 1px solid var(--border-color, #e0e0e0); 575 background: var(--background-header); 576 gap: 6px; 577 flex-wrap: nowrap; 578 overflow: hidden; 579} 580 581.event-list-header-content { 582 display: flex; 583 align-items: center; 584 gap: 6px; 585 flex: 0 0 auto; 586 min-width: 0; 587} 588 589.event-list-header h4 { 590 margin: 0; 591 font-size: 12px; 592 font-weight: 600; 593 color: var(--text-primary); 594 white-space: nowrap; 595} 596 597.namespace-badge { 598 background: var(--cell-today-bg, #e8f5e9); 599 color: var(--text-bright, #388e3c); 600 padding: 2px 6px; 601 border-radius: 10px; 602 font-size: 9px; 603 font-weight: 600; 604 text-transform: uppercase; 605 letter-spacing: 0.3px; 606 border: 1px solid var(--border-color, transparent); 607} 608 609/* Event search bar - inline in header */ 610.event-search-container-inline { 611 position: relative; 612 flex: 1 1 auto; 613 min-width: 60px; 614 max-width: 160px; 615 margin: 0 4px; 616 display: flex; 617 gap: 0; 618} 619 620.event-search-input-inline { 621 flex: 1; 622 padding: 4px 24px 4px 8px; 623 border: 1px solid var(--border-color, #d0d0d0); 624 border-radius: 3px 0 0 3px; 625 font-size: 11px; 626 outline: none; 627 transition: border-color 0.2s, box-shadow 0.2s; 628 background: var(--cell-bg); 629 color: var(--text-primary); 630 min-width: 0; 631} 632 633.event-search-input-inline:focus { 634 border-color: var(--text-bright, #00cc07); 635 box-shadow: 0 0 0 2px var(--shadow-color, rgba(0, 204, 7, 0.1)); 636} 637 638.event-search-input-inline::placeholder { 639 color: var(--text-dim); 640 font-size: 10px; 641} 642 643.event-search-clear-inline { 644 position: absolute; 645 right: 26px; 646 top: 50%; 647 transform: translateY(-50%); 648 background: none; 649 border: none; 650 color: var(--text-dim); 651 cursor: pointer; 652 padding: 2px 4px; 653 font-size: 12px; 654 line-height: 1; 655 transition: color 0.2s; 656} 657 658.event-search-clear-inline:hover { 659 color: var(--text-primary); 660} 661 662.event-search-mode-inline { 663 background: var(--cell-bg, #f0f0f0); 664 border: 1px solid var(--border-color, #d0d0d0); 665 border-left: none; 666 border-radius: 0 3px 3px 0; 667 padding: 0 5px; 668 cursor: pointer; 669 font-size: 10px; 670 transition: all 0.2s; 671 color: var(--text-dim, #666); 672 display: flex; 673 align-items: center; 674 flex-shrink: 0; 675} 676 677.event-search-mode-inline:hover { 678 background: var(--cell-today-bg, #e8f5e9); 679 color: var(--text-bright, #00cc07); 680} 681 682.event-search-mode-inline.all-dates { 683 background: var(--text-bright, #00cc07); 684 color: var(--background-site, white); 685 border-color: var(--text-bright, #00cc07); 686} 687 688.event-search-mode-inline.all-dates:hover { 689 filter: brightness(1.1); 690} 691 692.no-search-results { 693 text-align: center; 694 color: var(--text-dim); 695 font-size: 12px; 696 padding: 20px; 697 font-style: italic; 698} 699 700.add-event-compact { 701 background: var(--border-main); 702 color: var(--background-site); 703 border: none; 704 padding: 4px 8px; 705 border-radius: 3px; 706 font-size: 11px; 707 font-weight: 500; 708 cursor: pointer; 709 transition: all 0.15s; 710 flex-shrink: 0; 711 white-space: nowrap; 712} 713 714.add-event-compact:hover { 715 filter: brightness(1.3); 716 box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3)); 717 transform: scale(1.05); 718} 719 720.add-event-compact:active { 721 filter: brightness(0.85); 722 transform: scale(0.95); 723} 724 725/* Event list scrollable area - COMPACT */ 726.event-list-compact { 727 flex: 1; 728 overflow-y: auto; 729 padding: 6px; 730 background: var(--background-site); 731} 732 733.event-list-compact::-webkit-scrollbar { 734 width: 6px; 735} 736 737.event-list-compact::-webkit-scrollbar-track { 738 background: var(--cell-bg, #f5f5f5); 739} 740 741.event-list-compact::-webkit-scrollbar-thumb { 742 background: var(--border-color, #ccc); 743 border-radius: 3px; 744} 745 746.event-list-compact::-webkit-scrollbar-thumb:hover { 747 background: var(--text-dim, #aaa); 748} 749 750/* Event items in list - SUPER COMPACT with checkbox on right */ 751.event-compact-item { 752 display: flex; 753 align-items: flex-start; 754 margin-bottom: 4px; 755 background-color: var(--background-site); 756 color: var(--text-primary); 757 border: 1px solid var(--border-color, #e0e0e0); 758 border-left: 3px solid var(--text-bright, #3498db); 759 border-radius: 3px; 760 padding: 5px 6px; 761 transition: box-shadow 0.15s, background 0.15s, transform 0.15s; 762 gap: 6px; 763 position: relative; 764} 765 766.event-compact-item:hover { 767 box-shadow: 0 1px 3px rgba(0,0,0,0.08); 768 background-color: var(--background-alt); /* Slightly different on hover */ 769} 770 771.event-highlighted { 772 animation: highlightPulse 0.6s ease-in-out; 773 background: var(--tomorrow-bg, #fff9e6) !important; 774 box-shadow: 0 2px 8px var(--shadow-color, rgba(255, 193, 7, 0.4)) !important; 775} 776 777@keyframes highlightPulse { 778 0% { 779 background: var(--background-site, #ffffff); 780 box-shadow: 0 0 0 rgba(255, 193, 7, 0); 781 } 782 50% { 783 background: #fffbea; 784 box-shadow: 0 4px 12px rgba(255, 193, 7, 0.6); 785 transform: scale(1.02); 786 } 787 100% { 788 background: #fff9e6; 789 box-shadow: 0 2px 8px rgba(255, 193, 7, 0.4); 790 transform: scale(1); 791 } 792} 793 794/* Important namespace event highlighting */ 795.event-important { 796 background: var(--important-bg, rgba(0, 204, 7, 0.06)) !important; 797 border-right: 2px solid var(--important-border, rgba(0, 204, 7, 0.3)); 798} 799 800.event-important:hover { 801 background: var(--important-bg-hover, rgba(0, 204, 7, 0.1)) !important; 802} 803 804.event-important-star { 805 font-size: 10px; 806 flex-shrink: 0; 807} 808 809/* Theme-specific important event colors */ 810.calendar-theme-matrix .event-important, 811.sidebar-matrix .event-important { 812 --important-bg: rgba(0, 204, 7, 0.08); 813 --important-bg-hover: rgba(0, 204, 7, 0.12); 814 --important-border: rgba(0, 204, 7, 0.4); 815} 816 817.calendar-theme-purple .event-important, 818.sidebar-purple .event-important { 819 --important-bg: rgba(156, 39, 176, 0.08); 820 --important-bg-hover: rgba(156, 39, 176, 0.12); 821 --important-border: rgba(156, 39, 176, 0.4); 822} 823 824.calendar-theme-pink .event-important, 825.sidebar-pink .event-important { 826 --important-bg: rgba(255, 105, 180, 0.1); 827 --important-bg-hover: rgba(255, 105, 180, 0.15); 828 --important-border: rgba(255, 105, 180, 0.5); 829} 830 831.calendar-theme-professional .event-important { 832 --important-bg: rgba(33, 150, 243, 0.08); 833 --important-bg-hover: rgba(33, 150, 243, 0.12); 834 --important-border: rgba(33, 150, 243, 0.4); 835} 836 837.calendar-theme-wiki .event-important { 838 --important-bg: rgba(0, 102, 204, 0.06); 839 --important-bg-hover: rgba(0, 102, 204, 0.1); 840 --important-border: rgba(0, 102, 204, 0.3); 841} 842 843.event-completed { 844 opacity: 0.55; 845 background: var(--cell-bg, #f5f5f5); 846} 847 848.event-completed .event-title-compact { 849 text-decoration: line-through; 850 color: var(--text-dim, #999); 851} 852 853.event-past { 854 opacity: 0.35; 855 background: var(--cell-bg, #fafafa); 856 font-size: 10px; 857 padding: 3px 6px; 858 margin-bottom: 2px; 859 cursor: pointer; 860 transition: all 0.2s ease; 861} 862 863.event-past:hover { 864 opacity: 0.6; 865 background: var(--cell-today-bg, #f5f5f5); 866} 867 868.event-past-expanded { 869 opacity: 0.8 !important; 870 background: var(--cell-bg, #f9f9f9) !important; 871 padding: 5px 6px !important; 872 font-size: 12px !important; 873} 874 875.event-past-expanded .event-title-compact { 876 font-size: 12px !important; 877 color: var(--text-dim, #666) !important; 878} 879 880.event-past-expanded .event-date-time { 881 font-size: 11px !important; 882 color: var(--text-dim, #888) !important; 883} 884 885.event-past .event-title-compact { 886 font-size: 10px; 887 color: var(--text-dim, #aaa); 888 font-weight: 400; 889} 890 891.event-past .event-date-time { 892 font-size: 9px; 893 color: var(--text-dim, #bbb); 894} 895 896.event-past .event-action-btn { 897 font-size: 11px; 898 opacity: 0.3; 899} 900 901.event-past .event-action-btn:hover { 902 opacity: 0.7; 903} 904 905.event-today-badge { 906 background: var(--border-main, #9b59b6); 907 color: var(--background-site, white); 908 padding: 1px 4px; 909 border-radius: 3px; 910 font-size: 9px; 911 font-weight: 600; 912 letter-spacing: 0.5px; 913 display: inline-block; 914 vertical-align: middle; 915 margin-left: auto; /* Right-align */ 916 float: right; /* Force to right side */ 917} 918 919.event-pastdue-badge { 920 background: var(--pastdue-color, #e74c3c); 921 color: white; 922 padding: 1px 4px; 923 border-radius: 3px; 924 font-size: 9px; 925 font-weight: 600; 926 letter-spacing: 0.5px; 927 display: inline-block; 928 vertical-align: middle; 929 margin-left: auto; /* Right-align */ 930 float: right; /* Force to right side */ 931} 932 933.event-pastdue { 934 border: 2px solid var(--pastdue-color, #e74c3c) !important; 935 border-radius: 4px; 936 opacity: 1 !important; 937} 938 939.event-namespace-badge { 940 background: var(--text-bright, #008800); 941 color: var(--background-site, white); 942 padding: 1px 4px; 943 border-radius: 3px; 944 font-size: 9px; 945 font-weight: 500; 946 display: inline-block; 947 vertical-align: middle; 948 margin-left: 4px; 949 cursor: pointer; 950 transition: all 0.15s; 951} 952 953.event-namespace-badge:hover { 954 filter: brightness(1.3); 955} 956 957.event-conflict-badge { 958 background: var(--border-main, #ff9800); 959 color: var(--background-site, white); 960 padding: 0px 4px; 961 border-radius: 2px; 962 font-size: 9px; 963 display: inline-block; 964 vertical-align: middle; 965 margin-left: 3px; 966 cursor: help; 967 animation: pulse-warning 2s infinite; 968 line-height: 14px; 969 border: 1px solid var(--text-bright, #ff9800); 970} 971 972@keyframes pulse-warning { 973 0%, 100% { 974 opacity: 1; 975 } 976 50% { 977 opacity: 0.7; 978 } 979} 980 981.event-conflict-badge:hover { 982 background: var(--text-bright, #f57c00); 983 animation: none; 984} 985 986/* Custom conflict tooltip - SMALLER FOR MAIN CALENDAR */ 987.conflict-tooltip { 988 position: fixed; 989 z-index: 10000; 990 background: var(--background-site, white); 991 border: 1px solid var(--border-main, #ff9800); 992 border-radius: 3px; 993 box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2)); 994 padding: 0; 995 min-width: 120px; 996 max-width: 200px; 997 opacity: 0; 998 transition: opacity 0.2s; 999 pointer-events: none; 1000} 1001 1002/* Custom tooltip that appears above and to the left - FIXED POSITION */ 1003[data-tooltip] { 1004 position: relative; 1005 cursor: help; 1006} 1007 1008[data-tooltip]:before { 1009 content: attr(data-tooltip); 1010 position: fixed; 1011 padding: 3px 6px; 1012 background: rgba(0, 0, 0, 0.95); 1013 color: var(--background-site, #fff); 1014 font-size: 9px; 1015 line-height: 1.3; 1016 white-space: pre-line; 1017 border-radius: 3px; 1018 opacity: 0; 1019 pointer-events: none; 1020 transition: opacity 0.2s; 1021 min-width: 120px; 1022 max-width: 200px; 1023 z-index: 10000; 1024 text-align: left; 1025 box-shadow: 0 2px 8px rgba(0,0,0,0.3); 1026} 1027 1028[data-tooltip]:hover:before { 1029 opacity: 1; 1030} 1031 1032/* Pink theme tooltips - with hearts! */ 1033.sidebar-pink [data-tooltip]:before { 1034 background: linear-gradient(135deg, #ff1493 0%, #ff69b4 100%); 1035 color: #fff; 1036 border: 2px solid #ff85c1; 1037 box-shadow: 0 0 15px rgba(255, 20, 147, 0.6), 0 4px 12px rgba(0, 0, 0, 0.4); 1038 font-weight: 600; 1039} 1040 1041.sidebar-pink [data-tooltip]:after { 1042 content: ''; 1043 position: fixed; 1044 font-size: 12px; 1045 opacity: 0; 1046 pointer-events: none; 1047 transition: opacity 0.2s; 1048 z-index: 10001; 1049 filter: drop-shadow(0 0 3px rgba(255, 20, 147, 0.8)); 1050} 1051 1052.sidebar-pink [data-tooltip]:hover:after { 1053 opacity: 1; 1054} 1055 1056/* Position data-tooltip with JavaScript for no cutoff */ 1057.data-tooltip-positioned:before { 1058 /* Position set by JavaScript */ 1059} 1060 1061/* Allow sidebar to overflow for tooltips */ 1062.sidebar-widget, 1063.sidebar-matrix { 1064 overflow: visible !important; 1065} 1066 1067.conflict-tooltip-header { 1068 background: var(--border-main, #ff9800); 1069 color: var(--background-site, white); 1070 padding: 4px 8px; 1071 font-weight: 600; 1072 font-size: 10px; 1073 border-radius: 2px 2px 0 0; 1074} 1075 1076.conflict-tooltip-body { 1077 padding: 6px 8px; 1078 font-size: 9px; 1079 line-height: 1.4; 1080} 1081 1082.conflict-item { 1083 padding: 2px 0; 1084 color: var(--text-primary, #333); 1085 border-bottom: 1px solid var(--border-color, #f0f0f0); 1086 font-size: 9px; 1087} 1088 1089.conflict-item:last-child { 1090 border-bottom: none; 1091} 1092 1093.event-info { 1094 flex: 1; 1095 min-width: 0; 1096 padding-right: 60px; 1097 text-align: left; 1098} 1099 1100.event-title-row { 1101 display: flex; 1102 align-items: center; 1103 gap: 4px; 1104} 1105 1106.event-title-compact { 1107 font-size: 12px; 1108 font-weight: 600; 1109 color: var(--text-primary, #2c3e50); 1110 overflow: hidden; 1111 text-overflow: ellipsis; 1112 white-space: nowrap; 1113 text-align: left; 1114} 1115 1116.event-meta-compact { 1117 font-size: 10px; 1118 color: var(--text-dim, #666); 1119 margin-top: 1px; 1120 text-align: left; 1121} 1122 1123.event-date-time { 1124 font-weight: 500; 1125} 1126 1127.event-desc-compact { 1128 font-size: 10px; 1129 color: var(--text-dim, #666); 1130 line-height: 1.4; 1131 margin-top: 2px; 1132 text-align: left; 1133 word-wrap: break-word; 1134 overflow-wrap: break-word; 1135} 1136 1137.event-desc-compact img.event-image { 1138 max-width: 100%; 1139 height: auto; 1140 margin: 4px 0; 1141 border-radius: 3px; 1142 display: block; 1143} 1144 1145.event-desc-compact a { 1146 color: var(--text-bright, #008800); 1147 text-decoration: none; 1148 border-bottom: 1px dotted var(--text-bright, #008800); 1149} 1150 1151.event-desc-compact a:hover { 1152 color: var(--text-primary, #388e3c); 1153 border-bottom-style: solid; 1154} 1155 1156.event-desc-compact strong, 1157.event-desc-compact b { 1158 font-weight: 600; 1159 color: var(--text-primary, #333); 1160} 1161 1162.event-desc-compact em, 1163.event-desc-compact i { 1164 font-style: italic; 1165} 1166 1167.event-desc-compact code { 1168 background: var(--cell-bg, #f5f5f5); 1169 padding: 1px 3px; 1170 border-radius: 2px; 1171 font-family: monospace; 1172 font-size: 9px; 1173 color: var(--text-primary, inherit); 1174} 1175 1176.event-actions-compact { 1177 position: absolute; 1178 top: 5px; 1179 right: 24px; 1180 display: flex; 1181 gap: 2px; 1182 flex-shrink: 0; 1183} 1184 1185.event-action-btn { 1186 background: none; 1187 border: none; 1188 font-size: 14px; 1189 cursor: pointer; 1190 padding: 2px; 1191 opacity: 0.5; 1192 transition: opacity 0.15s, transform 0.15s; 1193} 1194 1195.event-action-btn:hover { 1196 opacity: 1; 1197 transform: scale(1.15); 1198} 1199 1200.task-checkbox { 1201 position: absolute; 1202 top: 5px; 1203 right: 6px; 1204 width: 16px; 1205 height: 16px; 1206 margin: 0; 1207 cursor: pointer; 1208 flex-shrink: 0; 1209 accent-color: var(--text-bright, #008800); 1210 /* Custom checkbox - bright border for all themes */ 1211 appearance: none; 1212 -webkit-appearance: none; 1213 border: 2px solid var(--text-bright, #008800); 1214 border-radius: 3px; 1215 background: var(--cell-bg, #fff); 1216 transition: all 0.15s; 1217 box-shadow: 0 0 3px var(--shadow-color, rgba(0,0,0,0.1)); 1218} 1219 1220.task-checkbox:hover { 1221 border-color: var(--text-bright, #008800); 1222 box-shadow: 0 0 8px var(--shadow-color, rgba(0,0,0,0.25)); 1223 transform: scale(1.1); 1224} 1225 1226.task-checkbox:checked { 1227 background: var(--text-bright, #008800); 1228 border-color: var(--text-bright, #008800); 1229 box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.2)); 1230} 1231 1232.task-checkbox:checked::after { 1233 content: '✓'; 1234 display: block; 1235 text-align: center; 1236 color: var(--background-site, white); 1237 font-size: 11px; 1238 font-weight: 700; 1239 line-height: 12px; 1240} 1241 1242.no-events-msg { 1243 text-align: center; 1244 color: var(--text-dim, #999); 1245 font-size: 12px; 1246 font-style: italic; 1247 padding: 40px 20px; 1248} 1249 1250/* Sleek Event Dialog - FULLY RESPONSIVE */ 1251.event-dialog-compact { 1252 position: fixed; 1253 top: 0; 1254 left: 0; 1255 width: 100%; 1256 height: 100%; 1257 z-index: 9999; 1258 display: flex; 1259 align-items: center; 1260 justify-content: center; 1261 animation: fadeIn 0.2s ease; 1262 padding: 20px; 1263 box-sizing: border-box; 1264 overflow-y: auto; 1265} 1266 1267@keyframes fadeIn { 1268 from { opacity: 0; } 1269 to { opacity: 1; } 1270} 1271 1272.dialog-content-sleek { 1273 position: relative; 1274 background: var(--background-site, #ffffff); 1275 width: 100%; 1276 max-width: 450px; 1277 max-height: calc(100vh - 40px); 1278 border-radius: 8px; 1279 box-shadow: 0 8px 32px var(--shadow-color, rgba(0,0,0,0.2)); 1280 z-index: 10000; 1281 animation: slideUp 0.3s ease; 1282 overflow: hidden; 1283 display: flex; 1284 flex-direction: column; 1285 margin: auto; 1286 border: 1px solid var(--border-main, transparent); 1287} 1288 1289/* Mobile responsive dialog */ 1290@media (max-width: 768px) { 1291 .event-dialog-compact { 1292 padding: 10px; 1293 } 1294 1295 .dialog-content-sleek { 1296 max-width: 100%; 1297 width: calc(100% - 20px); 1298 max-height: calc(100vh - 20px); 1299 } 1300} 1301 1302@media (max-width: 480px) { 1303 .event-dialog-compact { 1304 padding: 0; 1305 align-items: flex-start; 1306 } 1307 1308 .dialog-content-sleek { 1309 width: 100%; 1310 max-width: 100%; 1311 max-height: 100vh; 1312 border-radius: 0; 1313 margin: 0; 1314 } 1315} 1316 1317@keyframes slideUp { 1318 from { 1319 transform: translateY(20px); 1320 opacity: 0; 1321 } 1322 to { 1323 transform: translateY(0); 1324 opacity: 1; 1325 } 1326} 1327 1328.dialog-header-sleek { 1329 display: flex; 1330 align-items: center; 1331 justify-content: space-between; 1332 padding: 10px 14px; 1333 background: var(--background-header, #2c3e50); 1334 color: var(--text-bright, white); 1335 cursor: move; 1336 flex-shrink: 0; 1337 border-bottom: 1px solid var(--border-main, transparent); 1338} 1339 1340.dialog-drag-handle { 1341 cursor: move; 1342} 1343 1344.dialog-header-sleek h3 { 1345 margin: 0; 1346 font-size: 15px; 1347 font-weight: 600; 1348} 1349 1350.dialog-close-btn { 1351 background: var(--cell-today-bg, rgba(255,255,255,0.2)); 1352 border: none; 1353 color: white; 1354 font-size: 22px; 1355 width: 28px; 1356 height: 28px; 1357 border-radius: 50%; 1358 cursor: pointer; 1359 display: flex; 1360 align-items: center; 1361 justify-content: center; 1362 transition: all 0.2s; 1363 line-height: 1; 1364 padding: 0; 1365 flex-shrink: 0; 1366} 1367 1368.dialog-close-btn:hover { 1369 background: var(--cell-today-bg, rgba(255,255,255,0.3)); 1370 transform: scale(1.1); 1371} 1372 1373.sleek-form { 1374 padding: 10px 12px; 1375 overflow-y: auto; 1376 overflow-x: hidden; 1377 flex: 1; 1378 max-height: calc(100vh - 160px); 1379 background: var(--background-site, #ffffff); 1380} 1381 1382/* Ensure form is scrollable on small screens */ 1383@media (max-height: 600px) { 1384 .sleek-form { 1385 max-height: calc(100vh - 120px); 1386 } 1387} 1388 1389@media (max-height: 500px) { 1390 .sleek-form { 1391 max-height: calc(100vh - 100px); 1392 } 1393} 1394 1395/* Mobile: reduce form padding to maximize field width */ 1396@media (max-width: 480px) { 1397 .sleek-form { 1398 padding: 8px; 1399 } 1400 1401 .sleek-form .form-field { 1402 margin-bottom: 8px; 1403 } 1404 1405 .sleek-form .input-sleek, 1406 .sleek-form .textarea-sleek, 1407 .sleek-form textarea, 1408 .sleek-form select { 1409 width: 100% !important; 1410 max-width: 100% !important; 1411 box-sizing: border-box !important; 1412 } 1413 1414 .sleek-form .form-row-group { 1415 gap: 6px; 1416 } 1417} 1418 1419.form-field { 1420 margin-bottom: 6px; 1421} 1422 1423/* Compact form elements */ 1424.input-compact { 1425 height: 30px !important; 1426 padding: 4px 8px !important; 1427 font-size: 11px !important; 1428} 1429 1430.textarea-compact { 1431 min-height: 28px !important; 1432 padding: 4px 8px !important; 1433 font-size: 11px !important; 1434 line-height: 1.3 !important; 1435} 1436 1437.field-label-compact { 1438 font-size: 10px !important; 1439 margin-bottom: 2px !important; 1440 font-weight: 500; 1441 color: var(--text-dim, #555); 1442} 1443 1444.form-field-checkbox-compact { 1445 padding: 4px 8px !important; 1446 margin-bottom: 6px !important; 1447} 1448 1449.checkbox-label-compact { 1450 font-size: 10px !important; 1451 gap: 4px !important; 1452} 1453 1454.checkbox-label-compact input[type="checkbox"] { 1455 width: 13px !important; 1456 height: 13px !important; 1457 accent-color: var(--text-bright, #008800); 1458} 1459 1460.color-picker-compact { 1461 height: 30px !important; 1462} 1463 1464/* Responsive form fields */ 1465@media (max-width: 480px) { 1466 .form-field { 1467 margin-bottom: 8px; 1468 } 1469} 1470 1471.form-field-checkbox { 1472 background: var(--cell-bg, #f1f8f4); 1473 padding: 8px; 1474 border-radius: 4px; 1475 border: 1px solid var(--border-main, #008800); 1476} 1477 1478.checkbox-label { 1479 display: flex; 1480 align-items: center; 1481 gap: 6px; 1482 cursor: pointer; 1483 font-size: 11px; 1484 font-weight: 500; 1485 color: var(--text-primary, #388e3c); 1486} 1487 1488.checkbox-label input[type="checkbox"] { 1489 width: 15px; 1490 height: 15px; 1491 cursor: pointer; 1492 accent-color: var(--text-bright, #008800); 1493} 1494 1495.recurring-options { 1496 background: var(--cell-bg, #f1f8f4); 1497 padding: 12px; 1498 border-radius: 4px; 1499 border: 1px solid var(--border-main, #81c784); 1500 margin-top: 8px; 1501} 1502 1503.form-row-group { 1504 display: grid; 1505 grid-template-columns: 1fr 1fr; 1506 gap: 10px; 1507 margin-bottom: 10px; 1508} 1509 1510@media (max-width: 768px) { 1511 .form-row-group { 1512 grid-template-columns: 1fr; 1513 gap: 8px; 1514 } 1515} 1516 1517.field-label { 1518 display: block; 1519 font-size: 11px; 1520 font-weight: 600; 1521 color: var(--text-primary, #2c3e50); 1522 margin-bottom: 5px; 1523 text-transform: uppercase; 1524 letter-spacing: 0.3px; 1525} 1526 1527@media (max-width: 480px) { 1528 .field-label { 1529 font-size: 10px; 1530 } 1531} 1532 1533.input-sleek { 1534 width: 100%; 1535 color: var(--text-primary, #333); 1536 padding: 8px 10px; 1537 border: 2px solid var(--border-color, #e0e0e0); 1538 border-radius: 4px; 1539 font-size: 13px; 1540 font-family: inherit; 1541 /* Use specific transitions instead of 'all' to avoid dropdown rendering issues */ 1542 transition: border-color 0.2s, background-color 0.2s, box-shadow 0.2s; 1543 background: var(--cell-bg, #fafafa); 1544 box-sizing: border-box; 1545} 1546 1547.input-sleek:focus { 1548 outline: none; 1549 border-color: var(--text-bright, #008800); 1550 background: var(--background-site, white); 1551 box-shadow: 0 0 0 3px var(--shadow-color, rgba(33, 150, 243, 0.1)); 1552} 1553 1554.input-sleek::placeholder, 1555.textarea-sleek::placeholder { 1556 color: var(--text-dim, #999); 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/* Custom Time Picker Styles */ 1584.custom-time-picker, 1585.custom-date-picker { 1586 display: flex; 1587 justify-content: space-between; 1588 align-items: center; 1589 cursor: pointer; 1590 text-align: left; 1591 background: var(--cell-bg, #fafafa); 1592 min-width: 120px; 1593 position: relative; 1594} 1595 1596.custom-time-picker:disabled, 1597.custom-date-picker:disabled { 1598 opacity: 0.6; 1599 cursor: not-allowed; 1600} 1601 1602.custom-time-picker:focus, 1603.custom-date-picker:focus { 1604 outline: 2px solid var(--text-bright, #00cc07); 1605 outline-offset: -2px; 1606} 1607 1608.custom-time-picker:focus-visible, 1609.custom-date-picker:focus-visible { 1610 outline: 2px solid var(--text-bright, #00cc07); 1611 outline-offset: -2px; 1612} 1613 1614.custom-time-picker .time-display, 1615.custom-date-picker .date-display { 1616 flex: 1; 1617} 1618 1619.custom-time-picker .time-arrow, 1620.custom-date-picker .date-arrow { 1621 font-size: 10px; 1622 margin-left: 8px; 1623 opacity: 0.6; 1624} 1625 1626.custom-time-picker.open .time-arrow, 1627.custom-date-picker.open .date-arrow { 1628 transform: rotate(180deg); 1629} 1630 1631.time-picker-wrapper, 1632.date-picker-wrapper { 1633 position: relative; 1634} 1635 1636.time-dropdown, 1637.date-dropdown { 1638 display: none; 1639 position: absolute; 1640 top: 100%; 1641 left: 0; 1642 right: 0; 1643 max-height: 280px; 1644 overflow-y: auto; 1645 background: var(--background-site, white); 1646 border: 2px solid var(--border-color, #e0e0e0); 1647 border-top: none; 1648 border-radius: 0 0 6px 6px; 1649 z-index: 10000; 1650 box-shadow: 0 4px 12px rgba(0,0,0,0.15); 1651} 1652 1653.date-dropdown { 1654 min-width: 280px; 1655 max-height: none; 1656 overflow: visible; 1657} 1658 1659/* Start date dropdown (first half) expands to the right */ 1660.form-field-half:first-child .date-dropdown { 1661 left: 0; 1662 right: auto; 1663} 1664 1665/* End date dropdown (second half) expands to the left to avoid overflow */ 1666.form-field-half:last-child .date-dropdown, 1667.form-field-half:nth-child(2) .date-dropdown { 1668 right: 0; 1669 left: auto; 1670} 1671 1672.time-dropdown.open, 1673.date-dropdown.open { 1674 display: block; 1675} 1676 1677/* Date Picker Calendar Grid */ 1678.date-picker-calendar { 1679 padding: 8px; 1680} 1681 1682.date-picker-header { 1683 display: flex; 1684 justify-content: space-between; 1685 align-items: center; 1686 padding: 8px 4px; 1687 margin-bottom: 8px; 1688 border-bottom: 1px solid var(--border-color, #e0e0e0); 1689} 1690 1691.date-picker-title { 1692 font-weight: 600; 1693 font-size: 14px; 1694 color: var(--text-primary, #333); 1695} 1696 1697.date-picker-nav { 1698 background: transparent; 1699 border: none; 1700 cursor: pointer; 1701 padding: 4px 8px; 1702 font-size: 16px; 1703 color: var(--text-dim, #666); 1704 border-radius: 4px; 1705} 1706 1707.date-picker-nav:hover { 1708 background: var(--cell-today-bg, rgba(0, 200, 0, 0.1)); 1709 color: var(--text-bright, #00cc07); 1710} 1711 1712.date-picker-weekdays { 1713 display: grid; 1714 grid-template-columns: repeat(7, 1fr); 1715 gap: 2px; 1716 margin-bottom: 4px; 1717} 1718 1719.date-picker-weekday { 1720 text-align: center; 1721 font-size: 11px; 1722 font-weight: 600; 1723 color: var(--text-dim, #666); 1724 padding: 4px 0; 1725} 1726 1727.date-picker-days { 1728 display: grid; 1729 grid-template-columns: repeat(7, 1fr); 1730 gap: 2px; 1731} 1732 1733.date-picker-day { 1734 text-align: center; 1735 padding: 8px 4px; 1736 cursor: pointer; 1737 border-radius: 4px; 1738 font-size: 13px; 1739 color: var(--text-primary, #333); 1740 background: transparent; 1741 border: none; 1742} 1743 1744.date-picker-day:hover { 1745 background: var(--cell-today-bg, rgba(0, 200, 0, 0.1)); 1746} 1747 1748.date-picker-day.other-month { 1749 color: var(--text-dim, #999); 1750 opacity: 0.5; 1751} 1752 1753.date-picker-day.today { 1754 font-weight: bold; 1755 color: var(--text-bright, #00cc07); 1756} 1757 1758.date-picker-day.selected { 1759 background: var(--text-bright, #00cc07); 1760 color: white; 1761} 1762 1763.date-picker-day.disabled { 1764 opacity: 0.3; 1765 cursor: not-allowed; 1766} 1767 1768.date-picker-clear { 1769 display: block; 1770 width: 100%; 1771 padding: 8px; 1772 margin-top: 8px; 1773 border: none; 1774 background: var(--background-alt, #f5f5f5); 1775 color: var(--text-dim, #666); 1776 cursor: pointer; 1777 border-radius: 4px; 1778 font-size: 12px; 1779} 1780 1781.date-picker-clear:hover { 1782 background: var(--cell-today-bg, rgba(0, 200, 0, 0.1)); 1783 color: var(--text-bright, #00cc07); 1784} 1785 1786.time-dropdown-section { 1787 padding: 4px 0; 1788 border-bottom: 1px solid var(--border-color, #e0e0e0); 1789} 1790 1791.time-dropdown-section:last-child { 1792 border-bottom: none; 1793} 1794 1795.time-dropdown-header { 1796 padding: 6px 12px; 1797 font-size: 11px; 1798 font-weight: 600; 1799 color: var(--text-dim, #666); 1800 background: var(--background-alt, #f5f5f5); 1801 text-transform: uppercase; 1802 letter-spacing: 0.5px; 1803} 1804 1805.time-option { 1806 padding: 8px 12px; 1807 cursor: pointer; 1808 font-size: 13px; 1809 color: var(--text-primary, #333); 1810 transition: background 0.1s; 1811} 1812 1813.time-option:hover { 1814 background: var(--cell-today-bg, rgba(0, 200, 0, 0.1)); 1815} 1816 1817.time-option.selected { 1818 background: var(--text-bright, #00cc07); 1819 color: white; 1820} 1821 1822.time-option.disabled { 1823 opacity: 0.4; 1824 cursor: not-allowed; 1825 pointer-events: none; 1826} 1827 1828.color-picker-input { 1829 width: 45px; 1830 height: 38px; 1831 border: 2px solid var(--border-color, #e0e0e0); 1832 border-radius: 6px; 1833 cursor: pointer; 1834 padding: 2px; 1835 display: none; 1836} 1837 1838.color-picker-input:hover { 1839 border-color: var(--text-bright, #4CAF50); 1840} 1841 1842.input-color-sleek { 1843 width: 50px; 1844 height: 38px; 1845 border: 2px solid var(--border-color, #e0e0e0); 1846 border-radius: 6px; 1847 cursor: pointer; 1848 transition: all 0.2s; 1849} 1850 1851.input-color-sleek:hover { 1852 border-color: var(--text-bright, #008800); 1853 transform: scale(1.05); 1854} 1855 1856.color-label { 1857 font-size: 11px; 1858 color: var(--text-dim, #666); 1859} 1860 1861.form-row-group { 1862 display: grid; 1863 grid-template-columns: 2fr 1fr; 1864 gap: 16px; 1865 margin-bottom: 20px; 1866} 1867 1868.field-label { 1869 display: block; 1870 font-size: 13px; 1871 font-weight: 600; 1872 color: var(--text-primary, #2c3e50); 1873 margin-bottom: 8px; 1874 text-transform: uppercase; 1875 letter-spacing: 0.5px; 1876} 1877 1878.input-sleek { 1879 width: 100%; 1880 color: var(--text-primary, #333); 1881 padding: 12px 16px; 1882 border: 2px solid var(--border-color, #e0e0e0); 1883 border-radius: 8px; 1884 font-size: 15px; 1885 font-family: inherit; 1886 /* Use specific transitions instead of 'all' to avoid dropdown rendering issues */ 1887 transition: border-color 0.2s, background-color 0.2s, box-shadow 0.2s; 1888 background: var(--cell-bg, #fafafa); 1889 box-sizing: border-box; 1890} 1891 1892.input-sleek:focus { 1893 outline: none; 1894 border-color: var(--text-bright, #667eea); 1895 background: var(--background-site, white); 1896 box-shadow: 0 0 0 3px var(--shadow-color, rgba(102, 126, 234, 0.1)); 1897} 1898 1899.textarea-sleek { 1900 resize: vertical; 1901 min-height: 80px; 1902 line-height: 1.5; 1903} 1904 1905.color-picker-container { 1906 display: flex; 1907 align-items: center; 1908 gap: 12px; 1909} 1910 1911.input-color-sleek { 1912 width: 60px; 1913 height: 44px; 1914 border: 2px solid var(--border-color, #e0e0e0); 1915 border-radius: 8px; 1916 cursor: pointer; 1917 transition: all 0.2s; 1918} 1919 1920.input-color-sleek:hover { 1921 border-color: var(--text-bright, #667eea); 1922 transform: scale(1.05); 1923} 1924 1925.color-label { 1926 font-size: 13px; 1927 color: var(--text-dim, #666); 1928} 1929 1930.form-field-checkbox { 1931 background: var(--cell-bg, #f1f8f4); 1932 padding: 12px; 1933 border-radius: 6px; 1934 border: 1px solid var(--border-main, #008800); 1935} 1936 1937.checkbox-label { 1938 display: flex; 1939 align-items: center; 1940 gap: 8px; 1941 cursor: pointer; 1942 font-size: 13px; 1943 font-weight: 500; 1944 color: var(--text-primary, #388e3c); 1945} 1946 1947.checkbox-label input[type="checkbox"] { 1948 width: 18px; 1949 height: 18px; 1950 cursor: pointer; 1951 accent-color: var(--text-bright, #008800); 1952} 1953 1954.form-row-group { 1955 display: grid; 1956 grid-template-columns: 1fr 1fr; 1957 gap: 12px; 1958 margin-bottom: 16px; 1959} 1960 1961@media (max-width: 768px) { 1962 .form-row-group { 1963 grid-template-columns: 1fr; 1964 } 1965} 1966 1967.dialog-actions-sleek { 1968 display: flex; 1969 gap: 8px; 1970 padding: 12px 14px; 1971 background: var(--cell-bg, #f8f9fa); 1972 border-top: 1px solid var(--border-color, #e0e0e0); 1973 justify-content: flex-end; 1974 flex-shrink: 0; 1975} 1976 1977/* Ensure buttons are visible on small screens */ 1978@media (max-width: 480px) { 1979 .dialog-actions-sleek { 1980 padding: 10px; 1981 } 1982 1983 .btn-sleek { 1984 flex: 1; 1985 justify-content: center; 1986 } 1987} 1988 1989.btn-sleek { 1990 padding: 7px 14px; 1991 border: none; 1992 border-radius: 4px; 1993 font-size: 12px; 1994 font-weight: 600; 1995 cursor: pointer; 1996 transition: all 0.2s; 1997 display: inline-flex; 1998 align-items: center; 1999 gap: 4px; 2000} 2001 2002.btn-cancel-sleek { 2003 background: var(--border-color, #e0e0e0); 2004 color: var(--text-dim, #555); 2005} 2006 2007.btn-cancel-sleek:hover { 2008 filter: brightness(1.2); 2009 box-shadow: 0 0 4px var(--shadow-color, rgba(0,0,0,0.15)); 2010} 2011 2012.btn-save-sleek { 2013 background: var(--text-bright, #008800); 2014 color: var(--background-site, white); 2015 box-shadow: 0 2px 4px var(--shadow-color, rgba(0,0,0,0.2)); 2016} 2017 2018.btn-save-sleek:hover { 2019 filter: brightness(1.3); 2020 box-shadow: 0 4px 8px var(--shadow-color, rgba(0,0,0,0.3)); 2021} 2022 2023.btn-save-sleek:active { 2024 transform: translateY(1px); 2025 filter: brightness(0.9); 2026} 2027 2028/* Day popup */ 2029.day-popup { 2030 position: fixed; 2031 top: 0; 2032 left: 0; 2033 width: 100%; 2034 height: 100%; 2035 z-index: 10000; 2036 display: flex; 2037 align-items: center; 2038 justify-content: center; 2039 padding: 20px; 2040 box-sizing: border-box; 2041} 2042 2043.day-popup-overlay { 2044 position: absolute; 2045 top: 0; 2046 left: 0; 2047 width: 100%; 2048 height: 100%; 2049 background: rgba(0,0,0,0.5); 2050} 2051 2052.day-popup-content { 2053 position: relative; 2054 background: var(--background-site, white); 2055 width: 100%; 2056 max-width: 450px; 2057 max-height: calc(100vh - 40px); 2058 border-radius: 8px; 2059 box-shadow: 0 4px 20px var(--shadow-color, rgba(0,0,0,0.3)); 2060 z-index: 10001; 2061 display: flex; 2062 flex-direction: column; 2063 border: 1px solid var(--border-main, transparent); 2064} 2065 2066/* Responsive day popup */ 2067@media (max-width: 768px) { 2068 .day-popup { 2069 padding: 10px; 2070 } 2071 2072 .day-popup-content { 2073 max-width: 100%; 2074 max-height: calc(100vh - 20px); 2075 } 2076} 2077 2078@media (max-width: 480px) { 2079 .day-popup { 2080 padding: 0; 2081 } 2082 2083 .day-popup-content { 2084 width: 100%; 2085 max-width: 100%; 2086 max-height: 100vh; 2087 border-radius: 0; 2088 } 2089} 2090 2091.day-popup-header { 2092 display: flex; 2093 align-items: center; 2094 justify-content: space-between; 2095 padding: 10px 14px; 2096 border-bottom: 2px solid var(--border-main, #e0e0e0); 2097 background: var(--background-header, #fafafa); 2098 border-radius: 8px 8px 0 0; 2099 cursor: move; 2100 user-select: none; 2101} 2102 2103.day-popup-header h4 { 2104 margin: 0; 2105 font-size: 15px; 2106 font-weight: 600; 2107 color: var(--text-primary, #2c3e50); 2108 pointer-events: none; 2109} 2110 2111.popup-close { 2112 background: none; 2113 border: none; 2114 font-size: 24px; 2115 color: var(--text-dim, #999); 2116 cursor: pointer; 2117 width: 28px; 2118 height: 28px; 2119 display: flex; 2120 align-items: center; 2121 justify-content: center; 2122 border-radius: 4px; 2123 transition: all 0.15s; 2124 line-height: 1; 2125 padding: 0; 2126} 2127 2128.popup-close:hover { 2129 background: var(--cell-bg, #f0f0f0); 2130 color: var(--text-primary, #333); 2131} 2132 2133.day-popup-body { 2134 flex: 1; 2135 overflow-y: auto; 2136 padding: 10px 14px; 2137 max-height: 400px; 2138} 2139 2140.popup-events-list { 2141 display: flex; 2142 flex-direction: column; 2143 gap: 6px; 2144} 2145 2146.popup-continuation-notice { 2147 font-size: 10px; 2148 color: var(--text-dim, #666); 2149 background: var(--cell-bg, #f0f0f0); 2150 padding: 3px 8px; 2151 border-radius: 3px; 2152 margin-bottom: 4px; 2153 border-left: 3px solid var(--text-bright, #00cc07); 2154 font-weight: 500; 2155} 2156 2157.popup-event-item { 2158 display: flex; 2159 background: var(--cell-bg, #f8f9fa); 2160 border: 1px solid var(--border-color, #e0e0e0); 2161 border-radius: 4px; 2162 overflow: visible; 2163 transition: box-shadow 0.15s; 2164} 2165 2166.popup-event-item:hover { 2167 box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.1)); 2168} 2169 2170.popup-event-item:focus { 2171 outline: 2px solid var(--text-bright, #00cc07); 2172 outline-offset: 1px; 2173} 2174 2175.popup-event-item:focus-visible { 2176 outline: 2px solid var(--text-bright, #00cc07); 2177 outline-offset: 1px; 2178} 2179 2180/* Important event highlighting in day popup */ 2181.popup-event-item.popup-event-important { 2182 background: linear-gradient(135deg, rgba(255, 215, 0, 0.15), rgba(255, 193, 7, 0.08)); 2183 border-color: rgba(255, 193, 7, 0.5); 2184 box-shadow: 0 0 8px rgba(255, 193, 7, 0.3); 2185} 2186 2187.popup-event-item.popup-event-important:hover { 2188 box-shadow: 0 2px 12px rgba(255, 193, 7, 0.4); 2189} 2190 2191.popup-event-content { 2192 flex: 1; 2193 padding: 6px 10px; 2194 min-width: 0; 2195} 2196 2197.popup-event-main-row { 2198 display: flex; 2199 align-items: flex-start; 2200 justify-content: space-between; 2201 gap: 8px; 2202 flex-wrap: wrap; 2203} 2204 2205.popup-event-info-inline { 2206 display: flex; 2207 align-items: center; 2208 gap: 6px; 2209 flex: 1; 2210 min-width: 0; 2211 flex-wrap: wrap; 2212} 2213 2214.popup-event-star { 2215 font-size: 12px; 2216 flex-shrink: 0; 2217 line-height: 1; 2218} 2219 2220.popup-event-title { 2221 font-size: 13px; 2222 font-weight: 600; 2223 color: var(--text-primary, #2c3e50); 2224 word-break: break-word; 2225 flex: 1 1 auto; 2226 min-width: 100px; 2227} 2228 2229/* When star is present, keep star and title together */ 2230.popup-event-star + .popup-event-title { 2231 flex: 1 1 auto; 2232} 2233 2234.popup-event-time { 2235 font-size: 11px; 2236 color: var(--text-bright, #008800); 2237 font-weight: 500; 2238 white-space: nowrap; 2239 flex-shrink: 0; 2240} 2241 2242.popup-event-multiday { 2243 font-size: 11px; 2244 color: var(--text-dim, #666); 2245 font-weight: 500; 2246 white-space: nowrap; 2247 flex-shrink: 0; 2248} 2249 2250.popup-event-namespace { 2251 font-size: 10px; 2252 color: var(--background-site, #fff); 2253 background: var(--text-bright, #008800); 2254 padding: 2px 6px; 2255 border-radius: 3px; 2256 font-weight: 500; 2257 white-space: nowrap; 2258 flex-shrink: 0; 2259} 2260 2261.popup-event-desc { 2262 font-size: 11px; 2263 color: var(--text-dim, #666); 2264 line-height: 1.4; 2265 margin-top: 4px; 2266 padding-left: 0; 2267} 2268 2269.popup-event-actions { 2270 display: flex; 2271 gap: 4px; 2272 flex-shrink: 0; 2273 align-self: flex-start; 2274} 2275 2276.event-edit-btn, 2277.event-delete-btn { 2278 background: none; 2279 border: none; 2280 font-size: 16px; 2281 cursor: pointer; 2282 padding: 4px; 2283 border-radius: 3px; 2284 transition: background 0.15s; 2285 line-height: 1; 2286 width: 32px; 2287 height: 32px; 2288 min-width: 32px; 2289 min-height: 32px; 2290 display: flex; 2291 align-items: center; 2292 justify-content: center; 2293 -webkit-tap-highlight-color: rgba(0,0,0,0.1); 2294 touch-action: manipulation; 2295} 2296 2297/* Larger touch targets on mobile */ 2298@media (max-width: 768px) { 2299 .event-edit-btn, 2300 .event-delete-btn { 2301 width: 40px; 2302 height: 40px; 2303 min-width: 40px; 2304 min-height: 40px; 2305 font-size: 18px; 2306 } 2307} 2308 2309.event-edit-btn:hover { 2310 background: var(--cell-today-bg, #e8f5e9); 2311} 2312 2313.event-delete-btn:hover { 2314 background: var(--cell-today-bg, #ffebee); 2315} 2316 2317.day-popup-footer { 2318 padding: 10px 14px; 2319 border-top: 1px solid var(--border-color, #e0e0e0); 2320 background: var(--cell-bg, #fafafa); 2321 border-radius: 0 0 8px 8px; 2322} 2323 2324.btn-add-event { 2325 width: 100%; 2326 background: var(--text-bright, #008800); 2327 color: var(--background-site, white); 2328 border: none; 2329 padding: 10px 16px; 2330 border-radius: 6px; 2331 font-size: 14px; 2332 font-weight: 500; 2333 cursor: pointer; 2334 transition: background 0.15s; 2335} 2336 2337.btn-add-event:hover { 2338 filter: brightness(1.3); 2339 box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2)); 2340} 2341 2342.btn-add-event:active { 2343 filter: brightness(0.85); 2344 transform: translateY(1px); 2345} 2346 2347.dialog-overlay { 2348 position: absolute; 2349 top: 0; 2350 left: 0; 2351 width: 100%; 2352 height: 100%; 2353 background: rgba(0,0,0,0.4); 2354} 2355 2356.dialog-content-compact { 2357 position: relative; 2358 background: white; 2359 width: 400px; 2360 border-radius: 6px; 2361 box-shadow: 0 4px 12px rgba(0,0,0,0.2); 2362 padding: 20px; 2363 z-index: 10000; 2364} 2365 2366.dialog-content-compact h4 { 2367 margin: 0 0 16px 0; 2368 font-size: 16px; 2369 font-weight: 600; 2370 color: var(--text-primary, #2c3e50); 2371} 2372 2373.form-row { 2374 margin-bottom: 14px; 2375} 2376 2377.form-row-date { 2378 background: var(--cell-bg, #f1f8f4); 2379 padding: 10px; 2380 border-radius: 6px; 2381 border: 2px solid var(--border-main, #008800); 2382 margin-bottom: 18px; 2383} 2384 2385.form-row-date label { 2386 color: var(--text-bright, #388e3c); 2387 font-size: 13px; 2388} 2389 2390.form-row label { 2391 display: block; 2392 font-size: 12px; 2393 font-weight: 600; 2394 color: var(--text-dim, #555); 2395 margin-bottom: 4px; 2396} 2397 2398.form-row input[type="text"], 2399.form-row input[type="time"], 2400.form-row input[type="date"], 2401.form-row input[type="color"], 2402.form-row textarea { 2403 width: 100%; 2404 padding: 8px; 2405 border: 1px solid var(--border-color, #d0d0d0); 2406 border-radius: 4px; 2407 font-size: 13px; 2408 box-sizing: border-box; 2409 font-family: inherit; 2410} 2411 2412.form-row input[type="color"] { 2413 height: 36px; 2414 padding: 2px; 2415} 2416 2417.form-row textarea { 2418 resize: vertical; 2419} 2420 2421.dialog-actions { 2422 display: flex; 2423 gap: 8px; 2424 justify-content: flex-end; 2425 margin-top: 16px; 2426} 2427 2428.btn-save, 2429.btn-cancel { 2430 padding: 8px 16px; 2431 border: none; 2432 border-radius: 4px; 2433 font-size: 13px; 2434 font-weight: 500; 2435 cursor: pointer; 2436 transition: all 0.15s; 2437} 2438 2439.btn-save { 2440 background: var(--text-bright, #008800); 2441 color: var(--background-site, white); 2442} 2443 2444.btn-save:hover { 2445 filter: brightness(1.3); 2446 box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2)); 2447} 2448 2449.btn-cancel { 2450 background: var(--cell-bg, #f5f5f5); 2451 color: var(--text-dim, #555); 2452 border: 1px solid var(--border-color, #d0d0d0); 2453} 2454 2455.btn-cancel:hover { 2456 filter: brightness(1.2); 2457 box-shadow: 0 0 4px var(--shadow-color, rgba(0,0,0,0.15)); 2458} 2459 2460/* Standalone event list */ 2461.eventlist-standalone { 2462 max-width: 700px; 2463 margin: 20px auto; 2464 background: white; 2465 border: 1px solid var(--border-color, #d0d0d0); 2466 border-radius: 6px; 2467 padding: 20px; 2468} 2469 2470.eventlist-standalone h3 { 2471 margin: 0 0 20px 0; 2472 font-size: 18px; 2473 font-weight: 600; 2474 color: var(--text-primary, #2c3e50); 2475 border-bottom: 2px solid var(--border-main, #008800); 2476 padding-bottom: 10px; 2477} 2478 2479/* Compact Event List Widget */ 2480.eventlist-compact-widget { 2481 background: var(--background-site, #ffffff); 2482 border: 1px solid var(--border-color, #d0d0d0); 2483 border-radius: 6px; 2484 box-shadow: 0 2px 6px rgba(0,0,0,0.08); 2485 overflow: visible; 2486 display: flex; 2487 flex-direction: column; 2488 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 2489} 2490 2491/* Simple 2-Line Event List (New Design) */ 2492.eventlist-simple { 2493 width: 100%; 2494 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 2495 font-size: 11px; 2496 line-height: 1.4; 2497 overflow: visible; 2498} 2499 2500/* Compact pastel header for {{eventlist today}} - Single line */ 2501.eventlist-today-header { 2502 display: flex; 2503 flex-direction: column; 2504 align-items: center; 2505 padding: 6px 10px 2px 10px; 2506 background: var(--cell-bg, #1a1a1a); 2507 color: var(--text-bright, #00cc07); 2508 border: 2px solid var(--text-bright, #00cc07); 2509 border-radius: 4px; 2510 margin-bottom: 8px; 2511 box-shadow: 0 0 8px var(--shadow-color, rgba(0, 204, 7, 0.2)); 2512 gap: 3px; 2513 overflow: visible; 2514} 2515 2516/* Purple theme overrides */ 2517.sidebar-purple .eventlist-today-header { 2518 border-color: var(--text-bright, #9b59b6); 2519 box-shadow: 0 0 8px var(--shadow-color, rgba(155, 89, 182, 0.2)); 2520} 2521 2522/* Professional theme overrides */ 2523.sidebar-professional .eventlist-today-header { 2524 border-color: var(--text-bright, #4a90e2); 2525 box-shadow: 0 2px 4px var(--shadow-color, rgba(0, 0, 0, 0.1)); 2526} 2527 2528/* Pink theme overrides */ 2529.sidebar-pink .eventlist-today-header { 2530 border-color: var(--text-bright, #ff1493); 2531 box-shadow: 0 0 6px var(--shadow-color, rgba(255, 20, 147, 0.25)); 2532} 2533 2534.eventlist-bottom-info { 2535 display: flex; 2536 justify-content: space-between; 2537 align-items: center; 2538 width: 100%; 2539 gap: 10px; 2540 overflow: visible; 2541} 2542 2543.eventlist-weather { 2544 font-size: 13px; 2545 font-weight: 700; 2546 font-family: 'Courier New', monospace; 2547 letter-spacing: 0.3px; 2548 text-shadow: 0 0 1px var(--text-primary, rgba(0, 204, 7, 0.4)); 2549 color: var(--text-primary, #00cc07); 2550 white-space: nowrap; 2551} 2552 2553.eventlist-today-date { 2554 font-size: 10px; 2555 font-weight: 700; 2556 color: var(--text-primary, #00cc07); 2557 letter-spacing: 0.5px; 2558 white-space: nowrap; 2559 text-transform: uppercase; 2560 text-align: center; 2561 flex: 1; 2562} 2563 2564.eventlist-today-clock { 2565 font-size: 16px; 2566 font-weight: 700; 2567 font-family: 'Courier New', monospace; 2568 letter-spacing: 1px; 2569 text-shadow: 0 0 2px var(--text-primary, rgba(0, 204, 7, 0.5)); 2570 color: var(--text-primary, #00cc07); 2571} 2572 2573.eventlist-stats-container { 2574 width: 100%; 2575 display: flex; 2576 flex-direction: column; 2577 gap: 2px; 2578 margin: 0; 2579 overflow: visible; 2580} 2581 2582.eventlist-cpu-bar { 2583 width: 100%; 2584 height: 3px; 2585 background: var(--cell-today-bg, rgba(0, 204, 7, 0.1)) !important; 2586 border-radius: 1px; 2587 overflow: visible; 2588 position: relative; 2589 cursor: help; 2590} 2591 2592.system-tooltip { 2593 position: fixed; 2594 background: var(--cell-bg, rgba(0, 0, 0, 0.95)) !important; 2595 padding: 6px 8px; 2596 border-radius: 4px; 2597 font-size: 9px; 2598 line-height: 1.3; 2599 white-space: normal; 2600 min-width: 150px; 2601 max-width: 250px; 2602 z-index: 999999; 2603 border: 1px solid; 2604 box-shadow: 0 3px 8px rgba(0,0,0,0.5); 2605 pointer-events: none; 2606 /* Position will be set by JavaScript */ 2607} 2608 2609.system-tooltip div { 2610 font-size: 9px !important; 2611 line-height: 1.3 !important; 2612 margin: 0; 2613} 2614 2615.system-tooltip .tooltip-title { 2616 font-weight: bold; 2617 margin-bottom: 2px; 2618} 2619 2620.eventlist-cpu-fill { 2621 height: 100%; 2622 background: var(--text-bright, #00cc07) !important; 2623 transition: width 0.3s ease; 2624 box-shadow: 0 0 4px var(--shadow-color, rgba(0, 204, 7, 0.6)) !important; 2625} 2626 2627.eventlist-cpu-fill-purple { 2628 background: var(--border-main, #9b59b6) !important; 2629 box-shadow: 0 0 4px var(--shadow-color, rgba(155, 89, 182, 0.6)) !important; 2630} 2631 2632.eventlist-cpu-fill-orange { 2633 background: var(--text-primary, #ff8c00) !important; 2634 box-shadow: 0 0 4px var(--shadow-color, rgba(255, 140, 0, 0.6)) !important; 2635} 2636 2637/* Pink theme system bars - different shades of pink */ 2638.sidebar-pink .eventlist-cpu-fill { 2639 background: var(--text-bright, #ff1493) !important; 2640 box-shadow: 0 0 5px var(--shadow-color, rgba(255, 20, 147, 0.7)) !important; 2641} 2642 2643.sidebar-pink .eventlist-cpu-fill-purple { 2644 background: var(--border-main, #ff69b4) !important; 2645 box-shadow: 0 0 5px var(--shadow-color, rgba(255, 105, 180, 0.7)) !important; 2646} 2647 2648.sidebar-pink .eventlist-cpu-fill-orange { 2649 background: var(--text-primary, #ff85c1) !important; 2650 box-shadow: 0 0 5px var(--shadow-color, rgba(255, 133, 193, 0.7)) !important; 2651} 2652 2653.sidebar-pink .eventlist-cpu-realtime { 2654 background: var(--cell-today-bg, rgba(255, 20, 147, 0.1)) !important; 2655} 2656 2657.sidebar-pink .eventlist-mem-realtime { 2658 background: var(--cell-today-bg, rgba(255, 133, 193, 0.1)) !important; 2659} 2660 2661.eventlist-cpu-realtime { 2662 background: var(--cell-today-bg, rgba(155, 89, 182, 0.1)) !important; 2663} 2664 2665.eventlist-mem-realtime { 2666 background: var(--cell-today-bg, rgba(255, 140, 0, 0.1)) !important; 2667} 2668 2669.eventlist-simple-item { 2670 border-bottom: 1px solid var(--border-color, #e0e0e0); 2671 padding: 0; 2672} 2673 2674.eventlist-simple-item:last-child { 2675 border-bottom: none; 2676} 2677 2678.eventlist-simple-today { 2679 background: var(--cell-today-bg, #f3eeff) !important; 2680 border-left: 3px solid var(--border-main, #9b59b6) !important; 2681} 2682 2683.eventlist-simple-today .eventlist-simple-header { 2684 background: var(--cell-today-bg, #e8d9ff) !important; 2685} 2686 2687.eventlist-simple-today .eventlist-simple-body { 2688 background: var(--cell-bg, #f9f5ff) !important; 2689} 2690 2691.eventlist-simple-today-badge { 2692 background: var(--border-main, #9b59b6); 2693 color: var(--background-site, white); 2694 padding: 1px 4px; 2695 border-radius: 3px; 2696 font-size: 9px; 2697 font-weight: 600; 2698 letter-spacing: 0.5px; 2699 display: inline-block; 2700 vertical-align: middle; 2701 float: right; /* Right-align */ 2702 margin-left: auto; 2703} 2704 2705.eventlist-simple-pastdue { 2706 background: var(--pastdue-bg, #ffe6e6) !important; 2707 border-left: 3px solid var(--pastdue-color, #e74c3c) !important; 2708} 2709 2710.eventlist-simple-pastdue .eventlist-simple-header { 2711 background: var(--pastdue-bg-strong, #ffd9d9) !important; 2712} 2713 2714.eventlist-simple-pastdue .eventlist-simple-body { 2715 background: var(--pastdue-bg-light, #fff2f2) !important; 2716} 2717 2718.eventlist-simple-pastdue-badge { 2719 background: var(--pastdue-color, #e74c3c); 2720 color: white; 2721 padding: 1px 4px; 2722 border-radius: 3px; 2723 font-size: 9px; 2724 font-weight: 600; 2725 letter-spacing: 0.5px; 2726 display: inline-block; 2727 vertical-align: middle; 2728 float: right; /* Right-align */ 2729 margin-left: auto; 2730} 2731 2732.eventlist-simple-tomorrow { 2733 background: var(--tomorrow-bg, #fff9e6) !important; 2734} 2735 2736.eventlist-simple-tomorrow .eventlist-simple-header { 2737 background: var(--tomorrow-bg-strong, #fff4cc) !important; 2738} 2739 2740.eventlist-simple-tomorrow .eventlist-simple-body { 2741 background: var(--tomorrow-bg-light, #fffbf0) !important; 2742} 2743 2744.eventlist-simple-header { 2745 font-weight: 500; 2746 color: var(--text-primary, #2c3e50); 2747 padding: 4px 6px; 2748 line-height: 1.5; 2749 background: var(--cell-bg, #f5fcf5); 2750 font-size: 11px; 2751} 2752 2753.eventlist-simple-title { 2754 font-weight: 700; 2755 color: var(--text-bright, #ff6600); 2756 font-size: 12px; 2757} 2758 2759.eventlist-simple-time { 2760 color: var(--text-dim, #666); 2761 font-size: 10px; 2762} 2763 2764.eventlist-simple-date { 2765 color: var(--text-dim, #888); 2766 font-size: 10px; 2767} 2768 2769.eventlist-simple-namespace { 2770 background: var(--cell-today-bg, #e8f5e9); 2771 color: var(--text-bright, #388e3c); 2772 padding: 1px 4px; 2773 border-radius: 3px; 2774 font-size: 9px; 2775 font-weight: 500; 2776 margin-left: 4px; 2777} 2778 2779.eventlist-simple-body { 2780 color: var(--text-dim, #555); 2781 font-size: 11px; 2782 line-height: 1.5; 2783 padding: 4px 6px; 2784 background: var(--background-site, #fff); 2785} 2786 2787.eventlist-simple-body a { 2788 color: var(--text-bright, #008800); 2789 text-decoration: none; 2790} 2791 2792.eventlist-simple-body a:hover { 2793 text-decoration: underline; 2794} 2795 2796.eventlist-simple-body strong { 2797 font-weight: 600; 2798 color: var(--text-primary, #2c3e50); 2799} 2800 2801.eventlist-simple-body code { 2802 background: var(--cell-bg, #f5f5f5); 2803 padding: 1px 3px; 2804 border-radius: 3px; 2805 font-family: 'Courier New', monospace; 2806 font-size: 10px; 2807 color: var(--text-primary, inherit); 2808} 2809 2810.eventlist-simple-no-desc { 2811 display: none; 2812} 2813 2814.eventlist-simple-empty { 2815 padding: 10px 0; 2816 color: var(--text-dim, #999); 2817} 2818 2819.eventlist-simple-empty .eventlist-simple-header { 2820 margin-bottom: 4px; 2821 background: var(--cell-bg, #f5fcf5); 2822} 2823 2824.eventlist-simple-empty .eventlist-simple-body { 2825 color: var(--text-dim, #999); 2826 font-style: italic; 2827 padding: 4px 6px; 2828 font-size: 11px; 2829} 2830 2831.eventlist-widget-header { 2832 background: var(--text-bright, #008800); 2833 color: white; 2834 padding: 8px 12px; 2835 flex-shrink: 0; 2836} 2837 2838.eventlist-widget-header h4 { 2839 margin: 0; 2840 font-size: 13px; 2841 font-weight: 600; 2842} 2843 2844.eventlist-widget-content { 2845 overflow-y: auto; 2846 padding: 8px; 2847 flex: 1; 2848} 2849 2850.eventlist-widget-date { 2851 font-size: 11px; 2852 font-weight: 600; 2853 color: var(--text-dim, #666); 2854 margin: 8px 0 4px 0; 2855 padding-bottom: 2px; 2856 border-bottom: 1px solid var(--border-color, #e0e0e0); 2857} 2858 2859.eventlist-widget-item { 2860 background: var(--cell-bg, #fafafa); 2861 border: 1px solid var(--border-color, #e0e0e0); 2862 border-left: 3px solid var(--text-bright, #3498db); 2863 border-radius: 3px; 2864 padding: 6px 8px; 2865 margin-bottom: 6px; 2866 transition: all 0.15s; 2867} 2868 2869.eventlist-widget-item:hover { 2870 background: var(--cell-bg, #f0f0f0); 2871 box-shadow: 0 1px 3px rgba(0,0,0,0.1); 2872} 2873 2874.eventlist-widget-title { 2875 font-size: 12px; 2876 font-weight: 600; 2877 color: var(--text-primary, #2c3e50); 2878 margin-bottom: 2px; 2879} 2880 2881.eventlist-widget-time { 2882 font-size: 11px; 2883 color: var(--text-dim, #666); 2884 margin-bottom: 4px; 2885} 2886 2887.eventlist-widget-desc { 2888 font-size: 11px; 2889 color: var(--text-dim, #555); 2890 margin-top: 4px; 2891 line-height: 1.4; 2892} 2893 2894.eventlist-widget-desc img { 2895 max-width: 100%; 2896 height: auto; 2897 border-radius: 3px; 2898 margin: 4px 0; 2899} 2900 2901.eventlist-widget-desc a { 2902 color: var(--text-bright, #008800); 2903 text-decoration: none; 2904 border-bottom: 1px dotted var(--text-bright, #008800); 2905} 2906 2907.eventlist-widget-desc a:hover { 2908 border-bottom-style: solid; 2909} 2910 2911.eventlist-widget-empty { 2912 text-align: center; 2913 color: var(--text-dim, #999); 2914 font-size: 12px; 2915 padding: 20px; 2916 margin: 0; 2917} 2918 2919/* Global themed link class (used in renderDescription) */ 2920.cal-link { 2921 color: var(--text-bright, #008800) !important; 2922 text-decoration: none; 2923 border-bottom: 1px dotted var(--text-bright, #008800); 2924 transition: all 0.15s; 2925} 2926 2927.cal-link:hover { 2928 border-bottom-style: solid; 2929 opacity: 0.85; 2930} 2931 2932/* Sidebar widget links - inherit theme colors */ 2933.sidebar-widget a.cal-link { 2934 color: var(--text-bright, #00cc07) !important; 2935 border-bottom-color: var(--text-bright, #00cc07); 2936} 2937 2938/* Standalone event panel (right panel only) */ 2939.event-panel-standalone { 2940 width: 320px; 2941 background: var(--background-site, #ffffff); 2942 border: 1px solid var(--border-color, #d0d0d0); 2943 border-radius: 6px; 2944 box-shadow: 0 2px 6px rgba(0,0,0,0.08); 2945 display: flex; 2946 flex-direction: column; 2947 max-height: 600px; 2948 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 2949 font-size: 13px; 2950} 2951 2952/* Dark theme borders for event panel - match sidebar widget style */ 2953.event-panel-standalone[data-theme="matrix"] { 2954 border: 2px solid var(--border-main, #00cc07); 2955 box-shadow: 0 0 10px var(--shadow-color, rgba(0, 204, 7, 0.3)); 2956} 2957 2958.event-panel-standalone[data-theme="purple"] { 2959 border: 2px solid var(--border-main, #9b59b6); 2960 box-shadow: 0 0 10px var(--shadow-color, rgba(155, 89, 182, 0.3)); 2961} 2962 2963.event-panel-standalone[data-theme="pink"] { 2964 border: 2px solid var(--border-main, #ff1493); 2965 box-shadow: 0 0 10px var(--shadow-color, rgba(255, 20, 147, 0.4)); 2966} 2967 2968.event-panel-standalone .event-list-compact { 2969 overflow-y: auto; 2970 flex: 1; 2971 padding: 10px; 2972} 2973 2974/* Event panel - Compact two-row header for ~500px width (10% smaller) */ 2975.panel-header-compact { 2976 background: var(--cell-bg, #f5f5f5); 2977 border-bottom: 2px solid var(--border-color, #ddd); 2978} 2979 2980.panel-header-row-1 { 2981 display: flex; 2982 align-items: center; 2983 gap: 7px; 2984 padding: 7px 11px; 2985 background: var(--cell-bg, #fafafa); 2986 border-bottom: 1px solid var(--border-color, #e8e8e8); 2987} 2988 2989.panel-header-row-2 { 2990 display: flex; 2991 align-items: center; 2992 gap: 7px; 2993 padding: 7px 11px; 2994 background: var(--background-site, #ffffff); 2995} 2996 2997.panel-nav-btn { 2998 background: var(--cell-bg, #ffffff); 2999 border: 1px solid var(--border-color, #ccc); 3000 color: var(--text-primary, #333); 3001 width: 29px; 3002 height: 29px; 3003 border-radius: 4px; 3004 cursor: pointer; 3005 font-size: 16px; 3006 font-weight: bold; 3007 transition: all 0.2s; 3008 display: flex; 3009 align-items: center; 3010 justify-content: center; 3011 padding: 0; 3012 flex-shrink: 0; 3013} 3014 3015.panel-nav-btn:hover { 3016 background: var(--text-bright, #00cc07); 3017 color: var(--background-site, white); 3018 border-color: var(--text-bright, #00cc07); 3019 filter: brightness(1.2); 3020 box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3)); 3021} 3022 3023.panel-month-title { 3024 margin: 0; 3025 font-size: 13px; 3026 font-weight: 600; 3027 color: var(--text-primary, #2c3e50); 3028 cursor: pointer; 3029 padding: 5px 9px; 3030 border-radius: 4px; 3031 transition: background 0.2s; 3032 white-space: nowrap; 3033 user-select: none; 3034 flex: 1; 3035 text-align: center; 3036 background: var(--cell-bg, #ffffff); 3037 border: 1px solid var(--border-color, #e0e0e0); 3038} 3039 3040.panel-month-title:hover { 3041 background: var(--cell-today-bg, #e8f5e9); 3042 border-color: var(--text-bright, #00cc07); 3043} 3044 3045.panel-ns-badge { 3046 background: var(--cell-today-bg, #e3f2fd); 3047 color: var(--text-bright, #1976d2); 3048 padding: 3px 7px; 3049 border-radius: 11px; 3050 font-size: 9px; 3051 font-weight: 600; 3052 text-transform: uppercase; 3053 letter-spacing: 0.3px; 3054 white-space: nowrap; 3055 border: 1px solid var(--border-color, #bbdefb); 3056 flex-shrink: 0; 3057} 3058 3059.panel-ns-badge.filter-on { 3060 background: var(--text-bright, #ff9800); 3061 color: var(--background-site, white); 3062 border-color: var(--border-main, #f57c00); 3063 cursor: pointer; 3064 transition: all 0.2s; 3065} 3066 3067.panel-ns-badge.filter-on:hover { 3068 filter: brightness(1.2); 3069} 3070 3071.panel-today-btn { 3072 background: var(--cell-bg, #ffffff); 3073 border: 1px solid var(--border-color, #ccc); 3074 color: var(--text-primary, #333); 3075 padding: 5px 11px; 3076 border-radius: 4px; 3077 cursor: pointer; 3078 font-size: 10px; 3079 font-weight: 600; 3080 transition: all 0.2s; 3081 white-space: nowrap; 3082 flex-shrink: 0; 3083} 3084 3085.panel-today-btn:hover { 3086 background: var(--text-bright, #00cc07); 3087 color: var(--background-site, white); 3088 border-color: var(--text-bright, #00cc07); 3089 filter: brightness(1.2); 3090 box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3)); 3091} 3092 3093.panel-search-box { 3094 position: relative; 3095 flex: 1; 3096 display: flex; 3097 gap: 0; 3098} 3099 3100.panel-search-input { 3101 flex: 1; 3102 padding: 5px 25px 5px 9px; 3103 border: 1px solid var(--border-color, #d0d0d0); 3104 border-radius: 4px 0 0 4px; 3105 font-size: 11px; 3106 outline: none; 3107 transition: border-color 0.2s, box-shadow 0.2s; 3108 background: var(--cell-bg, #fafafa); 3109 color: var(--text-primary, #333); 3110} 3111 3112.panel-search-input:focus { 3113 border-color: var(--text-bright, #00cc07); 3114 box-shadow: 0 0 0 2px var(--shadow-color, rgba(0, 204, 7, 0.1)); 3115 background: var(--background-site, white); 3116} 3117 3118.panel-search-input::placeholder { 3119 color: var(--text-dim, #999); 3120} 3121 3122.panel-search-clear { 3123 position: absolute; 3124 right: 28px; 3125 top: 50%; 3126 transform: translateY(-50%); 3127 background: none; 3128 border: none; 3129 color: var(--text-dim, #999); 3130 cursor: pointer; 3131 padding: 3px; 3132 font-size: 13px; 3133 line-height: 1; 3134 transition: color 0.2s; 3135} 3136 3137.panel-search-clear:hover { 3138 color: var(--text-primary, #333); 3139} 3140 3141.panel-search-mode { 3142 background: var(--cell-bg, #f0f0f0); 3143 border: 1px solid var(--border-color, #d0d0d0); 3144 border-left: none; 3145 border-radius: 0 4px 4px 0; 3146 padding: 0 6px; 3147 cursor: pointer; 3148 font-size: 11px; 3149 transition: all 0.2s; 3150 color: var(--text-dim, #666); 3151 display: flex; 3152 align-items: center; 3153} 3154 3155.panel-search-mode:hover { 3156 background: var(--cell-today-bg, #e8f5e9); 3157 color: var(--text-bright, #00cc07); 3158} 3159 3160.panel-search-mode.all-dates { 3161 background: var(--text-bright, #00cc07); 3162 color: var(--background-site, white); 3163 border-color: var(--text-bright, #00cc07); 3164} 3165 3166.panel-search-mode.all-dates:hover { 3167 filter: brightness(1.1); 3168} 3169 3170.panel-add-btn { 3171 background: var(--text-bright, #00cc07); 3172 border: 1px solid var(--border-main, #00a806); 3173 color: var(--background-site, white); 3174 padding: 5px 13px; 3175 border-radius: 4px; 3176 cursor: pointer; 3177 font-size: 11px; 3178 font-weight: 600; 3179 transition: all 0.2s; 3180 white-space: nowrap; 3181 flex-shrink: 0; 3182} 3183 3184.panel-add-btn:hover { 3185 filter: brightness(1.3); 3186 transform: translateY(-1px); 3187 box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2)); 3188} 3189 3190.panel-standalone-header { 3191 display: flex; 3192 align-items: center; 3193 gap: 8px; 3194 padding: 12px 12px; 3195 background: var(--cell-bg, #fafafa); 3196 border-bottom: 1px solid var(--border-color, #e0e0e0); 3197 flex-shrink: 0; 3198} 3199 3200.panel-header-content { 3201 flex: 1; 3202 display: flex; 3203 flex-direction: column; 3204 align-items: center; 3205 gap: 4px; 3206} 3207 3208.panel-standalone-header h3 { 3209 margin: 0; 3210 font-size: 12px; 3211 font-weight: 600; 3212 color: var(--text-primary, #2c3e50); 3213 white-space: nowrap; 3214} 3215 3216.panel-standalone-header .calendar-month-picker { 3217 cursor: pointer; 3218 user-select: none; 3219 transition: all 0.15s; 3220 padding: 4px 8px; 3221 border-radius: 4px; 3222 white-space: nowrap; 3223} 3224 3225.panel-standalone-header .calendar-month-picker:hover { 3226 background: var(--cell-today-bg, #e8e8e8); 3227 color: var(--text-bright, #008800); 3228} 3229 3230.panel-standalone-header .namespace-badge { 3231 font-size: 11px; 3232 font-weight: 500; 3233 color: var(--text-bright, #388e3c); 3234 background: var(--cell-today-bg, #e8f5e9); 3235 padding: 2px 8px; 3236 border-radius: 3px; 3237 text-decoration: none; 3238 transition: all 0.15s; 3239 display: inline-block; 3240} 3241 3242.panel-standalone-header .namespace-badge:hover { 3243 background: var(--cell-bg, #c8e6c9); 3244 color: var(--text-primary, #2e7d32); 3245} 3246 3247.panel-standalone-actions { 3248 padding: 10px 16px; 3249 background: var(--background-site, #ffffff); 3250 border-bottom: 1px solid var(--border-color, #e0e0e0); 3251 flex-shrink: 0; 3252 display: flex; 3253 align-items: center; 3254 gap: 8px; 3255} 3256 3257.panel-standalone-actions .add-event-compact { 3258 flex-shrink: 0; 3259} 3260 3261.eventlist-day-group { 3262 margin-bottom: 24px; 3263} 3264 3265.eventlist-date { 3266 margin: 0 0 12px 0; 3267 font-size: 14px; 3268 font-weight: 600; 3269 color: var(--text-primary, #2c3e50); 3270 background: var(--cell-bg, #f8f8f8); 3271 padding: 8px 12px; 3272 border-left: 4px solid var(--border-main, #008800); 3273} 3274 3275.eventlist-item { 3276 display: flex; 3277 margin-bottom: 10px; 3278 background: white; 3279 border: 1px solid var(--border-color, #e0e0e0); 3280 border-radius: 4px; 3281 overflow: hidden; 3282} 3283 3284.eventlist-content { 3285 flex: 1; 3286 padding: 12px; 3287 display: flex; 3288 align-items: center; 3289 gap: 12px; 3290} 3291 3292.eventlist-time { 3293 font-size: 12px; 3294 font-weight: 600; 3295 color: var(--text-bright, #008800); 3296 min-width: 50px; 3297} 3298 3299.eventlist-title { 3300 font-size: 14px; 3301 font-weight: 500; 3302 color: var(--text-primary, #2c3e50); 3303} 3304 3305.eventlist-desc { 3306 font-size: 12px; 3307 color: var(--text-dim, #666); 3308 margin-top: 6px; 3309 line-height: 1.4; 3310} 3311 3312/* =================================== 3313 MOBILE RESPONSIVE - EVENTLIST & EVENTPANEL 3314 =================================== */ 3315 3316/* Tablet and below (768px) */ 3317@media (max-width: 768px) { 3318 /* Event Panel Standalone */ 3319 .event-panel-standalone { 3320 width: 100%; 3321 max-width: 100%; 3322 border-radius: 0; 3323 max-height: none; 3324 min-height: 400px; 3325 } 3326 3327 /* Compact Event List Widget */ 3328 .eventlist-compact-widget { 3329 width: 100% !important; 3330 max-width: 100%; 3331 border-radius: 0; 3332 } 3333 3334 .eventlist-widget-header h4 { 3335 font-size: 14px; 3336 } 3337 3338 .eventlist-widget-title { 3339 font-size: 13px; 3340 } 3341 3342 .eventlist-widget-time { 3343 font-size: 12px; 3344 } 3345 3346 /* Standalone event list (old style) */ 3347 .eventlist-standalone { 3348 max-width: 100%; 3349 margin: 10px; 3350 padding: 15px; 3351 border-radius: 0; 3352 } 3353 3354 .eventlist-standalone h3 { 3355 font-size: 16px; 3356 } 3357} 3358 3359/* Mobile (480px and below) */ 3360@media (max-width: 480px) { 3361 /* Event Panel Standalone */ 3362 .event-panel-standalone { 3363 font-size: 12px; 3364 min-height: 300px; 3365 } 3366 3367 .panel-standalone-header { 3368 padding: 10px 12px; 3369 } 3370 3371 .panel-standalone-header h3 { 3372 font-size: 12px; 3373 } 3374 3375 .panel-standalone-actions { 3376 padding: 8px 12px; 3377 } 3378 3379 .event-panel-standalone .event-list-compact { 3380 padding: 8px; 3381 } 3382 3383 /* Compact Event List Widget */ 3384 .eventlist-compact-widget { 3385 min-width: 280px; 3386 } 3387 3388 .eventlist-widget-header { 3389 padding: 6px 10px; 3390 } 3391 3392 .eventlist-widget-header h4 { 3393 font-size: 13px; 3394 } 3395 3396 .eventlist-widget-content { 3397 padding: 6px; 3398 } 3399 3400 .eventlist-widget-item { 3401 padding: 5px 6px; 3402 margin-bottom: 5px; 3403 } 3404 3405 .eventlist-widget-title { 3406 font-size: 12px; 3407 } 3408 3409 .eventlist-widget-time { 3410 font-size: 11px; 3411 } 3412 3413 .eventlist-widget-desc { 3414 font-size: 11px; 3415 } 3416 3417 /* Standalone event list */ 3418 .eventlist-standalone { 3419 margin: 5px; 3420 padding: 10px; 3421 } 3422 3423 .eventlist-standalone h3 { 3424 font-size: 14px; 3425 margin-bottom: 15px; 3426 } 3427 3428 .eventlist-day-group { 3429 margin-bottom: 18px; 3430 } 3431 3432 .eventlist-date { 3433 font-size: 13px; 3434 padding: 6px 10px; 3435 } 3436 3437 .eventlist-title { 3438 font-size: 13px; 3439 } 3440 3441 .eventlist-time { 3442 font-size: 11px; 3443 } 3444 3445 .eventlist-desc { 3446 font-size: 11px; 3447 } 3448} 3449 3450/* Very small mobile (320px) */ 3451@media (max-width: 320px) { 3452 .eventlist-compact-widget { 3453 min-width: 100%; 3454 } 3455 3456 .event-panel-standalone { 3457 min-height: 250px; 3458 } 3459 3460 .eventlist-widget-header h4 { 3461 font-size: 12px; 3462 } 3463 3464 .eventlist-widget-title { 3465 font-size: 11px; 3466 } 3467 3468 .panel-standalone-header h3 { 3469 font-size: 12px; 3470 } 3471} 3472 3473/* Past Events Collapsible Section */ 3474.past-events-section { 3475 margin-bottom: 10px; 3476 border-bottom: 1px solid var(--border-color, #e0e0e0); 3477} 3478 3479.past-events-toggle { 3480 padding: 6px 10px; 3481 background: var(--cell-bg); 3482 color: var(--text-dim); 3483 cursor: pointer; 3484 user-select: none; 3485 font-size: 11px; 3486 font-weight: 600; 3487 display: flex; 3488 align-items: center; 3489 border-radius: 3px; 3490 transition: background 0.2s; 3491} 3492 3493.past-events-toggle:hover { 3494 background: var(--background-alt); 3495} 3496 3497.past-events-arrow { 3498 font-size: 9px; 3499 margin-right: 5px; 3500 transition: transform 0.2s; 3501 display: inline-block; 3502 width: 10px; 3503 color: var(--text-dim); 3504} 3505 3506.past-events-label { 3507 color: var(--text-dim); 3508} 3509 3510.past-events-content { 3511 margin-top: 5px; 3512} 3513 3514/* Namespace Search Dropdown */ 3515.namespace-search-wrapper { 3516 position: relative; 3517} 3518 3519.namespace-search-input { 3520 width: 100%; 3521} 3522 3523.namespace-dropdown { 3524 position: absolute; 3525 top: 100%; 3526 left: 0; 3527 right: 0; 3528 max-height: 200px; 3529 overflow-y: auto; 3530 background: white; 3531 border: 1px solid var(--border-color, #ddd); 3532 border-top: none; 3533 border-radius: 0 0 4px 4px; 3534 box-shadow: 0 4px 8px rgba(0,0,0,0.1); 3535 z-index: 1000; 3536 margin-top: -1px; 3537} 3538 3539.namespace-option { 3540 padding: 8px 12px; 3541 cursor: pointer; 3542 font-size: 12px; 3543 border-bottom: 1px solid var(--border-color, #f0f0f0); 3544 transition: background-color 0.15s; 3545} 3546 3547.namespace-option:hover { 3548 background-color: var(--cell-bg, #f5f5f5); 3549} 3550 3551.namespace-option.selected { 3552 background-color: var(--cell-today-bg, #e3f2fd); 3553 color: var(--text-bright, #1976d2); 3554} 3555 3556.namespace-option:last-child { 3557 border-bottom: none; 3558} 3559 3560/* Matrix-themed Sidebar Widget */ 3561.sidebar-matrix { 3562 font-family: system-ui, sans-serif !important; 3563 background: linear-gradient(180deg, #242424 0%, #2a2a2a 100%) !important; 3564 border: 2px solid #00cc07 !important; 3565 box-shadow: 0 0 15px rgba(0, 204, 7, 0.4), inset 0 0 20px rgba(0, 204, 7, 0.05) !important; 3566} 3567 3568.sidebar-matrix-header { 3569 background: linear-gradient(180deg, #2a2a2a 0%, #242424 100%) !important; 3570 border-bottom: 2px solid #00cc07 !important; 3571 box-shadow: 0 2px 8px rgba(0, 204, 7, 0.3) !important; 3572} 3573 3574.sidebar-matrix-clock { 3575 animation: matrix-pulse 2s ease-in-out infinite; 3576} 3577 3578.sidebar-matrix-date { 3579 opacity: 0.9; 3580} 3581 3582@keyframes matrix-pulse { 3583 0%, 100% { 3584 text-shadow: 0 0 2px rgba(0, 204, 7, 0.4); 3585 } 3586 50% { 3587 text-shadow: 0 0 4px rgba(0, 255, 0, 0.5), 0 0 6px rgba(0, 204, 7, 0.3); 3588 } 3589} 3590 3591/* Matrix glow effect for sidebar */ 3592.sidebar-widget.sidebar-matrix::before { 3593 content: ''; 3594 position: absolute; 3595 top: -2px; 3596 left: -2px; 3597 right: -2px; 3598 bottom: -2px; 3599 background: linear-gradient(45deg, #00cc07, #00ff00, #00cc07); 3600 border-radius: 4px; 3601 opacity: 0; 3602 z-index: -1; 3603 animation: matrix-border-glow 3s ease-in-out infinite; 3604} 3605 3606@keyframes matrix-border-glow { 3607 0%, 100% { 3608 opacity: 0; 3609 } 3610 50% { 3611 opacity: 0.3; 3612 } 3613} 3614 3615/* Scrollbar styling for matrix theme */ 3616.sidebar-matrix ::-webkit-scrollbar { 3617 width: 6px; 3618} 3619 3620.sidebar-matrix ::-webkit-scrollbar-track { 3621 background: #242424; 3622} 3623 3624.sidebar-matrix ::-webkit-scrollbar-thumb { 3625 background: #00cc07; 3626 border-radius: 3px; 3627 box-shadow: 0 0 5px rgba(0, 204, 7, 0.5); 3628} 3629 3630.sidebar-matrix ::-webkit-scrollbar-thumb:hover { 3631 background: #00ff00; 3632 box-shadow: 0 0 8px rgba(0, 255, 0, 0.8); 3633} 3634 3635/* ==================================== 3636 PINK BLING THEME - SPECIAL EFFECTS 3637 ==================================== */ 3638 3639/* Shimmer animation for today's cell - BARELY NOTICEABLE */ 3640@keyframes pink-shimmer { 3641 0% { 3642 box-shadow: 0 0 2px rgba(255, 20, 147, 0.15), 3643 0 0 3px rgba(255, 20, 147, 0.08); 3644 } 3645 50% { 3646 box-shadow: 0 0 4px rgba(255, 20, 147, 0.25), 3647 0 0 6px rgba(255, 20, 147, 0.12); 3648 } 3649 100% { 3650 box-shadow: 0 0 2px rgba(255, 20, 147, 0.15), 3651 0 0 3px rgba(255, 20, 147, 0.08); 3652 } 3653} 3654 3655/* Sparkle animation for today's day number - BARELY NOTICEABLE */ 3656@keyframes pink-sparkle { 3657 0%, 100% { 3658 text-shadow: 0 0 2px rgba(255, 20, 147, 0.3); 3659 transform: scale(1); 3660 } 3661 50% { 3662 text-shadow: 0 0 3px rgba(255, 20, 147, 0.5); 3663 transform: scale(1.01); 3664 } 3665} 3666 3667/* Glow pulse for event bars - BARELY NOTICEABLE */ 3668@keyframes pink-glow-pulse { 3669 0%, 100% { 3670 box-shadow: 0 0 1px currentColor; 3671 } 3672 50% { 3673 box-shadow: 0 0 2px currentColor, 3674 0 0 3px rgba(255, 105, 180, 0.15); 3675 } 3676} 3677 3678/* Gradient shimmer for headers */ 3679@keyframes pink-gradient-shimmer { 3680 0% { 3681 background-position: 0% 50%; 3682 } 3683 50% { 3684 background-position: 100% 50%; 3685 } 3686 100% { 3687 background-position: 0% 50%; 3688 } 3689} 3690 3691/* Pink particle explosion on click */ 3692@keyframes particle-explode { 3693 0% { 3694 opacity: 1; 3695 transform: translate(0, 0) scale(1); 3696 } 3697 100% { 3698 opacity: 0; 3699 transform: translate(var(--tx), var(--ty)) scale(0); 3700 } 3701} 3702 3703/* Cursor trail glow */ 3704@keyframes cursor-trail-fade { 3705 0% { 3706 opacity: 1; 3707 transform: scale(1); 3708 } 3709 100% { 3710 opacity: 0; 3711 transform: scale(0.5); 3712 } 3713} 3714 3715/* Pink particle styles */ 3716.pink-particle { 3717 position: fixed; /* Changed to fixed so it works anywhere on screen */ 3718 width: 6px; 3719 height: 6px; 3720 background: radial-gradient(circle, #ff1493, #ff69b4); 3721 border-radius: 50%; 3722 pointer-events: none; 3723 z-index: 9999999; /* Above everything including dialogs */ 3724 box-shadow: 0 0 8px #ff1493, 3725 0 0 15px #ff69b4; 3726} 3727 3728/* Cursor trail glow */ 3729.pink-cursor-trail { 3730 position: fixed; /* Changed to fixed so it works anywhere on screen */ 3731 width: 8px; 3732 height: 8px; 3733 background: radial-gradient(circle, rgba(255, 20, 147, 0.8), rgba(255, 105, 180, 0.4)); 3734 border-radius: 50%; 3735 pointer-events: none; 3736 z-index: 9999998; /* Just below particles */ 3737 box-shadow: 0 0 10px rgba(255, 20, 147, 0.6), 3738 0 0 20px rgba(255, 105, 180, 0.3); 3739} 3740 3741/* Tiny neon pixel sparkles */ 3742.pink-pixel-sparkle { 3743 position: fixed; 3744 width: 2px; 3745 height: 2px; 3746 background: var(--background-site, #fff); 3747 border-radius: 50%; 3748 pointer-events: none; 3749 z-index: 9999997; /* Just below trail */ 3750 box-shadow: 0 0 2px #ff1493, 3751 0 0 4px #ff69b4, 3752 0 0 6px #fff; 3753} 3754 3755/* Pixel sparkle twinkle animation */ 3756@keyframes pixel-twinkle { 3757 0%, 100% { 3758 opacity: 0; 3759 transform: scale(0); 3760 } 3761 50% { 3762 opacity: 1; 3763 transform: scale(1.5); 3764 } 3765} 3766 3767/* Pixel sparkle float away */ 3768@keyframes pixel-float-away { 3769 0% { 3770 opacity: 1; 3771 transform: translateY(0) scale(1); 3772 } 3773 100% { 3774 opacity: 0; 3775 transform: translateY(-30px) scale(0); 3776 } 3777} 3778 3779/* Pink theme specific styles - TONED DOWN */ 3780.calendar-theme-pink .cal-today { 3781 animation: pink-shimmer 2s ease-in-out infinite; 3782 border: 2px solid #ff1493 !important; 3783 position: relative; 3784 overflow: visible; 3785} 3786 3787.calendar-theme-pink .cal-today .day-num, 3788.calendar-theme-pink .day-num-today { 3789 background: transparent !important; 3790 color: #fff !important; 3791 position: relative; 3792 z-index: 1; 3793 font-weight: 700; 3794 filter: none; 3795 width: 22px; 3796 height: 22px; 3797 line-height: 22px; 3798 text-align: center; 3799 font-size: 10px; 3800 padding: 0; 3801 display: inline-flex; 3802 align-items: center; 3803 justify-content: center; 3804 overflow: visible; 3805} 3806 3807/* Heart shape behind the day number */ 3808.calendar-theme-pink .cal-today .day-num::before, 3809.calendar-theme-pink .day-num-today::before { 3810 content: '♥'; 3811 position: absolute; 3812 top: 50%; 3813 left: 50%; 3814 transform: translate(-50%, -48%); 3815 font-size: 26px; 3816 color: #ff1493; 3817 z-index: -1; 3818 text-shadow: 0 0 8px rgba(255, 20, 147, 0.7), 3819 0 0 16px rgba(255, 20, 147, 0.4), 3820 0 0 24px rgba(255, 105, 180, 0.2); 3821 animation: pink-heart-beat 1.2s ease-in-out infinite; 3822 line-height: 1; 3823} 3824 3825/* Heart beat animation */ 3826@keyframes pink-heart-beat { 3827 0%, 100% { 3828 transform: translate(-50%, -48%) scale(1); 3829 text-shadow: 0 0 8px rgba(255, 20, 147, 0.7), 3830 0 0 16px rgba(255, 20, 147, 0.4); 3831 } 3832 15% { 3833 transform: translate(-50%, -48%) scale(1.15); 3834 text-shadow: 0 0 12px rgba(255, 20, 147, 0.9), 3835 0 0 24px rgba(255, 20, 147, 0.5), 3836 0 0 36px rgba(255, 105, 180, 0.3); 3837 } 3838 30% { 3839 transform: translate(-50%, -48%) scale(0.95); 3840 } 3841 45% { 3842 transform: translate(-50%, -48%) scale(1.1); 3843 text-shadow: 0 0 10px rgba(255, 20, 147, 0.8), 3844 0 0 20px rgba(255, 20, 147, 0.4); 3845 } 3846 60% { 3847 transform: translate(-50%, -48%) scale(1); 3848 } 3849} 3850 3851.calendar-theme-pink .event-bar { 3852 animation: pink-glow-pulse 2s ease-in-out infinite; 3853} 3854 3855.calendar-theme-pink .calendar-compact-header { 3856 background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24, #1a0d14); 3857 background-size: 300% 300%; 3858 animation: pink-gradient-shimmer 3s ease infinite; 3859} 3860 3861.calendar-theme-pink .event-list-header { 3862 background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24); 3863 background-size: 300% 300%; 3864 animation: pink-gradient-shimmer 3s ease infinite; 3865} 3866 3867/* Subtle hover glow - BARELY NOTICEABLE */ 3868.calendar-theme-pink .cal-today:hover { 3869 box-shadow: 0 0 5px rgba(255, 20, 147, 0.25), 3870 0 0 8px rgba(255, 20, 147, 0.12) !important; 3871} 3872 3873/* Pink theme event items get subtle glow */ 3874.calendar-theme-pink .event-compact-item { 3875 box-shadow: 0 0 1px rgba(255, 20, 147, 0.08); 3876 transition: all 0.3s ease; 3877} 3878 3879.calendar-theme-pink .event-compact-item:hover { 3880 box-shadow: 0 0 3px rgba(255, 20, 147, 0.15); 3881 transform: translateX(2px); 3882} 3883 3884/* Calendar borders get subtle glow */ 3885.calendar-theme-pink.calendar-compact-container { 3886 box-shadow: 0 0 5px rgba(255, 20, 147, 0.12), 3887 0 2px 4px rgba(0,0,0,0.06); 3888 position: relative; 3889} 3890 3891/* Today badge extra sparkle */ 3892.calendar-theme-pink .event-today-badge { 3893 animation: pink-sparkle 1.5s ease-in-out infinite; 3894} 3895 3896/* Consistent subtle text glow for dark themes - main calendar event list */ 3897.calendar-theme-matrix .event-title-compact, 3898.calendar-theme-matrix .event-meta-compact, 3899.calendar-theme-matrix .event-desc-compact { 3900 text-shadow: 0 0 1px var(--text-primary, #00cc07); 3901} 3902 3903.calendar-theme-purple .event-title-compact, 3904.calendar-theme-purple .event-meta-compact, 3905.calendar-theme-purple .event-desc-compact { 3906 text-shadow: 0 0 1px var(--text-primary, #b19cd9); 3907} 3908 3909.calendar-theme-pink .event-title-compact, 3910.calendar-theme-pink .event-meta-compact, 3911.calendar-theme-pink .event-desc-compact { 3912 text-shadow: 0 0 2px var(--text-primary, #ff69b4); 3913} 3914 3915/* Dark theme link glow */ 3916.calendar-theme-matrix .event-desc-compact a, 3917.calendar-theme-matrix .cal-link { 3918 text-shadow: 0 0 1px var(--text-bright, #00ff00); 3919} 3920 3921.calendar-theme-purple .event-desc-compact a, 3922.calendar-theme-purple .cal-link { 3923 text-shadow: 0 0 1px var(--text-bright, #d4a5ff); 3924} 3925 3926.calendar-theme-pink .event-desc-compact a, 3927.calendar-theme-pink .cal-link { 3928 text-shadow: 0 0 2px var(--text-bright, #ff1493); 3929} 3930 3931/* Dark theme event panel text glow */ 3932.event-panel-standalone[data-theme="matrix"] .event-title-compact, 3933.event-panel-standalone[data-theme="matrix"] .event-meta-compact, 3934.event-panel-standalone[data-theme="matrix"] .event-desc-compact { 3935 text-shadow: 0 0 1px var(--text-primary, #00cc07); 3936} 3937 3938.event-panel-standalone[data-theme="purple"] .event-title-compact, 3939.event-panel-standalone[data-theme="purple"] .event-meta-compact, 3940.event-panel-standalone[data-theme="purple"] .event-desc-compact { 3941 text-shadow: 0 0 1px var(--text-primary, #b19cd9); 3942} 3943 3944.event-panel-standalone[data-theme="pink"] .event-title-compact, 3945.event-panel-standalone[data-theme="pink"] .event-meta-compact, 3946.event-panel-standalone[data-theme="pink"] .event-desc-compact { 3947 text-shadow: 0 0 2px var(--text-primary, #ff69b4); 3948} 3949 3950/* Past due badge pulsing effect - SUBTLE */ 3951@keyframes pink-pulse-urgent { 3952 0%, 100% { 3953 box-shadow: 0 0 3px rgba(255, 140, 0, 0.4); 3954 } 3955 50% { 3956 box-shadow: 0 0 8px rgba(255, 140, 0, 0.6); 3957 } 3958} 3959 3960.calendar-theme-pink .event-pastdue-badge { 3961 animation: pink-pulse-urgent 1s ease-in-out infinite; 3962} 3963 3964/* ======================================== 3965 MATRIX THEME: CHECKBOX GLOW 3966 ======================================== */ 3967.calendar-theme-matrix .task-checkbox, 3968.sidebar-matrix .task-checkbox { 3969 border: 2px solid #00ff00; 3970 background: rgba(0, 204, 7, 0.08); 3971 box-shadow: 0 0 6px rgba(0, 255, 0, 0.3), inset 0 0 4px rgba(0, 204, 7, 0.1); 3972} 3973 3974.calendar-theme-matrix .task-checkbox:hover, 3975.sidebar-matrix .task-checkbox:hover { 3976 border-color: #00ff00; 3977 box-shadow: 0 0 10px rgba(0, 255, 0, 0.5), inset 0 0 6px rgba(0, 204, 7, 0.2); 3978} 3979 3980.calendar-theme-matrix .task-checkbox:checked, 3981.sidebar-matrix .task-checkbox:checked { 3982 background: #00cc07; 3983 border-color: #00ff00; 3984 box-shadow: 0 0 8px rgba(0, 255, 0, 0.6); 3985} 3986 3987/* ======================================== 3988 PURPLE THEME: CHECKBOX GLOW 3989 ======================================== */ 3990.calendar-theme-purple .task-checkbox, 3991.sidebar-purple .task-checkbox { 3992 border: 2px solid #d4a5ff; 3993 background: rgba(155, 89, 182, 0.08); 3994 box-shadow: 0 0 6px rgba(212, 165, 255, 0.3), inset 0 0 4px rgba(155, 89, 182, 0.1); 3995} 3996 3997.calendar-theme-purple .task-checkbox:hover, 3998.sidebar-purple .task-checkbox:hover { 3999 border-color: #d4a5ff; 4000 box-shadow: 0 0 10px rgba(212, 165, 255, 0.5), inset 0 0 6px rgba(155, 89, 182, 0.2); 4001} 4002 4003.calendar-theme-purple .task-checkbox:checked, 4004.sidebar-purple .task-checkbox:checked { 4005 background: #9b59b6; 4006 border-color: #d4a5ff; 4007 box-shadow: 0 0 8px rgba(212, 165, 255, 0.6); 4008} 4009 4010/* ======================================== 4011 PINK THEME: CHECKBOX GLOW 4012 ======================================== */ 4013.calendar-theme-pink .task-checkbox, 4014.sidebar-pink .task-checkbox { 4015 border: 2px solid #ff1493; 4016 background: rgba(255, 20, 147, 0.08); 4017 box-shadow: 0 0 6px rgba(255, 20, 147, 0.35), inset 0 0 4px rgba(255, 20, 147, 0.1); 4018} 4019 4020.calendar-theme-pink .task-checkbox:hover, 4021.sidebar-pink .task-checkbox:hover { 4022 border-color: #ff69b4; 4023 box-shadow: 0 0 10px rgba(255, 20, 147, 0.6), inset 0 0 6px rgba(255, 20, 147, 0.2); 4024} 4025 4026.calendar-theme-pink .task-checkbox:checked, 4027.sidebar-pink .task-checkbox:checked { 4028 background: #ff1493; 4029 border-color: #ff69b4; 4030 box-shadow: 0 0 8px rgba(255, 20, 147, 0.7); 4031} 4032 4033/* Pink checkbox in dialog forms */ 4034.calendar-theme-pink .checkbox-label input[type="checkbox"], 4035.calendar-theme-pink .checkbox-label-compact input[type="checkbox"] { 4036 accent-color: #ff1493; 4037} 4038 4039/* Wiki theme checkboxes - use border color */ 4040.calendar-theme-wiki .task-checkbox, 4041.sidebar-wiki .task-checkbox, 4042.eventlist-theme-wiki .task-checkbox { 4043 border: 2px solid var(--border-main, #ccc); 4044 accent-color: var(--border-main, #ccc); 4045} 4046 4047.calendar-theme-wiki .task-checkbox:hover, 4048.sidebar-wiki .task-checkbox:hover, 4049.eventlist-theme-wiki .task-checkbox:hover { 4050 border: 2px solid var(--border-main, #ccc); 4051 box-shadow: 0 0 8px rgba(0, 0, 0, 0.15); 4052} 4053 4054.calendar-theme-wiki .task-checkbox:checked, 4055.sidebar-wiki .task-checkbox:checked, 4056.eventlist-theme-wiki .task-checkbox:checked { 4057 background: var(--border-main, #ccc); 4058 border: 2px solid var(--border-main, #ccc); 4059} 4060 4061/* Wiki theme buttons - use __link__ color */ 4062.calendar-theme-wiki .cal-nav-btn, 4063.calendar-theme-wiki .cal-today-btn { 4064 background: var(--text-bright, #2b73b7); 4065 color: #fff; 4066} 4067 4068/* Wiki theme day headers - use __background_neu__ */ 4069.calendar-theme-wiki .calendar-day-headers { 4070 background: var(--cell-today-bg, #eee); 4071} 4072 4073/* Wiki theme past events toggle - use __background_neu__ */ 4074.calendar-theme-wiki .past-events-toggle { 4075 background: var(--cell-today-bg, #eee); 4076} 4077 4078.calendar-theme-wiki .calendar-day-headers span { 4079 color: var(--text-primary, #333); 4080} 4081 4082.sidebar-wiki .panel-nav-btn, 4083.sidebar-wiki .panel-today-btn { 4084 background: var(--text-bright, #2b73b7); 4085 color: #fff; 4086} 4087 4088.event-panel-standalone[data-theme="wiki"] .panel-nav-btn, 4089.event-panel-standalone[data-theme="wiki"] .panel-today-btn { 4090 background: var(--text-bright, #2b73b7); 4091 color: #fff; 4092} 4093 4094/* Wiki theme clock - no glow */ 4095.sidebar-wiki .eventlist-today-clock, 4096.eventlist-theme-wiki .eventlist-today-clock { 4097 text-shadow: none; 4098} 4099 4100/* Wiki theme clock - no glow, slightly larger */ 4101.sidebar-wiki .eventlist-today-clock, 4102.eventlist-theme-wiki .eventlist-today-clock { 4103 text-shadow: none; 4104 font-size: 20px; 4105} 4106 4107/* ======================================== 4108 PINK THEME: BUTTON FIREWORK BURST HOVER 4109 ======================================== */ 4110@keyframes pink-firework-burst { 4111 0% { 4112 box-shadow: 0 0 4px rgba(255, 20, 147, 0.4); 4113 } 4114 25% { 4115 box-shadow: 0 0 15px rgba(255, 20, 147, 0.8), 4116 0 0 30px rgba(255, 105, 180, 0.4), 4117 5px -5px 8px rgba(255, 20, 147, 0.6), 4118 -5px -5px 8px rgba(255, 105, 180, 0.5), 4119 5px 5px 8px rgba(255, 133, 193, 0.4), 4120 -5px 5px 8px rgba(255, 20, 147, 0.5); 4121 } 4122 50% { 4123 box-shadow: 0 0 20px rgba(255, 20, 147, 0.9), 4124 0 0 40px rgba(255, 105, 180, 0.5), 4125 8px -8px 12px rgba(255, 20, 147, 0.5), 4126 -8px -8px 12px rgba(255, 105, 180, 0.4), 4127 8px 8px 12px rgba(255, 133, 193, 0.3), 4128 -8px 8px 12px rgba(255, 20, 147, 0.4), 4129 0 -10px 15px rgba(255, 20, 147, 0.3), 4130 10px 0 15px rgba(255, 105, 180, 0.3); 4131 } 4132 75% { 4133 box-shadow: 0 0 12px rgba(255, 20, 147, 0.6), 4134 0 0 25px rgba(255, 105, 180, 0.3), 4135 12px -12px 8px rgba(255, 20, 147, 0.2), 4136 -12px -12px 8px rgba(255, 105, 180, 0.15), 4137 12px 12px 8px rgba(255, 133, 193, 0.1), 4138 -12px 12px 8px rgba(255, 20, 147, 0.15); 4139 } 4140 100% { 4141 box-shadow: 0 0 6px rgba(255, 20, 147, 0.5), 4142 0 0 15px rgba(255, 105, 180, 0.3); 4143 } 4144} 4145 4146/* Apply firework burst to all pink theme buttons on hover */ 4147.calendar-theme-pink .cal-nav-btn:hover, 4148.calendar-theme-pink .cal-today-btn:hover, 4149.calendar-theme-pink .btn-save-sleek:hover, 4150.calendar-theme-pink .btn-cancel-sleek:hover, 4151.calendar-theme-pink .btn-add-event:hover, 4152.calendar-theme-pink .event-edit-btn:hover, 4153.calendar-theme-pink .event-delete-btn:hover, 4154.calendar-theme-pink .event-action-btn:hover { 4155 background: #ff1493 !important; 4156 color: #1a0d14 !important; 4157 border-color: #ff69b4 !important; 4158 animation: pink-firework-burst 0.6s ease-out forwards; 4159 transform: scale(1.1); 4160 filter: brightness(1.4); 4161} 4162 4163.calendar-theme-pink .cal-nav-btn:active, 4164.calendar-theme-pink .cal-today-btn:active, 4165.calendar-theme-pink .btn-save-sleek:active, 4166.calendar-theme-pink .btn-cancel-sleek:active, 4167.calendar-theme-pink .btn-add-event:active { 4168 transform: scale(0.92); 4169 filter: brightness(1.6); 4170 animation: none; 4171 box-shadow: 0 0 25px rgba(255, 20, 147, 1), 0 0 50px rgba(255, 105, 180, 0.6); 4172} 4173 4174/* Sidebar pink button firework */ 4175.sidebar-pink .event-edit-btn:hover, 4176.sidebar-pink .event-delete-btn:hover { 4177 background: #ff1493 !important; 4178 color: #1a0d14 !important; 4179 animation: pink-firework-burst 0.6s ease-out forwards; 4180 transform: scale(1.1); 4181} 4182 4183/* Panel standalone pink buttons */ 4184.event-panel-standalone[data-theme="pink"] .panel-nav-btn:hover, 4185.event-panel-standalone[data-theme="pink"] .panel-today-btn:hover, 4186.event-panel-standalone[data-theme="pink"] .panel-add-btn:hover { 4187 background: #ff1493 !important; 4188 color: #1a0d14 !important; 4189 animation: pink-firework-burst 0.6s ease-out forwards; 4190 transform: scale(1.1); 4191} 4192 4193/* ======================================== 4194 TEXT COLOR PROTECTION 4195 Forces text to stay readable on dark themes 4196 when browser extensions modify page colors. 4197 Only uses color !important — no filter, no 4198 color-scheme, no variable resets. 4199 ======================================== */ 4200 4201/* Matrix: green text on dark background */ 4202.calendar-theme-matrix .event-title-compact, 4203.calendar-theme-matrix .event-list-header, 4204.calendar-theme-matrix .calendar-day-headers, 4205.sidebar-matrix .event-title-compact { 4206 color: var(--text-bright, #00ff00) !important; 4207 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4208} 4209 4210.calendar-theme-matrix .event-meta-compact, 4211.calendar-theme-matrix .event-desc-compact, 4212.calendar-theme-matrix .no-events-msg, 4213.sidebar-matrix .event-meta-compact, 4214.sidebar-matrix .event-desc-compact { 4215 color: var(--text-dim, #00aa00) !important; 4216 -webkit-text-fill-color: var(--text-dim, #00aa00) !important; 4217} 4218 4219.calendar-theme-matrix .day-num, 4220.calendar-theme-matrix .cal-nav-btn, 4221.calendar-theme-matrix .cal-today-btn, 4222.sidebar-matrix .eventlist-today-date { 4223 color: var(--text-primary, #00cc07) !important; 4224 -webkit-text-fill-color: var(--text-primary, #00cc07) !important; 4225} 4226 4227/* Purple: purple text on dark background */ 4228.calendar-theme-purple .event-title-compact, 4229.calendar-theme-purple .event-list-header, 4230.calendar-theme-purple .calendar-day-headers, 4231.sidebar-purple .event-title-compact { 4232 color: var(--text-bright, #d4a5ff) !important; 4233 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4234} 4235 4236.calendar-theme-purple .event-meta-compact, 4237.calendar-theme-purple .event-desc-compact, 4238.calendar-theme-purple .no-events-msg, 4239.sidebar-purple .event-meta-compact, 4240.sidebar-purple .event-desc-compact { 4241 color: var(--text-dim, #8e7ab8) !important; 4242 -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important; 4243} 4244 4245.calendar-theme-purple .day-num, 4246.calendar-theme-purple .cal-nav-btn, 4247.calendar-theme-purple .cal-today-btn, 4248.sidebar-purple .eventlist-today-date { 4249 color: var(--text-primary, #b19cd9) !important; 4250 -webkit-text-fill-color: var(--text-primary, #b19cd9) !important; 4251} 4252 4253/* Pink: pink text on dark background */ 4254.calendar-theme-pink .event-title-compact, 4255.calendar-theme-pink .event-list-header, 4256.calendar-theme-pink .calendar-day-headers, 4257.sidebar-pink .event-title-compact { 4258 color: var(--text-bright, #ff1493) !important; 4259 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4260} 4261 4262.calendar-theme-pink .event-meta-compact, 4263.calendar-theme-pink .event-desc-compact, 4264.calendar-theme-pink .no-events-msg, 4265.sidebar-pink .event-meta-compact, 4266.sidebar-pink .event-desc-compact { 4267 color: var(--text-dim, #ff85c1) !important; 4268 -webkit-text-fill-color: var(--text-dim, #ff85c1) !important; 4269} 4270 4271.calendar-theme-pink .day-num, 4272.calendar-theme-pink .cal-nav-btn, 4273.calendar-theme-pink .cal-today-btn, 4274.sidebar-pink .eventlist-today-date { 4275 color: var(--text-primary, #ff69b4) !important; 4276 -webkit-text-fill-color: var(--text-primary, #ff69b4) !important; 4277} 4278 4279/* Badge text AND background protection - all dark themes */ 4280.calendar-theme-matrix .event-today-badge, 4281.calendar-theme-matrix .event-pastdue-badge, 4282.calendar-theme-matrix .event-namespace-badge, 4283.calendar-theme-matrix .eventlist-simple-today-badge, 4284.calendar-theme-matrix .eventlist-simple-pastdue-badge, 4285.calendar-theme-matrix .panel-ns-badge, 4286.sidebar-matrix .event-today-badge, 4287.sidebar-matrix .event-pastdue-badge, 4288.sidebar-matrix .event-namespace-badge, 4289.calendar-theme-purple .event-today-badge, 4290.calendar-theme-purple .event-pastdue-badge, 4291.calendar-theme-purple .event-namespace-badge, 4292.calendar-theme-purple .eventlist-simple-today-badge, 4293.calendar-theme-purple .eventlist-simple-pastdue-badge, 4294.calendar-theme-purple .panel-ns-badge, 4295.sidebar-purple .event-today-badge, 4296.sidebar-purple .event-pastdue-badge, 4297.sidebar-purple .event-namespace-badge, 4298.calendar-theme-pink .event-today-badge, 4299.calendar-theme-pink .event-pastdue-badge, 4300.calendar-theme-pink .event-namespace-badge, 4301.calendar-theme-pink .eventlist-simple-today-badge, 4302.calendar-theme-pink .eventlist-simple-pastdue-badge, 4303.calendar-theme-pink .panel-ns-badge, 4304.sidebar-pink .event-today-badge, 4305.sidebar-pink .event-pastdue-badge, 4306.sidebar-pink .event-namespace-badge { 4307 color: var(--background-site, white) !important; 4308 -webkit-text-fill-color: var(--background-site, white) !important; 4309 background: var(--text-bright) !important; 4310} 4311 4312.calendar-theme-matrix .event-pastdue-badge, 4313.calendar-theme-purple .event-pastdue-badge, 4314.calendar-theme-pink .event-pastdue-badge, 4315.calendar-theme-matrix .eventlist-simple-pastdue-badge, 4316.calendar-theme-purple .eventlist-simple-pastdue-badge, 4317.calendar-theme-pink .eventlist-simple-pastdue-badge, 4318.sidebar-matrix .event-pastdue-badge, 4319.sidebar-purple .event-pastdue-badge, 4320.sidebar-pink .event-pastdue-badge { 4321 background: var(--pastdue-color, #e74c3c) !important; 4322} 4323 4324/* Purple: sidebar section event text and section headers */ 4325.sidebar-purple .event-title-compact, 4326.sidebar-purple .event-meta-compact, 4327.sidebar-purple .event-desc-compact { 4328 color: var(--text-primary, #b19cd9) !important; 4329 -webkit-text-fill-color: var(--text-primary, #b19cd9) !important; 4330} 4331 4332.sidebar-purple .eventlist-today-clock { 4333 color: var(--text-bright, #d4a5ff) !important; 4334 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4335} 4336 4337.sidebar-purple .eventlist-today-date { 4338 color: var(--text-dim, #8e7ab8) !important; 4339 -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important; 4340} 4341 4342/* Pink: sidebar section event text */ 4343.sidebar-pink .event-title-compact { 4344 color: var(--text-bright, #ff1493) !important; 4345 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4346} 4347 4348.sidebar-pink .eventlist-today-clock { 4349 color: var(--text-bright, #ff1493) !important; 4350 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4351} 4352 4353.sidebar-pink .eventlist-today-date { 4354 color: var(--text-dim, #ff85c1) !important; 4355 -webkit-text-fill-color: var(--text-dim, #ff85c1) !important; 4356} 4357 4358/* ======================================== 4359 EVENTLIST THEMING 4360 Applies theme colors to {{eventlist}} output 4361 ======================================== */ 4362 4363/* Matrix eventlist */ 4364.eventlist-theme-matrix .eventlist-simple-title { 4365 color: var(--text-bright, #00ff00) !important; 4366 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4367} 4368 4369.eventlist-theme-matrix .eventlist-simple-header { 4370 color: var(--text-primary, #00cc07) !important; 4371 -webkit-text-fill-color: var(--text-primary, #00cc07) !important; 4372 background: var(--cell-bg, #242424) !important; 4373} 4374 4375.eventlist-theme-matrix .eventlist-simple-time, 4376.eventlist-theme-matrix .eventlist-simple-date, 4377.eventlist-theme-matrix .eventlist-simple-body { 4378 color: var(--text-dim, #00aa00) !important; 4379 -webkit-text-fill-color: var(--text-dim, #00aa00) !important; 4380 background: var(--background-site, #242424) !important; 4381} 4382 4383.eventlist-theme-matrix .eventlist-simple-body a { 4384 color: var(--text-bright, #00ff00) !important; 4385 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4386} 4387 4388.eventlist-theme-matrix .eventlist-simple-body strong { 4389 color: var(--text-primary, #00cc07) !important; 4390 -webkit-text-fill-color: var(--text-primary, #00cc07) !important; 4391} 4392 4393.eventlist-theme-matrix .eventlist-simple-body code { 4394 background: var(--cell-bg, #1a3d1a) !important; 4395 color: var(--text-primary, #00cc07) !important; 4396 -webkit-text-fill-color: var(--text-primary, #00cc07) !important; 4397} 4398 4399.eventlist-theme-matrix .eventlist-simple-namespace { 4400 background: var(--cell-today-bg, #2a4d2a) !important; 4401 color: var(--text-bright, #00ff00) !important; 4402 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4403} 4404 4405.eventlist-theme-matrix .eventlist-simple-empty, 4406.eventlist-theme-matrix .eventlist-simple-empty .eventlist-simple-body { 4407 color: var(--text-dim, #00aa00) !important; 4408 -webkit-text-fill-color: var(--text-dim, #00aa00) !important; 4409} 4410 4411.eventlist-theme-matrix .eventlist-simple-item { 4412 border-bottom-color: var(--border-color, #00cc07) !important; 4413} 4414 4415.eventlist-theme-matrix .eventlist-today-header { 4416 background: var(--cell-bg, #242424) !important; 4417 color: var(--text-bright, #00ff00) !important; 4418 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4419 border-color: var(--text-bright, #00ff00) !important; 4420} 4421 4422.eventlist-theme-matrix .eventlist-today-clock { 4423 color: var(--text-bright, #00ff00) !important; 4424 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4425} 4426 4427.eventlist-theme-matrix .eventlist-today-date { 4428 color: var(--text-dim, #00aa00) !important; 4429 -webkit-text-fill-color: var(--text-dim, #00aa00) !important; 4430} 4431 4432/* Purple eventlist */ 4433.eventlist-theme-purple .eventlist-simple-title { 4434 color: var(--text-bright, #d4a5ff) !important; 4435 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4436} 4437 4438.eventlist-theme-purple .eventlist-simple-header { 4439 color: var(--text-primary, #b19cd9) !important; 4440 -webkit-text-fill-color: var(--text-primary, #b19cd9) !important; 4441 background: var(--cell-bg, #2a2030) !important; 4442} 4443 4444.eventlist-theme-purple .eventlist-simple-time, 4445.eventlist-theme-purple .eventlist-simple-date, 4446.eventlist-theme-purple .eventlist-simple-body { 4447 color: var(--text-dim, #8e7ab8) !important; 4448 -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important; 4449 background: var(--background-site, #2a2030) !important; 4450} 4451 4452.eventlist-theme-purple .eventlist-simple-body a { 4453 color: var(--text-bright, #d4a5ff) !important; 4454 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4455} 4456 4457.eventlist-theme-purple .eventlist-simple-body strong { 4458 color: var(--text-primary, #b19cd9) !important; 4459 -webkit-text-fill-color: var(--text-primary, #b19cd9) !important; 4460} 4461 4462.eventlist-theme-purple .eventlist-simple-body code { 4463 background: var(--cell-bg, #3d2b4d) !important; 4464 color: var(--text-primary, #b19cd9) !important; 4465 -webkit-text-fill-color: var(--text-primary, #b19cd9) !important; 4466} 4467 4468.eventlist-theme-purple .eventlist-simple-namespace { 4469 background: var(--cell-today-bg, #3d2b4d) !important; 4470 color: var(--text-bright, #d4a5ff) !important; 4471 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4472} 4473 4474.eventlist-theme-purple .eventlist-simple-empty, 4475.eventlist-theme-purple .eventlist-simple-empty .eventlist-simple-body { 4476 color: var(--text-dim, #8e7ab8) !important; 4477 -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important; 4478} 4479 4480.eventlist-theme-purple .eventlist-simple-item { 4481 border-bottom-color: var(--border-color, #9b59b6) !important; 4482} 4483 4484.eventlist-theme-purple .eventlist-today-header { 4485 background: var(--cell-bg, #2a2030) !important; 4486 color: var(--text-bright, #d4a5ff) !important; 4487 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4488 border-color: var(--text-bright, #d4a5ff) !important; 4489} 4490 4491.eventlist-theme-purple .eventlist-today-clock { 4492 color: var(--text-bright, #d4a5ff) !important; 4493 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4494} 4495 4496.eventlist-theme-purple .eventlist-today-date { 4497 color: var(--text-dim, #8e7ab8) !important; 4498 -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important; 4499} 4500 4501/* Pink eventlist */ 4502.eventlist-theme-pink .eventlist-simple-title { 4503 color: var(--text-bright, #ff1493) !important; 4504 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4505} 4506 4507.eventlist-theme-pink .eventlist-simple-header { 4508 color: var(--text-primary, #ff69b4) !important; 4509 -webkit-text-fill-color: var(--text-primary, #ff69b4) !important; 4510 background: var(--cell-bg, #1a0d14) !important; 4511} 4512 4513.eventlist-theme-pink .eventlist-simple-time, 4514.eventlist-theme-pink .eventlist-simple-date, 4515.eventlist-theme-pink .eventlist-simple-body { 4516 color: var(--text-dim, #ff85c1) !important; 4517 -webkit-text-fill-color: var(--text-dim, #ff85c1) !important; 4518 background: var(--background-site, #1a0d14) !important; 4519} 4520 4521.eventlist-theme-pink .eventlist-simple-body a { 4522 color: var(--text-bright, #ff1493) !important; 4523 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4524} 4525 4526.eventlist-theme-pink .eventlist-simple-body strong { 4527 color: var(--text-primary, #ff69b4) !important; 4528 -webkit-text-fill-color: var(--text-primary, #ff69b4) !important; 4529} 4530 4531.eventlist-theme-pink .eventlist-simple-body code { 4532 background: var(--cell-bg, #2d1020) !important; 4533 color: var(--text-primary, #ff69b4) !important; 4534 -webkit-text-fill-color: var(--text-primary, #ff69b4) !important; 4535} 4536 4537.eventlist-theme-pink .eventlist-simple-namespace { 4538 background: var(--cell-today-bg, #2d1020) !important; 4539 color: var(--text-bright, #ff1493) !important; 4540 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4541} 4542 4543.eventlist-theme-pink .eventlist-simple-empty, 4544.eventlist-theme-pink .eventlist-simple-empty .eventlist-simple-body { 4545 color: var(--text-dim, #ff85c1) !important; 4546 -webkit-text-fill-color: var(--text-dim, #ff85c1) !important; 4547} 4548 4549.eventlist-theme-pink .eventlist-simple-item { 4550 border-bottom-color: var(--border-color, #ff1493) !important; 4551} 4552 4553.eventlist-theme-pink .eventlist-today-header { 4554 background: var(--cell-bg, #1a0d14) !important; 4555 color: var(--text-bright, #ff1493) !important; 4556 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4557 border-color: var(--text-bright, #ff1493) !important; 4558} 4559 4560.eventlist-theme-pink .eventlist-today-clock { 4561 color: var(--text-bright, #ff1493) !important; 4562 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4563} 4564 4565.eventlist-theme-pink .eventlist-today-date { 4566 color: var(--text-dim, #ff85c1) !important; 4567 -webkit-text-fill-color: var(--text-dim, #ff85c1) !important; 4568} 4569 4570/* ======================================== 4571 STATIC CALENDAR - Read-only Presentation Mode 4572 ======================================== */ 4573 4574.calendar-static { 4575 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; 4576 width: 100%; 4577 max-width: 100%; 4578 margin: 0 auto; 4579 box-sizing: border-box; 4580 overflow-x: auto; 4581} 4582 4583/* Header with navigation */ 4584.static-header { 4585 display: flex; 4586 align-items: center; 4587 justify-content: center; 4588 gap: 15px; 4589 padding: 12px; 4590 background: #2c3e50; 4591 color: white; 4592 border-radius: 8px 8px 0 0; 4593} 4594 4595.static-month-title { 4596 margin: 0; 4597 font-size: 1.3em; 4598 font-weight: 600; 4599 min-width: 180px; 4600 text-align: center; 4601} 4602 4603.static-nav-btn { 4604 background: rgba(255,255,255,0.2); 4605 border: none; 4606 color: white; 4607 font-size: 16px; 4608 width: 32px; 4609 height: 32px; 4610 border-radius: 50%; 4611 cursor: pointer; 4612 transition: background 0.2s; 4613 flex-shrink: 0; 4614} 4615 4616.static-nav-btn:hover { 4617 background: rgba(255,255,255,0.3); 4618} 4619 4620.static-print-btn { 4621 background: rgba(255,255,255,0.2); 4622 border: none; 4623 color: white; 4624 font-size: 16px; 4625 width: 32px; 4626 height: 32px; 4627 border-radius: 50%; 4628 cursor: pointer; 4629 transition: background 0.2s; 4630 flex-shrink: 0; 4631 margin-left: 10px; 4632 display: flex; 4633 align-items: center; 4634 justify-content: center; 4635 padding: 0; 4636 line-height: 1; 4637} 4638 4639.static-print-btn:hover { 4640 background: rgba(255,255,255,0.3); 4641} 4642 4643/* Calendar grid */ 4644.static-calendar-grid { 4645 width: 100%; 4646 border-collapse: collapse; 4647 background: white; 4648 border: 1px solid #ddd; 4649 table-layout: fixed; 4650} 4651 4652.static-calendar-grid th { 4653 background: #f5f5f5; 4654 padding: 8px 4px; 4655 text-align: center; 4656 font-weight: 600; 4657 color: #555; 4658 border-bottom: 2px solid #ddd; 4659 font-size: 12px; 4660} 4661 4662.static-calendar-grid td { 4663 border: 1px solid #eee; 4664 vertical-align: top; 4665 height: 80px; 4666 width: 14.28%; 4667 padding: 0; 4668 overflow: hidden; 4669} 4670 4671.static-day { 4672 height: 100%; 4673 position: relative; 4674} 4675 4676.static-day-empty { 4677 background: #fafafa; 4678} 4679 4680.static-day-number { 4681 position: absolute; 4682 top: 5px; 4683 right: 8px; 4684 font-size: 14px; 4685 font-weight: 500; 4686 color: #666; 4687} 4688 4689.static-day-today .static-day-number { 4690 background: #2c3e50; 4691 color: white; 4692 width: 24px; 4693 height: 24px; 4694 border-radius: 50%; 4695 display: flex; 4696 align-items: center; 4697 justify-content: center; 4698 right: 5px; 4699} 4700 4701.static-day-weekend { 4702 background: #fafafa; 4703} 4704 4705.static-day-events { 4706 padding: 28px 4px 4px 4px; 4707 display: flex; 4708 flex-direction: column; 4709 gap: 2px; 4710 max-height: 80px; 4711 overflow-y: auto; 4712} 4713 4714/* Individual events */ 4715.static-event { 4716 font-size: 11px; 4717 padding: 2px 4px; 4718 background: #f0f8ff; 4719 border-left: 3px solid #3498db; 4720 border-radius: 2px; 4721 white-space: nowrap; 4722 overflow: hidden; 4723 text-overflow: ellipsis; 4724 cursor: default; 4725} 4726 4727.static-event:hover { 4728 background: #e3f2fd; 4729} 4730 4731.static-event-important { 4732 background: linear-gradient(135deg, rgba(255, 215, 0, 0.2), rgba(255, 193, 7, 0.1)); 4733 border-left-color: #ffc107; 4734} 4735 4736.static-event-important:hover { 4737 background: linear-gradient(135deg, rgba(255, 215, 0, 0.3), rgba(255, 193, 7, 0.2)); 4738} 4739 4740.static-event-star { 4741 font-size: 10px; 4742 margin-right: 2px; 4743} 4744 4745.static-event-time { 4746 font-weight: 600; 4747 color: #2c3e50; 4748} 4749 4750.static-event-title { 4751 color: #333; 4752} 4753 4754/* Print view - hidden on screen */ 4755.static-print-view { 4756 display: none; 4757} 4758 4759/* Itinerary table for printing */ 4760.static-itinerary { 4761 width: 100%; 4762 border-collapse: collapse; 4763 margin-top: 20px; 4764} 4765 4766.static-itinerary th { 4767 background: #2c3e50; 4768 color: white; 4769 padding: 10px; 4770 text-align: left; 4771 font-weight: 600; 4772} 4773 4774.static-itinerary td { 4775 padding: 8px 10px; 4776 border-bottom: 1px solid #ddd; 4777 vertical-align: top; 4778} 4779 4780.static-itinerary-date { 4781 font-weight: 600; 4782 white-space: nowrap; 4783 width: 100px; 4784} 4785 4786.static-itinerary-time { 4787 white-space: nowrap; 4788 width: 120px; 4789 color: #555; 4790} 4791 4792.static-itinerary-title { 4793 font-weight: 500; 4794} 4795 4796.static-itinerary-desc { 4797 color: #666; 4798 font-size: 0.9em; 4799} 4800 4801.static-itinerary-important { 4802 background: rgba(255, 215, 0, 0.15); 4803} 4804 4805.static-print-title { 4806 margin: 0 0 10px 0; 4807 font-size: 1.5em; 4808 color: #2c3e50; 4809} 4810 4811.static-print-namespace { 4812 color: #666; 4813 margin: 0 0 15px 0; 4814 font-style: italic; 4815} 4816 4817.static-print-empty { 4818 color: #888; 4819 font-style: italic; 4820} 4821 4822/* Print styles */ 4823@media print { 4824 .calendar-static { 4825 max-width: 100%; 4826 width: 100%; 4827 overflow: visible !important; 4828 height: auto !important; 4829 min-height: 0 !important; 4830 max-height: none !important; 4831 } 4832 4833 /* Completely remove screen view from print flow */ 4834 .static-screen-view, 4835 .static-screen-view *, 4836 .static-header, 4837 .static-calendar-grid, 4838 .static-day, 4839 .static-day-events, 4840 .static-event, 4841 .static-nav-btn { 4842 display: none !important; 4843 visibility: hidden !important; 4844 height: 0 !important; 4845 max-height: 0 !important; 4846 width: 0 !important; 4847 max-width: 0 !important; 4848 overflow: hidden !important; 4849 position: absolute !important; 4850 left: -9999px !important; 4851 margin: 0 !important; 4852 padding: 0 !important; 4853 border: none !important; 4854 } 4855 4856 /* Show print view */ 4857 .static-print-view { 4858 display: block !important; 4859 visibility: visible !important; 4860 position: relative !important; 4861 height: auto !important; 4862 width: 100% !important; 4863 left: auto !important; 4864 } 4865 4866 .static-print-view * { 4867 visibility: visible !important; 4868 position: relative !important; 4869 left: auto !important; 4870 } 4871 4872 .static-itinerary { 4873 page-break-inside: auto; 4874 width: 100%; 4875 display: table !important; 4876 } 4877 4878 .static-itinerary tr { 4879 page-break-inside: avoid; 4880 page-break-after: auto; 4881 display: table-row !important; 4882 } 4883 4884 .static-itinerary td, 4885 .static-itinerary th { 4886 display: table-cell !important; 4887 height: auto !important; 4888 width: auto !important; 4889 } 4890 4891 .static-itinerary th { 4892 background: #333 !important; 4893 -webkit-print-color-adjust: exact; 4894 print-color-adjust: exact; 4895 } 4896 4897 .static-itinerary-important { 4898 background: #fffde7 !important; 4899 -webkit-print-color-adjust: exact; 4900 print-color-adjust: exact; 4901 } 4902 4903 .static-print-title, 4904 .static-print-namespace, 4905 .static-print-empty { 4906 page-break-after: avoid; 4907 display: block !important; 4908 height: auto !important; 4909 width: auto !important; 4910 } 4911} 4912 4913/* Responsive */ 4914@media (max-width: 768px) { 4915 .static-header { 4916 padding: 10px; 4917 gap: 10px; 4918 } 4919 4920 .static-month-title { 4921 font-size: 1.1em; 4922 min-width: 120px; 4923 } 4924 4925 .static-nav-btn { 4926 width: 28px; 4927 height: 28px; 4928 font-size: 14px; 4929 } 4930 4931 .static-calendar-grid th { 4932 padding: 6px 2px; 4933 font-size: 10px; 4934 } 4935 4936 .static-calendar-grid td { 4937 height: 60px; 4938 } 4939 4940 .static-day-number { 4941 font-size: 11px; 4942 top: 2px; 4943 right: 4px; 4944 } 4945 4946 .static-day-today .static-day-number { 4947 width: 18px; 4948 height: 18px; 4949 right: 2px; 4950 } 4951 4952 .static-day-events { 4953 padding: 20px 2px 2px 2px; 4954 max-height: 40px; 4955 gap: 1px; 4956 } 4957 4958 .static-event { 4959 font-size: 9px; 4960 padding: 1px 2px; 4961 } 4962 4963 .static-event-time { 4964 display: none; 4965 } 4966} 4967 4968@media (max-width: 480px) { 4969 .static-calendar-grid th { 4970 font-size: 9px; 4971 padding: 4px 1px; 4972 } 4973 4974 .static-calendar-grid td { 4975 height: 50px; 4976 } 4977 4978 .static-day-events { 4979 max-height: 30px; 4980 } 4981 4982 .static-event { 4983 font-size: 8px; 4984 } 4985} 4986 4987/* Static Calendar Theme Variations */ 4988.static-theme-matrix .static-header { 4989 background: #0a0a0a; 4990 border-bottom: 1px solid #00ff00; 4991} 4992 4993.static-theme-matrix .static-calendar-grid { 4994 background: #0d0d0d; 4995 border-color: #00ff00; 4996} 4997 4998.static-theme-matrix .static-calendar-grid th { 4999 background: #0a0a0a; 5000 color: #00ff00; 5001 border-color: #004400; 5002} 5003 5004.static-theme-matrix .static-calendar-grid td { 5005 border-color: #003300; 5006 color: #00cc00; 5007} 5008 5009.static-theme-matrix .static-day-empty { 5010 background: #050505; 5011} 5012 5013.static-theme-matrix .static-day-weekend { 5014 background: #0a0a0a; 5015} 5016 5017.static-theme-matrix .static-day-number { 5018 color: #00ff00; 5019} 5020 5021.static-theme-matrix .static-day-today .static-day-number { 5022 background: #00ff00; 5023 color: #000; 5024} 5025 5026.static-theme-matrix .static-event { 5027 background: rgba(0, 255, 0, 0.1); 5028 color: #00cc00; 5029} 5030 5031.static-theme-matrix .static-event:hover { 5032 background: rgba(0, 255, 0, 0.2); 5033} 5034 5035/* Pink theme */ 5036.static-theme-pink .static-header { 5037 background: linear-gradient(135deg, #ff1493, #ff69b4); 5038} 5039 5040.static-theme-pink .static-calendar-grid { 5041 background: #1a0a10; 5042 border-color: #ff1493; 5043} 5044 5045.static-theme-pink .static-calendar-grid th { 5046 background: #2a0a15; 5047 color: #ff69b4; 5048 border-color: #ff1493; 5049} 5050 5051.static-theme-pink .static-calendar-grid td { 5052 border-color: #440020; 5053 color: #ff85c0; 5054} 5055 5056.static-theme-pink .static-day-empty { 5057 background: #0d0508; 5058} 5059 5060.static-theme-pink .static-day-weekend { 5061 background: #150810; 5062} 5063 5064.static-theme-pink .static-day-number { 5065 color: #ff69b4; 5066} 5067 5068.static-theme-pink .static-day-today .static-day-number { 5069 background: #ff1493; 5070 color: #fff; 5071} 5072 5073.static-theme-pink .static-event { 5074 background: rgba(255, 20, 147, 0.15); 5075 color: #ff85c0; 5076} 5077 5078/* Dark theme */ 5079.static-theme-dark .static-header { 5080 background: #1a1a2e; 5081} 5082 5083.static-theme-dark .static-calendar-grid { 5084 background: #16213e; 5085 border-color: #1a1a2e; 5086} 5087 5088.static-theme-dark .static-calendar-grid th { 5089 background: #1a1a2e; 5090 color: #e0e0e0; 5091} 5092 5093.static-theme-dark .static-calendar-grid td { 5094 border-color: #2a2a4e; 5095 color: #c0c0c0; 5096} 5097 5098.static-theme-dark .static-day-empty { 5099 background: #0f0f1a; 5100} 5101 5102.static-theme-dark .static-day-weekend { 5103 background: #12121f; 5104} 5105 5106.static-theme-dark .static-day-number { 5107 color: #a0a0a0; 5108} 5109 5110.static-theme-dark .static-day-today .static-day-number { 5111 background: #4a90d9; 5112 color: #fff; 5113} 5114 5115.static-theme-dark .static-event { 5116 background: rgba(74, 144, 217, 0.2); 5117 color: #8ab4f8; 5118} 5119 5120 5121/* Purple theme for static calendar */ 5122.static-theme-purple .static-header { 5123 background: linear-gradient(180deg, #2f2438 0%, #2a2030 100%); 5124 border-bottom: 1px solid #9b59b6; 5125} 5126 5127.static-theme-purple .static-calendar-grid { 5128 background: #2a2030; 5129 border-color: #9b59b6; 5130} 5131 5132.static-theme-purple .static-calendar-grid th { 5133 background: #3d2b4d; 5134 color: #d4a5ff; 5135 border-color: #9b59b6; 5136} 5137 5138.static-theme-purple .static-calendar-grid td { 5139 border-color: #4d3860; 5140 color: #b19cd9; 5141} 5142 5143.static-theme-purple .static-day-empty { 5144 background: #1f1828; 5145} 5146 5147.static-theme-purple .static-day-weekend { 5148 background: #251d30; 5149} 5150 5151.static-theme-purple .static-day-number { 5152 color: #d4a5ff; 5153} 5154 5155.static-theme-purple .static-day-today .static-day-number { 5156 background: #9b59b6; 5157 color: #fff; 5158} 5159 5160.static-theme-purple .static-event { 5161 background: rgba(155, 89, 182, 0.2); 5162 color: #d4a5ff; 5163 border-left-color: #9b59b6; 5164} 5165 5166.static-theme-purple .static-event:hover { 5167 background: rgba(155, 89, 182, 0.3); 5168} 5169 5170/* Professional theme for static calendar */ 5171.static-theme-professional .static-header { 5172 background: linear-gradient(180deg, #ffffff 0%, #f5f7fa 100%); 5173 border-bottom: 2px solid #4a90e2; 5174 color: #2c3e50; 5175} 5176 5177.static-theme-professional .static-header h2 { 5178 color: #2c3e50; 5179} 5180 5181.static-theme-professional .static-nav-btn, 5182.static-theme-professional .static-print-btn { 5183 background: #4a90e2; 5184 color: white; 5185} 5186 5187.static-theme-professional .static-nav-btn:hover, 5188.static-theme-professional .static-print-btn:hover { 5189 background: #3a7bc8; 5190} 5191 5192.static-theme-professional .static-calendar-grid { 5193 background: #ffffff; 5194 border-color: #d0d7de; 5195} 5196 5197.static-theme-professional .static-calendar-grid th { 5198 background: #f5f7fa; 5199 color: #2c3e50; 5200 border-color: #d0d7de; 5201} 5202 5203.static-theme-professional .static-calendar-grid td { 5204 border-color: #e8ecf1; 5205 color: #2c3e50; 5206} 5207 5208.static-theme-professional .static-day-empty { 5209 background: #fafbfc; 5210} 5211 5212.static-theme-professional .static-day-weekend { 5213 background: #f5f7fa; 5214} 5215 5216.static-theme-professional .static-day-number { 5217 color: #2c3e50; 5218} 5219 5220.static-theme-professional .static-day-today .static-day-number { 5221 background: #4a90e2; 5222 color: #fff; 5223} 5224 5225.static-theme-professional .static-event { 5226 background: rgba(74, 144, 226, 0.1); 5227 color: #2c3e50; 5228 border-left-color: #4a90e2; 5229} 5230 5231.static-theme-professional .static-event:hover { 5232 background: rgba(74, 144, 226, 0.2); 5233} 5234 5235/* Wiki theme for static calendar (neutral, matches DokuWiki default) */ 5236.static-theme-wiki .static-header { 5237 background: #f5f5f5; 5238 border-bottom: 1px solid #ccc; 5239 color: #333; 5240} 5241 5242.static-theme-wiki .static-header h2 { 5243 color: #333; 5244} 5245 5246.static-theme-wiki .static-nav-btn, 5247.static-theme-wiki .static-print-btn { 5248 background: #ddd; 5249 color: #333; 5250} 5251 5252.static-theme-wiki .static-nav-btn:hover, 5253.static-theme-wiki .static-print-btn:hover { 5254 background: #ccc; 5255} 5256 5257.static-theme-wiki .static-calendar-grid { 5258 background: #fff; 5259 border-color: #ccc; 5260} 5261 5262.static-theme-wiki .static-calendar-grid th { 5263 background: #f0f0f0; 5264 color: #333; 5265 border-color: #ccc; 5266} 5267 5268.static-theme-wiki .static-calendar-grid td { 5269 border-color: #ddd; 5270 color: #333; 5271} 5272 5273.static-theme-wiki .static-day-empty { 5274 background: #fafafa; 5275} 5276 5277.static-theme-wiki .static-day-weekend { 5278 background: #f5f5f5; 5279} 5280 5281.static-theme-wiki .static-day-number { 5282 color: #333; 5283} 5284 5285.static-theme-wiki .static-day-today .static-day-number { 5286 background: #2196f3; 5287 color: #fff; 5288} 5289 5290.static-theme-wiki .static-event { 5291 background: #e3f2fd; 5292 color: #333; 5293 border-left-color: #2196f3; 5294} 5295 5296.static-theme-wiki .static-event:hover { 5297 background: #bbdefb; 5298} 5299 5300/* Light theme (clean white) */ 5301.static-theme-light .static-header { 5302 background: #ffffff; 5303 border-bottom: 2px solid #e0e0e0; 5304 color: #333; 5305} 5306 5307.static-theme-light .static-header h2 { 5308 color: #333; 5309} 5310 5311.static-theme-light .static-nav-btn, 5312.static-theme-light .static-print-btn { 5313 background: #e0e0e0; 5314 color: #333; 5315} 5316 5317.static-theme-light .static-nav-btn:hover, 5318.static-theme-light .static-print-btn:hover { 5319 background: #d0d0d0; 5320} 5321 5322.static-theme-light .static-calendar-grid { 5323 background: #ffffff; 5324 border-color: #e0e0e0; 5325} 5326 5327.static-theme-light .static-calendar-grid th { 5328 background: #fafafa; 5329 color: #333; 5330 border-color: #e0e0e0; 5331} 5332 5333.static-theme-light .static-calendar-grid td { 5334 border-color: #f0f0f0; 5335 color: #333; 5336} 5337 5338.static-theme-light .static-day-empty { 5339 background: #fafafa; 5340} 5341 5342.static-theme-light .static-day-weekend { 5343 background: #f5f5f5; 5344} 5345 5346.static-theme-light .static-day-number { 5347 color: #666; 5348} 5349 5350.static-theme-light .static-day-today .static-day-number { 5351 background: #333; 5352 color: #fff; 5353} 5354 5355.static-theme-light .static-event { 5356 background: #f5f5f5; 5357 color: #333; 5358} 5359 5360.static-theme-light .static-event:hover { 5361 background: #eeeeee; 5362} 5363 5364/* Static calendar rich tooltip */ 5365.static-tooltip { 5366 position: fixed; 5367 background: #2c3e50; 5368 color: white; 5369 padding: 10px 14px; 5370 border-radius: 6px; 5371 font-size: 12px; 5372 max-width: 300px; 5373 z-index: 10000; 5374 box-shadow: 0 4px 12px rgba(0,0,0,0.3); 5375 pointer-events: none; 5376 line-height: 1.4; 5377} 5378 5379.static-tooltip strong { 5380 display: block; 5381 margin-bottom: 4px; 5382 font-size: 13px; 5383} 5384 5385.static-tooltip .tooltip-time { 5386 color: #3498db; 5387 font-weight: 500; 5388} 5389 5390.static-tooltip .tooltip-desc { 5391 display: block; 5392 margin-top: 6px; 5393 color: #ecf0f1; 5394 border-top: 1px solid rgba(255,255,255,0.2); 5395 padding-top: 6px; 5396} 5397 5398.static-tooltip .tooltip-desc strong { 5399 display: inline; 5400 margin: 0; 5401 font-size: inherit; 5402} 5403 5404.static-tooltip .tooltip-desc em { 5405 font-style: italic; 5406} 5407 5408.static-tooltip a { 5409 color: #3498db; 5410 text-decoration: underline; 5411} 5412 5413/* Itinerary description formatting */ 5414.static-itinerary-desc strong { 5415 font-weight: 600; 5416} 5417 5418.static-itinerary-desc em { 5419 font-style: italic; 5420} 5421 5422.static-itinerary-desc a { 5423 color: #2980b9; 5424 text-decoration: underline; 5425} 5426 5427.static-itinerary-desc br { 5428 display: block; 5429 content: ""; 5430 margin-top: 4px; 5431} 5432