/* responsive.css - Mobile First Responsive Design */

/* Extra small devices (phones, 600px and down) */
@media only screen and (max-width: 600px) {
    /* Header */
    .header-content {
        flex-wrap: wrap;
    }
    
    .nav-menu {
        display: none;
    }
    
    .mobile-menu-btn {
        display: block;
    }
    
    .nav-actions {
        width: 100%;
        margin-top: 15px;
        justify-content: space-between;
    }
    
    /* Hero Section */
    .hero-title {
        font-size: 2.5rem;
    }
    
    .hero-search {
        flex-direction: column;
        border-radius: 20px;
    }
    
    .hero-search button {
        width: 100%;
    }
    
    .stats-row {
        flex-wrap: wrap;
    }
    
    .stat-block {
        width: 50%;
        margin-bottom: 15px;
    }
    
    /* Grid Systems */
    .grid-2, .grid-3, .grid-4 {
        grid-template-columns: 1fr;
    }
    
    .steps-grid {
        grid-template-columns: 1fr;
    }
    
    .categories-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .listings-grid {
        grid-template-columns: 1fr;
    }
    
    .badges-grid {
        grid-template-columns: 1fr;
    }
    
    .testimonials-grid {
        grid-template-columns: 1fr;
    }
    
    /* Dashboard */
    .dashboard-container {
        flex-direction: column;
    }
    
    .dashboard-sidebar {
        width: 100%;
        position: relative;
        height: auto;
    }
    
    .dashboard-main {
        margin-left: 0;
        padding: 20px;
    }
    
    .stats-grid {
        grid-template-columns: 1fr;
    }
    
    .wallet-section {
        grid-template-columns: 1fr;
    }
    
    /* Forms */
    .auth-card {
        padding: 30px 20px;
    }
    
    .role-selector {
        grid-template-columns: 1fr;
    }
    
    /* Tables */
    .table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
    
    /* Cards */
    .rental-card {
        flex-direction: column;
    }
    
    .rental-image {
        width: 100%;
        height: 200px;
    }
    
    /* Search */
    .search-container {
        grid-template-columns: 1fr;
    }
    
    .filters-sidebar {
        position: relative;
        top: 0;
        margin-bottom: 20px;
    }
    
    /* Footer */
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .footer-bottom {
        flex-direction: column;
        gap: 15px;
        text-align: center;
    }
    
    /* Modals */
    .modal-content {
        width: 90%;
        margin: 20px;
        padding: 20px;
    }
    
    /* Buttons */
    .btn {
        width: 100%;
        margin-bottom: 10px;
    }
    
    .action-buttons {
        flex-direction: column;
    }
}

/* Small devices (portrait tablets and large phones, 600px to 768px) */
@media only screen and (min-width: 601px) and (max-width: 768px) {
    .grid-2, .grid-3 {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .steps-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .categories-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .listings-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .badges-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .testimonials-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .dashboard-sidebar {
        width: 240px;
    }
    
    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Medium devices (landscape tablets, 768px to 992px) */
@media only screen and (min-width: 769px) and (max-width: 992px) {
    .grid-4 {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .listings-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .categories-grid {
        grid-template-columns: repeat(4, 1fr);
    }
    
    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Large devices (laptops/desktops, 992px to 1200px) */
@media only screen and (min-width: 993px) and (max-width: 1200px) {
    .container {
        max-width: 960px;
    }
}

/* Extra large devices (large laptops and desktops, 1200px and up) */
@media only screen and (min-width: 1201px) {
    .container {
        max-width: 1140px;
    }
}

/* Print styles */
@media print {
    .header,
    .footer,
    .btn,
    .no-print {
        display: none !important;
    }
    
    body {
        background: white;
        font-size: 12pt;
    }
    
    .agreement-card {
        box-shadow: none;
        border: 1px solid #ddd;
    }
}

/* Dark mode support */
@media (prefers-color-scheme: dark) {
    [data-theme="dark"] {
        --bg-primary: #1A2A2F;
        --text-primary: #E8EDE9;
        --card-bg: #2C3E42;
    }
}

/* High contrast mode */
@media (prefers-contrast: high) {
    .btn,
    .card,
    .badge {
        border: 2px solid currentColor;
    }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Landscape orientation */
@media (orientation: landscape) and (max-height: 500px) {
    .hero-section {
        padding: 40px 0;
    }
    
    .modal-content {
        max-height: 90vh;
        overflow-y: auto;
    }
}

/* Touch devices */
@media (hover: none) and (pointer: coarse) {
    .btn:hover {
        transform: none;
    }
    
    .listing-card:hover {
        transform: none;
    }
    
    .nav-link::after {
        display: none;
    }
}

/* Loading states */
@media (prefers-reduced-data) {
    .hero-image img {
        display: none;
    }
}

/* Fix for iOS input zoom */
@media screen and (-webkit-min-device-pixel-ratio: 0) {
    select,
    textarea,
    input {
        font-size: 16px !important;
    }
}

/* Fix for notch displays */
@supports (padding: max(0px)) {
    .header {
        padding-left: max(20px, env(safe-area-inset-left));
        padding-right: max(20px, env(safe-area-inset-right));
    }
    
    .footer {
        padding-bottom: max(20px, env(safe-area-inset-bottom));
    }
}

/* Print styles for agreements */
@media print {
    .agreement-container {
        margin: 0;
        padding: 20px;
    }
    
    .agreement-card {
        box-shadow: none;
        border: 1px solid #000;
    }
    
    .page-break {
        page-break-before: always;
    }
}