/**
 * ClinAssure V2 · Controlled Document Print CSS
 * GxP-compliant controlled copy print styles
 * Includes: CONTROLLED COPY watermark, issuance header, page numbers, regulatory footer
 * Applied via: <link rel="stylesheet" href="clin-print.css">
 * Triggered via: window.print() or PDF download button
 *
 * CSS token rule: only --if-* variables used (never --burgundy, --gold, --parchment, --warm-*)
 */

/* ─────────────────────────────────────────────────────────────
   SCREEN MODE: Only show the controlled header strip
   ─────────────────────────────────────────────────────────── */
@media screen {
  .cq-print-header       { display: none; }
  .cq-print-footer       { display: none; }
  .cq-print-watermark    { display: none; }
  .cq-print-copy-badge   { display: none; }
}

/* ─────────────────────────────────────────────────────────────
   PRINT MODE
   ─────────────────────────────────────────────────────────── */
@media print {

  /* ── Reset all screen chrome ── */
  * { box-sizing: border-box; }

  html, body {
    margin: 0 !important;
    padding: 0 !important;
    background: white !important;
    color: #000 !important;
    font-family: 'Times New Roman', Times, serif !important;
    font-size: 11pt !important;
    line-height: 1.4 !important;
    overflow: visible !important;
    height: auto !important;
  }

  /* ── Hide all interactive chrome ── */
  .cq-topbar,
  .cq-left,
  .cq-right,
  .cq-nav-actions,
  .cq-nbtn,
  .cq-role-btns,
  .cq-lc-actions,
  .cq-lc-adv,
  .cq-lc-ret,
  .cq-cmmt-area,
  .cq-cmmt-add,
  .cq-esig-overlay,
  .cq-toast,
  .cde-overlay,
  .cq-print-hide,
  #cqBaPdfHdr,
  #cqBePdfHdr,
  #cqCtPdfHdr,
  button:not(.print-visible),
  input:not(.print-visible),
  select:not(.print-visible),
  textarea:not(.print-visible) {
    display: none !important;
  }

  /* ── Unlock cockpit layout for print ── */
  .cq-root,
  .cq-cockpit,
  .cq-canvas,
  .cq-canvas-scroll {
    display: block !important;
    position: static !important;
    height: auto !important;
    overflow: visible !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: white !important;
  }

  /* ── Page setup ── */
  @page {
    size: A4;
    margin: 15mm 18mm 22mm 18mm;
  }

  @page :first {
    margin-top: 5mm; /* header takes first page top margin */
  }

  /* ── CONTROLLED COPY WATERMARK ── */
  .cq-print-watermark {
    display: block !important;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-35deg);
    font-size: 72pt;
    font-weight: 900;
    letter-spacing: 0.12em;
    color: rgba(180, 0, 0, 0.06);
    white-space: nowrap;
    pointer-events: none;
    z-index: 9999;
    font-family: Arial, Helvetica, sans-serif;
  }

  /* ── CONTROLLED DOCUMENT HEADER ── */
  .cq-print-header {
    display: block !important;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    padding: 8pt 18mm 6pt;
    background: #1a2332;
    color: white;
    border-bottom: 3pt solid #2dd4bf;
    z-index: 100;
    font-family: Arial, Helvetica, sans-serif;
  }

  .cq-print-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12pt;
  }

  .cq-print-header-brand {
    font-size: 11pt;
    font-weight: 700;
    color: white;
    letter-spacing: 0.04em;
  }

  .cq-print-header-brand span {
    color: #2dd4bf;
  }

  .cq-print-header-meta {
    text-align: right;
    font-size: 8pt;
    color: #94a3b8;
    font-family: 'Courier New', Courier, monospace;
    line-height: 1.4;
  }

  .cq-print-header-docid {
    font-size: 9pt;
    font-weight: 700;
    color: #e2e8f0;
    display: block;
  }

  .cq-print-copy-badge {
    display: inline-block !important;
    margin-top: 2pt;
    border: 1pt solid rgba(45,212,191,0.5);
    color: #2dd4bf;
    font-size: 7pt;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 1pt 5pt;
    border-radius: 2pt;
    text-transform: uppercase;
  }

  /* ── Issuance info table under header ── */
  .cq-print-issuance {
    display: block !important;
    margin: 0 0 16pt;
    padding: 10pt 0 10pt;
    border-bottom: 0.5pt solid #ccc;
    page-break-inside: avoid;
  }

  .cq-print-issuance-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 9pt;
    font-family: Arial, Helvetica, sans-serif;
  }

  .cq-print-issuance-table td {
    padding: 3pt 8pt;
    border: 0.5pt solid #ccc;
  }

  .cq-print-issuance-label {
    font-weight: 700;
    color: #374151;
    background: #f9fafb;
    width: 25%;
    font-size: 8pt;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  /* ── PRINT FOOTER (page numbers, doc ID) ── */
  .cq-print-footer {
    display: block !important;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 5pt 18mm;
    border-top: 0.5pt solid #ccc;
    font-size: 7pt;
    font-family: 'Courier New', Courier, monospace;
    color: #6b7280;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: white;
  }

  .cq-print-footer-left  { text-align: left; }
  .cq-print-footer-right { text-align: right; }

  /* ── Document body starts below fixed header ── */
  .cq-doc {
    margin-top: 0 !important;
    padding: 4pt 0 0 !important;
    background: white !important;
    color: #000 !important;
  }

  /* ── Document header: title block ── */
  .cq-doc-header {
    border-bottom: 1.5pt solid #1a2332;
    padding-bottom: 8pt;
    margin-bottom: 12pt;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    page-break-after: avoid;
  }

  .cq-doc-ids {
    font-family: 'Courier New', Courier, monospace;
    font-size: 9pt;
    color: #374151;
    margin-bottom: 3pt;
  }

  .cq-doc-title {
    font-family: 'Times New Roman', Times, serif;
    font-size: 16pt;
    font-weight: 700;
    color: #000;
    line-height: 1.2;
  }

  /* ── Meta strip ── */
  .cq-doc-meta {
    display: flex;
    gap: 0;
    border: 0.5pt solid #ccc;
    border-radius: 0;
    margin-bottom: 14pt;
    page-break-inside: avoid;
  }

  .cq-doc-meta-cell {
    flex: 1;
    padding: 5pt 8pt;
    border-right: 0.5pt solid #ccc;
    font-size: 8pt;
  }

  .cq-doc-meta-cell:last-child { border-right: none; }

  .cq-doc-meta-label {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 700;
    color: #374151;
    font-size: 7pt;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 2pt;
  }

  .cq-doc-meta-value {
    font-size: 9pt;
    font-weight: 600;
    color: #000;
  }

  /* ── Sections ── */
  .cq-doc-section {
    margin-bottom: 12pt;
    page-break-inside: avoid;
  }

  .cq-doc-section-num {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 7pt;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: #374151;
    text-transform: uppercase;
    margin-bottom: 3pt;
    display: block;
  }

  .cq-doc-section-title {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11pt;
    font-weight: 700;
    color: #000;
    border-bottom: 0.5pt solid #ccc;
    padding-bottom: 2pt;
    margin-bottom: 6pt;
    display: block;
  }

  .cq-doc-section-text {
    font-size: 10pt;
    color: #000;
    line-height: 1.5;
    white-space: pre-wrap;
  }

  /* ── Responsibility table ── */
  .cq-resp-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 9pt;
    margin-top: 4pt;
  }

  .cq-resp-table th {
    background: #f3f4f6;
    padding: 4pt 8pt;
    font-weight: 700;
    text-align: left;
    border: 0.5pt solid #ccc;
    font-size: 8pt;
    text-transform: uppercase;
    letter-spacing: 0.06em;
  }

  .cq-resp-table td {
    padding: 4pt 8pt;
    border: 0.5pt solid #ccc;
    vertical-align: top;
    font-size: 9pt;
    line-height: 1.4;
  }

  .cq-resp-role {
    font-weight: 700;
    width: 25%;
    background: #fafafa;
  }

  /* ── Procedure steps ── */
  .cq-proc-step {
    display: flex;
    gap: 8pt;
    margin-bottom: 6pt;
    page-break-inside: avoid;
  }

  .cq-proc-num {
    font-family: 'Courier New', Courier, monospace;
    font-size: 9pt;
    font-weight: 700;
    color: #374151;
    white-space: nowrap;
    min-width: 28pt;
    padding-top: 1pt;
  }

  .cq-proc-heading {
    font-weight: 700;
    font-size: 10pt;
    color: #000;
    margin-bottom: 2pt;
  }

  .cq-proc-text {
    font-size: 9pt;
    color: #000;
    line-height: 1.5;
  }

  /* ── Regulatory references ── */
  .cq-reg-item {
    display: grid;
    grid-template-columns: 140pt 1fr;
    gap: 8pt;
    padding: 4pt 0;
    border-bottom: 0.3pt solid #e5e7eb;
    page-break-inside: avoid;
  }

  .cq-reg-code {
    font-family: 'Courier New', Courier, monospace;
    font-size: 9pt;
    font-weight: 700;
    color: #374151;
  }

  .cq-reg-title {
    font-size: 9pt;
    color: #000;
  }

  .cq-reg-desc {
    grid-column: 1/-1;
    font-size: 8.5pt;
    color: #4b5563;
    padding-left: 148pt;
    margin-top: -2pt;
  }

  /* ── Definitions ── */
  .cq-def-row {
    display: grid;
    grid-template-columns: 120pt 1fr;
    gap: 8pt;
    padding: 3pt 0;
    border-bottom: 0.3pt solid #e5e7eb;
  }

  .cq-def-term {
    font-family: 'Courier New', Courier, monospace;
    font-size: 9pt;
    font-weight: 700;
    color: #374151;
  }

  .cq-def-def {
    font-size: 9pt;
    color: #000;
  }

  /* ── Annexures ── */
  .cq-annex-head {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 9pt;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: #374151;
    text-transform: uppercase;
    margin-bottom: 3pt;
  }

  .cq-annex-title {
    font-size: 11pt;
    font-weight: 700;
    color: #000;
    margin-bottom: 6pt;
  }

  .cq-annex-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 9pt;
  }

  .cq-annex-table th {
    background: #f3f4f6;
    padding: 3pt 6pt;
    font-weight: 700;
    border: 0.5pt solid #ccc;
    text-align: left;
    font-size: 8pt;
    text-transform: uppercase;
    letter-spacing: 0.06em;
  }

  .cq-annex-table td {
    padding: 3pt 6pt;
    border: 0.5pt solid #ccc;
    font-size: 9pt;
  }

  /* ── E-signature block ── */
  .cq-esig-strip {
    border: 0.5pt solid #ccc;
    border-left: 3pt solid #22c55e;
    padding: 6pt 10pt;
    margin-bottom: 8pt;
    page-break-inside: avoid;
    background: #f0fdf4;
    display: flex;
    gap: 8pt;
    align-items: flex-start;
  }

  .cq-esig-strip-icon { font-size: 14pt; line-height: 1; }

  .cq-esig-strip-name {
    font-size: 9pt;
    font-weight: 700;
    color: #000;
    margin-bottom: 2pt;
  }

  .cq-esig-strip-meta {
    font-size: 8pt;
    color: #374151;
  }

  .cq-esig-strip-hash {
    font-family: 'Courier New', Courier, monospace;
    font-size: 7pt;
    color: #6b7280;
    margin-top: 2pt;
  }

  /* ── Audit trail history ── */
  .cq-hist-row {
    padding: 4pt 0;
    border-bottom: 0.3pt solid #e5e7eb;
    page-break-inside: avoid;
  }

  .cq-hist-meta {
    font-size: 8pt;
    color: #374151;
    font-family: 'Courier New', Courier, monospace;
    margin-bottom: 1pt;
  }

  .cq-hist-action {
    font-size: 9pt;
    color: #000;
    font-weight: 500;
  }

  .cq-hist-hash {
    font-family: 'Courier New', Courier, monospace;
    font-size: 7pt;
    color: #9ca3af;
    margin-top: 1pt;
  }

  /* ── Status badge (simplified for print) ── */
  .cq-status-pill, .cq-badge {
    border: 0.5pt solid #374151;
    padding: 1pt 6pt;
    font-size: 8pt;
    font-weight: 700;
    border-radius: 3pt;
    font-family: Arial, Helvetica, sans-serif;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #374151;
    background: transparent;
  }

  .cq-badge.effective, .cq-status-pill.effective {
    border-color: #15803d;
    color: #15803d;
  }

  .cq-badge.authorized, .cq-status-pill.authorized {
    border-color: #1d4ed8;
    color: #1d4ed8;
  }

  .cq-badge.draft, .cq-status-pill.draft {
    border-color: #6b7280;
    color: #6b7280;
  }

  /* ── Tab panels (SOP tabs content) ── */
  .cq-tabpanel { padding: 0 !important; background: white !important; }
  .cq-tabpanel-head {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13pt;
    font-weight: 700;
    color: #000;
    border-bottom: 1.5pt solid #1a2332;
    padding-bottom: 6pt;
    margin-bottom: 12pt;
    display: block;
  }

  /* ── Checklist ── */
  .cq-tab-check {
    display: flex;
    gap: 8pt;
    padding: 5pt 0;
    border-bottom: 0.3pt solid #e5e7eb;
    page-break-inside: avoid;
  }

  .cq-check-box {
    width: 10pt;
    height: 10pt;
    border: 1pt solid #374151;
    border-radius: 2pt;
    flex-shrink: 0;
    margin-top: 1pt;
  }

  .cq-tab-check.on .cq-check-box {
    background: #15803d;
    border-color: #15803d;
  }

  .cq-check-text {
    font-size: 9pt;
    color: #000;
    line-height: 1.4;
  }

  /* ── Training items ── */
  .cq-tab-training-item {
    padding: 6pt 0;
    border-bottom: 0.3pt solid #e5e7eb;
    page-break-inside: avoid;
  }

  .cq-training-role {
    font-weight: 700;
    font-size: 10pt;
    color: #000;
    margin-bottom: 3pt;
  }

  .cq-training-reqs {
    font-size: 9pt;
    color: #374151;
    line-height: 1.45;
  }

  /* ── Annexure blocks in SOP tab ── */
  .cq-tab-annexure {
    padding: 8pt 0;
    border-bottom: 0.3pt solid #e5e7eb;
    page-break-inside: avoid;
  }

  .cq-tab-annexure-code {
    font-family: 'Courier New', Courier, monospace;
    font-size: 8pt;
    font-weight: 700;
    color: #374151;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 2pt;
  }

  .cq-tab-annexure-title {
    font-size: 11pt;
    font-weight: 700;
    color: #000;
    margin-bottom: 4pt;
  }

  .cq-tab-annexure-desc {
    font-size: 9pt;
    color: #374151;
    line-height: 1.4;
  }

  /* ── Flow nodes (workflow tab) ── */
  .cq-workflow { display: block !important; }

  .cq-flow-node {
    display: flex;
    gap: 10pt;
    padding: 6pt;
    border: 0.5pt solid #ccc;
    margin-bottom: 2pt;
    page-break-inside: avoid;
    background: #fafafa;
  }

  .cq-flow-num {
    font-family: 'Courier New', Courier, monospace;
    font-size: 9pt;
    font-weight: 700;
    color: #374151;
    white-space: nowrap;
    min-width: 28pt;
  }

  .cq-flow-heading { font-weight: 700; font-size: 10pt; color: #000; margin-bottom: 2pt; }
  .cq-flow-body { font-size: 9pt; color: #374151; line-height: 1.4; }
  .cq-flow-arrow { display: block !important; text-align: center; font-size: 12pt; color: #374151; padding: 1pt 0; }
  .cq-flow-arrowhead { display: none; }

  /* ── Page break helpers ── */
  .print-page-break { page-break-before: always; }
  .print-avoid-break { page-break-inside: avoid; }

  /* ── Hide anything explicitly marked ── */
  .no-print { display: none !important; }

}

/* ─────────────────────────────────────────────────────────────
   ISSUANCE PRINT HELPERS (injected by clin-issuance.js)
   ─────────────────────────────────────────────────────────── */
@media print {
  .cq-issue-print-header {
    display: block !important;
    border: 2pt solid #1a2332;
    padding: 12pt;
    margin-bottom: 14pt;
    page-break-inside: avoid;
    font-family: Arial, Helvetica, sans-serif;
  }

  .cq-issue-print-header-title {
    font-size: 12pt;
    font-weight: 700;
    color: #000;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    border-bottom: 0.5pt solid #ccc;
    padding-bottom: 8pt;
    margin-bottom: 10pt;
  }

  .cq-issue-print-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6pt;
    font-size: 9pt;
  }

  .cq-issue-print-field {
    display: flex;
    flex-direction: column;
    gap: 2pt;
  }

  .cq-issue-print-label {
    font-size: 7pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #374151;
  }

  .cq-issue-print-value {
    font-size: 10pt;
    font-weight: 600;
    color: #000;
    border-bottom: 0.5pt solid #aaa;
    padding-bottom: 2pt;
    min-height: 14pt;
  }

  .cq-issue-print-ack {
    grid-column: 1/-1;
    margin-top: 10pt;
    border-top: 0.5pt solid #ccc;
    padding-top: 10pt;
    font-size: 9pt;
    color: #374151;
    line-height: 1.5;
  }

  .cq-issue-print-sig-block {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16pt;
    margin-top: 14pt;
    grid-column: 1/-1;
  }

  .cq-issue-sig-field {
    border-top: 0.5pt solid #000;
    padding-top: 4pt;
    font-size: 8pt;
    color: #374151;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.06em;
  }
}
