@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

body {
    font-family: 'Inter', sans-serif;
    background-color: #f3f4f6;
}

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #f1f1f1; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

@media print {
    body { background: white; margin: 0; padding: 0; }
    #sidebar, #mobile-menu-btn, .no-print { display: none !important; }
    #main-content { margin-left: 0 !important; width: 100% !important; padding: 0 !important; }
    .print-container { width: 100%; max-width: 100%; margin: 0 auto; }
    table { page-break-inside: auto; border-collapse: collapse !important; width: 100%; }
    tr { page-break-inside: avoid; page-break-after: auto; }
    td, th { border: 1px solid #000 !important; padding: 4px !important; font-size: 10pt; }
    .shadow-md { box-shadow: none !important; }
    .rounded-lg { border-radius: 0 !important; }
    header { border-bottom: 2px solid black; margin-bottom: 20px; }
}

.loader {
    border: 4px solid #f3f3f3;
    border-top: 4px solid #3b82f6;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    animation: spin 1s linear infinite;
}
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.constraint-cell { cursor: pointer; transition: background-color 0.2s; }
.constraint-cell.blocked { background-color: #fca5a5; color: #991b1b; }
.constraint-cell.available { background-color: #bbf7d0; color: #166534; }

@keyframes blink-warning {
    0% { background-color: #fee2e2; border-color: #ef4444; }
    50% { background-color: #fca5a5; border-color: #b91c1c; }
    100% { background-color: #fee2e2; border-color: #ef4444; }
}
.blink-conflict {
    animation: blink-warning 0.8s infinite ease-in-out !important;
}