/* Shared dense data patterns. Page overflow is never hidden to mask a defect. */
.b04-table-wrap { overflow-x: auto; overscroll-behavior-inline: contain; min-width: 0; max-width: 100%; }
.wawi [data-ui="table"] { width: 100%; border-collapse: collapse; font-size: var(--b04-text-sm); }
.wawi [data-ui="table"] caption { text-align: left; padding: 10px 20px; color: var(--b04-muted); font-size: .75rem; }
.wawi [data-ui="table"] th { background: var(--b04-subtle); font-weight: 600; text-align: left; white-space: nowrap; }
.wawi [data-ui="table"] th, .wawi [data-ui="table"] td { padding: 9px 12px; border-bottom: 1px solid var(--b04-border); vertical-align: middle; }
.wawi [data-ui="table"] tbody tr:last-child td, .wawi [data-ui="table"] tbody tr:last-child th { border-bottom: 0; }
.wawi [data-ui="table"] tbody th { background: transparent; }
.wawi [data-ui="table"] tbody tr:hover { background: #f7faf8; }
.wawi [data-ui="table"] .numeric { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.wawi [data-ui="table"] td.action-cell { width: 1%; white-space: nowrap; }
.wawi [data-ui="table"] .row-title { font-weight: 600; }
.wawi [data-ui="table"] .row-description { font-size: .75rem; color: var(--b04-muted); margin-top: 3px; }
.wawi [data-ui="table"] .row-action { min-width: 130px; white-space: nowrap; word-break: normal; overflow-wrap: normal; }
.wawi [data-ui="table"][data-responsive="scroll"] { min-width: 680px; }
.b04-table-hint { padding: 10px 16px; font-size: .75rem; color: var(--b04-muted); border-top: 1px solid var(--b04-border); }
.b04-filter-bar { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; padding: 12px 20px; }
.b04-filter-bar .b04-field { flex: 1 1 180px; }
.b04-record-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.b04-record-title { display: grid; gap: 8px; min-width: 0; }
.b04-record-meta { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.b04-description { margin: 0; display: grid; gap: 0; }
.b04-description > div { display: grid; grid-template-columns: minmax(100px, .8fr) minmax(0, 1.2fr); gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--b04-border); }
.b04-description > div:last-child { border: 0; }
.b04-description dt { color: var(--b04-muted); }
.b04-description dd { margin: 0; font-weight: 500; overflow-wrap: break-word; }
.b04-money { margin: 0; display: grid; gap: 10px; font-variant-numeric: tabular-nums; }
.b04-money > div { display: flex; justify-content: space-between; gap: 12px; }
.b04-money dt { color: var(--b04-muted); }
.b04-money dd { margin: 0; font-weight: 600; white-space: nowrap; }
.b04-money .total { border-top: 1px solid var(--b04-border); padding-top: 12px; font-size: 1.25rem; }
.b04-money .total dt { color: var(--b04-text); font-weight: 650; }
.b04-stepper { display: flex; list-style: none; padding: 0; margin: 0; gap: 12px; overflow-x: auto; }
.b04-stepper > li { display: grid; gap: 4px; min-width: 110px; flex: 1; padding: 12px 0; border-top: 2px solid var(--b04-border); }
.b04-stepper [aria-current="step"] { border-top-color: var(--b04-accent); }
.b04-stepper small { color: var(--b04-muted); }
.b04-timeline { list-style: none; padding: 0; margin: 0; }
.b04-timeline li { border-left: 2px solid var(--b04-border); padding: 0 0 20px 16px; display: grid; gap: 5px; }
.b04-timeline time { color: var(--b04-muted); font-size: .75rem; }
.b04-attachment { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; padding: 16px; border: 1px solid var(--b04-border); border-radius: 6px; }
.b04-attachment .file-label { flex: 1 1 150px; min-width: 0; }
.b04-attachment .file-name { overflow-wrap: break-word; font-weight: 600; }
.b04-metric { padding: 18px; display: grid; gap: 6px; }
.b04-metric strong { font-size: 1.75rem; letter-spacing: -.04em; }
@media (max-width: 599px) {
 .wawi [data-responsive="priority"] .secondary { display: none; }
 .wawi [data-responsive="priority"] th, .wawi [data-responsive="priority"] td { padding: 8px; }
 .wawi [data-responsive="priority"] .row-action { min-width: 130px; padding: 10px; font-size: .8125rem; }
 .wawi [data-responsive="priority"] .record-cell { width: auto; }
 .b04-record-header > .b04-actions { width: 100%; }
 .b04-record-header > .b04-actions > [data-variant="primary"] { flex: 1 0 auto; }
 .b04-stepper { gap: 8px; }
}
