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