/* Shared responsive guardrails for public, professional, patient, and admin surfaces. */
html,
body {
    max-width: 100%;
}

body.hp-home-body,
body.healthcare-search-body,
body.hp-clinician-body {
    overflow-x: clip;
}

.healthcare-search-shell *,
.hp-clinician-shell *,
body.admin .content * {
    min-width: 0;
}

/* Catalog columns stay readable; overflow remains inside the responsive table shell. */
body.admin .hp-admin-catalog__table {
    min-width: 760px;
}

body.admin .hp-admin-catalog__header-actions > .btn {
    min-height: 44px;
}

@media (max-width: 1023px) {
    /* Public homepage and discovery */
    body.hp-home-body .healthcare-home-hero > .container,
    body.hp-home-body .healthcare-home-section > .container,
    body.hp-home-body .healthcare-home-band > .container,
    body.hp-home-body .healthcare-home-final > .container {
        width: min(100% - 32px, 760px);
    }

    body.hp-home-body .healthcare-home-search {
        max-width: 100%;
    }

    body.healthcare-search-body .healthcare-search-filterbar {
        margin-left: 0;
        margin-right: 0;
        width: 100%;
    }

    body.healthcare-search-body .healthcare-search-filterbar .container {
        max-width: 100%;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch;
    }

    body.healthcare-search-body .healthcare-search-filterbar button,
    body.healthcare-search-body .healthcare-search-filterbar a,
    .hp-search-filterbar-v2 .hp-search-filter-chip,
    .hp-search-filterbar-v2 .healthcare-search-map-toggle {
        min-height: 44px;
    }

    body.healthcare-search-body .healthcare-search-map-canvas {
        aspect-ratio: 16 / 9;
        height: auto;
        min-height: 300px;
    }

    /* Professional workspace */
    .hp-clinician-schedule-toolbar,
    .hp-clinician-topbar {
        max-width: 100%;
    }

    .hp-clinician-toolbar-actions {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .hp-clinician-toolbar-actions > button,
    .hp-clinician-toolbar-actions .hp-clinician-toggle {
        min-height: 44px;
    }

    .hp-clinician-content-section .table-responsive,
    .hp-clinician-agenda-panel,
    .hp-clinician-calendar-scroll {
        max-width: 100%;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }

    /* Healthcare admin */
    body.admin .hp-admin-nav__primary,
    body.admin .hp-admin-nav__secondary {
        overscroll-behavior-inline: contain;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch;
    }

    body.admin .hp-admin-nav__primary-link,
    body.admin .hp-admin-nav__secondary-link {
        min-height: 44px;
    }

    body.admin .hp-admin-page-heading--actions {
        align-items: flex-start;
        gap: 14px;
    }

    body.admin .hp-admin-page-heading--actions .btn {
        min-height: 44px;
    }

    body.admin .panel_s .table-responsive {
        border: 0;
        max-width: 100%;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }

    body.admin .panel_s .table-responsive > table {
        margin-bottom: 0;
    }

    body.admin .form-control,
    body.admin select.form-control,
    body.admin .select2-container .select2-selection--single {
        min-height: 44px;
    }

    body.admin .btn:not(.btn-xs) {
        min-height: 40px;
    }
}

@media (max-width: 767px) {
    /* Keep focused public search fields stable on iOS and narrow Android browsers. */
    html {
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
    }

    body.admin .hp-admin-pagination .pagination > li > a,
    body.admin .hp-admin-pagination .pagination > li > span {
        min-width: 44px;
        height: 44px;
    }

    body.hp-home-body .healthcare-home-search,
    body.healthcare-search-body .healthcare-search-top-form,
    body.hp-home-body .healthcare-home-search-field,
    body.healthcare-search-body .healthcare-search-top-form label,
    body.hp-home-body .healthcare-autocomplete-host,
    body.healthcare-search-body .healthcare-autocomplete-host {
        box-sizing: border-box;
        max-width: 100%;
        min-width: 0;
        width: 100%;
    }

    body.hp-home-body .healthcare-home-search input,
    body.healthcare-search-body .healthcare-search-top-form input {
        font-size: 16px !important;
        max-width: 100%;
        min-width: 0;
        width: 100%;
    }

    body.hp-home-body .healthcare-autocomplete-menu,
    body.healthcare-search-body .healthcare-autocomplete-menu {
        box-sizing: border-box;
        left: 0;
        max-height: 62vh;
        max-width: 100%;
        right: 0;
        width: auto;
    }

    body.hp-home-body .healthcare-autocomplete-menu__heading,
    body.healthcare-search-body .healthcare-autocomplete-menu__heading {
        padding-left: 14px;
        padding-right: 14px;
    }

    body.hp-home-body .healthcare-autocomplete-option,
    body.healthcare-search-body .healthcare-search-top-form .healthcare-autocomplete-option {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
        min-height: 56px;
        max-width: 100%;
        min-width: 0;
        overflow-wrap: anywhere;
        padding: 12px 14px;
        white-space: normal;
    }

    body.hp-home-body .healthcare-autocomplete-option > span,
    body.healthcare-search-body .healthcare-autocomplete-option > span {
        min-width: 0;
    }

    body.hp-home-body .healthcare-autocomplete-option small,
    body.healthcare-search-body .healthcare-autocomplete-option small {
        align-self: stretch;
        max-width: 100%;
        overflow: visible;
        text-overflow: clip;
        white-space: normal;
    }

    body.hp-home-body .healthcare-autocomplete-option.is-near-me,
    body.healthcare-search-body .healthcare-search-top-form .healthcare-autocomplete-option.is-near-me {
        min-height: 62px;
    }

    body.hp-home-body .healthcare-autocomplete-option.is-specialist,
    body.healthcare-search-body .healthcare-search-top-form .healthcare-autocomplete-option.is-specialist {
        min-height: 50px;
    }

    body.hp-home-body .healthcare-autocomplete-footer,
    body.healthcare-search-body .healthcare-search-top-form .healthcare-autocomplete-footer {
        min-height: 52px;
        padding: 11px 14px;
    }

    /* Public homepage */
    body.hp-home-body {
        padding-bottom: 0;
    }

    body.hp-home-body #content {
        padding-bottom: 0;
    }

    body.hp-home-body .healthcare-home-nav .container,
    body.hp-home-body .healthcare-home-hero > .container,
    body.hp-home-body .healthcare-home-section > .container,
    body.hp-home-body .healthcare-home-band > .container,
    body.hp-home-body .healthcare-home-final > .container {
        width: calc(100% - 24px);
    }

    body.hp-home-body .healthcare-home-nav,
    body.hp-home-body .healthcare-home-hero {
        border-radius: 0;
        margin-left: 0;
        margin-right: 0;
        width: 100%;
    }

    /* Keep the mobile search hero visually connected to the desktop brand image
     * without downloading the larger source image on the default homepage. */
    body.hp-home-body .healthcare-home-shell .healthcare-home-hero {
        background-image:
            linear-gradient(180deg, rgba(22, 135, 217, .72) 0%, rgba(22, 135, 217, .86) 52%, rgba(22, 135, 217, .95) 100%),
            var(--hp-home-hero-mobile-image) !important;
        background-position: 64% top !important;
        background-repeat: no-repeat !important;
        background-size: cover !important;
    }

    @supports (background-image: image-set(url("") type("image/avif") 1x)) {
        body.hp-home-body .healthcare-home-shell .healthcare-home-hero {
            background-image:
                linear-gradient(180deg, rgba(22, 135, 217, .72) 0%, rgba(22, 135, 217, .86) 52%, rgba(22, 135, 217, .95) 100%),
                var(--hp-home-hero-mobile-image-set) !important;
        }
    }

    body.hp-home-body [data-hp-mobile-anchor="how-it-works"] {
        scroll-margin-top: 16px;
    }

    body.healthcare-search-body .healthcare-search-filterbar .container::before,
    body.healthcare-search-body .healthcare-search-filterbar .container::after {
        display: none;
    }

    body.hp-home-body .healthcare-home-nav .container {
        display: flex;
        justify-content: center;
        position: relative;
    }

    body.hp-home-body .healthcare-home-brand {
        left: 50%;
        margin: 0;
        position: absolute;
        top: 50%;
        transform: translate(-50%, -50%);
    }

    body.hp-home-body .healthcare-mobile-pro-cta {
        display: flex !important;
        margin-left: auto;
        margin-right: auto;
        width: fit-content;
    }

    body.hp-home-body .healthcare-home-nav .container {
        padding-left: 0;
        padding-right: 0;
    }

    body.hp-home-body .healthcare-home-nav-links .btn,
    body.hp-home-body .healthcare-home-language-switch a,
    body.hp-home-body .healthcare-home-search .healthcare-public-search-submit,
    body.hp-home-body .healthcare-home-section a.btn {
        min-height: 44px;
    }

    body.hp-home-body .healthcare-home-brand,
    body.hp-home-body .healthcare-home-language-switch a,
    body.hp-home-body .healthcare-mobile-update-card a,
    body.hp-home-body .healthcare-mobile-pro-cta,
    body.hp-home-body .healthcare-mobile-promo-card .btn,
    body.hp-home-body .healthcare-mobile-help-card .btn,
    body.hp-home-body .healthcare-home-final .btn {
        align-items: center;
        display: inline-flex;
        justify-content: center;
        min-height: 44px;
    }

    body.hp-home-body .healthcare-home-search {
        border-radius: 8px;
        overflow: visible;
    }

    body.hp-home-body .healthcare-home-search label,
    body.hp-home-body .healthcare-home-search .healthcare-public-search-submit {
        width: 100%;
    }

    body.hp-home-body .healthcare-step-grid,
    body.hp-home-body .healthcare-mobile-feature-stack,
    body.hp-home-body .healthcare-mobile-stats {
        grid-template-columns: minmax(0, 1fr);
    }

    body.hp-home-body .healthcare-home-step,
    body.hp-home-body .healthcare-home-benefit,
    body.hp-home-body .healthcare-home-feature-card {
        min-height: 0;
    }

    /* Public search and profiles */
    body.healthcare-search-body .healthcare-search-filterbar .container {
        display: grid;
        gap: 6px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        margin: 0;
        overflow: visible;
        padding: 8px 12px;
        width: 100%;
    }

    body.healthcare-search-body .healthcare-search-filterbar button,
    body.healthcare-search-body .healthcare-search-filterbar a {
        font-size: 12px;
        gap: 5px;
        justify-content: center;
        min-width: 0;
        padding-left: 8px;
        padding-right: 8px;
        width: 100%;
    }

    body.healthcare-search-body .healthcare-search-filterbar button > span {
        display: block;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    /* A second map control is already kept beside the result count on phones. */
    body.healthcare-search-body .healthcare-search-filterbar .healthcare-search-map-toggle {
        display: none;
    }

    body.healthcare-search-body .healthcare-search-main {
        padding-left: 12px;
        padding-right: 12px;
    }

    body.healthcare-search-body .healthcare-result-actions .btn,
    body.healthcare-search-body .healthcare-result-contact-list a,
    body.healthcare-search-body .healthcare-result-contact-list button,
    body.healthcare-search-body .healthcare-search-load-more .btn {
        align-items: center;
        display: flex;
        justify-content: center;
        min-height: 44px;
    }

    body.healthcare-search-body .healthcare-result-report-button {
        min-height: 40px;
        padding: 8px 10px;
    }

    body.healthcare-search-body .healthcare-result-contact-protected,
    body.healthcare-search-body .healthcare-result-contact-tools .healthcare-result-claim--icon,
    body.healthcare-search-body .healthcare-result-report-icon {
        height: 44px;
        width: 44px;
    }

    /* Claiming and reporting are secondary actions: keep them compact on phones. */
    body.healthcare-search-body .healthcare-result-secondary-actions {
        align-items: center;
        display: flex;
        flex-wrap: nowrap;
        gap: 6px 16px;
        margin-top: 8px;
    }

    body.healthcare-search-body .healthcare-result-secondary-actions .healthcare-result-claim,
    body.healthcare-search-body .healthcare-result-secondary-actions .healthcare-result-report,
    body.healthcare-search-body .healthcare-result-secondary-actions .healthcare-result-admin-edit {
        flex: 0 0 auto;
        font-size: 12px;
        line-height: 1.35;
        margin: 0;
        min-height: 32px;
        padding: 6px 0;
        width: auto;
    }

    body.healthcare-search-body .healthcare-result-secondary-actions .healthcare-result-report {
        margin-left: auto;
    }

    body.healthcare-search-body .healthcare-result-secondary-actions .healthcare-result-admin-edit {
        min-height: 44px;
        padding: 8px;
    }

    body.healthcare-search-body .healthcare-search-map-canvas {
        aspect-ratio: 4 / 3;
        min-height: 260px;
    }

    .healthcare-profile-layout,
    .healthcare-clinic-layout {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .healthcare-public-profile-shell .healthcare-profile-nav a,
    .healthcare-public-profile-shell .healthcare-profile-language-switch a,
    .healthcare-public-profile-shell .healthcare-profile-login,
    .healthcare-public-profile-shell .healthcare-profile-contact-list a,
    .healthcare-public-profile-shell .healthcare-profile-contact-list button,
    .healthcare-public-profile-shell .healthcare-profile-book-button {
        align-items: center;
        display: inline-flex;
        justify-content: center;
        min-height: 44px;
    }

    .healthcare-public-profile-shell .healthcare-profile-contact-list a,
    .healthcare-public-profile-shell .healthcare-profile-contact-list button,
    .healthcare-public-profile-shell .healthcare-profile-book-button {
        width: 100%;
    }

    .hp-pro-auth-shell input,
    .hp-pro-auth-shell select,
    .hp-pro-auth-shell textarea {
        font-size: 16px;
        min-height: 48px;
    }

    .hp-pro-auth-shell .hp-pro-primary,
    .hp-pro-auth-shell .hp-pro-secondary,
    .hp-pro-auth-shell .hp-community-template-link {
        min-height: 48px;
    }

    /* Professional portal */
    .hp-clinician-topbar {
        position: sticky;
        top: 0;
    }

    .hp-commercial-banner {
        align-items: center;
        display: flex;
        flex-direction: row;
        gap: 8px;
        min-height: 40px;
        padding: 5px 10px;
    }

    .hp-commercial-banner > div {
        min-width: 0;
    }

    .hp-commercial-banner > div span {
        display: -webkit-box;
        font-size: 11px;
        line-height: 1.25;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 1;
    }

    .hp-commercial-banner a {
        flex: 0 0 auto;
        font-size: 11px;
        justify-content: center;
        min-height: 32px;
        padding: 6px 9px;
        white-space: nowrap;
    }

    .hp-clinician-popover {
        box-sizing: border-box;
        left: 10px;
        margin: 0;
        max-height: calc(100dvh - 76px);
        max-width: none;
        min-width: 0;
        overflow-x: hidden;
        overflow-y: auto;
        position: fixed;
        right: 10px;
        top: 58px;
        width: auto;
        z-index: 1060;
        -webkit-overflow-scrolling: touch;
    }

    .hp-clinician-popover strong,
    .hp-clinician-popover small,
    .hp-clinician-popover button,
    .hp-clinician-popover a {
        font-size: 14px;
        line-height: 1.35;
        max-width: 100%;
        min-width: 0;
        overflow-wrap: anywhere;
        white-space: normal;
    }

    .hp-clinician-popover button,
    .hp-clinician-popover a {
        justify-content: flex-start;
        min-height: 44px;
    }

    /* Dense professional workspace: preserve touch targets without oversized chrome. */
    body.hp-clinician-body {
        padding-bottom: calc(74px + env(safe-area-inset-bottom));
    }

    body.hp-clinician-body .hp-clinician-shell {
        padding-bottom: calc(78px + env(safe-area-inset-bottom));
    }

    .hp-clinician-main {
        padding: 8px 8px calc(84px + env(safe-area-inset-bottom));
    }

    .hp-clinician-agenda-app,
    .hp-clinician-agenda-shell,
    .hp-clinician-card-grid,
    .hp-clinician-billing-grid {
        gap: 8px;
    }

    .hp-clinician-schedule-toolbar,
    .hp-clinician-content-section {
        border-radius: 10px;
        gap: 10px;
        padding: 12px;
    }

    .hp-clinician-schedule-nav {
        gap: 7px;
        grid-template-columns: minmax(0, 1fr) 44px 44px;
    }

    .hp-clinician-today-button,
    .hp-clinician-round-button {
        min-height: 44px;
    }

    .hp-clinician-round-button {
        width: 44px;
    }

    .hp-clinician-schedule-nav h1,
    .hp-clinician-section-head h1 {
        font-size: 20px;
        line-height: 1.15;
        margin-bottom: 5px;
    }

    .hp-clinician-section-head p:not(.hp-pro-kicker) {
        font-size: 13px;
        line-height: 1.4;
    }

    .hp-clinician-toolbar-actions {
        gap: 7px;
    }

    .hp-clinician-record-card {
        gap: 10px;
        grid-template-columns: 36px minmax(0, 1fr);
        padding: 11px;
    }

    .hp-clinician-record-card > button,
    .hp-clinician-record-card > a {
        grid-column: 1 / -1;
        justify-self: stretch;
        width: 100%;
    }

    .hp-clinician-avatar {
        font-size: 12px;
        height: 36px;
        width: 36px;
    }

    .hp-clinician-task-list,
    .hp-clinician-settings-list,
    .hp-clinician-message-list {
        gap: 7px;
    }

    .hp-clinician-message-list article,
    .hp-clinician-task-list label,
    .hp-clinician-settings-list label {
        border-radius: 9px;
        min-height: 48px;
        padding: 10px 11px;
    }

    .hp-clinician-state,
    .hp-clinician-day-head {
        padding: 9px 10px;
    }

    .hp-clinician-mobile-nav {
        border-radius: 16px;
        bottom: calc(6px + env(safe-area-inset-bottom));
        left: 6px;
        padding: 5px;
        right: 6px;
    }

    .hp-clinician-mobile-nav a,
    .hp-clinician-mobile-nav a:hover,
    .hp-clinician-mobile-nav a:focus {
        border-radius: 11px;
        font-size: 9px;
        gap: 2px;
        min-height: 48px;
        padding: 5px 2px;
    }

    .hp-clinician-mobile-nav i {
        font-size: 17px;
    }

    .hp-clinician-mobile-fab {
        border-radius: 14px;
        bottom: calc(70px + env(safe-area-inset-bottom));
        height: 48px;
        right: 14px;
        width: 48px;
    }

    .hp-clinician-modal {
        border-radius: 14px 14px 0 0;
        gap: 12px;
        padding: 18px 14px calc(16px + env(safe-area-inset-bottom));
    }

    .hp-clinician-modal h2 {
        font-size: 21px;
        line-height: 1.15;
    }

    .hp-clinician-search input,
    .hp-clinician-shell input,
    .hp-clinician-shell select,
    .hp-clinician-shell textarea {
        font-size: 16px;
    }

    .hp-clinician-content-section {
        padding: 16px 12px;
    }

    .hp-clinician-section-head {
        align-items: flex-start;
        display: grid;
        gap: 12px;
    }

    .hp-clinician-section-head .btn,
    .hp-clinician-section-head button {
        min-height: 44px;
        width: 100%;
    }

    .hp-clinician-record-card,
    .hp-clinician-message-list article,
    .hp-clinician-task-list article {
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    .hp-clinician-modal-layer {
        align-items: flex-end;
        padding: 0;
    }

    .hp-clinician-modal {
        border-radius: 16px 16px 0 0;
        margin: 0;
        max-height: calc(100dvh - 16px);
        max-width: 100%;
        padding: 24px 16px calc(20px + env(safe-area-inset-bottom));
        width: 100%;
    }

    .hp-clinician-modal input,
    .hp-clinician-modal select,
    .hp-clinician-modal textarea {
        font-size: 16px;
        min-height: 44px;
    }

    /* Healthcare admin */
    body.admin #wrapper .content {
        overflow-x: clip;
        padding: 12px;
    }

    body.admin .hp-admin-nav {
        border-left: 0;
        border-radius: 0;
        border-right: 0;
        margin-left: -12px;
        margin-right: -12px;
    }

    body.admin .hp-admin-nav__primary,
    body.admin .hp-admin-nav__secondary {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-left: 12px;
        padding-right: 12px;
    }

    body.admin .hp-admin-nav__mobile {
        display: none;
    }

    body.admin .hp-admin-page-heading,
    body.admin .hp-admin-page-heading--actions,
    body.admin .hp-dashboard-widget__header {
        align-items: flex-start;
        display: grid;
        gap: 12px;
    }

    body.admin .hp-admin-page-heading h1 {
        font-size: 23px;
        overflow-wrap: anywhere;
    }

    body.admin .hp-admin-page-heading--actions .btn,
    body.admin .hp-dashboard-widget__header .btn {
        justify-content: center;
        width: 100%;
    }

    body.admin .hp-admin-workspace-grid,
    body.admin .hp-admin-queue-grid,
    body.admin .hp-admin-stat-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    body.admin .hp-admin-workspace-card,
    body.admin .hp-admin-queue,
    body.admin .hp-admin-stat {
        min-height: 0;
        padding: 14px;
    }

    body.admin .hp-dashboard-widget__metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.admin .row > [class*="col-md-"],
    body.admin .row > [class*="col-sm-"] {
        padding-left: 8px;
        padding-right: 8px;
    }

    body.admin .panel_s .panel-body {
        max-width: 100%;
    }

    body.admin .panel_s .panel-body > form .row > [class*="col-"] {
        float: none;
        width: 100%;
    }

    body.admin .panel_s .panel-body > form .btn-primary,
    body.admin .panel_s .panel-body > form button[type="submit"] {
        min-height: 44px;
    }

    body.admin .modal-dialog {
        margin: 10px;
        width: auto;
    }

    body.admin .modal-content {
        border-radius: 10px;
    }

    body.admin .table td .btn-group,
    body.admin .table td .tw-flex,
    body.admin .table td .row-options {
        align-items: center;
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
    }

    body.admin .pagination {
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
    }

    body.admin .pagination > li > a,
    body.admin .pagination > li > span {
        border-radius: 6px;
        margin: 0;
        min-height: 40px;
        min-width: 40px;
    }

    .hp-pro-auth-header nav a,
    .hp-pro-form-row a,
    .hp-pro-register-prompt a {
        align-items: center;
        display: inline-flex;
        min-height: 44px;
    }

    .hp-pro-auth-header {
        min-height: 64px;
        padding-bottom: 10px;
        padding-top: 10px;
    }

    .hp-pro-auth-header .hp-pro-brand {
        flex: 0 0 auto;
        min-height: 44px;
    }

    .hp-pro-auth-header nav {
        gap: 4px 10px;
        justify-content: flex-end;
        min-width: 0;
    }

    .hp-pro-auth-header nav a {
        font-size: 12px;
        padding: 4px 2px;
        white-space: nowrap;
    }

    .hp-community-sample-table {
        max-width: 100%;
        overscroll-behavior-inline: contain;
        scrollbar-color: rgba(255, 255, 255, .55) transparent;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch;
    }

    .hp-community-sample-table::after {
        color: rgba(255, 255, 255, .85);
        content: "\2194";
        display: block;
        font-size: 18px;
        padding: 4px 10px 7px;
        text-align: right;
    }
}

@media (max-width: 600px) {
    body.admin .hp-admin-nav {
        background: #f7fafc;
        border-bottom: 1px solid #d8e3ec;
        padding: 12px;
    }

    body.admin .hp-admin-finder {
        margin: -12px -12px 12px;
        padding: 12px;
    }

    body.admin .hp-admin-finder__field {
        width: 100%;
    }

    body.admin .hp-admin-finder__field kbd,
    body.admin .hp-admin-finder__hint small {
        display: none;
    }

    body.admin .hp-admin-finder__popover {
        top: 66px;
        left: 12px;
        width: calc(100% - 24px);
    }

    body.admin .hp-admin-finder__results {
        max-height: min(58vh, 430px);
    }

    body.admin .hp-admin-nav__primary,
    body.admin .hp-admin-nav__secondary {
        display: none;
    }

    body.admin .hp-admin-nav__mobile {
        display: grid;
        gap: 10px;
    }

    body.admin .hp-admin-nav__mobile label {
        display: grid;
        gap: 5px;
        margin: 0;
        min-width: 0;
    }

    body.admin .hp-admin-nav__mobile label > span {
        color: #526070;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0;
        line-height: 1.2;
        text-transform: uppercase;
    }

    body.admin .hp-admin-nav__mobile select {
        appearance: auto;
        background: #fff;
        border: 1px solid #b9cad8;
        border-radius: 6px;
        color: #17384e;
        display: block;
        font-size: 15px;
        font-weight: 650;
        height: 44px;
        line-height: 1.2;
        max-width: 100%;
        padding: 0 12px;
        text-overflow: ellipsis;
        width: 100%;
    }

    body.admin .hp-admin-nav__mobile select:focus {
        border-color: #0f8a83;
        box-shadow: 0 0 0 3px rgba(15, 138, 131, .14);
        outline: 0;
    }
}

@media (min-width: 641px) and (max-width: 768px) {
    body.hp-home-body .healthcare-home-nav .container {
        align-items: center;
        display: grid;
        gap: 16px;
        grid-template-columns: auto minmax(0, 1fr);
        min-height: 72px;
        padding-bottom: 0;
        padding-top: 0;
        width: calc(100% - 32px);
    }

    body.hp-home-body .healthcare-home-brand {
        grid-column: 1;
        grid-row: 1;
        width: 154px;
    }

    body.hp-home-body .healthcare-home-nav-links {
        align-items: center;
        display: flex;
        flex-wrap: nowrap;
        gap: 8px;
        justify-content: flex-end;
        grid-column: 2;
        grid-row: 1;
        overflow-x: auto;
        padding-bottom: 0;
        width: 100%;
    }

    body.hp-home-body .healthcare-home-nav-links > a:not(.btn) {
        flex: 0 0 auto;
        white-space: nowrap;
    }
}

@media (max-width: 420px) {
    body.hp-home-body .healthcare-home-hero h1,
    body.hp-home-body .healthcare-mobile-hero h1 {
        font-size: 32px;
        line-height: 1.08;
    }

    body.healthcare-search-body .healthcare-search-brand .hp-brand-logo,
    .hp-clinician-mobile-brand .hp-brand-logo {
        max-width: 138px;
    }

    .hp-clinician-mobile-nav {
        left: 6px;
        right: 6px;
    }

    .hp-clinician-mobile-nav a {
        font-size: 10px;
        min-height: 52px;
        padding-left: 2px;
        padding-right: 2px;
    }

    body.admin .hp-dashboard-widget__metrics {
        grid-template-columns: minmax(0, 1fr);
    }

    body.admin .hp-dashboard-widget__metrics a {
        border-bottom: 1px solid #e6edf4;
        border-right: 0;
        padding: 10px 0;
    }
}

@media (max-width: 620px) {
    .hp-pro-product__footer {
        box-sizing: border-box;
        margin-left: 16px;
        margin-right: 16px;
        max-width: calc(100% - 32px);
        width: auto;
    }

    .hp-pro-product__footer > * {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .hp-professional-contact__intro {
        padding-left: 2px;
        padding-right: 2px;
        padding-top: 12px;
    }

    .hp-professional-contact__intro > div {
        margin-bottom: 14px;
        margin-top: 14px;
    }
}

/* Autocomplete menus must escape the compact search-bar frame. */
body.hp-home-body .healthcare-home-shell .healthcare-home-search,
body.healthcare-search-body .healthcare-search-top-form,
body.healthcare-search-body .healthcare-search-top-form label {
    overflow: visible;
}

body.hp-home-body .healthcare-home-shell .healthcare-home-search,
body.healthcare-search-body .healthcare-search-top-form {
    position: relative;
    z-index: 70;
}

.healthcare-autocomplete-host {
    background: #fff;
    position: relative;
    z-index: 71;
}

.healthcare-home-search-field:first-of-type {
    border-radius: 8px 0 0 8px;
}

body.healthcare-search-body .healthcare-search-top-form label:first-of-type {
    border-radius: 999px 0 0 999px;
}

/* Keep homepage and results search controls in one public design system. */
@media (min-width: 1024px) {
    body.hp-home-body .healthcare-home-shell .healthcare-home-search.healthcare-public-search-form,
    body.healthcare-search-body .healthcare-search-top-form.healthcare-public-search-form {
        align-items: stretch;
        background: #fff;
        border: 1px solid #d4e2ed;
        border-radius: 12px;
        box-shadow: 0 12px 30px rgba(7, 43, 70, .16);
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, .9fr) 132px;
        min-height: 62px;
        overflow: visible;
    }

    body.hp-home-body .healthcare-home-shell .healthcare-home-search.healthcare-public-search-form > .healthcare-home-search-field.healthcare-public-search-field,
    body.healthcare-search-body .healthcare-search-top-form.healthcare-public-search-form > .healthcare-public-search-field,
    body.healthcare-search-body .healthcare-search-top-form.healthcare-public-search-form > .healthcare-public-search-field:first-of-type {
        background: #fff;
        border-bottom: 0;
        border-radius: 0;
        border-right: 1px solid #dce7ef;
        box-sizing: border-box;
        margin: 0;
        min-height: 62px;
        padding-left: 18px;
        padding-right: 18px;
        transition: background-color .16s ease, box-shadow .16s ease;
    }

    body.hp-home-body .healthcare-home-shell .healthcare-home-search.healthcare-public-search-form > .healthcare-home-search-field.healthcare-public-search-field:first-of-type,
    body.healthcare-search-body .healthcare-search-top-form.healthcare-public-search-form > .healthcare-public-search-field:first-of-type {
        border-radius: 11px 0 0 11px;
    }

    body.hp-home-body .healthcare-home-shell .healthcare-home-search.healthcare-public-search-form > .healthcare-public-search-field:focus-within,
    body.healthcare-search-body .healthcare-search-top-form.healthcare-public-search-form > .healthcare-public-search-field:focus-within {
        background: #f8fbfe;
        box-shadow: inset 0 0 0 2px rgba(11, 111, 184, .24);
    }

    body.hp-home-body .healthcare-home-shell .healthcare-home-search.healthcare-public-search-form > .healthcare-public-search-field > i,
    body.healthcare-search-body .healthcare-search-top-form.healthcare-public-search-form > .healthcare-public-search-field > i {
        color: #0b6fb8;
        flex: 0 0 18px;
        font-size: 16px;
        margin: 0;
        text-align: center;
        width: 18px;
    }

    body.hp-home-body .healthcare-home-shell .healthcare-home-search.healthcare-public-search-form > .healthcare-public-search-field > input,
    body.healthcare-search-body .healthcare-search-top-form.healthcare-public-search-form > .healthcare-public-search-field > input {
        background: transparent;
        border: 0;
        color: #102a43;
        font-size: 15px;
        font-weight: 650;
        line-height: 1.25;
        min-width: 0;
        outline: 0;
        width: 100%;
    }

    body.hp-home-body .healthcare-home-shell .healthcare-home-search.healthcare-public-search-form > .healthcare-public-search-field > input::placeholder,
    body.healthcare-search-body .healthcare-search-top-form.healthcare-public-search-form > .healthcare-public-search-field > input::placeholder {
        color: #8295a6;
        font-weight: 600;
        opacity: 1;
    }

    body.hp-home-body .healthcare-home-shell .healthcare-home-search.healthcare-public-search-form > .healthcare-public-search-submit,
    body.healthcare-search-body .healthcare-search-top-form.healthcare-public-search-form > .healthcare-public-search-submit {
        align-items: center;
        align-self: stretch;
        background: #071f36;
        border: 0;
        border-radius: 0 11px 11px 0;
        box-shadow: none;
        color: #fff;
        display: inline-flex;
        font-size: 14px;
        font-weight: 800;
        justify-content: center;
        margin: 0;
        min-height: 62px;
        padding: 0 18px;
        transition: background-color .16s ease;
        width: 100%;
    }

    body.hp-home-body .healthcare-home-shell .healthcare-home-search.healthcare-public-search-form > .healthcare-public-search-submit:hover,
    body.hp-home-body .healthcare-home-shell .healthcare-home-search.healthcare-public-search-form > .healthcare-public-search-submit:focus,
    body.healthcare-search-body .healthcare-search-top-form.healthcare-public-search-form > .healthcare-public-search-submit:hover,
    body.healthcare-search-body .healthcare-search-top-form.healthcare-public-search-form > .healthcare-public-search-submit:focus {
        background: #0d304f;
        color: #fff;
    }
}

@media (max-width: 1023px) {
    .healthcare-home-search-field:first-of-type,
    body.healthcare-search-body .healthcare-search-top-form label:first-of-type {
        border-radius: 8px 8px 0 0;
    }

    .healthcare-home-search .healthcare-autocomplete-menu,
    body.healthcare-search-body .healthcare-search-top-form .healthcare-autocomplete-menu {
        left: -1px;
        right: -1px;
        width: auto;
    }
}
/* Public product shells own their full-width canvas. Perfex otherwise
 * constrains them to Bootstrap's 1170px container while their section gutters
 * are calculated from the viewport, which collapses content on wide screens. */
body.hp-public-site-shell-body,
body.hp-professional-product-body {
    display: block;
    width: 100%;
    min-width: 0;
}

body.hp-public-site-shell-body #wrapper,
body.hp-public-site-shell-body #content,
body.hp-public-site-shell-body #content > .container,
body.hp-public-site-shell-body #content > .container > .row,
body.hp-professional-product-body .hp-pro-product {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin-right: 0;
    margin-left: 0;
}

body.hp-public-site-shell-body #content > .container {
    padding-right: 0;
    padding-left: 0;
}

body.hp-public-site-shell-body #content > .container > .row {
    margin-right: 0;
    margin-left: 0;
}

