/* Shared sizing rules for public pages and all three operation panels. */
*, *::before, *::after { box-sizing: border-box; }
img, video, iframe { max-width: 100%; }
input, select, textarea { min-width: 0; max-width: 100%; }
fieldset { min-inline-size: 0; }
:is(.admin-content, .company-content, .driver-content, body > main) {
    overflow-wrap: anywhere;
}
:is(.admin-form-grid, .admin-detail-grid, .admin-stat-grid, .company-form-grid,
    .company-dashboard-summary, .driver-stats, .driver-analysis) > * { min-width: 0; }
:is(.admin-brand, .driver-brand) > span:last-child { min-width: 0; overflow-wrap: anywhere; }
:is(.admin-brand, .driver-brand) .branding-preview { max-width: 100%; }
:is(.admin-table-scroll, .company-table-scroll, .report-table-scroll, .branding-table) {
    max-width: 100%;
    min-width: 0;
    overscroll-behavior-inline: contain;
}
:is(.admin-table-scroll, .company-table-scroll, .report-table-scroll, .branding-table):focus-visible {
    outline: 3px solid #0d5db8;
    outline-offset: -3px;
}
.panel-navigation-toggle { display: none; }
.admin-nav[hidden], .company-nav[hidden], .driver-sidebar nav[hidden], .panel-navigation-toggle[hidden] { display: none; }
.driver-sidebar .panel-navigation-toggle[hidden] { display: none; }
.admin-modal-dialog {
    max-height: calc(100vh - 40px);
    max-height: calc(100dvh - 40px);
    overflow-y: auto;
    overscroll-behavior: contain;
}
.driver-sidebar { overflow-y: auto; }
.branding-settings input[type="hidden"] { display: none; }
.branding-table table { width: 100%; border-collapse: collapse; }
.branding-table td { max-width: 26rem; }

@media screen and (max-width: 1024px) {
    /* Prevent iOS focus zoom, including nested confirmation/payment forms. */
    input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea {
        font-size: 16px !important;
    }
    :is(.admin-heading-actions, .admin-form-actions, .admin-row-actions,
        .company-account, .driver-header-actions) { flex-wrap: wrap; }
    :is(.admin-page-heading, .admin-table-header) { flex-wrap: wrap; }
    :is(.admin-icon-button, .admin-modal-close, .admin-logout-button) {
        width: 44px; min-width: 44px; height: 44px;
    }
    :is(.vehicle-detail-close, .vehicle-image-lightbox-close,
        .vehicle-page-lightbox-close, .reservation-lookup-close, .home-packages-arrows button) {
        width: 44px; height: 44px;
    }
    :is(.area-language-switcher button, .admin-request-action, .admin-assign-driver-button,
        .admin-primary-button, .admin-secondary-button, .company-link, .driver-logout,
        .driver-notification, .driver-filter-tabs a, .driver-trip-meta a,
        .mobile-menu-link, .package-back-link, .reservation-lookup-input-row button,
        .home-packages-controls > a) {
        min-height: 44px;
    }
    .company-link { padding-inline: 8px; }
    .area-language-switcher button { min-width: 44px; }
    .public-mobile-menu-links a[hreflang] {
        display: inline-flex; align-items: center; justify-content: center;
        min-width: 44px; min-height: 44px;
    }
    .admin-reservation-table :is(.admin-request-action, .admin-assign-driver-button) { min-height: 44px; font-size: 12px; }
    .admin-topbar { gap: 12px; }
    .company-header > a, .company-account, .driver-header > div { min-width: 0; max-width: 100%; }
    .company-account > span, .driver-header strong { overflow-wrap: anywhere; }
}

