:root{--paper:#0b0c0b;--paper2:#121412;--paper3:#181b17;--ink:#e6e9e1;--dim:#9aa094;--line:#2d322b;--line2:#3b4138;--acid:#baff29;--acid2:#8fd60f;--danger:#ff4d35;--serif:"Linux Libertine",Georgia,"Times New Roman",serif;--sans:Inter,Arial,Helvetica,sans-serif;--mono:ui-monospace,Consolas,"Courier New",monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font:400 15px/1.6 var(--sans);background:var(--paper)}
a{color:var(--acid);text-decoration:none}
a:hover{text-decoration:underline}
a:visited{color:var(--acid2)}
img{max-width:100%}
code,kbd{font-family:var(--mono);font-size:.92em;background:var(--paper3);border:1px solid var(--line);padding:1px 5px;border-radius:2px}
sup.ref{font-size:11px;line-height:1}sup.ref a{color:var(--acid)}

/* top bar */
.topbar{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;height:54px;padding:0 20px;background:var(--paper2);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font:600 15px var(--sans);letter-spacing:.01em}
.brand:hover{text-decoration:none}
.brand .logo{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--ink);color:#0b0c0b;font:700 15px var(--serif)}
.brand small{display:block;font:11px var(--sans);color:var(--dim);letter-spacing:.06em;text-transform:uppercase}
.topsearch{display:flex;max-width:520px;width:100%;justify-self:center}
.topsearch input{flex:1;min-width:0;padding:8px 12px;border:1px solid var(--line2);border-right:0;background:var(--paper);color:var(--ink);font:14px var(--sans);outline:0}
.topsearch input:focus{border-color:var(--acid)}
.topsearch button{padding:8px 14px;border:1px solid var(--line2);background:var(--paper3);color:var(--ink);font:600 12px var(--sans);text-transform:uppercase;letter-spacing:.06em;cursor:pointer}
.topsearch button:hover{background:var(--acid);color:#0b0c0b;border-color:var(--acid)}
.toplinks{display:flex;gap:16px;font-size:13px}
.toplinks a{color:var(--dim)}.toplinks a.on,.toplinks a:hover{color:var(--ink);text-decoration:none}
.toplinks a.on{border-bottom:2px solid var(--acid);padding-bottom:2px}

/* shell */
.shell{display:grid;grid-template-columns:200px minmax(0,1fr);max-width:1500px;margin:0 auto}
.sidebar{padding:20px 14px 40px;border-right:1px solid var(--line);font-size:13px}
.sidebar h4{margin:18px 0 6px;font:600 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--line);padding-bottom:4px}
.sidebar h4:first-child{margin-top:0}
.sidebar a{display:block;padding:3px 0;color:var(--acid)}
.sidebar .sticky{position:sticky;top:70px}
.content{padding:22px 32px 70px;min-width:0}

/* article header */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line2);font-size:13px}
.tabs span{padding:6px 12px;color:var(--dim);background:var(--paper2);border:1px solid var(--line);border-bottom:0}
.tabs span.on{color:var(--ink);background:var(--paper);border-color:var(--line2);margin-bottom:-1px;border-bottom:1px solid var(--paper)}
h1.title{margin:18px 0 4px;font:400 32px/1.2 var(--serif);border-bottom:1px solid var(--line2);padding-bottom:4px}
.from{font-size:13px;color:var(--dim);margin:0 0 14px}
.hatnote{font-size:13px;font-style:italic;color:var(--dim);padding:2px 0 8px 24px;margin-bottom:8px}
.body{display:block}
.body p{margin:0 0 .9em;max-width:none;font-size:15px;line-height:1.65}
.body h2{font:400 24px/1.25 var(--serif);margin:28px 0 10px;border-bottom:1px solid var(--line2);padding-bottom:3px}
.body h3{font:600 17px/1.3 var(--sans);margin:20px 0 8px}
.body ul,.body ol{margin:0 0 1em;padding-left:28px}
.body li{margin:3px 0}
.body dl{margin:0 0 1em}.body dt{font-weight:600}.body dd{margin:0 0 8px 24px;color:var(--dim)}
.body blockquote{margin:12px 0;padding:10px 16px;border-left:3px solid var(--acid);background:var(--paper2);color:var(--dim);font-style:italic}
.body table.wt{border-collapse:collapse;width:100%;margin:12px 0 18px;font-size:14px;background:var(--paper2)}
.body table.wt th,.body table.wt td{border:1px solid var(--line);padding:6px 10px;text-align:left;vertical-align:top}
.body table.wt th{background:var(--paper3);font-weight:600}
.body .status-ok{color:var(--acid);font-weight:600}.body .status-warn{color:var(--danger);font-weight:600}