body.hp-professional-product-body .hp-pro-product__hero {
    grid-template-columns: minmax(420px, 1fr) minmax(420px, .9fr);
}

body.hp-professional-product-body .hp-pro-product__hero-copy,
body.hp-professional-product-body .hp-pro-product__preview,
body.hp-professional-product-body .hp-pro-product__section-heading,
body.hp-professional-product-body .hp-pro-product__steps > li > div {
    min-width: 0;
}

@media (max-width: 1100px) {
    body.hp-professional-product-body .hp-pro-product__hero {
        grid-template-columns: minmax(0, 1fr) minmax(360px, .82fr);
        gap: 40px;
        padding-right: 32px;
        padding-left: 32px;
    }
}

@media (max-width: 900px) {
    body.hp-professional-product-body .hp-pro-product__hero {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 620px) {
    body.hp-professional-product-body .hp-pro-product__hero {
        padding-right: 18px;
        padding-left: 18px;
    }
}

/* Keep the role switch compact on wide phones, then stack the action only
 * when the content column genuinely needs the extra room. */
@media (min-width: 481px) and (max-width: 640px) {
    .hp-unified-role-card {
        align-items: center;
        grid-template-columns: 50px minmax(0, 1fr) auto;
    }

    .hp-unified-role-action {
        grid-column: auto;
        justify-self: end;
    }
}

@media (max-width: 480px) {
    .hp-unified-role-card {
        gap: 12px;
        grid-template-columns: 44px minmax(0, 1fr);
        min-height: 0;
        padding: 16px;
    }

    .hp-unified-role-icon {
        font-size: 18px;
        height: 44px;
        width: 44px;
    }

    .hp-unified-role-content strong {
        font-size: 17px;
    }

    .hp-unified-role-action {
        grid-column: 2;
        justify-self: start;
        margin-top: 2px;
    }
}

/* The notification menu becomes a viewport-safe sheet on compact headers. */
@media (max-width: 767px) {
    body.hp-clinician-body .hp-clinician-notifications-popover {
        left: 12px;
        margin: 0;
        max-height: calc(100dvh - 82px);
        max-width: none;
        min-width: 0;
        position: fixed;
        right: 12px;
        top: 66px;
        width: auto;
    }

    body.hp-clinician-body .hp-clinician-notifications-popover::before {
        display: none;
    }

    body.hp-clinician-body .hp-clinician-notifications-head {
        padding: 14px;
    }

    body.hp-clinician-body .hp-clinician-popover .hp-clinician-notification-item {
        grid-template-columns: 40px minmax(0, 1fr) 12px;
        min-height: 68px;
        padding: 10px 8px;
    }
}

@media (max-width: 767px) {
    .hp-clinician-toolbar-actions .hp-clinic-doctor-filter,
    .hp-clinician-toolbar-actions .hp-clinic-doctor-filter > button {
        width: 100%;
    }

    .hp-clinic-doctor-filter-menu {
        left: 0;
        max-height: min(420px, calc(100dvh - 160px));
        min-width: 0;
        right: 0;
        width: 100%;
    }

    .hp-clinic-week-board {
        min-height: 520px;
        padding: 10px;
    }

    .hp-clinic-week-board-intro {
        align-items: flex-start;
        display: grid;
        gap: 8px;
    }

    .hp-clinic-week-board-intro > p {
        font-size: 12px;
        text-align: left;
    }

    .hp-clinic-kanban {
        grid-auto-columns: minmax(275px, 86vw);
    }

    .hp-clinic-kanban-lane {
        min-height: 440px;
    }
}

/* Registration product pages use the same edge-to-edge canvas as the professional landing page. */
body.hp-registration-product-body {
    display: block;
    min-width: 0;
    width: 100%;
}

body.hp-registration-product-body #wrapper,
body.hp-registration-product-body #content,
body.hp-registration-product-body #content > .container,
body.hp-registration-product-body #content > .container > .row,
body.hp-registration-product-body .hp-registration-product-shell {
    margin-left: 0;
    margin-right: 0;
    max-width: none;
    min-width: 0;
    width: 100%;
}

body.hp-registration-product-body #content > .container,
body.hp-registration-product-body #content > .container > .row > [class*="col-"] {
    padding-left: 0;
    padding-right: 0;
}

body.hp-registration-product-body #content > .container > .row {
    margin-left: 0;
    margin-right: 0;
}
