/* Print-ready lender report. Letter paper; statement pages are landscape. */
:root { --ink:#16202b; --muted:#5b6876; --line:#cfd6de; --navy:#0b2545; --blue:#1f6feb; --green:#0e7a4b; --red:#b42318; --paper:#fff; --bg:#e9edf2; }
* { box-sizing: border-box; }
html { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
body { margin:0; background:var(--bg); color:var(--ink); font:12px/1.45 -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
.toolbar { position:sticky; top:0; z-index:5; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 18px; background:var(--navy); color:#fff; font-size:13px; }
.toolbar button { font:600 13px/1 inherit; padding:9px 14px; border:0; border-radius:6px; background:#fff; color:var(--navy); cursor:pointer; }
.tb-link { color:#c9d6ea; margin-right:14px; text-decoration:none; }
.page { position:relative; background:var(--paper); margin:18px auto; padding:0.55in 0.6in 0.45in; box-shadow:0 1px 6px rgba(11,37,69,.18); }
.page.portrait { width:8.5in; min-height:11in; }
.page.landscape { width:11in; min-height:8.5in; }
.cover { border-bottom:3px solid var(--navy); padding-bottom:12px; margin-bottom:14px; }
.eyebrow { margin:0; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--blue); font-weight:700; }
h1 { margin:4px 0 2px; font-size:28px; line-height:1.15; color:var(--navy); }
.period { margin:0; color:var(--muted); font-size:12px; }
h2 { margin:18px 0 6px; font-size:13.5px; color:var(--navy); border-bottom:1px solid var(--line); padding-bottom:3px; }
h2:first-child { margin-top:0; }
table { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
th { text-align:left; font-weight:700; font-size:10.5px; color:#fff; background:var(--navy); padding:5px 6px; }
td { padding:3.5px 6px; border-bottom:1px solid #edf0f3; }
.num { text-align:right; white-space:nowrap; }
tr.bold td { font-weight:700; border-top:1px solid var(--line); }
tr.total td { font-weight:700; background:#f1f4f7; border-top:1px solid var(--ink); border-bottom:3px double var(--ink); }
tr.section td { font-weight:700; color:var(--navy); background:#e8eef6; }
tr.indent td:first-child { padding-left:16px; }
tr.pct td { color:var(--muted); font-style:italic; }
table.wide { font-size:9.2px; }
table.wide th { font-size:8.8px; padding:4px 4px; }
table.wide td { padding:2.6px 4px; }
table.wide td:first-child, table.wide th:first-child { width:17%; white-space:normal; }
table.q td:first-child, table.q th:first-child { width:24%; }
table.su .gap { width:28px; border:0; background:transparent; }
table.su th.gap { background:transparent; }
table.kv td:first-child { width:74%; }
.fine { margin:6px 0 0; color:var(--muted); font-size:10.5px; }
.charts { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:16px; }
figure { margin:0; }
figcaption { font-size:10.5px; font-weight:700; color:var(--navy); margin-bottom:2px; }
.key { display:inline-block; width:9px; height:9px; border-radius:2px; margin:0 3px 0 0; vertical-align:-1px; }
.key.k-ni { margin-left:10px; background:var(--green); }
.key.k-rev { background:var(--blue); }
.chart { width:100%; height:auto; display:block; }
.chart .axis { stroke:#8b98a9; stroke-width:1; }
.chart .grid { stroke:#dfe5ec; stroke-width:1; stroke-dasharray:3 3; }
.chart .bar-rev { fill:var(--blue); }
.chart .bar-ni { fill:var(--green); }
.chart .bar-loss { fill:var(--red); }
.chart .barlabel { font-size:11px; fill:var(--ink); text-anchor:middle; font-weight:600; }
.chart .barlabel.loss { fill:var(--red); }
.chart .barlabel.halo { paint-order:stroke; stroke:#fff; stroke-width:3px; stroke-linejoin:round; }
.chart .axislabel { font-size:11px; fill:var(--muted); text-anchor:middle; }
.chart .line { fill:none; stroke:var(--navy); stroke-width:2; stroke-linejoin:round; }
.chart .area { fill:rgba(31,111,235,.13); }
.chart .dot { fill:var(--red); }
ul.assume { margin:4px 0 0; padding-left:18px; }
ul.assume li { margin:2.5px 0; }
/* The public sample carries a watermark on every page so it cannot be mistaken for a real plan. */
body.sample .page::before { content: "SAMPLE"; position: absolute; top: 42%; left: 50%; transform: translate(-50%, -50%) rotate(-28deg); font-size: 150px; font-weight: 800; letter-spacing: .08em; color: rgba(11,37,69,.055); pointer-events: none; z-index: 0; }
.disclaimer { margin-top:18px; padding:9px 11px; border:1px solid var(--line); border-radius:4px; font-size:10px; color:var(--muted); background:#fafbfc; }
footer { margin-top:18px; padding-top:5px; border-top:1px solid var(--line); font-size:9px; color:var(--muted); }
tr, li, figure, .disclaimer { break-inside: avoid; }
h2 { break-after: avoid; }
/* Margins belong to the sheet, not the section, so a section that runs onto a second sheet keeps them. */
@page { size: letter portrait; margin: 0.5in 0.6in 0.6in; }
@page wide { size: letter landscape; margin: 0.5in 0.6in 0.6in; }
@media print {
  body { background:#fff; }
  .toolbar, footer { display:none; }
  .page { margin:0; padding:0; box-shadow:none; break-after:page; }
  .page:last-of-type { break-after:auto; }
  .page.portrait { width:auto; min-height:0; }
  .page.landscape { page: wide; width:auto; min-height:0; }
  thead { display: table-header-group; }
}
@media screen and (max-width: 900px) { .page { transform-origin: top left; } body { overflow-x:auto; } }
