/* ============================================================
   CraftGrid - Shared print styles
   Screen UI remains unchanged; these rules apply only to print.
   ============================================================ */

@media print {
    html,
    body {
        width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        color: #111 !important;
        overflow: visible !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Remove the application chrome completely. */
    body > header,
    body > footer,
    body > .container-fluid > .row > aside,
    .desktop-sidebar,
    .craftgrid-sidebar-backdrop,
    .erp-sidebar,
    #mobileSidebar,
    .offcanvas,
    #lookupContainer,
    .cg-global-search,
    .cg-global-search-panel,
    .cg-global-search-voice-status,
    .no-print,
    .btn,
    button,
    form,
    .alert,
    .toast,
    .modal,
    .dropdown-menu {
        display: none !important;
    }

    /* Collapse the authenticated two-column shell into the paper. */
    body > .container-fluid,
    body > .container-fluid > .row,
    body > .container-fluid > .row > main,
    main.col,
    main[role="main"] {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        min-height: 0 !important;
        height: auto !important;
        flex: none !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
    }

    main > .container-fluid {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Do not let the responsive Bootstrap grid shrink the printed document. */
    .row {
        --bs-gutter-x: 0.75rem;
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .col,
    [class*="col-"] {
        min-width: 0 !important;
    }

    .col-md-2 { width: 16.666667% !important; }
    .col-md-3 { width: 25% !important; }
    .col-md-4 { width: 33.333333% !important; }
    .col-md-6 { width: 50% !important; }
    .col-lg-4 { width: 33.333333% !important; }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        color: #111 !important;
    }

    /* Keep the document title but remove all action controls around it. */
    main .d-flex.justify-content-between.align-items-start:first-child,
    main .d-flex.justify-content-between.mb-3:first-child {
        margin-bottom: 5mm !important;
    }

    /* Cards become clean paper sections. */
    .card {
        background: #fff !important;
        box-shadow: none !important;
        border: 1px solid #cfd4da !important;
        break-inside: avoid;
    }

    .card-header {
        background: #f5f6f8 !important;
        color: #111 !important;
        font-weight: 700 !important;
        border-bottom: 1px solid #cfd4da !important;
    }

    .table-responsive {
        overflow: visible !important;
    }

    table {
        width: 100% !important;
        border-collapse: collapse !important;
        font-size: 9.5pt !important;
    }

    th,
    td {
        border-color: #d5d9de !important;
    }

    thead {
        display: table-header-group !important;
    }

    tr {
        break-inside: avoid;
    }

    .table-light,
    .table-light > th,
    .table-light > td {
        background: #f5f6f8 !important;
    }

    /* Monetary summaries and formal documents should not split awkwardly. */
    .row.justify-content-end,
    .payslip-sheet,
    .payslip-sheet .border,
    .card:has(.fs-5) {
        break-inside: avoid;
    }

    .mb-5 { margin-bottom: 1.5rem !important; }
    .mt-5 { margin-top: 1.5rem !important; }
    .p-5 { padding: 1.5rem !important; }

    a {
        color: inherit !important;
        text-decoration: none !important;
    }

    pre,
    textarea,
    .text-break {
        white-space: pre-wrap !important;
        overflow: visible !important;
    }

    /* Avoid screen-height containers creating large blank print areas. */
    .min-vh-100,
    .vh-100,
    .overflow-auto,
    .overflow-hidden {
        min-height: 0 !important;
        height: auto !important;
        overflow: visible !important;
    }

    /* ---------------------------------------------------------
       Document print cleanup
       --------------------------------------------------------- */
    .print-only {
        display: block !important;
    }

    .print-hide,
    .print-internal {
        display: none !important;
    }

    .card.shadow-sm,
    .card {
        border-radius: 0 !important;
    }

    /* The application uses a light page shell on screen. On paper
       the document itself should be white and occupy the full sheet. */
    body.bg-light,
    main,
    main > .container-fluid,
    main > .container-fluid > .row {
        background: #fff !important;
    }

    /* Avoid a screen-layout totals column becoming unnecessarily narrow. */
    .print-totals {
        width: 42% !important;
        margin-left: auto !important;
    }

    /* Sales/Purchase invoice style tables need room for all monetary columns. */
    .print-document table {
        table-layout: fixed !important;
    }

    .print-document th,
    .print-document td {
        padding: 5px 7px !important;
        vertical-align: middle !important;
    }

    .print-document .text-end {
        white-space: nowrap !important;
    }

    .print-document .card-header {
        padding: 7px 10px !important;
    }

    .print-document .card-body {
        padding: 10px !important;
    }

    .print-document h2 {
        margin: 0 !important;
        font-size: 20pt !important;
    }

    .print-document .text-muted {
        color: #555 !important;
    }

    /* Do not print browser/app status badges in customer/vendor documents. */
    .print-document .print-internal {
        display: none !important;
    }

}

/* ============================================================
   CraftGrid - Customer-facing Sales Invoice
   ============================================================ */
.print-only {
    display: none;
}

@media print {
    .print-screen-content {
        display: none !important;
    }

    .print-invoice-sheet {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #111 !important;
        font-family: Arial, Helvetica, sans-serif !important;
        font-size: 9.5pt !important;
        line-height: 1.35 !important;
        background: #fff !important;
    }

    .invoice-print-header {
        display: grid;
        grid-template-columns: 1.45fr 1fr;
        gap: 12mm;
        align-items: start;
        padding-bottom: 3.5mm;
        border-bottom: 2px solid #173b2f;
    }

    .invoice-company-name {
        font-size: 17pt;
        font-weight: 800;
        letter-spacing: .2px;
        text-transform: uppercase;
        margin-bottom: 2mm;
    }

    .invoice-company-address,
    .invoice-company-contact {
        margin-top: 1mm;
    }

    .invoice-company-contact {
        display: flex;
        flex-wrap: wrap;
        gap: 2mm 5mm;
    }

    .invoice-title-block {
        text-align: right;
    }

    .invoice-tax-title {
        font-size: 22pt;
        font-weight: 800;
        letter-spacing: 1px;
        margin-bottom: 4mm;
    }

    .invoice-meta-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        border: 1px solid #cfd5d1;
    }

    .invoice-meta-grid > div {
        padding: 2.5mm 3mm;
        border-right: 1px solid #cfd5d1;
        border-bottom: 1px solid #cfd5d1;
    }

    .invoice-meta-grid > div:nth-child(2n) {
        border-right: 0;
    }

    .invoice-meta-grid > div:nth-last-child(-n+2) {
        border-bottom: 0;
    }

    .invoice-meta-grid span {
        display: block;
        color: #65706b;
        font-size: 8pt;
        margin-bottom: 1mm;
    }

    .invoice-meta-grid strong {
        font-size: 9.5pt;
    }

    .invoice-party-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 5mm;
        margin-top: 3.5mm;
    }

    .invoice-party-card,
    .invoice-note-box {
        border: 1px solid #cfd5d1;
        padding: 3mm;
        break-inside: avoid;
    }

    .invoice-section-label,
    .invoice-footer-heading {
        font-size: 8pt;
        font-weight: 800;
        letter-spacing: .7px;
        color: #31594b;
        margin-bottom: 1.5mm;
    }

    .invoice-party-name {
        font-size: 11pt;
        font-weight: 800;
        margin-bottom: 1.5mm;
    }

    .invoice-muted {
        color: #666;
        font-style: italic;
    }

    .invoice-reference-row {
        margin-top: 3mm;
        padding: 2.5mm 3mm;
        background: #f4f7f5;
        border: 1px solid #d9dfdb;
    }

    .invoice-print-table {
        width: 100% !important;
        margin-top: 3.5mm;
        border-collapse: collapse !important;
        table-layout: fixed !important;
        font-size: 9pt !important;
    }

    .invoice-print-table th {
        background: #173b2f !important;
        color: #fff !important;
        font-weight: 700 !important;
        border: 1px solid #173b2f !important;
        padding: 1.8mm 1.8mm !important;
    }

    .invoice-print-table td {
        border: 1px solid #cfd5d1 !important;
        padding: 1.8mm 1.8mm !important;
        vertical-align: top !important;
    }

    .invoice-print-table tbody tr:nth-child(even) td {
        background: #fafcfb !important;
    }

    .invoice-print-table .col-no { width: 4%; }
    .invoice-print-table .col-item { width: 29%; }
    .invoice-print-table .col-delivery { width: 11%; }
    .invoice-print-table .col-qty { width: 8%; }
    .invoice-print-table .col-price { width: 12%; }
    .invoice-print-table .col-discount { width: 12%; }
    .invoice-print-table .col-tax { width: 11%; }
    .invoice-print-table .col-total { width: 13%; }

    .invoice-item-code {
        font-size: 8pt;
        color: #59645f;
        margin-bottom: .5mm;
    }

    .invoice-item-name {
        font-weight: 800;
        font-size: 9.5pt;
    }

    .invoice-item-uom {
        color: #65706b;
        font-size: 8pt;
        margin-top: .8mm;
    }

    .invoice-line-total {
        font-weight: 800;
    }

    .invoice-bottom-grid {
        display: grid;
        grid-template-columns: 1.5fr .75fr;
        gap: 7mm;
        margin-top: 3.5mm;
        align-items: start;
    }

    .invoice-notes-column {
        display: grid;
        gap: 2mm;
    }

    .invoice-amount-words {
        font-weight: 700;
    }

    .invoice-totals-box {
        border: 1px solid #c4cbc6;
        padding: 3mm;
        break-inside: avoid;
    }

    .invoice-total-row {
        display: flex;
        justify-content: space-between;
        gap: 5mm;
        padding: 1.2mm 0;
    }

    .invoice-total-grand {
        display: flex;
        justify-content: space-between;
        gap: 5mm;
        margin-top: 2mm;
        padding-top: 3mm;
        border-top: 1.5px solid #173b2f;
        font-size: 12pt;
        font-weight: 800;
    }

    .invoice-footer-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10mm;
        margin-top: 4mm;
        padding-top: 3mm;
        border-top: 1px solid #cfd5d1;
        break-inside: avoid;
    }

    .invoice-signature-block {
        text-align: right;
        min-height: 20mm;
    }

    .invoice-signature-space {
        height: 7mm;
    }

    .invoice-signatory-name {
        font-weight: 800;
    }

    .invoice-print-footer {
        display: flex;
        justify-content: space-between;
        margin-top: 4mm;
        padding-top: 2mm;
        border-top: 1px solid #d8ddd9;
        color: #69726e;
        font-size: 7.5pt;
    }

    .invoice-party-card,
    .invoice-note-box,
    .invoice-totals-box,
    .invoice-footer-grid {
        break-inside: avoid;
    }
}


