/* =============================================================================
   SectraTEK Lab: paper-acm.css
   ACM-style presentation for Lab Technical Reports (sigconf / journal look). Load AFTER paper.css:
     extra_css: /assets/paper.css, /assets/paper-acm.css
   and add the class  paper--acm  to  article.paper  (plus  data-paper="LAB-TR-000N"  for the print footer).
   paper.css stays the shared base; this file only overrides it for articles that opt in.
   No external requests, no inline styles, no motion. Both themes come from the tokens.

   ADDITIONAL CLASSES (beyond the paper.css contract)
     .paper--acm                 on article.paper: opt-in switch
     .acm-dateline               p in .paper-head: "Version 1.0 · date · licence"
     .acm-email                  span in .paper-affil
     .acm-frontmatter            div after the abstract holding the three blocks below
       p.acm-ccs > span.acm-label "CCS Concepts" + concepts;  p.paper-keywords > strong "Keywords";
       p.acm-refformat > span.acm-label "ACM Reference Format" + br + reference
     ul.acm-rq, ul.acm-contrib, ol.acm-checks   research questions, contributions, numbered checks
     div.acm-listing > p.acm-listing-cap + pre.paper-code     numbered listing, caption above
     div.acm-eq > span.acm-eq-body + span.acm-eq-num           display equation with number
     .paper-table--span / .paper-fig--span                      span both columns in print
     section.acm-backmatter      unnumbered end sections (availability, data, AI declaration)
     svg.acm-svg                 column-width figure (viewBox width 340); text classes af-s (small), af-dash
   Captions: "Figure 1:" below figures, "Table 1:" above tables, "Listing 1:" above listings.
   Section numbers are arabic (1, 2.1) in span.paper-num.
   PRINT: US Letter, two balanced columns, 9.5 pt serif, sans headings, title block across both columns,
   running footer with the report id and page numbers (@page margin boxes, Chromium).
   Contents: 1 Base  2 Head  3 Abstract and front matter  4 Sections and text  5 Figures  6 Tables
             7 Listings and equations  8 References  9 Small screens  10 Print  11 Forced colours
   ============================================================================= */

/* 1 Base -------------------------------------------------------------------- */
.paper--acm {
  --acm-serif: "Source Serif 4", "Libertinus Serif", Charter, "Bitstream Charter", Cambria, Georgia, "Times New Roman", serif;
  --acm-sans: var(--font-sans);
  --acm-measure: 37rem;
  --acm-link: color-mix(in srgb, var(--link) 72%, var(--ink));
  --paper-serif: var(--acm-serif);
  font-family: var(--acm-serif);
  font-size: 1.0625rem;
  line-height: 1.6;
  max-width: var(--acm-measure);
  font-variant-numeric: lining-nums proportional-nums;
}
.paper--acm p { margin: 0 0 0.85em; }
.paper--acm a { color: var(--acm-link); text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); }
.paper--acm a:hover { color: var(--link-hover); text-decoration-color: currentColor; }
.paper--acm a[href^="#"] { text-decoration: none; }
.paper--acm a[href^="#"]:hover { text-decoration: underline; }
.paper--acm strong, .paper--acm b { font-weight: 700; }
.paper--acm :not(pre) > code { background: none; padding: 0; border-radius: 0; font-size: 0.86em; color: var(--ink); }
.paper--acm var { font-style: italic; }

