/* Global Mobile Responsive Styles for Toko Beras Kartini */

/* Base Mobile Styles */
@media (max-width: 768px) {
    /* Global Container Adjustments */
    .container {
        padding: 0 15px !important;
        max-width: 100% !important;
    }
    
    /* Typography Adjustments */
    h1 {
        font-size: 24px !important;
    }
    
    h2 {
        font-size: 20px !important;
    }
    
    h3 {
        font-size: 18px !important;
    }
    
    h4 {
        font-size: 16px !important;
    }
    
    /* Header Mobile Styles */
    .header {
        padding: 10px 0 !important;
    }
    
    .navbar {
        flex-direction: column !important;
        gap: 10px !important;
    }
    
    .navbar-brand {
        font-size: 20px !important;
    }
    
    .navbar-nav {
        flex-direction: column !important;
        width: 100% !important;
        text-align: center !important;
    }
    
    .navbar-nav .nav-link {
        padding: 10px !important;
        border-bottom: 1px solid #eee !important;
    }
    
    .navbar-toggler {
        display: block !important;
        border: none !important;
        background: transparent !important;
        font-size: 24px !important;
        color: var(--coklat) !important;
    }
    
    /* Hero Section Mobile */
    .hero {
        padding: 40px 0 !important;
        text-align: center !important;
    }
    
    .hero h1 {
        font-size: 28px !important;
        margin-bottom: 15px !important;
    }
    
    .hero p {
        font-size: 16px !important;
        margin-bottom: 20px !important;
    }
    
    .hero .btn {
        padding: 12px 24px !important;
        font-size: 16px !important;
    }
    
    /* Product Grid Mobile */
    .products-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 15px !important;
    }
    
    .product-card {
        padding: 15px !important;
    }
    
    .product-card img {
        height: 150px !important;
        object-fit: cover !important;
    }
    
    .product-card h3 {
        font-size: 14px !important;
        margin: 10px 0 5px 0 !important;
    }
    
    .product-card .price {
        font-size: 16px !important;
        margin-bottom: 10px !important;
    }
    
    .product-card .btn {
        padding: 8px 16px !important;
        font-size: 12px !important;
        width: 100% !important;
    }
    
    /* Cart Mobile Styles */
    .cart-page {
        padding: 20px 0 !important;
    }
    
    .cart-table {
        display: block !important;
        overflow-x: auto !important;
        white-space: nowrap !important;
    }
    
    .cart-item {
        display: flex !important;
        flex-direction: column !important;
        border: 1px solid #eee !important;
        border-radius: 8px !important;
        padding: 15px !important;
        margin-bottom: 15px !important;
    }
    
    .cart-item-image {
        width: 80px !important;
        height: 80px !important;
        margin-bottom: 10px !important;
    }
    
    .cart-item-details {
        flex: 1 !important;
        margin-bottom: 10px !important;
    }
    
    .cart-item-quantity {
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
        margin-bottom: 10px !important;
    }
    
    .cart-item-quantity input {
        width: 60px !important;
        text-align: center !important;
    }
    
    .cart-summary {
        position: static !important;
        margin-top: 20px !important;
        width: 100% !important;
    }
    
    /* Checkout Mobile Styles */
    .checkout-container {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
    
    .checkout-form {
        order: 1 !important;
    }
    
    .order-summary {
        order: 2 !important;
        position: static !important;
    }
    
    .form-row {
        grid-template-columns: 1fr !important;
        gap: 15px !important;
    }
    
    .form-group input,
    .form-group select,
    .form-group textarea {
        font-size: 16px !important; /* Prevents zoom on iOS */
        padding: 12px !important;
    }
    
    /* Payment Mobile Styles */
    .payment-methods {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    
    .payment-method {
        padding: 15px !important;
        text-align: center !important;
    }
    
    .payment-method input[type="radio"] {
        margin-bottom: 10px !important;
    }
    
    /* Button Mobile Styles */
    .btn {
        padding: 12px 20px !important;
        font-size: 14px !important;
        border-radius: 6px !important;
    }
    
    .btn-primary {
        width: 100% !important;
        margin-bottom: 10px !important;
    }
    
    .btn-group {
        flex-direction: column !important;
        gap: 10px !important;
    }
    
    /* Modal Mobile Styles */
    .modal {
        padding: 20px !important;
    }
    
    .modal-content {
        margin: 0 !important;
        max-height: 90vh !important;
        overflow-y: auto !important;
    }
    
    .modal-header {
        padding: 15px !important;
    }
    
    .modal-body {
        padding: 15px !important;
    }
    
    .modal-footer {
        padding: 15px !important;
        flex-direction: column !important;
        gap: 10px !important;
    }
    
    /* Footer Mobile Styles */
    .footer {
        padding: 30px 0 !important;
    }
    
    .footer-content {
        grid-template-columns: 1fr !important;
        gap: 30px !important;
        text-align: center !important;
    }
    
    .footer-section h3 {
        font-size: 18px !important;
        margin-bottom: 15px !important;
    }
    
    .footer-section p,
    .footer-section a {
        font-size: 14px !important;
    }
    
    /* Navigation Mobile Styles */
    .nav-tabs {
        flex-direction: column !important;
    }
    
    .nav-tab {
        width: 100% !important;
        text-align: center !important;
        margin-bottom: 5px !important;
    }
    
    /* Table Mobile Styles */
    .table-responsive {
        overflow-x: auto !important;
    }
    
    .table {
        min-width: 600px !important;
    }
    
    .table th,
    .table td {
        padding: 8px !important;
        font-size: 12px !important;
    }
    
    /* Form Mobile Styles */
    .form-inline {
        flex-direction: column !important;
        gap: 10px !important;
    }
    
    .form-inline .form-group {
        width: 100% !important;
    }
    
    .input-group {
        flex-direction: column !important;
        gap: 5px !important;
    }
    
    .input-group-append,
    .input-group-prepend {
        width: 100% !important;
    }
    
    /* Alert Mobile Styles */
    .alert {
        padding: 12px !important;
        font-size: 14px !important;
        margin-bottom: 15px !important;
    }
    
    /* Card Mobile Styles */
    .card {
        margin-bottom: 20px !important;
    }
    
    .card-header {
        padding: 15px !important;
    }
    
    .card-body {
        padding: 15px !important;
    }
    
    .card-footer {
        padding: 15px !important;
    }
    
    /* Breadcrumb Mobile Styles */
    .breadcrumb {
        padding: 10px 0 !important;
        font-size: 12px !important;
        flex-wrap: wrap !important;
    }
    
    .breadcrumb-item {
        margin-bottom: 5px !important;
    }
    
    /* Pagination Mobile Styles */
    .pagination {
        justify-content: center !important;
        flex-wrap: wrap !important;
    }
    
    .page-link {
        padding: 8px 12px !important;
        font-size: 12px !important;
    }
    
    /* Search Mobile Styles */
    .search-form {
        flex-direction: column !important;
        gap: 10px !important;
    }
    
    .search-input {
        width: 100% !important;
        margin-bottom: 10px !important;
    }
    
    .search-btn {
        width: 100% !important;
    }
    
    /* Profile Mobile Styles */
    .profile-container {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
    
    .profile-sidebar {
        order: 2 !important;
    }
    
    .profile-content {
        order: 1 !important;
    }
    
    /* Order History Mobile Styles */
    .order-card {
        padding: 15px !important;
        margin-bottom: 15px !important;
    }
    
    .order-header {
        flex-direction: column !important;
        gap: 10px !important;
        text-align: center !important;
    }
    
    .order-items {
        margin-top: 15px !important;
    }
    
    .order-item {
        flex-direction: column !important;
        text-align: center !important;
        gap: 10px !important;
        padding: 10px !important;
    }
    
    /* Utility Classes */
    .d-mobile-none {
        display: none !important;
    }
    
    .d-mobile-block {
        display: block !important;
    }
    
    .d-mobile-flex {
        display: flex !important;
    }
    
    .text-mobile-center {
        text-align: center !important;
    }
    
    .w-mobile-100 {
        width: 100% !important;
    }
    
    .p-mobile-0 {
        padding: 0 !important;
    }
    
    .m-mobile-0 {
        margin: 0 !important;
    }
    
    .mb-mobile-10 {
        margin-bottom: 10px !important;
    }
    
    .mt-mobile-10 {
        margin-top: 10px !important;
    }
}

/* Extra Small Mobile Devices */
@media (max-width: 480px) {
    .container {
        padding: 0 10px !important;
    }
    
    .products-grid {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    
    .product-card {
        padding: 10px !important;
    }
    
    .product-card img {
        height: 200px !important;
    }
    
    .btn {
        padding: 10px 16px !important;
        font-size: 12px !important;
    }
    
    .modal-content {
        margin: 10px !important;
    }
    
    .table th,
    .table td {
        padding: 6px !important;
        font-size: 11px !important;
    }
    
    h1 {
        font-size: 20px !important;
    }
    
    h2 {
        font-size: 18px !important;
    }
    
    h3 {
        font-size: 16px !important;
    }
    
    .hero h1 {
        font-size: 24px !important;
    }
    
    .hero p {
        font-size: 14px !important;
    }
}

/* Landscape Mobile Orientation */
@media (max-width: 768px) and (orientation: landscape) {
    .hero {
        padding: 20px 0 !important;
    }
    
    .hero h1 {
        font-size: 24px !important;
    }
    
    .modal-content {
        max-height: 80vh !important;
    }
    
    .navbar-nav {
        flex-direction: row !important;
        justify-content: center !important;
        flex-wrap: wrap !important;
    }
    
    .navbar-nav .nav-link {
        border-bottom: none !important;
        border-right: 1px solid #eee !important;
    }
    
    .navbar-nav .nav-link:last-child {
        border-right: none !important;
    }
}

/* Touch-friendly improvements */
@media (max-width: 768px) {
    /* Larger touch targets */
    .btn,
    .nav-link,
    .dropdown-item,
    .page-link {
        min-height: 44px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
    
    /* Better spacing for touch */
    .btn + .btn {
        margin-top: 10px !important;
    }
    
    /* Prevent zoom on input focus (iOS) */
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="number"],
    input[type="tel"],
    input[type="url"],
    input[type="search"],
    input[type="date"],
    select,
    textarea {
        font-size: 16px !important;
    }
    
    /* Better checkbox and radio button sizing */
    input[type="checkbox"],
    input[type="radio"] {
        width: 20px !important;
        height: 20px !important;
        margin-right: 10px !important;
    }
    
    /* Improved file upload areas */
    .file-upload-area {
        min-height: 120px !important;
        padding: 20px !important;
    }
    
    /* Better image sizing */
    img {
        max-width: 100% !important;
        height: auto !important;
    }
    
    /* Improved scrolling */
    .table-responsive {
        -webkit-overflow-scrolling: touch !important;
    }
    
    /* Better modal positioning */
    .modal {
        padding: 10px !important;
    }
    
    .modal-dialog {
        margin: 0 !important;
        max-width: 100% !important;
    }
}

/* Print styles for mobile */
@media print {
    .navbar,
    .footer,
    .btn,
    .modal,
    .alert {
        display: none !important;
    }
    
    .container {
        max-width: 100% !important;
        padding: 0 !important;
    }
    
    .page-break {
        page-break-before: always !important;
    }
}

/* High DPI displays */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .logo,
    .product-image {
        image-rendering: -webkit-optimize-contrast !important;
        image-rendering: crisp-edges !important;
    }
}

/* Dark mode support for mobile */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
    .card,
    .modal-content {
        background-color: #2d3748 !important;
        color: #e2e8f0 !important;
    }
    
    .form-control {
        background-color: #4a5568 !important;
        border-color: #718096 !important;
        color: #e2e8f0 !important;
    }
    
    .table {
        background-color: #2d3748 !important;
        color: #e2e8f0 !important;
    }
    
    .table th,
    .table td {
        border-color: #4a5568 !important;
    }
}

/* Accessibility improvements for mobile */
@media (max-width: 768px) {
    /* Focus indicators */
    .btn:focus,
    .form-control:focus,
    .nav-link:focus {
        outline: 2px solid #007bff !important;
        outline-offset: 2px !important;
    }
    
    /* Skip links */
    .skip-link {
        position: absolute !important;
        top: -40px !important;
        left: 6px !important;
        background: #000 !important;
        color: #fff !important;
        padding: 8px !important;
        text-decoration: none !important;
        z-index: 10000 !important;
    }
    
    .skip-link:focus {
        top: 6px !important;
    }
    
    /* Better contrast for links */
    a {
        text-decoration: underline !important;
    }
    
    a:hover,
    a:focus {
        text-decoration: none !important;
        background-color: rgba(0, 123, 255, 0.1) !important;
    }
}

/* Performance optimizations for mobile */
@media (max-width: 768px) {
    /* Reduce animations on mobile */
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    
    /* Optimize images */
    img {
        image-rendering: optimizeSpeed !important;
    }
    
    /* Reduce box shadows */
    .card,
    .modal-content,
    .btn {
        box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
    }
}

/* Specific mobile fixes for common issues */
@media (max-width: 768px) {
    /* Fix for iOS Safari bottom bar */
    .full-height {
        height: calc(100vh - env(safe-area-inset-bottom)) !important;
    }
    
    /* Fix for Android Chrome address bar */
    .min-full-height {
        min-height: calc(100vh - 56px) !important;
    }
    
    /* Fix for sticky elements */
    .sticky-top {
        position: -webkit-sticky !important;
        position: sticky !important;
        top: 0 !important;
        z-index: 1020 !important;
    }
    
    /* Fix for overflow issues */
    .overflow-hidden-mobile {
        overflow: hidden !important;
    }
    
    .overflow-auto-mobile {
        overflow: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }
}