/**
 * Print Styles
 * Applied via @media print for printable pages
 */

@media print {
    /* Reset page for printing */
    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    @page {
        margin: 0.5in;
        size: letter;
    }

    body {
        margin: 0;
        padding: 0;
        background: white !important;
        font-size: 12pt;
        line-height: 1.4;
    }

    /* Hide non-printable elements */
    #header,
    #footer,
    #submenu,
    #navbuttons,
    #admin_container,
    #error_container,
    .no-print,
    .print-hide,
    .buttonlink,
    .button,
    .dropdown,
    .kp,
    .kill_parent,
    .xbutton,
    .order_admin_container,
    .oi_quantity_edit_container,
    .payment_options,
    .stripe_form_v4,
    .membership_agreement_container form,
    .order_note_container .dropdown,
    .payment_source,
    .submitbutton,
    .admin_payment_form,
    nav,
    footer,
    form[method="POST"],
    .crb_switch_container,
    .stp[data-switch_on_data] {
        display: none !important;
    }

    /* Show print-only elements */
    .print-only {
        display: block !important;
    }

    /* Content area adjustments */
    #content {
        min-height: auto !important;
        padding: 0;
    }

    /* Links: show URL for external links, hide decoration */
    a {
        text-decoration: none !important;
        color: black !important;
    }

    a[href^="http"]:after {
        content: " (" attr(href) ")";
        font-size: 9pt;
        color: #666;
    }

    /* Don't show URL for internal/anchor links */
    a[href^="#"]:after,
    a[href^="/"]:after,
    a.no-print-url:after {
        content: none;
    }

    /* Order/Invoice print styles */
    .order {
        width: 100% !important;
        max-width: 100% !important;
        border: 1px solid #000 !important;
        margin: 0 auto !important;
        page-break-inside: avoid;
    }

    .order_basic_info_container {
        border-bottom: 2px solid #000;
        padding-bottom: 10pt;
        margin-bottom: 10pt;
    }

    .order_items_container {
        margin: 10pt 0;
    }

    .order_item_container {
        border-bottom: 1px dotted #ccc;
        padding: 5pt 0;
        page-break-inside: avoid;
    }

    .order_total_price {
        font-size: 14pt;
        font-weight: bold;
        border-top: 2px solid #000;
        padding-top: 10pt;
        margin-top: 10pt;
    }

    /* Payment info on invoice */
    .payment_info_print {
        margin-top: 15pt;
        padding-top: 10pt;
        border-top: 1px solid #ccc;
    }

    /* CSA Agreement print styles */
    .csa_agreement_print {
        max-width: 100%;
    }

    .csa_agreement_print h1 {
        font-size: 18pt;
        text-align: center;
        margin-bottom: 20pt;
    }

    .csa_agreement_print .agreement_text {
        font-size: 11pt;
        line-height: 1.6;
        text-align: justify;
    }

    .csa_agreement_print .signature_block {
        margin-top: 30pt;
        padding-top: 15pt;
        border-top: 2px solid #000;
    }

    .csa_agreement_print .signature_line {
        margin-top: 20pt;
        border-bottom: 1px solid #000;
        width: 60%;
        display: inline-block;
    }

    /* Order note display */
    .order_note_text {
        display: block !important;
        margin-top: 10pt;
        padding: 8pt;
        background: #f5f5f5 !important;
        border: 1px solid #ddd;
    }

    /* Page breaks */
    .page-break {
        page-break-after: always;
    }

    .page-break-before {
        page-break-before: always;
    }

    .no-page-break {
        page-break-inside: avoid;
    }

    /* Print header/footer for document */
    .print-header {
        text-align: center;
        margin-bottom: 20pt;
        padding-bottom: 10pt;
        border-bottom: 2px solid #000;
    }

    .print-header img {
        max-height: 60pt;
    }

    .print-footer {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        text-align: center;
        font-size: 9pt;
        color: #666;
        padding-top: 10pt;
        border-top: 1px solid #ccc;
    }
}

/* Print button styling (visible on screen, hidden in print) */
.print-button {
    display: inline-block;
    padding: 8px 16px;
    background: #4a7c59;
    color: white;
    border: none;
    cursor: pointer;
    font-size: 14px;
    margin: 10px 0;
}

.print-button:hover {
    background: #3a6249;
}

@media print {
    .print-button {
        display: none !important;
    }
}