/* 2 Head -------------------------------------------------------------------- */
.paper--acm .paper-head { text-align: center; border: 0; padding: 0; margin: 0 0 2rem; }
.paper--acm .paper-head .eyebrow { display: block; margin: 0 0 1.1rem; font: 600 0.75rem/1.3 var(--acm-sans); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.paper--acm .paper-head h1 {
  margin: 0 auto; max-width: 34rem;
  font-family: var(--acm-sans); font-weight: 700;
  font-size: clamp(1.45rem, 1.1rem + 1.4vw, 1.8rem); line-height: 1.25; letter-spacing: 0;
  color: var(--ink); text-wrap: balance;
}
.paper--acm .paper-authors { margin: 1.1rem 0 0; font: 500 1.0625rem/1.35 var(--acm-sans); letter-spacing: 0; color: var(--ink); }
.paper--acm .paper-affil { margin: 0.15rem 0 0; font-style: normal; font-size: 0.9375rem; line-height: 1.45; color: var(--ink-2); }
.paper--acm .acm-email { font-family: var(--font-mono); font-size: 0.82em; }
.paper--acm .paper-status {
  display: block; margin: 0.8rem 0 0; padding: 0; border: 0; border-radius: 0; background: none;
  font: italic 0.9375rem/1.4 var(--acm-serif); letter-spacing: 0; color: var(--ink-2);
}
.paper--acm .acm-dateline { margin: 0.2rem 0 0; font: 0.8125rem/1.4 var(--acm-sans); color: var(--muted); }

/* 3 Abstract and front matter ----------------------------------------------- */
.paper--acm .paper-abstract { margin: 0 0 1.1rem; }
.paper--acm .paper-abstract h2,
.paper--acm .acm-label,
.paper--acm .paper-keywords strong {
  display: block; margin: 0 0 0.35em;
  font: 700 0.8125rem/1.3 var(--acm-sans); letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink);
}
.paper--acm .paper-abstract p { margin: 0; padding: 0; border: 0; font-size: 1rem; line-height: 1.58; }
.paper--acm .acm-frontmatter { margin: 0 0 2rem; font-size: 0.9375rem; line-height: 1.5; }
.paper--acm .acm-frontmatter p { margin: 0 0 0.9rem; color: var(--ink); }
.paper--acm .acm-ccs strong { font-weight: 600; }
.paper--acm .paper-keywords { margin: 0 0 0.9rem; font-size: inherit; color: var(--ink); }
.paper--acm .acm-refformat { font-size: 0.875rem; color: var(--ink-2); }
.paper--acm .acm-refformat .acm-label { color: var(--ink); }

/* 4 Sections and text -------------------------------------------------------- */
.paper--acm .paper-section { margin: 0 0 1.4rem; }
.paper--acm .paper-section > h2,
.paper--acm .paper-meta > h2 {
  margin: 2.2rem 0 0.7rem;
  font: 700 0.9375rem/1.3 var(--acm-sans); letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink);
}
.paper--acm .paper-num { display: inline; min-width: 0; margin-inline-end: 0.6em; color: inherit; font-variant-numeric: lining-nums tabular-nums; }
.paper--acm h3 { margin: 1.6em 0 0.45em; font: 600 1rem/1.35 var(--acm-sans); font-style: normal; letter-spacing: 0; color: var(--ink); }
.paper--acm h3 .paper-num { margin-inline-end: 0.55em; }
.paper--acm ul, .paper--acm ol { margin: 0 0 0.9em; padding-inline-start: 1.4em; }
.paper--acm li { margin-block: 0.3em; }
.paper--acm li::marker { color: var(--ink-2); }
.paper--acm .acm-rq { list-style: none; padding-inline-start: 1em; }
.paper--acm .acm-rq li { text-indent: -1em; padding-inline-start: 1em; }
.paper--acm .paper-note { margin: 0.45em 0 0; font: 0.8125rem/1.45 var(--acm-serif); color: var(--muted); }
.paper--acm .acm-backmatter > h2 { text-transform: none; letter-spacing: 0; font-size: 0.9375rem; }
.paper--acm .acm-backmatter p { font-size: 0.9375rem; }

