/* ==========================================================================
   Shriniwas Management Portal - Centralized Universal Print Stylesheet
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. SCREEN ONLY DEFAULTS (Hidden on screen)
   -------------------------------------------------------------------------- */
.print-only,
.print-header-block,
.print-footer-block {
    display: none !important;
}

/* --------------------------------------------------------------------------
   2. UNIVERSAL PRINT MEDIA RULES
   -------------------------------------------------------------------------- */
@media print {
    /* Page Configuration: Default A4 Portrait */
    @page {
        size: A4 portrait;
        margin: 8mm 8mm 8mm 8mm;
    }

    /* Landscape Page Configuration */
    @page landscape-mode {
        size: A4 landscape;
        margin: 6mm 6mm 6mm 6mm;
    }

    /* Thermal Receipt Page Configuration */
    @page thermal-mode {
        size: 80mm auto;
        margin: 2mm;
    }

    .print-landscape {
        page: landscape-mode;
    }

    .print-thermal {
        page: thermal-mode;
    }

    /* Global Visibility Toggles: Hide UI & non-printable elements */
    .no-print,
    #printpagebutton,
    #ssss,
    .topbar,
    .left.side-menu,
    .side-menu,
    .footer:not(.print-footer-block),
    .page-title-box,
    .card-header:not(.print-keep),
    form:not(.print-form),
    .btn:not(.print-keep-btn),
    .dataTables_length,
    .dataTables_filter,
    .dataTables_info,
    .dataTables_paginate,
    .breadcrumb,
    marquee,
    .navbar-custom,
    .alert-info:not(.print-keep),
    .alert-success:not(.print-keep),
    .alert-danger:not(.print-keep) {
        display: none !important;
        height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
    }

    .print-only,
    .print-header-block,
    .print-footer-block {
        display: block !important;
    }

    /* RESET ALL WRAPPERS, MARGINS & PADDINGS TO PREVENT BLANK FIRST PAGE */
    html, body {
        background: #ffffff !important;
        color: #000000 !important;
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
        font-size: 10pt !important;
        line-height: 1.35 !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        height: auto !important;
        overflow: visible !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    #wrapper,
    .home-wrapper,
    .content-page,
    .content-page .content,
    .content,
    .container-fluid,
    .card,
    .card-body,
    .panel-body,
    .wrapper,
    .main-content,
    .row,
    [class*="col-"] {
        margin: 0 !important;
        padding: 0 !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
        position: static !important;
        overflow: visible !important;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
    }

    /* Table Print Formatting */
    table,
    .table {
        width: 100% !important;
        border-collapse: collapse !important;
        border-spacing: 0 !important;
        background: #ffffff !important;
        margin-top: 5px !important;
        margin-bottom: 10px !important;
    }

    table th,
    table td,
    .table th,
    .table td,
    .table-bordered th,
    .table-bordered td {
        border: 1px solid #222222 !important;
        padding: 4px 6px !important;
        font-size: 9pt !important;
        color: #000000 !important;
        background: #ffffff !important;
        vertical-align: middle !important;
    }

    table th,
    .table th,
    .table-bordered th {
        background-color: #f1f5f9 !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        font-size: 8.5pt !important;
        letter-spacing: 0.2px !important;
    }

    /* Automatic Header Repetition across Pages */
    thead {
        display: table-header-group !important;
    }

    tfoot {
        display: table-footer-group !important;
    }

    /* Page Break Protections (CRITICAL: Do NOT put page-break-inside: avoid on .card or .card-body!) */
    tr,
    .avoid-break,
    .print-card,
    .invoice-title,
    .signature-section {
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    /* Links Formatting */
    a {
        text-decoration: none !important;
        color: #000000 !important;
    }

    a[href]:after {
        content: "" !important;
    }

    /* Badges & Status Text */
    .badge {
        border: 1px solid #333 !important;
        padding: 2px 5px !important;
        font-size: 8pt !important;
        color: #000 !important;
        background: #fff !important;
    }

    /* Universal Print Header Block Styling */
    .print-header-block {
        border-bottom: 2px solid #000000;
        padding-bottom: 6px;
        margin-bottom: 10px;
    }

    .print-header-block h2 {
        font-size: 15pt;
        font-weight: 700;
        margin: 0 0 3px 0;
        color: #000000;
        text-transform: uppercase;
    }

    .print-header-block h4 {
        font-size: 11pt;
        font-weight: 600;
        margin: 0 0 3px 0;
        color: #333333;
    }

    .print-header-block p {
        font-size: 8.5pt;
        margin: 0;
        color: #555555;
    }
}
