/**
 * Facility Booking CSS - CRITICAL FIXES Applied
 * File: public/css/modules/facility-booking.css
 * Created: Friday, September 12, 2025, 22:30 AEST
 * Updated: Sunday, September 14, 2025, 19:15 AEST
 * Version: 1.5.0 - CRITICAL FIXES: Aggressive white space reduction + visual improvements
 * 
 * CRITICAL FIXES IN v1.5.0:
 * - FIXED: Excessive white space with aggressive padding/margin reductions
 * - FIXED: Modal content spacing to bring cards closer to header
 * - FIXED: Grid positioning and spacing optimization
 * - ENHANCED: Visual hierarchy improvements for better user experience
 * 
 * Purpose: Complete styling for facility booking modal system
 * Theme: Light theme with category-based color coding
 * Layout: Seamless 3x3 grid with minimal white space and enhanced visual appeal
 * Features: Rounded corners, category colors, aggressive spacing optimization
 */

/* ================================================================
   FACILITY BOOKING MODAL - BASE STYLES
   ================================================================ */

.facility-booking-modal {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 999999 !important;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}

.facility-booking-modal.show {
    opacity: 1 !important;
    visibility: visible !important;
}

.facility-booking-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    background-color: rgba(0, 0, 0, 0.85) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 15px !important;
    box-sizing: border-box !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
}

.facility-booking-container {
    background: #ffffff !important;
    border-radius: 16px !important;
    box-shadow: 0 25px 80px rgba(0, 0, 0, 0.3) !important;
    width: 100% !important;
    max-width: 1100px !important;
    max-height: 88vh !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    animation: modalSlideIn 0.4s ease-out;
    margin: auto !important;
    position: relative !important;
}

