/**
 * Main CSS Entry Point
 * Imports all CSS modules in the correct order
 */

/* Base styles - loaded first */
@import './base/variables.css';
@import './base/reset.css';
@import './base/typography.css';

/* Layout styles */
@import './layout/main.css';

/* Component styles */
@import './components/chat.css?v=1.0.2';
@import './components/message.css';
@import './components/input.css';
@import './components/upload.css';
@import './components/drag-drop.css';
@import './components/progress-indicator.css';
@import './components/status-indicator.css?v=1.0.1';
@import './components/pdf-components.css';
@import './components/enhanced-messages.css';
@import './components/file-preview.css';
@import './components/offer-display.css';
@import './components/offer-html-modal.css';
@import './components/modal.css';
@import './components/notification.css';
@import './components/loader.css';

/* Utility classes */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Loading animation */
.loading {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--color-gray-300);
    border-radius: 50%;
    border-top-color: var(--color-primary);
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* Fade transitions */
.fade-in {
    animation: fadeIn 0.3s ease-in-out;
}

.fade-out {
    animation: fadeOut 0.3s ease-in-out;
}

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

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

@keyframes fadeOut {
    from {
        opacity: 1;
        transform: translateY(0);
    }

    to {
        opacity: 0;
        transform: translateY(-10px);
    }
}

/* Responsive utilities */
.hidden-mobile {
    display: block;
}

.hidden-desktop {
    display: none;
}

@media (max-width: 768px) {
    .hidden-mobile {
        display: none;
    }

    .hidden-desktop {
        display: block;
    }
}

/* Focus management */
.skip-link {
    position: absolute;
    top: -40px;
    left: 6px;
    background: var(--color-primary);
    color: var(--text-inverse);
    padding: var(--spacing-2) var(--spacing-3);
    text-decoration: none;
    border-radius: var(--radius-base);
    z-index: var(--z-tooltip);
}

.skip-link:focus {
    top: 6px;
}