html, body { font-family: Inter, "Segoe UI", sans-serif; }

.nms-appbar { background: #1f4e79; }
.nms-logo {
    display: inline-grid; place-items: center; width: 34px; height: 26px; border-radius: 6px;
    background: rgba(255, 255, 255, .16); font-weight: 700; font-size: 12px; letter-spacing: .5px;
}
.nms-drawer { border-right: 1px solid #e3e7ed; }
.nms-pending { opacity: .62; }
.text-none { text-transform: none !important; }
.text-right { text-align: right !important; }
.tabular { font-variant-numeric: tabular-nums; }

#blazor-error-ui {
    background: #fdecea; color: #a3221a; bottom: 0; box-shadow: 0 -1px 2px rgba(0, 0, 0, .2);
    display: none; left: 0; padding: .6rem 1.25rem .7rem 1.25rem; position: fixed; width: 100%; z-index: 2000;
}
#blazor-error-ui .dismiss { cursor: pointer; position: absolute; right: .75rem; top: .5rem; }

/* Consolidation summary: standing order differs from the non-SPH total */
.cell-warn { background: #fff1e0 !important; color: #8a5300; font-weight: 600; }

/* Reports: on-screen table and print layout (print = browser "Save as PDF" / printer) */
.nms-report { border-collapse: collapse; width: 100%; font-size: 12.5px; }
.nms-report th, .nms-report td { border-bottom: 1px solid #e3e7ed; padding: 3px 6px; text-align: left; white-space: nowrap; }
.nms-report th { position: sticky; top: 0; background: #eef2f7; z-index: 1; font-weight: 600; }
.nms-report td.num, .nms-report th.num { text-align: right; font-variant-numeric: tabular-nums; }
.nms-report tr.grp td { background: #f6f8fb; font-weight: 600; padding-top: 8px; }
.nms-report tr.sub td { font-weight: 600; border-top: 1px solid #b9c3d0; }
.nms-report tr.tot td { font-weight: 700; border-top: 2px solid #1f4e79; background: #eef2f7; }
.nms-report-wrap { overflow: auto; max-height: calc(100vh - 290px); border: 1px solid #e3e7ed; border-radius: 8px; background: #fff; }
.print-only { display: none; }
@media print {
    @page { margin: 10mm; }
    .mud-appbar, .mud-drawer, .no-print, #blazor-error-ui, .mud-snackbar-provider { display: none !important; }
    .mud-main-content { padding: 0 !important; margin: 0 !important; }
    .mud-container { max-width: none !important; padding: 0 !important; }
    .print-only { display: block; }
    .nms-report-wrap { max-height: none; overflow: visible; border: none; }
    .nms-report { font-size: 9.5pt; }
    .nms-report th { position: static; }
    .nms-report tr { break-inside: avoid; }
    body { background: #fff !important; }
}

/* Printed bills (rptMonthlyBill): one bill per A4 page */
.nms-bill { background: #fff; border: 1px solid #e3e7ed; border-radius: 8px; padding: 18px 22px; margin-bottom: 16px; max-width: 800px; position: relative; font-size: 13px; }
.nms-bill-head { display: flex; justify-content: space-between; gap: 16px; border-bottom: 2px solid #1f4e79; padding-bottom: 8px; margin-bottom: 10px; }
.nms-bill-company { font-size: 16px; font-weight: 700; }
.nms-bill-title { text-align: right; font-size: 18px; font-weight: 700; }
.nms-bill-copy { font-size: 11px; font-weight: 600; color: #555; margin-top: 4px; }
.nms-bill-info { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.nms-bill-info td { padding: 1px 6px; }
.nms-bill-label { color: #666; font-size: 11px; text-transform: uppercase; letter-spacing: .03em; }
.nms-bill-lines { margin-top: 6px; }
.nms-bill-paid { position: absolute; right: 30px; bottom: 60px; border: 3px solid #2e7d32; color: #2e7d32; font-weight: 800; font-size: 22px; padding: 2px 12px; transform: rotate(-8deg); opacity: .8; }
@media print {
    .nms-bill { border: none; border-radius: 0; padding: 0; margin: 0; max-width: none; break-after: page; }
    .nms-bill:last-of-type { break-after: auto; }
}

/* MudBlazor copies a picker's Style (we use max-width to size the field) onto its calendar popup, which then clips the
   calendar; the popup keeps its natural width. */
.mud-picker-popover-paper { max-width: none !important; }
