/*
 * FIZIKON-MOBILE-FINAL
 * Final viewport safety layer for 320 / 360 / 375 / 390 / 412 / 430 px.
 * Loaded after every page-specific Fizikon stylesheet.
 */

.fizikon-page,
.fizikon-page *,
.fizikon-page *::before,
.fizikon-page *::after {
    box-sizing: border-box;
}

.fizikon-page,
.fizikon-shell,
.fizikon-main,
.fizikon-page .container,
.fizikon-page .container-wide,
.fizikon-page form,
.fizikon-page section,
.fizikon-page article,
.fizikon-page aside,
.fizikon-page nav,
.fizikon-page header,
.fizikon-page footer {
    min-width: 0;
}

.fizikon-page :is(p, li, dd, dt, span, strong, small, label, a, h1, h2, h3, h4, h5, h6),
body .ui-dialog,
body .ui-menu,
body .ui-autocomplete-panel,
body .ui-messages,
body .ui-message {
    overflow-wrap: anywhere;
    word-break: normal;
}

.fizikon-page :is(img, svg, video, canvas, iframe, object, embed) {
    max-width: 100%;
}

.fizikon-page :is(pre, code) {
    max-width: 100%;
}

.fizikon-page pre {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.fizikon-page .ui-button .ui-button-text,
.fizikon-page a.ui-button .ui-button-text {
    white-space: normal;
    text-align: center;
    overflow-wrap: anywhere;
}

/* PrimeFaces overlays must never be wider than the viewport. */
body .ui-dialog,
body .ui-datepicker,
body .ui-autocomplete-panel,
body .ui-selectonemenu-panel,
body .ui-menu {
    max-width: calc(100vw - 24px) !important;
}

body .ui-autocomplete-panel,
body .ui-selectonemenu-panel {
    overflow-x: hidden;
}

body .ui-autocomplete-items,
body .ui-selectonemenu-items {
    max-width: 100%;
}

body .ui-autocomplete-item,
body .ui-selectonemenu-item,
body .ui-menuitem-link,
body .ui-menuitem-text {
    white-space: normal !important;
    overflow-wrap: anywhere;
}

/* Touch targets: primary controls, consent and expandable legal text. */
.fizikon-page :is(.fizikon-footer-nav a, .fizikon-footer-list a, .fizikon-footer-legal a,
    .fizikon-cookie-policy, .fizikon-home-inline-link, .fizikon-home-contact-link,
    .booking-cancel-link, details > summary) {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

.fizikon-page .ui-chkbox,
.fizikon-page .ui-radiobutton {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
}

.fizikon-page .ui-chkbox .ui-chkbox-box,
.fizikon-page .ui-radiobutton .ui-radiobutton-box {
    width: 24px;
    height: 24px;
}

/* Calendar navigation remains comfortably tappable; day cells stay within the 7-column grid. */
body .ui-datepicker .ui-datepicker-prev,
body .ui-datepicker .ui-datepicker-next {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Confirm dialogs stack actions on narrow screens instead of squeezing labels. */
@media (max-width: 575.98px) {
    body .ui-confirm-dialog .ui-dialog-buttonpane,
    body .ui-confirmdialog .ui-dialog-buttonpane {
        display: flex;
        flex-direction: column;
        gap: .65rem;
    }

    body .ui-confirm-dialog .ui-dialog-buttonpane .ui-button,
    body .ui-confirmdialog .ui-dialog-buttonpane .ui-button {
        width: 100%;
        margin: 0;
        min-height: 48px;
    }

    .fizikon-page .ui-tabs-nav {
        max-width: 100%;
    }

    .fizikon-page .ui-tabs-panels,
    .fizikon-page .ui-tabs-panel {
        min-width: 0;
    }

    .fizikon-page .ui-messages,
    .fizikon-page .ui-message {
        width: 100%;
    }

    .fizikon-page .ui-messages li,
    .fizikon-page .ui-message-error-detail,
    .fizikon-page .ui-message-info-detail,
    .fizikon-page .ui-message-warn-detail {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .fizikon-page .fizikon-contact-info-card > div:last-child,
    .fizikon-page .fizikon-home-info-card > div:last-child,
    .fizikon-page .fizikon-profile-contact > span:last-child {
        min-width: 0;
    }

    .fizikon-page .fizikon-legal-card,
    .fizikon-page .fizikon-auth-card,
    .fizikon-page .fizikon-contact-card,
    .fizikon-page .fizikon-system-card,
    .fizikon-page .booking-date-card,
    .fizikon-page .booking-slots-card,
    .fizikon-page .booking-details-card {
        max-width: 100%;
    }

    .booking-date-card .ui-datepicker-calendar {
        width: 100%;
        min-width: 0;
    }

    .booking-date-card .ui-datepicker-calendar td > a,
    .booking-date-card .ui-datepicker-calendar td > span {
        min-width: 24px;
    }

    .booking-progress,
    .fizikon-treatment-category-summary {
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }
}

/* 320–359 px: preserve the content area instead of squeezing navigation chrome. */
@media (max-width: 359.98px) {
    .fizikon-header-row {
        gap: .35rem;
    }

    body .fizikon-mobile-menu.ui-menubutton > .ui-button {
        width: 44px;
        min-width: 44px;
        padding-inline: 0;
    }

    body .fizikon-mobile-menu.ui-menubutton > .ui-button .ui-button-text {
        display: none;
    }

    .fizikon-cookie-card {
        grid-template-columns: 1fr;
        gap: .7rem;
    }

    .fizikon-cookie-icon {
        display: none;
    }

    .fizikon-home-hero-copy {
        padding-inline: 16px;
    }

    .fizikon-home-trust {
        display: grid;
        grid-template-columns: 1fr;
    }

    .fizikon-home-info-card {
        grid-template-columns: 40px minmax(0, 1fr);
        padding: 18px 16px;
    }

    .fizikon-home-info-icon,
    .fizikon-home-price-icon,
    .fizikon-home-rule-icon,
    .fizikon-home-contact-avatar {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
    }

    body .fizikon-auth-tabs .ui-tabs-nav li a {
        padding-inline: .4rem;
        font-size: .86rem;
    }

    .fizikon-contact-info-card {
        padding: .9rem;
    }

    .booking-hero-card,
    .booking-date-card,
    .booking-slots-card,
    .booking-details-card,
    .booking-login-card {
        padding-inline: 14px;
    }
}

/* Safe-area support without changing desktop geometry. */
@supports (padding: max(0px)) {
    @media (max-width: 575.98px) {
        .fizikon-header-row,
        .fizikon-footer .container,
        .fizikon-main > * .container {
            padding-left: max(var(--fz-gutter), env(safe-area-inset-left));
            padding-right: max(var(--fz-gutter), env(safe-area-inset-right));
        }
    }
}

/* Standalone action links should be as easy to tap as buttons on phones. */
@media (max-width: 767.98px) {
    .fizikon-inline-action-row > a,
    .fizikon-system-actions > a,
    .fizikon-form-actions > a,
    .fizikon-legal-toolbar > a,
    .fizikon-contact-info-card a {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }

    .fizikon-inline-action-row > a,
    .fizikon-system-actions > a,
    .fizikon-form-actions > a,
    .fizikon-legal-toolbar > a {
        justify-content: center;
    }
}
