/* Global viewport guard: keep module workspaces inside visible shell. */
.app-shell,
.main-content,
.main-content > .section,
.main-content .section-content,
.main-content .tab-content {
    min-width: 0;
    box-sizing: border-box;
}

@media (min-width: 1025px) {
    [dir="rtl"] .sidebar.open ~ .app-shell {
        flex: 0 0 calc(100% - var(--sidebar-width, 280px)) !important;
        width: calc(100% - var(--sidebar-width, 280px)) !important;
        max-width: calc(100% - var(--sidebar-width, 280px)) !important;
        margin-right: var(--sidebar-width, 280px) !important;
        margin-left: 0 !important;
    }

    [dir="ltr"] .sidebar.open ~ .app-shell {
        flex: 0 0 calc(100% - var(--sidebar-width, 280px)) !important;
        width: calc(100% - var(--sidebar-width, 280px)) !important;
        max-width: calc(100% - var(--sidebar-width, 280px)) !important;
        margin-left: var(--sidebar-width, 280px) !important;
        margin-right: 0 !important;
    }

    [dir="rtl"] .sidebar:not(.open) ~ .app-shell,
    [dir="ltr"] .sidebar:not(.open) ~ .app-shell {
        flex-basis: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }
}

@media (max-width: 1024px) {
    .app-shell {
        flex-basis: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }

    .main-content {
        padding-inline: clamp(.75rem, 3vw, 1.25rem) !important;
    }
}

.main-content {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

.main-content .ptw-workspace,
.main-content .ptw-registry-workspace,
.main-content .incidents-workspace,
.main-content .iso-workspace,
.main-content .training-workspace,
.main-content .sustainability-workspace,
.main-content .clinic-workspace {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

.main-content .table-responsive,
.main-content .table-wrapper,
.main-content .ptw-table-wrapper,
.main-content .coding-table-wrap {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow-x: auto !important;
    overscroll-behavior-inline: contain;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: #6f9690 #e5efed;
    -webkit-overflow-scrolling: touch;
}

.main-content .table-responsive::-webkit-scrollbar,
.main-content .table-wrapper::-webkit-scrollbar,
.main-content .ptw-table-wrapper::-webkit-scrollbar,
.main-content .coding-table-wrap::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

.main-content .table-responsive::-webkit-scrollbar-track,
.main-content .table-wrapper::-webkit-scrollbar-track,
.main-content .ptw-table-wrapper::-webkit-scrollbar-track,
.main-content .coding-table-wrap::-webkit-scrollbar-track {
    background: #e5efed;
    border-radius: 999px;
}

.main-content .table-responsive::-webkit-scrollbar-thumb,
.main-content .table-wrapper::-webkit-scrollbar-thumb,
.main-content .ptw-table-wrapper::-webkit-scrollbar-thumb,
.main-content .coding-table-wrap::-webkit-scrollbar-thumb {
    background: #6f9690;
    border: 2px solid #e5efed;
    border-radius: 999px;
}

.main-content .table-responsive > table,
.main-content .table-wrapper > table,
.main-content .ptw-table-wrapper > table,
.main-content .coding-table-wrap > table {
    max-width: none !important;
}

[data-theme="dark"] .main-content .table-responsive,
[data-theme="dark"] .main-content .table-wrapper,
[data-theme="dark"] .main-content .ptw-table-wrapper,
[data-theme="dark"] .main-content .coding-table-wrap {
    scrollbar-color: #7aa7a0 #18302e;
}

@media (prefers-reduced-motion: reduce) {
    .app-shell {
        transition: none !important;
    }
}
