/* ---------- Data tables → stacked cards on phones ---------- */
.table-modern { margin: 0; --bs-table-bg: transparent; }
.table-modern thead th { background: var(--em-surface-2); color: #4a5578; font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; border-bottom: 1px solid var(--em-border); padding: .8rem 1rem; white-space: nowrap; }
.table-modern tbody td { padding: .85rem 1rem; vertical-align: middle; border-color: var(--em-border); }
.table-modern tbody tr { transition: background .12s; }
.table-modern tbody tr:hover { background: #fafbff; }
.table-modern .cell-title { font-weight: 700; color: #22305f; }
.table-modern .cell-sub { color: var(--em-muted); font-size: .8125rem; }
.table-modern .actions { white-space: nowrap; text-align: right; }
.person-line + .person-line { margin-top: .45rem; padding-top: .45rem; border-top: 1px dashed var(--em-border); }

@media (max-width: 767.98px) {
    .table-stack thead { display: none; }
    .table-stack, .table-stack tbody, .table-stack tr, .table-stack td { display: block; width: 100%; }
    .table-stack tbody tr { background: var(--em-surface); border: 1px solid var(--em-border); border-radius: var(--em-radius-sm); margin: 0 0 .75rem; padding: .5rem .25rem; box-shadow: var(--em-shadow); }
    .table-stack tbody td { border: 0; padding: .4rem .85rem; display: flex; gap: .75rem; justify-content: space-between; text-align: right; }
    .table-stack tbody td::before { content: attr(data-label); font-weight: 700; color: var(--em-muted); font-size: .75rem; text-transform: uppercase; text-align: left; flex: 0 0 38%; padding-top: 2px; }
    .table-stack tbody td[data-label=""]::before, .table-stack tbody td.no-label::before { display: none; }
    .table-stack tbody td.actions { justify-content: flex-end; border-top: 1px solid var(--em-border); margin-top: .35rem; padding-top: .6rem; }
    .table-stack-wrap { padding: .75rem; }
}
