@media screen {
    .sv-mobile-search-launcher[hidden],
    .sv-mobile-search-dialog:not([open]) {
        display: none !important;
    }

    html.sv-mobile-search-open,
    body.sv-mobile-search-open {
        overflow: hidden !important;
        overscroll-behavior: none;
    }

    body.sv-mobile-search-enabled .sv-start-workspace {
        grid-template-columns: minmax(0, 1fr);
    }

    .sv-mobile-search-launcher {
        display: flex;
        align-items: center;
        gap: 12px;
        width: 100%;
        min-width: 0;
        min-height: 78px;
        margin: 0;
        padding: 14px;
        border: 1px solid #b9dce0;
        border-radius: 15px;
        color: var(--sv-primary-dark, #0d7780);
        background: #f2fafb;
        text-align: left;
        box-shadow: none;
    }

    .sv-mobile-search-icon {
        display: grid;
        place-items: center;
        flex: 0 0 42px;
        height: 42px;
        border-radius: 12px;
        background: var(--sv-primary-dark, #0d7780);
        color: #fff;
        font-size: 1.7rem;
    }

    .sv-mobile-search-label {
        display: grid;
        min-width: 0;
        gap: 4px;
    }

    .sv-mobile-search-label strong {
        font-size: 1rem;
        font-weight: 700;
        line-height: 1.3;
    }

    .sv-mobile-search-label small {
        overflow: hidden;
        color: #52677a;
        font-size: .84rem;
        font-weight: 400;
        line-height: 1.4;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .sv-mobile-search-arrow {
        margin-left: auto;
        font-size: 1.3rem;
    }

    .sv-mobile-search-dialog[open] {
        position: fixed;
        inset: var(--sv-search-top, 0px) 0 auto;
        display: flex;
        flex-direction: column;
        width: 100%;
        max-width: none;
        height: var(--sv-search-height, 100dvh);
        max-height: none;
        margin: 0;
        padding: 0;
        overflow: hidden;
        border: 0;
        border-radius: 0;
        color: #193347;
        background: #f8fafb;
        box-shadow: none;
    }

    .sv-mobile-search-dialog::backdrop {
        background: rgba(15, 23, 42, .35);
    }

    .sv-mobile-search-head {
        display: flex;
        flex: 0 0 auto;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: calc(10px + env(safe-area-inset-top)) 16px 10px;
        border-bottom: 1px solid #dce5ea;
        background: #fff;
    }

    .sv-mobile-search-head h2 {
        margin: 0 !important;
        color: #193347 !important;
        font: 700 1.2rem/1.3 Arial, Helvetica, sans-serif;
    }

    .sv-mobile-search-head .sv-mobile-search-close {
        min-width: 70px;
        min-height: 44px;
        margin: 0;
        padding: 10px 13px;
        border: 1px solid #dce5ea;
        border-radius: 11px;
        background: #fff;
        color: #334155;
        font: 600 .9rem/1.3 Arial, Helvetica, sans-serif;
        box-shadow: none;
    }

    .sv-mobile-search-content {
        flex: 1 1 auto;
        align-self: center;
        width: 100%;
        max-width: 1080px;
        min-height: 0;
        padding: 14px 16px calc(12px + env(safe-area-inset-bottom));
        overflow: hidden;
    }

    .sv-mobile-search-dialog .sv-start-search {
        display: flex;
        flex-direction: column;
        width: 100%;
        height: 100%;
        min-height: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .sv-mobile-search-dialog .sv-search-title-row {
        display: none;
    }

    .sv-mobile-search-dialog .sv-search-field,
    .sv-mobile-search-dialog .sv-search-filters,
    .sv-mobile-search-dialog .sv-search-status {
        flex: 0 0 auto;
    }

    .sv-mobile-search-dialog .sv-search-field .form-control {
        width: 100%;
        min-height: 52px;
        margin: 0;
        padding: 11px 52px 11px 47px;
        border: 1px solid #a9c3ce;
        border-radius: 12px;
        font-size: 16px !important;
        font-weight: 400;
        line-height: 1.4;
    }

    .sv-mobile-search-dialog input[type="search"]::-webkit-search-cancel-button {
        -webkit-appearance: none;
        appearance: none;
    }

    .sv-mobile-search-dialog .sv-clear-search {
        width: 44px;
        height: 44px;
        min-height: 44px;
        margin: 0;
        right: 4px;
    }

    .sv-mobile-search-dialog .sv-search-filters {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 4px;
        width: 100%;
        margin: 10px 0 0;
        padding: 4px;
        border-radius: 12px;
    }

    .sv-mobile-search-dialog .sv-search-filters button {
        min-width: 0;
        min-height: 44px;
        margin: 0;
        padding: 8px;
        border-radius: 9px;
        font-size: .875rem;
        font-weight: 600;
        line-height: 1.2;
    }

    .sv-mobile-search-dialog .sv-search-status {
        margin: 9px 0 0;
        font-size: .85rem;
        font-weight: 400;
        line-height: 1.4;
    }

    .sv-mobile-search-dialog .sv-patient-results {
        position: relative;
        flex: 1 1 auto;
        grid-template-columns: minmax(0, 1fr);
        grid-auto-rows: max-content;
        align-content: start;
        gap: 10px;
        min-height: 0;
        max-height: none;
        margin: 10px 0 0;
        padding: 3px 3px 14px;
        overflow: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    .sv-mobile-search-dialog .sv-patient-results[hidden] {
        display: none !important;
    }

    .sv-mobile-search-dialog .sv-patient-card {
        min-width: 0;
        border-radius: 13px;
        box-shadow: none;
    }

    .sv-mobile-search-dialog .sv-patient-main {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 10px;
        padding: 14px;
    }

    .sv-mobile-search-dialog .sv-patient-title-row h3 {
        font-size: 1.05rem;
        font-weight: 700;
        line-height: 1.4;
        overflow-wrap: anywhere;
    }

    .sv-mobile-search-dialog .sv-patient-title-row {
        gap: 6px;
    }

    .sv-mobile-search-dialog .sv-patient-code {
        gap: 4px;
        padding: 5px 7px;
        border-radius: 8px;
        font-size: .75rem;
        font-weight: 600;
        line-height: 1.4;
    }

    .sv-mobile-search-dialog .sv-patient-code strong {
        font-size: .75rem;
        letter-spacing: 0;
        text-transform: none;
    }

    .sv-mobile-search-dialog .sv-patient-code em {
        padding: 0;
        border-radius: 0;
        background: transparent;
        font-weight: 600;
    }

    .sv-mobile-search-dialog .sv-patient-badges {
        gap: 5px;
        margin-top: 7px;
    }

    /* The same care setting already appears beside the patient code. */
    .sv-mobile-search-dialog .sv-patient-badges > .sv-tipo-badge {
        display: none;
    }

    .sv-mobile-search-dialog .sv-open-patient {
        min-width: 64px;
        min-height: 44px;
        padding: 10px;
        border-radius: 10px;
        font-size: .875rem;
        font-weight: 600;
    }

    .sv-mobile-search-dialog .sv-patient-details {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        padding: 0 14px 14px;
    }

    .sv-mobile-search-dialog .sv-patient-data {
        min-width: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        overflow-wrap: anywhere;
    }

    .sv-mobile-search-dialog .sv-patient-data span {
        margin-bottom: 2px;
        font-size: .75rem;
        font-weight: 600;
        letter-spacing: 0;
        text-transform: none;
    }

    .sv-mobile-search-dialog .sv-patient-data strong,
    .sv-mobile-search-dialog .sv-patient-data a {
        font-size: .875rem;
        font-weight: 400;
        line-height: 1.45;
    }

    .sv-mobile-search-dialog .sv-patient-data a {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
    }

    .sv-mobile-search-dialog.is-short .sv-mobile-search-head {
        padding-top: 6px;
        padding-bottom: 6px;
    }

    .sv-mobile-search-dialog.is-short .sv-mobile-search-content {
        padding-top: 8px;
        padding-bottom: 8px;
    }

    .sv-mobile-search-dialog.is-short .sv-search-field .form-control {
        min-height: 46px;
        padding-top: 8px;
        padding-bottom: 8px;
    }

    .sv-mobile-search-dialog.is-short .sv-search-filters {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        margin-top: 6px;
        padding: 2px;
        gap: 2px;
    }

    .sv-mobile-search-dialog.is-short .sv-search-filters button {
        min-height: 44px;
        padding: 5px 3px;
        font-size: .75rem;
        white-space: normal;
    }

    .sv-mobile-search-dialog.is-short .sv-search-status,
    .sv-mobile-search-dialog.is-short .sv-patient-results {
        margin-top: 6px;
    }
}

@media screen and (min-width: 600px) {
    .sv-mobile-search-dialog .sv-search-filters {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .sv-mobile-search-content {
        padding-right: 24px;
        padding-left: 24px;
    }
}

@media screen and (min-width: 821px) {
    body.sv-mobile-search-enabled .sv-fast-actions-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media screen and (max-width: 1024px), screen and (max-width: 1366px) and (pointer: coarse) {
    .sv-refined :is(.sv-floating-panel, .sv-clinical-quick-panel):has(.sv-search-field) {
        inset: 8px;
        width: auto;
        max-height: calc(100dvh - 16px);
        padding: 14px;
        overflow: auto;
        overscroll-behavior: contain;
    }

    .sv-refined :is(.sv-floating-panel, .sv-clinical-quick-panel):has(.sv-search-field) > :is(.sv-floating-panel-head, .sv-clinical-quick-panel-head) {
        position: sticky;
        top: -14px;
        z-index: 4;
        margin: -14px -14px 14px;
        padding: 12px 14px;
        border-bottom: 1px solid #dce5ea;
        background: #fff;
    }

    .sv-refined :is(.sv-floating-panel, .sv-clinical-quick-panel) .sv-search-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .sv-refined :is(.sv-floating-panel, .sv-clinical-quick-panel) .sv-search-filters {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        width: 100%;
        gap: 4px;
        padding: 4px;
        border-radius: 12px;
    }

    .sv-refined :is(.sv-floating-panel, .sv-clinical-quick-panel) .sv-search-filters button {
        min-width: 0;
        min-height: 44px;
        margin: 0;
        padding: 8px 5px;
        white-space: normal;
        font-size: .8125rem;
        line-height: 1.3;
    }

    .sv-refined :is(.sv-floating-panel, .sv-clinical-quick-panel) .sv-search-field input {
        min-height: 50px;
        font-size: 16px !important;
    }

    .sv-refined :is(.sv-floating-panel, .sv-clinical-quick-panel) .sv-patient-results {
        max-height: none !important;
        overflow: visible !important;
    }

    .sv-refined :is(.sv-floating-panel, .sv-clinical-quick-panel) .sv-open-patient {
        min-height: 44px;
    }
}

@media print {
    .sv-mobile-search-launcher,
    .sv-mobile-search-dialog {
        display: none !important;
    }
}
