/* RentPark frontend mobile polish. All rules are scoped to RentPark/WPBC UI. */
@media (max-width: 782px) {
    .wpbc_container_booking_form,
    .wpbc_booking_form_structure,
    .wpbc_booking_form_structure .wpbc_structure_calendar,
    .wpbc_booking_form_structure .wpbc_structure_form,
    form.booking_form,
    .booking_form .booking_form_div {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    .wpbc_booking_form_structure,
    .wpbc_booking_form_structure.wpbc_form_right,
    .wpbc_booking_form_structure.wpbc_form_center {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px !important;
    }

    .wpbc_booking_form_structure .wpbc_structure_calendar,
    .wpbc_booking_form_structure .wpbc_structure_form,
    .wpbc_booking_form_structure.wpbc_form_right .wpbc_structure_calendar,
    .wpbc_booking_form_structure.wpbc_form_right .wpbc_structure_form,
    .wpbc_booking_form_structure.wpbc_form_center .wpbc_structure_calendar,
    .wpbc_booking_form_structure.wpbc_form_center .wpbc_structure_form {
        float: none !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .booking_form .form-group,
    .booking_form .controls,
    .booking_form .wpdev-form-control-wrap,
    .booking_form .wpbc_times_selector,
    .booking_form .wpbc-form-element-checkbox {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .booking_form input[type="text"],
    .booking_form input[type="password"],
    .booking_form input[type="email"],
    .booking_form input[type="tel"],
    .booking_form input[type="number"],
    .booking_form input[type="date"],
    .booking_form input[type="time"],
    .booking_form select,
    .booking_form textarea {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 44px !important;
        font-size: 16px !important;
        box-sizing: border-box !important;
    }

    .booking_form textarea {
        min-height: 96px !important;
    }

    .booking_form input[type="button"],
    .booking_form input[type="submit"],
    .booking_form .btn,
    .booking_form .button,
    .booking_form_div .btn,
    .booking_form_div .button,
    .booking_form_div .submit {
        min-height: 44px !important;
        max-width: 100%;
        white-space: normal;
        touch-action: manipulation;
    }

    .wpbc_container_booking_form .datepick-inline,
    .wpbc_container_booking_form .datepick-one-month,
    .wpbc_container_booking_form .datepick,
    .wpbc_container_booking_form .calendar-links {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .wpbc_container_booking_form .datepick-inline {
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .wpbc_container_booking_form .datepick-inline .datepick-days-cell,
    .wpbc_container_booking_form .datepick-inline .datepick-day-cell {
        touch-action: manipulation;
    }

    /* Elementor object selector. */
    .web-bleep-resource-selector {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
        box-sizing: border-box !important;
    }
    .web-bleep-resource-selector__select {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 46px !important;
        font-size: 16px !important;
    }
    .web-bleep-resource-selector__heading,
    .web-bleep-resource-selector__label,
    .web-bleep-resource-selector__status {
        text-align: center;
    }

    /* Public free-hours filter. */
    .rp-availability {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto;
        margin-right: auto;
    }
    .rp-availability__title {
        font-size: clamp(20px,6vw,24px) !important;
        line-height: 1.25;
    }
    .rp-availability__controls {
        padding: 11px !important;
        border-radius: 9px !important;
    }
    .rp-availability__date,
    .rp-availability__date-start,
    .rp-availability__date-end {
        width: 100%;
        display: grid !important;
        grid-template-columns: 1fr !important;
        justify-items: stretch !important;
        gap: 6px !important;
    }
    .rp-availability__date label,
    .rp-availability__date-limit {
        text-align: center;
    }
    .rp-availability__date-input {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 44px !important;
        font-size: 16px !important;
        box-sizing: border-box !important;
    }
    .rp-availability__groups,
    .rp-availability__status-filter,
    .rp-availability__legend,
    .rp-availability__actions {
        justify-content: center !important;
    }
    .rp-group-btn,
    .rp-status-btn,
    .rp-availability__submit {
        min-height: 44px !important;
        white-space: normal;
        text-align: center;
        touch-action: manipulation;
    }
    .rp-availability__resources {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }
    .rp-resource-choice {
        min-width: 0;
        min-height: 42px;
        overflow-wrap: anywhere;
    }
    .rp-availability-card__head {
        align-items: flex-start !important;
        flex-direction: column !important;
    }
    .rp-availability-card__hours {
        grid-template-columns: repeat(6,minmax(0,1fr)) !important;
        gap: 4px !important;
        padding: 8px !important;
    }
    .rp-hour {
        min-height: 36px !important;
        font-size: 11px !important;
    }

    /* My bookings / user cabinet. */
    .rentpark-profile {
        width: 100% !important;
        max-width: 100% !important;
        margin: 14px auto 28px !important;
        padding: 0 8px !important;
    }
    .rentpark-profile__head {
        justify-content: center;
        text-align: center;
        flex-wrap: wrap;
    }
    .rentpark-month-nav {
        gap: 7px !important;
    }
    .rentpark-month-nav__button,
    .rentpark-month-nav__picker button {
        min-height: 44px !important;
    }
    .rentpark-month-nav__picker {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        margin-left: 0 !important;
        text-align: center;
    }
    .rentpark-month-nav__picker input[type="month"] {
        width: 100%;
        min-height: 44px !important;
        font-size: 16px;
        box-sizing: border-box;
    }
    .rentpark-booking-calendar {
        width: 100%;
        overflow-x: hidden !important;
    }
    .rentpark-booking-calendar h3 {
        font-size: 18px !important;
    }
    .rentpark-booking-calendar__day,
    a.rentpark-booking-calendar__day-link {
        min-height: 58px !important;
    }
    .rentpark-booking-calendar__day {
        padding: 3px !important;
    }
    .rentpark-booking-calendar__count {
        margin-top: 5px !important;
        padding: 3px !important;
        font-size: 9px !important;
    }
    .rentpark-booking-calendar__status-line span,
    .rentpark-booking-calendar__open-day {
        font-size: 8px !important;
    }
    .rentpark-month-summary__list,
    .rentpark-booking-details__main-grid,
    .rentpark-booking-details__fields {
        grid-template-columns: 1fr !important;
    }
    .rentpark-booking-details summary {
        align-items: flex-start !important;
        flex-direction: column !important;
    }

    /* Negative status widget and modal. */
    #rentpark-negative-status {
        right: 8px !important;
        bottom: 8px !important;
        max-width: calc(100vw - 16px) !important;
    }
    #rentpark-negative-open {
        font-size: 13px !important;
        line-height: 1.3 !important;
        white-space: normal !important;
        text-align: center;
    }
    #rentpark-negative-backdrop {
        padding: 8px !important;
    }
    #rentpark-negative-modal {
        width: 100% !important;
        max-height: calc(100vh - 16px) !important;
        border-radius: 13px !important;
    }
    .rp-neg-head {
        position: static !important;
        padding: 14px !important;
        gap: 9px !important;
    }
    .rp-neg-head h2 {
        font-size: 19px !important;
    }
    .rp-neg-list {
        padding: 12px !important;
    }
    .rp-neg-item {
        padding: 12px 12px 12px 17px !important;
    }
    #rentpark-moderation-alert {
        top: 12px !important;
        width: calc(100vw - 16px) !important;
        padding: 14px 44px 14px 14px !important;
        font-size: 14px !important;
    }
}

@media (max-width: 480px) {
    .rp-availability__resources {
        grid-template-columns: 1fr !important;
    }
    .rp-availability__groups,
    .rp-availability__status-filter,
    .rp-availability__actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }
    .rp-group-btn,
    .rp-status-btn,
    .rp-availability__submit {
        width: 100% !important;
    }
    .rp-availability__status-filter-title,
    .rp-availability__count {
        text-align: center;
    }
    .rp-availability-card__hours {
        grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    }
    .rentpark-month-nav__button {
        flex: 1 1 100%;
        width: 100%;
    }
    .rentpark-booking-calendar__dow {
        font-size: 10px !important;
    }
    .rentpark-booking-calendar__number {
        font-size: 11px !important;
    }
    .rentpark-booking-calendar__status-line,
    .rentpark-booking-calendar__open-day {
        display: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .web-bleep-resource-selector,
    .web-bleep-resource-selector__select,
    .rp-availability * {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
