/* Shared phone ergonomics; keep print and desktop layouts independent. */
.client-menu [hidden] { display: none !important; }
@media screen {
    :where(a, button, input, select, textarea, summary):focus-visible {
        outline: 3px solid #d52b2b;
        outline-offset: 3px;
    }
    @media (max-width: 819px) {
        .site-header { height: auto; }
        input:not([type="checkbox"]):not([type="radio"]), select, textarea {
            min-height: 44px;
            font-size: 16px !important;
            max-width: 100%;
        }
        button, .btn, .button, .auth-layout .text-link, .auth-layout .check {
            min-height: 44px;
        }
        body:has(.auth-layout) .main-nav a, body:has(.auth-layout) .footer-links a {
            display: inline-flex; align-items: center; min-height: 44px;
        }
        .patron-tabs a, .category-tabs button, .service-sections button { min-width: 44px; }
        .service-filters button, .patron-staff-revoke, .restaurant-identity { min-height: 44px; }
        .patron-table-row a { display: inline-flex; align-items: center; min-height: 44px; }
        .service-header { grid-template-columns: minmax(0, 1fr) auto; }
        .service-identity { min-width: 0; }
        .service-header-actions { flex-wrap: wrap; }
        .auth-layout .text-link, .auth-layout .check { display: inline-flex; align-items: center; }
        .patron-content { padding-bottom: calc(104px + env(safe-area-inset-bottom)); }
        .patron-mobile-nav { padding-bottom: env(safe-area-inset-bottom); }
        .patron-mobile-more {
            bottom: calc(76px + env(safe-area-inset-bottom));
            max-height: calc(100dvh - 100px - env(safe-area-inset-bottom) - env(safe-area-inset-top));
            overflow-y: auto;
            overscroll-behavior: contain;
        }
        .patron-header > div:first-child, .patron-section-heading > div,
        .product-open, .product-copy, .order-line-heading > div { min-width: 0; }
        .patron-header h1, .patron-content, .service-app, .product-copy,
        .order-line-heading, .confirmation-screen { overflow-wrap: anywhere; }
        .patron-section-heading > a { display: inline-flex; align-items: center; min-height: 44px; }
        .patron-header, .service-header { padding-top: max(24px, env(safe-area-inset-top)); }
        .product-plus, .sheet-close, .quantity-control button,
        .order-stepper button, .search-field button { min-width: 44px; width: 44px; height: 44px; }
        .order-stepper { height: 46px; }
        .bottom-nav { height: calc(76px + env(safe-area-inset-bottom)); }
        .menu-app { padding-bottom: calc(108px + env(safe-area-inset-bottom)); }
        .menu-drawer { overflow-y: auto; padding-top: max(22px, env(safe-area-inset-top)); padding-bottom: max(22px, env(safe-area-inset-bottom)); }
        .menu-header, .order-header { top: env(safe-area-inset-top); }
        .client-menu { padding-top: env(safe-area-inset-top); }
        .category-tabs { top: calc(72px + env(safe-area-inset-top)); }
        .bottom-sheet { max-height: calc(100dvh - 24px - env(safe-area-inset-top)); }
        .sheet-body { padding-bottom: calc(26px + env(safe-area-inset-bottom)); }
        .order-line-heading { flex-wrap: wrap; }
        .order-line-heading > div { flex-wrap: wrap; }
        .product-meta { flex-wrap: wrap; }
        .order-general-note > div > label { display: flex; align-items: center; gap: 8px; min-height: 44px; }
        .order-general-note input[type="radio"] { width: 20px; height: 20px; flex: 0 0 20px; }
    }
    @media (max-width: 619px) {
        .patron-header-actions > .patron-primary-action { bottom: calc(80px + env(safe-area-inset-bottom)); }
    }
}
