/* Stylesheet ported from the prototype web edition (pilot/web/build_site.py): the same tokens and entry layout,
   one page per view instead of one page for the book. Mobile first; no web fonts fetched from third parties. */
:root{--bg:#f7f8fa;--paper:#ffffff;--fg:#141618;--mid:#5b6168;--rule:#c9ced6;--tint:#e6ebf4;--blue:#0b3d91;--blue-ink:#0b3d91;--red:#ba0c2f;--ink:#111;--head:"Jost","Sofia Sans",system-ui,sans-serif;--body:"Sofia Sans",system-ui,sans-serif;--zebra:#eef0f3;--warn:#fff4d6}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#14171b;--paper:#1c2026;--fg:#e8eaed;--mid:#a3aab3;--rule:#3a4049;--tint:#223050;--blue:#8db1ff;--blue-ink:#c7d8ff;--red:#ff7a8f;--ink:#e8eaed;--zebra:#1f242b;--warn:#4a3a10;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#14171b;--paper:#1c2026;--fg:#e8eaed;--mid:#a3aab3;--rule:#3a4049;--tint:#223050;--blue:#8db1ff;--blue-ink:#c7d8ff;--red:#ff7a8f;--ink:#e8eaed;--zebra:#1f242b;--warn:#4a3a10;color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:14px;line-height:1.38;margin:0;min-height:100vh;display:flex;flex-direction:column}
a{color:inherit}
a.xl{color:var(--blue-ink);text-decoration:none;border-bottom:1px dotted var(--rule)}
a.xl:hover{border-bottom-color:var(--blue)}
a.xl.ph{color:var(--mid)}
.banner{background:var(--tint);border-bottom:1px solid var(--rule);padding:6px 16px;font-size:12.5px}
.banner.emerg{background:var(--red);color:#fff;font-weight:600}
.banner.old{background:var(--warn)}
.msgs{padding:0 16px}
.msg{background:var(--tint);border-left:3px solid var(--blue);padding:6px 10px;margin:8px 0;font-size:13px}
.msg.error{border-left-color:var(--red)}
.msg.warning{background:var(--warn)}
header.top{position:sticky;top:0;z-index:5;background:var(--paper);border-bottom:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:8px max(16px,env(safe-area-inset-right,0px)) 8px max(16px,env(safe-area-inset-left,0px))}
.brand{font-family:var(--head);font-weight:600;font-size:16px;text-decoration:none;letter-spacing:.01em;white-space:nowrap}
.brand i{color:var(--blue);font-weight:450}
form.look{position:relative;flex:1;min-width:160px;max-width:420px;margin:0}
#q{width:100%;font:14px var(--body);padding:6px 9px;border:1px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--fg)}
.qhits{position:absolute;left:0;right:0;top:100%;background:var(--paper);border:1px solid var(--rule);border-radius:6px;box-shadow:0 6px 20px rgba(0,0,0,.18);z-index:30;max-height:60vh;overflow:auto}
.qhits a{display:flex;gap:8px;align-items:baseline;padding:6px 10px;text-decoration:none;border-bottom:1px solid var(--rule);font-size:13px}
.qhits a:last-child{border-bottom:0}
.qhits a:hover,.qhits a.sel{background:var(--tint)}
.qhits a b{white-space:nowrap}
.qhits a .mid{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topnav{display:flex;gap:4px 12px;flex-wrap:wrap;align-items:center;font-size:13px;margin-left:auto}
.topnav a{text-decoration:none;color:var(--fg);border-bottom:1px dotted var(--rule)}
.topnav form.inline{display:inline;margin:0}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--blue-ink);cursor:pointer;border-bottom:1px dotted var(--rule)}
main{flex:1;padding:14px max(16px,env(safe-area-inset-right,0px)) 40px max(16px,env(safe-area-inset-left,0px));max-width:1180px;width:100%;min-width:0;margin:0 auto}
footer.foot{border-top:1px solid var(--rule);padding:10px 16px 24px;font-size:11.5px;color:var(--mid)}
h2.chap{font-family:var(--head);font-weight:600;font-size:24px;display:flex;gap:12px;align-items:center;margin:10px 0 8px;border-bottom:2px solid var(--ink);padding-bottom:6px;text-wrap:balance}
h2.chap .n{display:inline-flex;width:38px;height:38px;background:var(--ink);color:var(--bg);align-items:center;justify-content:center;font-size:22px;font-weight:700;border-radius:3px;flex:none}
.chnote,.tnote{background:var(--tint);border-left:3px solid var(--blue);padding:7px 10px;font-size:12.5px;margin:8px 0 10px}
h3.tt{font-family:var(--head);font-weight:600;font-size:17px;margin:22px 0 4px}
h4.sub{font-family:var(--head);font-weight:600;font-size:13px;margin:12px 0 4px}
.qrlab{font:600 11px var(--head);letter-spacing:.07em;color:var(--blue);text-transform:uppercase;margin:12px 0 4px}
.tw{overflow-x:auto;max-height:78vh;overflow-y:auto;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);margin:4px 0 10px}
table.ref{border-collapse:collapse;width:100%;font-size:12px;font-variant-numeric:tabular-nums}
table.ref th{font:600 10.5px var(--head);letter-spacing:.06em;text-transform:uppercase;color:var(--blue);text-align:left;padding:5px 6px;border-bottom:1px solid var(--ink);position:sticky;top:0;background:var(--paper);z-index:1}
table.sortable th{cursor:pointer;user-select:none}
table.sortable th.asc::after{content:" ▲"}
table.sortable th.desc::after{content:" ▼"}
table.ref td{padding:4px 6px;vertical-align:top;border-top:1px solid transparent}
table.ref tbody tr:nth-child(even) td{background:var(--zebra)}
table.ref tr.band td{background:var(--tint)!important;border-left:3px solid var(--blue);font:700 11.5px var(--head);color:var(--blue);letter-spacing:.03em;padding:5px 8px}
table.ref tr.hid{display:none}
table.ref tr.off td{opacity:.55}
table.ref tr.bad td{color:var(--red)}
table.ref tr.weak td{color:var(--mid)}
table.ref td.r{text-align:right;white-space:nowrap}
table.ref.t5 th:not(:first-child){text-align:right}
table.ref td.small,.small{font-size:11.5px}
table.ref td.tagc{font:600 10.5px var(--head);color:var(--mid);white-space:nowrap}
table.ref td.mobc{font:700 10.5px var(--head);white-space:nowrap}
.tfilter{margin:6px 0}
.tq{font:13px var(--body);padding:5px 8px;border:1px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--fg);min-width:220px}
.note{color:var(--mid);font-size:11.5px}
.mid{color:var(--mid)}
.i{font-style:italic}
.cyr{font-weight:400}
.ph{font-weight:500;color:var(--mid)}
.nato{color:var(--blue-ink);font-weight:600;letter-spacing:.03em;text-transform:uppercase}
.pill{display:inline-block;font:600 11px var(--head);letter-spacing:.02em;padding:1px 8px;border-radius:9px;border:1px solid var(--ink);vertical-align:middle;margin-left:6px;line-height:1.35;white-space:nowrap}
.pill.act{background:var(--ink);color:var(--paper)}
.pill.pas{background:none;color:var(--fg)}
.pill.sm{font-size:9.5px;padding:0 5px;margin-left:5px;border-radius:7px}
article.entry h3 .pill{position:relative;top:-2px}
.ua{display:inline-block;border:1px solid var(--blue);color:var(--blue);font:700 9px var(--head);padding:0 3px;border-radius:3px;vertical-align:middle}
.three{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:14px}
.gband{background:var(--tint);border-left:4px solid var(--blue);color:var(--blue);font:600 14px var(--head);padding:5px 10px;margin:16px 0 6px}
.groups p{margin:0 0 6px;font-size:13px}
nav.crumbs{font-size:12.5px;color:var(--mid);margin:0 0 8px;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}
nav.crumbs a{color:var(--blue-ink);text-decoration:none}
nav.crumbs .pn{margin-left:auto;display:flex;gap:12px}
p.pn{font-size:12.5px;margin-top:16px}
article.entry{background:var(--paper);border-top:2px solid var(--ink);padding:8px 12px 10px;margin:0 0 16px}
article.entry header.strip{display:flex;justify-content:space-between;gap:8px 12px;align-items:flex-end;border-bottom:1px solid var(--rule);padding-bottom:5px;flex-wrap:wrap}
article.entry h3{font-family:var(--head);font-weight:600;font-size:21px;margin:0;line-height:1.15}
article.entry h3 .cyr{font-family:var(--body);font-size:15px;margin-left:6px}
article.entry .right{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}
.natolab{font:600 11px var(--head);color:var(--mid)}
.mob{display:inline-block;background:var(--ink);color:var(--bg);font:700 11px var(--head);letter-spacing:.04em;padding:2px 6px;border-radius:3px}
.seg{display:inline-flex;border:1px solid var(--rule);border-radius:6px;overflow:hidden}
.seg button{background:none;border:0;color:var(--fg);font:600 12px var(--head);padding:4px 9px;cursor:pointer;letter-spacing:.03em}
.seg button[aria-pressed="true"]{background:var(--blue);color:#fff}
.roleline{margin:6px 0 8px;font-size:13.5px}
.quick{margin-left:10px;font-weight:600}
.cols{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:8px 20px}
.col{min-width:0}
.col p{margin:0 0 5px}
.lab{font:600 10px var(--head);letter-spacing:.07em;text-transform:uppercase;color:var(--blue);margin-right:4px}
.lab-gap{display:inline-block;width:0}
.aspect{font:700 11px var(--head)}
.tag{display:inline-block;border:1px solid var(--mid);color:var(--mid);font:600 10px var(--head);padding:0 4px;border-radius:3px;vertical-align:middle}
.kvs{display:grid;grid-template-columns:minmax(90px,38%) minmax(0,1fr);gap:3px 10px;font-size:13px}
.kv{display:contents}
.kv .k{color:var(--mid);font-size:12px}
.kv .v b{font-weight:600}
.alt{color:var(--mid);font-style:italic;font-size:11.5px}
hr.thin{border:0;border-top:1px solid var(--rule);margin:8px 0}
.pics{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 10px}
.pics figure{margin:0;flex:0 1 auto;max-width:100%}
.pics img{max-width:100%;max-height:360px;width:auto;height:auto;display:block;border:1px solid var(--rule);background:#fff}
.pics figcaption{font-size:10.5px;color:var(--mid);margin-top:2px}
.webpics .webhd{font:600 11px var(--head);letter-spacing:.04em;text-transform:uppercase;color:var(--mid);margin:0 0 4px}
footer.srcline{margin-top:8px;font-size:11px;color:var(--mid);display:flex;flex-wrap:wrap;gap:4px 6px;align-items:baseline}
footer.srcline a.src,footer.srcline .src{text-decoration:none;color:var(--mid);border-bottom:1px dotted var(--rule)}
footer.srcline .upd{margin-left:auto}
.unv{color:var(--red);font-weight:700}
.extras{margin-top:10px;border-top:1px dashed var(--rule);padding-top:8px;font-size:12.5px}
.extras ul{margin:4px 0 0 18px;padding:0}
.extras li{margin:2px 0}
details.oq summary{cursor:pointer}
.toelinks{margin-top:8px;font-size:12.5px;border-top:1px dashed var(--rule);padding-top:6px}
html[data-view="compact"] .lv2,html[data-view="compact"] .lv3,html[data-view="a4"] .lv3{display:none}
article.placeholder{opacity:.8}
.srcreg{columns:2;column-gap:28px;font-size:11.5px}
.srcreg div{break-inside:avoid;margin-bottom:5px}
.srcreg b{font-family:var(--head)}
.srcreg a{color:var(--mid);word-break:break-all;text-decoration:none}
.about,.narrow{max-width:70ch;font-size:14.5px}
.about p,.narrow p{margin:0 0 10px}
.legend{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center;font-size:12.5px;max-width:640px;margin:10px 0}
.home .chapters{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin:12px 0}
.chcard{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;gap:2px 10px;background:var(--paper);border-top:2px solid var(--ink);padding:8px 10px;text-decoration:none;color:inherit}
.chcard .n{grid-row:1/3;display:inline-flex;width:38px;height:38px;background:var(--ink);color:var(--bg);align-items:center;justify-content:center;font:700 20px var(--head);border-radius:3px}
.chcard .t{font:600 15px var(--head)}
.chcard .g{font-size:11.5px;color:var(--mid)}
ul.plain{list-style:none;padding:0;margin:6px 0}
ul.plain li{margin:3px 0}
ul.cols3{columns:3;column-gap:24px}
.est{border-top:1px solid var(--rule);padding-top:4px;margin-top:8px}
.est.basis-A{background:var(--tint);padding:6px 8px}
table.toe td{font-size:12px}
.form label{display:block;margin:0 0 10px;font-weight:600}
.form label input,.form label select,.form label textarea{display:block;width:100%;font:14px var(--body);padding:7px 9px;border:1px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--fg);margin-top:3px;font-weight:400}
.form .help{display:block;font-weight:400;color:var(--mid);font-size:12px}
.form .errorlist{color:var(--red);font-weight:400;font-size:12.5px;margin:3px 0 0;padding-left:18px}
.form button,.inlineform button{font:600 13px var(--head);padding:7px 14px;border:1px solid var(--blue);border-radius:6px;background:var(--blue);color:#fff;cursor:pointer}
.form button.danger{background:var(--red);border-color:var(--red)}
.inlineform{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:end;margin:8px 0 12px}
.inlineform label{font-size:12.5px;font-weight:600}
.inlineform label input,.inlineform label select{display:block;font:13px var(--body);padding:5px 8px;border:1px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--fg);margin-top:2px}
.inlineform label.chk{display:flex;gap:6px;align-items:center}
.inlineform label.chk input{display:inline;width:auto}
.editor-nav{font-size:13px}
code.key{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;word-break:break-all;background:var(--tint);padding:2px 5px;border-radius:4px}
p.qr img{border:1px solid var(--rule);background:#fff}
p.warn{background:var(--warn);padding:8px 10px;border-left:3px solid var(--red)}
@media (max-width:900px){.cols{grid-template-columns:1fr}.three{grid-template-columns:1fr}.srcreg{columns:1}ul.cols3{columns:1}.brand{font-size:14px}form.look{order:3;flex-basis:100%;max-width:none}.topnav{margin-left:auto}article.entry h3{font-size:18px}}
@media (prefers-reduced-motion: reduce){*{transition:none!important}}
:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
