.eventhub-favorites-page__intro{color:var(--eventhub-color-text-muted,#666);margin-bottom:var(--eventhub-spacing-lg,1.5rem)}.eventhub-favorites-page__export{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:var(--eventhub-spacing-lg,1.5rem)}.eventhub-favorites-page__ics-btn,.eventhub-favorites-page__pdf-btn,.eventhub-favorites-page__mail-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border:none;background:#fff0;text-decoration:none;font:inherit;font-size:var(--eventhub-font-size-sm,.875rem);color:var(--eventhub-color-text-muted,#666);cursor:pointer;border-radius:var(--eventhub-border-radius,4px);transition:color var(--eventhub-transition,0.2s ease),background-color var(--eventhub-transition,0.2s ease)}.eventhub-favorites-page__ics-btn:hover,.eventhub-favorites-page__pdf-btn:hover,.eventhub-favorites-page__mail-btn:hover,.eventhub-favorites-page__ics-btn:focus-visible,.eventhub-favorites-page__pdf-btn:focus-visible,.eventhub-favorites-page__mail-btn:focus-visible{color:var(--eventhub-color-primary,#0073aa);background-color:var(--eventhub-color-bg-alt,#f9f9f9)}.eventhub-favorites-page__ics-btn:focus-visible,.eventhub-favorites-page__pdf-btn:focus-visible,.eventhub-favorites-page__mail-btn:focus-visible{outline:2px solid var(--eventhub-color-primary,#0073aa);outline-offset:2px}.eventhub-favorites-page__ics-btn:disabled,.eventhub-favorites-page__pdf-btn:disabled,.eventhub-favorites-page__mail-btn:disabled{opacity:.6;cursor:wait}.eventhub-favorites-page__export-icon{width:16px;height:16px;flex-shrink:0}.eventhub-favorites-page__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--eventhub-spacing-xl,2rem);min-height:200px;color:var(--eventhub-color-text-muted,#666)}.eventhub-loading-spinner{width:40px;height:40px;border:3px solid var(--eventhub-color-border,#ddd);border-top-color:var(--eventhub-color-primary,#0073aa);border-radius:50%;animation:eventhub-spin 0.8s linear infinite;margin-bottom:var(--eventhub-spacing-md,1rem)}@keyframes eventhub-spin{to{transform:rotate(360deg)}}.eventhub-favorites-page__empty{text-align:center;padding:var(--eventhub-spacing-xl,2rem);max-width:500px;margin:0 auto}.eventhub-favorites-page__empty-icon{color:var(--eventhub-color-text-muted,#999);margin-bottom:var(--eventhub-spacing-lg,1.5rem)}.eventhub-favorites-page__empty-icon svg{opacity:.5}.eventhub-favorites-page__empty h2{margin-bottom:var(--eventhub-spacing-md,1rem);font-size:var(--eventhub-font-size-xl,1.5rem)}.eventhub-favorites-page__empty p{color:var(--eventhub-color-text-muted,#666);margin-bottom:var(--eventhub-spacing-md,1rem)}.eventhub-button{display:inline-block;padding:var(--eventhub-spacing-sm,.5rem) var(--eventhub-spacing-lg,1.5rem);background:var(--eventhub-color-primary,#0073aa);color:#fff;text-decoration:none;border-radius:var(--eventhub-border-radius,4px);font-weight:500;transition:background var(--eventhub-transition,0.2s ease);margin-top:var(--eventhub-spacing-md,1rem)}.eventhub-button:hover,.eventhub-button:focus-visible{background:var(--eventhub-color-primary-dark,#005a87);color:#fff}.eventhub-button:focus-visible{outline:2px solid var(--eventhub-color-primary,#0073aa);outline-offset:2px}.eventhub-favorites-page__past-notice{display:flex;align-items:center;gap:var(--eventhub-spacing-sm,.5rem);margin-top:var(--eventhub-spacing-lg,1.5rem);padding:var(--eventhub-spacing-sm,.5rem) var(--eventhub-spacing-md,1rem);font-size:var(--eventhub-font-size-base,1rem);color:var(--eventhub-color-text-muted,#666);background:var(--eventhub-color-bg-alt,#f9f9f9);border-left:3px solid var(--eventhub-color-text-muted,#666);border-radius:var(--eventhub-border-radius,4px)}.eventhub-favorites-page__past-notice-icon{flex-shrink:0;display:inline-flex;align-items:center;opacity:.7}.eventhub-favorites-page__grid .eventhub-card,.eventhub-favorites-page__grid .eventhub-event-card,.eventhub-favorites-page__grid .eventhub-card-banner{transition:opacity 0.3s ease,transform 0.3s ease}