/* FPC Calendar Wrapper & Layout */
.fpc-cal-wrapper { background-image: radial-gradient(150% 120% at 100% 0%, transparent 37%, rgba(245, 158, 11, 0.02) 37.5%, rgba(245, 158, 11, 0.08) 38%, rgba(245, 158, 11, 0.02) 38.5%, transparent 39%), radial-gradient(150% 120% at 0% 100%, transparent 37%, rgba(21, 21, 20, 0.02) 37.5%, rgba(21, 21, 20, 0.08) 38%, rgba(21, 21, 20, 0.02) 38.5%, transparent 39%), radial-gradient(ellipse at 80% 30%, rgba(245, 158, 11, 0.05) 0%, transparent 60%), radial-gradient(ellipse at 20% 70%, rgba(21, 21, 20, 0.03) 0%, transparent 60%); }
.dark .fpc-cal-wrapper { color-scheme: dark; background-image: radial-gradient(150% 120% at 100% 0%, transparent 37%, rgba(245, 158, 11, 0.02) 37.5%, rgba(245, 158, 11, 0.08) 38%, rgba(245, 158, 11, 0.02) 38.5%, transparent 39%), radial-gradient(150% 120% at 0% 100%, transparent 37%, rgba(250, 250, 249, 0.02) 37.5%, rgba(250, 250, 249, 0.08) 38%, rgba(250, 250, 249, 0.02) 38.5%, transparent 39%), radial-gradient(ellipse at 80% 30%, rgba(245, 158, 11, 0.05) 0%, transparent 60%), radial-gradient(ellipse at 20% 70%, rgba(250, 250, 249, 0.02) 0%, transparent 60%); }
.fpc-cal-wrapper ::selection { background-color: rgba(245, 158, 11, 0.3); color: #1c1917; }
.dark .fpc-cal-wrapper ::selection { background-color: rgba(245, 158, 11, 0.8); color: #ffffff; }

/* Admin Form Dark Mode Overrides */
.dark #fpc-admin-form input:-webkit-autofill, .dark #fpc-admin-form textarea:-webkit-autofill, .dark #fpc-admin-form select:-webkit-autofill { -webkit-box-shadow: 0 0 0 30px #1c1917 inset !important; -webkit-text-fill-color: #f5f5f4 !important; transition: background-color 5000s ease-in-out 0s; }
.dark input[type="date"]::-webkit-calendar-picker-indicator, .dark input[type="time"]::-webkit-calendar-picker-indicator { filter: invert(1); opacity: 0.8; cursor: pointer; }

/* Sidebar & Buttons */
#fpc-sidebar { transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, padding 0.4s ease; }
.fpc-sidebar-collapsed { width: 0 !important; opacity: 0; overflow: hidden; margin-left: 0 !important; border: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
.fpc-filter-active { background-color: #1c1917; color: white; }
.dark .fpc-filter-active { background-color: #f59e0b; color: #1c1917; }
.fpc-hidden-by-filter { display: none !important; }

/* Event Ribbons */
.fpc-ribbon-start { border-top-left-radius: 8px; border-bottom-left-radius: 8px; margin-left: 4px; border-left-width: 3px; border-left-style: solid; }
.fpc-ribbon-end { border-top-right-radius: 8px; border-bottom-right-radius: 8px; margin-right: 4px; border-right-width: 3px; border-right-style: solid; }
.fpc-ribbon-middle { border-radius: 0; margin: 0 -8px; padding-left: 14px; padding-right: 14px; z-index: 10; }
.fpc-ribbon-single { border-radius: 8px; margin: 0 4px; border-left-width: 3px; border-left-style: solid; }

/* Category Themes */
.fpc-theme-general { border-color: rgba(245,158,11,0.6); background-color: rgba(254, 243, 199, 0.7); color: #1c1917; }
.dark .fpc-theme-general { background-color: rgba(63, 63, 70, 0.8); color: #e7e5e4; }
.fpc-theme-youth { border-color: rgba(16, 185, 129, 0.6); background-color: rgba(209, 250, 229, 0.7); color: #064e3b; }
.dark .fpc-theme-youth { background-color: rgba(6, 78, 59, 0.4); color: #a7f3d0; }
.fpc-theme-special { border-color: rgba(71, 85, 105, 0.6); background-color: rgba(241, 245, 249, 0.7); color: #0f172a; }
.dark .fpc-theme-special { background-color: rgba(30, 41, 59, 0.6); color: #e2e8f0; }

/* Pulsing Animation */
@keyframes fpc-ribbon-pulse { 0%, 100% { transform: scale(1); filter: brightness(1); box-shadow: 0 1px 2px rgba(0,0,0,0.05); } 50% { transform: scale(1.06); filter: brightness(1.1); box-shadow: 0 0 20px rgba(245, 158, 11, 0.8); z-index: 30; } }
.fpc-is-pulsing { animation: fpc-ribbon-pulse 1s ease-in-out 5; z-index: 30 !important; position: relative; border-left-color: #f59e0b !important; }

/* Wave Publishing UI */
.fpc-wave-step { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; font-size: 1.1rem; font-weight: bold; color: #4b5563; transition: all 0.3s ease; opacity: 0.5;}
.dark .fpc-wave-step { color: #a8a29e; }
.fpc-wave-active { opacity: 1; color: #111827; }
.dark .fpc-wave-active { color: #f5f5f4; }
.fpc-wave-success { color: #059669; opacity: 1; }
.dark .fpc-wave-success { color: #10b981; opacity: 1; }
.fpc-wave-error { color: #dc2626; opacity: 1; }
.dark .fpc-wave-error { color: #ef4444; opacity: 1; }
.fpc-spinner { animation: spin 1s linear infinite; }
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }