/* All data tables share a compact, legible presentation, including AJAX fragments. */
.ofes-app .ofes-person-name { text-transform: uppercase; }
.ofes-app :is(input,textarea).ofes-person-name { text-transform: none; }
.ofes-app .ofes-table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: #b8c3d1 #f4f6f8; border-radius: var(--ofes-radius); }
.ofes-app table.ofes-data-table { width: 100%; border-spacing: 0; border-collapse: separate; background: #fff; font-size: 13px; line-height: 1.5; border-color: var(--ofes-border); }
.ofes-app table.ofes-data-table :is(th,td) { padding: 12px 16px; vertical-align: middle; border-bottom: 1px solid #e6ebf0; }
.ofes-app table.ofes-data-table thead th { background: #f3f6f9; color: #48586c; font-size: 11px; font-weight: 650; letter-spacing: .045em; text-transform: uppercase; line-height: 1.5; }
.ofes-app table.ofes-data-table tbody tr { transition: background-color var(--ofes-duration); }
.ofes-app table.ofes-data-table tbody tr:hover { background-color: #f6f9fc; }
.ofes-app table.ofes-data-table tbody tr:focus-within { background-color: #eef4fc; }
.ofes-app table.ofes-data-table tbody tr:last-child td { border-bottom: 0; }
.ofes-app table.ofes-data-table tfoot :is(th,td) { background: #f5f7fa; border-top: 1px solid var(--ofes-border); font-weight: 650; }
.ofes-app table.ofes-data-table .ofes-name-cell { min-width: 12rem; max-width: 24rem; white-space: normal; overflow-wrap: anywhere; }
.ofes-app .ofes-data-table .ofes-person-name { font-weight: 600; letter-spacing: .01em; }
.ofes-app .ofes-data-table .ofes-person-name :is(.sec-sub,small,.text-xs) { text-transform: none; letter-spacing: normal; }
.ofes-app table.ofes-data-table .ofes-id-cell { font-variant-numeric: tabular-nums; white-space: nowrap; }
.ofes-app table.ofes-data-table .ofes-number-cell { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ofes-app table.ofes-data-table .ofes-actions-cell { width: 1%; white-space: nowrap; text-align: right; }
.ofes-app .ofes-actions-cell :is(.ofes-action-group,.sec-row-actions) { justify-content: flex-end; flex-wrap: nowrap; }
.ofes-app .ofes-data-table :is(.sec-sub,.text-xs) { line-height: 1.5; }
.ofes-app .ofes-data-table .ofes-table-message { padding: 28px 20px; text-align: center; color: var(--ofes-muted); font-size: 13px; white-space: normal; }
.ofes-app .ofes-data-table :is(button,a).inline-flex { min-height: 34px; border-radius: 6px; }
.ofes-app .ofes-data-table :is(.badge,.ofes-badge,.sec-badge) { font-size: 11px; line-height: 1.5; padding: 3px 8px; border-radius: 6px; white-space: nowrap; }
@media (max-width: 900px) {
    .ofes-app .ofes-table-scroll { overflow-x: visible; border-radius: 0; }
    .ofes-app table.ofes-responsive-table { display: block; width: 100% !important; min-width: 0 !important; max-width: 100% !important; border: 0; background: transparent; }
    .ofes-app table.ofes-responsive-table caption { display: block; width: 100%; margin-bottom: 8px; text-align: left; }
    .ofes-app table.ofes-responsive-table thead { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
    .ofes-app table.ofes-responsive-table tbody { display: grid; width: 100%; gap: 12px; }
    .ofes-app table.ofes-responsive-table tbody tr { display: block; width: 100%; min-width: 0; overflow: hidden; border: 1px solid var(--ofes-border); border-radius: var(--ofes-radius); background: #fff; box-shadow: 0 2px 8px rgb(23 35 52 / 6%); }
    .ofes-app table.ofes-responsive-table tbody tr:hover,
    .ofes-app table.ofes-responsive-table tbody tr:focus-within { background: #fff; }
    .ofes-app table.ofes-responsive-table tbody tr[hidden],
    .ofes-app table.ofes-responsive-table tbody tr.tw-filter-hidden { display: none !important; }
    .ofes-app table.ofes-responsive-table tbody td {
        display: grid;
        grid-template-columns: minmax(7.25rem, 36%) minmax(0, 1fr);
        align-items: start;
        gap: 8px 12px;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        padding: 10px 12px !important;
        border: 0;
        border-bottom: 1px solid #e6ebf0;
        color: var(--ofes-text);
        text-align: left !important;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }
    .ofes-app table.ofes-responsive-table tbody td:last-child { border-bottom: 0; }
    .ofes-app table.ofes-responsive-table tbody td::before { content: attr(data-ofes-label); min-width: 0; color: var(--ofes-muted); font-size: 10px; font-weight: 700; line-height: 1.45; letter-spacing: .045em; text-transform: uppercase; overflow-wrap: anywhere; }
    .ofes-app table.ofes-responsive-table tbody td[data-ofes-label=""] { display: block; }
    .ofes-app table.ofes-responsive-table tbody td[data-ofes-label=""]::before { content: none; }
    .ofes-app table.ofes-responsive-table tbody td.ofes-table-message { display: block; padding: 24px 16px !important; text-align: center !important; }
    .ofes-app table.ofes-responsive-table tbody td > * { min-width: 0; max-width: 100%; }
    .ofes-app table.ofes-responsive-table tbody td :is(img,svg,canvas,video) { max-width: 100%; height: auto; }
    .ofes-app table.ofes-responsive-table tbody td :is(pre,code) { max-width: 100%; white-space: pre-wrap; overflow-wrap: anywhere; }
    .ofes-app table.ofes-responsive-table tbody td > form { min-width: 0 !important; max-width: 100%; flex-wrap: wrap !important; }
    .ofes-app table.ofes-responsive-table tbody td > form > :is(input,select,textarea,button) { min-width: 0; max-width: 100%; flex: 1 1 10rem; }
    .ofes-app table.ofes-responsive-table .ofes-name-cell { min-width: 0; max-width: 100%; }
    .ofes-app table.ofes-responsive-table .ofes-actions-cell { width: 100%; }
    .ofes-app table.ofes-responsive-table .ofes-actions-cell :is(.ofes-action-group,.sec-row-actions) { justify-content: flex-start; flex-wrap: wrap; }
    .ofes-app table.ofes-responsive-table .ofes-actions-cell :is(button,a) { display: inline-flex; align-items: center; justify-content: center; min-width: var(--ofes-touch-target); min-height: var(--ofes-touch-target); }
    .ofes-app table.ofes-responsive-table tbody td > :is(.badge,.ofes-badge,.sec-badge,.mp-badge,.dio-chip,.wr-badge) { width: max-content; max-width: 100%; justify-self: start; }
    .ofes-app table.ofes-responsive-table :is(button,a).inline-flex { min-height: var(--ofes-touch-target); white-space: normal; }
    .ofes-app table.ofes-responsive-table tfoot { display: block; width: 100%; margin-top: 12px; }
    .ofes-app table.ofes-responsive-table tfoot tr { display: grid; width: 100%; gap: 6px; padding: 12px; border: 1px solid var(--ofes-border); border-radius: var(--ofes-radius); background: #f5f7fa; }
    .ofes-app table.ofes-responsive-table tfoot :is(th,td) { display: block; width: 100% !important; min-width: 0 !important; padding: 4px 0 !important; border: 0; text-align: left !important; white-space: normal !important; overflow-wrap: anywhere; }
    .ofes-app .ofes-dashboard .ofes-table-wrap { max-height: none; }
}
@media (max-width: 420px) {
    .ofes-app table.ofes-responsive-table tbody td { grid-template-columns: minmax(0, 1fr); gap: 3px; }
}
@media print {
    .ofes-app .ofes-table-scroll { overflow: visible; max-height: none; }
    .ofes-app table.ofes-data-table { min-width: 0 !important; font-size: 10px; }
    .ofes-app table.ofes-data-table :is(th,td) { padding: 6px 8px; }
    .ofes-app table.ofes-data-table thead { display: table-header-group; }
    .ofes-app table.ofes-data-table tr { break-inside: avoid; }
}
