@layer utilities {
    .font-inter {
        font-family: 'Inter', sans-serif;
    }
}

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Base Inputs */
.input-field {
    @apply w-full px-4 py-2 border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 rounded-lg outline-none focus:border-primary focus:ring-1 focus:ring-primary transition shadow-sm text-sm text-gray-900 dark:text-gray-100;
}

/* Buttons */
.btn-primary {
    @apply bg-primary hover:bg-primaryDark text-white font-medium px-4 py-2 rounded-lg shadow-sm hover:shadow transition active:scale-95 flex items-center justify-center gap-2;
}

.btn-secondary {
    @apply bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 font-medium px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-600 hover:bg-gray-50 dark:hover:bg-gray-700 shadow-sm transition active:scale-95;
}

/* Tab Navigation */
.tab-btn {
    @apply text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800;
}

.tab-btn.active {
    @apply bg-blue-50 dark:bg-blue-900/30 text-primary font-semibold;
}

/* Animations */
.animate-fade-in {
    animation: fadeIn 0.3s ease-out forwards;
}

.animate-scale-up {
    animation: scaleUp 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes scaleUp {
    from {
        opacity: 0;
        transform: scale(0.95);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Print Styles */
@media print {
    body {
        @apply bg-white text-black;
    }

    .view-section {
        @apply block opacity-100 blur-none;
    }

    .view-section:not(.active) {
        display: none !important;
    }

    .glass-panel,
    .shadow-sm,
    .shadow-md,
    .shadow-lg,
    .shadow-2xl {
        box-shadow: none !important;
        border: 1px solid #ccc !important;
    }
}