/* Shared viewport contract. Keep table overflow inside each grid, not on the whole page. */
.app-page-content { width: 100%; max-width: 1920px; min-width: 0; box-sizing: border-box; }
.rz-body, .app-page-content > *, .rz-dialog-content > *, .rz-column, .rz-card { min-width: 0; }
.rz-dialog-wrapper { width: 100%; height: 100%; max-height: 100dvh; margin: 0; }
.rz-dialog {
    max-width: calc(100vw - 2rem);
    max-height: calc(100vh - 2rem);
    max-height: calc(100dvh - 2rem);
}
/* Content dialogs without explicit options use a roomy form size. Confirmation stays compact. */
.rz-dialog:not(.rz-dialog-confirm):not(.rz-dialog-alert):not(:has(.rz-dialog-confirm)):not(:has(.rz-dialog-alert)) {
    width: min(960px, calc(100vw - 2rem));
}
/* A grid/list merits the available tablet/desktop space, including default-size callers. */
.rz-dialog:has(.rz-data-grid), .rz-dialog:has(.rz-datatable), .rz-dialog:has(.rz-datalist) {
    width: min(1600px, calc(100vw - 2rem)) !important;
}
.rz-dialog-content { min-height: 0; overflow: auto; overscroll-behavior: contain; }
.rz-dialog-titlebar { flex: 0 0 auto; }
.rz-dialog-title { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.rz-data-grid, .rz-datatable { width: 100%; max-width: 100%; min-width: 0; }
.rz-data-grid-data, .rz-datatable-scrollable-table-wrapper {
    min-width: 0; max-width: 100%; overflow: auto; -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
}
/* ColumnWidth sets the table's intrinsic width; do not force it to shrink to its container. */
.rz-data-grid-data > .rz-grid-table { min-width: 100%; }
.rz-grid-table .rz-cell-data { white-space: normal; overflow-wrap: anywhere; line-height: 1.45; }
.rz-paginator { flex-wrap: wrap; row-gap: .5rem; }
.rz-paginator-summary { white-space: normal; }
.rz-form-field, .rz-html-editor { max-width: 100%; min-width: 0; }
.rz-dialog-content .rz-stack { max-width: 100%; min-width: 0; }
.rz-dialog-content .rz-stack.rz-flex-row { flex-wrap: wrap; }
input[type="file"] { max-width: 100%; }
.app-header-actions { min-width: 0; gap: .5rem; }
.app-header-actions .rz-profile-menu { min-width: 0; max-width: 12rem; }
.app-header-actions .rz-profile-menu .rz-navigation-item-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rz-dialog-content form, .tenant-settings-editor { min-width: 0; max-width: 100%; }
.tenant-settings-editor { padding-right: .25rem; }
.rz-dialog-content .rz-form-field, .rz-dialog-content textarea { width: 100%; }
.rz-selectbar { max-width: 100%; flex-wrap: wrap; }
.rz-selectbar .rz-button-text { white-space: normal; }
.feature-request-rich, .employee-project-card, .workflow-name-cell, .project-detail strong { overflow-wrap: anywhere; min-width: 0; }
.feature-request-rich img, .employee-planning-dialog img:not(.rz-gravatar), .feature-request-rich video { max-width: 100%; height: auto; }
.feature-request-rich table { display: block; max-width: 100%; overflow-x: auto; }
.feature-request-rich pre { max-width: 100%; overflow: auto; }
.rz-popup { max-width: calc(100vw - 1rem); box-sizing: border-box; }
.save-bar { flex-wrap: wrap; gap: .5rem; }
.upload-preview-content { max-height: calc(100dvh - 5rem); }
.planning-picker-card .rz-dropdown { max-width: 100%; }
.overview-dialog, .employee-planning-dialog, .feature-request-dialog, .planning-overlay-card {
    box-sizing: border-box; max-width: calc(100vw - 2rem); min-width: 0;
    max-height: calc(100vh - 2rem); max-height: calc(100dvh - 2rem); overflow: auto;
}
.employee-planning-dialog:has(.rz-datatable), .overview-dialog:has(.rz-datatable),
.planning-overlay-card:has(.rz-datatable) { width: min(1600px, calc(100vw - 2rem)); }
.planning-grid-wrap { max-width: 100%; min-width: 0; overflow: auto; -webkit-overflow-scrolling: touch; }
.planning-grid-header, .planning-grid-row { min-width: 1160px; }
.project-card-actions { flex-wrap: wrap; }
.project-card-actions .rz-button-text { display: inline; }
.project-card-actions .rz-button { flex: 0 1 auto; }
@media (max-width: 767px) {
    .app-page-content { padding: .75rem !important; }
    .rz-dialog { max-width: calc(100vw - 1rem); max-height: calc(100dvh - 1rem); margin: 0; }
    .rz-dialog:not(.rz-dialog-confirm):not(.rz-dialog-alert):not(:has(.rz-dialog-confirm)):not(:has(.rz-dialog-alert)),
    .rz-dialog:has(.rz-datatable), .rz-dialog:has(.rz-datalist) { width: calc(100vw - 1rem) !important; }
    .rz-dialog-content { padding: .75rem !important; }
    .overview-dialog, .employee-planning-dialog, .feature-request-dialog, .planning-overlay-card {
        width: calc(100vw - 1rem); max-width: calc(100vw - 1rem); max-height: calc(100dvh - 1rem);
        padding: .75rem;
    }
    .overview-overlay, .employee-planning-overlay, .feature-request-overlay, .planning-overlay { padding: .5rem; }
    .rz-body .rz-stack.rz-flex-row { flex-wrap: wrap; }
    .rz-button { min-height: 44px; }
    .project-card-actions .rz-button { flex: 1 1 auto; min-width: 7rem; padding-inline: .5rem; }
    .project-card-actions .rz-button-text { display: inline; }
    /* Preserve the workflow screen's existing stacked-card representation. */
    .workflow-index-grid .rz-grid-table { width: 100% !important; min-width: 0; }
    .app-header-actions { padding-block: .25rem; }
    .app-header-actions .app-activity-label { display: none; }
    .app-header-actions .rz-button, .app-header-actions .rz-profile-menu { flex-shrink: 0; }
    .planning-picker-card .rz-dropdown { flex: 1 1 10rem; }
    .save-bar .rz-button { flex: 1 1 auto; }
    .rz-notification { max-width: calc(100vw - 1rem); inset-inline-end: .5rem; }
    .rz-notification-item-wrapper { width: min(320px, calc(100vw - 1rem)); min-width: 0; overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
    .rz-dialog, .rz-dialog-wrapper, .rz-sidebar, .rz-notification-item-wrapper { animation: none !important; transition: none !important; }
}