/* Print-friendly IEEE-like report styling
   Page: US Letter, 1 inch margins.
   Content width constrained to printable area (6.5 in).
*/

:root {
  --text: #111;
  --muted: #555;
  --rule: #d0d0d0;
}

* { box-sizing: border-box; }

html, body {
  padding: 0;
  margin: 0;
  color: var(--text);
  background: #fff;
  font-family: "Times New Roman", Times, serif;
  line-height: 1.25;
}

@page {
  size: letter;
  margin: 1in;
}

.page {
  /* Constrain content to printable width (Letter minus 1in margins) */
  max-width: 6.5in;
  margin: 0 auto;
  padding: 0;
  overflow-wrap: anywhere;
}

.titleblock {
  border-bottom: 1px solid var(--rule);
  padding: 0 0 0.18in 0;
  margin: 0 0 0.18in 0;
}

h1 {
  font-size: 18pt;
  margin: 0 0 0.05in 0;
  font-weight: 700;
}

.subtitle {
  margin: 0 0 0.06in 0;
  font-size: 11pt;
  color: var(--muted);
}

.meta {
  margin: 0;
  font-size: 10pt;
  color: var(--muted);
}

h2 {
  font-size: 12pt;
  margin: 0.16in 0 0.06in 0;
  font-weight: 700;
}

h3 {
  font-size: 11pt;
  margin: 0.12in 0 0.04in 0;
  font-weight: 700;
}

p, li {
  font-size: 10.5pt;
}

p {
  margin: 0 0 0.08in 0;
}

ul, ol {
  margin: 0 0 0.10in 0.20in;
  padding: 0;
}

.toc {
  border: 1px solid var(--rule);
  padding: 0.12in;
  margin: 0.16in 0;
}

.toc ol {
  margin-left: 0.22in;
}

a {
  color: inherit;
  text-decoration: underline;
}

a:visited { color: inherit; }

.callout {
  border-left: 3px solid var(--rule);
  padding: 0.10in 0.12in;
  margin: 0.12in 0;
  background: #fafafa;
}

.note {
  border: 1px dashed var(--rule);
  padding: 0.10in 0.12in;
  margin: 0.12in 0;
}

.tablewrap {
  width: 100%;
  overflow: hidden; /* avoid any spill beyond printable region */
  margin: 0.08in 0 0.14in 0;
}

table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed; /* force wrapping within columns */
}

th, td {
  border: 1px solid var(--rule);
  padding: 6px 6px;
  vertical-align: top;
  font-size: 9.5pt;
  word-break: break-word;
}

th {
  font-weight: 700;
  background: #f3f3f3;
}

.refs ol {
  margin-left: 0.22in;
}

.footer {
  border-top: 1px solid var(--rule);
  margin-top: 0.18in;
  padding-top: 0.10in;
}

.small {
  font-size: 9.5pt;
  color: var(--muted);
}

@media print {
  /* Show URLs in print for references and inline links */
  a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 8.5pt;
    color: var(--muted);
    word-break: break-all;
  }

  .toc {
    /* Keep TOC printable but compact */
    padding: 0.10in;
  }

  /* Avoid splitting tables awkwardly when possible */
  table { page-break-inside: avoid; }
  tr, td, th { page-break-inside: avoid; }
}