@keyframes modalSlideIn {
    from {
        opacity: 0;
        transform: translateY(-30px) scale(0.94);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* ================================================================
   MODAL HEADER - ENHANCED USER CONTEXT
   ================================================================ */

.modal-header {
    background: linear-gradient(135deg, #4299e1 0%, #3182ce 100%) !important;
    color: white !important;
    padding: 18px 28px !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    border-bottom: none !important;
    flex-shrink: 0 !important;
    min-height: 65px !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1) !important;
}

.modal-header-content {
    display: flex !important;
    flex-direction: column !important;
    gap: 5px !important;
    flex-grow: 1 !important;
}

.modal-header h2 {
    margin: 0 !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: white !important;
    line-height: 1.2 !important;
    letter-spacing: -0.025em !important;
}

.user-context {
    color: rgba(255, 255, 255, 0.95) !important;
    font-size: 0.95rem !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    margin: 0 !important;
}

.user-context .user-name {
    font-weight: 600 !important;
}

.user-context .user-separator {
    margin: 0 8px !important;
    opacity: 0.8 !important;
    font-weight: 300 !important;
}

.user-context .building-name {
    font-weight: 500 !important;
}

.close-button {
    background: rgba(255, 255, 255, 0.15) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    color: white !important;
    width: 38px !important;
    height: 38px !important;
    border-radius: 10px !important;
    font-size: 18px !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
    flex-shrink: 0 !important;
    backdrop-filter: blur(10px) !important;
}

.close-button:hover {
    background: rgba(255, 255, 255, 0.25) !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
    transform: scale(1.05) !important;
}

/* ================================================================
   MODAL CONTENT - CRITICAL FIX: AGGRESSIVE SPACING REDUCTION
   ================================================================ */

.modal-content {
    flex: 1 !important;
    overflow-y: auto !important;
    padding: 0px !important;
    background: #ffffff !important;
    color: #2d3748 !important;
    -webkit-overflow-scrolling: touch !important;
}

.modal-content * {
    box-sizing: border-box !important;
}

.facility-section,
.calendar-section,
.booking-form-section {
    display: block !important;
    width: 100% !important;
}

.facility-section {
    padding: 0 !important; /* CRITICAL FIX: No padding for seamless appearance */
    margin: 0 !important;
}

.calendar-section,
.booking-form-section {
    padding: 20px !important; /* CRITICAL FIX: Reduced from 24px */
}

.facility-section h3,
.calendar-section h3,
.booking-form-section h3 {
    color: #2d3748 !important;
    margin: 0 0 16px 0 !important; /* CRITICAL FIX: Reduced from 20px */
    font-size: 1.25rem !important;
    font-weight: 600 !important;
}

/* ================================================================
   LOADING & ERROR STATES
   ================================================================ */

.loading-section, .error-container {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 40px 20px !important; /* CRITICAL FIX: Reduced from 60px */
    min-height: 250px !important; /* CRITICAL FIX: Reduced from 300px */
}

.loading-spinner {
    width: 48px !important;
    height: 48px !important;
    border: 4px solid #e2e8f0 !important;
    border-top: 4px solid #4299e1 !important;
    border-radius: 50% !important;
    animation: spin 1s linear infinite !important;
    margin-bottom: 16px !important; /* CRITICAL FIX: Reduced from 20px */
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.error-container .error-content {
    text-align: center !important;
    max-width: 400px !important;
}

.error-container h3 {
    color: #e53e3e !important;
    margin-bottom: 12px !important;
}

.error-container p {
    color: #718096 !important;
    margin-bottom: 20px !important;
    line-height: 1.5 !important;
}

/* ================================================================
   FACILITY GRID - CRITICAL FIX: AGGRESSIVE SPACING OPTIMIZATION
   ================================================================ */

.facility-grid {
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #ffffff !important;
}

/* HIDE: All facility type sections and headings */
.facility-type-section {
    display: none !important;
}

.facility-type-title {
    display: none !important;
}

.facility-type-grid {
    display: none !important;
}

/* CRITICAL FIX: Seamless grid with aggressive spacing optimization */
.facility-cards-seamless {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    grid-template-rows: repeat(3, 1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    height: auto !important;
    min-height: 580px !important;
    background: #ffffff !important;
    padding: 8px !important;
    padding-top: 4px !important;
    margin: 0 !important;
}

.facility-card {
    background: #ffffff !important;
    border: 2px solid #e2e8f0 !important;
    border-radius: 16px !important;
    padding: 16px !important;
    transition: all 0.3s ease !important;
    min-height: 200px !important;
    max-height: 200px !important;
    box-sizing: border-box !important;
    user-select: none !important;
    cursor: pointer !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    position: relative !important;
    overflow: hidden !important;
    margin: 0 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
}

/* ENHANCED: Category-based color themes */
.facility-card[data-facility-type*="meeting"] {
    background: linear-gradient(135deg, #fef7cd 0%, #fef3c7 100%) !important;
    border-color: #f59e0b !important;
}

.facility-card[data-facility-type*="pool"] {
    background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%) !important;
    border-color: #3b82f6 !important;
}

.facility-card[data-facility-type*="tennis"] {
    background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%) !important;
    border-color: #22c55e !important;
}

.facility-card[data-facility-type*="club"] {
    background: linear-gradient(135deg, #f3e8ff 0%, #e9d5ff 100%) !important;
    border-color: #8b5cf6 !important;
}

.facility-card[data-facility-type*="garden"] {
    background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%) !important;
    border-color: #10b981 !important;
}

/* Fallback colors for unmatched types */
.facility-card:nth-child(odd):not([data-facility-type]) {
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%) !important;
    border-color: #0ea5e9 !important;
}

.facility-card:nth-child(even):not([data-facility-type]) {
    background: linear-gradient(135deg, #fdf2f8 0%, #fce7f3 100%) !important;
    border-color: #ec4899 !important;
}

.facility-card:hover {
    transform: translateY(-6px) scale(1.02) !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15) !important;
    border-color: #4299e1 !important;
    z-index: 10 !important;
}

.facility-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    margin-bottom: 6px !important; /* CRITICAL FIX: Reduced from 8px */
}

.facility-name {
    margin: 0 !important;
    color: #1e293b !important;
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    flex-grow: 1 !important;
    text-shadow: 0 1px 2px rgba(255, 255, 255, 0.8) !important;
}

.facility-type {
    background: rgba(255, 255, 255, 0.9) !important;
    color: #374151 !important;
    padding: 3px 6px !important; /* CRITICAL FIX: Reduced from 4px 8px */
    border-radius: 8px !important;
    font-size: 0.65rem !important; /* CRITICAL FIX: Reduced from 0.7rem */
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    border: 1px solid rgba(0, 0, 0, 0.1) !important;
    flex-shrink: 0 !important;
    backdrop-filter: blur(10px) !important;
}

.facility-info {
    color: #64748b !important;
    font-size: 0.9rem !important;
    line-height: 1.4 !important;
    margin-bottom: 8px !important;
}

.facility-location,
.facility-hours,
.facility-pricing {
    margin-bottom: 2px !important; /* CRITICAL FIX: Reduced from 3px */
    font-weight: 500 !important;
}

.facility-pricing {
    color: #059669 !important;
    font-weight: 600 !important;
}

.facility-description {
    color: #475569 !important;
    font-size: 0.85rem !important;
    line-height: 1.4 !important;
    margin: 6px 0 !important;
    flex-grow: 1 !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
}

.facility-actions {
    display: none !important;
}

.view-calendar-btn {
    display: none !important;
}

/* Grid positioning for 3x3 layout */
.facility-card:nth-child(1) { grid-column: 1; grid-row: 1; }
.facility-card:nth-child(2) { grid-column: 2; grid-row: 1; }
.facility-card:nth-child(3) { grid-column: 3; grid-row: 1; }
.facility-card:nth-child(4) { grid-column: 1; grid-row: 2; }
.facility-card:nth-child(5) { grid-column: 2; grid-row: 2; }
.facility-card:nth-child(6) { grid-column: 3; grid-row: 2; }
.facility-card:nth-child(7) { grid-column: 1; grid-row: 3; }
.facility-card:nth-child(8) { grid-column: 2; grid-row: 3; }
.facility-card:nth-child(9) { grid-column: 3; grid-row: 3; }

/* ================================================================
   CALENDAR SECTION
   ================================================================ */

.calendar-header {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    margin-bottom: 20px !important;
    flex-wrap: wrap !important;
}

.btn-back {
    background: #f7fafc !important;
    color: #4a5568 !important;
    border: 2px solid #e2e8f0 !important;
    padding: 8px 16px !important;
    border-radius: 8px !important;
    text-decoration: none !important;
    font-size: 0.9rem !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}

.btn-back:hover {
    background: #edf2f7 !important;
    border-color: #cbd5e0 !important;
}

.calendar-controls {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    margin-bottom: 20px !important;
}

.date-picker {
    padding: 8px 12px !important;
    border: 2px solid #e2e8f0 !important;
    border-radius: 8px !important;
    font-size: 0.9rem !important;
    background: #ffffff !important;
    color: #2d3748 !important;
}

.btn-secondary {
    background: #f7fafc !important;
    color: #4a5568 !important;
    border: 2px solid #e2e8f0 !important;
    padding: 8px 16px !important;
    border-radius: 8px !important;
    font-size: 0.9rem !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}

.btn-secondary:hover {
    background: #edf2f7 !important;
    border-color: #cbd5e0 !important;
}

.calendar-header-row {
    margin-bottom: 20px !important;
}

.calendar-header-row h4 {
    color: #2d3748 !important;
    margin: 0 !important;
    font-size: 1.1rem !important;
    font-weight: 600 !important;
}

.time-slots-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    border: 2px solid #e2e8f0 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
}