/* 5 Figures ----------------------------------------------------------------- */
.paper--acm .paper-fig { margin: 1.8em 0 1.9em; }
.paper--acm .paper-fig svg { border: 0; border-radius: 0; background: transparent; }
.paper--acm .paper-fig > svg.acm-svg { max-width: 28rem; }
.paper--acm .paper-fig svg text { font-size: 11px; fill: var(--ink-2); }
.paper--acm .paper-fig svg .pf-title { font-size: 11px; font-weight: 600; fill: var(--ink); }
.paper--acm .paper-fig svg .af-s { font-size: 10px; }
.paper--acm .paper-fig svg .pf-muted { fill: var(--muted); }
.paper--acm .paper-fig svg .af-dash { stroke-dasharray: 3 2.5; }
.paper--acm .paper-fig svg .pf-stroke-ink { stroke: var(--ink-2); stroke-width: 1; fill: none; }
.paper--acm .paper-fig svg .af-floor { stroke: var(--ink); stroke-width: 1.1; }
.paper--acm .paper-fig svg .af-plate { fill: var(--paper, var(--bg)); }
.paper--acm .acm-nowrap { white-space: nowrap; }
.paper--acm .paper-fig figcaption { margin: 0.7em auto 0; max-width: 34rem; font: 0.875rem/1.45 var(--acm-serif); color: var(--ink-2); text-align: start; }
.paper--acm .paper-fig figcaption strong,
.paper--acm .paper-table-cap strong,
.paper--acm .acm-listing-cap strong { font-family: var(--acm-sans); font-weight: 700; color: var(--ink); letter-spacing: 0; }

/* 6 Tables (booktabs: top, mid and bottom rules; no zebra, no row lines) ------ */
.paper--acm .paper-table { margin: 1.8em 0; font-family: var(--acm-serif); }
.paper--acm .paper-table-cap {
  margin: 0 0 0.5em; font: 0.875rem/1.45 var(--acm-serif); letter-spacing: 0; text-transform: none;
  color: var(--ink-2); text-align: center;
}
.paper--acm .paper-table-cap strong { display: inline; margin-inline-end: 0.3em; }
.paper--acm .paper-table table {
  font-family: var(--acm-serif); font-size: 0.875rem; line-height: 1.4;
  border-block: 1.5px solid var(--ink); font-variant-numeric: lining-nums tabular-nums;
}
.paper--acm .paper-table th, .paper--acm .paper-table td { padding: 5px 8px; }
.paper--acm .paper-table thead th { font-weight: 700; border-block-end: 0.75px solid var(--ink); }
.paper--acm .paper-table tbody tr + tr > * { border-block-start: 0; }
.paper--acm .paper-table tbody th { font-weight: 600; }
.paper--acm .paper-table tbody td { color: var(--ink); }
.paper--acm .paper-table--wide table { font-size: 0.8125rem; }
.paper--acm .paper-table .paper-note { text-align: start; }

/* wide screens: tables that span both columns in print break out of the text measure on screen */
@media screen and (min-width: 80em) {
  .paper--acm .paper-table--span { margin-inline: -5.5rem; }
  .paper--acm .paper-table--span table { min-width: 0; }
}

/* 7 Listings and equations --------------------------------------------------- */
.paper--acm .acm-listing { margin: 1.5em 0; }
.paper--acm .acm-listing-cap { margin: 0 0 0.4em; font: 0.875rem/1.45 var(--acm-serif); color: var(--ink-2); }
.paper--acm .paper-code {
  margin: 0; padding: 0.55em 0; border: 0; border-block: 0.75px solid var(--line-strong); border-radius: 0;
  background: transparent; font-size: 0.78rem; line-height: 1.5; color: var(--ink);
}
.paper--acm .acm-eq { display: flex; align-items: baseline; gap: 1rem; margin: 1em 0 1.1em; }
.paper--acm .acm-eq-body { flex: 1; text-align: center; font-size: 1rem; }
.paper--acm .acm-eq-num { color: var(--ink-2); }

/* 8 References -------------------------------------------------------------- */
.paper--acm .paper-refs { gap: 0.4em; font: 0.875rem/1.45 var(--acm-serif); }
.paper--acm .paper-refs > li { padding-inline-start: 2.3rem; }
.paper--acm .paper-refs > li::before { inset-block-start: 0; width: 1.95rem; white-space: nowrap; font: inherit; color: var(--ink-2); }
.paper--acm .paper-refs a { color: var(--ink-2); }
.paper--acm .paper-refs .ref-note { font-family: var(--acm-serif); font-size: 0.92em; font-style: italic; }

