/* =============================================================================
   Raleway - self-hosted, so the page makes no third-party request and the
   Content-Security-Policy can stay locked to 'self'. Five weights, Latin subset,
   about 110 KB in total, cached for 30 days by the .htaccess rule.
   ============================================================================= */
@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;
  src:url(/assets/fonts/raleway-400.woff2) format("woff2")}
@font-face{font-family:Raleway;font-style:normal;font-weight:500;font-display:swap;
  src:url(/assets/fonts/raleway-500.woff2) format("woff2")}
@font-face{font-family:Raleway;font-style:normal;font-weight:600;font-display:swap;
  src:url(/assets/fonts/raleway-600.woff2) format("woff2")}
@font-face{font-family:Raleway;font-style:normal;font-weight:700;font-display:swap;
  src:url(/assets/fonts/raleway-700.woff2) format("woff2")}
@font-face{font-family:Raleway;font-style:italic;font-weight:400;font-display:swap;
  src:url(/assets/fonts/raleway-400i.woff2) format("woff2")}

/* =============================================================================
   Majentus-MTC — stylesheet

   The palette is sampled directly from the Majentus mark, not approximated:
     navy  #051D41  the field the M sits on
     teal  #0FC5AC  the dot that closes the tail of the J
   The dot colour is the accent throughout: the MTC wordmark, the active tab,
   the rule under every card heading, the focus ring and the printed rules.
   Teal at full strength is too light for body text on white (about 1.9:1), so
   --accent-ink is the darkened form used wherever teal has to carry words.
   ============================================================================= */
:root{
  --brand:      #051D41;
  --brand-lift: #0A3163;
  --brand-dark: #03142E;
  --accent:     #0FC5AC;
  --accent-ink: #0A7F70;
  --accent-tint:#E7F8F5;
  --accent-line:#B8EAE1;
  --brand-tint: #EAF1F7;
  --ink:        #1B2733;
  --ink-soft:   #5A6874;
  --line:       #D7E0E8;
  --bg:         #F4F7F9;
  --white:      #FFFFFF;
  --danger:     #B02A2A;
  --ok:         #1E7A48;
  --font:       Raleway,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --radius:     8px;
  --shadow:     0 1px 3px rgba(5,29,65,.09), 0 6px 20px rgba(5,29,65,.07);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 var(--font)}
a{color:var(--brand)}
.wrap{max-width:1120px;margin:0 auto;padding:0 18px}
.hidden{display:none !important}
.gap{height:20px}

/* ---------- header ---------- */
header.site{background:linear-gradient(135deg,var(--brand-lift) 0%,var(--brand) 58%,var(--brand-dark) 100%);
  color:#fff;padding:22px 0;border-bottom:3px solid var(--accent)}
header.site .row{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:13px}
.brand .mark{width:48px;height:48px;border-radius:11px;flex:none;display:block;
  border:1px solid rgba(255,255,255,.20);box-shadow:0 2px 8px rgba(0,0,0,.22);
  object-fit:cover;background:var(--brand-dark)}
.brand h1{margin:0;font-size:20px;font-weight:650;letter-spacing:-.2px}
/* the MTC half of the wordmark carries the dot colour from the mark */
.brand h1 .wm{color:var(--accent)}
.brand p{margin:2px 0 0;font-size:12.5px;opacity:.82}
.hdr-meta{text-align:right;font-size:12.5px;opacity:.92;line-height:1.7}
.hdr-meta strong{display:block;font-size:14px;opacity:1}
.hdr-links a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4)}
.hdr-links a:hover{border-bottom-color:var(--accent)}

/* ---------- year bar ---------- */
.yearbar{background:var(--white);border-bottom:1px solid var(--line);padding:11px 0}
.yearbar .row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.yearbar label{font-size:13px;font-weight:600;color:var(--ink-soft)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}
.seg button{border:0;background:#fff;padding:7px 15px;font:inherit;font-size:13.5px;cursor:pointer;
  color:var(--ink-soft);border-right:1px solid var(--line)}
