/* 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: #92400e; }
.dark .fpc-theme-general { border-color: rgba(217, 119, 6, 0.8); background-color: rgba(120, 53, 15, 0.5); color: #fde68a; }

.fpc-theme-youth { border-color: rgba(16, 185, 129, 0.6); background-color: rgba(209, 250, 229, 0.7); color: #065f46; }
.dark .fpc-theme-youth { border-color: rgba(5, 150, 105, 0.8); background-color: rgba(6, 78, 59, 0.5); color: #a7f3d0; }

.fpc-theme-special { border-color: rgba(59, 130, 246, 0.6); background-color: rgba(219, 234, 254, 0.7); color: #1e40af; }
.dark .fpc-theme-special { border-color: rgba(37, 99, 235, 0.8); background-color: rgba(30, 58, 138, 0.5); color: #bfdbfe; }

/* 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); } }
/* ==========================================
   PRINT STYLES FOR DOCUMENT GENERATOR
========================================== */
@media print {
    /* 1. Completely remove UI elements, sidebars, AND global theme headers/footers */
    .fpc-hide-on-print,
    #wpadminbar,
    header, 
    footer, 
    .site-header, 
    .site-footer, 
    #masthead, 
    #colophon {
        display: none !important;
    }

    /* 2. Strip ALL padding, margins, flex layouts, and backgrounds from the portal wrappers */
    body, html, 
    .max-w-7xl, 
    .xl\:flex-row, 
    .xl\:w-2\/3, 
    .bg-\[\#151514\], 
    .dark\:bg-\[\#111\], 
    .bg-stone-100,
    .p-6, 
    .sm\:p-8, 
    .sm\:p-10 {
        background: transparent !important;
        background-color: transparent !important;
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
        box-shadow: none !important;
        position: static !important;
        max-width: none !important;
        width: 100% !important;
        display: block !important; 
    }

    /* 3. Ensure the print container behaves as the absolute root of the page */
    #fpc-print-container {
        position: relative !important; 
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
        box-shadow: none !important;
        display: block !important;
    }

    /* ------------------------------------
       4. CRITICAL: Fix Table Page Breaks
    ------------------------------------ */
    table {
        page-break-inside: auto !important;
        border-collapse: collapse !important;
        width: 100% !important;
    }
    
    tr {
        /* Prevents rows from being cut in half across pages */
        page-break-inside: avoid !important;
        break-inside: avoid !important;
        page-break-after: auto !important;
    }
    
    thead {
        /* Forces the table headers (e.g., Date | Vacuum | Bathrooms) to repeat at the top of page 2, 3, etc. */
        display: table-header-group !important; 
    }
    
    th, td {
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    /* 5. Clean up interactive hover effects */
    .hover\:bg-yellow-50 {
        background-color: transparent !important;
    }
}