:root{--ink:#1d2433;--navy:#13294b;--red:#b22234;--muted:#5b6474;--line:#d9dde5;--bg:#fff;--soft:#f4f6fa}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:17px/1.6 Georgia,"Times New Roman",serif;color:var(--ink);background:var(--bg)}
a{color:#1a4f9c}
.wrap{max-width:46rem;margin:0 auto;padding:0 1rem}
header.site{border-bottom:3px solid var(--red);background:var(--navy)}
header.site .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem 1rem}
header.site a{color:#fff;text-decoration:none}
.brand{display:inline-flex;align-items:center;line-height:0}
.brand .logo{height:44px;width:auto;display:block}
@media (max-width:420px){.brand .logo{height:38px}}
nav.top a{margin-left:1rem;font:15px/1.4 system-ui,sans-serif}
main{padding:1rem 0 2rem}
h1{font-size:1.8rem;line-height:1.25;color:var(--navy);margin:.8rem 0}
h2{font-size:1.35rem;color:var(--navy);margin:1.8rem 0 .6rem;border-bottom:1px solid var(--line);padding-bottom:.2rem}
h3{font-size:1.1rem;color:var(--navy)}
sup a{text-decoration:none;font:11px system-ui,sans-serif}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1rem 0;border:1px solid var(--line);border-radius:6px}
table{border-collapse:collapse;width:100%;font:14px/1.45 system-ui,sans-serif}
th{background:var(--navy);color:#fff;text-align:left;padding:.45rem .55rem;vertical-align:bottom}
td{border-top:1px solid var(--line);padding:.45rem .55rem;vertical-align:top}
tr:nth-child(even) td{background:var(--soft)}
.small{font:13px/1.45 system-ui,sans-serif;color:var(--muted)}
.meta{font:13px system-ui,sans-serif;color:var(--muted)}
.sources{font:13px/1.5 system-ui,sans-serif;word-break:break-word}
.sources li{margin:.35rem 0}
.sources .url{color:var(--muted)}
.tool{border:2px solid var(--navy);border-radius:8px;padding:1rem;margin:1.5rem 0;background:#fbfcfe;font:15px/1.5 system-ui,sans-serif}
.tool h2,.tool h3{margin-top:.2rem;border:0}
.tool label{display:block;margin:.5rem 0 .2rem;font-weight:600}
.tool label.check{display:flex;gap:.4rem;align-items:center;font-weight:400}
.tool input[type=text],.tool select{width:100%;max-width:100%;padding:.5rem;font-size:16px;border:1px solid #9aa3b2;border-radius:5px;background:#fff}
.tool fieldset{border:1px solid var(--line);border-radius:5px;margin:.5rem 0;padding:.3rem .6rem}
.tool fieldset label{display:inline-flex;gap:.3rem;margin-right:1rem;font-weight:400}
.tool button{font:600 16px system-ui,sans-serif;padding:.65rem 1.1rem;margin:.5rem .4rem .2rem 0;border-radius:5px;border:1px solid var(--navy);background:var(--navy);color:#fff;cursor:pointer;min-height:44px}
.tool button.secondary{background:#fff;color:var(--navy)}
.tool button.link{background:none;border:0;color:var(--red);padding:.2rem 0;min-height:32px;text-decoration:underline}
.tool .row{display:grid;grid-template-columns:1fr;gap:.2rem}
.tool .gen{border-top:2px solid var(--line);padding-top:.5rem;margin-top:1rem}
.tool .cell{border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:5px;padding:.6rem;margin:.6rem 0;background:#fff}
.badge{display:inline-block;padding:.1rem .5rem;border-radius:10px;font:700 12px/1.6 system-ui,sans-serif}
.b-consistent,.b-entered{background:#e3eaf5;color:#13294b}
.b-partial,.b-possible,.b-incomplete,.b-not_evaluated{background:#fbeccb;color:#6b4500}
.b-inconsistent,.b-invalid,.b-conflict{background:#f7d4d6;color:#8e1b24}
.b-none{background:#e6e9ef;color:#3b4250}
.result{border-left:4px solid var(--navy);padding:.4rem .7rem;margin:.6rem 0;background:#fff}
.note,.caution{color:#6b4500}
.issue{color:#8e1b24}
.gaps li.conflict{color:#8e1b24;font-weight:600}
.card{border:1px dashed var(--navy);border-radius:8px;padding:.8rem 1rem;margin:1.5rem 0;font:15px/1.5 system-ui,sans-serif;background:#fbfcfe}
footer.site{border-top:1px solid var(--line);margin-top:2rem;padding:1rem 0 2rem;font:14px system-ui,sans-serif;color:var(--muted)}
footer.site a{margin-right:1rem}
.guide-list li{margin:.5rem 0}
.tool .howto{background:#eef3fb;border:1px solid #c5d3ea;border-radius:6px;padding:.6rem .9rem;margin:.4rem 0 1rem}
.tool .howto p{margin:.3rem 0}
.tool h3.step{display:flex;align-items:center;gap:.5rem;font-size:1.15rem;margin:1.4rem 0 .4rem}
.tool .step .num{display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;border-radius:50%;background:var(--navy);color:#fff;font-size:1rem;flex:none}
.tool button.big{font-size:18px;padding:.8rem 1.4rem;min-height:52px;display:block;margin-top:.9rem}
.tool .hint{margin:.1rem 0 .3rem}
.tool .cell-h{font-weight:700;margin:0 0 .2rem;color:var(--navy)}
.tool fieldset.mode legend{font-weight:600;padding:0 .2rem}
.tool fieldset label.choice{display:flex;gap:.5rem;align-items:flex-start;margin:.4rem 0}
.tool fieldset label.choice input{margin-top:.3rem}
a.button-link{display:inline-block;font:600 16px system-ui,sans-serif;padding:.65rem 1.1rem;border-radius:5px;background:var(--navy);color:#fff;text-decoration:none;min-height:44px}
.where{font:14px/1.5 system-ui,sans-serif;color:var(--ink);background:#f6f8fc;border-left:3px solid #8aa1c7;padding:.35rem .6rem;margin:.3rem 0 .7rem}
.where-links{margin:.2rem 0 0;padding-left:1.2rem}
.gaps li{margin:.5rem 0}
.next{color:var(--ink)}
.plan{border:2px solid var(--navy);border-radius:8px;padding:.6rem 1rem;margin:1rem 0;background:#fff;font:15px/1.5 system-ui,sans-serif}
.plan h2.plan-h{margin-top:.3rem}
.plan-steps>li{margin:.7rem 0}
.plan-steps>li>p{margin:.2rem 0}
.plan-title{font-size:1.05rem;color:var(--navy)}
.plan-items>li{margin:.4rem 0}
.plan-links{margin:.2rem 0;padding-left:1.2rem}
.lead{font-size:1.1rem}
a.button-link.secondary-link{background:#fff;color:var(--navy);border:1px solid var(--navy);margin-left:.4rem}
.next-guide{font:15px/1.5 system-ui,sans-serif;border-top:1px solid var(--line);padding-top:.6rem}
.gaps>li.gap-gen{margin:.8rem 0}
.gap-items,.plan-sub{padding-left:1.1rem;margin:.3rem 0}
.gap-items>li,.plan-sub>li{margin:.4rem 0}
li.conflict>.gap-text,li.conflict>span{color:#8e1b24;font-weight:600}
@media (max-width:600px){.table-wrap:has(table.widow){overflow:visible;border:0}table.widow,table.widow tbody,table.widow tr,table.widow td{display:block;width:100%}table.widow thead{display:none}table.widow tr{border:1px solid var(--line);border-radius:6px;margin:.6rem 0;padding:.3rem .5rem;background:#fff}table.widow tr:nth-child(even) td{background:none}table.widow td{border:0;padding:.25rem 0}table.widow td::before{content:attr(data-label);display:block;font-weight:700;color:var(--navy);font-size:12px;text-transform:uppercase;letter-spacing:.03em}table.widow td:first-child{font-weight:700}table.widow td{overflow-wrap:anywhere}}
@media (min-width:640px){.tool .row{grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:.5rem}.tool .row label{margin:0}}
@media (max-width:480px){body{font-size:16px}h1{font-size:1.5rem}nav.top a{margin:0 .8rem 0 0}}
@media print{body.print-plan main *{visibility:hidden}body.print-plan main .plan,body.print-plan main .plan *{visibility:visible}body.print-plan main .plan{position:absolute;left:0;top:0;width:100%;border:0}.plan button{display:none!important}header.site,footer.site,nav,.no-print,.tool button,a.button-link,.howto,.card{display:none!important}body{font-size:11pt}.tool{border:0;padding:0}.table-wrap{overflow:visible;border:0}a{color:inherit}}
/* Round 5: widow checker leads the home page; patriot step; era/state notes */
.lead-tool{border:2px solid var(--navy);border-left:6px solid var(--red);border-radius:8px;padding:.4rem 1rem 1rem;margin:1.2rem 0;background:var(--soft)}
.lead-tool h2{margin-top:.6rem}
.where-note{margin:.35rem 0 0;padding:.3rem .5rem;border-left:3px solid var(--navy);background:#fff}
.where-note.note-hint{border-left-color:var(--line);color:var(--muted);font-style:italic}
.tool .patriot-form,.tool .gen-facts{display:block}
.tool .gen-facts{border:1px dashed var(--line);border-radius:5px;padding:.2rem .6rem .4rem;margin:.5rem 0;background:#fff}
.patriot-summary dl{display:grid;grid-template-columns:max-content 1fr;gap:.2rem .8rem;font:15px/1.5 system-ui,sans-serif}
.patriot-summary dt{font-weight:600}
.patriot-summary dd{margin:0}
@media (max-width:600px){.patriot-summary dl{grid-template-columns:1fr}.patriot-summary dd{margin-bottom:.4rem}}

header.site nav a { white-space: nowrap; }

.warn { border-left: 4px solid #b26b00; background: #fff7e6; padding: .4rem .6rem; }
/* Narrow screens: the nav wraps between links (never off-screen); the worksheet report's records table stacks into cards like the widow table. */
nav.top{display:flex;flex-wrap:wrap;column-gap:1rem;row-gap:.2rem}
nav.top a{margin:0}
@media (max-width:600px){.table-wrap:has(table.records){overflow:visible;border:0}table.records,table.records tbody,table.records tr,table.records td{display:block;width:100%}table.records thead{display:none}table.records tr{border:1px solid var(--line);border-radius:6px;margin:.6rem 0;padding:.3rem .5rem;background:#fff}table.records tr:nth-child(even) td{background:none}table.records td{border:0;padding:.2rem 0}table.records td::before{content:attr(data-label);display:block;font-weight:700;color:var(--navy);font-size:12px;text-transform:uppercase;letter-spacing:.03em}.tool-actions button{width:100%;margin:.3rem 0}}
/* Beginner path, definitions box, plain answers */
.start-path{border:2px solid var(--navy);border-left:6px solid var(--red);border-radius:8px;padding:.4rem 1rem 1rem;margin:1rem 0;background:#fff}
.start-path h2{margin-top:.6rem}
.start-steps li{margin:.3rem 0}
.box-how-to-join h2{margin-top:.3rem;font-size:1.2rem}
.box-how-to-join ol{padding-left:1.3rem}
details.defs{border:1px solid var(--line);border-radius:6px;padding:.4rem .7rem;margin:.6rem 0 1rem;background:var(--soft);font:14px/1.5 system-ui,sans-serif}
details.defs summary{cursor:pointer;font-weight:600;color:var(--navy)}
details.defs ul{margin:.4rem 0 .2rem;padding-left:1.1rem}
p.answer{border-left:4px solid var(--navy);background:#fff;padding:.5rem .7rem;margin:.6rem 0;font-size:16px}
.terms{margin-top:.4rem}
.have{border:1px solid var(--line);border-radius:6px;padding:.4rem .6rem;margin:.6rem 0}
.have legend{font-weight:700;color:var(--navy);padding:0 .3rem}
.have label.check{display:inline-flex;align-items:center;gap:.3rem;margin:.15rem 1rem .15rem 0;min-height:32px}
.report-actions{margin:.2rem 0 .8rem}
.where-block{border-left:3px solid var(--navy);padding:.1rem .6rem;margin:.5rem 0;background:#fff}
.where-block p{margin:.2rem 0}
.where-ref{font-size:13px;color:var(--muted)}
.used-for{margin:.1rem 0 .3rem}
@media print{
  @page{size:Letter;margin:.5in}
  details.defs,.report-actions,.report-actions *{display:none!important}
  [data-tool-report="lineage-matrix"]{font-size:9.5pt;line-height:1.3}
  [data-tool-report="lineage-matrix"] h2{font-size:12pt;margin:.5rem 0 .2rem}
  [data-tool-report="lineage-matrix"] h3{font-size:10.5pt;margin:.4rem 0 .15rem}
  [data-tool-report="lineage-matrix"] p,[data-tool-report="lineage-matrix"] li{margin:.1rem 0}
  [data-tool-report="lineage-matrix"] ul,[data-tool-report="lineage-matrix"] ol{margin:.1rem 0;padding-left:1.1rem}
  [data-tool-report="lineage-matrix"] .plan{border:0;padding:0;margin:0}
  .where-block{border-left:2px solid #999;padding:0 .4rem;margin:.25rem 0;break-inside:avoid}
  body.print-summary .report-detail,body.print-summary main h1~p,body.print-summary main .wrap>p{display:none!important}
  body.print-summary main h1{font-size:14pt;margin:0 0 .2rem}
}
@media print{
  body.print-summary .report-where .where-block{break-inside:avoid}
  [data-tool-report="lineage-matrix"] .where-links{margin:.05rem 0}
}
@media print{
  [data-tool-report="lineage-matrix"] .plan,[data-tool-report="lineage-matrix"] .plan *,[data-tool-report="lineage-matrix"] .where-block,[data-tool-report="lineage-matrix"] .where-block *{font-size:9pt!important;line-height:1.28!important}
  [data-tool-report="lineage-matrix"] .small,[data-tool-report="lineage-matrix"] .small *,[data-tool-report="lineage-matrix"] .where-ref{font-size:8pt!important}
  [data-tool-report="lineage-matrix"] .plan-steps>li{margin:.15rem 0}
}
/* Audit 3: print shows a compact source reference (site name) instead of full link addresses; the report prints shorter. */
@media print{
  a[href]::after{content:none}
  a[data-host]::after{content:" (" attr(data-host) ")";font-size:7.5pt;color:#444}
  .add-for,.add-link{display:none!important}
  [data-tool-report="lineage-matrix"] .report-where{display:grid;grid-template-columns:1fr 1fr;column-gap:.3in;align-items:start}
  [data-tool-report="lineage-matrix"] .report-where>h2,[data-tool-report="lineage-matrix"] .report-where>p{grid-column:1/-1}
  [data-tool-report="lineage-matrix"] .where-block{break-inside:avoid}
  [data-tool-report="lineage-matrix"] .used-for{font-size:7.5pt!important}
  [data-tool-report] main h1~p,[data-tool-report] > p.small{display:none}
  table.records{font-size:8pt}
  table.records th,table.records td{padding:.1rem .25rem}
  [data-tool-report="lineage-matrix"] .report-detail h3{font-size:10pt;margin:.3rem 0 .1rem}
  [data-tool-report="lineage-matrix"] .patriot-summary dl{font:8.5pt/1.3 system-ui,sans-serif}
}
.add-for{margin:.3rem 0;font-size:14px}
.add-link{font-size:13px}
@media print{
  [data-tool-report] ul.plan-links,[data-tool-report] ul.where-links{list-style:none;padding-left:0!important;margin:.05rem 0}
  [data-tool-report] ul.plan-links>li,[data-tool-report] ul.where-links>li{display:inline;margin:0!important}
  [data-tool-report] ul.plan-links>li:not(:last-child)::after,[data-tool-report] ul.where-links>li:not(:last-child)::after{content:"; "}
  [data-tool-report] ul.plan-links>li::before{content:none}
}
@media print{
  main,main .wrap{padding-top:0!important;padding-bottom:0!important;margin-bottom:0!important}
  [data-tool-report="lineage-matrix"] section.tool{border:0;padding:0;margin:0}
  body.print-summary [data-tool-report="lineage-matrix"] .plan,body.print-summary [data-tool-report="lineage-matrix"] .plan *,body.print-summary [data-tool-report="lineage-matrix"] .where-block,body.print-summary [data-tool-report="lineage-matrix"] .where-block *{font-size:8.5pt!important;line-height:1.22!important}
  [data-tool-report="lineage-matrix"] .where-block{margin:.15rem 0}
  [data-tool-report="lineage-matrix"] .plan-sub>li,[data-tool-report="lineage-matrix"] .plan-items>li{margin:0}
}
@media print{
  /* Full report: every generation's table uses the same columns, so the column headings print once. */
  table.records{table-layout:fixed;width:100%}
  table.records td:nth-child(1),table.records th:nth-child(1){width:19%}
  table.records td:nth-child(2),table.records th:nth-child(2){width:16%}
  table.records td:nth-child(3),table.records th:nth-child(3){width:12%}
  table.records td:nth-child(4),table.records th:nth-child(4){width:29%}
  table.records td:nth-child(5),table.records th:nth-child(5){width:24%}
  table.records-more thead{display:none}
  [data-tool-report="lineage-matrix"] .report-detail .table-wrap{margin:.1rem 0}
  [data-tool-report="lineage-matrix"] .report-detail p.small{margin:0}
}
.ask{margin:.3rem 0 .6rem;padding:.4rem .7rem;border-left:4px solid #b26b00;background:#fff7e6}
.no-name{border-left:4px solid var(--navy);background:#fff;padding:.4rem .7rem;margin:.3rem 0 .8rem}
.guide-list.compact li{margin:.25rem 0}

.plan-warn{border-left:4px solid #a40000;padding-left:.6rem;background:#fff1f0}

/* Audit 4 proposals: worksheet purpose line and start screen, name checklist, birth-substitute panel, home independence note */
.tool .purpose{font-size:1.05rem;margin:.2rem 0 .6rem}
.ws-start{border:1px solid #c5d3ea;border-radius:6px;padding:.6rem .9rem;margin:.4rem 0 1rem;background:#fff}
.ws-start p{margin:.3rem 0}
.name-check{border-left:4px solid var(--navy);background:var(--soft);padding:.4rem .7rem;margin:.6rem 0;font:15px/1.5 system-ui,sans-serif}
details.name-check summary{cursor:pointer;font-weight:600;color:var(--navy)}
.name-checklist{list-style:none;margin:.3rem 0;padding:0}
.name-checklist li{margin:.35rem 0}
.name-checklist label.check{display:flex;gap:.45rem;align-items:flex-start}
.name-checklist input{margin-top:.3rem;flex:none}
details.birth-subs{border:1px solid #e3c98a;border-radius:6px;padding:.4rem .7rem;margin:.6rem 0;background:#fffaf0;font:15px/1.5 system-ui,sans-serif}
details.birth-subs summary{cursor:pointer;font-weight:600;color:#6b4500}
.birth-subs-steps{margin:.3rem 0;padding-left:1.3rem}
.birth-subs-steps li{margin:.25rem 0}
.independent{margin:-.2rem 0 .8rem;font:15px/1.45 system-ui,sans-serif;color:var(--muted)}
@media print{details.birth-subs,.ws-start,.name-check{display:none!important}}