.seg button:last-child{border-right:0}
.seg button.on{background:var(--brand);color:#fff;font-weight:600}
.yearnote{font-size:12.5px;color:var(--ink-soft)}

/* ---------- tabs ---------- */
nav.tabs{background:var(--white);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
nav.tabs .row{display:flex;gap:2px;overflow-x:auto}
nav.tabs button{border:0;background:none;padding:14px 16px;font:inherit;font-size:14px;cursor:pointer;
  color:var(--ink-soft);border-bottom:3px solid transparent;white-space:nowrap}
nav.tabs button:hover{color:var(--brand)}
nav.tabs button.on{color:var(--brand);font-weight:650;border-bottom-color:var(--accent)}

/* ---------- layout ---------- */
main{padding:24px 0 60px}
.panel{display:none}
.panel.on{display:block}
.panel.busy .res{opacity:.55;transition:opacity .12s}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
@media (max-width:860px){.grid{grid-template-columns:1fr}}

.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:hidden}
.card h2{margin:0;padding:14px 18px;font-size:15px;font-weight:650;color:var(--brand);
  border-bottom:2px solid var(--accent);background:#fbfcfd}
.card h2 small{float:right;font-weight:400;color:var(--ink-soft);font-size:12px;padding-top:2px}
.card .body{padding:18px}

/* ---------- form ---------- */
.field{margin-bottom:14px}
.field:last-child{margin-bottom:0}
.field>label{display:block;font-size:13px;font-weight:600;margin-bottom:5px;color:var(--ink)}
/* a quiet tag on a field label — e.g. "following the nature above" */
.field>label small{font-weight:400;font-size:11.5px;color:var(--accent-ink);margin-left:7px;
  letter-spacing:.2px}
.hint{font-size:11.5px;color:var(--ink-soft);font-weight:400;margin-top:4px;display:block}
input,select,textarea,button{font-family:var(--font)}
input[type=text],input[type=email],input[type=number],input[type=password],select{
  width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:6px;
  font:inherit;font-size:14px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(15,197,172,.28)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:520px){.two{grid-template-columns:1fr}}
.check{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;margin-bottom:10px}
/* a checkbox tucked directly under the control it modifies */
.check.tight{margin:7px 0 4px;font-size:12.5px}
.check input{margin-top:3px;flex:none;width:15px;height:15px;accent-color:var(--brand)}
.check label{font-weight:400}
.check label small{display:block;color:var(--ink-soft);font-size:11.5px}

details.adv{margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}
details.adv summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--brand);list-style:none}
details.adv summary::-webkit-details-marker{display:none}
details.adv summary::before{content:"\25B8  ";font-size:11px}
details.adv[open] summary::before{content:"\25BE  "}
details.adv .inner{padding-top:14px}

/* ---------- results ---------- */
.res{background:var(--brand-tint);border:1px solid #C7D7E2;border-radius:var(--radius);padding:16px;
  border-top:3px solid var(--accent)}
.res .headline{border-bottom:1px solid #C7D7E2;padding-bottom:12px;margin-bottom:12px}
.res .headline .lbl{font-size:11.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--ink-soft);font-weight:600}
.res .headline .val{font-size:29px;font-weight:700;color:var(--brand);letter-spacing:-.5px;line-height:1.15;margin-top:2px}
.res .headline .sub{font-size:12.5px;color:var(--ink-soft);margin-top:3px}
table.res-t{width:100%;border-collapse:collapse;font-size:13.5px}
table.res-t td{padding:6px 0;border-bottom:1px solid rgba(5,29,65,.09);vertical-align:top}
table.res-t td:last-child{text-align:right;font-variant-numeric:tabular-nums lining-nums;
  white-space:nowrap;padding-left:10px}
table.res-t tr:last-child td{border-bottom:0}
table.res-t tr.tot td{font-weight:700;border-top:2px solid var(--brand);border-bottom:0;padding-top:9px;color:var(--brand)}
table.res-t tr.sub td{color:var(--ink-soft);font-size:12.5px}
/* a divider that opens a new section inside a result table */
table.res-t tr.sec td{text-align:left;padding:16px 0 5px;border-bottom:1px solid var(--accent);
  font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.9px;
  color:var(--accent-ink)}
