/* Mobile-first responsive design with animations */
* {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    padding: 0;
    font-family: 'Roboto', sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Smooth transitions for all interactive elements */
.mud-button, .mud-card, .mud-paper, .mud-nav-link, .mud-menu-item {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Card hover effects */
.mud-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}

.mud-card:hover {
    transform: translateY(-4px);
    box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.3) !important;
}

/* Button hover effects */
.mud-button-root:hover {
    transform: scale(1.02);
}

.mud-button-root:active {
    transform: scale(0.98);
}

/* Page transitions */
.page-enter {
    opacity: 0;
    transform: translateY(20px);
}

.page-enter-active {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

/* Fade in animation for content */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fade-in {
    animation: fadeIn 0.5s ease-out;
}

/* Slide in from left */
@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.slide-in-left {
    animation: slideInLeft 0.4s ease-out;
}

/* Pulse animation for loading states */
@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
}

.pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Mobile-first responsive utilities */
@media (max-width: 600px) {
    .mud-container {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    
    .mud-typography-h4 {
        font-size: 1.5rem !important;
    }
    
    .mud-typography-h5 {
        font-size: 1.25rem !important;
    }
    
    .mud-typography-h6 {
        font-size: 1rem !important;
    }
}

/* Custom scrollbar for dark theme */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: #1E1E1E;
}

::-webkit-scrollbar-thumb {
    background: #424242;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #616161;
}

/* Loading spinner animation */
@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.spin {
    animation: spin 1s linear infinite;
}

/* Table row hover effect */
.mud-table-row:hover {
    background-color: rgba(255, 255, 255, 0.05) !important;
    transition: background-color 0.2s ease;
}

/* Chip animation */
.mud-chip {
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

.mud-chip:hover {
    transform: scale(1.05);
}

/* Drawer animation improvements */
.mud-drawer {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* AppBar shadow on scroll */
.mud-appbar {
    transition: box-shadow 0.3s ease !important;
}

/* Smooth transitions for grid items */
.mud-grid-item {
    transition: all 0.3s ease;
}

/* Professional spacing */
.section-spacing {
    margin-top: 2rem;
    margin-bottom: 2rem;
}

@media (max-width: 600px) {
    .section-spacing {
        margin-top: 1rem;
        margin-bottom: 1rem;
    }
}

/* Card content padding adjustments for mobile */
@media (max-width: 600px) {
    .mud-card-content {
        padding: 16px !important;
    }
}

/* Button group spacing on mobile */
@media (max-width: 600px) {
    .mud-stack {
        gap: 8px !important;
    }
}
