/* Printable document styles — shared by preview, PDF, print and Word export.
   Layout uses tables (not flex/grid) so Word renders it faithfully. */
.doc-sheet { --acc: #1f3bb3; width: 794px; min-height: 1123px; background: #fff; color: #141414; box-sizing: border-box;
  padding: 46px 52px; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 12px; line-height: 1.5; position: relative; }
.doc-sheet * { box-sizing: border-box; }
.doc-sheet p { margin: 0 0 9px; }
.doc-sheet table { border-collapse: collapse; width: 100%; }
.doc-sheet td, .doc-sheet th { vertical-align: top; }
.doc-sheet h1, .doc-sheet h2, .doc-sheet h3 { font-family: Arial, Helvetica, sans-serif; letter-spacing: 0; margin: 0; color: #141414; }
.blank { display: inline-block; min-width: 90px; border-bottom: 1px dotted #888; color: transparent; background: #fff6d6; line-height: 1.1; }
.word-export .blank, .pdf .blank { background: none; }
.d-muted { color: #666; }
.d-small { font-size: 10.5px; }
.d-right { text-align: right; }
.d-center { text-align: center; }
.d-b { font-weight: 700; }
.d-up { text-transform: uppercase; letter-spacing: .04em; }
.d-sign { margin-top: 46px; }
.d-sign .line { border-top: 1px solid #333; width: 220px; padding-top: 5px; }
.d-avoid { page-break-inside: avoid; }

/* ---------- EDF (RBI Annex) ---------- */
.edf { font-size: 11px; line-height: 1.4; padding: 34px 40px; }
.edf .e-annex { text-align: right; font-weight: 700; font-size: 10.5px; }
.edf .e-title { text-align: center; font-size: 15px; font-weight: 800; letter-spacing: .06em; margin: 2px 0 2px; }
.edf .e-sub { text-align: center; font-size: 10.5px; color: #333; margin-bottom: 12px; }
.edf .e-part { background: #1d1d1d; color: #fff; font-weight: 800; font-size: 10.5px; letter-spacing: .06em; padding: 5px 8px; margin-top: 12px; }
.edf table.e-grid td, .edf table.e-grid th { border: 1px solid #555; padding: 4px 6px; }
.edf table.e-grid th { background: #efefef; font-size: 9.5px; text-align: left; font-weight: 700; }
.edf .e-no { width: 34px; font-weight: 700; color: #333; white-space: nowrap; }
.edf .e-lbl { width: 34%; color: #222; }
.edf .e-val { font-weight: 700; color: #000; }
.edf .e-na { color: #888; font-weight: 400; font-style: italic; }
.edf .box { display: inline-block; width: 10px; height: 10px; border: 1px solid #333; margin: 0 3px -1px 0; text-align: center; line-height: 9px; font-size: 9px; font-weight: 800; }
.edf .opt { white-space: nowrap; margin-right: 10px; }
.edf s, .ltr s { text-decoration: line-through; text-decoration-thickness: 1.5px; color: #555; }
.edf table.e-2b th { font-size: 9px; text-align: center; vertical-align: middle; }
.edf table.e-2b td { font-size: 10px; }
.edf .e-decl { border: 1px solid #555; padding: 10px 12px; margin-top: 0; font-size: 10.8px; line-height: 1.6; text-align: justify; }
.edf .e-decl p { margin: 0 0 6px; }
.edf .e-bank { border: 1px dashed #777; padding: 10px 12px; min-height: 70px; font-size: 10px; color: #444; }
.edf .e-foot { margin-top: 10px; font-size: 9px; color: #666; }

/* ---------- invoice family ---------- */
.inv .i-top td { padding: 0; }
.inv .i-brand { font-size: 21px; font-weight: 800; color: var(--acc); letter-spacing: -.01em; line-height: 1.15; }
.inv .i-brandsub { color: #444; font-size: 11px; margin-top: 4px; line-height: 1.5; }
.inv .i-doctitle { font-size: 22px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #141414; text-align: right; }
.inv .i-tag { display: inline-block; margin-top: 6px; padding: 3px 8px; border: 1.5px solid var(--acc); color: var(--acc); font-weight: 700; font-size: 9.5px; letter-spacing: .06em; text-transform: uppercase; border-radius: 3px; }
.inv .i-rule { height: 4px; background: var(--acc); margin: 18px 0 16px; }
.inv .i-meta td { padding: 3px 0; font-size: 11.5px; }
.inv .i-meta td.k { color: #666; width: 110px; }
.inv .i-box { border: 1px solid #ddd; border-radius: 6px; padding: 10px 12px; height: 100%; }
.inv .i-box h4 { font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--acc); margin: 0 0 6px; font-weight: 800; }
.inv .i-box .nm { font-weight: 800; font-size: 13px; margin-bottom: 2px; }
.inv table.i-items { margin-top: 16px; }
.inv table.i-items th { background: var(--acc); color: #fff; font-size: 9.5px; letter-spacing: .05em; text-transform: uppercase; padding: 7px 8px; text-align: left; }
.inv table.i-items td { padding: 8px; border-bottom: 1px solid #e5e5e5; font-size: 11.5px; }
.inv table.i-items tr:nth-child(even) td { background: #f8f8fb; }
.inv table.i-items .num { text-align: right; white-space: nowrap; }
.inv table.i-totals td { padding: 5px 8px; font-size: 12px; }
.inv table.i-totals tr.grand td { background: var(--acc); color: #fff; font-weight: 800; font-size: 14px; padding: 9px 8px; }
.inv .i-words { margin-top: 12px; padding: 9px 12px; background: #f4f5fb; border-left: 3px solid var(--acc); font-size: 11.5px; }
.inv .i-note { margin-top: 12px; padding: 8px 12px; border: 1.5px dashed var(--acc); font-weight: 700; font-size: 11px; color: #222; }
.inv .i-foot h4 { font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; color: #666; margin: 0 0 4px; font-weight: 800; }
.inv .i-qr img { width: 96px; height: 96px; display: block; }
.inv .i-thanks { margin-top: 26px; text-align: center; color: #888; font-size: 10px; border-top: 1px solid #eee; padding-top: 8px; }

/* ---------- letters ---------- */
.ltr { font-size: 12.5px; line-height: 1.65; padding: 50px 60px; }
.ltr .l-head td { padding: 0; }
.ltr .l-name { font-size: 20px; font-weight: 800; color: var(--acc); letter-spacing: -.01em; }
.ltr .l-contact { color: #444; font-size: 10.5px; line-height: 1.5; }
.ltr .l-rule { border-top: 2.5px solid var(--acc); margin: 12px 0 22px; }
.ltr .l-date { text-align: right; margin-bottom: 16px; }
.ltr .l-to { margin-bottom: 16px; }
.ltr .l-subj { font-weight: 700; margin: 14px 0; }
.ltr .l-subj span { text-decoration: underline; }
.ltr .l-titlebar { text-align: center; font-weight: 800; letter-spacing: .06em; font-size: 13.5px; margin: 6px 0 18px; text-decoration: underline; }
.ltr .l-body p { text-align: justify; }
.ltr .l-body .pre { white-space: pre-line; padding-left: 14px; }
.ltr table.l-tab { margin: 6px 0 12px; }
.ltr table.l-tab th, .ltr table.l-tab td { border: 1px solid #777; padding: 5px 7px; font-size: 11px; text-align: left; }
.ltr table.l-tab th { background: #f0f0f0; }
.ltr .l-close { margin-top: 22px; }
.ltr .l-sigspace { height: 46px; }
.ltr .l-encl { margin-top: 18px; font-size: 11px; }

/* ---------- receipt ---------- */
.rcpt { padding: 40px 48px; }
.rcpt .r-card { border: 2px solid var(--acc); border-radius: 8px; padding: 22px 26px; position: relative; }
.rcpt .r-title { font-size: 20px; font-weight: 800; letter-spacing: .14em; text-align: center; color: var(--acc); margin: 6px 0 16px; }
.rcpt .r-row { border-bottom: 1px dotted #999; padding: 9px 0 4px; font-size: 13px; }
.rcpt .r-row b { font-size: 13.5px; }
.rcpt .r-amt { display: inline-block; border: 2px solid #141414; padding: 6px 16px; font-size: 18px; font-weight: 800; }
.rcpt .r-stamp { width: 74px; height: 86px; border: 1px dashed #888; text-align: center; font-size: 9px; color: #888; padding-top: 32px; }

/* ---------- salary slip ---------- */
.slip table.s-grid td, .slip table.s-grid th { border: 1px solid #c9c9c9; padding: 6px 8px; font-size: 11.5px; }
.slip table.s-grid th { background: #f1f2f8; text-align: left; font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }
.slip .s-net { margin-top: 14px; background: var(--acc); color: #fff; padding: 12px 14px; font-size: 14px; font-weight: 800; }

/* ---------- letterhead ---------- */
.lh { padding: 0; }
.lh .lh-band { height: 10px; background: var(--acc); }
.lh .lh-head { padding: 30px 56px 18px; }
.lh .lh-name { font-size: 26px; font-weight: 800; color: var(--acc); letter-spacing: -.01em; }
.lh .lh-tag { color: #555; font-size: 11.5px; margin-top: 2px; }
.lh .lh-contact { font-size: 10.5px; color: #333; line-height: 1.6; text-align: right; }
.lh .lh-rule { margin: 0 56px; border-top: 1.5px solid var(--acc); }
.lh .lh-body { padding: 26px 56px; min-height: 860px; font-size: 12.5px; line-height: 1.7; white-space: pre-line; }
.lh .lh-foot { position: absolute; left: 0; right: 0; bottom: 0; padding: 12px 56px 16px; font-size: 9.5px; color: #555; border-top: 1px solid #ddd; text-align: center; }
.lh.center .lh-name, .lh.center .lh-tag, .lh.center .lh-contact { text-align: center; }
.lh .lh-mono { width: 54px; height: 54px; border-radius: 12px; background: var(--acc); color: #fff; font-weight: 800; font-size: 22px; text-align: center; line-height: 54px; }

/* ---------- UPI standee ---------- */
.upi-card { width: 380px; margin: 40px auto; border-radius: 22px; overflow: hidden; border: 1px solid #ddd; text-align: center; font-family: Arial, sans-serif; background: #fff; }
.upi-card .u-top { background: var(--acc); color: #fff; padding: 18px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.upi-card .u-name { font-size: 22px; font-weight: 800; margin: 18px 0 2px; color: #141414; }
.upi-card .u-qr { margin: 16px auto; width: 240px; height: 240px; }
.upi-card .u-qr img, .upi-card .u-qr canvas { width: 240px !important; height: 240px !important; }
.upi-card .u-vpa { font-family: "Courier New", monospace; font-size: 14px; font-weight: 700; color: #333; }
.upi-card .u-amt { font-size: 20px; font-weight: 800; margin-top: 6px; }
.upi-card .u-foot { margin-top: 18px; padding: 12px; background: #f4f5fb; font-size: 11px; color: #555; }