table.res-t tr.sec:first-child td{padding-top:2px}
/* a memo row states a figure without taking part in the arithmetic of the column */
table.res-t tr.memo td{font-style:italic}
table.res-t tr.memo td:last-child::before{content:"= ";color:var(--ink-soft)}
table.res-t tr.neg td:last-child{color:var(--ok)}
.wrapval{text-align:right;display:block;max-width:340px;margin-left:auto;white-space:normal}

table.slab{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:14px}
table.slab th{text-align:left;padding:7px 8px;background:#fbfcfd;border-bottom:1px solid var(--line);
  font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-soft)}
table.slab td{padding:6px 8px;border-bottom:1px solid #EDF1F4;font-variant-numeric:tabular-nums}
table.slab td:nth-child(n+2),table.slab th:nth-child(n+2){text-align:right}
table.slab tr.zero td{color:#98A5AF}

.note{font-size:12px;color:var(--ink-soft);background:var(--accent-tint);border-left:3px solid var(--accent);
  padding:9px 12px;border-radius:0 5px 5px 0;margin-top:14px;line-height:1.5}
.note:empty{display:none}
.note strong{color:var(--ink)}
.note.warn{background:#FDF3F3;border-left-color:var(--danger)}
.note ul{margin:6px 0 0;padding-left:17px}
.note li{margin-bottom:3px}

.pill{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  padding:2px 7px;border-radius:20px;background:var(--brand-tint);color:var(--brand);border:1px solid #C7D7E2}
.pill.min{background:#FFF4E5;color:#8A5A00;border-color:#F0DAB4}
.pill.fin{background:#EAF6EF;color:var(--ok);border-color:#C6E5D2}

/* ---------- reference / admin tables ---------- */
.reftable{width:100%;border-collapse:collapse;font-size:13px}
.reftable th{text-align:left;padding:9px 10px;background:var(--brand);color:#fff;font-size:11.5px;
  text-transform:uppercase;letter-spacing:.4px;font-weight:600}
.reftable td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.reftable tbody tr:nth-child(even){background:#FAFCFD}
.reftable td:nth-child(n+2){font-variant-numeric:tabular-nums}
.reftable .grp td{background:var(--brand-tint);font-weight:700;color:var(--brand);font-size:12px;
  text-transform:uppercase;letter-spacing:.4px}
.tscroll{overflow-x:auto}

/* ---------- buttons ---------- */
.actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.btn{border:1px solid var(--brand);background:var(--brand);color:#fff;padding:9px 17px;border-radius:6px;
  font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block}
.btn:hover{background:var(--brand-dark)}
.btn.ghost{background:#fff;color:var(--brand)}
.btn.ghost:hover{background:var(--brand-tint)}
.btn.danger{background:var(--danger);border-color:var(--danger)}
.btn.danger:hover{background:#8E2020}
.btn.wide{width:100%;padding:11px}
.btn.sm{padding:5px 11px;font-size:12.5px}

/* ---------- messages ---------- */
.msg{padding:10px 13px;border-radius:6px;font-size:13.5px;margin-bottom:14px;line-height:1.5}
.msg.err{background:#FDF3F3;border:1px solid #EDCACA;color:#7A1F1F}
.msg.ok{background:#EAF6EF;border:1px solid #C6E5D2;color:#175E37}
.msg.info{background:var(--brand-tint);border:1px solid #C7D7E2;color:var(--brand)}

/* ---------- auth pages ---------- */
.authpage{min-height:60vh;display:grid;place-items:center;padding:44px 18px}
.authcard{width:100%;max-width:400px;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}
.authbrand{text-align:center;margin-bottom:22px}
.authbrand img{border-radius:14px;box-shadow:0 3px 12px rgba(5,29,65,.20)}
.authbrand h1{margin:12px 0 2px;font-size:20px;color:var(--brand);letter-spacing:-.2px}
.authbrand h1 .wm{color:var(--accent-ink)}
.authbrand p{margin:0;font-size:12.5px;color:var(--ink-soft)}
.authfoot{margin:16px 0 0;font-size:11.5px;color:var(--ink-soft);text-align:center}

/* ---------- admin ---------- */
.adminbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.adminbar h2{margin:0;font-size:17px;color:var(--brand)}
.utable{width:100%;border-collapse:collapse;font-size:13.5px}
.utable th{text-align:left;padding:9px 10px;background:var(--brand);color:#fff;font-size:11.5px;
  text-transform:uppercase;letter-spacing:.4px;font-weight:600;white-space:nowrap}
.utable td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.utable tbody tr:nth-child(even){background:#FAFCFD}
.utable .muted{color:var(--ink-soft);font-size:12px}
.tag{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  padding:2px 8px;border-radius:20px;border:1px solid}
.tag.admin{background:var(--brand-tint);color:var(--brand);border-color:#C7D7E2}
.tag.user{background:#F1F4F6;color:var(--ink-soft);border-color:var(--line)}
.tag.off{background:#FDF3F3;color:#7A1F1F;border-color:#EDCACA}
.tag.on{background:#EAF6EF;color:#175E37;border-color:#C6E5D2}
.rowacts{display:flex;gap:6px;flex-wrap:wrap}
.rowacts form{display:inline}

/* ---------- footer ---------- */
footer.site{background:var(--brand-dark);color:rgba(255,255,255,.72);padding:26px 0;font-size:12px;line-height:1.65}
footer.site strong{color:#fff}
footer.site a{color:#fff}
.disclaimer{background:#fff;border:1px solid var(--line);border-left:4px solid var(--danger);
  border-radius:var(--radius);padding:14px 18px;font-size:12.5px;color:var(--ink-soft);
  margin-top:24px;line-height:1.6}
.disclaimer b{color:var(--ink)}

/* ---------- forward / reverse ---------- */
.panel.is-rev .card h2{border-bottom-color:#C9A227}
.panel.is-rev .res{background:#FFFBF0;border-color:#F0DAB4}
.panel.is-rev .res .headline{border-bottom-color:#F0DAB4}
.panel.is-rev .res .headline .val{color:#8A5A00}
.panel.is-rev table.res-t tr.tot td{border-top-color:#C9A227;color:#8A5A00}
select.js-dir{font-weight:600}

/* ---------- print furniture (hidden on screen) ---------- */
.printhead,.printfoot{display:none}
/* The sheet wrapper exists only so the printer can repeat a header and footer.
   On screen every part of it collapses to a plain block, so the page behaves
   exactly as it did before the wrapper was introduced. */
table.sheet,table.sheet>thead,table.sheet>tbody,table.sheet>tfoot,
table.sheet>thead>tr,table.sheet>tbody>tr,table.sheet>tfoot>tr,
table.sheet>thead>tr>td,table.sheet>tbody>tr>td,table.sheet>tfoot>tr>td{
  display:block;width:auto;padding:0;margin:0;border:0;vertical-align:baseline}

/* =============================================================================
   PRINT — a computation statement, not a screenshot.

   What comes off the printer is: a letterhead carrying the mark, the wordmark
   and a meta box (tax year, date, preparer, working-paper reference); a titled
   statement rule; a summary strip with the headline figure; the computation
   itself; and a signature block. Everything that is screen furniture is
   dropped — tab bar, year bar, the input form, buttons, site header, footer.
   Nothing tax-related follows the final figure: no slab table, no commentary.

   Lengths are in pt throughout, because this is paper.
   ============================================================================= */
@media print{
  /* -------------------------------------------------------------------------
     The date/title line at the top of the paper and the URL at the bottom are
     drawn by the browser, not by this page — they live in the paper margin,
     outside the document. Chromium only draws them when the page margin is
     large enough to hold them, so the margin here is set to zero and the real
     margin is put back as padding on the content. The result is a clean sheet
     without anyone having to untick "Headers and footers" in the print dialog.

     Because a zero page margin gives continuation pages no top space of their
     own, the letterhead is promoted to a table header group. Chromium repeats
     a table header group on every printed page, so page two of a long rate
     card carries the same letterhead — and the same top margin — as page one.
     ------------------------------------------------------------------------- */
  @page{margin:0;size:auto}

  header.site,nav.tabs,.yearbar,.actions,footer.site,
  .msg,.adminbar,details.adv{display:none !important}

  body{background:#fff;color:#111;font-size:10pt;line-height:1.45;margin:0}
  .wrap{max-width:none;padding:0}
  main.wrap{padding:0 14mm}

  /* the sheet becomes a real table again, so thead repeats per page */
  table.sheet{display:table;width:100%;table-layout:fixed;border-collapse:collapse}
  table.sheet>thead{display:table-header-group}
  table.sheet>tbody{display:table-row-group}
  table.sheet>tfoot{display:table-footer-group}
  table.sheet>thead>tr,table.sheet>tbody>tr,table.sheet>tfoot>tr{display:table-row}
  table.sheet>thead>tr>td,table.sheet>tbody>tr>td,table.sheet>tfoot>tr>td{
    display:table-cell;padding:0;border:0;vertical-align:top}

  /* ---------------------------------------------------------- letterhead */
  /* table-header-group makes Chromium repeat this at the top of every page,
     which is what restores the top margin on continuation pages */
  .printhead{display:block !important}
  .ph-pad{display:block;height:11mm}
  .ph-title{padding-bottom:10pt}

  table.ph-top{width:100%;border-collapse:collapse;
    border-bottom:2.2pt solid var(--brand)}
  table.ph-top td{vertical-align:bottom;padding:0 0 7pt}

  .ph-l img{width:40pt;height:40pt;border-radius:6pt;
    vertical-align:middle;margin-right:9pt;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .ph-id{display:inline-block;vertical-align:middle}
  .ph-id strong{display:block;font-size:15pt;font-weight:700;color:var(--brand);
    letter-spacing:-.3pt;line-height:1.1}
  .ph-id strong .wm{color:var(--accent-ink)}
  .ph-sl{display:block;font-size:8pt;color:var(--ink-soft);
    margin-top:2pt;letter-spacing:.2pt}

  td.ph-r{text-align:right;width:44%}
  table.ph-meta{border-collapse:collapse;margin-left:auto;font-size:8.5pt}
  table.ph-meta th{text-align:left;font-size:7pt;font-weight:700;
    text-transform:uppercase;letter-spacing:.7pt;color:var(--ink-soft);
    padding:1.4pt 12pt 1.4pt 0;white-space:nowrap}
  table.ph-meta td{text-align:right;font-weight:600;color:#111;
    padding:1.4pt 0;white-space:nowrap;
    font-variant-numeric:tabular-nums lining-nums}

  .ph-title{margin-top:10pt}
  .ph-kicker{display:block;font-size:7pt;font-weight:700;
    text-transform:uppercase;letter-spacing:1.3pt;color:var(--accent-ink)}
  .ph-title h2{margin:2pt 0 0;font-size:13pt;font-weight:700;
    color:var(--brand);letter-spacing:-.2pt;padding-bottom:5pt;
    border-bottom:1.4pt solid var(--accent);
    -webkit-print-color-adjust:exact;print-color-adjust:exact}

  /* ------------------------------------------------------- the statement */
  /* one column, and the input card goes: the computation restates the inputs */
  .grid{display:block}
  .panel.on .grid>.card:first-child{display:none !important}

  /* the statement title has replaced the card heading — but only inside a
     calculator panel. The Rate Cards panel has no .grid and keeps its headings. */
  .panel.on .grid .card>h2{display:none !important}

  .card{box-shadow:none;border:0;border-radius:0;break-inside:auto}
  .card .body{padding:0}

  .res{background:#fff;border:0;border-top:0;border-radius:0;padding:0}

  /* summary strip — the answer, before the working that produces it */
  .res .headline{border:.8pt solid #C7D7E2;border-left:3.5pt solid var(--accent);
    border-radius:0;padding:6pt 10pt;margin:0 0 10pt;break-inside:avoid;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .res .headline .lbl{font-size:7pt;letter-spacing:.9pt;color:var(--ink-soft);font-weight:700}
  .res .headline .val,
  .panel.is-rev .res .headline .val{font-size:18pt;color:var(--brand);
    margin-top:1pt;letter-spacing:-.4pt}
  .res .headline .sub{font-size:8.5pt;color:var(--ink-soft);margin-top:2pt}

  /* orphans/widows keep a lone row from being stranded on a page of its own;
     break-inside on the row stops a single line item being split in half */
  table.res-t{width:100%;font-size:9.5pt;margin:0;orphans:3;widows:3}
  table.res-t tr{break-inside:avoid}
  table.res-t td{padding:4.2pt 0;border-bottom:.4pt solid #DFE5EA}
  table.res-t td:last-child{padding-left:14pt}
  table.res-t tr.sub td{font-size:9pt;color:var(--ink-soft)}
  table.res-t tr.sec td{text-align:left;padding:10pt 0 3pt;border-bottom:.9pt solid var(--accent);
    font-size:7.5pt;font-weight:700;text-transform:uppercase;letter-spacing:1pt;
    color:var(--accent-ink);
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  table.res-t tr.sec:first-child td{padding-top:0}
  table.res-t tr.memo td{font-style:italic}
  table.res-t tr.memo td:last-child::before{content:"= ";color:var(--ink-soft)}
  table.res-t tr.neg td:last-child,
  .panel.is-rev table.res-t tr.tot td{color:#111}
  table.res-t tr.tot td{border-top:1.3pt solid var(--brand);border-bottom:0;
    padding-top:6pt;font-size:11pt;font-weight:700;color:var(--brand)}

  /* ------------------------------------------------------- closing legend */
  .printfoot{display:block !important}
  .pf-inner{display:block;margin-top:14pt;break-inside:avoid;
    border-top:.6pt solid #DFE5EA;padding-top:7pt;padding-bottom:11mm}
  .pf-note{margin:0;text-align:center;font-size:8.5pt;font-style:italic;
    color:var(--ink-soft);letter-spacing:.2pt}

  /* nothing after the final figure: no slab breakdown, no commentary, no
     disclaimer. The printed page is the letterhead and the computation. */
  .panel.on .js-slab,
  .panel.on .note,
  .disclaimer{display:none !important}

  /* the Rate Cards panel is the one place a table is the content */
  .reftable{font-size:8.5pt}
  .reftable th{background:#f2f2f2 !important;color:#000 !important;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  table.slab{break-inside:avoid}
  table.slab th{background:#f2f2f2}
  a[href]:after{content:""}
}

/* ---------- taxpayer status tab ---------- */
.msg.tight{margin:0 0 4px}
.res .headline .val.smsval{font-size:20px;letter-spacing:0}
table.slab.linktable{margin-top:16px}
table.slab.linktable td:nth-child(2){text-align:right}
table.slab.linktable a{font-weight:600;text-decoration:none;border-bottom:1px solid currentColor}

/* ---------- probe output ---------- */
pre.probe-pre{margin:6px 0 0;padding:8px 10px;background:#F4F7F9;border:1px solid var(--line);
  border-radius:5px;font-size:11.5px;line-height:1.45;overflow-x:auto;white-space:pre;color:var(--ink)}
label.spaced{display:block;margin-top:12px}

/* ---------- repeatable line items ---------- */
.lines{margin-bottom:8px}
.line{display:grid;grid-template-columns:1fr 148px 30px;gap:8px;margin-bottom:8px;align-items:center}
.line input[type=text]{font-size:13px}
.line input[type=number]{text-align:right;font-variant-numeric:tabular-nums}
.line .lx{border:1px solid var(--line);background:#fff;color:var(--ink-soft);border-radius:6px;
  height:36px;font-size:18px;line-height:1;cursor:pointer;padding:0}
.line .lx:hover{border-color:var(--danger);color:var(--danger);background:#FDF3F3}
.js-addline{margin-bottom:4px}
@media (max-width:620px){
  .line{grid-template-columns:1fr 112px 30px}
}
@media print{.lines,.js-addline{display:none !important}}
