/* Responsive Enhancements for All Devices */
/* This file ensures better device compatibility across all pages */

/* H5 Mobile Anti-Zoom Override */
html {
    -webkit-text-size-adjust: 100% !important;
    -ms-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
    -webkit-touch-callout: none !important;
    -webkit-user-select: none !important;
    user-select: none !important;
    touch-action: pan-y pinch-zoom !important;
}

/* Base responsive utilities */
.container {
    width: 100%;
    position: relative;
    overflow-x: hidden !important;
}

/* Text scaling for different devices - removed font-size changes to prevent zoom */
@media (max-width: 320px) {
    /* Very small phones */
    
    .header h1 {
        font-size: 18px !important;
    }
    
    .header p {
        font-size: 11px !important;
    }
}

@media (min-width: 321px) and (max-width: 375px) {
    /* Small phones */
    
    .header h1 {
        font-size: 20px !important;
    }
    
    .header p {
        font-size: 12px !important;
    }
}

@media (min-width: 376px) and (max-width: 414px) {
    /* Medium phones */
    
    .header h1 {
        font-size: 22px !important;
    }
    
    .header p {
        font-size: 13px !important;
    }
}

@media (min-width: 415px) and (max-width: 768px) {
    /* Large phones and small tablets */
    .container {
        max-width: 500px;
        margin: 0 auto;
    }
    
    .header h1 {
        font-size: 24px !important;
    }
    
    .header p {
        font-size: 14px !important;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    /* Tablets */
    .container {
        max-width: 600px;
        margin: 0 auto;
        box-shadow: 0 0 20px rgba(0,0,0,0.1);
        border-radius: 15px;
        overflow: hidden;
        margin-top: 20px;
        margin-bottom: 20px;
    }
    
    body {
        padding: 20px 10px;
    }
}

@media (min-width: 1025px) {
    /* Desktop */
    .container {
        max-width: 500px;
        margin: 0 auto;
        box-shadow: 0 0 30px rgba(0,0,0,0.1);
        border-radius: 20px;
        overflow: hidden;
        margin-top: 30px;
        margin-bottom: 30px;
    }
    
    body {
        padding: 30px 20px;
        background-attachment: fixed;
    }
}

/* Form elements responsive scaling */
@media (max-width: 480px) {
    .form-group input,
    .form-group select,
    .form-group textarea {
        font-size: 16px !important; /* Prevent zoom on iOS */
        padding: 12px !important;
    }
    
    .btn {
        font-size: 14px !important;
        padding: 12px 20px !important;
    }
}

@media (min-width: 481px) and (max-width: 768px) {
    .form-group input,
    .form-group select,
    .form-group textarea {
        font-size: 16px !important;
        padding: 15px !important;
    }
    
    .btn {
        font-size: 16px !important;
        padding: 15px 25px !important;
    }
}

@media (min-width: 769px) {
    .form-group input,
    .form-group select,
    .form-group textarea {
        font-size: 16px !important;
        padding: 18px !important;
    }
    
    .btn {
        font-size: 16px !important;
        padding: 18px 30px !important;
    }
    
    .btn:hover {
        transform: translateY(-2px);
        transition: all 0.3s ease;
    }
}

/* Improved touch targets for mobile */
@media (max-width: 768px) {
    .back-btn,
    .confirm-btn,
    .reject-btn,
    .sms-btn,
    .copy-btn {
        min-height: 44px !important;
        min-width: 44px !important;
        padding: 12px !important;
    }
    
    /* Ensure clickable areas are large enough */
    a, button, input[type="submit"], input[type="button"] {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
}

/* Loading states responsive */
.loading {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.9);
}

.spinner {
    width: 40px;
    height: 40px;
}

@media (max-width: 480px) {
    .spinner {
        width: 30px;
        height: 30px;
    }
}

@media (min-width: 769px) {
    .spinner {
        width: 50px;
        height: 50px;
    }
}

/* Ensure images are responsive */
img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Table responsive for admin pages */
@media (max-width: 768px) {
    .admin-table {
        font-size: 12px !important;
    }
    
    .admin-table th,
    .admin-table td {
        padding: 8px 4px !important;
    }
    
    .status-badge {
        font-size: 10px !important;
        padding: 4px 8px !important;
    }
}

/* Improve scrolling on mobile */
@media (max-width: 768px) {
    body {
        -webkit-overflow-scrolling: touch;
    }
    
    .container {
        min-height: 100vh;
        min-height: -webkit-fill-available;
    }
}

/* Fix viewport height issues on mobile browsers */
@supports (-webkit-touch-callout: none) {
    /* CSS specific to iOS */
    .container {
        min-height: -webkit-fill-available;
    }
}

/* Partners Section Responsive Styles */
.partners-section {
    margin: 20px 0 !important;
    padding: 20px !important;
}

@media (max-width: 480px) {
    .partners-section {
        margin: 15px 0 !important;
        padding: 15px !important;
    }
    
    .partners-section h3 {
        font-size: 16px !important;
        margin-bottom: 12px !important;
    }
    
    .partners-section h4 {
        font-size: 13px !important;
        margin-bottom: 10px !important;
    }
    
    .mobile-partners > div,
    .banking-partners > div {
        gap: 10px !important;
    }
    
    .partner-card {
        min-width: 100px !important;
        padding: 10px !important;
    }
    
    .partner-card > div:first-child {
        width: 35px !important;
        height: 35px !important;
        font-size: 16px !important;
    }
    
    .partner-card > div:nth-child(2) {
        font-size: 11px !important;
    }
    
    .partner-card > div:nth-child(3) {
        font-size: 9px !important;
    }
    
    .licensing-info {
        padding: 12px !important;
    }
    
    .licensing-info h4 {
        font-size: 13px !important;
        margin-bottom: 8px !important;
    }
    
    .licensing-info > div:nth-child(2) {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        font-size: 10px !important;
    }
    
    .trust-indicators > div {
        gap: 15px !important;
        font-size: 10px !important;
    }
}

@media (min-width: 481px) and (max-width: 768px) {
    .partners-section {
        margin: 18px 0 !important;
        padding: 18px !important;
    }
    
    .partners-section h3 {
        font-size: 17px !important;
    }
    
    .partners-section h4 {
        font-size: 13px !important;
    }
    
    .mobile-partners > div,
    .banking-partners > div {
        gap: 12px !important;
    }
    
    .partner-card {
        min-width: 110px !important;
        padding: 11px !important;
    }
    
    .licensing-info {
        padding: 13px !important;
    }
    
    .trust-indicators > div {
        gap: 18px !important;
    }
} 