/* infobox */
.infobox{float:right;clear:right;width:300px;margin:0 0 18px 24px;border:1px solid var(--line2);background:var(--paper2);font-size:13px;line-height:1.45}
.infobox caption,.infobox .cap{padding:8px 10px;text-align:center;font:600 16px var(--sans);background:var(--paper3);border-bottom:1px solid var(--line2)}
.infobox .sub{padding:6px 10px;text-align:center;color:var(--dim);border-bottom:1px solid var(--line);font-size:12px}
.infobox .ib-img{display:grid;place-items:center;height:120px;margin:10px;background:#050605;border:1px solid var(--line);color:var(--acid);font:400 44px var(--serif);letter-spacing:-.04em}
.infobox table{width:100%;border-collapse:collapse}
.infobox th{width:38%;padding:5px 10px;text-align:left;vertical-align:top;font-weight:600;background:var(--paper3);border-top:1px solid var(--line)}
.infobox td{padding:5px 10px;vertical-align:top;border-top:1px solid var(--line);color:var(--ink)}
.infobox .ib-head{padding:5px 10px;text-align:center;font-weight:600;background:var(--paper3);border-top:1px solid var(--line2)}

/* toc */
.toc{display:inline-block;min-width:260px;max-width:420px;margin:6px 0 18px;padding:10px 16px 12px;border:1px solid var(--line2);background:var(--paper2);font-size:13px}
.toc .toctitle{font-weight:600;text-align:center;margin-bottom:6px}
.toc ol{margin:0;padding-left:0;list-style:none;counter-reset:toc}
.toc ol li{counter-increment:toc;margin:2px 0}
.toc ol li:before{content:counter(toc) " ";color:var(--dim);margin-right:4px}
.toc ol ol{padding-left:18px;counter-reset:sub}
.toc ol ol li{counter-increment:sub}.toc ol ol li:before{content:counter(toc) "." counter(sub) " "}

/* refs */
.reflist{font-size:13px;column-count:2;column-gap:32px;margin:0;padding-left:22px;color:var(--dim)}
.reflist li{margin:0 0 6px;break-inside:avoid}
.reflist li b{color:var(--ink);font-weight:500}
.catlinks{margin-top:34px;padding:8px 12px;border:1px solid var(--line);background:var(--paper2);font-size:13px;color:var(--dim)}
.catlinks a{margin:0 4px}
.lastedit{margin-top:14px;font-size:12px;color:var(--dim)}

/* mbox notices */
.mbox{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center;margin:8px 0 14px;padding:8px 12px;border:1px solid var(--line2);border-left:5px solid var(--acid);background:var(--paper2);font-size:13px}
.mbox.warn{border-left-color:var(--danger)}
.mbox .ic{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--paper3);color:var(--acid);font:700 15px var(--serif)}
.mbox.warn .ic{color:var(--danger)}