.time-slot {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 16px 20px !important;
    min-height: 64px !important;
    border-bottom: 1px solid #f7fafc !important;
    transition: all 0.2s ease !important;
    cursor: pointer !important;
}

.time-slot:last-child {
    border-bottom: none !important;
}

.time-slot.available {
    background: #f0fff4 !important;
    color: #22543d !important;
}

.time-slot.available:hover {
    background: #c6f6d5 !important;
}

.time-slot.occupied {
    background: #fed7d7 !important;
    color: #742a2a !important;
    cursor: not-allowed !important;
}

/* User booking slots (yellow) - PHASE 2 */
.time-slot.user-booking {
    background: #fef3c7 !important;
    color: #92400e !important;
    border: 2px solid #f59e0b !important;
    cursor: pointer;
}

.time-slot.user-booking:hover {
    background: #fde68a !important;
    border-color: #d97706;
}

.time-slot.user-booking .slot-status {
    font-weight: 600;
    color: #92400e;
}

.time-slot.user-booking .slot-cancel-btn {
    background: #f59e0b;
    color: white;
    border: none;
    border-radius: 4px;
    padding: 2px 6px;
    font-size: 0.7rem;
    cursor: pointer;
    position: absolute;
    top: 4px;
    right: 4px;
}

.slot-time {
    font-weight: 600 !important;
    font-size: 1rem !important;
}

.slot-status {
    font-size: 0.9rem !important;
    opacity: 0.8 !important;
}

