:root{--bg:#f8f2e4;--ink:#1c2540;--red:#8f1d21;--soft:#efe4cc;--line:#cdbd98;--mute:#46506b}
*{box-sizing:border-box}
html{font-size:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:1.1rem/1.7 "Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif}
.band{background:var(--red);color:#fff;padding:1.4rem 1rem 1.1rem}
.brand{margin:0;font:700 1.75rem/1.2 Georgia,"Times New Roman",serif}
.brand a{color:#fff;text-decoration:none}
.brand a:hover{text-decoration:underline}
.sub{margin:.3rem 0 0;color:#f6dede;font-size:1rem}
.tabs{display:flex;flex-wrap:wrap;gap:.2rem;padding:.4rem 1rem;background:var(--soft);border-bottom:1px solid var(--line)}
.tabs a{color:var(--ink);text-decoration:none;padding:.3rem .65rem;border-radius:.3rem;font-size:.97rem}
.tabs a:hover{background:#e3d5b4}
.tabs a[aria-current]{background:var(--ink);color:#fff}
a{color:#7a1519}
a:focus-visible,summary:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0}
.skip:focus{left:1rem;top:1rem;background:#fff;color:#000;padding:.6rem 1rem;z-index:10;border:2px solid #000}
main{max-width:64rem;margin:0 auto;padding:1.4rem 1rem 1rem}
h1{margin:.2rem 0 .4rem;font:700 2.1rem/1.2 Georgia,"Times New Roman",serif;color:var(--red)}
h2{margin:2rem 0 .5rem;font:700 1.45rem/1.3 Georgia,"Times New Roman",serif;color:var(--ink);padding-bottom:.25rem;border-bottom:2px solid var(--line)}
h3{margin:1.3rem 0 .3rem;font-size:1.12rem;color:var(--red)}
.lead{font-size:1.2rem;color:var(--mute);margin:0 0 1rem}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 15rem;gap:2rem;align-items:start}
.solo{grid-template-columns:minmax(0,1fr)}
.layout .toc{order:2;position:sticky;top:1rem;background:var(--soft);border:1px solid var(--line);border-radius:.4rem;padding:.8rem 1rem;font-size:.97rem}
.toc-title{margin:0 0 .3rem;font-weight:700}
.toc ol{margin:0;padding-left:1.2rem}
.callout{background:#fff;border-left:6px solid var(--red);padding:.8rem 1rem;margin:0 0 1rem}
.basis{background:var(--soft);border:1px dashed var(--line);padding:.7rem 1rem;font-size:.97rem}
table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.98rem;background:#fff}
caption{text-align:left;font-weight:700;padding:.4rem 0;color:var(--ink)}
th,td{border:1px solid var(--line);padding:.5rem .6rem;text-align:left;vertical-align:top}
thead th{background:var(--ink);color:#fff}
tbody th{background:var(--soft);white-space:nowrap}
details{background:#fff;border:1px solid var(--line);border-left:5px solid var(--red);border-radius:.3rem;margin:.6rem 0;padding:.1rem .9rem}
summary{cursor:pointer;padding:.55rem 0;font-weight:600}
details[open] summary{color:var(--red)}
details p{margin:.2rem 0 .8rem}
dt{font-weight:700;margin-top:.9rem;color:var(--red)}
dd{margin:.1rem 0 0 1rem}
.steps li{margin:.3rem 0}
.pager{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin:2rem 0 .5rem;padding-top:.8rem;border-top:2px solid var(--line)}
.foot{max-width:64rem;margin:0 auto;padding:1rem 1rem 2rem;border-top:1px solid var(--line);font-size:.97rem;color:var(--mute)}
.foot p{margin:.3rem 0}
.notice{font-weight:700;color:var(--ink)}
@media (max-width:52rem){.layout{grid-template-columns:minmax(0,1fr)}.layout .toc{order:-1;position:static}h1{font-size:1.7rem}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
@media print{.skip,.tabs,.toc,.pager{display:none}body{background:#fff;color:#000;font-size:11pt;line-height:1.45}.band{background:#fff;color:#000;border-bottom:2px solid #000;padding:0 0 .4rem}.brand a,.sub{color:#000}h1,h2,h3,dt{color:#000}table,details,.callout,.basis{break-inside:avoid;border-color:#000}thead th{background:#fff;color:#000;border:1px solid #000}details[open]{break-inside:auto}.layout{display:block}main{padding:0}a{color:#000;text-decoration:none}}
