/* Glassmorphism Utilities */
.glass-header {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.dark .glass-header {
    background: rgba(17, 24, 39, 0.85);
}

.glass-card {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.dark .glass-card {
    background: rgba(31, 41, 55, 0.7);
}

/* Custom Scrollbar */
.custom-scrollbar::-webkit-scrollbar {
    height: 8px;
    width: 8px;
}

.custom-scrollbar::-webkit-scrollbar-track {
    background: transparent;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
    background-color: rgba(59, 130, 246, 0.5); /* Blue thumb */
    border-radius: 20px;
}

.dark .custom-scrollbar::-webkit-scrollbar-thumb {
    background-color: rgba(59, 130, 246, 0.3);
}

.custom-scrollbar::-webkit-scrollbar-thumb:hover {
    background-color: rgba(59, 130, 246, 0.8);
}

/* FAQ Accordion Transitions */
.faq-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease-out, opacity 0.25s ease;
    opacity: 0;
}

.faq-item.active .faq-content {
    max-height: 800px;
    opacity: 1;
}

.faq-chevron {
    transition: transform 0.3s ease;
}

.faq-item.active .faq-chevron {
    transform: rotate(180deg);
}

/* Print Layout Optimization */
@media print {
    body {
        background: #ffffff !important;
        color: #000000 !important;
        font-size: 12pt;
    }
    
    header, footer, #control-panel, #quick-presets, #faq, #info-sections, #how-it-works, .no-print, button, #themeToggle {
        display: none !important;
    }
    
    #calendar-display-section, #yearCalendarContainer {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        box-shadow: none !important;
        border: none !important;
    }

    .calendar-grid-container {
        border: 1px solid #e2e8f0 !important;
        border-radius: 8px !important;
        page-break-inside: avoid;
    }

    .calendar-cell {
        border: 1px solid #cbd5e1 !important;
        min-height: 80px !important;
        color: #000000 !important;
    }
    
    .text-red-500, .text-red-600 {
        color: #b91c1c !important;
        font-weight: bold !important;
    }

    .bg-blue-500, .bg-blue-600 {
        background-color: #3b82f6 !important;
        color: #ffffff !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    
    .bg-red-50, .bg-blue-50 {
        background-color: #f8fafc !important;
    }

    .page-break {
        page-break-after: always !important;
        break-after: page !important;
    }

    .dark {
        background-color: #ffffff !important;
        color: #000000 !important;
    }
}