/* main page */
.mp-head{margin:14px 0 18px;padding:18px 22px;border:1px solid var(--line2);background:var(--paper2)}
.mp-head h1{margin:0 0 6px;font:400 30px/1.2 var(--serif)}
.mp-head p{margin:0;color:var(--dim);font-size:14px}
.mp-head .stats{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:10px;font-size:13px}
.mp-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px}
.mp-box{border:1px solid var(--line2);background:var(--paper2);margin-bottom:16px}
.mp-box h2{margin:0;padding:8px 14px;font:600 14px var(--sans);letter-spacing:.06em;text-transform:uppercase;background:var(--paper3);border-bottom:1px solid var(--line2)}
.mp-box h2 span{color:var(--acid)}
.mp-box .in{padding:12px 14px;font-size:14px}
.mp-box .in p{margin:0 0 .8em}
.mp-box .in ul{margin:0;padding-left:20px}.mp-box .in li{margin:4px 0}
.mp-box .more{text-align:right;font-size:13px;margin-top:6px}
.portals{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.portals a{display:block;padding:12px 14px;background:var(--paper2);color:var(--ink)}
.portals a:hover{background:var(--paper3);text-decoration:none}
.portals b{display:block;color:var(--acid);font-size:14px}
.portals span{display:block;font-size:12px;color:var(--dim);margin-top:2px}

/* index / category listing */
.cat-cols{column-count:3;column-gap:28px;font-size:14px}
.cat-cols h3{break-after:avoid;margin:0 0 4px;font:600 15px var(--sans);border-bottom:1px solid var(--line);padding-bottom:2px}
.cat-cols ul{margin:0 0 18px;padding-left:18px;break-inside:avoid}
.cat-cols li{margin:2px 0}
.cat-cols li span{color:var(--dim)}

/* guides */
.guide{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}
.guide .num{font:400 40px/1 var(--serif);color:var(--acid)}
.guide .num small{display:block;font:11px var(--sans);color:var(--dim);letter-spacing:.1em;text-transform:uppercase;margin-top:6px}
.guide h3{margin:0 0 6px;font:600 18px var(--sans)}
.guide p{margin:0 0 6px;color:var(--ink);font-size:14px}

/* mirror panel overrides (inline style in mirrors.html uses light palette) */
.mv-panel{margin:14px 0!important}
.mv-slot{border-color:var(--line2)!important;border-radius:2px!important;background:var(--paper2)!important;backdrop-filter:none!important}
.mv-badge{color:var(--acid)!important;border-color:var(--line2)!important;border-radius:2px!important;font-family:var(--sans)!important}
.mv-host{color:var(--ink)!important;background:#050605!important;border-color:var(--line2)!important;border-radius:2px!important}
.mv-btn{border-color:var(--line2)!important;background:var(--paper3)!important;color:var(--ink)!important;border-radius:2px!important;font-family:var(--sans)!important}
.mv-btn:hover{border-color:var(--acid)!important}
.mv-go{background:var(--acid)!important;color:#0b0c0b!important;border-color:var(--acid)!important}
.mv-note{color:var(--dim)!important;font-size:13px!important}
.toast{z-index:100;border-radius:2px!important;background:var(--acid)!important;color:#0b0c0b!important;font:600 13px var(--sans)}

.foot{max-width:1500px;margin:0 auto;padding:16px 32px 30px;border-top:1px solid var(--line);font-size:12px;color:var(--dim);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
.foot a{color:var(--dim)}

@media(max-width:1000px){.shell{grid-template-columns:1fr}.sidebar{display:none}.mp-grid{grid-template-columns:1fr}.cat-cols{column-count:2}.reflist{column-count:1}}
@media(max-width:700px){.topbar{grid-template-columns:1fr auto;gap:10px;height:auto;padding:8px 14px}.topsearch{grid-column:1/-1;max-width:none}.toplinks{gap:10px;font-size:12px}.content{padding:16px 14px 50px}.infobox{float:none;width:100%;margin:0 0 16px}.toc{display:block;max-width:none}.portals{grid-template-columns:1fr}.cat-cols{column-count:1}.guide{grid-template-columns:1fr}.foot{padding:16px 14px}}
