/* LIBAC site-wide responsive hardening — 2026-09-11
   Conservative layout safeguards shared by public, auth and dashboard pages. */

html { max-width: 100%; }

body.libac-ui :where(main, section, article, aside, header, footer, nav, form, fieldset, div) {
    min-inline-size: 0;
}

body.libac-ui :where(img, svg, video, canvas) {
    max-inline-size: 100%;
}

body.libac-ui :where(input, select, textarea, button) {
    max-inline-size: 100%;
    min-inline-size: 0;
}

body.libac-ui :where(h1, h2, h3, h4, h5, h6, p, a, label, td, th, span, strong) {
    overflow-wrap: break-word;
}

body.libac-public,
body.libac-auth {
    overflow-x: clip;
}

body.libac-public .container,
body.libac-auth .container {
    max-inline-size: 100%;
}

body.libac-ui :where(.table-container, .table-responsive, .table-wrapper, .responsive-table) {
    max-inline-size: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

body.libac-ui :where(.modal-content, .dialog-content, [role="dialog"]) {
    max-inline-size: calc(100vw - 24px);
}

body.libac-admin :where(.main-content, .content-wrapper, .dashboard-content, .content-area, .page-content) {
    min-inline-size: 0;
    max-inline-size: 100%;
}

body.libac-admin :where(.data-table, .admin-table) {
    max-inline-size: none;
}

@media (max-width: 992px) {
    body.libac-public .container,
    body.libac-auth .container {
        width: min(100% - 28px, var(--libac-container, 1240px));
    }

    body.libac-ui :where(.toolbar, .filters, .filter-bar, .actions-bar, .form-actions) {
        min-inline-size: 0;
    }
}

@media (max-width: 640px) {
    body.libac-public .container,
    body.libac-auth .container {
        width: min(100% - 20px, var(--libac-container, 1240px));
    }

    body.libac-ui :where(button, .btn, .submit-btn, .btn-save-full) {
        min-block-size: 44px;
    }

    body.libac-ui :where(.modal-content, .dialog-content, [role="dialog"]) {
        max-inline-size: calc(100vw - 16px);
    }

    body.libac-ui :where(input, select, textarea) {
        font-size: 16px;
    }
}

@supports not (overflow: clip) {
    body.libac-public,
    body.libac-auth { overflow-x: hidden; }
}
