/* nguyenvantuan.css: Sổ Xăng Dầu (lệnh điều phương tiện, phiếu xuất, xuất nhập tồn).
   Loaded after kit/kit.css. Holds only what the kit lacks (nvt-* classes, listed in KIT_GAPS.md) and layout glue for these screens.
   Every colour, size, space and font comes from a var(--*) token (tokens.css: the kit base plus tokens.json). No kit class is restyled. */

/* ---------- Shell glue ---------- */
/* The date and week code in the slim top bar beside the sidebar (gap 2) */
.nvt-today { display: inline-flex; align-items: center; gap: var(--sp-1); font-size: var(--fs-sm); white-space: nowrap; }
/* The week code picker in a .cluster: the kit dropdown fills its box, so the box needs a width (gap 1) */
.nvt-weekpick { width: var(--nvt-week-w); }
/* A row of buttons centred under a page-state message (gap 5) */
.nvt-center { justify-content: center; }
/* Padding for a block inside a .panel-flush that is not a table: a field under a sheet, a legend over a grid (gap 4) */
.nvt-pad { padding: var(--sp-4) var(--sp-5); }
/* Facts of a landscape document above its sheet, four to a row (gap 3) */
.nvt-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-3) var(--sp-6); }

/* ---------- Paper forms: LĐPT mặt trước, mặt sau, Phiếu xuất xăng dầu (gaps 6–14) ---------- */
/* The document face and margins on the kit sheet (COMPONENTS: "the tenant sets the document font and the margins on .paper") */
.nvt-doc { padding: var(--nvt-doc-pad); font-family: var(--nvt-doc-font); font-size: var(--nvt-doc-fs); line-height: var(--nvt-doc-lh); }
.nvt-doc.paper-landscape { padding: var(--nvt-doc-pad-land); }
.nvt-doc p { margin: 0; }
.nvt-doc-top { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--nvt-doc-gap-lg); }
.nvt-doc-top > :only-child { margin-inline-start: auto; }
/* The form code in a box, top right ("Số 1-01/XD-14") */
.nvt-doc-code { padding: var(--nvt-doc-cell-y) var(--nvt-doc-box-x); font-size: var(--nvt-doc-fs-sm); white-space: nowrap; border: var(--nvt-doc-rule) solid currentColor; }
/* Unit block left, national motto right, both centred in their column (gap 6) */
.nvt-doc-head { display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.3fr); gap: var(--nvt-doc-gap-lg); margin-top: var(--nvt-doc-gap); text-align: center; }
.nvt-doc-head > div { display: grid; justify-items: center; align-content: start; gap: var(--sp-1); }
.nvt-doc-org { text-transform: uppercase; }
.nvt-doc-org-strong { font-weight: 700; text-transform: uppercase; }
.nvt-doc-motto { font-size: var(--nvt-doc-fs-head); font-weight: 700; text-transform: uppercase; white-space: nowrap; }
.nvt-doc-motto-sub { font-weight: 700; }
.nvt-doc-shortrule { display: block; width: var(--nvt-doc-short-rule); margin-inline: auto; border-top: var(--nvt-doc-rule) solid currentColor; }
.nvt-doc-place { font-style: italic; }
.nvt-doc-no { justify-self: center; }
.nvt-doc-title { margin: var(--nvt-doc-gap-lg) 0 var(--nvt-doc-gap); font-size: var(--nvt-doc-fs-title); font-weight: 700; text-align: center; text-transform: uppercase; letter-spacing: var(--nvt-doc-track); }
.nvt-doc-center { text-align: center; }
.nvt-doc-italic { font-style: italic; }
.nvt-doc-lines { display: grid; gap: var(--nvt-doc-gap); }
.nvt-doc-indent { text-indent: var(--nvt-doc-indent); }
.nvt-doc-section { margin-top: var(--nvt-doc-gap-lg); }
/* A blank to fill in by hand: a dotted rule as long as the paper form leaves (gap 7) */
.nvt-fill { display: inline-block; min-width: var(--nvt-fill-m); line-height: var(--nvt-fill-lh); vertical-align: baseline; border-bottom: var(--nvt-doc-dots) dotted currentColor; }
.nvt-fill-s { min-width: var(--nvt-fill-s); }
.nvt-fill-l { min-width: var(--nvt-fill-l); }
.nvt-fill-xl { min-width: var(--nvt-fill-xl); }
/* The ruled table of a paper form: every cell framed in the ink, header centred and bold (gap 8) */
.nvt-ftbl { width: 100%; margin-top: var(--nvt-doc-gap); border-collapse: collapse; font-variant-numeric: lining-nums tabular-nums; }
.nvt-ftbl :is(th, td) { height: var(--nvt-doc-row-h); padding: var(--nvt-doc-cell-y) var(--nvt-doc-cell-x); vertical-align: middle; border: var(--nvt-doc-rule) solid currentColor; }
.nvt-ftbl thead th { font-weight: 700; text-align: center; line-height: var(--lh-tight); }
.nvt-ftbl .num { text-align: end; white-space: nowrap; }
.nvt-ftbl .c { text-align: center; }
.nvt-ftbl tfoot :is(th, td) { font-weight: 700; }
.nvt-ftbl tbody th { font-weight: 400; text-align: start; }
.nvt-ftbl-unit { margin-top: var(--nvt-doc-gap); font-style: italic; text-align: end; }
/* Phiếu xuất head: unit at the left, title with the boxed Số and Ngày in the middle, validity and vehicle at the right (gap 9) */
.nvt-px-head { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: start; gap: var(--nvt-doc-gap-lg); }
.nvt-px-head > :first-child { text-align: center; }
.nvt-px-title { display: grid; justify-items: center; gap: var(--nvt-doc-gap); }
.nvt-px-title .nvt-doc-title { margin: 0; }
.nvt-px-box { display: grid; grid-template-columns: auto minmax(var(--nvt-px-box-w), auto); }
.nvt-px-box > span { padding: var(--sp-1) var(--nvt-doc-cell-x); border: var(--nvt-doc-rule) solid currentColor; }
.nvt-px-box > span:nth-child(odd) { border: 0; text-align: end; }
.nvt-px-box > span:nth-child(even) { text-align: center; font-weight: 700; }
.nvt-px-box > span:nth-child(4) { border-top: 0; }
.nvt-doc-sum { display: grid; gap: var(--sp-1); margin-top: var(--nvt-doc-gap); }
/* Ghi chú of a phiếu stays on one row (REQ-010); a long one is set a little smaller instead of wrapping (gap 11) */
.nvt-doc-note { overflow: hidden; white-space: nowrap; }
.nvt-doc-note-fit { font-size: var(--nvt-doc-fs-note); }
/* Five signers in a row (Người nhận, Người giao, Tài chính, Người viết phiếu, Chỉ huy đơn vị): the kit row has two or three (gap 10) */
.nvt-signs { --sign-space: var(--nvt-sign-space); display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 var(--nvt-doc-gap); margin-top: var(--nvt-doc-gap-lg); text-align: center; break-inside: avoid; }
.nvt-sign-name { display: block; font-weight: 700; }
/* NHÁP / ĐÃ BỎ across the sheet, on screen and on paper (gap 12) */
.nvt-watermark { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; pointer-events: none; }
.nvt-watermark > span { font-family: var(--nvt-doc-font); font-size: var(--nvt-watermark-fs); font-weight: 700; letter-spacing: var(--nvt-watermark-track); color: var(--nvt-watermark); white-space: nowrap; transform: rotate(-28deg); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
/* The blank page put after a phiếu when printing on both sides (gap 13) */
.nvt-blank { display: grid; place-items: center; }
.nvt-blank-label { font-family: var(--font-body); font-size: var(--fs-md); color: var(--muted); }
/* In thử căn lề: two frames at 5 mm and 10 mm from the edge of the sheet (gap 14) */
.nvt-margin-frame { position: absolute; inset: var(--nvt-margin-1); border: var(--nvt-doc-rule) dashed currentColor; }
.nvt-margin-frame + .nvt-margin-frame { inset: var(--nvt-margin-2); border-style: solid; }
.nvt-margin-text { position: relative; display: grid; gap: var(--nvt-doc-gap); max-width: var(--nvt-fill-xl); margin: var(--nvt-doc-gap-lg) auto 0; text-align: center; }
/* The print page's main drops its block padding on paper: .container keeps var(--sp-6) top and bottom in print, and the bottom one spilled onto an extra blank page after a last landscape sheet (gap 16, KIT_GAPS defect 2) */
@media print { .nvt-print-flush { padding-block: 0; } }
/* A small preview of the paper head and the signatures in Cài đặt (gap 15: .paper-stage-fit only scales under 40rem) */
.nvt-preview { overflow: hidden; }
.nvt-preview > .paper { zoom: var(--nvt-preview-zoom); }
