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