/* SiteAudit Support: "Signal to Sense" theme. The fleet speaks in Plex Mono (IDs, counts, labels),
   the interface in Plex Sans, and people in Plex Serif (headings). Light = Mostly white, dark = Blue.
   Fonts are served from /assets/fonts (IBM Plex, SIL Open Font License). */
@font-face{font-family:"Plex Sans";src:url(/assets/fonts/IBMPlexSans-Regular-Latin1.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Plex Sans";src:url(/assets/fonts/IBMPlexSans-Italic-Latin1.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Plex Sans";src:url(/assets/fonts/IBMPlexSans-Medium-Latin1.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Plex Sans";src:url(/assets/fonts/IBMPlexSans-SemiBold-Latin1.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Plex Sans";src:url(/assets/fonts/IBMPlexSans-Bold-Latin1.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Plex Serif";src:url(/assets/fonts/IBMPlexSerif-Medium-Latin1.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Plex Serif";src:url(/assets/fonts/IBMPlexSerif-MediumItalic-Latin1.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:"Plex Serif";src:url(/assets/fonts/IBMPlexSerif-SemiBold-Latin1.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Plex Serif";src:url(/assets/fonts/IBMPlexSerif-SemiBoldItalic-Latin1.woff2) format("woff2");font-weight:600;font-style:italic;font-display:swap}
@font-face{font-family:"Plex Mono";src:url(/assets/fonts/IBMPlexMono-Regular-Latin1.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Plex Mono";src:url(/assets/fonts/IBMPlexMono-Medium-Latin1.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Plex Mono";src:url(/assets/fonts/IBMPlexMono-SemiBold-Latin1.woff2) format("woff2");font-weight:600;font-display:swap}
:root{--f-ui:"Plex Sans","Segoe UI",system-ui,sans-serif;--f-human:"Plex Serif",Georgia,"Times New Roman",serif;--f-machine:"Plex Mono",Consolas,"Courier New",monospace;
  --bg:#ffffff;--surface:#ffffff;--alt:#f7f3ea;--alt2:#efe9dd;--text:#22201c;--sec:#4a463f;--muted:#5c574f;--line:#e2ded5;--line2:#c8c1b3;
  --accent:#1a66a8;--accentInk:#ffffff;--link:#1a66a8;--focus:#2c88d9;--sel:#eeecea;--selInk:#154f82;--amber:#e09f44;--amberInk:#895b10;--warm:#fbeedb;
  --shadow:0 1px 2px rgba(38,36,33,.05),0 6px 18px -8px rgba(38,36,33,.12);
  --tagBg:#ffffff;--tagInk:#4a463f;--pubBg:#efece9;--pubInk:#424c0f;--parBg:#eeecea;--parInk:#154f82;--lockBg:#fbeedb;--lockInk:#794f0b;--staffBg:#edebe8;--staffInk:#00508b;
  --draftBg:#edebe8;--draftInk:#8a2a1d;--codeBg:#f4f1ea;--overlay:rgba(21,20,17,.55);color-scheme:light}
:root[data-theme="dark"]{--bg:#1e1d1b;--surface:#282624;--alt:#191816;--alt2:#33312e;--text:#f4f2ee;--sec:#d3cec6;--muted:#b5afa5;--line:rgba(255,255,255,.12);--line2:rgba(255,255,255,.22);
  --accent:#6aaeea;--accentInk:#1e1c1a;--link:#9cc9f2;--focus:#9cc9f2;--sel:#474542;--selInk:#f1efec;--amber:#f3b460;--amberInk:#f5c281;--warm:#3a3020;
  --shadow:0 1px 2px rgba(0,0,0,.25),0 10px 24px -12px rgba(0,0,0,.45);
  --tagBg:#282624;--tagInk:#d3cec6;--pubBg:#3a3835;--pubInk:#dbd6d0;--parBg:#474542;--parInk:#e4e0da;--lockBg:#3a3020;--lockInk:#f5c281;--staffBg:#393734;--staffInk:#ddd8d2;
  --draftBg:#33312e;--draftInk:#f6b4a8;--codeBg:#191816;--overlay:rgba(0,0,0,.6);color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--f-ui);color:var(--text);background:var(--bg);font-size:16px;line-height:1.6;font-feature-settings:"kern","liga"}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--link)}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:8px;top:-60px;z-index:40;background:var(--surface);padding:8px 12px;border-radius:8px;box-shadow:var(--shadow)}
.skip:focus{top:8px}
.app{min-height:100vh;display:flex;flex-direction:column}
.stripe{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:4px}
.stripe span:nth-child(1){background:#2C88D9}.stripe span:nth-child(2){background:#C66454}.stripe span:nth-child(3){background:#7C8C37}.stripe span:nth-child(4){background:#E09F44}
.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:8px 20px;border-bottom:1px solid var(--line);background:var(--surface);background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:10px;padding:4px;min-height:44px;text-decoration:none;color:var(--text)}
.brand-word{font-weight:700;font-size:18px;letter-spacing:-.01em}
.brand-app{font-size:13px;font-weight:600;color:var(--muted);padding-left:10px;border-left:1px solid var(--line2)}
.topsearch{flex:1 1 320px;max-width:600px;display:flex;position:relative}
.searchbox{display:flex;align-items:center;gap:8px;width:100%;border:1px solid var(--line2);border-radius:10px;padding:0 12px;background:var(--alt);min-height:40px;color:var(--muted)}
.searchbox input{border:0;background:transparent;outline:none;width:100%;min-height:38px;color:var(--text)}
.searchbox:focus-within{outline:3px solid var(--focus);outline-offset:1px}
.searchbox input:focus-visible{outline:none}
.suggest{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--line2);border-radius:12px;box-shadow:var(--shadow);list-style:none;margin:0;padding:6px;z-index:10;max-height:70vh;overflow:auto}
.suggest a{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;text-decoration:none;color:var(--text)}
.suggest a:hover,.suggest a[aria-selected="true"]{background:var(--sel);color:var(--selInk)}
.suggest .meta{font-size:12px;color:var(--muted)}
.suggest .all{font-weight:600;color:var(--link)}
.top-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 14px;border-radius:9px;border:1px solid var(--line2);background:var(--surface);cursor:pointer;font-weight:600;font-size:14px;text-decoration:none;color:var(--text)}
.btn:hover{background:var(--alt2)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accentInk)}
.btn-primary:hover{background:var(--accent);filter:brightness(1.07)}
.btn-quiet{border-color:transparent;background:transparent}
.btn-sm{min-height:32px;padding:0 10px;font-size:13px}
.btn[disabled]{opacity:.6;cursor:default}
.menu-btn{display:none}
.shell{display:flex;flex-wrap:wrap;align-items:flex-start;width:100%;max-width:1440px;margin:0 auto;flex:1}
.sidenav{flex:1 1 210px;max-width:250px;padding:18px 10px 40px}
.navgroup{margin-bottom:20px}
.navhead{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:0 12px 6px}
.navlink{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;border-radius:8px;padding:0 12px;min-height:36px;color:var(--sec);font-size:14.5px;text-decoration:none}
.navlink:hover{background:var(--alt2);color:var(--text)}
.navlink.on{background:var(--sel);color:var(--selInk);font-weight:700}
.count{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;font-weight:400}
.navlink.on .count{color:var(--selInk)}
.main{flex:999 1 560px;min-width:0;padding:22px 32px 64px}
.main:focus{outline:none}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:2px;font-size:13.5px;color:var(--muted);margin:0 0 14px}
.crumbs a{padding:4px;border-radius:6px;text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs .sep{padding:0 2px}
.crumbs .here{padding:4px;color:var(--sec)}
.hero{position:relative;overflow:hidden;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px 24px;box-shadow:var(--shadow)}
.hero-art{position:absolute;right:-20px;top:-10px;width:420px;height:200px;color:var(--accent);opacity:.16;pointer-events:none}
.hero-text,.hero form{position:relative}
.hero-text{flex:1 1 280px}
.hero h1{font-size:26px;line-height:1.2;margin:0 0 4px;letter-spacing:-.015em}
.hero p{margin:0;color:var(--sec)}
.hero form{flex:2 1 380px}
.hero .searchbox{min-height:48px;font-size:16px;background:var(--bg)}
.announce{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 14px;padding:8px 12px;border-radius:10px;background:var(--sel);color:var(--selInk);font-size:14px}
.announce a{color:inherit;font-weight:600;padding:4px}
.typechips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.typechip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:0 12px 0 10px;min-height:36px;color:var(--sec);font-size:14px;box-shadow:var(--shadow);text-decoration:none}
.typechip:hover{border-color:var(--accent);color:var(--text)}
.typechip .count{background:var(--tagBg);border-radius:999px;padding:0 7px;line-height:20px}
.tries{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px;color:var(--muted);font-size:13px}
.empty .tries{justify-content:center}
.tag{display:inline-flex;align-items:center;border-radius:6px;background:var(--tagBg);color:var(--tagInk);font-size:12px;font-weight:600;padding:2px 8px;min-height:24px;white-space:nowrap;text-decoration:none}
.tag:hover{background:var(--sel);color:var(--selInk)}
.section{margin-top:26px}
.sechead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 10px}
.sechead h2{font-size:16px;margin:0}
.more{color:var(--link);font-size:13.5px;padding:4px;text-decoration:none}
.more:hover{text-decoration:underline}
.starts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:10px}
.start{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-top:3px solid var(--accent);background:var(--surface);border-radius:11px;padding:12px 14px;box-shadow:var(--shadow);text-decoration:none;color:var(--text)}
.start:nth-child(4n+2){border-top-color:#C66454}.start:nth-child(4n+3){border-top-color:#7C8C37}.start:nth-child(4n+4){border-top-color:#E09F44}
.start:hover{border-color:var(--accent)}
.start .k{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.start .t{font-weight:650;line-height:1.3}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px}
.panelcard{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px 6px;box-shadow:var(--shadow)}
ol.panelcard{padding:4px 16px}
.list{list-style:none;margin:0;padding:0}
.row{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.row:first-child{border-top:0}
.rowmain{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.rowtitle{font-weight:600;color:var(--text);line-height:1.35;text-decoration:none}
.rowtitle:hover{color:var(--link);text-decoration:underline}
.rowmeta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:12.5px;color:var(--muted)}
.row .note{margin:2px 0 0;font-size:13px;color:var(--lockInk)}
.idtxt{font-family:"Plex Mono",Consolas,"Courier New",monospace;font-size:12px}
.rank{flex:0 0 22px;color:var(--muted);font-weight:700;font-size:13px;text-align:right;padding-top:1px;font-variant-numeric:tabular-nums}
.badge{display:inline-flex;align-items:center;white-space:nowrap;font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 9px}
.b-public{background:var(--pubBg);color:var(--pubInk)}
.b-partner{background:var(--parBg);color:var(--parInk)}
.b-locked{background:var(--lockBg);color:var(--lockInk)}
.b-staff{background:var(--staffBg);color:var(--staffInk)}
.b-draft{background:var(--draftBg);color:var(--draftInk)}
.callout{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 14px;margin-top:16px;color:var(--sec);font-size:14px}
.ptiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:10px}
.ptile{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:var(--surface);border-radius:11px;padding:10px 12px;min-height:56px;box-shadow:var(--shadow);text-decoration:none;color:var(--text)}
.ptile:hover{border-color:var(--accent)}
.picon{flex:0 0 auto;width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center}
.t0{background:rgba(44,136,217,.14);color:#1a70b8}.t1{background:rgba(198,100,84,.14);color:#a84a3c}.t2{background:rgba(172,119,42,.16);color:#7c5213}.t3{background:rgba(224,159,68,.18);color:#8b5a07}
[data-theme="dark"] .t0{background:rgba(44,136,217,.22);color:#90c3f6}[data-theme="dark"] .t1{background:rgba(198,100,84,.24);color:#f0a597}[data-theme="dark"] .t2{background:rgba(172,119,42,.26);color:#f9c482}[data-theme="dark"] .t3{background:rgba(224,159,68,.24);color:#f5c180}
.ptext{display:flex;flex-direction:column;min-width:0}
.pname{font-weight:650;font-size:14.5px;line-height:1.25}
.pcount{font-size:12.5px;color:var(--muted)}
.quick{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:10px}
.qtile{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);background:var(--surface);border-radius:11px;padding:12px 14px;box-shadow:var(--shadow);text-decoration:none;color:var(--text)}
.qtile:hover{border-color:var(--accent)}
.qname{font-weight:650}
.qdesc{font-size:13px;color:var(--muted)}
.pagehead{position:relative;overflow:hidden;margin-bottom:14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 22px;box-shadow:var(--shadow)}
.pagehead>*:not(.head-art){position:relative}
.head-art{position:absolute;right:-6px;top:-18px;width:320px;height:150px;color:var(--accent);opacity:.15;pointer-events:none}
.pagehead h1{font-size:24px;margin:0;letter-spacing:-.01em}
.sub{color:var(--muted);margin:2px 0 0;font-size:14px}
.muted{color:var(--muted)}
.small{font-size:13px}
.empty{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:28px 12px;color:var(--sec)}
.empty svg{color:var(--accent);opacity:.7}
.empty h1{font-size:22px;margin:4px 0 0}
.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:12px;box-shadow:var(--shadow)}
.toolbar label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.toolbar select{min-height:34px;border:1px solid var(--line2);border-radius:8px;background:var(--surface);padding:0 8px;font-size:14px;color:var(--text)}
.js .toolbar [type="submit"]{display:none}
.pills{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 12px}
.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line2);border-radius:999px;background:var(--sel);color:var(--selInk);font-size:12.5px;font-weight:600;padding:2px 10px;min-height:28px;text-decoration:none}
.pagesearch{display:flex;gap:8px;margin:0 0 14px;max-width:640px;width:100%}
.empty .pagesearch{margin:6px auto}
/* Article */
.artpage{display:flex;flex-wrap:wrap;gap:24px 36px;align-items:flex-start}
.artmain{flex:999 1 520px;min-width:0;max-width:860px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:26px 32px 30px;box-shadow:var(--shadow)}
.artpage.acc0 .artmain{border-top:4px solid #2C88D9}.artpage.acc1 .artmain{border-top:4px solid #C66454}.artpage.acc2 .artmain{border-top:4px solid #7C8C37}.artpage.acc3 .artmain{border-top:4px solid #E09F44}
.arthead h1{font-size:28px;line-height:1.22;margin:0 0 8px;letter-spacing:-.015em;max-width:30ch}
.artmeta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;color:var(--muted);font-size:13px}
.banner{padding:10px 14px;border-radius:10px;margin:0 0 14px;font-size:14px}
.b-warn{background:var(--lockBg);color:var(--lockInk)}
.artactions{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.toc-inline{display:none;margin:0 0 16px;border:1px solid var(--line);border-radius:10px;background:var(--alt)}
.toc-inline summary{cursor:pointer;padding:10px 12px;font-weight:650;min-height:44px;display:flex;align-items:center}
.toc-inline ol,.toc ol{list-style:none;margin:0;padding:0 12px 10px}
.toc ol{padding:0}
.toc-inline a,.toc a{display:block;padding:4px 0;text-decoration:none;color:var(--sec);font-size:13.5px;line-height:1.35}
.toc-inline a:hover,.toc a:hover{color:var(--link);text-decoration:underline}
.toc a[aria-current="true"]{color:var(--link);font-weight:650}
.prose{font-size:16px;line-height:1.72;max-width:70ch;overflow-wrap:anywhere}
.prose>h1:first-child{display:none}
.prose p{margin:0 0 12px}
.prose h2{font-size:20px;margin:26px 0 8px;scroll-margin-top:90px}
.prose h3{font-size:16.5px;margin:20px 0 6px;scroll-margin-top:90px}
.prose ul,.prose ol{margin:0 0 14px;padding-left:26px}
.prose li{margin:0 0 6px}
.prose li>ul,.prose li>ol{margin:6px 0 0}
.prose li::marker{color:var(--muted)}
.prose code{font-family:"Plex Mono",Consolas,"Courier New",monospace;font-size:.88em;background:var(--codeBg);padding:1px 5px;border-radius:5px}
.prose pre.code{background:var(--codeBg);border:1px solid var(--line);border-radius:10px;padding:12px 14px;overflow-x:auto;font-size:13.5px;line-height:1.55;margin:0 0 16px}
.prose pre.code code{background:transparent;padding:0;font-size:inherit}
.prose figure.shot{margin:12px 0 18px;border:1px solid var(--line);border-radius:10px;padding:8px;background:var(--alt);display:table;max-width:100%}
.prose figure.shot a.zoom{display:block;cursor:zoom-in}
.prose img{max-width:100%;height:auto;display:block;border-radius:6px}
.callnote{margin:4px 0 16px;padding:10px 14px;border-radius:10px;background:var(--lockBg);color:var(--lockInk);font-size:15px}
.callnote p:last-child{margin-bottom:0}
.callnote a{color:inherit}
.tablebox{overflow-x:auto;border:1px solid var(--line);border-radius:10px;margin:8px 0 18px}
.tablebox table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.5}
.tablebox th,.tablebox td{text-align:left;vertical-align:top;padding:8px 12px;border-bottom:1px solid var(--line)}
.tablebox th{background:var(--alt);font-weight:700}
.files{margin-top:22px;padding-top:14px;border-top:1px solid var(--line)}
.files h2{font-size:16px;margin:0 0 8px}
.files ul{list-style:none;margin:0;padding:0}
.files a{display:flex;align-items:center;gap:10px;padding:8px 0;min-height:40px;text-decoration:none;font-weight:600}
.files a span:first-of-type{text-decoration:underline}
.files .muted{font-weight:400;font-size:13px}
.lockpanel{border:1px solid var(--line);border-radius:12px;padding:20px;background:var(--alt);margin-top:16px}
.lockpanel svg{color:var(--lockInk)}
.lockpanel h2{margin:6px 0 4px;font-size:18px}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.rail{flex:1 1 240px;max-width:310px;display:flex;flex-direction:column;gap:12px;position:sticky;top:76px}
.railbox{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface);box-shadow:var(--shadow);font-size:13.5px}
.railbox h2{font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 6px}
.railbox ul{list-style:none;margin:0;padding:0}
.railbox li{padding:4px 0;line-height:1.35}
.railbox p{margin:0 0 8px;color:var(--sec)}
/* Zoom dialog for screenshots */
.overlay{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:16px;z-index:20}
.overlay img{max-width:100%;max-height:86vh;display:block;background:#ffffff;border-radius:8px}
.overlay button{position:absolute;top:12px;right:12px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:10px;font-size:14px;z-index:30;max-width:calc(100% - 32px)}
/* Forms */
.signin{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;max-width:880px;align-items:start}
.signin h1{font-size:22px;margin:0 0 4px}
.signin h2{font-size:17px;margin:0 0 4px}
.signin .panelcard{padding:20px}
.form{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.form label{font-weight:600;font-size:14px;margin-top:6px}
.form input:not([type="checkbox"]){min-height:42px;border:1px solid var(--line2);border-radius:9px;padding:7px 11px;background:var(--bg);color:var(--text)}
.form .check{display:flex;align-items:center;gap:8px;font-weight:400}
.form .check input{width:18px;height:18px}
.form .btn{margin-top:8px;align-self:flex-start}
.formerror{color:var(--draftInk);margin:4px 0 0;min-height:1em;font-size:14px}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;margin:4px 0 14px}
.facts dt{color:var(--muted)}
.facts dd{margin:0;font-weight:600}
.panelcard>.btn{margin-bottom:12px}
.foot{display:flex;flex-wrap:wrap;gap:8px 18px;padding:16px 20px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;justify-content:center}
.foot a{color:var(--muted)}
/* Large screens: wider canvas, same reading width. */
@media (min-width:1600px){.shell{max-width:1680px}.main{padding:26px 48px 72px}.sidenav{max-width:270px}}
/* Laptops and tablets in landscape: the article rail drops below the article. */
@media (max-width:1180px){
  .rail{position:static;max-width:none;flex-basis:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
  .rail .toc{display:none}
  .toc-inline{display:block}
}
/* Tablets in portrait and phones: navigation collapses behind the Menu button. */
@media (max-width:900px){
  .menu-btn{display:inline-flex}
  .js .sidenav{display:none}
  .sidenav{max-width:none;flex-basis:100%;border-bottom:1px solid var(--line);background:var(--surface)}
  .js .sidenav.open{display:block}
  .main{padding:18px 20px 56px}
  .brand-app{display:none}
  .hero-art{opacity:.1}
}
/* Phones: full-width search, 44 px touch targets, tighter cards. */
@media (max-width:640px){
  .topbar{padding:6px 12px}
  .topsearch{order:3;flex-basis:100%;max-width:none}
  .main{padding:14px 14px 56px}
  .hero{padding:16px}
  .hero h1{font-size:22px}
  .hero-art{display:none}
  .head-art{width:200px;opacity:.1}
  .pagehead{padding:14px 16px}
  .artmain{padding:18px 16px 20px;border-radius:12px}
  .arthead h1{font-size:23px}
  .tag,.pill,.typechip,.crumbs a,.btn-sm,.toolbar select,.navlink,.more{min-height:44px}
  .toolbar label{flex:1 1 100%}
  .toolbar select{flex:1}
  .facts{grid-template-columns:1fr}
  .facts dd{margin-bottom:6px}
}
@media print{
  .stripe,.topbar,.sidenav,.rail,.artactions,.crumbs,.foot,.skip,.toc-inline,.toast{display:none !important}
  body{background:#ffffff;color:#000000}
  .artmain{border:0;box-shadow:none;padding:0;max-width:none}
  .prose{max-width:none}
  .prose a[href^="http"]::after{content:" (" attr(href) ")";font-size:.85em;color:#444444}
  .print-locked .artmain>:not(.printgate){display:none !important}
  .print-locked .printgate{display:block !important}
  .prose h2,.prose h3{break-after:avoid;page-break-after:avoid}
  .prose figure.shot{break-inside:avoid;page-break-inside:avoid}
  .prose figure.shot img{max-width:100%;height:auto}
}
/* Print notice for signed-out readers: hidden on screen, the only thing printed. */
.printgate{display:none}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto !important;transition:none !important}}
.prose blockquote{margin:0 0 14px;padding:4px 14px;border-left:3px solid var(--line2);color:var(--sec)}
.rowsum{margin:2px 0 0;font-size:13.5px;color:var(--sec)}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.narrow{max-width:520px}
.formok{color:var(--pubInk);margin:4px 0 0;min-height:1em;font-size:14px}
.form select,.form textarea{min-height:42px;border:1px solid var(--line2);border-radius:9px;padding:7px 11px;background:var(--bg);color:var(--text);font:inherit}
.form textarea{resize:vertical;min-height:96px}
.form input:focus-visible,.form select:focus-visible,.form textarea:focus-visible{outline:3px solid var(--focus);outline-offset:1px}
.btn-ms{background:var(--surface);border-color:var(--line2);gap:10px;min-height:44px}
.msbox{margin:10px 0 4px}
.msbox .btn-ms{width:100%}
.orline{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;margin:14px 0 4px}
.orline::before,.orline::after{content:"";flex:1;border-top:1px solid var(--line)}
/* Article editor */
.main.wide{max-width:none}
.editor .edhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.editor .edhead h1{font-size:22px;margin:0}
.edactions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.edstatus{font-size:13px;color:var(--muted)}
.edgrid{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:16px;align-items:start}
.edmeta{display:flex;flex-direction:column;gap:6px;padding:16px}
.edmeta label:not(.check){font-weight:600;font-size:14px;margin-top:6px}
.edmeta input:not([type=checkbox]):not([type=radio]),.edmeta select,.edmeta textarea{min-height:40px;border:1px solid var(--line2);border-radius:9px;padding:7px 10px;background:var(--bg);color:var(--text);font:inherit;width:100%}
.edrow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.edaccess{border:1px solid var(--line);border-radius:10px;padding:8px 12px 10px;margin:8px 0 0}
.edaccess legend{font-weight:600;font-size:14px;padding:0 4px}
.check{display:flex;align-items:flex-start;gap:8px;font-size:14px;margin:4px 0;line-height:1.4}
.check input{margin-top:3px;width:16px;height:16px;flex:0 0 auto}
.edgroups{margin-left:24px}
.edh2{font-size:14px;margin:16px 0 4px}
.edfiles{list-style:none;margin:0;padding:0;font-size:14px}
.edfiles li{padding:4px 0;border-top:1px solid var(--line)}
.edfiles li:first-child{border-top:0}
.edwrite{padding:12px 14px 14px;min-width:0}
.edtabs{display:none;gap:4px;margin-bottom:8px}
.edtabs button{border:1px solid var(--line2);background:var(--surface);border-radius:8px;padding:6px 12px;cursor:pointer;font-weight:600;min-height:36px}
.edtabs button[aria-selected="true"]{background:var(--sel);color:var(--selInk)}
.edtools{display:flex;flex-wrap:wrap;gap:4px;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:10px}
.edpanes{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.edpane{min-width:0}
#ed-body{width:100%;min-height:62vh;resize:vertical;border:1px solid var(--line2);border-radius:10px;padding:12px;background:var(--bg);color:var(--text);font-family:"Plex Mono",Consolas,"Courier New",monospace;font-size:14px;line-height:1.55;tab-size:3}
#ed-body.dragging{outline:3px dashed var(--accent);outline-offset:2px}
.edpreview{border:1px solid var(--line);border-radius:10px;padding:12px 16px;min-height:62vh;max-height:80vh;overflow:auto;background:var(--surface)}
.edhelp{margin-top:12px;font-size:13.5px}
.edhelp summary{cursor:pointer;font-weight:600;min-height:32px}
.edhelp td{padding:4px 10px 4px 0;vertical-align:top}
.btn.danger{color:var(--draftInk);border-color:var(--draftInk)}
@media (max-width:1180px){.edgrid{grid-template-columns:1fr}}
@media (max-width:900px){
  .edtabs{display:flex}
  .edpanes{grid-template-columns:1fr}
  .edpane[hidden]{display:none}
  .edrow{grid-template-columns:1fr}
}
/* Downloads, videos, contact */
.dlgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px}
.dlcard{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px}
.dlcard h3{font-size:16px;margin:0}
.dlcard p{margin:0;font-size:14px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px}
.chips .btn{gap:6px}
dialog{border:1px solid var(--line2);border-radius:14px;background:var(--surface);color:var(--text);padding:20px;max-width:min(520px,calc(100% - 32px));box-shadow:var(--shadow)}
dialog::backdrop{background:var(--overlay)}
.dldialog h2{margin:0 0 4px;font-size:18px}
.vids{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:14px}
.vid{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.vidplay{display:block;border:0;padding:0;background:var(--alt);cursor:pointer;aspect-ratio:16/9;width:100%}
.vidplay:hover .vidart circle:last-of-type{opacity:.9}
.vidart{display:block;width:100%;height:100%}
.vidpic{position:relative;display:block;width:100%;height:100%;background:#000}
.vidpic img{display:block;width:100%;height:100%;object-fit:cover}
.vidicon{position:absolute;left:50%;top:50%;width:58px;height:58px;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 6px rgba(0,0,0,.45));transition:transform .15s}
.vidicon circle{fill:rgba(0,0,0,.62)}.vidicon path{fill:#fff}
.vidplay:hover .vidicon,.vidplay:focus-visible .vidicon{transform:translate(-50%,-50%) scale(1.08)}.vidplay:hover .vidicon circle,.vidplay:focus-visible .vidicon circle{fill:#2c88d9}
@media (prefers-reduced-motion:reduce){.vidicon{transition:none}}
.vidbody{padding:10px 14px 14px;display:flex;flex-direction:column;gap:6px}
.vidbody h2{font-size:15.5px;margin:0}
.vidbody p{margin:0;font-size:13.5px}
.videodialog{max-width:min(960px,calc(100% - 24px));width:960px;padding:12px}
.videodialog .vframe{position:relative;aspect-ratio:16/9;background:#000;border-radius:8px;overflow:hidden}
.videodialog iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.videodialog .vhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.videodialog h2{font-size:16px;margin:0}
.plainlist{margin:0;padding-left:18px;line-height:1.7;font-size:14px}
.brand-logo{height:30px;width:auto;display:block}
[data-theme="dark"] .brand-logo{filter:brightness(1.35)}
@media (max-width:640px){.brand-logo{height:24px}}
.section[id],.dlcard[id]{scroll-margin-top:84px}
.dlcard:target{outline:3px solid var(--focus);outline-offset:2px}
/* ---------- Signal to Sense: type and component layer ---------- */
h1,h2,.hero h1,.pagehead h1,.arthead h1,.prose h2,.sechead h2,.empty h1,.signin h1,.signin h2,.lockpanel h2,dialog h2{font-family:var(--f-human);font-weight:600;letter-spacing:-.012em}
.prose h3{font-family:var(--f-ui);font-weight:600}
.idtxt,.count,.rank,.pcount,.edstatus{font-family:var(--f-machine)}
.idtxt{font-size:12.5px;color:var(--muted)}
.count{font-size:12.5px}
.navhead,.start .k,.railbox h2,.toc-inline summary,.announce strong,.callout .badge{font-family:var(--f-machine);font-weight:500;letter-spacing:.08em;text-transform:uppercase}
.navhead{font-size:12px;color:var(--muted)}
.stripe span:nth-child(2){background:#C66454}
.topbar{background:var(--surface);background:color-mix(in srgb,var(--surface) 88%,transparent)}
.brand-logo{height:34px;width:auto;display:block;filter:none}
.logo-d{display:none}
[data-theme="dark"] .logo-l{display:none}
[data-theme="dark"] .logo-d{display:block}
[data-theme="dark"] .brand-logo{filter:none}
.brand-app{font-family:var(--f-machine);font-weight:500;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--sec);padding-left:12px}
.searchbox{border-radius:999px;background:var(--bg);padding:0 16px}
.btn{border-radius:999px;font-weight:600;padding:0 16px;font-size:14.5px}
.btn-sm{padding:0 12px;font-size:13.5px}
.btn:hover{background:var(--alt)}
.btn-primary:hover{background:var(--link);border-color:var(--link);filter:none}
[data-theme="dark"] .btn-primary:hover{background:var(--link);border-color:var(--link)}
.btn-quiet:hover{background:var(--alt)}
.linkbtn{border:0;background:none;padding:0;color:var(--link);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:inherit}
.sidenav{background:var(--alt);border-right:1px solid var(--line);align-self:stretch;padding-top:20px}
.navlink{color:var(--sec);font-size:15px;border-radius:8px}
.navlink:hover{background:var(--surface)}
.navlink.on{background:var(--surface);color:var(--text);font-weight:600;box-shadow:inset 3px 0 0 var(--amber)}
.navlink.on .count{color:var(--muted)}
.crumbs{font-size:14px}
/* Home */
.announce{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:999px;padding:6px 16px}
.announce strong{color:var(--amberInk);font-size:12.5px}
.announce a{color:var(--link)}
.hero{background:radial-gradient(ellipse 55% 85% at 92% 50%,var(--warm),transparent 72%),var(--surface);border-radius:16px;padding:30px 32px;gap:18px 36px}
.hero h1{font-size:40px;line-height:1.08;margin:0 0 8px}
.hero p{font-size:17px}
.hero{display:grid;grid-template-columns:minmax(0,1fr) 200px;align-items:center}
.hero-text,.hero form{grid-column:1;max-width:640px}
.hero-art{position:relative;right:auto;top:auto;grid-column:2;grid-row:1 / span 2;width:200px;height:auto;opacity:1;color:inherit}
[data-theme="dark"] .hero-art{filter:drop-shadow(0 0 28px rgba(199,194,188,.22))}
.hero form{flex:2 1 360px}
.hero .searchbox{min-height:54px;font-size:17px;border:1.5px solid var(--muted)}
.tries{font-size:14px}
.typechip{border-color:var(--line2);box-shadow:none;color:var(--text);min-height:38px;padding:0 14px}
.typechip:hover{border-color:var(--accent)}
.typechip .count{background:transparent;color:var(--muted);padding:0}
.tag{background:var(--tagBg);color:var(--tagInk);border:1px solid var(--line2);border-radius:999px;font-weight:500;font-size:12.5px;padding:1px 10px}
.tag:hover{border-color:var(--accent);background:var(--tagBg);color:var(--text)}
.callout{background:var(--warm);border-color:transparent;color:var(--text);border-radius:14px;padding:12px 18px}
.callout .badge{background:transparent;color:var(--amberInk);padding:0;font-size:12.5px}
.section{margin-top:32px}
.sechead h2{font-size:23px}
.start{border-top:1px solid var(--line);border-radius:14px;padding:16px 18px;transition:border-color .15s,transform .15s}
.start:nth-child(4n+2),.start:nth-child(4n+3),.start:nth-child(4n+4){border-top-color:var(--line)}
.start:hover{border-color:var(--accent);transform:translateY(-2px)}
.start .k{font-size:12px;color:var(--link)}
.start .t{font-weight:600;font-size:16px;line-height:1.35}
.panelcard{border-radius:14px;padding:16px 20px 8px}
.rowtitle{font-weight:600}
.rowmeta{font-size:13.5px}
.picon,.t0,.t1,.t2,.t3,[data-theme="dark"] .t0,[data-theme="dark"] .t1,[data-theme="dark"] .t2,[data-theme="dark"] .t3{background:var(--sel);color:var(--link)}
.ptile,.qtile{border-radius:14px}
.ptile:hover,.qtile:hover{border-color:var(--accent)}
.pname,.qname{font-weight:600}
.pagehead{border-radius:16px;padding:22px 26px;background:radial-gradient(ellipse 50% 90% at 95% 50%,var(--warm),transparent 70%),var(--surface)}
.pagehead h1{font-size:34px;line-height:1.1}
.sub{font-size:16px;color:var(--sec)}
/* Article */
.artmain,.artpage.acc0 .artmain,.artpage.acc1 .artmain,.artpage.acc2 .artmain,.artpage.acc3 .artmain{border-top:1px solid var(--line);border-radius:16px;padding:32px 40px 36px}
.arthead h1{font-size:38px;line-height:1.12;margin:0 0 12px}
.artmeta{font-size:13.5px}
.prose{font-size:17px;line-height:1.72;max-width:68ch}
.prose h2{font-size:27px;line-height:1.2;margin:34px 0 10px}
.prose h3{font-size:18.5px}
.prose li::marker{color:var(--amber)}
.prose>ol{list-style:none;counter-reset:step;padding-left:0}
.prose>ol>li{counter-increment:step;position:relative;padding-left:52px;margin:0 0 16px}
.prose li>p{margin:8px 0}.prose li>figure.shot{margin:10px 0 14px}.prose li>ol,.prose li>ul{margin-top:8px}
.prose>ol>li::before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:0;width:36px;height:30px;border-radius:8px;background:var(--sel);color:var(--link);font:600 14px/30px var(--f-machine);text-align:center}
.prose code,.prose pre.code,#ed-body{font-family:var(--f-machine)}
.prose figure.shot{background:var(--alt);border-radius:12px;padding:10px}
.callnote{background:var(--warm);color:var(--text);border-left:3px solid var(--amber);border-radius:0 10px 10px 0}
.callnote strong:first-child{color:var(--amberInk)}
.prose blockquote{border-left-color:var(--amber)}
.railbox{border-radius:14px;font-size:14.5px}
.railbox h2{font-size:12px}
.toc a[aria-current="true"]{color:var(--text)}
.lockpanel{background:var(--warm);border-color:transparent;border-radius:14px}
/* Downloads */
.dlhead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px}
.dlhead>div{flex:1 1 380px}
.jump{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 6px}
.dlsec{scroll-margin-top:84px}
.dlsec .sechead{flex-wrap:wrap;border-bottom:2px solid var(--text);padding-bottom:8px;margin-bottom:0}
.dlsec .sechead h2{font-size:28px}
.dlrows{display:flex;flex-direction:column}
.dlrow{display:grid;grid-template-columns:minmax(0,1fr) fit-content(40%);gap:14px 36px;align-items:center;padding:22px 4px;border-bottom:1px solid var(--line);scroll-margin-top:84px}
.dlrow h3{font-family:var(--f-human);font-weight:600;font-size:22px;line-height:1.2;margin:0}
.dlrow p{margin:6px 0 0;color:var(--sec);max-width:62ch}
.dlrow:target,.paper:target,.dltable tr:target{outline:3px solid var(--focus);outline-offset:4px;border-radius:8px}
.dlmore{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14.5px}
.dlget{display:flex;flex-direction:column;align-items:stretch;gap:10px;min-width:280px}
.dlget .btn{min-height:44px;justify-content:center}
.dllang{display:flex;flex-direction:column;gap:4px;font-size:13.5px;color:var(--sec)}
.dllang select{appearance:none;-webkit-appearance:none;min-height:44px;border:1.5px solid var(--line2);border-radius:999px;padding:0 40px 0 16px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%234F6075' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 16px center;font-size:15px;font-weight:500;color:var(--text);cursor:pointer}
.dlbtns{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.dltable{margin-top:14px}
.dltable table{font-size:15px}
.dltable th small{display:block;font-weight:400;color:var(--muted);font-size:13.5px}
.dltable thead th{background:var(--alt);font-size:13.5px;color:var(--sec)}
.dltable tbody th{background:transparent;min-width:170px;font-weight:600}
.dltable .l{text-align:center;width:92px;vertical-align:middle}
.pdf{display:inline-flex;align-items:center;justify-content:center;min-width:54px;min-height:34px;padding:0 10px;border:1px solid var(--line2);border-radius:999px;background:var(--surface);color:var(--link);font:500 12.5px var(--f-machine);cursor:pointer}
.pdf:hover{background:var(--sel);border-color:var(--accent)}
.none{color:var(--muted)}
.papers{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:16px;margin-top:16px}
.paper{display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:var(--shadow);scroll-margin-top:84px}
.paper .cover{width:120px;height:auto;aspect-ratio:2/3;object-fit:cover;border-radius:6px;box-shadow:0 8px 18px -8px rgba(38,36,33,.45)}
.paper h3{font-family:var(--f-human);font-weight:600;font-size:21px;line-height:1.25;margin:0}
.paper p{margin:6px 0 14px;color:var(--sec);font-size:15px}
.paper .dlget{min-width:0;max-width:300px}
.qtile .qname{font-family:var(--f-human)}
/* Videos and forms */
.vid{border-radius:14px}
.vidbody h2{font-family:var(--f-ui);font-size:16px}
.form input:not([type="checkbox"]),.form select,.form textarea{border-radius:10px}
dialog{border-radius:16px}
@media (max-width:900px){.sidenav{background:var(--surface)}}
@media (max-width:760px){
  .dlrow{grid-template-columns:1fr}.dlget{min-width:0}.dlbtns{justify-content:flex-start}
  .paper{grid-template-columns:84px minmax(0,1fr)}.paper .cover{width:84px}
  .hero-art{display:none}
  .hero{grid-template-columns:1fr}
}
@media (max-width:640px){
  .hero h1{font-size:30px}.pagehead h1{font-size:28px}.arthead h1{font-size:28px}
  .artmain,.artpage.acc0 .artmain,.artpage.acc1 .artmain,.artpage.acc2 .artmain,.artpage.acc3 .artmain{padding:20px 18px 24px}
  .brand-logo{height:28px}.dlsec .sechead h2{font-size:24px}.dlrow h3{font-size:20px}
  .dltable .l{width:auto}.pdf{min-height:44px}
  .dlsec,.dlrow,.paper,.section[id]{scroll-margin-top:130px}
}
@media print{.logo-d{display:none!important}.logo-l{display:block!important}.prose>ol>li::before{background:none;border:1px solid #888}}
/* ---------- Section colors (support home). The four inks mark sections; they are decoration, not status. ---------- */
:root{--cyanT:rgba(44,136,217,.13);--cyanI:#1c67a8;--coralT:rgba(198,100,84,.13);--coralI:#a34638;--oliveT:rgba(172,119,42,.15);--oliveI:#7c5213;--amberT:rgba(224,159,68,.18);--amberI:#86590f;--tealT:rgba(59,105,150,.12);--tealI:#154f82}
:root[data-theme="dark"]{--cyanT:rgba(44,136,217,.26);--cyanI:#a0caf5;--coralT:rgba(198,100,84,.28);--coralI:#f2ab9e;--oliveT:rgba(172,119,42,.32);--oliveI:#fbca8b;--amberT:rgba(224,159,68,.28);--amberI:#f9c686;--tealT:rgba(129,187,244,.22);--tealI:#d9d4ce}
.tone-cyan{--tT:var(--cyanT);--tI:var(--cyanI);--tL:#2C88D9}
.tone-coral{--tT:var(--coralT);--tI:var(--coralI);--tL:#C66454}
.tone-olive{--tT:var(--oliveT);--tI:var(--oliveI);--tL:#7C8C37}
.tone-amber{--tT:var(--amberT);--tI:var(--amberI);--tL:#E09F44}
.tone-teal{--tT:var(--tealT);--tI:var(--tealI);--tL:#1a66a8}
.secicon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:34px;height:34px;border-radius:10px;background:var(--tT);color:var(--tI)}
.sechead h2{display:flex;align-items:center;gap:12px}
.panelcard.tone-cyan,.panelcard.tone-coral{border-top:3px solid var(--tL)}
.panelcard.tone-coral .rank{color:var(--coralI);font-size:14px}
.ptile .picon.t0{background:var(--cyanT);color:var(--cyanI)}
.ptile .picon.t1{background:var(--coralT);color:var(--coralI)}
.ptile .picon.t2{background:var(--oliveT);color:var(--oliveI)}
.ptile .picon.t3{background:var(--amberT);color:var(--amberI)}
.qtile{flex-direction:row;align-items:center;gap:14px}
.qtext{display:flex;flex-direction:column;gap:2px;min-width:0}
.start{overflow:hidden}
.startpic{display:block;width:calc(100% + 36px);margin:-16px -18px 10px;aspect-ratio:3/2;height:auto;object-fit:cover;border-bottom:1px solid var(--line)}
.start:nth-child(4n+1) .k{color:var(--amberI)}.start:nth-child(4n+2) .k{color:var(--cyanI)}.start:nth-child(4n+3) .k{color:var(--oliveI)}.start:nth-child(4n+4) .k{color:var(--coralI)}
.start:nth-child(4n+1){box-shadow:inset 0 3px 0 #E09F44,var(--shadow)}.start:nth-child(4n+2){box-shadow:inset 0 3px 0 #2C88D9,var(--shadow)}.start:nth-child(4n+3){box-shadow:inset 0 3px 0 #7C8C37,var(--shadow)}.start:nth-child(4n+4){box-shadow:inset 0 3px 0 #C66454,var(--shadow)}
.start:has(.startpic){box-shadow:var(--shadow)}
/* Hide/show the side menu on wide screens; a quick way back to netaphor.com */
.navtoggle{width:40px;padding:0;order:-1}
.navtoggle[aria-expanded="false"]{color:var(--link);background:var(--sel)}
html[data-nav="collapsed"] .sidenav{display:none}
html[data-nav="collapsed"] .artmain{max-width:940px}
html[data-nav="collapsed"] .shell{max-width:1320px}
.sitelink{gap:6px;font-weight:500;color:var(--sec)}
.sitelink:hover{color:var(--text)}
@media (max-width:900px){.navtoggle{display:none}html[data-nav="collapsed"] .js .sidenav.open,html[data-nav="collapsed"] .sidenav.open{display:block}}
@media (max-width:640px){.sitelink span{display:none}.sitelink{width:44px;padding:0}}
/* ---------- Reading sizes matched to netaphor.com articles (16.3 px body, 24 px section heads) ---------- */
.prose{font-size:16.32px;line-height:1.65}
.prose h2{font-size:24px;margin:30px 0 8px}
.prose h3{font-size:18px}
.prose>ol>li{padding-left:48px}
.arthead h1{font-size:34px}
.artmeta{font-size:13px}
.hero h1{font-size:36px}
.hero p{font-size:16px}
.pagehead h1{font-size:30px}
.sub{font-size:15.5px}
.panelcard p,.signin p{font-size:15.5px}
.signin h1{font-size:28px}
.callnote{font-size:15.5px}
/* ---------- Long article lists: each article is its own soft band ---------- */
.list{display:flex;flex-direction:column;gap:4px}
.list .row,.list .row:first-child{border-top:0;border-radius:10px;padding:11px 14px;transition:background-color .12s}
.list .row:nth-child(odd){background:var(--alt)}
.list .row:hover{background:var(--sel)}
ol.panelcard{padding:10px}
.panelcard .list{margin:0 -8px 8px}
.rowtitle{font-size:15.5px}
.rowmeta{gap:4px 8px;font-size:13px;margin-top:2px}
.rowmeta .tag{font-size:12px;padding:0 9px;min-height:22px;line-height:20px}
.rank{padding-top:2px}
/* Forms: fields never spill out of their card */
.form input:not([type="checkbox"]):not([type="radio"]),.form select,.form textarea{width:100%;min-width:0}
.edrow>div{min-width:0;display:flex;flex-direction:column;gap:6px}
@media (max-width:640px){
  .prose{font-size:16px}.arthead h1{font-size:27px}.hero h1{font-size:28px}
  .rowmeta .tag{min-height:28px;line-height:26px}
  .list .row{padding:10px 10px}
}
@media (max-width:1180px){.sitelink span{display:none}.sitelink{width:40px;padding:0}}
/* SiteAudit logo (with the small NETAPHOR line) needs a little more height to stay legible */
.brand-logo{height:40px}
@media (max-width:640px){.brand-logo{height:32px}}
/* Datasheet cards and "More" tiles on Downloads */
.dscards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px;margin-top:16px}
.dscard{display:flex;flex-direction:column;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow);scroll-margin-top:84px}
.dscard:target{outline:3px solid var(--focus);outline-offset:3px}
.dshead{display:flex;gap:14px;align-items:flex-start}
.dscard h3{font-family:var(--f-human);font-weight:600;font-size:18.5px;line-height:1.25;margin:4px 0 0}
.dscard p{margin:4px 0 0;color:var(--sec);font-size:14.5px}
.dscard .dlget{min-width:0}
.dscard .dlbtns{justify-content:flex-start}
.dscard .dlbtns .btn{flex:1 1 auto}
.qtile:not(:has(.secicon)){flex-direction:column;align-items:flex-start}
.quick .qtile{align-items:center}
/* Review list: Keep / Remove per article, applied together */
.reviewbar{position:sticky;top:64px;z-index:4;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;margin:0 0 14px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.reviewbar p{margin:0;max-width:70ch;color:var(--sec)}
.reviewactions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.reviewcount{font-family:var(--f-machine);font-size:13px;color:var(--sec);margin-right:6px}
.list .row .decide{display:inline-flex;flex:0 0 auto;align-self:center;border:1px solid var(--line2);border-radius:999px;overflow:hidden;background:var(--surface)}
.decide .opt{position:relative;display:inline-flex;cursor:pointer}
.decide .opt input{position:absolute;opacity:0;width:1px;height:1px}
.decide .opt span{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;font-size:13.5px;font-weight:600;color:var(--sec)}
.decide .opt+.opt span{border-left:1px solid var(--line2)}
.decide .opt input:focus-visible+span{outline:3px solid var(--focus);outline-offset:-3px}
.decide .keep input:checked+span{background:var(--oliveT,#efece9);color:var(--oliveI,#424c0f)}
.decide .keep input:checked+span::before{content:"✓ "}
.decide .remove input:checked+span{background:var(--coralT,#edebe8);color:var(--coralI,#a34638)}
.decide .remove input:checked+span::before{content:"✕ "}
.decide .remove input:disabled+span{opacity:.45;cursor:not-allowed}
.list .row.is-remove .rowtitle{text-decoration:line-through;text-decoration-color:var(--coralI,#a34638)}
.sechead [data-review-all]{margin-left:auto}
@media (max-width:640px){.list .row{flex-wrap:wrap}.list .row .decide{margin-left:0}.reviewbar{top:110px}}
.list .yearrow{display:flex;align-items:baseline;gap:12px;padding:16px 6px 6px;background:none !important;border-top:2px solid var(--text) !important;border-radius:0 !important;margin-top:8px}
.list .yearrow:first-child{margin-top:0}
.yearrow .yr{font-family:var(--f-machine);font-weight:600;font-size:15px;letter-spacing:.06em;color:var(--text)}

.terms-accept{margin:14px 0 6px}
.terms-accept .check{font-weight:400}

/* Two-step sign-in */
.ts-steps{padding-left:1.25rem;margin:8px 0 14px}
.ts-steps li{margin:4px 0}
.ts-qr{width:220px;max-width:100%;margin:12px 0;padding:8px;background:#fff;border-radius:8px;border:1px solid rgba(127,127,127,.3)}
.ts-qr svg{display:block;width:100%;height:auto}
.ts-key{font-size:15px;letter-spacing:.04em;word-break:break-all}
.ts-codes{columns:2;column-gap:28px;padding-left:1.4rem;margin:10px 0 14px}
.ts-codes li{margin:3px 0}
.ts-codes code{font-size:15px}
.ts-devices{padding-left:1.1rem}
.ts-devices li{margin:6px 0}
.ts-add{margin-top:14px}
.ts-add summary{cursor:pointer;font-weight:600}

/* One-panel sign-in and password pages */
.signin.signin--single{max-width:460px}
/* Article width on large displays. The reading line length (68ch) applies to running text only;
   tables, figures and code blocks use the article's full width. Table cells never split a word
   (overflow-wrap:anywhere also let tables squeeze columns below the longest word). The article
   is wider on large screens, and collapsing the side menu gives its space to the article
   (previously the collapsed layout was capped at 1320px, narrower than the normal 1680px). */
.prose{max-width:none;overflow-wrap:break-word}
.prose>*:not(.tablebox):not(figure):not(pre){max-width:68ch}
.tablebox table{overflow-wrap:normal;word-break:normal}
.artmain{max-width:980px}
html[data-nav="collapsed"] .artmain{max-width:1120px}
html[data-nav="collapsed"] .shell{max-width:1440px}
@media (min-width:1600px){.artmain{max-width:1180px}html[data-nav="collapsed"] .artmain{max-width:1320px}html[data-nav="collapsed"] .shell{max-width:1680px}}
