/* ===========================
   A4 PAGE SETUP
   =========================== */
@page {
    size: A4;
    margin: 12mm;
}

/* ===========================
   RESET
   =========================== */
html, body {
    margin: 0;
    padding: 0;
    font-family: Arial, sans-serif;
    font-size: 11px;
    color: #000;
}

/* ===========================
   PRINT VISIBILITY
   =========================== */
@media print {

    body * {
        visibility: hidden;
    }

    .print-page,
    .print-page * {
        visibility: visible;
    }

    .print-page {
        margin: 0;
        padding: 0;
    }
}

/* ===========================
   INVOICE ROOT
   =========================== */
.print-page {
    width: 100%;
}

/* ===========================
   TABLE BASE
   =========================== */
table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

/* ===========================
   HEADER
   =========================== */
.inv-header td {
    border: 1px solid #000;
    padding: 6px;
    vertical-align: top;
}

.inv-company {
    width: 65%;
}

.inv-meta {
    width: 35%;
    text-align: center;
}

.inv-title {
    font-size: 15px;
    font-weight: bold;
}

.inv-company-name {
    font-size: 20px;
    font-weight: bold;
}

/* ===========================
   PARTY DETAILS
   =========================== */
.inv-party td {
    border: 1px solid #000;
    padding: 6px;
    vertical-align: top;
}

/* ===========================
   ITEM TABLE
   =========================== */
.inv-items th,
.inv-items td {
    border: 1px solid #000;
    padding: 4px;
    vertical-align: top;
    word-wrap: break-word;
}

.inv-items th {
    background: #f2f2f2;
    text-align: center;
    font-weight: bold;
}

.item-desc {
    font-size: 9px;
    color: #333;
    margin-top: 2px;
}

/* Column sizing (safe for A4) */
.col-sr   { width: 4%; }
.col-item { width: 32%; }
.col-hsn  { width: 8%; }
.col-unit { width: 6%; }
.col-mrp  { width: 8%; }
.col-qty  { width: 6%; }
.col-rate { width: 10%; }
.col-gst  { width: 6%; }
.col-disc { width: 8%; }
.col-amt  { width: 12%; }

/* Align helpers */
.t-right { text-align: right; }
.t-center { text-align: center; }

/* ===========================
   TOTALS
   =========================== */
.inv-totals td {
    border: 1px solid #000;
    padding: 6px;
}

.inv-totals .grand td {
    font-size: 12px;
    font-weight: bold;
}

/* ===========================
   AMOUNT IN WORDS
   =========================== */
.inv-words {
    border: 1px solid #000;
    padding: 6px;
    margin-top: 4px;
}

/* ===========================
   BANK & QR
   =========================== */
.inv-bank td {
    border: 1px solid #000;
    padding: 6px;
    vertical-align: top;
}

.inv-qr {
    text-align: center;
}

#upiQR {
    max-width: 120px;
    margin: 0 auto;
}

/* ===========================
   BARCODE
   =========================== */
#barcode {
    display: block;
    margin: 6px auto 0;
    max-width: 160px;
}

/* ===========================
   FOOTER
   =========================== */
.inv-footer {
    font-size: 10px;
    text-align: center;
    margin-top: 6px;
}

/* ===========================
   PAGE BREAK CONTROL
   =========================== */
.inv-header,
.inv-party,
.inv-totals,
.inv-bank,
.inv-words {
    page-break-inside: avoid;
}

.inv-items tr {
    page-break-inside: avoid;
    page-break-after: auto;
}
	