/* Custom scrollbar */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}
::-webkit-scrollbar-track {
    background: #0f0f0f;
}
::-webkit-scrollbar-thumb {
    background: #2a2a2a;
    border-radius: 8px;
}
::-webkit-scrollbar-thumb:hover {
    background: #3a3a3a;
}

/* Smooth transitions */
* {
    scroll-behavior: smooth;
}

/* Modal animation */
.modal-content {
    animation: modalIn 0.2s ease-out;
}
@keyframes modalIn {
    from {
        opacity: 0;
        transform: scale(0.95) translateY(10px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* Toast animation */
.toast-item {
    animation: toastIn 0.3s ease-out;
}
@keyframes toastIn {
    from {
        opacity: 0;
        transform: translateX(100px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Calendar day hover */
.calendar-day {
    transition: all 0.15s ease;
}
.calendar-day:hover {
    background-color: #252525;
}

/* Print styles */
@media print {
    body * {
        visibility: hidden;
    }
    #pdfPrintArea, #pdfPrintArea * {
        visibility: visible;
    }
    #pdfPrintArea {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        padding: 0;
    }
    @page {
        margin: 1.5cm;
        size: A4;
    }
}

/* Focus ring for accessibility */
input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible {
    outline: 2px solid #FF6A00;
    outline-offset: 2px;
}

/* Status badge base */
.status-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 500;
    white-space: nowrap;
}