body { 
    font-family: 'Inter', sans-serif; 
    background-color: #f8fafc; 
}

/* Loader */
.loader { 
    border: 3px solid #f3f3f3; 
    border-top: 3px solid #2563eb; 
    border-radius: 50%; 
    width: 20px; 
    height: 20px; 
    animation: spin 1s linear infinite; 
}
@keyframes spin { 
    0% { transform: rotate(0deg); } 
    100% { transform: rotate(360deg); } 
}

/* Scrollbar */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* Modal Animation */
.modal-content { animation: slide-up 0.3s ease-out; }
@keyframes slide-up { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

/* OCR Zoom */
#ocr-image-preview {
    transition: transform 0.1s; 
    cursor: grab;
    transform-origin: center center;
}
#ocr-image-preview:active { cursor: grabbing; }

/* Alert Blink */
@keyframes blink-urgent {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.4; transform: scale(1.3); color: #ff0000; } 
}
.animate-blink-red {
    animation: blink-urgent 0.6s cubic-bezier(0.4, 0, 0.6, 1) infinite; 
    font-weight: bold;
}

/* Theme Override for Tax Mode (Orange) */
body.theme-tax .loader { border-top-color: #f97316; }
body.theme-tax .bg-blue-600 { background-color: #f97316 !important; }
body.theme-tax .hover\:bg-blue-700:hover { background-color: #ea580c !important; }
body.theme-tax .text-blue-600 { color: #f97316 !important; }
body.theme-tax .focus\:ring-blue-500:focus { --tw-ring-color: #f97316 !important; }