/* Coverage Register. Direction from the design seed (sha256 in design-brief.md): an actuary's ledger, re-set by the
   finance controller. One white sheet, bottle-green ink, the printed green column rules of ledger paper running down
   every table, figures right-aligned in tabular mono, Instrument Serif at display size for the headline and the big
   figures, Instrument Sans for the body, square corners, an accountant's double rule under every total, folio numbers
   at the right of every section head, and one oxblood mark for what is unrecognised or flagged. Hairlines, no band,
   no shadows, no gradients, no radii. */
:root {
  --sheet: #fbfbf8; --card: #ffffff; --wash: #f2f4f1;
  --ink: #1c221f; --ink-2: #4a544f; --ink-3: #78827c;
  --green: #0f3b2e; --green-2: #0a2a21; --green-wash: #e4ede7;
  --rule: #b7cabe; --rule-2: #dfe7e2;
  --ox: #7d1a2a; --ox-wash: #f5e6e8;
  --stat-wash: #eceeec;
  --serif: "Instrument Serif", "Georgia", "Times New Roman", serif;
  --sans: "Instrument Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --mono: "Red Hat Mono", "SFMono-Regular", Menlo, Consolas, monospace;
  --max: 1140px;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { background: var(--sheet); color: var(--ink); font: 16px/1.5 var(--sans); -webkit-font-smoothing: antialiased; }
body { margin: 0; }
a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--green-2); }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: 1.08; margin: 0 0 12px; letter-spacing: 0; }
h1 { font-size: clamp(36px, 4.8vw, 56px); }
h2 { font-size: clamp(24px, 2.8vw, 30px); }
h3 { font-size: 21px; }
p { margin: 0 0 14px; }
code, .mono { font-family: var(--mono); font-size: 0.9em; }
.num, .tab { font-variant-numeric: tabular-nums; }
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 20px; }
/* Header: a light strip, one green hairline under it */
.band { background: var(--card); border-bottom: 1px solid var(--green); }
header.site { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 13px; }
header.site .brand { font-family: var(--serif); font-size: 24px; color: var(--ink); text-decoration: none; }
header.site .brand em { font-style: italic; color: var(--green); }
header.site nav a { margin-left: 20px; text-decoration: none; color: var(--ink-2); font-size: 15px; font-weight: 500; }
header.site nav a:hover { color: var(--green); text-decoration: underline; text-underline-offset: 4px; }
/* Section heads: a ledger running head, folio at the right, one green rule under */
.fam-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; border-bottom: 1px solid var(--green); padding-bottom: 6px; margin-bottom: 10px; }
.fam-head h2 { margin: 0; }
.folio { font-size: 13px; color: var(--ink-3); }
/* Hero */
.hero { padding: 44px 0 18px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 44px; align-items: start; }
.hero .lede { font-size: 18.5px; color: var(--ink-2); max-width: 600px; margin-bottom: 18px; }
.hero .cta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.hero .cta .hint { flex-basis: 100%; }
.eyebrow { font-size: 13.5px; color: var(--ink-3); margin-bottom: 12px; max-width: 560px; }
@media (max-width: 860px) { .hero { grid-template-columns: 1fr; gap: 20px; } }
figure.person { margin: 0; } figure.person img { display: block; width: 100%; height: auto; background: var(--wash); }
figure.person figcaption { font-size: 14px; color: var(--ink-2); margin-top: 10px; line-height: 1.45; }
/* Specimen ledger under the photograph */
.specimen { border-top: 1px solid var(--green); margin-top: 16px; padding-top: 8px; font-size: 13px; }
.specimen .legend { font-size: 12.5px; color: var(--ink-3); display: flex; justify-content: space-between; }
.specimen table { width: 100%; border-collapse: collapse; margin-top: 6px; table-layout: fixed; }
.specimen th { font-family: var(--sans); font-size: 12px; font-weight: 600; text-align: left; padding: 6px 8px 5px 0; border-bottom: 1px solid var(--rule); color: var(--ink-2); }
.specimen th.num, .specimen td.num { text-align: right; font-family: var(--mono); font-size: 12px; }
.specimen td { padding: 5px 8px 5px 0; border-bottom: 1px solid var(--rule-2); vertical-align: top; }
.specimen td + td, .specimen th + th { border-left: 1px solid var(--rule-2); padding-left: 8px; }
.specimen tr.total td { border-top: 1px solid var(--green); border-bottom: 3px double var(--green); font-weight: 600; }
.specimen .pill { font-size: 10.5px; padding: 1px 6px; margin: 0; } .specimen .flag { font-size: 10.5px; }
.specimen .cap { font-size: 12px; color: var(--ink-3); margin-top: 8px; }
section { padding: 30px 0; }
/* The tool */
.tool { border: 1px solid var(--rule); background: var(--card); margin-top: 22px; }
.tool .bar { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; padding: 14px 16px 10px; }
.tool .bar .spacer { flex: 1; }
.tool .bar select, .tool .bar label { font: 14px var(--sans); color: var(--ink-2); }
.tool .bar select { padding: 7px 10px; border: 1px solid var(--rule); background: var(--card); color: var(--ink); max-width: 100%; }
.tool .bar label input { margin-right: 5px; vertical-align: -1px; }
textarea.paste { width: 100%; min-height: 230px; border: 0; border-top: 1px solid var(--rule-2); border-bottom: 1px solid var(--rule-2); padding: 14px 16px; font: 13.5px/1.5 var(--mono); color: var(--ink); resize: vertical; background: var(--card); display: block; }
textarea.paste:focus { outline: 2px solid var(--green); outline-offset: -2px; }
.btn { display: inline-block; border: 1px solid var(--green); background: var(--green); color: #fff; padding: 10px 18px; font: 600 14.5px var(--sans); cursor: pointer; text-decoration: none; }
.btn:hover { background: var(--green-2); border-color: var(--green-2); color: #fff; }
.btn.ghost { background: transparent; color: var(--green); }
.btn.ghost:hover { background: var(--green-wash); color: var(--green-2); }
.btn.small { padding: 7px 12px; font-size: 13px; }
.hint { font-size: 13px; color: var(--ink-3); }
.hint.warn { color: var(--ox); }
.na { color: var(--ink-3); font-size: 12.5px; }
.sub { display: block; font-family: var(--sans); font-size: 11.5px; color: var(--ink-3); margin-top: 2px; }
.mark { color: var(--ox); font-weight: 600; }
/* Summary strip: six ledger cells, big serif figures */
.summary { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-top: 1px solid var(--green); border-bottom: 3px double var(--green); margin-bottom: 34px; }
.summary > div { padding: 14px 14px 12px 0; }
.summary > div + div { padding-left: 14px; border-left: 1px solid var(--rule); }
.summary .n { font-family: var(--serif); font-size: 34px; line-height: 1; color: var(--ink); font-variant-numeric: tabular-nums; }
.summary > div.flagged .n { color: var(--ox); }
.summary .l { font-size: 12.5px; color: var(--ink-2); margin-top: 6px; line-height: 1.3; }
.summary .l .sub { color: var(--ink-3); margin-top: 3px; } .summary .fig { font-family: var(--mono); white-space: nowrap; }
@media (max-width: 860px) { .summary { grid-template-columns: repeat(3, 1fr); } .summary > div:nth-child(4) { border-left: 0; padding-left: 0; } .summary > div:nth-child(-n+3) { border-bottom: 1px solid var(--rule-2); } }
@media (max-width: 480px) { .summary { grid-template-columns: repeat(2, 1fr); } .summary > div:nth-child(4) { border-left: 1px solid var(--rule); padding-left: 10px; } .summary > div:nth-child(2n+1) { border-left: 0; padding-left: 0; } .summary > div:nth-child(-n+4) { border-bottom: 1px solid var(--rule-2); } }
/* Standing: classified is plain muted text; statutory and unrecognised are the only pills */
.standing { display: none; } .standing.statutory, .standing.unreg { display: inline-block; font-family: var(--sans); font-size: 11.5px; margin-left: 8px; font-weight: 600; } .standing.statutory { color: var(--ink-3); } .standing.unreg { color: var(--ox); }
/* Pills: the standing vocabulary on the landing and the SEO pages */
.pill { display: inline-block; font-family: var(--mono); font-size: 11.5px; padding: 2px 8px; white-space: nowrap; margin-right: 6px; line-height: 1.5; border: 1px solid transparent; }
.pill.classified, .pill.statutory, .pill.unreg { font-family: var(--sans); font-size: 12.5px; padding: 0; font-weight: 500; } .pill.classified, .pill.statutory { color: var(--ink-3); } .pill.unreg { color: var(--ox); font-weight: 600; }
/* Flags: mono, oxblood, no fill */
.flag { display: inline-block; font-family: var(--sans); font-weight: 600; font-size: 11.5px; color: var(--ox); margin: 2px 8px 0 0; white-space: nowrap; }
.flags { margin-top: 3px; }
/* Family sections and the ledger table */
section.fam { padding: 22px 0 0; margin-top: 18px; }
.sheet-wrap { overflow-x: auto; border: 1px solid var(--rule); background: var(--card); }
table.sheet { width: 100%; border-collapse: collapse; font-size: 14px; table-layout: fixed; } table.sheet td { overflow-wrap: anywhere; }
table.sheet col.c1 { width: 22%; } table.sheet col.c2 { width: 13%; } table.sheet col.c3 { width: 12%; } table.sheet col.c4 { width: 10%; } table.sheet col.c5 { width: 10%; } table.sheet col.c6 { width: 9%; } table.sheet col.c7 { width: 11%; } table.sheet col.c8 { width: 8%; } table.sheet col.c9 { width: 5%; }
table.sheet th { font-family: var(--sans); font-size: 12px; font-weight: 600; color: var(--ink-2); text-align: left; padding: 9px 10px; border-bottom: 1px solid var(--rule); background: var(--wash); }
table.sheet th.num { text-align: right; }
table.sheet td { padding: 10px 10px 7px; vertical-align: top; border-bottom: 0; }
table.sheet td + td, table.sheet th + th { border-left: 1px solid var(--rule-2); }
table.sheet td.num { text-align: right; font-family: var(--mono); font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
table.sheet td.num .na { font-family: var(--sans); white-space: normal; }
table.sheet tr.f td { border-top: 1px solid var(--rule-2); }
table.sheet tr.f.unreg td:first-child { box-shadow: inset 3px 0 0 var(--ox); }
table.sheet td.code { font-weight: 600; color: var(--ink); min-width: 130px; }
table.sheet td.code .hint { font-weight: 400; }
table.sheet td.code a.cat { color: var(--ink-2); text-decoration: none; border-bottom: 1px solid var(--rule); font-weight: 400; }
table.sheet td.code a.cat:hover { color: var(--green); border-color: var(--green); }
table.sheet td.small { font-size: 13px; color: var(--ink-2); }
table.sheet tfoot tr.total td { border-top: 1px solid var(--green); border-bottom: 3px double var(--green); font-weight: 600; padding: 8px 10px; background: var(--card); }
table.sheet tfoot tr.total td.code { font-family: var(--sans); font-weight: 600; }
table.sheet tr.why:not(.open) { display: none; }
table.sheet tr.why td { padding: 0 12px 10px; font-size: 13px; color: var(--ink-2); line-height: 1.45; background: var(--sheet); border-left: 0; }
table.sheet td.more { text-align: right; white-space: nowrap; } table.sheet tr.f { cursor: pointer; } table.sheet tr.f .toggle { font: 600 11.5px var(--sans); color: var(--green); } table.sheet tr.f .toggle::after { content: 'detail \25B8'; } table.sheet tr.f.open .toggle::after { content: 'close \25BE'; }
table.sheet tr.why td > div { display: flex; gap: 8px; margin-top: 4px; } table.sheet tr.why td > div > .k { flex: 0 0 92px; }
table.sheet tr.why .k { font-family: var(--sans); font-weight: 600; font-size: 11.5px; color: var(--green); padding-top: 2px; }
table.sheet tr.why a { font-family: var(--mono); font-size: 12px; text-decoration: none; border-bottom: 1px solid var(--rule); white-space: nowrap; }
.phone-only { display: none; }
.plan-tag { font-family: var(--mono); font-size: 10px; border: 1px solid currentColor; padding: 0 4px; margin-left: 6px; vertical-align: 1px; opacity: 0.8; }
/* Findings */
section.ctrls { margin-top: 34px; padding-top: 0; }
section.ctrls details, .ctrls-inline details { border: 1px solid var(--rule); background: var(--card); padding: 0 16px; margin-bottom: -1px; }
section.ctrls details:not([open]) .codes { display: none; }
section.ctrls summary, .ctrls-inline summary { cursor: pointer; padding: 11px 0; font-family: var(--sans); font-weight: 600; font-size: 15.5px; }
section.ctrls summary .who { font-family: var(--sans); font-size: 13px; color: var(--ink-2); margin-left: 6px; }
section.ctrls summary .codes { font-family: var(--mono); font-weight: 400; font-size: 12px; display: block; margin-top: 2px; color: var(--ink-3); } section.ctrls summary .codes .plain { font-family: var(--sans); }
section.ctrls .ctrl, .ctrls-inline .ctrl { padding: 6px 0 12px; border-top: 1px solid var(--rule-2); }
section.ctrls .ch, .ctrls-inline .ch { font-weight: 600; margin-bottom: 4px; } section.ctrls .ch code, .ctrls-inline .ch code { color: var(--green); margin-right: 6px; }
section.ctrls .ctrl p, .ctrls-inline .ctrl p { font-size: 14px; color: var(--ink-2); margin-bottom: 6px; }
ul.items { margin: 0 0 12px; padding-left: 18px; font-size: 14px; } ul.items li { margin-bottom: 5px; }
.locked { color: var(--ink-3); font-style: italic; }
/* Questions */
section.questions { padding-top: 34px; }
ol.qs { padding-left: 22px; margin: 0 0 14px; max-width: 860px; } ol.qs li { margin-bottom: 8px; padding-left: 4px; } ol.qs li::marker { color: var(--green); }
/* Scenario box */
.scen-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 12px 0; }
.scen-bar input[type=text] { max-width: 220px; font-family: var(--mono); }
body.has-result section.explain { display: none; }
/* Explanation rows and notices */
.form { border-top: 1px solid var(--green); }
.form > div { display: grid; grid-template-columns: 56px 240px 1fr; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--rule-2); align-items: baseline; }
.form .k { font-family: var(--mono); color: var(--green); font-size: 14px; }
.form h3 { margin: 0; }
.form p { margin: 0; color: var(--ink-2); }
@media (max-width: 760px) { .form > div { grid-template-columns: 40px 1fr; } .form p { grid-column: 2; } }
.notice { border: 1px solid var(--rule); background: var(--card); padding: 12px 16px; margin: 14px 0; font-size: 14.5px; }
.notice.gate { background: var(--ox-wash); border-color: var(--ox-wash); }
p.plain-note { font-size: 14.5px; color: var(--ink-2); max-width: 720px; }
/* Pricing */
.pricing { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0; border: 1px solid var(--rule); background: var(--card); }
.pricing > div { padding: 22px 20px 24px; border-right: 1px solid var(--rule-2); display: flex; flex-direction: column; }
.pricing > div:last-child { border-right: 0; }
@media (max-width: 860px) { .pricing > div { border-right: 0; border-bottom: 1px solid var(--rule-2); } .pricing > div:last-child { border-bottom: 0; } }
.pricing .price { font-family: var(--serif); font-size: 48px; line-height: 1; margin: 8px 0 2px; display: flex; align-items: baseline; gap: 8px; }
.pricing .price small { font-size: 13px; color: var(--ink-3); font-family: var(--mono); }
.pricing .per { color: var(--ink-3); font-size: 13px; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--rule-2); }
.pricing ul { list-style: none; padding: 0; margin: 0 0 18px; font-size: 14.5px; }
.pricing li { margin-bottom: 7px; padding-left: 1.1em; text-indent: -1.1em; }
.pricing li::before { content: "\2013  "; color: var(--green); }
.pricing .btn { margin-top: auto; align-self: flex-start; }
footer.site { border-top: 1px solid var(--green); margin-top: 30px; padding-block: 22px 40px; font-size: 13.5px; color: var(--ink-3); display: flex; flex-wrap: wrap; gap: 8px 22px; }
footer.site a { color: var(--ink-3); }
/* Forms and modal */
.modal { position: fixed; inset: 0; background: rgba(28,34,31,0.55); display: none; align-items: center; justify-content: center; padding: 20px; z-index: 10; }
.modal.open { display: flex; }
.modal .box { background: var(--card); border: 1px solid var(--rule); padding: 26px; max-width: 440px; width: 100%; }
.modal .box .legend { font-family: var(--serif); font-size: 22px; margin-bottom: 6px; }
input[type=email], input[type=text] { width: 100%; padding: 10px 12px; border: 1px solid var(--rule); font: 15px var(--sans); background: var(--card); color: var(--ink); }
input:focus { outline: 2px solid var(--green); outline-offset: -1px; }
.row { display: flex; gap: 10px; align-items: center; }
.ok { color: var(--green); } .err { color: var(--ox); }
.list { border: 1px solid var(--rule); background: var(--card); }
.list a.item { display: flex; justify-content: space-between; gap: 14px; padding: 12px 16px; border-bottom: 1px solid var(--rule-2); text-decoration: none; color: var(--ink); }
.list a.item:last-child { border-bottom: 0; }
.list a.item:hover { background: var(--green-wash); }
.list .meta { font-family: var(--mono); font-size: 12px; color: var(--ink-3); }
.index { columns: 2; column-gap: 40px; font-size: 14px; }
.index a { display: block; text-decoration: none; color: var(--ink); padding: 5px 0; border-bottom: 1px solid var(--rule-2); break-inside: avoid; }
.index a { display: flex; gap: 12px; align-items: baseline; justify-content: space-between; } .index a .chips { text-align: right; font-size: 12.5px; color: var(--ink-3); flex: 0 1 58%; }
/* Cover and industry pages */
table.mtable { width: 100%; border-collapse: collapse; font-size: 14px; }
table.mtable th { text-align: left; font-family: var(--sans); font-weight: 600; font-size: 12.5px; color: var(--green); padding: 8px 16px 8px 0; border-bottom: 1px solid var(--rule-2); vertical-align: top; white-space: nowrap; width: 200px; }
table.mtable td { padding: 8px 0; border-bottom: 1px solid var(--rule-2); vertical-align: top; }
ul.doclist { padding-left: 18px; max-width: 760px; } ul.doclist li { margin-bottom: 8px; font-size: 14.5px; }
/* Phone: the ledger becomes stacked cards; the standing pill moves up beside the name */
@media (max-width: 700px) { table.sheet, table.sheet tbody, table.sheet tfoot, table.sheet tr, table.sheet td { display: block; } table.sheet thead { display: none; } table.sheet tr.f { border-top: 1px solid var(--rule); padding: 10px 12px 4px; } table.sheet tr.f td { border: 0; padding: 3px 0; white-space: normal; min-width: 0; max-width: none; text-align: left; } table.sheet tr.f td.code { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 2px 8px; font-size: 15px; } table.sheet tr.f td.code .hint, table.sheet tr.f td.code .flags { display: block; order: 3; flex-basis: 100%; }  table.sheet td.desk-only { display: none; } table.sheet tr.f td[data-l]:not(.code) { position: relative; padding-left: 104px; font-size: 13px; } table.sheet tr.f td.num { font-family: var(--sans); font-variant-numeric: tabular-nums; font-size: 14px; } table.sheet tr.f:not(.open) td[data-l="Insurer"], table.sheet tr.f:not(.open) td[data-l="Deductible"], table.sheet tr.f:not(.open) td[data-l="Loss ratio"] { display: none; } table.mtable th, table.mtable td { display: block; width: auto; padding: 6px 0 0; border: 0; } table.mtable td { padding-bottom: 8px; border-bottom: 1px solid var(--rule-2); } .summary .fig { font-family: var(--sans); } table.sheet tr.f td[data-l]:not(.code)::before { content: attr(data-l); position: absolute; left: 0; top: 4px; font-family: var(--sans); font-size: 12px; color: var(--ink-3); } table.sheet tr.f td.num .sub { display: inline; margin-left: 6px; } table.sheet tr.why td { padding: 6px 12px 12px; } table.sheet tr.f td.more { display: block; text-align: right; padding: 4px 0 2px; } section.ctrls summary .who { display: block; margin: 2px 0 0; } .index a { display: block; } .index a .chips { display: block; text-align: left; } table.sheet tr.f { cursor: pointer; } table.sheet tr.f.unreg { box-shadow: inset 3px 0 0 var(--ox); } table.sheet tr.f td:first-child { box-shadow: none !important; } table.sheet tfoot tr.total { display: flex; flex-wrap: wrap; gap: 4px 14px; padding: 8px 12px; border-top: 1px solid var(--green); border-bottom: 3px double var(--green); } table.sheet tfoot tr.total td { border: 0; padding: 0; display: inline; } table.sheet tfoot tr.total td:empty { display: none; } table.sheet tr.why td > div > .k { flex: 0 0 78px; } .sheet-wrap { overflow: visible; } .summary .n { font-size: 24px; } .summary > div { padding: 8px 10px; } .pricing .price { font-size: 36px; } section.ctrls summary .codes { white-space: normal; } .index { columns: 1; } header.site { gap: 10px; } header.site nav { white-space: nowrap; } header.site nav a { margin-left: 10px; font-size: 13.5px; } table.sheet { font-size: 13px; } .hero { padding-top: 24px; } .tool .bar select { width: 100%; } }
@media (max-width: 480px) { h1 { font-size: 2.1rem; } .wrap { padding: 0 16px; } header.site { flex-wrap: wrap; gap: 4px 10px; padding-block: 10px; } header.site .brand { white-space: nowrap; font-size: 20px; } header.site nav { flex-basis: 100%; white-space: normal; } header.site nav a { margin: 0 14px 0 0; font-size: 13px; } .hero { padding-top: 18px; } .hero .lede { font-size: 1rem; line-height: 1.45; } .tool .bar .btn { width: 100%; text-align: center; } .tool .bar .spacer { display: none; } .specimen col.i { display: none; } }
@media print { header.site nav, .tool, .btn, footer.site, .no-print, .specimen, figure.person { display: none !important; } html { background: #fff; } details { display: block; } details > * { display: block; } table.sheet tr.why { display: table-row; } }
