/* ══════════════════════════════════════════════════════════════════
   TECH VEDA — ACCOUNTING · documents (invoice / PO record)
   "Light · documents" per Brand Guidelines v1.0 — ink-safe on paper:
   deeper saffron #E07B12, deeper green #138808. Always light, never
   theme-swapped: a tax invoice must print identically everywhere.
   ══════════════════════════════════════════════════════════════════ */

.print-root{display:none}

/* ── the sheet ──────────────────────────────────────────────────── */
.doc{
  --d-ink:#0E1320; --d-mut:#5A6478; --d-mut2:#8A93A6;
  --d-line:#E3E7F0; --d-line2:#C9D0DE;
  --d-saffron:#E07B12; --d-green:#138808; --d-head:#0D1018;
  --d-tint:#F4F6FB;
  width:210mm; min-height:297mm; padding:14mm 15mm;
  margin:0 auto; background:#fff; color:var(--d-ink);
  font-family:"Inter",system-ui,sans-serif; font-size:10.5pt; line-height:1.55;
  letter-spacing:-.003em; box-sizing:border-box;
  display:flex; flex-direction:column;
  -webkit-font-smoothing:antialiased;
}
.doc *{box-sizing:border-box}
.doc .mono{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-variant-numeric:tabular-nums}
.doc .money{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;
  font-variant-numeric:tabular-nums;letter-spacing:-.02em;white-space:nowrap;text-align:right}

/* preview shell (on screen only) */
.doc-preview{background:#5b6272;padding:22px;border-radius:var(--r);overflow:auto;max-height:none}
.doc-preview .doc{box-shadow:0 18px 50px -20px rgba(0,0,0,.6)}
@media(max-width:780px){
  .doc-preview{padding:10px}
  .doc-preview .doc{width:100%;min-height:0;padding:12mm 10mm}
}

/* ── masthead ───────────────────────────────────────────────────── */
.d-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14mm}
.d-id{display:flex;align-items:flex-start;gap:5mm;min-width:0}
.d-id img{width:17mm;height:17mm;object-fit:contain;flex:0 0 auto}
.d-wm{font-family:"Space Grotesk",sans-serif;font-size:17pt;font-weight:600;
  letter-spacing:-.02em;line-height:1.1;margin-bottom:2mm}
.d-wm .deva{font-family:"Tiro Devanagari Hindi","Noto Sans Devanagari",serif;letter-spacing:0}
.d-wm .dot{color:var(--d-mut2);font-weight:400;margin:0 1.4mm}
.d-legal{font-weight:700;font-size:10.5pt;margin-bottom:1.6mm;letter-spacing:-.012em}
.d-addr{font-size:9pt;color:var(--d-mut);line-height:1.62}
.d-ids{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-size:8.4pt;
  color:var(--d-mut);margin-top:1mm;letter-spacing:-.01em}

.d-meta{text-align:right;flex:0 0 auto}
.d-type{font-family:"Space Grotesk",sans-serif;font-size:19pt;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;line-height:1;margin-bottom:5mm;white-space:nowrap}
.d-meta-rows{display:grid;grid-template-columns:auto auto;gap:1.8mm 4mm;
  font-size:9.5pt;align-items:baseline}
.d-meta-rows .k{color:var(--d-mut);text-align:right}
.d-meta-rows .v{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;
  font-weight:700;text-align:right;white-space:nowrap;letter-spacing:-.02em}
.d-rule{height:1.6pt;background:var(--d-saffron);margin:4.5mm 0 6mm;border-radius:1pt}

/* ── bill-to panel ──────────────────────────────────────────────── */
.d-parties{display:grid;grid-template-columns:1fr;gap:4mm;margin-bottom:7mm}
.d-parties.two{grid-template-columns:1fr 1fr}
.d-party{background:var(--d-tint);border-left:2.4pt solid var(--d-saffron);
  padding:4mm 5mm;border-radius:0 2mm 2mm 0}
.d-party .lbl{font-size:7.6pt;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--d-mut2);margin-bottom:2.2mm}
.d-party .nm{font-family:"Space Grotesk",sans-serif;font-size:12.5pt;font-weight:700;
  letter-spacing:-.022em;margin-bottom:1.6mm;line-height:1.2}
.d-party .ln{font-size:9pt;color:var(--d-mut);line-height:1.6}
.d-party .gst{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;
  font-size:9pt;margin-top:1.4mm;letter-spacing:-.01em}

/* ── items table ────────────────────────────────────────────────── */
table.d-items{width:100%;border-collapse:collapse;margin-bottom:6mm}
table.d-items thead th{
  background:var(--d-head);color:#fff;padding:3.2mm 4mm;
  font-family:"Space Grotesk",sans-serif;font-size:7.8pt;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;text-align:left;white-space:nowrap}
table.d-items thead th.r{text-align:right}
table.d-items thead th.c{text-align:center}
table.d-items thead th:first-child{border-radius:1.6mm 0 0 1.6mm;text-align:center}
table.d-items thead th:last-child{border-radius:0 1.6mm 1.6mm 0}
table.d-items tbody td{padding:3.6mm 4mm;border-bottom:.6pt solid var(--d-line);
  font-size:10pt;vertical-align:top}
table.d-items tbody tr:last-child td{border-bottom:.9pt solid var(--d-line2)}
table.d-items td.sr{text-align:center;color:var(--d-mut);width:10mm}
table.d-items td.c{text-align:center}
table.d-items .it-desc{font-weight:500;line-height:1.45}
table.d-items .it-sub{font-size:8.4pt;color:var(--d-mut);margin-top:1mm;line-height:1.5}
table.d-items .it-hsn{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;
  font-size:8.4pt;color:var(--d-mut)}

