/* ========================================
   Print Stylesheet
   ======================================== */

@page {
    size: A4;
    margin: 20mm;
}

@media print {
    * {
        margin: 0;
        padding: 0;
        box-shadow: none !important;
    }

    html,
    body {
        background: white;
        color: black;
        font-size: 11pt;
        font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        line-height: 1.5;
    }

    /* Hide non-printable elements */
    .navbar,
    .sidebar,
    .footer,
    .btn,
    .form-control,
    .form-select,
    .no-print,
    .modal,
    .alert,
    .breadcrumb,
    .pagination,
    .toolbar {
        display: none !important;
    }

    /* Remove any layout margin/padding for print */
    body.with-sidebar {
        margin-left: 0;
    }

    .main-wrapper,
    .main-content {
        margin: 0;
        padding: 0;
    }

    /* Paper specific print styles */
    .paper-preview {
        max-width: 100%;
        margin: 0;
        padding: 0;
        box-shadow: none;
        page-break-after: always;
    }

    .paper-header {
        margin-bottom: 15mm;
    }

    .paper-section {
        page-break-inside: avoid;
        margin-bottom: 12mm;
    }

    .paper-question {
        page-break-inside: avoid;
        margin-bottom: 8mm;
    }

    .paper-footer {
        margin-top: 20mm;
        page-break-inside: avoid;
    }

    /* Preserve page structure */
    .page-break {
        page-break-after: always;
    }

    /* Text and color preservation */
    a {
        color: black;
        text-decoration: underline;
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        color: black;
        page-break-after: avoid;
        margin-bottom: 6pt;
    }

    p {
        margin-bottom: 6pt;
        page-break-inside: avoid;
    }

    table {
        border-collapse: collapse;
        page-break-inside: avoid;
        width: 100%;
    }

    tr {
        page-break-inside: avoid;
    }

    td,
    th {
        border: 1px solid #000;
        padding: 4pt;
        text-align: left;
    }

    thead {
        display: table-header-group;
    }

    tfoot {
        display: table-footer-group;
    }

    img {
        max-width: 100%;
        page-break-inside: avoid;
    }

    /* Equation rendering */
    .MathJax {
        color: black !important;
    }

    /* Badge and badge colors in print */
    .badge {
        border: 1px solid #000;
        background-color: transparent !important;
        color: black !important;
    }

    /* Code blocks */
    code {
        font-family: 'Courier New', monospace;
        color: black;
    }

    /* Lists */
    ul,
    ol {
        margin-bottom: 6pt;
        margin-left: 18pt;
    }

    li {
        margin-bottom: 3pt;
        page-break-inside: avoid;
    }

    /* Blockquotes */
    blockquote {
        border-left: 3px solid #000;
        padding-left: 12pt;
        margin: 12pt 0;
        color: black;
    }

    /* Remove background colors */
    .bg-light,
    .bg-primary,
    .bg-success,
    .bg-danger,
    .bg-warning,
    .bg-info {
        background-color: transparent !important;
    }

    /* Keep text colors visible */
    .text-muted {
        color: #666 !important;
    }

    .text-secondary {
        color: #666 !important;
    }

    /* Grid system adjustments for print */
    .container,
    .container-sm,
    .container-md,
    .container-lg,
    .container-xl,
    .container-xxl {
        width: 100%;
        max-width: 100%;
    }

    /* Bootstrap overrides for print */
    .row {
        display: block;
        width: 100%;
    }

    [class*="col-"] {
        display: block;
        width: 100%;
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
    }

    /* Hide unnecessary spacing */
    .m-0,
    .m-1,
    .m-2,
    .m-3,
    .m-4,
    .m-5 {
        margin: 0 !important;
    }

    .p-0,
    .p-1,
    .p-2,
    .p-3,
    .p-4,
    .p-5 {
        padding: 0 !important;
    }

    .mt-0,
    .mt-1,
    .mt-2,
    .mt-3,
    .mt-4,
    .mt-5 {
        margin-top: 0 !important;
    }

    .mb-0,
    .mb-1,
    .mb-2,
    .mb-3,
    .mb-4,
    .mb-5 {
        margin-bottom: 0 !important;
    }

    .ml-0,
    .ml-1,
    .ml-2,
    .ml-3,
    .ml-4,
    .ml-5 {
        margin-left: 0 !important;
    }

    .mr-0,
    .mr-1,
    .mr-2,
    .mr-3,
    .mr-4,
    .mr-5 {
        margin-right: 0 !important;
    }

    /* Links in print */
    a[href]:after {
        content: "";
    }

    /* Footer and header for printing */
    @page {
        @top-left {
            content: string(page-header);
        }

        @bottom-center {
            content: "Page " counter(page) " of " counter(pages);
        }
    }
}

/* Print media for large screens */
@media print and (min-width: 768px) {
    [class*="col-md-"] {
        display: block;
        width: 100%;
    }

    [class*="col-lg-"] {
        display: block;
        width: 100%;
    }
}