/* Shared screen adaptations; print layouts keep their own rules. */
body.ui-contrast .main-content { min-width: 0; }
body.ui-contrast :is(.main-content main, .shop) { overflow-wrap: anywhere; }
body.ui-contrast :is(.main-content, .shop) :is(fieldset, .row > *, .d-flex > div, .pw-fields > *, .g-fields > *, .customer-fields > *, .form-grid > *) { min-width: 0; }
body.ui-contrast :is(.main-content, .shop) :is(img, video, iframe) { max-width: 100%; }
body.ui-contrast :is(.main-content, .shop) :is(input, select, textarea) { max-width: 100%; }
body.ui-contrast .main-content .d-flex.justify-content-between { flex-wrap: wrap; gap: .75rem; }
body.ui-contrast .main-content .badge { white-space: normal; overflow-wrap: anywhere; }
body.ui-contrast .main-content .btn { white-space: normal; overflow-wrap: normal; word-break: normal; hyphens: none; flex-shrink: 0; }
body.ui-contrast .main-content pre { white-space: pre-wrap; overflow-wrap: anywhere; }
body.ui-contrast .main-content .pagination { flex-wrap: wrap; gap: 4px; }
body.ui-contrast .main-content .page-link { min-height: 44px; min-width: 44px; display: grid; place-items: center; }
body.ui-contrast .main-content .table-responsive { max-width: 100%; overscroll-behavior-x: contain; }
body.ui-contrast .main-content .modal-body { overflow-wrap: anywhere; }
body.ui-contrast .main-content .modal-footer { gap: .5rem; }
body.ui-contrast .main-content :is(.pw-head, .customer-hero) > * { min-width: 0; max-width: 100%; }
body.ui-contrast .shop :is(.part-buy, .part-buy form, .actions, .filters, .shop-header nav) { min-width: 0; }
body.ui-contrast .shop .button { white-space: normal; overflow-wrap: normal; word-break: normal; hyphens: none; }

@media (max-width: 1023.98px), (pointer: coarse) {
    body.ui-contrast :is(.main-content .btn, .main-content .nav-link, .main-content summary) { min-height: 44px; }
    body.ui-contrast :is(.main-content .btn, .main-content .btn-close) { min-width: 44px; }
    body.ui-contrast :is(.main-content, .shop) :is(.form-control, .form-select, input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea) { font-size: 16px !important; }
    body.ui-contrast .main-content :is(.form-control, .form-select) { min-height: 44px; }
}
@media (max-width: 767.98px) {
    body.ui-contrast .main-content :is(.container, .container-fluid) { padding-left: 0; padding-right: 0; }
    body.ui-contrast .main-content :is(.card-body.p-5, .card-body.p-4, .settings-card) { padding: 16px !important; }
    body.ui-contrast .settings-page .row > * { width: 100%; }
    body.ui-contrast .settings-page #v-pills-tab { flex-direction: row !important; gap: 8px; margin-bottom: 16px; }
    body.ui-contrast .settings-page #v-pills-tab .nav-link { flex: 1 1 140px; margin: 0; }
    body.ui-contrast .settings-page .input-group { min-width: 0; }
    body.ui-contrast .settings-page .input-group > .form-control { min-width: 80px; }
    body.ui-contrast .settings-page .input-group > .btn { padding-left: 10px !important; padding-right: 10px !important; }
    body.ui-contrast .settings-page .list-group-item > form:first-child { flex: 1; min-width: 0; }
    body.ui-contrast .settings-page .list-group-item > form:last-child { flex-shrink: 0; }
    body.ui-contrast .document-admin-heading { flex-wrap: wrap; gap: 12px; }
    body.ui-contrast .document-pagination { flex-wrap: wrap; }
    /* Opt-in record tables become labelled cards; other tables retain local horizontal scrolling. */
    body.ui-contrast .responsive-records, body.ui-contrast .responsive-records tbody { display: block; width: 100%; }
    body.ui-contrast .responsive-records thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    body.ui-contrast .responsive-records tbody tr { display: block; margin: 12px; padding: 8px; border: 1px solid var(--ui-panel-border); border-radius: 10px; }
    body.ui-contrast .responsive-records tbody td { display: block; width: 100%; max-width: none !important; text-align: left !important; padding: 8px !important; white-space: normal !important; overflow: visible !important; border: 0; overflow-wrap: anywhere; }
    body.ui-contrast .responsive-records td[data-label]::before { content: attr(data-label); display: block; font-weight: 600; font-size: .85rem; color: var(--ui-muted); margin-bottom: 4px; }
}
@media (max-width: 575.98px) {
    body.ui-contrast .main-content .btn, body.ui-contrast .shop .button { font-size: .875rem; padding-inline: .65rem; }
    body.ui-contrast :is(.project-workspace, .gutachten, .customers) dl { grid-template-columns: minmax(0,1fr) !important; gap: 4px; }
    body.ui-contrast :is(.project-workspace, .gutachten, .customers) dd { margin-bottom: 12px; }
    body.ui-contrast .project-workspace .pw-ral { min-width: 0; max-width: 100%; }
    body.ui-contrast .main-content :is(h1, .h1) { font-size: clamp(1.4rem, 6vw, 1.8rem); }
    body.ui-contrast .main-content :is(h2, .h2) { font-size: clamp(1.2rem, 5vw, 1.5rem); }
    body.ui-contrast .main-content .nav-tabs { flex-wrap: wrap; gap: 4px; }
    body.ui-contrast .main-content .modal-footer > .btn { flex: 1 1 100%; margin: 0; }
    body.ui-contrast .production-metrics { gap: 8px; }
    body.ui-contrast .production-metric { padding: 12px; min-width: 0; }
    body.ui-contrast .production-metric strong { font-size: 1.4rem; }
    body.ui-contrast .production-toolbar > div { flex-basis: 100%; min-width: 0; }
    body.ui-contrast .shop .part-buy form { flex-wrap: wrap; }
    body.ui-contrast .shop .part-buy .button { flex-basis: 130px; }
    body.ui-contrast .mobile-cart { flex-wrap: wrap; }
    body.ui-contrast .shop { padding-bottom: 160px; }
    body.ui-contrast .shop-header nav { width: 100%; }
}
@media (max-width: 359.98px) {
    body.ui-contrast .production-metrics { grid-template-columns: minmax(0,1fr); }
}

@media (max-width: 1023.98px) {
    body.sidebar-mobile-open { overflow: hidden; }
}