/* ── totals ─────────────────────────────────────────────────────── */
.d-foot-split{display:grid;grid-template-columns:1fr 78mm;gap:8mm;margin-bottom:7mm;align-items:start}
.d-words .lbl{font-size:7.6pt;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--d-mut2);margin-bottom:2mm}
.d-words .val{font-weight:700;font-size:10pt;line-height:1.5}
.d-totals{display:flex;flex-direction:column;gap:2.6mm}
.d-totals .tr{display:flex;justify-content:space-between;align-items:baseline;gap:6mm;font-size:10pt}
.d-totals .tr .k{color:var(--d-mut)}
.d-totals .tr.grand{border-top:1pt solid var(--d-line2);padding-top:3.2mm;margin-top:1.4mm;
  font-family:"Space Grotesk",sans-serif;font-size:13pt;font-weight:700;letter-spacing:-.024em}
.d-totals .tr.grand .k{color:var(--d-ink)}
.d-totals .tr.grand .money{color:var(--d-green);font-family:"Space Grotesk",sans-serif;
  font-variant-numeric:tabular-nums}
.d-hr{height:.6pt;background:var(--d-line);margin:6mm 0}

/* ── bank + signature ───────────────────────────────────────────── */
.d-pay{display:grid;grid-template-columns:1fr 72mm;gap:10mm;margin-bottom:6mm;align-items:start}
.d-bank .lbl{font-size:7.6pt;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--d-mut2);margin-bottom:2.6mm}
.d-bank dl{display:grid;grid-template-columns:auto 1fr;gap:1.9mm 6mm;margin:0;font-size:9.5pt}
.d-bank dt{color:var(--d-mut)}
.d-bank dd{margin:0;font-weight:700;font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;
  letter-spacing:-.015em}
.d-bank dd.txt{font-family:"Inter",sans-serif;letter-spacing:0}

.d-sign{text-align:left}
.d-sign .ink{font-family:"Tiro Devanagari Hindi",Georgia,serif;font-style:italic;
  font-size:16pt;color:#1B3A6B;line-height:1.1;padding-bottom:2.4mm;
  border-bottom:.6pt solid var(--d-line2);margin-bottom:2.6mm;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.d-sign .sm{font-size:8.4pt;color:var(--d-mut);line-height:1.6}
.d-sign .sm b{color:var(--d-ink)}
.d-sign .ref{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;
  font-size:8.4pt;color:var(--d-mut2);margin-top:1.4mm;letter-spacing:-.01em}

/* ── terms + page foot ──────────────────────────────────────────── */
.d-terms .lbl{font-size:7.6pt;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--d-mut2);margin-bottom:2.2mm}
.d-terms .val{font-size:9pt;line-height:1.65;color:var(--d-ink)}
.d-spacer{flex:1;min-height:6mm}
.d-pagefoot{border-top:.7pt dashed var(--d-line2);padding-top:3.4mm;text-align:center;
  font-size:8.2pt;color:var(--d-mut2)}

/* ── PO record specifics ────────────────────────────────────────── */
.d-grid-tbl{width:100%;border-collapse:collapse;margin-bottom:6mm;font-size:9.5pt}
.d-grid-tbl th,.d-grid-tbl td{border:.6pt solid var(--d-line2);padding:2.6mm 3.4mm;
  text-align:left;vertical-align:top}
.d-grid-tbl th{background:var(--d-tint);font-family:"Space Grotesk",sans-serif;
  font-size:8.2pt;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:var(--d-mut);white-space:nowrap;width:38mm}
.d-grid-tbl caption{caption-side:top;background:var(--d-head);color:#fff;
  padding:2.6mm;font-family:"Space Grotesk",sans-serif;font-size:8.6pt;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;border-radius:1.4mm 1.4mm 0 0}
.d-grid-tbl td.val{font-weight:500}
.d-grid-tbl td .mono{font-size:9pt}

.d-status{display:inline-block;padding:1mm 3mm;border-radius:20mm;
  font-family:"Space Grotesk",sans-serif;font-size:7.6pt;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;border:.8pt solid}
.d-status.open{color:var(--d-saffron);border-color:var(--d-saffron);background:#FDF3E7}
.d-status.done{color:var(--d-green);border-color:var(--d-green);background:#EAF6E8}
.d-status.void{color:#8A93A6;border-color:#C9D0DE;background:#F4F6FB}

.d-note{font-size:8.6pt;color:var(--d-mut);line-height:1.6;
  background:var(--d-tint);border-radius:1.6mm;padding:3mm 4mm;margin-bottom:5mm}

/* ── PRINT ──────────────────────────────────────────────────────── */
@page{size:A4;margin:0}
@media print{
  html,body{background:#fff!important;margin:0!important;padding:0!important}
  body > *{display:none!important}
  .aurora,.grid-bg,.grain{display:none!important}
  #printRoot.print-root{display:block!important;position:static}
  #printRoot .doc{
    width:210mm;margin:0;box-shadow:none!important;
    page-break-after:always;break-after:page;
    /* 296mm, not 297mm: an element exactly as tall as a zero-margin A4
       page rounds over the edge in Chrome and pushes the footer to a
       second sheet. 1mm of slack keeps a one-page invoice on one page
       while still letting a longer record flow onto the next. */
    min-height:296mm}
  #printRoot .doc:last-child{page-break-after:auto;break-after:auto}
  table.d-items thead th{
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .doc,.d-party,.d-status,.d-note,.d-grid-tbl th,.d-grid-tbl caption,.d-rule{
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  table.d-items tr,.d-pay,.d-foot-split{page-break-inside:avoid;break-inside:avoid}
}
