/**
 * Responsif halaman pengguna — standar sama admin (<= 991.98px).
 * Desktop (>= 992px) tidak diubah.
 */

@media (max-width: 991.98px) {
    html,
    body {
        overflow-x: hidden !important;
        max-width: 100vw;
    }

    main:not(.auth-layout) {
        overflow-x: hidden;
        max-width: 100%;
    }

    /* Tipografi umum (konten pengguna, bukan login/register) */
    main:not(.auth-layout) h1 {
        font-size: clamp(1.15rem, 4.5vw, 1.75rem) !important;
    }

    main:not(.auth-layout) h2 {
        font-size: clamp(1rem, 3.8vw, 1.45rem) !important;
    }

    main:not(.auth-layout) h3 {
        font-size: clamp(0.9rem, 3.2vw, 1.2rem) !important;
    }

    main:not(.auth-layout) h4,
    main:not(.auth-layout) h5,
    main:not(.auth-layout) h6 {
        font-size: clamp(0.82rem, 2.8vw, 1rem) !important;
    }

    main:not(.auth-layout) p,
    main:not(.auth-layout) li,
    main:not(.auth-layout) label {
        font-size: clamp(0.75rem, 2.6vw, 0.9rem);
    }

    /* Tombol — proporsional, bentuk tetap */
    main:not(.auth-layout) button,
    main:not(.auth-layout) input[type="submit"],
    main:not(.auth-layout) input[type="button"],
    main:not(.auth-layout) .btn,
    main:not(.auth-layout) [class*="btn-"] {
        font-size: clamp(0.72rem, 2.5vw, 0.88rem) !important;
    }

    main:not(.auth-layout) .btn-akun {
        font-size: clamp(0.65rem, 2.2vw, 0.8rem) !important;
        padding: clamp(5px, 1.5vw, 8px) clamp(10px, 3vw, 18px) !important;
    }

    /* Card & kontainer kartu */
    main:not(.auth-layout) [class*="card"],
    main:not(.auth-layout) .payment-card-premium,
    main:not(.auth-layout) .produk-item,
    main:not(.auth-layout) .cart-item,
    main:not(.auth-layout) .order-card,
    main:not(.auth-layout) .riwayat-card,
    main:not(.auth-layout) .profile-card,
    main:not(.auth-layout) .pelatihan-card,
    main:not(.auth-layout) .kunjungan-card,
    main:not(.auth-layout) .checkout-card,
    main:not(.auth-layout) .summary-box,
    main:not(.auth-layout) .integrated-summary,
    main:not(.auth-layout) .amount-box {
        max-width: 100% !important;
        border-radius: clamp(12px, 3vw, 20px) !important;
    }

    main:not(.auth-layout) .payment-card-premium {
        padding: clamp(14px, 4vw, 24px) !important;
    }

    main:not(.auth-layout) .payment-wrapper {
        padding: clamp(88px, 22vw, 110px) clamp(10px, 3vw, 16px) clamp(20px, 5vw, 32px) !important;
        min-height: auto !important;
    }

    main:not(.auth-layout) .payment-header h1 {
        font-size: clamp(1rem, 4vw, 1.35rem) !important;
    }

    main:not(.auth-layout) .payment-guide {
        font-size: clamp(0.72rem, 2.5vw, 0.85rem) !important;
    }

    main:not(.auth-layout) .amount-value {
        font-size: clamp(1.1rem, 4.5vw, 1.5rem) !important;
    }

    main:not(.auth-layout) .btn-pay-now,
    main:not(.auth-layout) .btn-checkout,
    main:not(.auth-layout) .btn-submit,
    main:not(.auth-layout) .btn-primary-action {
        padding: clamp(10px, 3vw, 14px) clamp(12px, 3.5vw, 18px) !important;
        font-size: clamp(0.75rem, 2.6vw, 0.9rem) !important;
        border-radius: clamp(10px, 2.5vw, 14px) !important;
    }

    main:not(.auth-layout) .btn-download-qris {
        max-width: 100% !important;
        padding: clamp(8px, 2.5vw, 12px) !important;
        font-size: clamp(0.7rem, 2.4vw, 0.85rem) !important;
    }

    main:not(.auth-layout) .qr-frame {
        max-width: min(240px, 75vw) !important;
        padding: clamp(10px, 3vw, 16px) !important;
    }

    main:not(.auth-layout) .timer-badge {
        font-size: clamp(0.68rem, 2.3vw, 0.8rem) !important;
        padding: clamp(5px, 1.5vw, 8px) clamp(8px, 2.5vw, 12px) !important;
    }

    main:not(.auth-layout) .summary-row {
        font-size: clamp(0.7rem, 2.4vw, 0.85rem) !important;
    }

    /* Textbox — struktur sama, ukuran mengecil */
    main:not(.auth-layout) input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    main:not(.auth-layout) select,
    main:not(.auth-layout) textarea,
    main:not(.auth-layout) .form-control,
    main:not(.auth-layout) .form-input {
        font-size: clamp(0.78rem, 2.7vw, 0.92rem) !important;
        max-width: 100%;
    }

    main:not(.auth-layout) input[type="text"],
    main:not(.auth-layout) input[type="email"],
    main:not(.auth-layout) input[type="password"],
    main:not(.auth-layout) input[type="tel"],
    main:not(.auth-layout) input[type="number"],
    main:not(.auth-layout) input[type="date"],
    main:not(.auth-layout) select,
    main:not(.auth-layout) textarea {
        min-height: clamp(34px, 9vw, 40px);
        padding: clamp(6px, 2vw, 10px) clamp(8px, 2.5vw, 12px) !important;
    }

    /* Tabel */
    main:not(.auth-layout) table {
        font-size: clamp(0.68rem, 2.3vw, 0.82rem) !important;
    }

    main:not(.auth-layout) table th,
    main:not(.auth-layout) table td {
        padding: clamp(0.3rem, 1.5vw, 0.5rem) !important;
    }

    main:not(.auth-layout) .table-responsive {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        max-width: 100%;
    }

    /* Hero sections */
    main:not(.auth-layout) .hero-section,
    main:not(.auth-layout) .produk-hero,
    main:not(.auth-layout) .kunjungan-hero,
    main:not(.auth-layout) .pelatihan-hero,
    main:not(.auth-layout) [class*="-hero"] {
        max-width: 100vw;
    }

    /* Tinggi header HP diatur di user-pages-mobile.css (max 767px) */

    main:not(.auth-layout) .home-categories,
    main:not(.auth-layout) .container-produk-list {
        padding-left: clamp(10px, 3vw, 20px) !important;
        padding-right: clamp(10px, 3vw, 20px) !important;
    }

    /* Dropdown akun di navbar */
    .dropdown-content {
        min-width: 170px !important;
        border-radius: 12px !important;
    }

    .logout-link,
    .dropdown-item-link {
        padding: clamp(8px, 2.5vw, 10px) clamp(12px, 3vw, 16px) !important;
        font-size: clamp(0.72rem, 2.4vw, 0.85rem) !important;
        gap: 8px !important;
    }

    /* Pagination riwayat */
    main:not(.auth-layout) .pagination-wrapper .page-link,
    main:not(.auth-layout) .btn-view-all {
        font-size: clamp(0.65rem, 2.2vw, 0.75rem) !important;
        padding: clamp(6px, 2vw, 8px) clamp(12px, 3vw, 18px) !important;
    }

    /* Profil pengguna grid */
    main:not(.auth-layout) .profile-grid,
    main:not(.auth-layout) .profil-grid {
        gap: clamp(12px, 3vw, 20px) !important;
    }

    /* Stack pembayaran vertikal hanya di HP — lihat user-pages-mobile.css */

    /* Keranjang qty buttons */
    main:not(.auth-layout) .btn-qty {
        width: clamp(26px, 7vw, 32px) !important;
        height: clamp(26px, 7vw, 32px) !important;
        font-size: clamp(0.75rem, 2.5vw, 0.9rem) !important;
    }

    main:not(.auth-layout) .btn-back {
        font-size: clamp(0.72rem, 2.4vw, 0.85rem) !important;
        padding: clamp(6px, 2vw, 8px) clamp(10px, 2.8vw, 14px) !important;
    }

    /* Row bootstrap-like */
    main:not(.auth-layout) .row {
        margin-left: -6px;
        margin-right: -6px;
    }

    main:not(.auth-layout) [class*="col-"] {
        max-width: 100%;
    }
}

@media (max-width: 575.98px) {
    main:not(.auth-layout) .payment-card-premium {
        padding: 12px !important;
        border-radius: 14px !important;
    }

    main:not(.auth-layout) .instruction-steps li {
        font-size: clamp(0.62rem, 2.2vw, 0.72rem) !important;
    }

    main:not(.auth-layout) .btn-cancel-pay {
        font-size: clamp(0.68rem, 2.3vw, 0.78rem) !important;
        padding: 8px 14px !important;
    }
}
