
/* Environment: prod - Generated styles */
.calendar-page-container {max-width:1200px;margin:0 auto;padding:1rem}.calendar-page-header {text-align:center;margin-bottom:2rem}.calendar-page-header h1 {color:#4b6cb7;font-size:2.5rem;font-weight:600;margin-bottom:0.5rem}.calendar-page-description {color:#666;font-size:1.1rem;margin:0}.calendar-controls {display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2rem;padding:1rem;background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0, 0, 0, 0.1);flex-wrap:wrap}.view-toggle {display:flex;background:#f5f5f5;border-radius:6px;padding:0.25rem;gap:0.25rem}.view-toggle-btn {display:flex;align-items:center;gap:0.5rem;padding:0.75rem 1rem;border:none;background:transparent;border-radius:4px;cursor:pointer;font-size:0.9rem;font-weight:500;color:#666;transition:all 0.2s ease;position:relative}.view-toggle-btn:hover {background:rgba(75, 108, 183, 0.1);color:#4b6cb7}.view-toggle-btn.active {background:#4b6cb7;color:#fff;box-shadow:0 2px 4px rgba(75, 108, 183, 0.3)}.view-toggle-btn:focus {outline:2px solid #4b6cb7;outline-offset:2px}.view-icon {font-size:1.1rem}.view-label {font-weight:500}.navigation-controls {display:flex;align-items:center;gap:1rem;flex:1;justify-content:center;min-width:0}.nav-btn {display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:1px solid #ddd;background:#fff;border-radius:50%;cursor:pointer;font-size:1.2rem;font-weight:bold;color:#4b6cb7;transition:all 0.2s ease}.nav-btn:hover {background:#4b6cb7;color:#fff;border-color:#4b6cb7;transform:scale(1.05)}.nav-btn:active {transform:scale(0.95)}.nav-btn:disabled {opacity:0.5;cursor:not-allowed;transform:none}.nav-btn:disabled:hover {background:#fff;color:#4b6cb7;border-color:#ddd}.current-period-container {min-width:200px;text-align:center}.current-period {font-size:1.3rem;font-weight:600;color:#333;margin:0;white-space:nowrap}.additional-controls {display:flex;align-items:center;gap:0.5rem}.today-btn {padding:0.75rem 1rem;border:1px solid #4b6cb7;background:#fff;color:#4b6cb7;border-radius:4px;cursor:pointer;font-size:0.9rem;font-weight:500;transition:all 0.2s ease}.today-btn:hover {background:#4b6cb7;color:#fff}.share-btn {display:flex;align-items:center;gap:0.5rem;padding:0.75rem 1rem;border:1px solid #ddd;background:#fff;color:#666;border-radius:4px;cursor:pointer;font-size:0.9rem;transition:all 0.2s ease}.share-btn:hover {background:#f5f5f5;border-color:#4b6cb7;color:#4b6cb7}.share-icon {font-size:1rem}.calendar-widget-container {margin-bottom:2rem;min-height:600px;position:relative}.calendar-loading-initial {display:flex;align-items:center;justify-content:center;height:400px;color:#666;font-size:1.1rem}.calendar-loading-initial::after {content:'';display:inline-block;width:20px;height:20px;border:2px solid #e0e0e0;border-top:2px solid #4b6cb7;border-radius:50%;animation:calendar-spin 1s linear infinite;margin-left:0.5rem}.calendar-legend {background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 8px rgba(0, 0, 0, 0.1)}.calendar-legend h3 {color:#333;font-size:1.1rem;font-weight:600;margin-bottom:1rem;text-align:center}.legend-items {display:grid;grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));gap:0.75rem}.legend-item {display:flex;align-items:center;gap:0.5rem;padding:0.5rem;border-radius:4px;transition:background-color 0.2s ease}.legend-item:hover {background:#f8f9fa}.legend-color {width:16px;height:16px;border-radius:3px;border:1px solid rgba(0, 0, 0, 0.1);flex-shrink:0}.legend-color--community {background:#4caf50}.legend-color--arts-culture {background:#9c27b0}.legend-color--sports-recreation {background:#ff9800}.legend-color--food-drink {background:#e91e63}.legend-color--business-networking {background:#009688}.legend-color--education {background:#ffc107}.legend-label {font-size:0.9rem;color:#333;font-weight:500}.legend-loading {display:flex;align-items:center;justify-content:center;padding:2rem;color:#666;font-size:0.9rem}.legend-loading::after {content:'';display:inline-block;width:16px;height:16px;border:2px solid #e0e0e0;border-top:2px solid #4b6cb7;border-radius:50%;animation:calendar-spin 1s linear infinite;margin-left:0.5rem}.mobile-nav-helper {display:none;text-align:center;padding:1rem;background:#f8f9fa;border-radius:4px;margin-top:1rem;color:#666;font-size:0.9rem}.share-modal {position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;display:none}.share-modal.active {display:flex;align-items:center;justify-content:center}.share-modal-backdrop {position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0, 0, 0, 0.5);cursor:pointer}.share-modal-content {position:relative;background:#fff;border-radius:8px;box-shadow:0 4px 20px rgba(0, 0, 0, 0.3);max-width:500px;width:90%;max-height:90vh;overflow-y:auto;z-index:1001}.share-modal-header {display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid #e0e0e0}.share-modal-header h3 {margin:0;color:#333;font-size:1.2rem}.share-modal-close {background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:0.25rem;line-height:1;border-radius:4px;transition:background-color 0.2s ease}.share-modal-close:hover {background:#f5f5f5}.share-modal-body {padding:1.5rem}.share-modal-body p {margin-bottom:1rem;color:#666}.share-url-container {display:flex;gap:0.5rem;margin-bottom:1.5rem}.share-url-input {flex:1;padding:0.75rem;border:1px solid #ddd;border-radius:4px;font-size:0.9rem;background:#f8f9fa}.copy-btn {padding:0.75rem 1rem;border:1px solid #4b6cb7;background:#4b6cb7;color:#fff;border-radius:4px;cursor:pointer;font-size:0.9rem;font-weight:500;transition:background-color 0.2s ease}.copy-btn:hover {background:#3a5a9e}.copy-btn.copied {background:#4caf50;border-color:#4caf50}.share-options {display:flex;gap:0.5rem;flex-wrap:wrap}.share-option-btn {flex:1;min-width:100px;padding:0.75rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:0.9rem;font-weight:500;color:#fff;transition:opacity 0.2s ease}.share-option-btn:hover {opacity:0.9}.share-option-btn.facebook {background:#1877f2}.share-option-btn.twitter {background:#1da1f2}.share-option-btn.email {background:#666}@media (max-width:768px) {.calendar-page-container {padding:0.5rem}.calendar-page-header h1 {font-size:2rem}.calendar-page-description {font-size:1rem}.calendar-controls {flex-direction:column;gap:1rem;align-items:stretch}.view-toggle {justify-content:center}.navigation-controls {order:2}.additional-controls {order:3;justify-content:center}.current-period {font-size:1.1rem}.legend-items {grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));gap:0.5rem}.mobile-nav-helper {display:block}.share-modal-content {width:95%}.share-options {flex-direction:column}.share-option-btn {min-width:auto}}@media (max-width:480px) {.calendar-page-header h1 {font-size:1.8rem}.view-toggle-btn {padding:0.6rem 0.8rem;font-size:0.85rem}.view-icon {font-size:1rem}.nav-btn {width:2.2rem;height:2.2rem;font-size:1.1rem}.current-period {font-size:1rem}.current-period-container {min-width:150px}.today-btn, .share-btn {padding:0.6rem 0.8rem;font-size:0.85rem}.legend-items {grid-template-columns:1fr}.share-modal-header, .share-modal-body {padding:1rem}}@media (prefers-contrast:high) {.calendar-controls {border:2px solid #000}.view-toggle-btn {border:1px solid #000}.view-toggle-btn.active {background:#000;color:#fff}.nav-btn {border:2px solid #000}.legend-color {border:2px solid #000}}@media (prefers-reduced-motion:reduce) {.view-toggle-btn, .nav-btn, .today-btn, .share-btn, .legend-item, .share-modal-close, .copy-btn, .share-option-btn {transition:none}.calendar-loading-initial::after {animation:none}.nav-btn:hover {transform:none}.nav-btn:active {transform:none}}@media print {.calendar-controls {display:none}.calendar-legend {break-inside:avoid;page-break-inside:avoid}.mobile-nav-helper {display:none}.share-modal {display:none}}.calendar-page-container:focus-within .calendar-controls {outline:2px solid #4b6cb7;outline-offset:2px}.calendar-widget-container .calendar-widget {opacity:1;transition:opacity 0.3s ease}.calendar-widget-container .calendar-widget.switching {opacity:0}.calendar-widget-container.loading::after {content:'';position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:40px;height:40px;border:3px solid #e0e0e0;border-top:3px solid #4b6cb7;border-radius:50%;animation:calendar-spin 1s linear infinite;z-index:10}@keyframes calendar-spin {0% {transform:translate(-50%, -50%) rotate(0deg)}100% {transform:translate(-50%, -50%) rotate(360deg)}}