/* Shared mobile layout refinements for the marketplace application shell. */
html,
body,
#appPage {
    min-width: 0;
    max-width: 100%;
}

body {
    overflow-x: clip;
}

main,
main > *,
main section,
main article,
main form,
main .card,
main [class*="-card"] {
    min-width: 0;
    max-width: 100%;
}

img,
video,
canvas,
svg {
    max-width: 100%;
}

.table-wrap {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 760px) {
    #appPage > header {
        height: auto;
        min-height: 52px;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0 8px;
        padding: 6px 12px 0;
    }

    #appPage > header .brand {
        min-width: 0;
        overflow: hidden;
    }

    #appPage > header .top-nav {
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        min-width: 0;
        min-height: 42px;
        justify-content: flex-start;
        gap: 6px;
        overflow-x: auto;
        overflow-y: hidden;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }

    #appPage > header .nav-button {
        flex: 0 0 auto;
        min-height: 40px;
        padding: 0 9px;
        white-space: nowrap;
    }

    #appPage > header .user-box {
        min-width: 0;
        gap: 6px;
    }

    main {
        width: 100%;
        padding: 14px 12px 24px;
    }

    .accounts-grid,
    .dashboard-grid,
    .stats-grid,
    .card-grid,
    .cards-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .filters {
        align-items: stretch;
    }

    .filters label {
        min-width: min(100%, 150px);
        max-width: 100%;
    }

    .filters input,
    .filters select,
    form input,
    form select,
    form textarea {
        min-width: 0;
        max-width: 100%;
    }

    .modal-backdrop {
        place-items: center;
        padding: 12px;
        overflow-y: auto;
    }

    .modal,
    [role="dialog"] {
        width: 100%;
        max-width: 100%;
        max-height: calc(100dvh - 24px);
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .modal-actions {
        flex-wrap: wrap;
    }

    .modal-actions > button {
        min-height: 40px;
    }
}

@media (max-width: 430px) {
    main {
        padding-right: 10px;
        padding-left: 10px;
    }

    .page-title {
        align-items: stretch;
        flex-wrap: wrap;
        gap: 10px;
    }

    .page-title > * {
        min-width: 0;
        max-width: 100%;
    }

    .page-title h1 {
        overflow-wrap: anywhere;
        font-size: 19px;
    }

    .page-title button {
        min-height: 40px;
    }

    .filters {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .filters label,
    .filters label:last-child {
        min-width: 0;
        width: 100%;
    }

    .stats {
        line-height: 1.5;
    }

    .pagination {
        align-items: stretch;
        flex-wrap: wrap;
        gap: 8px;
    }

    .pagination button {
        min-height: 40px;
    }

    .modal {
        padding: 15px;
    }

    .modal-header {
        gap: 8px;
    }
}

@media (max-width: 340px) {
    main {
        padding-right: 8px;
        padding-left: 8px;
    }

    #appPage > header {
        padding-right: 8px;
        padding-left: 8px;
    }

    .account-card,
    .modal {
        padding: 12px;
    }
}
