/* Mobile-First Enhancements CSS */
/* This file provides mobile-first responsive design enhancements */

/* Loading spinner animation */
.spinner-large {
    animation: spin 1s linear infinite;
}

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

/* Job Details Pages - Apply Button Fixes (All Screen Sizes) */
.content-card {
    position: relative !important;
    overflow: visible !important;
    box-sizing: border-box !important;
}

.apply-btn {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    display: block !important;
    text-align: center !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Apply Button Container - All Screen Sizes */
.mt-6.pt-6.border-t {
    position: relative !important;
    overflow: visible !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    left: 0 !important;
    right: 0 !important;
    box-sizing: border-box !important;
}

/* Base mobile styles */
@media screen and (max-width: 768px) {
    /* Force single column layout on mobile */
    #jobs-container {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
        padding: 0 !important;
        background: transparent !important;
    }
    
    /* Make job cards mobile-friendly */
    .job-card-link {
        display: block !important;
        margin-bottom: 1rem;
    }
    
    .mobile-job-item {
        display: block !important;
    }
    
    /* Mobile Job Items - Clean List Style (No Cards) */
    .mobile-job-item {
        background: transparent;
        border: none;
        border-bottom: 1px solid #e5e7eb;
        margin-bottom: 0;
        box-shadow: none;
        border-radius: 0;
        overflow: visible;
        transition: background-color 0.2s ease;
    }
    
    .mobile-job-item:hover {
        background: #f9fafb;
        box-shadow: none;
        border-color: #e5e7eb;
        transform: none;
    }
    
    .mobile-job-item:last-child {
        border-bottom: none;
    }
    
    /* Urgent hiring banner */
    .mobile-urgent-banner {
        background: #dc2626;
        color: white;
        padding: 4px 16px;
        font-size: 11px;
        font-weight: 600;
        text-align: left;
        margin: -20px -20px 12px -20px;
    }
    
    /* Main content area */
    .mobile-job-content {
        padding: 20px 0;
    }
    
    /* Job header with title and salary */
    .mobile-job-header {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        margin-bottom: 8px;
        gap: 12px;
    }
    
    .mobile-job-title {
        font-size: 16px !important;
        font-weight: 600 !important;
        color: #1f2937 !important;
        line-height: 1.4 !important;
        margin: 0 !important;
        flex: 1;
        min-width: 0;
    }
    
    .mobile-salary-tag {
        background: #059669 !important;
        color: white !important;
        font-size: 12px !important;
        font-weight: 600 !important;
        padding: 4px 8px !important;
        border-radius: 12px !important;
        white-space: nowrap;
        flex-shrink: 0;
    }
    
    /* Company and meta information */
    .mobile-job-meta {
        margin-bottom: 12px;
    }
    
    .mobile-company-info {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 4px;
        flex-wrap: wrap;
        gap: 8px;
    }
    
    .mobile-company {
        font-size: 14px !important;
        color: #2563eb !important;
        font-weight: 500 !important;
        text-decoration: none;
    }
    
    .mobile-location {
        font-size: 13px !important;
        color: #6b7280 !important;
        font-weight: 400 !important;
    }
    
    .mobile-experience {
        font-size: 12px !important;
        color: #9ca3af !important;
        font-style: italic;
        margin-top: 2px;
    }
    
    /* View job button - simpler style */
    .mobile-view-job-btn {
        display: inline-flex !important;
        align-items: center !important;
        background: #3b82f6 !important;
        color: white !important;
        padding: 8px 16px !important;
        border-radius: 6px !important;
        font-size: 14px !important;
        font-weight: 500 !important;
        text-decoration: none !important;
        transition: all 0.2s ease !important;
        border: none !important;
        gap: 6px;
    }
    
    .mobile-view-job-btn:hover {
        background: #2563eb !important;
        transform: translateY(-1px) !important;
    }
    
    .mobile-view-job-btn:active {
        transform: translateY(0) !important;
        background: #1d4ed8 !important;
    }
    
    .mobile-arrow-icon {
        width: 16px !important;
        height: 16px !important;
        transition: transform 0.2s ease !important;
    }
    
    .mobile-view-job-btn:hover .mobile-arrow-icon {
        transform: translateX(2px) !important;
    }
    
    /* Jobs container mobile optimization */
    #jobs-container {
        gap: 0 !important;
        padding: 0 !important;
    }
    
    /* Loading and error states */
    #jobs-loading,
    #jobs-error,
    #no-jobs-message {
        padding: 32px 16px;
        text-align: center;
        background: white;
        border-radius: 8px;
        margin-bottom: 16px;
    }
    
    /* Job listings section mobile spacing */
    #job-listings-section {
        padding: 24px 16px !important;
    }
    
    #job-listings-section h2 {
        font-size: 1.5rem !important;
        margin-bottom: 16px !important;
    }
    
    #job-listings-section p {
        font-size: 0.875rem !important;
        margin-bottom: 24px !important;
    }
    
    /* Job Details Pages - Apply Button Fixes */
    .content-card {
        margin: 0 0 16px 0 !important;
        padding: 16px !important;
        border-radius: 8px !important;
        overflow: visible !important;
        position: relative !important;
    }
    
    .apply-btn {
        position: relative !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 16px 0 0 0 !important;
        padding: 12px 16px !important;
        font-size: 14px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        box-sizing: border-box !important;
        display: block !important;
        text-align: center !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        transform: none !important;
    }
    
    /* Job Details Page Layout Fixes */
    .grid.grid-cols-1.md\\:grid-cols-3.gap-6 {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    
    .md\\:col-span-2 {
        grid-column: span 1 !important;
    }
    
    /* Job Highlights Container */
    .content-card h3.section-title + div {
        max-width: 100% !important;
        overflow: visible !important;
    }
    
    /* Apply Button Container */
    .mt-6.pt-6.border-t,
    .content-card > div:last-child,
    div:has(.apply-btn) {
        position: relative !important;
        overflow: visible !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        left: 0 !important;
        right: 0 !important;
        box-sizing: border-box !important;
    }
    
    /* Additional container fixes */
    .content-card * {
        box-sizing: border-box !important;
    }
    
    /* Mobile filters section */
    #job-listings-section .bg-white.rounded-lg.shadow-md {
        margin: 0 -16px 16px -16px !important;
        border-radius: 0 !important;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
    }
    
    #job-listings-section .grid.grid-cols-1.md\\:grid-cols-2.lg\\:grid-cols-5 {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    
    #job-listings-section .lg\\:col-span-2 {
        grid-column: span 1 !important;
    }
    
    /* Mobile search and filter inputs */
    #job-listings-section input,
    #job-listings-section select {
        font-size: 16px !important; /* Prevent zoom on iOS */
        padding: 12px !important;
        border-radius: 6px !important;
    }
    
    /* Results summary mobile optimization */
    .flex.justify-between.items-center.mb-6 {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 12px !important;
    }
    
    /* Jobs per page selector */
    .flex.items-center.gap-4 {
        align-self: flex-end !important;
    }
    
    /* Mobile navigation improvements */
    .mobile-nav-toggle {
        display: block;
    }
    
    /* Mobile Navigation Menu Fixes */
    #mobile-menu {
        position: fixed !important;
        top: 60px !important;
        left: 0 !important;
        right: 0 !important;
        background: white !important;
        border-top: 1px solid #e5e7eb !important;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1) !important;
        z-index: 1000 !important;
        transition: all 0.3s ease !important;
        transform: translateY(-100%) !important;
        opacity: 0 !important;
    }
    
    #mobile-menu:not(.hidden) {
        transform: translateY(0) !important;
        opacity: 1 !important;
    }
    
    #mobile-menu .nav-item {
        display: block !important;
        padding: 16px 20px !important;
        border-bottom: 1px solid #f3f4f6 !important;
        color: #374151 !important;
        text-decoration: none !important;
        font-weight: 500 !important;
        transition: all 0.2s ease !important;
    }
    
    #mobile-menu .nav-item:hover {
        background: #f9fafb !important;
        color: #3b82f6 !important;
    }
    
    #mobile-menu .nav-item:last-child {
        border-bottom: none !important;
    }
    
    /* Mobile menu button animation */
    .mobile-menu-toggle {
        transition: all 0.2s ease !important;
    }
    
    .mobile-menu-toggle:hover {
        background: #f3f4f6 !important;
    }
    
    /* Hamburger animation */
    .hamburger-line {
        transition: all 0.3s ease !important;
        transform-origin: center !important;
    }
    
    .mobile-menu-open .hamburger-line-1 {
        transform: rotate(45deg) translate(6px, 6px) !important;
    }
    
    .mobile-menu-open .hamburger-line-2 {
        opacity: 0 !important;
    }
    
    .mobile-menu-open .hamburger-line-3 {
        transform: rotate(-45deg) translate(6px, -6px) !important;
    }
    
    /* Mobile form enhancements */
    .mobile-form-group {
        margin-bottom: 1rem;
    }
    
    /* Mobile text sizing */
    .mobile-text-sm {
        font-size: 0.875rem;
    }
    
    /* Mobile spacing utilities */
    .mobile-px-4 {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    
    .mobile-py-2 {
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
    }
}

/* Tablet and larger screens */
@media screen and (min-width: 769px) {
    .mobile-nav-toggle {
        display: none;
    }
}

/* High DPI displays */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    /* Optimize for retina displays */
    .high-dpi-text {
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }
}

/* Accessibility improvements */
@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Dark mode support */
@media (prefers-color-scheme: dark) {
    .dark-mode-support {
        color: #ffffff;
        background-color: #1a1a1a;
    }
}