input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
input[type="number"] {
    -moz-appearance: textfield;
}

input[type="date"]::-webkit-calendar-picker-indicator {
    cursor: pointer;
    opacity: 0.6;
    transition: 0.2s;
}
input[type="date"]::-webkit-calendar-picker-indicator:hover {
    opacity: 1;
}

/* Ocultar scrollbar mantendo a funcionalidade */
.no-scrollbar::-webkit-scrollbar {
    display: none;
}
.no-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* ANIMAÇÃO PREMIUM - CSS PURO (Sem risco de falha no JS) */
@keyframes fadeSlideUp {
    0% { opacity: 0; transform: translateY(20px); }
    100% { opacity: 1; transform: translateY(0); }
}
.animate-card {
    opacity: 0; /* Inicia invisível para a animação assumir */
    animation: fadeSlideUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@media screen {
    .only-print { display: none !important; }
}

/* REGRAS DE IMPRESSÃO AVANÇADAS */
@media print {
    @page { 
        margin: 15mm; 
        size: A4 portrait; 
    }
    html, body {
        background-color: white !important;
        margin: 0 !important;
        padding: 0 !important;
        height: auto !important;
        overflow: visible !important;
    }
    .no-print { 
        display: none !important;
    }
    .only-print { 
        display: block !important;
        width: 100% !important;
    }
    * { 
        -webkit-print-color-adjust: exact !important; 
        print-color-adjust: exact !important; 
    }
    .avoid-break {
        break-inside: avoid;
        page-break-inside: avoid;
    }
    .page-break-before {
        page-break-before: always;
        break-before: page;
    }
    .print-footer {
        position: fixed;
        bottom: 10px;
        left: 0;
        width: 100%;
        background-color: white;
    }
    .print-content-wrapper {
        padding-bottom: 60px; 
    }
}