@media print {
    /* Compact A4 landscape invoice: keeps the normal invoice on one sheet. */
    .print-invoice-sheet {
        font-size: 8.5pt !important;
        line-height: 1.22 !important;
    }

    .invoice-company-name {
        font-size: 15.5pt !important;
        margin-bottom: 1.5mm !important;
    }

    .invoice-tax-title {
        font-size: 19pt !important;
        margin-bottom: 2.5mm !important;
    }

    .invoice-meta-grid > div {
        padding: 1.8mm 2.5mm !important;
    }

    .invoice-party-grid {
        margin-top: 3mm !important;
    }

    .invoice-party-card {
        padding: 2.5mm !important;
    }

    .invoice-print-table {
        margin-top: 3mm !important;
        font-size: 8.2pt !important;
    }

    .invoice-print-table th,
    .invoice-print-table td {
        padding: 1.5mm 1.5mm !important;
    }

    .invoice-bottom-grid {
        margin-top: 3mm !important;
        gap: 5mm !important;
    }

    .invoice-note-box,
    .invoice-totals-box {
        padding: 2.5mm !important;
    }

    .invoice-footer-grid {
        margin-top: 3mm !important;
        padding-top: 2.5mm !important;
        gap: 7mm !important;
    }

    .invoice-signature-block {
        min-height: 16mm !important;
    }

    .invoice-signature-space {
        height: 4mm !important;
    }

    .invoice-print-footer {
        margin-top: 2.5mm !important;
        padding-top: 1.5mm !important;
    }
}