/* 9 Small screens ----------------------------------------------------------- */
@media (max-width: 40em) {
  .paper--acm { font-size: 1rem; }
  .paper--acm .paper-fig { overflow: visible; }
  .paper--acm .paper-fig > svg.acm-svg { width: 100%; min-width: 0; max-width: 100%; }
  .paper--acm .paper-fig figcaption { position: static; max-width: none; }
  .paper--acm .paper-code { font-size: 0.72rem; }
  .paper--acm .acm-eq-body { font-size: 0.9375rem; }
}

/* 10 Print / PDF: the ACM two-column look ----------------------------------- */
@page {
  size: Letter;
  margin: 0.75in 0.72in 0.8in;
  @top-center { content: none; }
  @bottom-center { content: none; }
  @bottom-left { content: "Lab Technical Report, preprint, not peer reviewed"; font: 7pt/1.2 Cambria, Georgia, serif; color: #333; vertical-align: top; padding-top: 0.18in; }
  @bottom-right { content: counter(page); font: 7.5pt/1.2 Cambria, Georgia, serif; color: #333; vertical-align: top; padding-top: 0.18in; }
}
/* per-report footer text (named pages). The name is set on body (via :has) so that no unnamed page follows the article. */
body:has(.paper--acm[data-paper="LAB-TR-0001"]) { page: acm0001; }
body:has(.paper--acm[data-paper="LAB-TR-0003"]) { page: acm0003; }
body:has(.paper--acm[data-paper="LAB-TR-0004"]) { page: acm0004; }
body:has(.paper--acm[data-paper="LAB-TR-0006"]) { page: acm0006; }
body:has(.paper--acm[data-paper="LAB-TR-0008"]) { page: acm0008; }
body:has(.paper--acm[data-paper="LAB-TR-0009"]) { page: acm0009; }
body:has(.paper--acm[data-paper="LAB-TR-0011"]) { page: acm0011; }
@page acm0001 { @bottom-left { content: "LAB-TR-0001, Lab Technical Report, preprint, not peer reviewed"; } }
@page acm0003 { @bottom-left { content: "LAB-TR-0003, Lab Technical Report, preprint, not peer reviewed"; } }
@page acm0004 { @bottom-left { content: "LAB-TR-0004, Lab Technical Report, preprint, not peer reviewed"; } }
@page acm0006 { @bottom-left { content: "LAB-TR-0006, Lab Technical Report, preprint, not peer reviewed"; } }
@page acm0008 { @bottom-left { content: "LAB-TR-0008, Lab Technical Report, preprint, not peer reviewed"; } }
@page acm0009 { @bottom-left { content: "LAB-TR-0009, Lab Technical Report, preprint, not peer reviewed"; } }
@page acm0011 { @bottom-left { content: "LAB-TR-0011, Lab Technical Report, preprint, not peer reviewed"; } }

@media print {
  :root { color-scheme: light; }
  html, body { background: #fff !important; color: #000 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .site-header, .mobile-nav, .site-footer, .lab-toc, .lab-crumbs, .skip-link, .toast-region, dialog,
  .lab-footer__proto, .btn, .copy-btn, nav, .paper--acm .paper-meta,
  .sr-live { display: none !important; } /* .sr-live: the script's absolutely placed live region would add a blank last page */
  main, .lab-section, .lab-section .container, .lab-layout { display: block !important; padding: 0 !important; margin: 0 !important; max-width: none !important; width: auto !important; }

  .paper--acm {
    --acm-serif: "Source Serif 4", "Libertinus Serif", Charter, Cambria, Georgia, "Times New Roman", serif;
    --ink: #000; --ink-2: #1a1a1a; --muted: #3a3a3a; --line: #b8b8b8; --line-strong: #6b6b6b;
    max-width: none; width: auto; margin: 0; padding: 0 !important;
    font-family: var(--acm-serif); font-size: 9.5pt; line-height: 1.3; color: #000;
    text-align: justify; hyphens: auto; orphans: 2; widows: 2;
    column-count: 2; column-gap: 0.33in; column-fill: balance;
  }
  .paper--acm p { margin: 0 0 0.45em; }
  .paper--acm a, .paper--acm a:hover, .paper--acm .paper-refs a { color: #000 !important; text-decoration: none; }
  .paper--acm a[href]::after { content: none !important; }

  /* title block across both columns */
  .paper--acm > .paper-head { column-span: all; margin: 0 0 14pt; padding: 0 0 10pt; border: 0; text-align: center; break-after: avoid; }
  .paper--acm .paper-head .eyebrow { display: block !important; font-size: 7pt; margin: 0 0 8pt; color: #333; }
  .paper--acm .paper-head h1 { font-size: 16pt; line-height: 1.2; max-width: 6.2in; margin: 0 auto; }
  .paper--acm .paper-authors { font-size: 11pt; margin-top: 9pt; }
  .paper--acm .paper-affil { font-size: 9pt; color: #000; }
  .paper--acm .acm-email { font-size: 8pt; }
  .paper--acm .paper-status { font-size: 8.5pt; margin-top: 6pt; color: #000; }
  .paper--acm .acm-dateline { font-size: 7.5pt; color: #333; }

  /* abstract and front matter: first column, as in sigconf */
  .paper--acm .paper-abstract { margin: 0 0 6pt; padding: 0; }
  .paper--acm .paper-abstract h2, .paper--acm .acm-label, .paper--acm .paper-keywords strong { display: block; font-size: 8.5pt; margin: 0 0 2pt; color: #000; text-align: left; }
  .paper--acm .paper-abstract p { display: block; font-size: 9.5pt; line-height: 1.3; font-weight: 400; }
  .paper--acm .acm-frontmatter { margin: 0 0 8pt; font-size: 8.5pt; line-height: 1.28; }
  .paper--acm .acm-frontmatter p { margin: 0 0 5pt; text-align: left; hyphens: manual; }
  .paper--acm .paper-keywords { font-style: normal; font-weight: 400; padding: 0; }
  .paper--acm .acm-refformat { font-size: 7.5pt; color: #000; overflow-wrap: anywhere; }

  /* headings */
  .paper--acm .paper-section { margin: 0 0 4pt; }
  .paper--acm .paper-section > h2 { font-size: 9.5pt; letter-spacing: 0.03em; text-align: left; margin: 9pt 0 3pt; break-after: avoid; color: #000; }
  .paper--acm .acm-backmatter > h2 { font-size: 9.5pt; }
  .paper--acm h3 { font-size: 9.5pt; font-style: normal; margin: 7pt 0 2pt; break-after: avoid; text-align: left; }
  .paper--acm .paper-num { color: #000 !important; }
  .paper--acm ul, .paper--acm ol { margin: 0 0 0.45em; padding-inline-start: 1.2em; }
  .paper--acm li { margin-block: 0.12em; }
  .paper--acm .acm-backmatter p { font-size: 8.5pt; }

  /* figures and tables kept whole; wide ones across both columns */
  .paper--acm .paper-fig { margin: 6pt 0 8pt; overflow: visible !important; break-inside: avoid; }
  .paper--acm .paper-fig > svg, .paper--acm .paper-fig > svg.acm-svg { width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: auto; }
  .paper--acm .paper-fig figcaption { font-size: 8pt; line-height: 1.28; color: #000; margin-top: 3pt; text-align: justify; max-width: none; position: static; }
  .paper--acm .paper-table { margin: 6pt 0 8pt; overflow: visible !important; break-inside: avoid; }
  .paper--acm .paper-table--span, .paper--acm .paper-fig--span { column-span: all; margin: 4pt 0 10pt; }
  /* single-column tables may continue in the next column (rows stay whole); spanning tables stay whole */
  .paper--acm .paper-table:not(.paper-table--span) { break-inside: auto; }
  .paper--acm .paper-table-cap { font-size: 8pt; line-height: 1.28; color: #000; margin: 0 0 3pt; break-after: avoid; text-align: center; }
  .paper--acm .paper-table table, .paper--acm .paper-table--wide table { font-size: 7.5pt; line-height: 1.22; min-width: 0 !important; width: 100%; border-top: 0.9pt solid #000; border-bottom: 0.9pt solid #000; text-align: left; hyphens: manual; }
  .paper--acm .paper-table th, .paper--acm .paper-table td { padding: 1.6pt 3.5pt; border: 0; color: #000; overflow-wrap: break-word; }
  .paper--acm .paper-table thead th { border-bottom: 0.5pt solid #000; }
  .paper--acm .paper-table thead { display: table-header-group; }
  .paper--acm .paper-table tfoot { display: table-footer-group; }
  .paper--acm .paper-table tr { break-inside: avoid; }
  .paper--acm .paper-table .paper-note { font-size: 7pt; line-height: 1.25; margin-top: 2pt; color: #000; text-align: left; }
  .paper--acm .paper-table--span table { font-size: 7.5pt; }

  /* listings and equations */
  .paper--acm .acm-listing { margin: 5pt 0 7pt; break-inside: avoid; }
  .paper--acm .acm-listing-cap { font-size: 8pt; line-height: 1.28; margin: 0 0 2pt; color: #000; text-align: left; }
  .paper--acm .paper-code { font-size: 6.9pt; line-height: 1.3; padding: 2.5pt 0; white-space: pre-wrap; overflow: visible; text-align: left; hyphens: manual; border-color: #555; }
  .paper--acm .acm-eq { margin: 4pt 0 6pt; break-inside: avoid; }
  .paper--acm .acm-eq-body { font-size: 8.5pt; }

  /* references: compact and hanging */
  .paper--acm .acm-refs-section > h2 { margin-top: 10pt; }
  .paper--acm .paper-refs { gap: 0; font-size: 7.3pt; line-height: 1.24; text-align: left; hyphens: manual; }
  .paper--acm .paper-refs > li { margin: 0 0 2.2pt; padding-inline-start: 2.5em; break-inside: avoid; overflow-wrap: anywhere; }
  .paper--acm .paper-refs > li::before { width: 2.1em; white-space: nowrap; color: #000; }
  .paper--acm .paper-fig svg .af-plate { fill: #fff; }
  .paper--acm .paper-note { font-size: 7pt; color: #000; }
}

/* 11 Forced colours ---------------------------------------------------------- */
@media (forced-colors: active) {
  .paper--acm .paper-table table { border-block-color: CanvasText; }
  .paper--acm .paper-code { border-block-color: CanvasText; }
}

/* 3a Multi-author byline (Lab Technical Reports with co-authors) ------------------ */
.paper--acm .paper-byline { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem 1.75rem; margin: 1.1rem auto 0; max-width: 42rem; }
.paper--acm .paper-byline__item { min-width: 0; overflow-wrap: anywhere; }
.paper--acm .paper-byline .paper-authors { margin: 0; }
.paper--acm .paper-byline .paper-affil { margin: 0.1rem 0 0; }
.paper--acm .acm-corr { display: block; font: italic 0.8125rem/1.4 var(--acm-sans); color: var(--muted); }
@media (max-width: 36rem) {
  .paper--acm .paper-byline { grid-template-columns: minmax(0, 1fr); gap: 0.75rem; }
}
@media print {
  .paper--acm .paper-byline { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5pt 14pt; margin: 6pt auto 0; max-width: 6.4in; }
  .paper--acm .paper-byline .paper-authors { margin: 0; }
  .paper--acm .paper-byline .paper-affil { margin: 0; }
  .paper--acm .acm-corr { font-size: 7.5pt; color: #333; }
}
