@media (max-width: 991px) {
    html,
    body {
        overflow-x: hidden;
    }

    body {
        padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px));
    }

    #appMain {
        padding-left: 12px !important;
        padding-right: 12px !important;
        padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;
        overflow-x: hidden !important;
    }

    #bottomNav {
        min-height: calc(58px + env(safe-area-inset-bottom, 0px));
        padding: 6px 4px env(safe-area-inset-bottom, 0px);
        z-index: 10000001;
    }

    #bottomNav .bottom-nav-item {
        min-height: 44px;
    }

    #sideMenuMobile {
        width: min(90vw, 340px) !important;
        max-width: 340px !important;
    }

    #sideMenuMobile .offcanvas-body {
        padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    }

    .flex.h-screen.w-full.max-w-\[1440px\] {
        min-width: 0;
    }

    .offcanvas .nav-link,
    .bottom-nav-item,
    .sidebar-feature-card {
        -webkit-tap-highlight-color: transparent;
    }
}

@media (max-width: 768px) {
    #appHeader {
        position: sticky;
        top: 0;
    }

    body.page-freelancedialog #appMain,
    body.page-freelanceorder #appMain {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .notifications-dropdown {
        width: calc(100vw - 16px) !important;
        max-width: calc(100vw - 16px) !important;
        left: 8px !important;
        right: 8px !important;
    }

    .dashboard,
    .freelance-chat-container,
    .service-showcase-container {
        max-width: 100% !important;
    }

    /* Product pages */
    .freelance-order-page-row,
    .service-content {
        grid-template-columns: 1fr !important;
    }

    .order-sidebar,
    .service-sidebar {
        position: static !important;
        width: 100% !important;
        margin-top: 12px !important;
    }

    .services-grid {
        grid-template-columns: 1fr !important;
    }

    .service-card__actions {
        flex-direction: column;
    }

    .service-card__btn-details,
    .service-card__btn-order {
        width: 100%;
    }

    .freelance-chat-container {
        display: flex;
        flex-direction: column;
        min-height: calc(100dvh - 64px);
    }

    .freelance-chat-sidebar {
        order: 2;
        width: 100% !important;
    }

    .freelance-chat-column {
        order: 1;
        min-width: 0;
    }

    .freelance-chat-input-wrap textarea,
    #inputmessageblock {
        font-size: 16px !important;
    }

    /* Auth / legal standalone pages */
    body .fixed-header {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    body .container {
        max-width: 100% !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    body .card,
    body .form-container,
    body .politicsblock {
        border-radius: 12px !important;
    }

    body .politicsblock .row {
        margin-bottom: 0.75rem !important;
    }

    body .politicsblock .descr,
    body .politicsblock .li {
        font-size: 14px !important;
        line-height: 1.45 !important;
        word-break: break-word;
    }
}

@media (max-width: 480px) {
    #appMain {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    #bottomNav .bottom-nav-label {
        font-size: 0.58rem;
    }

    .order-page-main,
    .service-main,
    .service-section,
    .service-sidebar-card {
        padding: 12px !important;
    }

    .service-title,
    .order-detail-title {
        font-size: 1.2rem !important;
        line-height: 1.3 !important;
    }

    body .card-body,
    body .form-container {
        padding: 14px !important;
    }
}

/* Прайс-матрица услуги: без горизонтального скролла на узких экранах */
@media (max-width: 575px) {
    .service-price-matrix-scroll {
        overflow-x: visible;
    }

    #table-service-price-matrix {
        min-width: 0 !important;
        display: block;
        border: 0 !important;
    }

    #table-service-price-matrix thead {
        display: none;
    }

    #table-service-price-matrix tbody,
    #table-service-price-matrix tr,
    #table-service-price-matrix td,
    #table-service-price-matrix th {
        display: block;
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box;
    }

    #table-service-price-matrix tr[data-feature-index] {
        margin-bottom: 12px;
        padding: 12px;
        border: 1px solid var(--bs-border-color, #dee2e6) !important;
        border-radius: 12px;
        background: #fff;
    }

    #table-service-price-matrix tr[data-feature-index] td:first-child {
        border-bottom: 1px solid #eee;
        margin-bottom: 8px;
        padding-bottom: 8px !important;
    }

    #table-service-price-matrix tr[data-testid="row-service-packages-price"] {
        margin-top: 8px;
        padding: 12px;
        border-radius: 12px;
    }

    #table-service-price-matrix tr[data-testid="row-service-packages-price"] td:first-child {
        font-weight: 700;
        margin-bottom: 8px;
    }
}

@media (max-width: 768px) {
    .service-view .other-services .services-grid {
        grid-template-columns: 1fr !important;
    }
}
