/* Shared responsive helpers for layout, forms, cards, and viewer surfaces. */

.summary-card {
    width: 100%;
    max-width: 22rem;
}

@media (min-width: 576px) {
    .summary-card {
        width: auto;
        min-width: 17.5rem;
    }
}

.form-control-max-300 {
    width: 100%;
    max-width: 300px;
}

.form-control-max-320 {
    width: 100%;
    max-width: 320px;
}

.search-input-compact {
    width: min(100%, 220px);
}

.inline-search-row {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    flex-wrap: wrap;
}

.viewer-frame-setup {
    box-sizing: border-box;
    background: #222;
    width: 100%;
    max-width: 1600px;
    height: min(72vh, 800px);
    min-height: 420px;
}

.viewer-frame-standard {
    box-sizing: border-box;
    background: #222;
    width: 100%;
    height: min(68vh, 600px);
    min-height: 360px;
}

.viewer-frame-ohif {
    width: 100%;
    height: 100%;
    border: none;
    padding: 0;
    min-height: min(70vh, 700px);
}

.viewer-preupload-shell {
    position: relative;
    min-height: clamp(320px, 55vh, 450px);
}

.viewer-preupload-root {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.modal-wide-md {
    max-width: min(700px, 96vw);
}

.modal-wide-xl {
    max-width: min(1200px, 96vw);
}

.progress-compact {
    height: 8px;
}

.progress-compact-sm {
    height: 10px;
}

.flex-max-320 {
    flex: 1;
    max-width: 320px;
}

@media (max-width: 575.98px) {
    .flex-max-320 {
        max-width: 100%;
    }
}
