body { background: #f4f6f9; }
.card { border: 0; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.breakdown td { padding: .35rem .75rem; }
.breakdown td.amt { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.breakdown tr.sub td { font-weight: 600; border-top: 2px solid #dee2e6; background: #f8f9fa; }
.breakdown tr.key td { background: #e7f1ff; font-weight: 700; }
.breakdown tr.profit td { background: #e8f6ee; font-weight: 700; }
.breakdown tr.zero td { color: #adb5bd; }
.stat .val { font-size: 1.35rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.stat .lbl { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: #6c757d; }
.suggest { font-size: .8rem; }
.sticky-lg { position: sticky; top: 1rem; }
.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
@media print {
    body { background: #fff; }
    .card { box-shadow: none; border: 1px solid #ddd; }
    main.container-xl { max-width: 100%; }
}
.pagination { display: flex; gap: .25rem; list-style: none; padding: 0; }
.pagination li a { display: block; padding: .3rem .7rem; border: 1px solid #dee2e6; border-radius: .3rem; background: #fff; text-decoration: none; }
.pagination li.active a { background: #0d6efd; color: #fff; border-color: #0d6efd; }
.est-table { font-size: .875rem; }
.est-table th { font-size: .75rem; text-transform: uppercase; letter-spacing: .03em; color: #495057; white-space: nowrap; }
.est-table .w-label { min-width: 170px; }
.est-table .w-model { min-width: 190px; }
.est-table td, .est-table th { padding: .55rem .5rem; }
.cogs-pay td, .cogs-pay th { padding: .45rem .75rem; }
.cogs-pay td.num, .cogs-lines td.num, .cogs-lines th.num { text-align: right; }
.cogs-lines input.form-control-sm { min-width: 70px; }
.cogs-lines td, .cogs-lines th { white-space: nowrap; }
.cogs-lines td:nth-child(3) { white-space: normal; }
.stat .lbl { white-space: nowrap; }
@media print { .cogs-lines { font-size: 9pt; } }
.cogs-lines { font-size: .84rem; }
.cogs-lines th { font-size: .7rem; text-transform: uppercase; letter-spacing: .02em; color: #495057; white-space: normal !important; vertical-align: bottom; }
.cogs-lines td, .cogs-lines th { padding: .35rem .3rem; }
.cogs-lines input.form-control-sm { min-width: 0; padding: .2rem .35rem; font-size: .84rem; }

.docs-table td, .docs-table th { padding: .45rem .6rem; }
.docs-table th { font-size: .75rem; text-transform: uppercase; letter-spacing: .03em; color: #495057; }
.docs-table td.num, .docs-table th.num { text-align: right; }
