/* ============================================================
   AvPlot — shared print / PDF-report stylesheet
   Loaded by every tool page that wires avplot_report.js.

   Strategy: avplot_report.js builds a single clean, branded
   report element (#avp-report-root) plus fixed header/footer
   bands at print time, cloning only the tool's results region.
   This stylesheet hides the entire live page during print and
   shows ONLY that report on clean white — so one rule set works
   across every tool regardless of its on-screen layout.

   On screen these injected nodes are display:none, so this file
   has zero visual impact outside the print path.
   ============================================================ */

#avp-report-root,
.avp-report-band { display: none; }

@media print {

  /* --- isolate the report: hide every live page node --- */
  body > *:not(#avp-report-root):not(.avp-report-band) { display: none !important; }

  html, body {
    background: #fff !important;
    margin: 0 !important;
    padding: 0 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  @page {
    margin: 14mm 14mm 16mm;
    /* page numbers in the bottom margin box (supported in Chromium/Firefox) */
    @bottom-right {
      content: "Page " counter(page) " of " counter(pages);
      font-family: 'JetBrains Mono', monospace;
      font-size: 8pt;
      color: #6b6760;
    }
  }

  /* --- the report body --- */
  #avp-report-root {
    display: block !important;
    color: #15140f !important;
    background: #fff !important;
    font-family: 'Inter Tight', 'Helvetica Neue', Arial, sans-serif;
    font-size: 10.5pt;
    line-height: 1.5;
    /* reserve room for the repeating fixed header/footer bands */
    margin: 86px 0 52px;
  }

  /* --- repeating header + footer bands (print on every page) --- */
  .avp-report-band {
    display: block !important;
    position: fixed;
    left: 0;
    right: 0;
    background: #fff !important;
    color: #15140f !important;
  }
  #avp-report-header { top: 0; border-bottom: 1.5px solid #1d4ed8; padding-bottom: 8px; }
  #avp-report-footer { bottom: 0; border-top: 1px solid #ddd; padding-top: 6px; }

  /* header band layout */
  .avp-rep-head-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
  }
  .avp-rep-brand {
    font-family: 'JetBrains Mono', monospace;
    font-size: 18pt;
    font-weight: 700;
    color: #15140f;
    letter-spacing: -0.01em;
  }
  .avp-rep-brand .acc { color: #E6AD00; }
  .avp-rep-toolwrap { flex: 1; text-align: center; }
  .avp-rep-tool {
    font-size: 12pt;
    font-weight: 700;
    color: #15140f;
  }
  .avp-rep-sub {
    font-family: 'JetBrains Mono', monospace;
    font-size: 7.5pt;
    color: #6b6760;
    margin-top: 2px;
  }
  .avp-rep-meta {
    text-align: right;
    font-family: 'JetBrains Mono', monospace;
    font-size: 7.5pt;
    color: #6b6760;
    line-height: 1.45;
  }
  .avp-rep-apt { font-weight: 700; color: #15140f; }
  .avp-rep-disclaimer {
    margin-top: 6px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 7.5pt;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #b04632;
    text-transform: uppercase;
    text-align: center;
  }

  /* footer band layout */
  .avp-rep-foot-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 7.5pt;
    color: #6b6760;
  }

  /* --- report body sections --- */
  .avp-rep-section { margin: 0 0 16px; break-inside: avoid; }
  .avp-rep-section.avp-rep-results { break-inside: auto; }
  .avp-rep-heading {
    font-family: 'JetBrains Mono', monospace;
    font-size: 8pt;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: #8a7320;
    border-bottom: 1px solid #ddd;
    padding-bottom: 3px;
    margin: 0 0 8px;
  }
  .avp-rep-kv { width: 100%; border-collapse: collapse; }
  .avp-rep-kv td { padding: 3px 12px 3px 0; vertical-align: top; }
  .avp-rep-kv td.k {
    font-family: 'JetBrains Mono', monospace;
    font-size: 8.5pt;
    color: #6b6760;
    white-space: nowrap;
    width: 1%;
  }
  .avp-rep-kv td.v { font-size: 9.5pt; color: #15140f; font-weight: 500; }
  .avp-rep-cites { list-style: none; margin: 0; padding: 0; }
  .avp-rep-cites li {
    font-size: 8.5pt;
    color: #2b2926;
    line-height: 1.5;
    padding: 2px 0 2px 12px;
    text-indent: -12px;
    break-inside: avoid;
  }
  .avp-rep-cites li::before { content: "\2014\00a0"; color: #8a7320; }

  /* ---------------------------------------------------------
     Neutralize the dark UI theme on cloned results so they
     print legibly on white. Inline styles are overridden via
     !important; SVG fill/stroke attributes are left intact so
     plan-view geometry keeps its colors.
     --------------------------------------------------------- */
  #avp-report-root .avp-rep-results,
  #avp-report-root .avp-rep-results * {
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  #avp-report-root .avp-rep-results :is(
    p, span, div, td, th, li, h1, h2, h3, h4, h5, b, strong, em, a, small,
    label, dt, dd, caption, figcaption
  ) { color: #15140f !important; }
  #avp-report-root .avp-rep-results :is(table, td, th, .card, [class*="card"]) {
    border-color: #ccc !important;
  }
  #avp-report-root .avp-rep-results th { color: #6b6760 !important; }
  #avp-report-root .avp-rep-results table {
    width: 100%;
    border-collapse: collapse;
    break-inside: auto;
  }
  #avp-report-root .avp-rep-results tr { break-inside: avoid; }
  /* hide any interactive controls that slipped into the clone */
  #avp-report-root .avp-rep-results :is(button, input, select, textarea),
  #avp-report-root [data-avp-print] { display: none !important; }
  #avp-report-root .avp-rep-results svg { max-width: 100%; height: auto; }
}