.slot-book-btn {
    background: #48bb78 !important;
    color: white !important;
    border: none !important;
    padding: 8px 16px !important;
    border-radius: 6px !important;
    font-size: 0.8rem !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}

.slot-book-btn:hover {
    background: #38a169 !important;
    box-shadow: 0 2px 8px rgba(72, 187, 120, 0.3) !important;
}

/* ================================================================
   BOOKING FORM
   ================================================================ */

.form-header {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    margin-bottom: 24px !important;
}

.booking-summary {
    background: #f7fafc !important;
    border: 2px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 20px !important;
    margin-bottom: 24px !important;
    opacity: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    transition: all 0.3s ease !important;
}

.booking-summary.show {
    opacity: 1 !important;
    max-height: 500px !important;
}

.booking-summary h4 {
    margin: 0 0 16px 0 !important;
    color: #2d3748 !important;
    font-size: 1.1rem !important;
    font-weight: 600 !important;
}

.summary-item {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 8px !important;
    padding: 4px 0 !important;
}

.summary-item:last-child {
    margin-bottom: 0 !important;
}

.summary-item strong {
    font-weight: 500 !important;
    color: #4a5568 !important;
}

.form-group {
    margin-bottom: 20px !important;
}

.form-group label {
    display: block !important;
    margin-bottom: 8px !important;
    font-weight: 500 !important;
    color: #2d3748 !important;
    font-size: 0.9rem !important;
}

.form-control {
    width: 100% !important;
    padding: 12px 16px !important;
    border: 2px solid #e2e8f0 !important;
    border-radius: 8px !important;
    font-size: 1rem !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    box-sizing: border-box !important;
    background: #ffffff !important;
    color: #2d3748 !important;
}

.form-control:focus {
    outline: none !important;
    border-color: #4299e1 !important;
    box-shadow: 0 0 0 3px rgba(66, 153, 225, 0.1) !important;
}

textarea.form-control {
    resize: vertical !important;
    min-height: 80px !important;
    font-family: inherit !important;
}

.facility-booking .form-actions {
    display: flex !important;
    gap: 12px !important;
    justify-content: flex-end !important;
    align-items: center !important;
    margin-top: 32px !important;
    padding-top: 24px !important;
    border-top: 2px solid rgb(226, 232, 240) !important;
    opacity: 0 !important;
    max-height: 0px !important;
    overflow: hidden !important;
    transition: 0.3s !important;
}

.facility-booking .form-actions.show {
    opacity: 1 !important;
    max-height: 100px !important;
}

.btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px 24px !important;
    border: none !important;
    border-radius: 8px !important;
    font-size: 0.9rem !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    min-height: 44px !important;
    min-width: 120px !important;
}