@media screen and (max-width: 760px) {
    /* Navigation remains visible when JavaScript is unavailable. */
    .admin-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding-top: 12px; }
    .admin-nav-label { grid-column: 1 / -1; }
    .admin-nav-link { min-width: 0; min-height: 44px; padding: 10px; font-size: 12px; }
    .admin-nav-link i { flex-shrink: 0; }
    .admin-sidebar-footer { display: block; }
    .panel-navigation-toggle {
        display: flex; align-items: center; justify-content: center; gap: 10px;
        width: 100%; min-height: 44px; padding: 10px 14px;
        border: 1px solid #8196b2; border-radius: 8px;
        background: transparent; color: #fff; font: inherit; cursor: pointer;
    }
    .panel-navigation-toggle:focus-visible { outline: 3px solid #e69a24; outline-offset: 3px; }
    .company-header .panel-navigation-toggle { color: #092147; border-color: #cbd5e1; }
    .admin-topbar { flex-wrap: wrap; padding-block: 12px; }
    .admin-user-menu { max-width: 100%; }
    :is(.admin-form-actions, .admin-heading-actions) > * { min-width: 0; text-align: center; }
    .admin-secondary-button, .admin-heading-button { white-space: normal; }
    .admin-password-field { flex-wrap: wrap; }
    .admin-password-input-wrap { flex-basis: 100%; }
    .admin-detail-item strong, .admin-detail-note p { overflow-wrap: anywhere; }
    .admin-table-header { gap: 12px; }
    .admin-table :is(th, td) { padding-inline: 12px; }
    .admin-table td { white-space: normal; overflow-wrap: anywhere; }
    .admin-table .admin-row-actions { min-width: 100px; }
    .company-header img { max-width: 100px; max-height: 48px; }
    .company-account { gap: 8px; width: 100%; }
    .company-account > span { flex: 1 1 120px; }
    .company-account .area-language-switcher { flex-shrink: 0; }
    .company-nav a { display: flex; align-items: center; min-height: 44px; }
    .company-confirmation-details dt { overflow-wrap: anywhere; }
    .company-confirmation-details dd { min-width: 0; overflow-wrap: anywhere; }
    .company-button { white-space: normal; text-align: center; justify-content: center; }
    .company-table-scroll td { white-space: normal; min-width: 110px; overflow-wrap: anywhere; }
    .branding-settings { padding: 16px; }
    .branding-settings form { align-items: stretch; flex-direction: column; gap: 8px; }
    .branding-settings form label { margin-top: 8px; }
    .branding-settings input:not([type="checkbox"]), .branding-settings select { width: 100%; min-height: 44px; }
    .branding-settings :is(button, a) { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
    .branding-settings .admin-primary-button { margin-top: 8px; }
    .branding-table table { min-width: 600px; }
    .branding-table td form { margin: 8px 0 0; }
    .rr-progress > li { min-width: 0; overflow-wrap: anywhere; }
    .rr-actions > *, .rr-actions form > button { max-width: 100%; }
}

@media screen and (max-width: 850px) {
    .driver-sidebar .panel-navigation-toggle {
        display: flex; align-items: center; justify-content: center; gap: 10px;
        width: 100%; min-height: 44px; margin-top: 16px; padding: 10px 14px;
        border: 1px solid #8196b2; border-radius: 8px;
        background: transparent; color: #fff; font: inherit; cursor: pointer;
    }
    .driver-header-actions { gap: 8px; max-width: 100%; }
    .driver-sidebar nav a { min-height: 44px; }
    .driver-header-actions .area-language-switcher { flex-wrap: wrap; }
    .driver-filter-tabs a { display: inline-flex; align-items: center; }
    .driver-brand .branding-preview { max-width: 100px; max-height: 48px; }
}

@media screen and (max-width: 480px) {
    :is(.admin-form-actions, .admin-heading-actions) { flex-direction: column; }
    .admin-heading-actions > *, .admin-form-actions > * { flex: auto; width: 100%; }
    .admin-welcome-panel { align-items: flex-start; padding: 18px; gap: 12px; }
    .company-confirmation-details div { flex-direction: column; gap: 8px; }
    .company-confirmation-details dt { width: auto; }
    .company-confirmation-details dd { width: 100%; }
    .driver-header-actions { width: 100%; }
    .driver-stats { grid-template-columns: minmax(0, 1fr); }
    .driver-stat { gap: 8px; }
    .driver-sidebar nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .driver-sidebar nav a { min-width: 0; overflow-wrap: anywhere; }
    .rr-flow .rr-money-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Public menus and dialogs must remain scrollable in landscape and with a keyboard open. */
@media screen and (max-width: 1279px) {
    [data-purpose="site-header"] #mobile-menu {
        max-height: calc(100vh - 4rem);
        max-height: calc(100dvh - 4rem);
        overflow-y: auto;
        overscroll-behavior-y: contain;
    }
}
.reservation-lookup-dialog {
    max-height: calc(100vh - 2rem);
    max-height: calc(100dvh - 2rem);
}
.vehicle-detail-dialog {
    max-height: min(44rem, calc(100dvh - 2rem));
}
.brand-contacts :is(a, bdi), .brand-socials a { max-width: 100%; overflow-wrap: anywhere; }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}
