/* Mobile design & performance fixes for item extras / addons modal */

@media only screen and (max-width: 767.98px) {
    /* Bottom-sheet style modal on phones */
    .modalitemdetails .modal-dialog {
        margin: 0 !important;
        align-items: flex-end !important;
        min-height: 100vh !important;
    }

    .modalitemdetails .modal-content {
        border-radius: 1rem 1rem 0 0 !important;
        max-height: 92vh !important;
        display: flex !important;
        flex-direction: column !important;
    }

    .modalitemdetails .modal-header {
        flex-shrink: 0;
        padding: 0.75rem 1rem;
    }

    .modalitemdetails .modal-body {
        flex: 1 1 auto !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        padding: 0.5rem 1rem 1rem;
    }

    .modalitemdetails .modal-footer {
        flex-shrink: 0;
        padding: 0.75rem 1rem;
        border-top: 1px solid #e9ecef;
        background: #fff;
    }

    /* Larger touch targets for addon / extra / topping options */
    .modalitemdetails .item-addons-list .form-check,
    .modalitemdetails .item-addons-list .form-check-label,
    .modalitemdetails .item-details .form-check-label {
        min-height: 44px;
        display: flex;
        align-items: center;
    }

    .modalitemdetails .item-addons-list .form-check-input {
        width: 1.25rem;
        height: 1.25rem;
        margin-top: 0;
        flex-shrink: 0;
    }

    .modalitemdetails .item-addons-list .form-check {
        margin: 0.25rem 0;
        padding-left: 1.75rem;
    }

    /* Price labels should not shrink */
    .modalitemdetails .addon-price-label,
    .modalitemdetails .extra-price-label {
        flex-shrink: 0;
        margin-left: 0.5rem;
        font-weight: 600;
    }

    /* Pizza toppings: single column on narrow screens for readability */
    .modalitemdetails .modal-body .col-6[id^="pizza_topping_wrapper_"] {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }

    /* Pizza topping side choices stack cleanly */
    .modalitemdetails .topping-side-choices .d-flex.flex-wrap.gap-2 {
        gap: 0.5rem !important;
    }

    .modalitemdetails .topping-side-choices .form-check {
        min-height: 36px;
        margin-right: 0.75rem;
    }

    /* Quantity and Add to Cart */
    .modalitemdetails .item-quantity {
        min-height: 44px;
        width: 100%;
    }

    .modalitemdetails .item-quantity button {
        min-width: 44px;
        min-height: 44px;
        font-size: 1.25rem;
    }

    .modalitemdetails .item-quantity input {
        font-size: 1rem;
    }

    .modalitemdetails .addon_modal_cart {
        min-height: 48px;
        font-size: 1rem;
        font-weight: 600;
    }

    /* Prevent iOS zoom on any inputs inside the modal */
    .modalitemdetails input,
    .modalitemdetails select,
    .modalitemdetails textarea,
    .modalitemdetails .form-control,
    .modalitemdetails .form-select {
        font-size: 16px !important;
    }

    /* Header title shouldn't overflow */
    .modalitemdetails .modal-title {
        white-space: normal;
        line-height: 1.3;
    }
}

/* Very small phones */
@media only screen and (max-width: 374px) {
    .modalitemdetails .modal-content {
        max-height: 95vh !important;
    }

    .modalitemdetails .item-addons-list h5 {
        font-size: 0.95rem;
    }

    .modalitemdetails .item-addons-list .form-check-label {
        font-size: 0.85rem;
    }
}