/* ============================================================
   Customer Delivery Note
   ============================================================ */
@media print {
    .print-delivery-sheet {
        display: block !important;
        width: 100% !important;
        font-family: Arial, Helvetica, sans-serif !important;
        font-size: 9pt !important;
        line-height: 1.25 !important;
        color: #111 !important;
    }
    .delivery-print-header { display:grid; grid-template-columns:1.4fr 1fr; gap:8mm; border-bottom:2px solid #173b2f; padding-bottom:3mm; }
    .delivery-company-name { font-size:15pt; font-weight:800; text-transform:uppercase; margin-bottom:1mm; }
    .delivery-company-address { margin-top:1mm; }
    .delivery-company-contact { display:flex; flex-wrap:wrap; gap:1mm 4mm; margin-top:1mm; font-size:8pt; }
    .delivery-title-block { text-align:right; }
    .delivery-title { font-size:18pt; font-weight:800; letter-spacing:1px; margin-bottom:2mm; }
    .delivery-meta-grid { display:grid; grid-template-columns:1fr 1fr; border:1px solid #cfd5d1; text-align:left; }
    .delivery-meta-grid > div { padding:1.7mm 2mm; border-right:1px solid #cfd5d1; border-bottom:1px solid #cfd5d1; }
    .delivery-meta-grid > div:nth-child(2n) { border-right:0; }
    .delivery-meta-grid > div:nth-last-child(-n+2) { border-bottom:0; }
    .delivery-meta-grid span { display:block; color:#65706b; font-size:7.5pt; margin-bottom:.5mm; }
    .delivery-party-grid { display:grid; grid-template-columns:1fr 1fr; gap:4mm; margin-top:3mm; }
    .delivery-party-card,.delivery-note-box { border:1px solid #cfd5d1; padding:2.5mm; break-inside:avoid; }
    .delivery-label { font-size:7.5pt; font-weight:800; letter-spacing:.7px; color:#31594b; margin-bottom:1mm; }
    .delivery-party-name { font-size:10.5pt; font-weight:800; margin-bottom:1mm; }
    .delivery-muted { color:#666; font-style:italic; }
    .delivery-print-table { width:100%!important; margin-top:3mm; border-collapse:collapse!important; table-layout:fixed!important; font-size:8.5pt!important; }
    .delivery-print-table th { background:#173b2f!important; color:#fff!important; border:1px solid #173b2f!important; padding:1.5mm!important; }
    .delivery-print-table td { border:1px solid #cfd5d1!important; padding:1.6mm!important; vertical-align:top!important; }
    .delivery-col-no{width:5%}.delivery-col-item{width:36%}.delivery-col-warehouse{width:29%}.delivery-col-uom{width:12%}.delivery-col-qty{width:18%}
    .delivery-item-code{font-size:7.5pt;color:#59645f}.delivery-item-name{font-weight:800}.delivery-qty{font-weight:800;white-space:nowrap}
    .delivery-bottom-grid{display:grid;grid-template-columns:1fr 32%;gap:5mm;margin-top:3mm;align-items:start}
    .delivery-total-box{border:1px solid #c4cbc6;padding:3mm;display:flex;justify-content:space-between;font-size:11pt;font-weight:800;break-inside:avoid}
    .delivery-signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:10mm;margin-top:5mm;padding-top:3mm;border-top:1px solid #cfd5d1;break-inside:avoid}
    .delivery-signature{text-align:right}.signature-space{height:7mm}.signature-line{border-bottom:1px solid #777;height:8mm;margin-bottom:1mm}
    .delivery-print-footer{display:flex;justify-content:space-between;margin-top:3mm;padding-top:1.5mm;border-top:1px solid #d8ddd9;color:#69726e;font-size:7pt}
}

/* ============================================================
   Customer Receipt
   ============================================================ */
@media print {
    .print-receipt-sheet { display:block!important;width:100%!important;font-family:Arial,Helvetica,sans-serif!important;font-size:9pt!important;line-height:1.3!important;color:#111!important; }
    .receipt-print-header { display:grid;grid-template-columns:1.4fr 1fr;gap:8mm;border-bottom:2px solid #173b2f;padding-bottom:3mm; }
    .receipt-company-name { font-size:15pt;font-weight:800;text-transform:uppercase;margin-bottom:1mm; }
    .receipt-company-contact { display:flex;flex-wrap:wrap;gap:1mm 4mm;margin-top:1mm;font-size:8pt; }
    .receipt-title-block{text-align:right}.receipt-title{font-size:18pt;font-weight:800;letter-spacing:1px;margin-bottom:2mm}
    .receipt-meta-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid #cfd5d1;text-align:left}.receipt-meta-grid>div{padding:1.7mm 2mm;border-right:1px solid #cfd5d1;border-bottom:1px solid #cfd5d1}.receipt-meta-grid>div:nth-child(2n){border-right:0}.receipt-meta-grid>div:nth-last-child(-n+2){border-bottom:0}.receipt-meta-grid span{display:block;color:#65706b;font-size:7.5pt;margin-bottom:.5mm}
    .receipt-customer-card{border:1px solid #cfd5d1;padding:3mm;margin-top:3mm;break-inside:avoid}.receipt-customer-name{font-size:11pt;font-weight:800}
    .receipt-amount-box{display:flex;justify-content:space-between;align-items:center;border:1px solid #c4cbc6;background:#f4f7f5;padding:4mm;margin-top:3mm;font-size:12pt}.receipt-amount-box strong{font-size:15pt}
    .receipt-amount-words,.receipt-note-box,.receipt-bank-box{border:1px solid #cfd5d1;padding:2.5mm;margin-top:3mm;break-inside:avoid}.receipt-amount-words strong{font-size:10pt}
    .receipt-print-table{width:100%!important;margin-top:3mm;border-collapse:collapse!important;table-layout:fixed!important;font-size:8.5pt!important}.receipt-print-table th{background:#173b2f!important;color:#fff!important;border:1px solid #173b2f!important;padding:1.6mm!important}.receipt-print-table td{border:1px solid #cfd5d1!important;padding:1.7mm!important}
    .receipt-summary{width:38%;margin:3mm 0 0 auto;border:1px solid #c4cbc6;padding:3mm;break-inside:avoid}.receipt-summary>div{display:flex;justify-content:space-between;padding:1mm 0}.receipt-grand{border-top:1.5px solid #173b2f;margin-top:1mm;padding-top:2mm!important;font-size:11pt;font-weight:800}
    .receipt-bank-box{display:flex;flex-wrap:wrap;gap:1mm 5mm}.receipt-signature{text-align:right;margin-top:5mm;padding-top:3mm;border-top:1px solid #cfd5d1;break-inside:avoid}.receipt-print-footer{display:flex;justify-content:space-between;margin-top:3mm;padding-top:1.5mm;border-top:1px solid #d8ddd9;color:#69726e;font-size:7pt}
}

/* ============================================================
   CraftGrid - Sales Order customer print
   Dedicated paper layout. Screen-responsive Sales Order markup
   is hidden while printing.
   ============================================================ */
@media print {
    .print-screen-content {
        display: none !important;
    }

    .print-sales-order-sheet {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #111 !important;
        background: #fff !important;
        font-family: Arial, Helvetica, sans-serif !important;
        font-size: 9pt !important;
        line-height: 1.25 !important;
    }

    .so-print-header {
        display: grid;
        grid-template-columns: 1.35fr 1fr;
        gap: 10mm;
        align-items: start;
        padding-bottom: 4mm;
        border-bottom: 2px solid #173b2f;
        margin-bottom: 4mm;
    }

    .so-company-name {
        font-size: 17pt;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: .15px;
        margin-bottom: 1mm;
    }

    .so-document-subtitle {
        color: #52615b;
        font-size: 10pt;
    }

    .so-title-block {
        text-align: right;
    }

    .so-document-title {
        font-size: 19pt;
        font-weight: 800;
        letter-spacing: 1px;
        margin-bottom: 2mm;
    }

    .so-meta-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        border: 1px solid #cfd5d1;
    }

    .so-meta-grid > div {
        padding: 2mm 2.5mm;
        border-right: 1px solid #cfd5d1;
        border-bottom: 1px solid #cfd5d1;
    }

    .so-meta-grid > div:nth-child(2n) {
        border-right: 0;
    }

    .so-meta-grid > div:nth-last-child(-n+2) {
        border-bottom: 0;
    }

    .so-meta-grid span {
        display: block;
        color: #68736f;
        font-size: 7.5pt;
        margin-bottom: .5mm;
    }

    .so-meta-grid strong {
        font-size: 9pt;
    }

    .so-party-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 5mm;
        margin-bottom: 4mm;
    }

    .so-party-box {
        border: 1px solid #cfd5d1;
        padding: 3mm 3.5mm;
        min-height: 23mm;
    }

    .so-party-label,
    .so-section-label {
        color: #173b2f;
        font-weight: 800;
        font-size: 8pt;
        letter-spacing: .7px;
        margin-bottom: 1.5mm;
    }

    .so-party-name {
        font-size: 12pt;
        font-weight: 800;
        margin-bottom: 1mm;
    }

    .so-label-inline {
        color: #68736f;
    }

    .so-muted,
    .so-item-uom,
    .so-subamount {
        color: #68736f;
    }

    .so-print-table {
        width: 100% !important;
        table-layout: fixed !important;
        border-collapse: collapse !important;
        margin: 0 !important;
        font-size: 8.5pt !important;
    }

    .so-print-table th {
        background: #173b2f !important;
        color: #fff !important;
        font-weight: 700 !important;
        padding: 2.2mm 1.5mm !important;
        border: 1px solid #173b2f !important;
        white-space: nowrap !important;
    }

    .so-print-table td {
        padding: 2.2mm 1.5mm !important;
        border: 1px solid #cfd5d1 !important;
        vertical-align: middle !important;
        overflow-wrap: anywhere;
    }

    .so-print-table th:nth-child(1), .so-print-table td:nth-child(1) { width: 4%; }
    .so-print-table th:nth-child(2), .so-print-table td:nth-child(2) { width: 25%; }
    .so-print-table th:nth-child(3), .so-print-table td:nth-child(3) { width: 15%; }
    .so-print-table th:nth-child(4), .so-print-table td:nth-child(4) { width: 7%; }
    .so-print-table th:nth-child(5), .so-print-table td:nth-child(5) { width: 7%; }
    .so-print-table th:nth-child(6), .so-print-table td:nth-child(6) { width: 7%; }
    .so-print-table th:nth-child(7), .so-print-table td:nth-child(7) { width: 10%; }
    .so-print-table th:nth-child(8), .so-print-table td:nth-child(8) { width: 9%; }
    .so-print-table th:nth-child(9), .so-print-table td:nth-child(9) { width: 7%; }
    .so-print-table th:nth-child(10), .so-print-table td:nth-child(10) { width: 9%; }

    .so-item-code {
        color: #52615b;
        font-size: 7.5pt;
    }

    .so-item-name {
        font-size: 9.5pt;
        font-weight: 800;
    }

    .so-item-uom {
        font-size: 7.5pt;
        margin-top: .5mm;
    }

    .so-subamount {
        font-size: 7.5pt;
    }

    .so-amount {
        font-weight: 800;
    }

    .so-bottom-grid {
        display: grid;
        grid-template-columns: 1fr 34%;
        gap: 6mm;
        align-items: start;
        margin-top: 4mm;
    }

    .so-note-box {
        border: 1px solid #cfd5d1;
        padding: 2.5mm 3mm;
        margin-bottom: 2.5mm;
        break-inside: avoid;
    }

    .so-note-box > div:last-child {
        white-space: pre-wrap;
    }

    .so-summary-box {
        border: 1px solid #cfd5d1;
        padding: 3mm 3.5mm;
        break-inside: avoid;
    }

    .so-summary-box > div {
        display: flex;
        justify-content: space-between;
        gap: 5mm;
        padding: .8mm 0;
    }

    .so-summary-box strong {
        white-space: nowrap;
    }

    .so-grand-total {
        border-top: 1px solid #b9c2bd;
        margin-top: 2mm;
        padding-top: 2.5mm !important;
        font-size: 12pt;
        font-weight: 800;
    }

    .so-history {
        margin-top: 3mm;
        border-top: 1px solid #cfd5d1;
        padding-top: 2mm;
        break-inside: avoid;
    }

    .so-history table {
        width: 100%;
        border-collapse: collapse;
        font-size: 7.5pt;
    }

    .so-history th,
    .so-history td {
        border: 1px solid #d7dcd9;
        padding: 1.3mm 1.5mm;
        text-align: left;
    }

    .so-history th {
        background: #f3f5f4;
        font-weight: 700;
    }

    .so-print-footer {
        display: flex;
        justify-content: space-between;
        border-top: 1px solid #cfd5d1;
        margin-top: 4mm;
        padding-top: 2mm;
        color: #68736f;
        font-size: 7.5pt;
    }

    .print-sales-order-sheet * {
        box-sizing: border-box;
    }
}
