/**
 * NTTC Portal - Global Print Stylesheet
 * 
 * Applies to every page when printing.
 * Hides chrome/navigation and prints content cleanly.
 */

@media print {
    :root {
        --print-header-height: 48px;
    }

    html, body {
        background: #ffffff !important;
        color: #000000 !important;
        font-size: 11pt;
    }

    body {
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Hide chrome */
    .sidebar,
    .top-header,
    .notification-bell,
    .notification-badge,
    .mobile-nav-toggle,
    .sidebar-overlay,
    .network-status-banner,
    .eclass-banner,
    .modal,
    .modal-backdrop,
    .modal-content,
    .alert,
    .btn,
    button,
    nav,
    form button,
    .header-actions,
    #notification-bell,
    #mobile-nav-toggle,
    .flash-container,
    .login-footer,
    .upload-zone,
    .modal-close,
    .modal-close-btn {
        display: none !important;
    }

    /* Layout reset */
    .app-layout,
    .main-content {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
        min-height: auto !important;
    }

    .content-area,
    .content-area.full-width {
        max-width: none !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Print header */
    body::before {
        content: "NTTC Portal — " attr(data-print-title) " — Printed: " attr(data-print-date);
        display: block;
        font-family: Georgia, serif;
        font-size: 13pt;
        font-weight: 600;
        padding: 0 0 12pt 0;
        margin: 0 0 12pt 0;
        border-bottom: 2px solid #000;
    }

    /* Panels become flat print blocks */
    .panel {
        background: #fff !important;
        border: 1px solid #bbb !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        margin: 0 0 12pt 0 !important;
        padding: 10pt !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .panel-header {
        border-bottom: 1px solid #bbb !important;
        margin-bottom: 8pt !important;
        padding-bottom: 6pt !important;
    }

    h1, h2, h3, h4 {
        color: #000 !important;
        break-after: avoid;
        page-break-after: avoid;
    }

    p, li, td, th, span, div {
        color: #000 !important;
    }

    a, a:visited {
        color: #000 !important;
        text-decoration: none !important;
    }

    /* Tables */
    .table-container {
        overflow: visible !important;
    }

    table {
        width: 100% !important;
        border-collapse: collapse !important;
        table-layout: auto !important;
        font-size: 10pt !important;
    }

    thead {
        display: table-header-group;
    }

    tr {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    th, td {
        border: 1px solid #bbb !important;
        padding: 6pt !important;
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: unset !important;
        vertical-align: top !important;
    }

    /* Statuses */
    .status,
    .grade {
        border: 1px solid #999 !important;
        background: transparent !important;
        color: #000 !important;
        padding: 1pt 4pt !important;
    }

    /* Progress bars */
    .progress-bar {
        border: 1px solid #999 !important;
        background: #fff !important;
    }

    .progress-bar-fill {
        background: #666 !important;
    }

    /* Signature images */
    img {
        max-width: 100% !important;
        height: auto !important;
    }

    canvas {
        display: none !important;
    }

    /* Ensure Form 5 looks institutional */
    #form5-print-area,
    .form5-container {
        border: none !important;
        padding: 0 !important;
    }

    #form5-print-area .form-group,
    .form5-container .form-group {
        margin-bottom: 10pt !important;
    }

    .form-input,
    .form-textarea,
    .form-select {
        border: none !important;
        background: transparent !important;
        box-shadow: none !important;
        padding: 0 !important;
        color: #000 !important;
    }

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

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