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-simple-item { 2583 border-bottom: 1px solid var(--border-color, #e0e0e0); 2584 padding: 0; 2585} 2586 2587.eventlist-simple-item:last-child { 2588 border-bottom: none; 2589} 2590 2591.eventlist-simple-today { 2592 background: var(--cell-today-bg, #f3eeff) !important; 2593 border-left: 3px solid var(--border-main, #9b59b6) !important; 2594} 2595 2596.eventlist-simple-today .eventlist-simple-header { 2597 background: var(--cell-today-bg, #e8d9ff) !important; 2598} 2599 2600.eventlist-simple-today .eventlist-simple-body { 2601 background: var(--cell-bg, #f9f5ff) !important; 2602} 2603 2604.eventlist-simple-today-badge { 2605 background: var(--border-main, #9b59b6); 2606 color: var(--background-site, white); 2607 padding: 1px 4px; 2608 border-radius: 3px; 2609 font-size: 9px; 2610 font-weight: 600; 2611 letter-spacing: 0.5px; 2612 display: inline-block; 2613 vertical-align: middle; 2614 float: right; /* Right-align */ 2615 margin-left: auto; 2616} 2617 2618.eventlist-simple-pastdue { 2619 background: var(--pastdue-bg, #ffe6e6) !important; 2620 border-left: 3px solid var(--pastdue-color, #e74c3c) !important; 2621} 2622 2623.eventlist-simple-pastdue .eventlist-simple-header { 2624 background: var(--pastdue-bg-strong, #ffd9d9) !important; 2625} 2626 2627.eventlist-simple-pastdue .eventlist-simple-body { 2628 background: var(--pastdue-bg-light, #fff2f2) !important; 2629} 2630 2631.eventlist-simple-pastdue-badge { 2632 background: var(--pastdue-color, #e74c3c); 2633 color: white; 2634 padding: 1px 4px; 2635 border-radius: 3px; 2636 font-size: 9px; 2637 font-weight: 600; 2638 letter-spacing: 0.5px; 2639 display: inline-block; 2640 vertical-align: middle; 2641 float: right; /* Right-align */ 2642 margin-left: auto; 2643} 2644 2645.eventlist-simple-tomorrow { 2646 background: var(--tomorrow-bg, #fff9e6) !important; 2647} 2648 2649.eventlist-simple-tomorrow .eventlist-simple-header { 2650 background: var(--tomorrow-bg-strong, #fff4cc) !important; 2651} 2652 2653.eventlist-simple-tomorrow .eventlist-simple-body { 2654 background: var(--tomorrow-bg-light, #fffbf0) !important; 2655} 2656 2657.eventlist-simple-header { 2658 font-weight: 500; 2659 color: var(--text-primary, #2c3e50); 2660 padding: 4px 6px; 2661 line-height: 1.5; 2662 background: var(--cell-bg, #f5fcf5); 2663 font-size: 11px; 2664} 2665 2666.eventlist-simple-title { 2667 font-weight: 700; 2668 color: var(--text-bright, #ff6600); 2669 font-size: 12px; 2670} 2671 2672.eventlist-simple-time { 2673 color: var(--text-dim, #666); 2674 font-size: 10px; 2675} 2676 2677.eventlist-simple-date { 2678 color: var(--text-dim, #888); 2679 font-size: 10px; 2680} 2681 2682.eventlist-simple-namespace { 2683 background: var(--cell-today-bg, #e8f5e9); 2684 color: var(--text-bright, #388e3c); 2685 padding: 1px 4px; 2686 border-radius: 3px; 2687 font-size: 9px; 2688 font-weight: 500; 2689 margin-left: 4px; 2690} 2691 2692.eventlist-simple-body { 2693 color: var(--text-dim, #555); 2694 font-size: 11px; 2695 line-height: 1.5; 2696 padding: 4px 6px; 2697 background: var(--background-site, #fff); 2698} 2699 2700.eventlist-simple-body a { 2701 color: var(--text-bright, #008800); 2702 text-decoration: none; 2703} 2704 2705.eventlist-simple-body a:hover { 2706 text-decoration: underline; 2707} 2708 2709.eventlist-simple-body strong { 2710 font-weight: 600; 2711 color: var(--text-primary, #2c3e50); 2712} 2713 2714.eventlist-simple-body code { 2715 background: var(--cell-bg, #f5f5f5); 2716 padding: 1px 3px; 2717 border-radius: 3px; 2718 font-family: 'Courier New', monospace; 2719 font-size: 10px; 2720 color: var(--text-primary, inherit); 2721} 2722 2723.eventlist-simple-no-desc { 2724 display: none; 2725} 2726 2727.eventlist-simple-empty { 2728 padding: 10px 0; 2729 color: var(--text-dim, #999); 2730} 2731 2732.eventlist-simple-empty .eventlist-simple-header { 2733 margin-bottom: 4px; 2734 background: var(--cell-bg, #f5fcf5); 2735} 2736 2737.eventlist-simple-empty .eventlist-simple-body { 2738 color: var(--text-dim, #999); 2739 font-style: italic; 2740 padding: 4px 6px; 2741 font-size: 11px; 2742} 2743 2744.eventlist-widget-header { 2745 background: var(--text-bright, #008800); 2746 color: white; 2747 padding: 8px 12px; 2748 flex-shrink: 0; 2749} 2750 2751.eventlist-widget-header h4 { 2752 margin: 0; 2753 font-size: 13px; 2754 font-weight: 600; 2755} 2756 2757.eventlist-widget-content { 2758 overflow-y: auto; 2759 padding: 8px; 2760 flex: 1; 2761} 2762 2763.eventlist-widget-date { 2764 font-size: 11px; 2765 font-weight: 600; 2766 color: var(--text-dim, #666); 2767 margin: 8px 0 4px 0; 2768 padding-bottom: 2px; 2769 border-bottom: 1px solid var(--border-color, #e0e0e0); 2770} 2771 2772.eventlist-widget-item { 2773 background: var(--cell-bg, #fafafa); 2774 border: 1px solid var(--border-color, #e0e0e0); 2775 border-left: 3px solid var(--text-bright, #3498db); 2776 border-radius: 3px; 2777 padding: 6px 8px; 2778 margin-bottom: 6px; 2779 transition: all 0.15s; 2780} 2781 2782.eventlist-widget-item:hover { 2783 background: var(--cell-bg, #f0f0f0); 2784 box-shadow: 0 1px 3px rgba(0,0,0,0.1); 2785} 2786 2787.eventlist-widget-title { 2788 font-size: 12px; 2789 font-weight: 600; 2790 color: var(--text-primary, #2c3e50); 2791 margin-bottom: 2px; 2792} 2793 2794.eventlist-widget-time { 2795 font-size: 11px; 2796 color: var(--text-dim, #666); 2797 margin-bottom: 4px; 2798} 2799 2800.eventlist-widget-desc { 2801 font-size: 11px; 2802 color: var(--text-dim, #555); 2803 margin-top: 4px; 2804 line-height: 1.4; 2805} 2806 2807.eventlist-widget-desc img { 2808 max-width: 100%; 2809 height: auto; 2810 border-radius: 3px; 2811 margin: 4px 0; 2812} 2813 2814.eventlist-widget-desc a { 2815 color: var(--text-bright, #008800); 2816 text-decoration: none; 2817 border-bottom: 1px dotted var(--text-bright, #008800); 2818} 2819 2820.eventlist-widget-desc a:hover { 2821 border-bottom-style: solid; 2822} 2823 2824.eventlist-widget-empty { 2825 text-align: center; 2826 color: var(--text-dim, #999); 2827 font-size: 12px; 2828 padding: 20px; 2829 margin: 0; 2830} 2831 2832/* Global themed link class (used in renderDescription) */ 2833.cal-link { 2834 color: var(--text-bright, #008800) !important; 2835 text-decoration: none; 2836 border-bottom: 1px dotted var(--text-bright, #008800); 2837 transition: all 0.15s; 2838} 2839 2840.cal-link:hover { 2841 border-bottom-style: solid; 2842 opacity: 0.85; 2843} 2844 2845/* Sidebar widget links - inherit theme colors */ 2846.sidebar-widget a.cal-link { 2847 color: var(--text-bright, #00cc07) !important; 2848 border-bottom-color: var(--text-bright, #00cc07); 2849} 2850 2851/* Standalone event panel (right panel only) */ 2852.event-panel-standalone { 2853 width: 320px; 2854 background: var(--background-site, #ffffff); 2855 border: 1px solid var(--border-color, #d0d0d0); 2856 border-radius: 6px; 2857 box-shadow: 0 2px 6px rgba(0,0,0,0.08); 2858 display: flex; 2859 flex-direction: column; 2860 max-height: 600px; 2861 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; 2862 font-size: 13px; 2863} 2864 2865/* Dark theme borders for event panel - match sidebar widget style */ 2866.event-panel-standalone[data-theme="matrix"] { 2867 border: 2px solid var(--border-main, #00cc07); 2868 box-shadow: 0 0 10px var(--shadow-color, rgba(0, 204, 7, 0.3)); 2869} 2870 2871.event-panel-standalone[data-theme="purple"] { 2872 border: 2px solid var(--border-main, #9b59b6); 2873 box-shadow: 0 0 10px var(--shadow-color, rgba(155, 89, 182, 0.3)); 2874} 2875 2876.event-panel-standalone[data-theme="pink"] { 2877 border: 2px solid var(--border-main, #ff1493); 2878 box-shadow: 0 0 10px var(--shadow-color, rgba(255, 20, 147, 0.4)); 2879} 2880 2881.event-panel-standalone .event-list-compact { 2882 overflow-y: auto; 2883 flex: 1; 2884 padding: 10px; 2885} 2886 2887/* Event panel - Compact two-row header for ~500px width (10% smaller) */ 2888.panel-header-compact { 2889 background: var(--cell-bg, #f5f5f5); 2890 border-bottom: 2px solid var(--border-color, #ddd); 2891} 2892 2893.panel-header-row-1 { 2894 display: flex; 2895 align-items: center; 2896 gap: 7px; 2897 padding: 7px 11px; 2898 background: var(--cell-bg, #fafafa); 2899 border-bottom: 1px solid var(--border-color, #e8e8e8); 2900} 2901 2902.panel-header-row-2 { 2903 display: flex; 2904 align-items: center; 2905 gap: 7px; 2906 padding: 7px 11px; 2907 background: var(--background-site, #ffffff); 2908} 2909 2910.panel-nav-btn { 2911 background: var(--cell-bg, #ffffff); 2912 border: 1px solid var(--border-color, #ccc); 2913 color: var(--text-primary, #333); 2914 width: 29px; 2915 height: 29px; 2916 border-radius: 4px; 2917 cursor: pointer; 2918 font-size: 16px; 2919 font-weight: bold; 2920 transition: all 0.2s; 2921 display: flex; 2922 align-items: center; 2923 justify-content: center; 2924 padding: 0; 2925 flex-shrink: 0; 2926} 2927 2928.panel-nav-btn:hover { 2929 background: var(--text-bright, #00cc07); 2930 color: var(--background-site, white); 2931 border-color: var(--text-bright, #00cc07); 2932 filter: brightness(1.2); 2933 box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3)); 2934} 2935 2936.panel-month-title { 2937 margin: 0; 2938 font-size: 13px; 2939 font-weight: 600; 2940 color: var(--text-primary, #2c3e50); 2941 cursor: pointer; 2942 padding: 5px 9px; 2943 border-radius: 4px; 2944 transition: background 0.2s; 2945 white-space: nowrap; 2946 user-select: none; 2947 flex: 1; 2948 text-align: center; 2949 background: var(--cell-bg, #ffffff); 2950 border: 1px solid var(--border-color, #e0e0e0); 2951} 2952 2953.panel-month-title:hover { 2954 background: var(--cell-today-bg, #e8f5e9); 2955 border-color: var(--text-bright, #00cc07); 2956} 2957 2958.panel-ns-badge { 2959 background: var(--cell-today-bg, #e3f2fd); 2960 color: var(--text-bright, #1976d2); 2961 padding: 3px 7px; 2962 border-radius: 11px; 2963 font-size: 9px; 2964 font-weight: 600; 2965 text-transform: uppercase; 2966 letter-spacing: 0.3px; 2967 white-space: nowrap; 2968 border: 1px solid var(--border-color, #bbdefb); 2969 flex-shrink: 0; 2970} 2971 2972.panel-ns-badge.filter-on { 2973 background: var(--text-bright, #ff9800); 2974 color: var(--background-site, white); 2975 border-color: var(--border-main, #f57c00); 2976 cursor: pointer; 2977 transition: all 0.2s; 2978} 2979 2980.panel-ns-badge.filter-on:hover { 2981 filter: brightness(1.2); 2982} 2983 2984.panel-today-btn { 2985 background: var(--cell-bg, #ffffff); 2986 border: 1px solid var(--border-color, #ccc); 2987 color: var(--text-primary, #333); 2988 padding: 5px 11px; 2989 border-radius: 4px; 2990 cursor: pointer; 2991 font-size: 10px; 2992 font-weight: 600; 2993 transition: all 0.2s; 2994 white-space: nowrap; 2995 flex-shrink: 0; 2996} 2997 2998.panel-today-btn:hover { 2999 background: var(--text-bright, #00cc07); 3000 color: var(--background-site, white); 3001 border-color: var(--text-bright, #00cc07); 3002 filter: brightness(1.2); 3003 box-shadow: 0 0 6px var(--shadow-color, rgba(0,0,0,0.3)); 3004} 3005 3006.panel-search-box { 3007 position: relative; 3008 flex: 1; 3009 display: flex; 3010 gap: 0; 3011} 3012 3013.panel-search-input { 3014 flex: 1; 3015 padding: 5px 25px 5px 9px; 3016 border: 1px solid var(--border-color, #d0d0d0); 3017 border-radius: 4px 0 0 4px; 3018 font-size: 11px; 3019 outline: none; 3020 transition: border-color 0.2s, box-shadow 0.2s; 3021 background: var(--cell-bg, #fafafa); 3022 color: var(--text-primary, #333); 3023} 3024 3025.panel-search-input:focus { 3026 border-color: var(--text-bright, #00cc07); 3027 box-shadow: 0 0 0 2px var(--shadow-color, rgba(0, 204, 7, 0.1)); 3028 background: var(--background-site, white); 3029} 3030 3031.panel-search-input::placeholder { 3032 color: var(--text-dim, #999); 3033} 3034 3035.panel-search-clear { 3036 position: absolute; 3037 right: 28px; 3038 top: 50%; 3039 transform: translateY(-50%); 3040 background: none; 3041 border: none; 3042 color: var(--text-dim, #999); 3043 cursor: pointer; 3044 padding: 3px; 3045 font-size: 13px; 3046 line-height: 1; 3047 transition: color 0.2s; 3048} 3049 3050.panel-search-clear:hover { 3051 color: var(--text-primary, #333); 3052} 3053 3054.panel-search-mode { 3055 background: var(--cell-bg, #f0f0f0); 3056 border: 1px solid var(--border-color, #d0d0d0); 3057 border-left: none; 3058 border-radius: 0 4px 4px 0; 3059 padding: 0 6px; 3060 cursor: pointer; 3061 font-size: 11px; 3062 transition: all 0.2s; 3063 color: var(--text-dim, #666); 3064 display: flex; 3065 align-items: center; 3066} 3067 3068.panel-search-mode:hover { 3069 background: var(--cell-today-bg, #e8f5e9); 3070 color: var(--text-bright, #00cc07); 3071} 3072 3073.panel-search-mode.all-dates { 3074 background: var(--text-bright, #00cc07); 3075 color: var(--background-site, white); 3076 border-color: var(--text-bright, #00cc07); 3077} 3078 3079.panel-search-mode.all-dates:hover { 3080 filter: brightness(1.1); 3081} 3082 3083.panel-add-btn { 3084 background: var(--text-bright, #00cc07); 3085 border: 1px solid var(--border-main, #00a806); 3086 color: var(--background-site, white); 3087 padding: 5px 13px; 3088 border-radius: 4px; 3089 cursor: pointer; 3090 font-size: 11px; 3091 font-weight: 600; 3092 transition: all 0.2s; 3093 white-space: nowrap; 3094 flex-shrink: 0; 3095} 3096 3097.panel-add-btn:hover { 3098 filter: brightness(1.3); 3099 transform: translateY(-1px); 3100 box-shadow: 0 2px 6px var(--shadow-color, rgba(0,0,0,0.2)); 3101} 3102 3103.panel-standalone-header { 3104 display: flex; 3105 align-items: center; 3106 gap: 8px; 3107 padding: 12px 12px; 3108 background: var(--cell-bg, #fafafa); 3109 border-bottom: 1px solid var(--border-color, #e0e0e0); 3110 flex-shrink: 0; 3111} 3112 3113.panel-header-content { 3114 flex: 1; 3115 display: flex; 3116 flex-direction: column; 3117 align-items: center; 3118 gap: 4px; 3119} 3120 3121.panel-standalone-header h3 { 3122 margin: 0; 3123 font-size: 12px; 3124 font-weight: 600; 3125 color: var(--text-primary, #2c3e50); 3126 white-space: nowrap; 3127} 3128 3129.panel-standalone-header .calendar-month-picker { 3130 cursor: pointer; 3131 user-select: none; 3132 transition: all 0.15s; 3133 padding: 4px 8px; 3134 border-radius: 4px; 3135 white-space: nowrap; 3136} 3137 3138.panel-standalone-header .calendar-month-picker:hover { 3139 background: var(--cell-today-bg, #e8e8e8); 3140 color: var(--text-bright, #008800); 3141} 3142 3143.panel-standalone-header .namespace-badge { 3144 font-size: 11px; 3145 font-weight: 500; 3146 color: var(--text-bright, #388e3c); 3147 background: var(--cell-today-bg, #e8f5e9); 3148 padding: 2px 8px; 3149 border-radius: 3px; 3150 text-decoration: none; 3151 transition: all 0.15s; 3152 display: inline-block; 3153} 3154 3155.panel-standalone-header .namespace-badge:hover { 3156 background: var(--cell-bg, #c8e6c9); 3157 color: var(--text-primary, #2e7d32); 3158} 3159 3160.panel-standalone-actions { 3161 padding: 10px 16px; 3162 background: var(--background-site, #ffffff); 3163 border-bottom: 1px solid var(--border-color, #e0e0e0); 3164 flex-shrink: 0; 3165 display: flex; 3166 align-items: center; 3167 gap: 8px; 3168} 3169 3170.panel-standalone-actions .add-event-compact { 3171 flex-shrink: 0; 3172} 3173 3174.eventlist-day-group { 3175 margin-bottom: 24px; 3176} 3177 3178.eventlist-date { 3179 margin: 0 0 12px 0; 3180 font-size: 14px; 3181 font-weight: 600; 3182 color: var(--text-primary, #2c3e50); 3183 background: var(--cell-bg, #f8f8f8); 3184 padding: 8px 12px; 3185 border-left: 4px solid var(--border-main, #008800); 3186} 3187 3188.eventlist-item { 3189 display: flex; 3190 margin-bottom: 10px; 3191 background: white; 3192 border: 1px solid var(--border-color, #e0e0e0); 3193 border-radius: 4px; 3194 overflow: hidden; 3195} 3196 3197.eventlist-content { 3198 flex: 1; 3199 padding: 12px; 3200 display: flex; 3201 align-items: center; 3202 gap: 12px; 3203} 3204 3205.eventlist-time { 3206 font-size: 12px; 3207 font-weight: 600; 3208 color: var(--text-bright, #008800); 3209 min-width: 50px; 3210} 3211 3212.eventlist-title { 3213 font-size: 14px; 3214 font-weight: 500; 3215 color: var(--text-primary, #2c3e50); 3216} 3217 3218.eventlist-desc { 3219 font-size: 12px; 3220 color: var(--text-dim, #666); 3221 margin-top: 6px; 3222 line-height: 1.4; 3223} 3224 3225/* =================================== 3226 MOBILE RESPONSIVE - EVENTLIST & EVENTPANEL 3227 =================================== */ 3228 3229/* Tablet and below (768px) */ 3230@media (max-width: 768px) { 3231 /* Event Panel Standalone */ 3232 .event-panel-standalone { 3233 width: 100%; 3234 max-width: 100%; 3235 border-radius: 0; 3236 max-height: none; 3237 min-height: 400px; 3238 } 3239 3240 /* Compact Event List Widget */ 3241 .eventlist-compact-widget { 3242 width: 100% !important; 3243 max-width: 100%; 3244 border-radius: 0; 3245 } 3246 3247 .eventlist-widget-header h4 { 3248 font-size: 14px; 3249 } 3250 3251 .eventlist-widget-title { 3252 font-size: 13px; 3253 } 3254 3255 .eventlist-widget-time { 3256 font-size: 12px; 3257 } 3258 3259 /* Standalone event list (old style) */ 3260 .eventlist-standalone { 3261 max-width: 100%; 3262 margin: 10px; 3263 padding: 15px; 3264 border-radius: 0; 3265 } 3266 3267 .eventlist-standalone h3 { 3268 font-size: 16px; 3269 } 3270} 3271 3272/* Mobile (480px and below) */ 3273@media (max-width: 480px) { 3274 /* Event Panel Standalone */ 3275 .event-panel-standalone { 3276 font-size: 12px; 3277 min-height: 300px; 3278 } 3279 3280 .panel-standalone-header { 3281 padding: 10px 12px; 3282 } 3283 3284 .panel-standalone-header h3 { 3285 font-size: 12px; 3286 } 3287 3288 .panel-standalone-actions { 3289 padding: 8px 12px; 3290 } 3291 3292 .event-panel-standalone .event-list-compact { 3293 padding: 8px; 3294 } 3295 3296 /* Compact Event List Widget */ 3297 .eventlist-compact-widget { 3298 min-width: 280px; 3299 } 3300 3301 .eventlist-widget-header { 3302 padding: 6px 10px; 3303 } 3304 3305 .eventlist-widget-header h4 { 3306 font-size: 13px; 3307 } 3308 3309 .eventlist-widget-content { 3310 padding: 6px; 3311 } 3312 3313 .eventlist-widget-item { 3314 padding: 5px 6px; 3315 margin-bottom: 5px; 3316 } 3317 3318 .eventlist-widget-title { 3319 font-size: 12px; 3320 } 3321 3322 .eventlist-widget-time { 3323 font-size: 11px; 3324 } 3325 3326 .eventlist-widget-desc { 3327 font-size: 11px; 3328 } 3329 3330 /* Standalone event list */ 3331 .eventlist-standalone { 3332 margin: 5px; 3333 padding: 10px; 3334 } 3335 3336 .eventlist-standalone h3 { 3337 font-size: 14px; 3338 margin-bottom: 15px; 3339 } 3340 3341 .eventlist-day-group { 3342 margin-bottom: 18px; 3343 } 3344 3345 .eventlist-date { 3346 font-size: 13px; 3347 padding: 6px 10px; 3348 } 3349 3350 .eventlist-title { 3351 font-size: 13px; 3352 } 3353 3354 .eventlist-time { 3355 font-size: 11px; 3356 } 3357 3358 .eventlist-desc { 3359 font-size: 11px; 3360 } 3361} 3362 3363/* Very small mobile (320px) */ 3364@media (max-width: 320px) { 3365 .eventlist-compact-widget { 3366 min-width: 100%; 3367 } 3368 3369 .event-panel-standalone { 3370 min-height: 250px; 3371 } 3372 3373 .eventlist-widget-header h4 { 3374 font-size: 12px; 3375 } 3376 3377 .eventlist-widget-title { 3378 font-size: 11px; 3379 } 3380 3381 .panel-standalone-header h3 { 3382 font-size: 12px; 3383 } 3384} 3385 3386/* Past Events Collapsible Section */ 3387.past-events-section { 3388 margin-bottom: 10px; 3389 border-bottom: 1px solid var(--border-color, #e0e0e0); 3390} 3391 3392.past-events-toggle { 3393 padding: 6px 10px; 3394 background: var(--cell-bg); 3395 color: var(--text-dim); 3396 cursor: pointer; 3397 user-select: none; 3398 font-size: 11px; 3399 font-weight: 600; 3400 display: flex; 3401 align-items: center; 3402 border-radius: 3px; 3403 transition: background 0.2s; 3404} 3405 3406.past-events-toggle:hover { 3407 background: var(--background-alt); 3408} 3409 3410.past-events-arrow { 3411 font-size: 9px; 3412 margin-right: 5px; 3413 transition: transform 0.2s; 3414 display: inline-block; 3415 width: 10px; 3416 color: var(--text-dim); 3417} 3418 3419.past-events-label { 3420 color: var(--text-dim); 3421} 3422 3423.past-events-content { 3424 margin-top: 5px; 3425} 3426 3427/* Namespace Search Dropdown */ 3428.namespace-search-wrapper { 3429 position: relative; 3430} 3431 3432.namespace-search-input { 3433 width: 100%; 3434} 3435 3436.namespace-dropdown { 3437 position: absolute; 3438 top: 100%; 3439 left: 0; 3440 right: 0; 3441 max-height: 200px; 3442 overflow-y: auto; 3443 background: white; 3444 border: 1px solid var(--border-color, #ddd); 3445 border-top: none; 3446 border-radius: 0 0 4px 4px; 3447 box-shadow: 0 4px 8px rgba(0,0,0,0.1); 3448 z-index: 1000; 3449 margin-top: -1px; 3450} 3451 3452.namespace-option { 3453 padding: 8px 12px; 3454 cursor: pointer; 3455 font-size: 12px; 3456 border-bottom: 1px solid var(--border-color, #f0f0f0); 3457 transition: background-color 0.15s; 3458} 3459 3460.namespace-option:hover { 3461 background-color: var(--cell-bg, #f5f5f5); 3462} 3463 3464.namespace-option.selected { 3465 background-color: var(--cell-today-bg, #e3f2fd); 3466 color: var(--text-bright, #1976d2); 3467} 3468 3469.namespace-option:last-child { 3470 border-bottom: none; 3471} 3472 3473/* Matrix-themed Sidebar Widget */ 3474.sidebar-matrix { 3475 font-family: system-ui, sans-serif !important; 3476 background: linear-gradient(180deg, #242424 0%, #2a2a2a 100%) !important; 3477 border: 2px solid #00cc07 !important; 3478 box-shadow: 0 0 15px rgba(0, 204, 7, 0.4), inset 0 0 20px rgba(0, 204, 7, 0.05) !important; 3479} 3480 3481.sidebar-matrix-header { 3482 background: linear-gradient(180deg, #2a2a2a 0%, #242424 100%) !important; 3483 border-bottom: 2px solid #00cc07 !important; 3484 box-shadow: 0 2px 8px rgba(0, 204, 7, 0.3) !important; 3485} 3486 3487.sidebar-matrix-clock { 3488 animation: matrix-pulse 2s ease-in-out infinite; 3489} 3490 3491.sidebar-matrix-date { 3492 opacity: 0.9; 3493} 3494 3495@keyframes matrix-pulse { 3496 0%, 100% { 3497 text-shadow: 0 0 2px rgba(0, 204, 7, 0.4); 3498 } 3499 50% { 3500 text-shadow: 0 0 4px rgba(0, 255, 0, 0.5), 0 0 6px rgba(0, 204, 7, 0.3); 3501 } 3502} 3503 3504/* Matrix glow effect for sidebar */ 3505.sidebar-widget.sidebar-matrix::before { 3506 content: ''; 3507 position: absolute; 3508 top: -2px; 3509 left: -2px; 3510 right: -2px; 3511 bottom: -2px; 3512 background: linear-gradient(45deg, #00cc07, #00ff00, #00cc07); 3513 border-radius: 4px; 3514 opacity: 0; 3515 z-index: -1; 3516 animation: matrix-border-glow 3s ease-in-out infinite; 3517} 3518 3519@keyframes matrix-border-glow { 3520 0%, 100% { 3521 opacity: 0; 3522 } 3523 50% { 3524 opacity: 0.3; 3525 } 3526} 3527 3528/* Scrollbar styling for matrix theme */ 3529.sidebar-matrix ::-webkit-scrollbar { 3530 width: 6px; 3531} 3532 3533.sidebar-matrix ::-webkit-scrollbar-track { 3534 background: #242424; 3535} 3536 3537.sidebar-matrix ::-webkit-scrollbar-thumb { 3538 background: #00cc07; 3539 border-radius: 3px; 3540 box-shadow: 0 0 5px rgba(0, 204, 7, 0.5); 3541} 3542 3543.sidebar-matrix ::-webkit-scrollbar-thumb:hover { 3544 background: #00ff00; 3545 box-shadow: 0 0 8px rgba(0, 255, 0, 0.8); 3546} 3547 3548/* ==================================== 3549 PINK BLING THEME - SPECIAL EFFECTS 3550 ==================================== */ 3551 3552/* Shimmer animation for today's cell - BARELY NOTICEABLE */ 3553@keyframes pink-shimmer { 3554 0% { 3555 box-shadow: 0 0 2px rgba(255, 20, 147, 0.15), 3556 0 0 3px rgba(255, 20, 147, 0.08); 3557 } 3558 50% { 3559 box-shadow: 0 0 4px rgba(255, 20, 147, 0.25), 3560 0 0 6px rgba(255, 20, 147, 0.12); 3561 } 3562 100% { 3563 box-shadow: 0 0 2px rgba(255, 20, 147, 0.15), 3564 0 0 3px rgba(255, 20, 147, 0.08); 3565 } 3566} 3567 3568/* Sparkle animation for today's day number - BARELY NOTICEABLE */ 3569@keyframes pink-sparkle { 3570 0%, 100% { 3571 text-shadow: 0 0 2px rgba(255, 20, 147, 0.3); 3572 transform: scale(1); 3573 } 3574 50% { 3575 text-shadow: 0 0 3px rgba(255, 20, 147, 0.5); 3576 transform: scale(1.01); 3577 } 3578} 3579 3580/* Glow pulse for event bars - BARELY NOTICEABLE */ 3581@keyframes pink-glow-pulse { 3582 0%, 100% { 3583 box-shadow: 0 0 1px currentColor; 3584 } 3585 50% { 3586 box-shadow: 0 0 2px currentColor, 3587 0 0 3px rgba(255, 105, 180, 0.15); 3588 } 3589} 3590 3591/* Gradient shimmer for headers */ 3592@keyframes pink-gradient-shimmer { 3593 0% { 3594 background-position: 0% 50%; 3595 } 3596 50% { 3597 background-position: 100% 50%; 3598 } 3599 100% { 3600 background-position: 0% 50%; 3601 } 3602} 3603 3604/* Pink particle explosion on click */ 3605@keyframes particle-explode { 3606 0% { 3607 opacity: 1; 3608 transform: translate(0, 0) scale(1); 3609 } 3610 100% { 3611 opacity: 0; 3612 transform: translate(var(--tx), var(--ty)) scale(0); 3613 } 3614} 3615 3616/* Cursor trail glow */ 3617@keyframes cursor-trail-fade { 3618 0% { 3619 opacity: 1; 3620 transform: scale(1); 3621 } 3622 100% { 3623 opacity: 0; 3624 transform: scale(0.5); 3625 } 3626} 3627 3628/* Pink particle styles */ 3629.pink-particle { 3630 position: fixed; /* Changed to fixed so it works anywhere on screen */ 3631 width: 6px; 3632 height: 6px; 3633 background: radial-gradient(circle, #ff1493, #ff69b4); 3634 border-radius: 50%; 3635 pointer-events: none; 3636 z-index: 9999999; /* Above everything including dialogs */ 3637 box-shadow: 0 0 8px #ff1493, 3638 0 0 15px #ff69b4; 3639} 3640 3641/* Cursor trail glow */ 3642.pink-cursor-trail { 3643 position: fixed; /* Changed to fixed so it works anywhere on screen */ 3644 width: 8px; 3645 height: 8px; 3646 background: radial-gradient(circle, rgba(255, 20, 147, 0.8), rgba(255, 105, 180, 0.4)); 3647 border-radius: 50%; 3648 pointer-events: none; 3649 z-index: 9999998; /* Just below particles */ 3650 box-shadow: 0 0 10px rgba(255, 20, 147, 0.6), 3651 0 0 20px rgba(255, 105, 180, 0.3); 3652} 3653 3654/* Tiny neon pixel sparkles */ 3655.pink-pixel-sparkle { 3656 position: fixed; 3657 width: 2px; 3658 height: 2px; 3659 background: var(--background-site, #fff); 3660 border-radius: 50%; 3661 pointer-events: none; 3662 z-index: 9999997; /* Just below trail */ 3663 box-shadow: 0 0 2px #ff1493, 3664 0 0 4px #ff69b4, 3665 0 0 6px #fff; 3666} 3667 3668/* Pixel sparkle twinkle animation */ 3669@keyframes pixel-twinkle { 3670 0%, 100% { 3671 opacity: 0; 3672 transform: scale(0); 3673 } 3674 50% { 3675 opacity: 1; 3676 transform: scale(1.5); 3677 } 3678} 3679 3680/* Pixel sparkle float away */ 3681@keyframes pixel-float-away { 3682 0% { 3683 opacity: 1; 3684 transform: translateY(0) scale(1); 3685 } 3686 100% { 3687 opacity: 0; 3688 transform: translateY(-30px) scale(0); 3689 } 3690} 3691 3692/* Pink theme specific styles - TONED DOWN */ 3693.calendar-theme-pink .cal-today { 3694 animation: pink-shimmer 2s ease-in-out infinite; 3695 border: 2px solid #ff1493 !important; 3696 position: relative; 3697 overflow: visible; 3698} 3699 3700.calendar-theme-pink .cal-today .day-num, 3701.calendar-theme-pink .day-num-today { 3702 background: transparent !important; 3703 color: #fff !important; 3704 position: relative; 3705 z-index: 1; 3706 font-weight: 700; 3707 filter: none; 3708 width: 22px; 3709 height: 22px; 3710 line-height: 22px; 3711 text-align: center; 3712 font-size: 10px; 3713 padding: 0; 3714 display: inline-flex; 3715 align-items: center; 3716 justify-content: center; 3717 overflow: visible; 3718} 3719 3720/* Heart shape behind the day number */ 3721.calendar-theme-pink .cal-today .day-num::before, 3722.calendar-theme-pink .day-num-today::before { 3723 content: '♥'; 3724 position: absolute; 3725 top: 50%; 3726 left: 50%; 3727 transform: translate(-50%, -48%); 3728 font-size: 26px; 3729 color: #ff1493; 3730 z-index: -1; 3731 text-shadow: 0 0 8px rgba(255, 20, 147, 0.7), 3732 0 0 16px rgba(255, 20, 147, 0.4), 3733 0 0 24px rgba(255, 105, 180, 0.2); 3734 animation: pink-heart-beat 1.2s ease-in-out infinite; 3735 line-height: 1; 3736} 3737 3738/* Heart beat animation */ 3739@keyframes pink-heart-beat { 3740 0%, 100% { 3741 transform: translate(-50%, -48%) scale(1); 3742 text-shadow: 0 0 8px rgba(255, 20, 147, 0.7), 3743 0 0 16px rgba(255, 20, 147, 0.4); 3744 } 3745 15% { 3746 transform: translate(-50%, -48%) scale(1.15); 3747 text-shadow: 0 0 12px rgba(255, 20, 147, 0.9), 3748 0 0 24px rgba(255, 20, 147, 0.5), 3749 0 0 36px rgba(255, 105, 180, 0.3); 3750 } 3751 30% { 3752 transform: translate(-50%, -48%) scale(0.95); 3753 } 3754 45% { 3755 transform: translate(-50%, -48%) scale(1.1); 3756 text-shadow: 0 0 10px rgba(255, 20, 147, 0.8), 3757 0 0 20px rgba(255, 20, 147, 0.4); 3758 } 3759 60% { 3760 transform: translate(-50%, -48%) scale(1); 3761 } 3762} 3763 3764.calendar-theme-pink .event-bar { 3765 animation: pink-glow-pulse 2s ease-in-out infinite; 3766} 3767 3768.calendar-theme-pink .calendar-compact-header { 3769 background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24, #1a0d14); 3770 background-size: 300% 300%; 3771 animation: pink-gradient-shimmer 3s ease infinite; 3772} 3773 3774.calendar-theme-pink .event-list-header { 3775 background: linear-gradient(90deg, #2d1a24, #3d2030, #2d1a24); 3776 background-size: 300% 300%; 3777 animation: pink-gradient-shimmer 3s ease infinite; 3778} 3779 3780/* Subtle hover glow - BARELY NOTICEABLE */ 3781.calendar-theme-pink .cal-today:hover { 3782 box-shadow: 0 0 5px rgba(255, 20, 147, 0.25), 3783 0 0 8px rgba(255, 20, 147, 0.12) !important; 3784} 3785 3786/* Pink theme event items get subtle glow */ 3787.calendar-theme-pink .event-compact-item { 3788 box-shadow: 0 0 1px rgba(255, 20, 147, 0.08); 3789 transition: all 0.3s ease; 3790} 3791 3792.calendar-theme-pink .event-compact-item:hover { 3793 box-shadow: 0 0 3px rgba(255, 20, 147, 0.15); 3794 transform: translateX(2px); 3795} 3796 3797/* Calendar borders get subtle glow */ 3798.calendar-theme-pink.calendar-compact-container { 3799 box-shadow: 0 0 5px rgba(255, 20, 147, 0.12), 3800 0 2px 4px rgba(0,0,0,0.06); 3801 position: relative; 3802} 3803 3804/* Today badge extra sparkle */ 3805.calendar-theme-pink .event-today-badge { 3806 animation: pink-sparkle 1.5s ease-in-out infinite; 3807} 3808 3809/* Consistent subtle text glow for dark themes - main calendar event list */ 3810.calendar-theme-matrix .event-title-compact, 3811.calendar-theme-matrix .event-meta-compact, 3812.calendar-theme-matrix .event-desc-compact { 3813 text-shadow: 0 0 1px var(--text-primary, #00cc07); 3814} 3815 3816.calendar-theme-purple .event-title-compact, 3817.calendar-theme-purple .event-meta-compact, 3818.calendar-theme-purple .event-desc-compact { 3819 text-shadow: 0 0 1px var(--text-primary, #b19cd9); 3820} 3821 3822.calendar-theme-pink .event-title-compact, 3823.calendar-theme-pink .event-meta-compact, 3824.calendar-theme-pink .event-desc-compact { 3825 text-shadow: 0 0 2px var(--text-primary, #ff69b4); 3826} 3827 3828/* Dark theme link glow */ 3829.calendar-theme-matrix .event-desc-compact a, 3830.calendar-theme-matrix .cal-link { 3831 text-shadow: 0 0 1px var(--text-bright, #00ff00); 3832} 3833 3834.calendar-theme-purple .event-desc-compact a, 3835.calendar-theme-purple .cal-link { 3836 text-shadow: 0 0 1px var(--text-bright, #d4a5ff); 3837} 3838 3839.calendar-theme-pink .event-desc-compact a, 3840.calendar-theme-pink .cal-link { 3841 text-shadow: 0 0 2px var(--text-bright, #ff1493); 3842} 3843 3844/* Dark theme event panel text glow */ 3845.event-panel-standalone[data-theme="matrix"] .event-title-compact, 3846.event-panel-standalone[data-theme="matrix"] .event-meta-compact, 3847.event-panel-standalone[data-theme="matrix"] .event-desc-compact { 3848 text-shadow: 0 0 1px var(--text-primary, #00cc07); 3849} 3850 3851.event-panel-standalone[data-theme="purple"] .event-title-compact, 3852.event-panel-standalone[data-theme="purple"] .event-meta-compact, 3853.event-panel-standalone[data-theme="purple"] .event-desc-compact { 3854 text-shadow: 0 0 1px var(--text-primary, #b19cd9); 3855} 3856 3857.event-panel-standalone[data-theme="pink"] .event-title-compact, 3858.event-panel-standalone[data-theme="pink"] .event-meta-compact, 3859.event-panel-standalone[data-theme="pink"] .event-desc-compact { 3860 text-shadow: 0 0 2px var(--text-primary, #ff69b4); 3861} 3862 3863/* Past due badge pulsing effect - SUBTLE */ 3864@keyframes pink-pulse-urgent { 3865 0%, 100% { 3866 box-shadow: 0 0 3px rgba(255, 140, 0, 0.4); 3867 } 3868 50% { 3869 box-shadow: 0 0 8px rgba(255, 140, 0, 0.6); 3870 } 3871} 3872 3873.calendar-theme-pink .event-pastdue-badge { 3874 animation: pink-pulse-urgent 1s ease-in-out infinite; 3875} 3876 3877/* ======================================== 3878 MATRIX THEME: CHECKBOX GLOW 3879 ======================================== */ 3880.calendar-theme-matrix .task-checkbox, 3881.sidebar-matrix .task-checkbox { 3882 border: 2px solid #00ff00; 3883 background: rgba(0, 204, 7, 0.08); 3884 box-shadow: 0 0 6px rgba(0, 255, 0, 0.3), inset 0 0 4px rgba(0, 204, 7, 0.1); 3885} 3886 3887.calendar-theme-matrix .task-checkbox:hover, 3888.sidebar-matrix .task-checkbox:hover { 3889 border-color: #00ff00; 3890 box-shadow: 0 0 10px rgba(0, 255, 0, 0.5), inset 0 0 6px rgba(0, 204, 7, 0.2); 3891} 3892 3893.calendar-theme-matrix .task-checkbox:checked, 3894.sidebar-matrix .task-checkbox:checked { 3895 background: #00cc07; 3896 border-color: #00ff00; 3897 box-shadow: 0 0 8px rgba(0, 255, 0, 0.6); 3898} 3899 3900/* ======================================== 3901 PURPLE THEME: CHECKBOX GLOW 3902 ======================================== */ 3903.calendar-theme-purple .task-checkbox, 3904.sidebar-purple .task-checkbox { 3905 border: 2px solid #d4a5ff; 3906 background: rgba(155, 89, 182, 0.08); 3907 box-shadow: 0 0 6px rgba(212, 165, 255, 0.3), inset 0 0 4px rgba(155, 89, 182, 0.1); 3908} 3909 3910.calendar-theme-purple .task-checkbox:hover, 3911.sidebar-purple .task-checkbox:hover { 3912 border-color: #d4a5ff; 3913 box-shadow: 0 0 10px rgba(212, 165, 255, 0.5), inset 0 0 6px rgba(155, 89, 182, 0.2); 3914} 3915 3916.calendar-theme-purple .task-checkbox:checked, 3917.sidebar-purple .task-checkbox:checked { 3918 background: #9b59b6; 3919 border-color: #d4a5ff; 3920 box-shadow: 0 0 8px rgba(212, 165, 255, 0.6); 3921} 3922 3923/* ======================================== 3924 PINK THEME: CHECKBOX GLOW 3925 ======================================== */ 3926.calendar-theme-pink .task-checkbox, 3927.sidebar-pink .task-checkbox { 3928 border: 2px solid #ff1493; 3929 background: rgba(255, 20, 147, 0.08); 3930 box-shadow: 0 0 6px rgba(255, 20, 147, 0.35), inset 0 0 4px rgba(255, 20, 147, 0.1); 3931} 3932 3933.calendar-theme-pink .task-checkbox:hover, 3934.sidebar-pink .task-checkbox:hover { 3935 border-color: #ff69b4; 3936 box-shadow: 0 0 10px rgba(255, 20, 147, 0.6), inset 0 0 6px rgba(255, 20, 147, 0.2); 3937} 3938 3939.calendar-theme-pink .task-checkbox:checked, 3940.sidebar-pink .task-checkbox:checked { 3941 background: #ff1493; 3942 border-color: #ff69b4; 3943 box-shadow: 0 0 8px rgba(255, 20, 147, 0.7); 3944} 3945 3946/* Pink checkbox in dialog forms */ 3947.calendar-theme-pink .checkbox-label input[type="checkbox"], 3948.calendar-theme-pink .checkbox-label-compact input[type="checkbox"] { 3949 accent-color: #ff1493; 3950} 3951 3952/* Wiki theme checkboxes - use border color */ 3953.calendar-theme-wiki .task-checkbox, 3954.sidebar-wiki .task-checkbox, 3955.eventlist-theme-wiki .task-checkbox { 3956 border: 2px solid var(--border-main, #ccc); 3957 accent-color: var(--border-main, #ccc); 3958} 3959 3960.calendar-theme-wiki .task-checkbox:hover, 3961.sidebar-wiki .task-checkbox:hover, 3962.eventlist-theme-wiki .task-checkbox:hover { 3963 border: 2px solid var(--border-main, #ccc); 3964 box-shadow: 0 0 8px rgba(0, 0, 0, 0.15); 3965} 3966 3967.calendar-theme-wiki .task-checkbox:checked, 3968.sidebar-wiki .task-checkbox:checked, 3969.eventlist-theme-wiki .task-checkbox:checked { 3970 background: var(--border-main, #ccc); 3971 border: 2px solid var(--border-main, #ccc); 3972} 3973 3974/* Wiki theme buttons - use __link__ color */ 3975.calendar-theme-wiki .cal-nav-btn, 3976.calendar-theme-wiki .cal-today-btn { 3977 background: var(--text-bright, #2b73b7); 3978 color: #fff; 3979} 3980 3981/* Wiki theme day headers - use __background_neu__ */ 3982.calendar-theme-wiki .calendar-day-headers { 3983 background: var(--cell-today-bg, #eee); 3984} 3985 3986/* Wiki theme past events toggle - use __background_neu__ */ 3987.calendar-theme-wiki .past-events-toggle { 3988 background: var(--cell-today-bg, #eee); 3989} 3990 3991.calendar-theme-wiki .calendar-day-headers span { 3992 color: var(--text-primary, #333); 3993} 3994 3995.sidebar-wiki .panel-nav-btn, 3996.sidebar-wiki .panel-today-btn { 3997 background: var(--text-bright, #2b73b7); 3998 color: #fff; 3999} 4000 4001.event-panel-standalone[data-theme="wiki"] .panel-nav-btn, 4002.event-panel-standalone[data-theme="wiki"] .panel-today-btn { 4003 background: var(--text-bright, #2b73b7); 4004 color: #fff; 4005} 4006 4007/* Wiki theme clock - no glow */ 4008.sidebar-wiki .eventlist-today-clock, 4009.eventlist-theme-wiki .eventlist-today-clock { 4010 text-shadow: none; 4011} 4012 4013/* Wiki theme clock - no glow, slightly larger */ 4014.sidebar-wiki .eventlist-today-clock, 4015.eventlist-theme-wiki .eventlist-today-clock { 4016 text-shadow: none; 4017 font-size: 20px; 4018} 4019 4020/* ======================================== 4021 PINK THEME: BUTTON FIREWORK BURST HOVER 4022 ======================================== */ 4023@keyframes pink-firework-burst { 4024 0% { 4025 box-shadow: 0 0 4px rgba(255, 20, 147, 0.4); 4026 } 4027 25% { 4028 box-shadow: 0 0 15px rgba(255, 20, 147, 0.8), 4029 0 0 30px rgba(255, 105, 180, 0.4), 4030 5px -5px 8px rgba(255, 20, 147, 0.6), 4031 -5px -5px 8px rgba(255, 105, 180, 0.5), 4032 5px 5px 8px rgba(255, 133, 193, 0.4), 4033 -5px 5px 8px rgba(255, 20, 147, 0.5); 4034 } 4035 50% { 4036 box-shadow: 0 0 20px rgba(255, 20, 147, 0.9), 4037 0 0 40px rgba(255, 105, 180, 0.5), 4038 8px -8px 12px rgba(255, 20, 147, 0.5), 4039 -8px -8px 12px rgba(255, 105, 180, 0.4), 4040 8px 8px 12px rgba(255, 133, 193, 0.3), 4041 -8px 8px 12px rgba(255, 20, 147, 0.4), 4042 0 -10px 15px rgba(255, 20, 147, 0.3), 4043 10px 0 15px rgba(255, 105, 180, 0.3); 4044 } 4045 75% { 4046 box-shadow: 0 0 12px rgba(255, 20, 147, 0.6), 4047 0 0 25px rgba(255, 105, 180, 0.3), 4048 12px -12px 8px rgba(255, 20, 147, 0.2), 4049 -12px -12px 8px rgba(255, 105, 180, 0.15), 4050 12px 12px 8px rgba(255, 133, 193, 0.1), 4051 -12px 12px 8px rgba(255, 20, 147, 0.15); 4052 } 4053 100% { 4054 box-shadow: 0 0 6px rgba(255, 20, 147, 0.5), 4055 0 0 15px rgba(255, 105, 180, 0.3); 4056 } 4057} 4058 4059/* Apply firework burst to all pink theme buttons on hover */ 4060.calendar-theme-pink .cal-nav-btn:hover, 4061.calendar-theme-pink .cal-today-btn:hover, 4062.calendar-theme-pink .btn-save-sleek:hover, 4063.calendar-theme-pink .btn-cancel-sleek:hover, 4064.calendar-theme-pink .btn-add-event:hover, 4065.calendar-theme-pink .event-edit-btn:hover, 4066.calendar-theme-pink .event-delete-btn:hover, 4067.calendar-theme-pink .event-action-btn:hover { 4068 background: #ff1493 !important; 4069 color: #1a0d14 !important; 4070 border-color: #ff69b4 !important; 4071 animation: pink-firework-burst 0.6s ease-out forwards; 4072 transform: scale(1.1); 4073 filter: brightness(1.4); 4074} 4075 4076.calendar-theme-pink .cal-nav-btn:active, 4077.calendar-theme-pink .cal-today-btn:active, 4078.calendar-theme-pink .btn-save-sleek:active, 4079.calendar-theme-pink .btn-cancel-sleek:active, 4080.calendar-theme-pink .btn-add-event:active { 4081 transform: scale(0.92); 4082 filter: brightness(1.6); 4083 animation: none; 4084 box-shadow: 0 0 25px rgba(255, 20, 147, 1), 0 0 50px rgba(255, 105, 180, 0.6); 4085} 4086 4087/* Sidebar pink button firework */ 4088.sidebar-pink .event-edit-btn:hover, 4089.sidebar-pink .event-delete-btn:hover { 4090 background: #ff1493 !important; 4091 color: #1a0d14 !important; 4092 animation: pink-firework-burst 0.6s ease-out forwards; 4093 transform: scale(1.1); 4094} 4095 4096/* Panel standalone pink buttons */ 4097.event-panel-standalone[data-theme="pink"] .panel-nav-btn:hover, 4098.event-panel-standalone[data-theme="pink"] .panel-today-btn:hover, 4099.event-panel-standalone[data-theme="pink"] .panel-add-btn:hover { 4100 background: #ff1493 !important; 4101 color: #1a0d14 !important; 4102 animation: pink-firework-burst 0.6s ease-out forwards; 4103 transform: scale(1.1); 4104} 4105 4106/* ======================================== 4107 TEXT COLOR PROTECTION 4108 Forces text to stay readable on dark themes 4109 when browser extensions modify page colors. 4110 Only uses color !important — no filter, no 4111 color-scheme, no variable resets. 4112 ======================================== */ 4113 4114/* Matrix: green text on dark background */ 4115.calendar-theme-matrix .event-title-compact, 4116.calendar-theme-matrix .event-list-header, 4117.calendar-theme-matrix .calendar-day-headers, 4118.sidebar-matrix .event-title-compact { 4119 color: var(--text-bright, #00ff00) !important; 4120 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4121} 4122 4123.calendar-theme-matrix .event-meta-compact, 4124.calendar-theme-matrix .event-desc-compact, 4125.calendar-theme-matrix .no-events-msg, 4126.sidebar-matrix .event-meta-compact, 4127.sidebar-matrix .event-desc-compact { 4128 color: var(--text-dim, #00aa00) !important; 4129 -webkit-text-fill-color: var(--text-dim, #00aa00) !important; 4130} 4131 4132.calendar-theme-matrix .day-num, 4133.calendar-theme-matrix .cal-nav-btn, 4134.calendar-theme-matrix .cal-today-btn, 4135.sidebar-matrix .eventlist-today-date { 4136 color: var(--text-primary, #00cc07) !important; 4137 -webkit-text-fill-color: var(--text-primary, #00cc07) !important; 4138} 4139 4140/* Purple: purple text on dark background */ 4141.calendar-theme-purple .event-title-compact, 4142.calendar-theme-purple .event-list-header, 4143.calendar-theme-purple .calendar-day-headers, 4144.sidebar-purple .event-title-compact { 4145 color: var(--text-bright, #d4a5ff) !important; 4146 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4147} 4148 4149.calendar-theme-purple .event-meta-compact, 4150.calendar-theme-purple .event-desc-compact, 4151.calendar-theme-purple .no-events-msg, 4152.sidebar-purple .event-meta-compact, 4153.sidebar-purple .event-desc-compact { 4154 color: var(--text-dim, #8e7ab8) !important; 4155 -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important; 4156} 4157 4158.calendar-theme-purple .day-num, 4159.calendar-theme-purple .cal-nav-btn, 4160.calendar-theme-purple .cal-today-btn, 4161.sidebar-purple .eventlist-today-date { 4162 color: var(--text-primary, #b19cd9) !important; 4163 -webkit-text-fill-color: var(--text-primary, #b19cd9) !important; 4164} 4165 4166/* Pink: pink text on dark background */ 4167.calendar-theme-pink .event-title-compact, 4168.calendar-theme-pink .event-list-header, 4169.calendar-theme-pink .calendar-day-headers, 4170.sidebar-pink .event-title-compact { 4171 color: var(--text-bright, #ff1493) !important; 4172 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4173} 4174 4175.calendar-theme-pink .event-meta-compact, 4176.calendar-theme-pink .event-desc-compact, 4177.calendar-theme-pink .no-events-msg, 4178.sidebar-pink .event-meta-compact, 4179.sidebar-pink .event-desc-compact { 4180 color: var(--text-dim, #ff85c1) !important; 4181 -webkit-text-fill-color: var(--text-dim, #ff85c1) !important; 4182} 4183 4184.calendar-theme-pink .day-num, 4185.calendar-theme-pink .cal-nav-btn, 4186.calendar-theme-pink .cal-today-btn, 4187.sidebar-pink .eventlist-today-date { 4188 color: var(--text-primary, #ff69b4) !important; 4189 -webkit-text-fill-color: var(--text-primary, #ff69b4) !important; 4190} 4191 4192/* Badge text AND background protection - all dark themes */ 4193.calendar-theme-matrix .event-today-badge, 4194.calendar-theme-matrix .event-pastdue-badge, 4195.calendar-theme-matrix .event-namespace-badge, 4196.calendar-theme-matrix .eventlist-simple-today-badge, 4197.calendar-theme-matrix .eventlist-simple-pastdue-badge, 4198.calendar-theme-matrix .panel-ns-badge, 4199.sidebar-matrix .event-today-badge, 4200.sidebar-matrix .event-pastdue-badge, 4201.sidebar-matrix .event-namespace-badge, 4202.calendar-theme-purple .event-today-badge, 4203.calendar-theme-purple .event-pastdue-badge, 4204.calendar-theme-purple .event-namespace-badge, 4205.calendar-theme-purple .eventlist-simple-today-badge, 4206.calendar-theme-purple .eventlist-simple-pastdue-badge, 4207.calendar-theme-purple .panel-ns-badge, 4208.sidebar-purple .event-today-badge, 4209.sidebar-purple .event-pastdue-badge, 4210.sidebar-purple .event-namespace-badge, 4211.calendar-theme-pink .event-today-badge, 4212.calendar-theme-pink .event-pastdue-badge, 4213.calendar-theme-pink .event-namespace-badge, 4214.calendar-theme-pink .eventlist-simple-today-badge, 4215.calendar-theme-pink .eventlist-simple-pastdue-badge, 4216.calendar-theme-pink .panel-ns-badge, 4217.sidebar-pink .event-today-badge, 4218.sidebar-pink .event-pastdue-badge, 4219.sidebar-pink .event-namespace-badge { 4220 color: var(--background-site, white) !important; 4221 -webkit-text-fill-color: var(--background-site, white) !important; 4222 background: var(--text-bright) !important; 4223} 4224 4225.calendar-theme-matrix .event-pastdue-badge, 4226.calendar-theme-purple .event-pastdue-badge, 4227.calendar-theme-pink .event-pastdue-badge, 4228.calendar-theme-matrix .eventlist-simple-pastdue-badge, 4229.calendar-theme-purple .eventlist-simple-pastdue-badge, 4230.calendar-theme-pink .eventlist-simple-pastdue-badge, 4231.sidebar-matrix .event-pastdue-badge, 4232.sidebar-purple .event-pastdue-badge, 4233.sidebar-pink .event-pastdue-badge { 4234 background: var(--pastdue-color, #e74c3c) !important; 4235} 4236 4237/* Purple: sidebar section event text and section headers */ 4238.sidebar-purple .event-title-compact, 4239.sidebar-purple .event-meta-compact, 4240.sidebar-purple .event-desc-compact { 4241 color: var(--text-primary, #b19cd9) !important; 4242 -webkit-text-fill-color: var(--text-primary, #b19cd9) !important; 4243} 4244 4245.sidebar-purple .eventlist-today-clock { 4246 color: var(--text-bright, #d4a5ff) !important; 4247 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4248} 4249 4250.sidebar-purple .eventlist-today-date { 4251 color: var(--text-dim, #8e7ab8) !important; 4252 -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important; 4253} 4254 4255/* Pink: sidebar section event text */ 4256.sidebar-pink .event-title-compact { 4257 color: var(--text-bright, #ff1493) !important; 4258 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4259} 4260 4261.sidebar-pink .eventlist-today-clock { 4262 color: var(--text-bright, #ff1493) !important; 4263 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4264} 4265 4266.sidebar-pink .eventlist-today-date { 4267 color: var(--text-dim, #ff85c1) !important; 4268 -webkit-text-fill-color: var(--text-dim, #ff85c1) !important; 4269} 4270 4271/* ======================================== 4272 EVENTLIST THEMING 4273 Applies theme colors to {{eventlist}} output 4274 ======================================== */ 4275 4276/* Matrix eventlist */ 4277.eventlist-theme-matrix .eventlist-simple-title { 4278 color: var(--text-bright, #00ff00) !important; 4279 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4280} 4281 4282.eventlist-theme-matrix .eventlist-simple-header { 4283 color: var(--text-primary, #00cc07) !important; 4284 -webkit-text-fill-color: var(--text-primary, #00cc07) !important; 4285 background: var(--cell-bg, #242424) !important; 4286} 4287 4288.eventlist-theme-matrix .eventlist-simple-time, 4289.eventlist-theme-matrix .eventlist-simple-date, 4290.eventlist-theme-matrix .eventlist-simple-body { 4291 color: var(--text-dim, #00aa00) !important; 4292 -webkit-text-fill-color: var(--text-dim, #00aa00) !important; 4293 background: var(--background-site, #242424) !important; 4294} 4295 4296.eventlist-theme-matrix .eventlist-simple-body a { 4297 color: var(--text-bright, #00ff00) !important; 4298 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4299} 4300 4301.eventlist-theme-matrix .eventlist-simple-body strong { 4302 color: var(--text-primary, #00cc07) !important; 4303 -webkit-text-fill-color: var(--text-primary, #00cc07) !important; 4304} 4305 4306.eventlist-theme-matrix .eventlist-simple-body code { 4307 background: var(--cell-bg, #1a3d1a) !important; 4308 color: var(--text-primary, #00cc07) !important; 4309 -webkit-text-fill-color: var(--text-primary, #00cc07) !important; 4310} 4311 4312.eventlist-theme-matrix .eventlist-simple-namespace { 4313 background: var(--cell-today-bg, #2a4d2a) !important; 4314 color: var(--text-bright, #00ff00) !important; 4315 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4316} 4317 4318.eventlist-theme-matrix .eventlist-simple-empty, 4319.eventlist-theme-matrix .eventlist-simple-empty .eventlist-simple-body { 4320 color: var(--text-dim, #00aa00) !important; 4321 -webkit-text-fill-color: var(--text-dim, #00aa00) !important; 4322} 4323 4324.eventlist-theme-matrix .eventlist-simple-item { 4325 border-bottom-color: var(--border-color, #00cc07) !important; 4326} 4327 4328.eventlist-theme-matrix .eventlist-today-header { 4329 background: var(--cell-bg, #242424) !important; 4330 color: var(--text-bright, #00ff00) !important; 4331 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4332 border-color: var(--text-bright, #00ff00) !important; 4333} 4334 4335.eventlist-theme-matrix .eventlist-today-clock { 4336 color: var(--text-bright, #00ff00) !important; 4337 -webkit-text-fill-color: var(--text-bright, #00ff00) !important; 4338} 4339 4340.eventlist-theme-matrix .eventlist-today-date { 4341 color: var(--text-dim, #00aa00) !important; 4342 -webkit-text-fill-color: var(--text-dim, #00aa00) !important; 4343} 4344 4345/* Purple eventlist */ 4346.eventlist-theme-purple .eventlist-simple-title { 4347 color: var(--text-bright, #d4a5ff) !important; 4348 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4349} 4350 4351.eventlist-theme-purple .eventlist-simple-header { 4352 color: var(--text-primary, #b19cd9) !important; 4353 -webkit-text-fill-color: var(--text-primary, #b19cd9) !important; 4354 background: var(--cell-bg, #2a2030) !important; 4355} 4356 4357.eventlist-theme-purple .eventlist-simple-time, 4358.eventlist-theme-purple .eventlist-simple-date, 4359.eventlist-theme-purple .eventlist-simple-body { 4360 color: var(--text-dim, #8e7ab8) !important; 4361 -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important; 4362 background: var(--background-site, #2a2030) !important; 4363} 4364 4365.eventlist-theme-purple .eventlist-simple-body a { 4366 color: var(--text-bright, #d4a5ff) !important; 4367 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4368} 4369 4370.eventlist-theme-purple .eventlist-simple-body strong { 4371 color: var(--text-primary, #b19cd9) !important; 4372 -webkit-text-fill-color: var(--text-primary, #b19cd9) !important; 4373} 4374 4375.eventlist-theme-purple .eventlist-simple-body code { 4376 background: var(--cell-bg, #3d2b4d) !important; 4377 color: var(--text-primary, #b19cd9) !important; 4378 -webkit-text-fill-color: var(--text-primary, #b19cd9) !important; 4379} 4380 4381.eventlist-theme-purple .eventlist-simple-namespace { 4382 background: var(--cell-today-bg, #3d2b4d) !important; 4383 color: var(--text-bright, #d4a5ff) !important; 4384 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4385} 4386 4387.eventlist-theme-purple .eventlist-simple-empty, 4388.eventlist-theme-purple .eventlist-simple-empty .eventlist-simple-body { 4389 color: var(--text-dim, #8e7ab8) !important; 4390 -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important; 4391} 4392 4393.eventlist-theme-purple .eventlist-simple-item { 4394 border-bottom-color: var(--border-color, #9b59b6) !important; 4395} 4396 4397.eventlist-theme-purple .eventlist-today-header { 4398 background: var(--cell-bg, #2a2030) !important; 4399 color: var(--text-bright, #d4a5ff) !important; 4400 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4401 border-color: var(--text-bright, #d4a5ff) !important; 4402} 4403 4404.eventlist-theme-purple .eventlist-today-clock { 4405 color: var(--text-bright, #d4a5ff) !important; 4406 -webkit-text-fill-color: var(--text-bright, #d4a5ff) !important; 4407} 4408 4409.eventlist-theme-purple .eventlist-today-date { 4410 color: var(--text-dim, #8e7ab8) !important; 4411 -webkit-text-fill-color: var(--text-dim, #8e7ab8) !important; 4412} 4413 4414/* Pink eventlist */ 4415.eventlist-theme-pink .eventlist-simple-title { 4416 color: var(--text-bright, #ff1493) !important; 4417 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4418} 4419 4420.eventlist-theme-pink .eventlist-simple-header { 4421 color: var(--text-primary, #ff69b4) !important; 4422 -webkit-text-fill-color: var(--text-primary, #ff69b4) !important; 4423 background: var(--cell-bg, #1a0d14) !important; 4424} 4425 4426.eventlist-theme-pink .eventlist-simple-time, 4427.eventlist-theme-pink .eventlist-simple-date, 4428.eventlist-theme-pink .eventlist-simple-body { 4429 color: var(--text-dim, #ff85c1) !important; 4430 -webkit-text-fill-color: var(--text-dim, #ff85c1) !important; 4431 background: var(--background-site, #1a0d14) !important; 4432} 4433 4434.eventlist-theme-pink .eventlist-simple-body a { 4435 color: var(--text-bright, #ff1493) !important; 4436 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4437} 4438 4439.eventlist-theme-pink .eventlist-simple-body strong { 4440 color: var(--text-primary, #ff69b4) !important; 4441 -webkit-text-fill-color: var(--text-primary, #ff69b4) !important; 4442} 4443 4444.eventlist-theme-pink .eventlist-simple-body code { 4445 background: var(--cell-bg, #2d1020) !important; 4446 color: var(--text-primary, #ff69b4) !important; 4447 -webkit-text-fill-color: var(--text-primary, #ff69b4) !important; 4448} 4449 4450.eventlist-theme-pink .eventlist-simple-namespace { 4451 background: var(--cell-today-bg, #2d1020) !important; 4452 color: var(--text-bright, #ff1493) !important; 4453 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4454} 4455 4456.eventlist-theme-pink .eventlist-simple-empty, 4457.eventlist-theme-pink .eventlist-simple-empty .eventlist-simple-body { 4458 color: var(--text-dim, #ff85c1) !important; 4459 -webkit-text-fill-color: var(--text-dim, #ff85c1) !important; 4460} 4461 4462.eventlist-theme-pink .eventlist-simple-item { 4463 border-bottom-color: var(--border-color, #ff1493) !important; 4464} 4465 4466.eventlist-theme-pink .eventlist-today-header { 4467 background: var(--cell-bg, #1a0d14) !important; 4468 color: var(--text-bright, #ff1493) !important; 4469 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4470 border-color: var(--text-bright, #ff1493) !important; 4471} 4472 4473.eventlist-theme-pink .eventlist-today-clock { 4474 color: var(--text-bright, #ff1493) !important; 4475 -webkit-text-fill-color: var(--text-bright, #ff1493) !important; 4476} 4477 4478.eventlist-theme-pink .eventlist-today-date { 4479 color: var(--text-dim, #ff85c1) !important; 4480 -webkit-text-fill-color: var(--text-dim, #ff85c1) !important; 4481} 4482 4483/* ======================================== 4484 STATIC CALENDAR - Read-only Presentation Mode 4485 ======================================== */ 4486 4487.calendar-static { 4488 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; 4489 width: 100%; 4490 max-width: 100%; 4491 margin: 0 auto; 4492 box-sizing: border-box; 4493 overflow-x: auto; 4494} 4495 4496/* Header with navigation */ 4497.static-header { 4498 display: flex; 4499 align-items: center; 4500 justify-content: center; 4501 gap: 15px; 4502 padding: 12px; 4503 background: #2c3e50; 4504 color: white; 4505 border-radius: 8px 8px 0 0; 4506} 4507 4508.static-month-title { 4509 margin: 0; 4510 font-size: 1.3em; 4511 font-weight: 600; 4512 min-width: 180px; 4513 text-align: center; 4514} 4515 4516.static-nav-btn { 4517 background: rgba(255,255,255,0.2); 4518 border: none; 4519 color: white; 4520 font-size: 16px; 4521 width: 32px; 4522 height: 32px; 4523 border-radius: 50%; 4524 cursor: pointer; 4525 transition: background 0.2s; 4526 flex-shrink: 0; 4527} 4528 4529.static-nav-btn:hover { 4530 background: rgba(255,255,255,0.3); 4531} 4532 4533.static-print-btn { 4534 background: rgba(255,255,255,0.2); 4535 border: none; 4536 color: white; 4537 font-size: 16px; 4538 width: 32px; 4539 height: 32px; 4540 border-radius: 50%; 4541 cursor: pointer; 4542 transition: background 0.2s; 4543 flex-shrink: 0; 4544 margin-left: 10px; 4545 display: flex; 4546 align-items: center; 4547 justify-content: center; 4548 padding: 0; 4549 line-height: 1; 4550} 4551 4552.static-print-btn:hover { 4553 background: rgba(255,255,255,0.3); 4554} 4555 4556/* Calendar grid */ 4557.static-calendar-grid { 4558 width: 100%; 4559 border-collapse: collapse; 4560 background: white; 4561 border: 1px solid #ddd; 4562 table-layout: fixed; 4563} 4564 4565.static-calendar-grid th { 4566 background: #f5f5f5; 4567 padding: 8px 4px; 4568 text-align: center; 4569 font-weight: 600; 4570 color: #555; 4571 border-bottom: 2px solid #ddd; 4572 font-size: 12px; 4573} 4574 4575.static-calendar-grid td { 4576 border: 1px solid #eee; 4577 vertical-align: top; 4578 height: 80px; 4579 width: 14.28%; 4580 padding: 0; 4581 overflow: hidden; 4582} 4583 4584.static-day { 4585 height: 100%; 4586 position: relative; 4587} 4588 4589.static-day-empty { 4590 background: #fafafa; 4591} 4592 4593.static-day-number { 4594 position: absolute; 4595 top: 5px; 4596 right: 8px; 4597 font-size: 14px; 4598 font-weight: 500; 4599 color: #666; 4600} 4601 4602.static-day-today .static-day-number { 4603 background: #2c3e50; 4604 color: white; 4605 width: 24px; 4606 height: 24px; 4607 border-radius: 50%; 4608 display: flex; 4609 align-items: center; 4610 justify-content: center; 4611 right: 5px; 4612} 4613 4614.static-day-weekend { 4615 background: #fafafa; 4616} 4617 4618.static-day-events { 4619 padding: 28px 4px 4px 4px; 4620 display: flex; 4621 flex-direction: column; 4622 gap: 2px; 4623 max-height: 80px; 4624 overflow-y: auto; 4625} 4626 4627/* Individual events */ 4628.static-event { 4629 font-size: 11px; 4630 padding: 2px 4px; 4631 background: #f0f8ff; 4632 border-left: 3px solid #3498db; 4633 border-radius: 2px; 4634 white-space: nowrap; 4635 overflow: hidden; 4636 text-overflow: ellipsis; 4637 cursor: default; 4638} 4639 4640.static-event:hover { 4641 background: #e3f2fd; 4642} 4643 4644.static-event-important { 4645 background: linear-gradient(135deg, rgba(255, 215, 0, 0.2), rgba(255, 193, 7, 0.1)); 4646 border-left-color: #ffc107; 4647} 4648 4649.static-event-important:hover { 4650 background: linear-gradient(135deg, rgba(255, 215, 0, 0.3), rgba(255, 193, 7, 0.2)); 4651} 4652 4653.static-event-star { 4654 font-size: 10px; 4655 margin-right: 2px; 4656} 4657 4658.static-event-time { 4659 font-weight: 600; 4660 color: #2c3e50; 4661} 4662 4663.static-event-title { 4664 color: #333; 4665} 4666 4667/* Print view - hidden on screen */ 4668.static-print-view { 4669 display: none; 4670} 4671 4672/* Itinerary table for printing */ 4673.static-itinerary { 4674 width: 100%; 4675 border-collapse: collapse; 4676 margin-top: 20px; 4677} 4678 4679.static-itinerary th { 4680 background: #2c3e50; 4681 color: white; 4682 padding: 10px; 4683 text-align: left; 4684 font-weight: 600; 4685} 4686 4687.static-itinerary td { 4688 padding: 8px 10px; 4689 border-bottom: 1px solid #ddd; 4690 vertical-align: top; 4691} 4692 4693.static-itinerary-date { 4694 font-weight: 600; 4695 white-space: nowrap; 4696 width: 100px; 4697} 4698 4699.static-itinerary-time { 4700 white-space: nowrap; 4701 width: 120px; 4702 color: #555; 4703} 4704 4705.static-itinerary-title { 4706 font-weight: 500; 4707} 4708 4709.static-itinerary-desc { 4710 color: #666; 4711 font-size: 0.9em; 4712} 4713 4714.static-itinerary-important { 4715 background: rgba(255, 215, 0, 0.15); 4716} 4717 4718.static-print-title { 4719 margin: 0 0 10px 0; 4720 font-size: 1.5em; 4721 color: #2c3e50; 4722} 4723 4724.static-print-namespace { 4725 color: #666; 4726 margin: 0 0 15px 0; 4727 font-style: italic; 4728} 4729 4730.static-print-empty { 4731 color: #888; 4732 font-style: italic; 4733} 4734 4735/* Print styles */ 4736@media print { 4737 .calendar-static { 4738 max-width: 100%; 4739 width: 100%; 4740 overflow: visible !important; 4741 height: auto !important; 4742 min-height: 0 !important; 4743 max-height: none !important; 4744 } 4745 4746 /* Completely remove screen view from print flow */ 4747 .static-screen-view, 4748 .static-screen-view *, 4749 .static-header, 4750 .static-calendar-grid, 4751 .static-day, 4752 .static-day-events, 4753 .static-event, 4754 .static-nav-btn { 4755 display: none !important; 4756 visibility: hidden !important; 4757 height: 0 !important; 4758 max-height: 0 !important; 4759 width: 0 !important; 4760 max-width: 0 !important; 4761 overflow: hidden !important; 4762 position: absolute !important; 4763 left: -9999px !important; 4764 margin: 0 !important; 4765 padding: 0 !important; 4766 border: none !important; 4767 } 4768 4769 /* Show print view */ 4770 .static-print-view { 4771 display: block !important; 4772 visibility: visible !important; 4773 position: relative !important; 4774 height: auto !important; 4775 width: 100% !important; 4776 left: auto !important; 4777 } 4778 4779 .static-print-view * { 4780 visibility: visible !important; 4781 position: relative !important; 4782 left: auto !important; 4783 } 4784 4785 .static-itinerary { 4786 page-break-inside: auto; 4787 width: 100%; 4788 display: table !important; 4789 } 4790 4791 .static-itinerary tr { 4792 page-break-inside: avoid; 4793 page-break-after: auto; 4794 display: table-row !important; 4795 } 4796 4797 .static-itinerary td, 4798 .static-itinerary th { 4799 display: table-cell !important; 4800 height: auto !important; 4801 width: auto !important; 4802 } 4803 4804 .static-itinerary th { 4805 background: #333 !important; 4806 -webkit-print-color-adjust: exact; 4807 print-color-adjust: exact; 4808 } 4809 4810 .static-itinerary-important { 4811 background: #fffde7 !important; 4812 -webkit-print-color-adjust: exact; 4813 print-color-adjust: exact; 4814 } 4815 4816 .static-print-title, 4817 .static-print-namespace, 4818 .static-print-empty { 4819 page-break-after: avoid; 4820 display: block !important; 4821 height: auto !important; 4822 width: auto !important; 4823 } 4824} 4825 4826/* Responsive */ 4827@media (max-width: 768px) { 4828 .static-header { 4829 padding: 10px; 4830 gap: 10px; 4831 } 4832 4833 .static-month-title { 4834 font-size: 1.1em; 4835 min-width: 120px; 4836 } 4837 4838 .static-nav-btn { 4839 width: 28px; 4840 height: 28px; 4841 font-size: 14px; 4842 } 4843 4844 .static-calendar-grid th { 4845 padding: 6px 2px; 4846 font-size: 10px; 4847 } 4848 4849 .static-calendar-grid td { 4850 height: 60px; 4851 } 4852 4853 .static-day-number { 4854 font-size: 11px; 4855 top: 2px; 4856 right: 4px; 4857 } 4858 4859 .static-day-today .static-day-number { 4860 width: 18px; 4861 height: 18px; 4862 right: 2px; 4863 } 4864 4865 .static-day-events { 4866 padding: 20px 2px 2px 2px; 4867 max-height: 40px; 4868 gap: 1px; 4869 } 4870 4871 .static-event { 4872 font-size: 9px; 4873 padding: 1px 2px; 4874 } 4875 4876 .static-event-time { 4877 display: none; 4878 } 4879} 4880 4881@media (max-width: 480px) { 4882 .static-calendar-grid th { 4883 font-size: 9px; 4884 padding: 4px 1px; 4885 } 4886 4887 .static-calendar-grid td { 4888 height: 50px; 4889 } 4890 4891 .static-day-events { 4892 max-height: 30px; 4893 } 4894 4895 .static-event { 4896 font-size: 8px; 4897 } 4898} 4899 4900/* Static Calendar Theme Variations */ 4901.static-theme-matrix .static-header { 4902 background: #0a0a0a; 4903 border-bottom: 1px solid #00ff00; 4904} 4905 4906.static-theme-matrix .static-calendar-grid { 4907 background: #0d0d0d; 4908 border-color: #00ff00; 4909} 4910 4911.static-theme-matrix .static-calendar-grid th { 4912 background: #0a0a0a; 4913 color: #00ff00; 4914 border-color: #004400; 4915} 4916 4917.static-theme-matrix .static-calendar-grid td { 4918 border-color: #003300; 4919 color: #00cc00; 4920} 4921 4922.static-theme-matrix .static-day-empty { 4923 background: #050505; 4924} 4925 4926.static-theme-matrix .static-day-weekend { 4927 background: #0a0a0a; 4928} 4929 4930.static-theme-matrix .static-day-number { 4931 color: #00ff00; 4932} 4933 4934.static-theme-matrix .static-day-today .static-day-number { 4935 background: #00ff00; 4936 color: #000; 4937} 4938 4939.static-theme-matrix .static-event { 4940 background: rgba(0, 255, 0, 0.1); 4941 color: #00cc00; 4942} 4943 4944.static-theme-matrix .static-event:hover { 4945 background: rgba(0, 255, 0, 0.2); 4946} 4947 4948/* Pink theme */ 4949.static-theme-pink .static-header { 4950 background: linear-gradient(135deg, #ff1493, #ff69b4); 4951} 4952 4953.static-theme-pink .static-calendar-grid { 4954 background: #1a0a10; 4955 border-color: #ff1493; 4956} 4957 4958.static-theme-pink .static-calendar-grid th { 4959 background: #2a0a15; 4960 color: #ff69b4; 4961 border-color: #ff1493; 4962} 4963 4964.static-theme-pink .static-calendar-grid td { 4965 border-color: #440020; 4966 color: #ff85c0; 4967} 4968 4969.static-theme-pink .static-day-empty { 4970 background: #0d0508; 4971} 4972 4973.static-theme-pink .static-day-weekend { 4974 background: #150810; 4975} 4976 4977.static-theme-pink .static-day-number { 4978 color: #ff69b4; 4979} 4980 4981.static-theme-pink .static-day-today .static-day-number { 4982 background: #ff1493; 4983 color: #fff; 4984} 4985 4986.static-theme-pink .static-event { 4987 background: rgba(255, 20, 147, 0.15); 4988 color: #ff85c0; 4989} 4990 4991/* Dark theme */ 4992.static-theme-dark .static-header { 4993 background: #1a1a2e; 4994} 4995 4996.static-theme-dark .static-calendar-grid { 4997 background: #16213e; 4998 border-color: #1a1a2e; 4999} 5000 5001.static-theme-dark .static-calendar-grid th { 5002 background: #1a1a2e; 5003 color: #e0e0e0; 5004} 5005 5006.static-theme-dark .static-calendar-grid td { 5007 border-color: #2a2a4e; 5008 color: #c0c0c0; 5009} 5010 5011.static-theme-dark .static-day-empty { 5012 background: #0f0f1a; 5013} 5014 5015.static-theme-dark .static-day-weekend { 5016 background: #12121f; 5017} 5018 5019.static-theme-dark .static-day-number { 5020 color: #a0a0a0; 5021} 5022 5023.static-theme-dark .static-day-today .static-day-number { 5024 background: #4a90d9; 5025 color: #fff; 5026} 5027 5028.static-theme-dark .static-event { 5029 background: rgba(74, 144, 217, 0.2); 5030 color: #8ab4f8; 5031} 5032 5033 5034/* Purple theme for static calendar */ 5035.static-theme-purple .static-header { 5036 background: linear-gradient(180deg, #2f2438 0%, #2a2030 100%); 5037 border-bottom: 1px solid #9b59b6; 5038} 5039 5040.static-theme-purple .static-calendar-grid { 5041 background: #2a2030; 5042 border-color: #9b59b6; 5043} 5044 5045.static-theme-purple .static-calendar-grid th { 5046 background: #3d2b4d; 5047 color: #d4a5ff; 5048 border-color: #9b59b6; 5049} 5050 5051.static-theme-purple .static-calendar-grid td { 5052 border-color: #4d3860; 5053 color: #b19cd9; 5054} 5055 5056.static-theme-purple .static-day-empty { 5057 background: #1f1828; 5058} 5059 5060.static-theme-purple .static-day-weekend { 5061 background: #251d30; 5062} 5063 5064.static-theme-purple .static-day-number { 5065 color: #d4a5ff; 5066} 5067 5068.static-theme-purple .static-day-today .static-day-number { 5069 background: #9b59b6; 5070 color: #fff; 5071} 5072 5073.static-theme-purple .static-event { 5074 background: rgba(155, 89, 182, 0.2); 5075 color: #d4a5ff; 5076 border-left-color: #9b59b6; 5077} 5078 5079.static-theme-purple .static-event:hover { 5080 background: rgba(155, 89, 182, 0.3); 5081} 5082 5083/* Professional theme for static calendar */ 5084.static-theme-professional .static-header { 5085 background: linear-gradient(180deg, #ffffff 0%, #f5f7fa 100%); 5086 border-bottom: 2px solid #4a90e2; 5087 color: #2c3e50; 5088} 5089 5090.static-theme-professional .static-header h2 { 5091 color: #2c3e50; 5092} 5093 5094.static-theme-professional .static-nav-btn, 5095.static-theme-professional .static-print-btn { 5096 background: #4a90e2; 5097 color: white; 5098} 5099 5100.static-theme-professional .static-nav-btn:hover, 5101.static-theme-professional .static-print-btn:hover { 5102 background: #3a7bc8; 5103} 5104 5105.static-theme-professional .static-calendar-grid { 5106 background: #ffffff; 5107 border-color: #d0d7de; 5108} 5109 5110.static-theme-professional .static-calendar-grid th { 5111 background: #f5f7fa; 5112 color: #2c3e50; 5113 border-color: #d0d7de; 5114} 5115 5116.static-theme-professional .static-calendar-grid td { 5117 border-color: #e8ecf1; 5118 color: #2c3e50; 5119} 5120 5121.static-theme-professional .static-day-empty { 5122 background: #fafbfc; 5123} 5124 5125.static-theme-professional .static-day-weekend { 5126 background: #f5f7fa; 5127} 5128 5129.static-theme-professional .static-day-number { 5130 color: #2c3e50; 5131} 5132 5133.static-theme-professional .static-day-today .static-day-number { 5134 background: #4a90e2; 5135 color: #fff; 5136} 5137 5138.static-theme-professional .static-event { 5139 background: rgba(74, 144, 226, 0.1); 5140 color: #2c3e50; 5141 border-left-color: #4a90e2; 5142} 5143 5144.static-theme-professional .static-event:hover { 5145 background: rgba(74, 144, 226, 0.2); 5146} 5147 5148/* Wiki theme for static calendar (neutral, matches DokuWiki default) */ 5149.static-theme-wiki .static-header { 5150 background: #f5f5f5; 5151 border-bottom: 1px solid #ccc; 5152 color: #333; 5153} 5154 5155.static-theme-wiki .static-header h2 { 5156 color: #333; 5157} 5158 5159.static-theme-wiki .static-nav-btn, 5160.static-theme-wiki .static-print-btn { 5161 background: #ddd; 5162 color: #333; 5163} 5164 5165.static-theme-wiki .static-nav-btn:hover, 5166.static-theme-wiki .static-print-btn:hover { 5167 background: #ccc; 5168} 5169 5170.static-theme-wiki .static-calendar-grid { 5171 background: #fff; 5172 border-color: #ccc; 5173} 5174 5175.static-theme-wiki .static-calendar-grid th { 5176 background: #f0f0f0; 5177 color: #333; 5178 border-color: #ccc; 5179} 5180 5181.static-theme-wiki .static-calendar-grid td { 5182 border-color: #ddd; 5183 color: #333; 5184} 5185 5186.static-theme-wiki .static-day-empty { 5187 background: #fafafa; 5188} 5189 5190.static-theme-wiki .static-day-weekend { 5191 background: #f5f5f5; 5192} 5193 5194.static-theme-wiki .static-day-number { 5195 color: #333; 5196} 5197 5198.static-theme-wiki .static-day-today .static-day-number { 5199 background: #2196f3; 5200 color: #fff; 5201} 5202 5203.static-theme-wiki .static-event { 5204 background: #e3f2fd; 5205 color: #333; 5206 border-left-color: #2196f3; 5207} 5208 5209.static-theme-wiki .static-event:hover { 5210 background: #bbdefb; 5211} 5212 5213/* Light theme (clean white) */ 5214.static-theme-light .static-header { 5215 background: #ffffff; 5216 border-bottom: 2px solid #e0e0e0; 5217 color: #333; 5218} 5219 5220.static-theme-light .static-header h2 { 5221 color: #333; 5222} 5223 5224.static-theme-light .static-nav-btn, 5225.static-theme-light .static-print-btn { 5226 background: #e0e0e0; 5227 color: #333; 5228} 5229 5230.static-theme-light .static-nav-btn:hover, 5231.static-theme-light .static-print-btn:hover { 5232 background: #d0d0d0; 5233} 5234 5235.static-theme-light .static-calendar-grid { 5236 background: #ffffff; 5237 border-color: #e0e0e0; 5238} 5239 5240.static-theme-light .static-calendar-grid th { 5241 background: #fafafa; 5242 color: #333; 5243 border-color: #e0e0e0; 5244} 5245 5246.static-theme-light .static-calendar-grid td { 5247 border-color: #f0f0f0; 5248 color: #333; 5249} 5250 5251.static-theme-light .static-day-empty { 5252 background: #fafafa; 5253} 5254 5255.static-theme-light .static-day-weekend { 5256 background: #f5f5f5; 5257} 5258 5259.static-theme-light .static-day-number { 5260 color: #666; 5261} 5262 5263.static-theme-light .static-day-today .static-day-number { 5264 background: #333; 5265 color: #fff; 5266} 5267 5268.static-theme-light .static-event { 5269 background: #f5f5f5; 5270 color: #333; 5271} 5272 5273.static-theme-light .static-event:hover { 5274 background: #eeeeee; 5275} 5276 5277/* Static calendar rich tooltip */ 5278.static-tooltip { 5279 position: fixed; 5280 background: #2c3e50; 5281 color: white; 5282 padding: 10px 14px; 5283 border-radius: 6px; 5284 font-size: 12px; 5285 max-width: 300px; 5286 z-index: 10000; 5287 box-shadow: 0 4px 12px rgba(0,0,0,0.3); 5288 pointer-events: none; 5289 line-height: 1.4; 5290} 5291 5292.static-tooltip strong { 5293 display: block; 5294 margin-bottom: 4px; 5295 font-size: 13px; 5296} 5297 5298.static-tooltip .tooltip-time { 5299 color: #3498db; 5300 font-weight: 500; 5301} 5302 5303.static-tooltip .tooltip-desc { 5304 display: block; 5305 margin-top: 6px; 5306 color: #ecf0f1; 5307 border-top: 1px solid rgba(255,255,255,0.2); 5308 padding-top: 6px; 5309} 5310 5311.static-tooltip .tooltip-desc strong { 5312 display: inline; 5313 margin: 0; 5314 font-size: inherit; 5315} 5316 5317.static-tooltip .tooltip-desc em { 5318 font-style: italic; 5319} 5320 5321.static-tooltip a { 5322 color: #3498db; 5323 text-decoration: underline; 5324} 5325 5326/* Itinerary description formatting */ 5327.static-itinerary-desc strong { 5328 font-weight: 600; 5329} 5330 5331.static-itinerary-desc em { 5332 font-style: italic; 5333} 5334 5335.static-itinerary-desc a { 5336 color: #2980b9; 5337 text-decoration: underline; 5338} 5339 5340.static-itinerary-desc br { 5341 display: block; 5342 content: ""; 5343 margin-top: 4px; 5344} 5345