.btn-primary {
    background: linear-gradient(135deg, #4299e1 0%, #3182ce 100%) !important;
    color: white !important;
}

.btn-primary:hover:not(:disabled) {
    background: linear-gradient(135deg, #3182ce 0%, #2c5282 100%) !important;
    box-shadow: 0 4px 12px rgba(66, 153, 225, 0.4) !important;
}

.btn:disabled {
    opacity: 0.6 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

/* ================================================================
   PHASE 2: ENHANCED TIME SLOT STYLES
   ================================================================ */

/* User booking slots (yellow) - Phase 2 Feature */
.time-slot.user-booking {
    background: #fef3c7 !important;
    color: #92400e !important;
    border: 2px solid #f59e0b !important;
    cursor: pointer !important;
}

.time-slot.user-booking:hover {
    background: #fde68a !important;
    border-color: #d97706 !important;
    box-shadow: 0 2px 8px rgba(217, 119, 6, 0.3) !important;
}

/* Past time slots (disabled) - Phase 2 Feature */
.time-slot.past {
    background: #f1f5f9 !important;
    color: #64748b !important;
    cursor: not-allowed !important;
    opacity: 0.6 !important;
    border-color: #cbd5e1 !important;
}

/* Lot number bubbles - Phase 2 Feature */
.lot-bubble {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.8);
    color: white;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: bold;
    z-index: 5;
    pointer-events: none;
    text-align: center;
    min-width: 60px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
/* Lot bubble variants matching timeline colors */
.lot-bubble.user-lot {
    background: rgba(146, 64, 14, 0.9) !important;
    color: #fef3c7 !important;
    border: 1px solid #f59e0b !important;
}

.lot-bubble.occupied-lot {
    background: rgba(116, 42, 42, 0.9) !important;
    color: #fed7d7 !important;
    border: 1px solid #ef4444 !important;
}
/* Cancel buttons - Phase 2 Feature */
.slot-cancel-btn {
    position: absolute;
    top: 4px;
    right: 4px;
    background: #ef4444;
    color: white;
    border: none;
    border-radius: 4px;
    padding: 4px 8px;
    font-size: 0.7rem;
    font-weight: 500;
    cursor: pointer;
    z-index: 6;
    transition: all 0.2s ease;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.slot-cancel-btn:hover {
    background: #dc2626;
    box-shadow: 0 2px 4px rgba(239, 68, 68, 0.4);
}

.slot-cancel-btn.manager {
    background: #f59e0b;
    color: #000;
}

/* Back to Facilities button - Phase 2 Feature */
#backToFacilities {
    background: #6b7280 !important;
    color: white !important;
    border: 2px solid #6b7280 !important;
}

#backToFacilities:hover {
    background: #4b5563 !important;
    border-color: #4b5563 !important;
}

/* Enhanced positioning for overlays */
.time-slot {
    position: relative !important;
    overflow: visible !important;
}

.slot-content {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 4;
}

/* ================================================================
   RESPONSIVE DESIGN - MOBILE OPTIMIZATION WITH CRITICAL FIXES
   ================================================================ */

@media (max-width: 768px) {
    .facility-booking-overlay {
        padding: 8px !important;
    }
    
    .facility-booking-container {
        max-height: 95vh !important;
        margin: 0 !important;
        border-radius: 12px !important;
    }
    
    .modal-header {
        padding: 14px 18px !important;
        min-height: 55px !important;
    }
    
    .modal-header h2 {
        font-size: 1.3rem !important;
    }
    
    .user-context {
        font-size: 0.85rem !important;
    }
    
    .modal-content {
        padding: 4px !important; /* CRITICAL FIX: Further reduced for mobile */
    }
    
    .calendar-section,
    .booking-form-section {
        padding: 16px !important;
    }
    
    /* CRITICAL FIX: Mobile facility grid with aggressive spacing */
    .facility-cards-seamless {
        grid-template-columns: 1fr !important;
        grid-template-rows: repeat(9, 1fr) !important;
        min-height: auto !important;
        gap: 6px !important; /* CRITICAL FIX: Further reduced from 8px */
        padding: 4px !important; /* CRITICAL FIX: Further reduced from 8px */
    }
    
    .facility-card {
        min-height: 130px !important; /* CRITICAL FIX: Reduced from 140px */
        max-height: 130px !important; /* CRITICAL FIX: Reduced from 140px */
        padding: 12px !important; /* CRITICAL FIX: Reduced from 14px */
    }
    
    .facility-card:nth-child(n) {
        grid-column: 1 !important;
    }
    
    .facility-card:nth-child(1) { grid-row: 1; }
    .facility-card:nth-child(2) { grid-row: 2; }
    .facility-card:nth-child(3) { grid-row: 3; }
    .facility-card:nth-child(4) { grid-row: 4; }
    .facility-card:nth-child(5) { grid-row: 5; }
    .facility-card:nth-child(6) { grid-row: 6; }
    .facility-card:nth-child(7) { grid-row: 7; }
    .facility-card:nth-child(8) { grid-row: 8; }
    .facility-card:nth-child(9) { grid-row: 9; }
    
    .time-slot {
        padding: 12px 8px !important;
        min-height: 56px !important;
    }
    
    .slot-time {
        font-size: 0.85rem !important;
    }
    
    .slot-status {
        font-size: 0.75rem !important;
    }
    
    .btn {
        padding: 10px 16px !important;
        font-size: 0.85rem !important;
        min-height: 40px !important;
    }
    
    .calendar-header {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 12px !important;
    }
    
    .calendar-controls {
        width: 100% !important;
        justify-content: flex-start !important;
    }
    
    .form-actions {
        flex-direction: column-reverse !important;
        gap: 8px !important;
    }
    
    .form-actions .btn {
        width: 100% !important;
        min-width: auto !important;
    }
}

@media (max-width: 480px) {
    .facility-booking-overlay {
        padding: 4px !important;
        align-items: flex-start !important;
    }
    
    .facility-booking-container {
        margin-top: 8px !important;
        max-height: calc(100vh - 16px) !important;
        border-radius: 8px !important;
    }
    
    .modal-header {
        padding: 10px 14px !important;
        min-height: 48px !important;
    }
    
    .modal-header h2 {
        font-size: 1.2rem !important;
    }
    
    .user-context {
        font-size: 0.8rem !important;
    }
    
    .close-button {
        width: 32px !important;
        height: 32px !important;
        font-size: 16px !important;
    }
    
    .modal-content {
        padding: 2px !important; /* CRITICAL FIX: Minimal padding for very small screens */
    }
    
    /* CRITICAL FIX: Very small screen card optimization */
    .facility-cards-seamless {
        gap: 4px !important; /* CRITICAL FIX: Minimal gap */
        padding: 2px !important; /* CRITICAL FIX: Minimal padding */
    }
    
    .facility-card {
        min-height: 110px !important; /* CRITICAL FIX: Further reduced from 120px */
        max-height: 110px !important; /* CRITICAL FIX: Further reduced from 120px */
        padding: 8px !important; /* CRITICAL FIX: Minimal padding */
    }
    
    .facility-name {
        font-size: 0.95rem !important; /* CRITICAL FIX: Reduced from 1rem */
    }
    
    .facility-type {
        font-size: 0.6rem !important; /* CRITICAL FIX: Reduced from 0.65rem */
        padding: 2px 4px !important; /* CRITICAL FIX: Minimal padding */
    }
    
    .facility-info {
        font-size: 0.7rem !important; /* CRITICAL FIX: Reduced from 0.75rem */
        margin-bottom: 4px !important; /* CRITICAL FIX: Reduced margin */
    }
    
    .facility-description {
        font-size: 0.65rem !important; /* CRITICAL FIX: Reduced from 0.7rem */
        -webkit-line-clamp: 1 !important;
        margin: 2px 0 !important; /* CRITICAL FIX: Minimal margin */
    }
    
    .view-calendar-btn {
        padding: 6px 8px !important; /* CRITICAL FIX: Minimal padding */
        font-size: 0.75rem !important; /* CRITICAL FIX: Reduced from 0.8rem */
    }
    
    .facility-actions {
        padding-top: 4px !important; /* CRITICAL FIX: Minimal padding */
    }
    
    .time-slot {
        padding: 10px 6px !important;
        min-height: 50px !important;
    }
    
    .slot-time {
        font-size: 0.8rem !important;
    }
    
    .slot-status {
        font-size: 0.7rem !important;
    }
}

/* ================================================================
   ACCESSIBILITY & PERFORMANCE
   ================================================================ */

.facility-card:focus,
.time-slot:focus,
.btn:focus,
.form-control:focus {
    outline: 3px solid #4299e1 !important;
    outline-offset: 2px !important;
}

.close-button:focus {
    outline: 3px solid #ffffff !important;
    outline-offset: 2px !important;
}

/* Hardware acceleration for smooth animations */
.facility-booking-container,
.facility-card,
.time-slot {
    transform: translateZ(0) !important;
    will-change: transform !important;
}

/* Optimize for mobile scrolling */
.modal-content {
    -webkit-overflow-scrolling: touch !important;
}

/* Optimize font rendering */
.facility-booking-modal {
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    text-rendering: optimizeLegibility !important;
}

/* ================================================================
   PRINT STYLES
   ================================================================ */

@media print {
    .facility-booking-modal {
        position: static !important;
        background: none !important;
        box-shadow: none !important;
    }
    
    .facility-booking-overlay {
        background: none !important;
        box-shadow: none !important;
        position: static !important;
        padding: 0 !important;
    }
    
    .facility-booking-container {
        box-shadow: none !important;
        border: 2px solid #000000 !important;
        max-height: none !important;
        page-break-inside: avoid !important;
    }
    
    .modal-header {
        background: #f0f0f0 !important;
        color: #000000 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    
    .close-button {
        display: none !important;
    }
    
    .loading-section {
        display: none !important;
    }
    
    .facility-card {
        page-break-inside: avoid !important;
        border: 1px solid #000000 !important;
    }
    
    .time-slots-grid {
        page-break-inside: avoid !important;
    }
    
    .btn {
        border: 1px solid #000000 !important;
        background: #ffffff !important;
        color: #000000 !important;
    }
}
    