/**
 * BizFlow Pro - Print Stylesheet
 * Perfect invoice printing for all document types
 * Handles: A4, Letter, thermal receipt sizes
 *
 * @package BizFlow_Pro
 * @version 1.0.0
 */

/* ============================================
   BASE PRINT RESET
   ============================================ */

@media print {

    /* Page setup */
    @page {
        size: A4 portrait;
        margin: 12mm 12mm 16mm 12mm;
        orphans: 3;
        widows: 3;
    }

    @page :first {
        margin-top: 10mm;
    }

    /* Base reset for print */
    *,
    *::before,
    *::after {
        box-shadow: none !important;
        text-shadow: none !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color-adjust: exact !important;
    }

    html {
        font-size: 11pt;
    }

    body {
        font-family: 'Arial', 'Helvetica Neue', Helvetica, sans-serif;
        font-size: 11pt;
        line-height: 1.5;
        color: #1F2937;
        background: #ffffff !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
    }

    /* ============================================
       HIDE NON-PRINTABLE ELEMENTS
       ============================================ */

    /* Navigation & UI */
    .site-header,
    .site-footer,
    .app-footer,
    .dashboard-sidebar,
    .sidebar-nav,
    .sidebar-plan-info,

    /* Controls */
    .creator-header,
    .creator-sidebar,
    .invoice-view-actions,
    .creator-header-actions,
    .filters-card,
    .bulk-action-bar,
    .doc-stats-row,
    .pagination,

    /* Buttons */
    .btn,
    button,
    .row-actions,
    .item-action-btns,
    .add-item-footer,
    .totals-toggles,
    .signature-actions,
    .column-toggles,

    /* UI elements */
    .toast-container,
    .modal-overlay,
    .cookie-banner,
    .scroll-top-btn,
    .skip-link,
    .page-loader,
    .mobile-menu-toggle,
    .mobile-nav,
    .mega-menu,
    .dropdown-menu,
    .alert-banner,
    .notification-dropdown,
    .user-dropdown,
    .header-search-wrapper,
    .company-switcher,

    /* Misc */
    .no-print,
    [aria-hidden="true"]:not(.invoice-stamp),
    iframe:not(.print-frame),
    video,
    audio,
    form:not(.print-form) {
        display: none !important;
    }

    /* ============================================
       LAYOUT RESET FOR PRINT
       ============================================ */

    .dashboard-layout,
    .dashboard-main,
    .invoice-page-main,
    .auth-wrapper,
    .auth-page-wrapper {
        display: block !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        max-width: 100% !important;
    }

    .creator-layout {
        display: block !important;
        grid-template-columns: none !important;
    }

    .creator-main {
        width: 100% !important;
    }

    /* ============================================
       INVOICE DOCUMENT PRINT
       ============================================ */

    .invoice-document {
        box-shadow: none !important;
        border: none !important;
        border-radius: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        page-break-inside: avoid;
    }

    .invoice-view-wrapper {
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* ============================================
       INVOICE HEADER
       ============================================ */

    .invoice-doc-header {
        display: flex !important;
        justify-content: space-between !important;
        align-items: flex-start !important;
        padding: 0 0 12pt !important;
        margin-bottom: 16pt !important;
        border-bottom: 3pt solid currentColor !important;
        page-break-inside: avoid !important;
        flex-wrap: nowrap !important;
    }

    .company-branding .company-logo {
        max-height: 60pt !important;
        max-width: 180pt !important;
        display: block !important;
    }

    .company-branding .company-name {
        font-size: 18pt !important;
        font-weight: 900 !important;
        line-height: 1.2 !important;
    }

    .invoice-type-label {
        font-size: 22pt !important;
        font-weight: 900 !important;
        line-height: 1 !important;
    }

    .invoice-number {
        font-size: 11pt !important;
        font-weight: 700 !important;
        margin-top: 4pt !important;
    }

    .invoice-doc-date {
        font-size: 9pt !important;
        color: #6B7280 !important;
    }

    /* ============================================
       ADDRESS SECTION
       ============================================ */

    .invoice-addresses {
        display: flex !important;
        gap: 24pt !important;
        padding: 12pt 0 !important;
        margin-bottom: 12pt !important;
        border-bottom: 1pt solid #E5E7EB !important;
        page-break-inside: avoid !important;
        flex-wrap: nowrap !important;
    }

    .invoice-address-block {
        flex: 1 !important;
    }

    .address-label {
        font-size: 7pt !important;
        font-weight: 800 !important;
        text-transform: uppercase !important;
        letter-spacing: .08em !important;
        color: #9CA3AF !important;
        margin-bottom: 5pt !important;
    }

    .address-company-name {
        font-size: 11pt !important;
        font-weight: 800 !important;
        color: #111827 !important;
        margin-bottom: 3pt !important;
    }

    .address-line {
        font-size: 9pt !important;
        color: #6B7280 !important;
        line-height: 1.5 !important;
    }

    .address-gst {
        font-size: 9pt !important;
        color: #374151 !important;
        font-weight: 600 !important;
        margin-top: 4pt !important;
    }

    /* ============================================
       META BAR
       ============================================ */

    .invoice-meta-bar {
        display: flex !important;
        border: 1pt solid #E5E7EB !important;
        border-radius: 4pt !important;
        margin-bottom: 12pt !important;
        page-break-inside: avoid !important;
        background: #F9FAFB !important;
    }

    .invoice-meta-item {
        flex: 1 !important;
        padding: 6pt 10pt !important;
        border-right: 1pt solid #E5E7EB !important;
    }

    .invoice-meta-item:last-child {
        border-right: none !important;
    }

    .invoice-meta-label {
        font-size: 7pt !important;
        font-weight: 800 !important;
        text-transform: uppercase !important;
        letter-spacing: .07em !important;
        color: #9CA3AF !important;
        margin-bottom: 2pt !important;
    }

    .invoice-meta-value {
        font-size: 10pt !important;
        font-weight: 700 !important;
        color: #111827 !important;
    }

    .invoice-meta-value.overdue {
        color: #DC2626 !important;
    }

    /* ============================================
       LINE ITEMS TABLE
       ============================================ */

    .invoice-items-wrapper {
        padding: 0 !important;
        margin-bottom: 12pt !important;
    }

    .invoice-items-table {
        width: 100% !important;
        border-collapse: collapse !important;
        page-break-inside: auto !important;
    }

    .invoice-items-table thead {
        display: table-header-group !important;
    }

    .invoice-items-table tbody {
        display: table-row-group !important;
    }

    .invoice-items-table thead th {
        padding: 6pt 8pt !important;
        font-size: 8pt !important;
        font-weight: 800 !important;
        text-transform: uppercase !important;
        letter-spacing: .06em !important;
        color: #ffffff !important;
        border-bottom: none !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .invoice-items-table tbody td {
        padding: 6pt 8pt !important;
        font-size: 10pt !important;
        border-bottom: .5pt solid #E5E7EB !important;
        vertical-align: top !important;
    }

    .invoice-items-table tbody tr:last-child td {
        border-bottom: none !important;
    }

    .invoice-item-name {
        font-size: 10pt !important;
        font-weight: 700 !important;
        color: #111827 !important;
    }

    .invoice-item-desc {
        font-size: 8pt !important;
        color: #9CA3AF !important;
        margin-top: 2pt !important;
    }

    .invoice-item-hsn {
        font-size: 7pt !important;
        color: #9CA3AF !important;
    }

    .invoice-item-amount {
        font-weight: 700 !important;
        color: #111827 !important;
    }

    /* Avoid page break inside item rows */
    .invoice-items-table tbody tr {
        page-break-inside: avoid !important;
    }

    /* ============================================
       TOTALS SECTION
       ============================================ */

    .invoice-totals-section {
        display: flex !important;
        justify-content: flex-end !important;
        padding: 0 0 12pt !important;
        margin-bottom: 12pt !important;
        page-break-inside: avoid !important;
    }

    .invoice-totals-table {
        width: 220pt !important;
        border-collapse: collapse !important;
    }

    .invoice-totals-table td {
        padding: 3pt 6pt !important;
        font-size: 10pt !important;
        border-bottom: .5pt solid #F3F4F6 !important;
        color: #374151 !important;
    }

    .invoice-totals-table td:last-child {
        text-align: right !important;
        font-weight: 600 !important;
        color: #111827 !important;
    }

    .invoice-total-final td {
        font-size: 13pt !important;
        font-weight: 900 !important;
        padding-top: 6pt !important;
        padding-bottom: 6pt !important;
        border-top: 2pt solid currentColor !important;
        border-bottom: 2pt solid currentColor !important;
    }

    .invoice-due-final td {
        font-size: 12pt !important;
        font-weight: 900 !important;
        color: #DC2626 !important;
    }

    /* ============================================
       AMOUNT IN WORDS
       ============================================ */

    .invoice-amount-words {
        font-size: 9pt !important;
        font-style: italic !important;
        color: #6B7280 !important;
        padding: 6pt 8pt !important;
        margin: 0 0 10pt !important;
        background: #F9FAFB !important;
        border-radius: 3pt !important;
        border-left: 3pt solid currentColor !important;
        page-break-inside: avoid !important;
    }

    /* ============================================
       BANK DETAILS
       ============================================ */

    .invoice-bank-section {
        padding: 8pt 10pt !important;
        margin: 0 0 10pt !important;
        background: #F9FAFB !important;
        border: .5pt solid #E5E7EB !important;
        border-radius: 4pt !important;
        page-break-inside: avoid !important;
    }

    .invoice-bank-label {
        font-size: 7pt !important;
        font-weight: 800 !important;
        text-transform: uppercase !important;
        letter-spacing: .08em !important;
        color: #9CA3AF !important;
        margin-bottom: 4pt !important;
    }

    .invoice-bank-text {
        font-size: 9pt !important;
        color: #374151 !important;
        line-height: 1.6 !important;
    }

    /* ============================================
       NOTES & TERMS
       ============================================ */

    .invoice-notes-section {
        display: flex !important;
        gap: 16pt !important;
        margin: 0 0 10pt !important;
        page-break-inside: avoid !important;
    }

    .invoice-notes-block {
        flex: 1 !important;
    }

    .invoice-notes-label {
        font-size: 7pt !important;
        font-weight: 800 !important;
        text-transform: uppercase !important;
        letter-spacing: .08em !important;
        color: #9CA3AF !important;
        margin-bottom: 3pt !important;
    }

    .invoice-notes-text {
        font-size: 9pt !important;
        color: #6B7280 !important;
        line-height: 1.6 !important;
    }

    /* ============================================
       SIGNATURE SECTION
       ============================================ */

    .invoice-signature-section {
        display: flex !important;
        justify-content: flex-end !important;
        padding: 10pt 0 0 !important;
        page-break-inside: avoid !important;
    }

    .invoice-signature-block {
        text-align: center !important;
        min-width: 130pt !important;
    }

    .invoice-signature-img {
        max-height: 48pt !important;
        max-width: 160pt !important;
        display: block !important;
        margin: 0 auto 4pt !important;
    }

    .invoice-signature-line {
        border-top: 1pt solid #374151 !important;
        margin-bottom: 4pt !important;
    }

    .invoice-signature-name {
        font-size: 8pt !important;
        color: #6B7280 !important;
        font-weight: 600 !important;
    }

    /* ============================================
       INVOICE FOOTER
       ============================================ */

    .invoice-doc-footer {
        padding: 8pt 0 0 !important;
        border-top: 2pt solid currentColor !important;
        text-align: center !important;
        background: none !important;
        margin-top: 12pt !important;
        page-break-inside: avoid !important;
    }

    .invoice-footer-text {
        font-size: 9pt !important;
        color: #6B7280 !important;
    }

    .invoice-footer-powered {
        font-size: 7pt !important;
        color: #D1D5DB !important;
    }

    /* ============================================
       PAID / VOID STAMPS
       ============================================ */

    .invoice-stamp {
        position: fixed !important;
        top: 80pt !important;
        right: 30pt !important;
        font-size: 28pt !important;
        font-weight: 900 !important;
        text-transform: uppercase !important;
        border: 5pt solid currentColor !important;
        border-radius: 6pt !important;
        padding: 4pt 12pt !important;
        opacity: .15 !important;
        transform: rotate(-20deg) !important;
        letter-spacing: .05em !important;
        pointer-events: none !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .invoice-stamp.stamp-paid {
        color: #10B981 !important;
        border-color: #10B981 !important;
    }

    .invoice-stamp.stamp-void {
        color: #EF4444 !important;
        border-color: #EF4444 !important;
    }

    /* ============================================
       GST INVOICE SPECIFIC
       ============================================ */

    .gst-summary-table {
        width: 100% !important;
        border-collapse: collapse !important;
        margin: 8pt 0 !important;
        page-break-inside: avoid !important;
    }

    .gst-summary-table th {
        background: #F3F4F6 !important;
        padding: 5pt 7pt !important;
        font-size: 8pt !important;
        font-weight: 700 !important;
        border: .5pt solid #E5E7EB !important;
    }

    .gst-summary-table td {
        padding: 5pt 7pt !important;
        font-size: 9pt !important;
        border: .5pt solid #E5E7EB !important;
        text-align: right !important;
    }

    .gst-summary-table td:first-child {
        text-align: left !important;
        font-weight: 600 !important;
    }

    /* ============================================
       DELIVERY CHALLAN SPECIFIC
       ============================================ */

    .dc-vehicle-section {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 8pt !important;
        margin: 8pt 0 !important;
        padding: 8pt !important;
        border: 1pt solid #E5E7EB !important;
        border-radius: 4pt !important;
        page-break-inside: avoid !important;
    }

    .dc-vehicle-field {
        font-size: 9pt !important;
    }

    .dc-vehicle-label {
        font-size: 7pt !important;
        color: #9CA3AF !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        margin-bottom: 2pt !important;
    }

    .dc-vehicle-value {
        font-size: 10pt !important;
        font-weight: 600 !important;
        color: #111827 !important;
        border-bottom: 1pt solid #E5E7EB !important;
        padding-bottom: 2pt !important;
    }

    /* ============================================
       PURCHASE ORDER SPECIFIC
       ============================================ */

    .po-delivery-section {
        padding: 8pt !important;
        border: 1pt solid #E5E7EB !important;
        border-radius: 4pt !important;
        margin: 8pt 0 !important;
        page-break-inside: avoid !important;
    }

    .po-terms-section {
        margin-top: 8pt !important;
        page-break-inside: avoid !important;
    }

    /* ============================================
       QR CODE SECTION (for e-invoicing)
       ============================================ */

    .invoice-qr-section {
        display: flex !important;
        justify-content: flex-end !important;
        margin-top: 8pt !important;
        page-break-inside: avoid !important;
    }

    .invoice-qr-code {
        width: 64pt !important;
        height: 64pt !important;
        display: block !important;
    }

    .invoice-qr-label {
        font-size: 7pt !important;
        color: #9CA3AF !important;
        text-align: center !important;
        margin-top: 3pt !important;
    }

    /* ============================================
       MULTIPLE PAGE HANDLING
       ============================================ */

    /* Page break controls */
    .page-break-before { page-break-before: always !important; }
    .page-break-after  { page-break-after: always !important; }
    .page-break-inside-avoid { page-break-inside: avoid !important; }

    /* Keep together groups */
    .invoice-totals-section,
    .invoice-signature-section,
    .invoice-doc-footer,
    .invoice-bank-section {
        page-break-before: auto !important;
    }

    /* Allow items table to span pages */
    .invoice-items-table {
        page-break-inside: auto !important;
    }

    /* Repeated header on each page */
    .print-repeat-header {
        display: table-header-group !important;
    }

    /* ============================================
       WATERMARK (for draft/copy)
       ============================================ */

    .print-watermark {
        position: fixed !important;
        top: 40% !important;
        left: 50% !important;
        transform: translate(-50%, -50%) rotate(-45deg) !important;
        font-size: 72pt !important;
        font-weight: 900 !important;
        color: rgba(0, 0, 0, .04) !important;
        text-transform: uppercase !important;
        letter-spacing: .2em !important;
        pointer-events: none !important;
        z-index: 9999 !important;
        white-space: nowrap !important;
    }

    /* ============================================
       LINKS IN PRINT
       ============================================ */

    /* Don't show link URLs in print */
    a[href]:after { content: none !important; }
    a { color: inherit !important; text-decoration: none !important; }

    /* ============================================
       TABLE FORMATTING FOR PRINT
       ============================================ */

    table {
        border-collapse: collapse !important;
    }

    th, td {
        orphans: 2 !important;
        widows: 2 !important;
    }

    /* ============================================
       PRINT-SPECIFIC UTILITY CLASSES
       ============================================ */

    .print-only { display: block !important; }
    .screen-only { display: none !important; }

    /* Print visible */
    .print-visible {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    /* ============================================
       THERMAL RECEIPT FORMAT (58mm / 80mm)
       Activated with class .thermal-print
       ============================================ */

    .thermal-print {
        width: 72mm !important;
        font-size: 9pt !important;
        font-family: 'Courier New', Courier, monospace !important;
    }

    .thermal-print .invoice-doc-header {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        border-bottom: 1pt dashed #000 !important;
    }

    .thermal-print .invoice-type-label {
        font-size: 14pt !important;
    }

    .thermal-print .invoice-number {
        font-size: 9pt !important;
    }

    .thermal-print .invoice-addresses {
        flex-direction: column !important;
        border-bottom: 1pt dashed #000 !important;
    }

    .thermal-print .invoice-items-table thead th {
        font-size: 7pt !important;
        padding: 2pt 4pt !important;
    }

    .thermal-print .invoice-items-table tbody td {
        font-size: 8pt !important;
        padding: 2pt 4pt !important;
    }

    .thermal-print .invoice-totals-table {
        width: 100% !important;
        border-top: 1pt dashed #000 !important;
    }

    .thermal-print .invoice-doc-footer {
        border-top: 1pt dashed #000 !important;
        text-align: center !important;
    }

} /* end @media print */

/* ============================================
   PRINT PREVIEW HELPER CLASSES
   (Screen styles to simulate print)
   ============================================ */

.print-preview-mode {
    background: #9CA3AF;
    padding: 2rem;
    min-height: 100vh;
}

.print-preview-page {
    background: white;
    width: 210mm;
    min-height: 297mm;
    margin: 0 auto 2rem;
    padding: 12mm;
    box-shadow: 0 8px 32px rgba(0, 0, 0, .3);
    position: relative;
    page-break-after: always;
}

.print-preview-page::before {
    content: 'A4 Preview';
    position: absolute;
    top: -1.5rem;
    left: 0;
    font-size: .75rem;
    color: #E5E7EB;
    font-weight: 600;
}

/* ============================================
   PRINT BUTTON STYLES (Screen only)
   ============================================ */

.print-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem 1rem;
    background: var(--gray-800);
    color: var(--white);
    border: none;
    border-radius: var(--radius-lg);
    font-size: .875rem;
    font-weight: 600;
    cursor: pointer;
    transition: all .2s ease;
    font-family: var(--font-primary);
}

.print-btn:hover {
    background: var(--gray-900);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.print-btn:active {
    transform: translateY(0);
}