
:root{
  --bg:#12141a; --panel:#1a1d26; --panel2:#222633; --line:#2c3142; --text:#e4e7ef; --muted:#9aa2b6;
  --accent:#5ec4ff; --cob:#ff6b6b; --rad:#9be564; --fate:#d9a84e;
  --ok:#4cd68a; --warn:#ffb454; --test:#c58bff;
}
:root[data-theme=light]{
  --bg:#f5f6fa; --panel:#fff; --panel2:#eef0f6; --line:#d9dce8; --text:#1b1e2a; --muted:#5d6579;
  --accent:#0a74c4; --cob:#d23f3f; --rad:#3f8f12; --fate:#a8741a;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:70px}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 system-ui,Segoe UI,Roboto,sans-serif}
a{color:var(--accent)}
header{position:sticky;top:0;z-index:20;background:var(--panel);border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:center;padding:10px 16px}
header h1{font-size:1.15rem;margin:0;white-space:nowrap}
header h1 span{color:var(--accent)}
#search{flex:1;max-width:420px;padding:8px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel2);color:var(--text);font:inherit}
button{font:inherit;color:var(--text);background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer}
#menu{display:none}
.layout{display:flex;max-width:1300px;margin:0 auto}
nav{width:270px;flex:none;position:sticky;top:57px;align-self:flex-start;height:calc(100vh - 57px);overflow:auto;padding:16px 8px 40px 16px;border-right:1px solid var(--line)}
nav h4{margin:18px 0 6px;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
nav a{display:block;padding:4px 10px;border-radius:6px;color:var(--text);text-decoration:none;font-size:.93rem}
nav a:hover,nav a.active{background:var(--panel2)}
nav a.sub{padding-left:22px;color:var(--muted)}
main{flex:1;min-width:0;padding:24px 28px 80px}
section.page{margin-bottom:56px}
h2{font-size:1.7rem;margin:0 0 6px;padding-bottom:8px;border-bottom:3px solid var(--c,var(--accent))}
h3{margin:30px 0 8px;font-size:1.2rem;color:var(--c,var(--accent))}
h4{margin:20px 0 6px}
.lead{color:var(--muted);margin:0 0 18px}
.cob{--c:var(--cob)} .rad{--c:var(--rad)} .fate{--c:var(--fate)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin:14px 0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.grid .card{margin:0}
.grid .card h4{margin:0 0 4px}
.badge{display:inline-block;font-size:.72rem;font-weight:600;padding:1px 8px;border-radius:99px;vertical-align:middle;margin-left:6px;color:#111}
.b-live{background:var(--ok)} .b-test{background:var(--test)} .b-off{background:var(--warn)}
.note{border-left:4px solid var(--warn);background:var(--panel2);padding:10px 14px;border-radius:0 8px 8px 0;margin:14px 0}
.note.info{border-color:var(--accent)} .note.bad{border-color:var(--cob)}
table{border-collapse:collapse;width:100%;margin:12px 0;font-size:.93rem;display:block;overflow-x:auto}
th,td{border:1px solid var(--line);padding:6px 10px;text-align:left;vertical-align:top}
th{background:var(--panel2)}
code{background:var(--panel2);padding:1px 6px;border-radius:5px;font:0.9em Consolas,monospace}
pre{background:var(--panel2);padding:12px;border-radius:8px;overflow:auto}
pre code{background:none;padding:0}
details{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin:10px 0;padding:8px 14px}
summary{cursor:pointer;font-weight:600}
ul{padding-left:22px} li{margin:3px 0}
.hide{display:none!important}
.hit{background:#ffe06655;border-radius:3px}
#noresult{display:none;color:var(--muted);padding:20px 0}
footer{color:var(--muted);font-size:.85rem;border-top:1px solid var(--line);padding-top:14px}
.meter{display:flex;gap:2px;margin:10px 0;flex-wrap:wrap}
.meter div{flex:1;min-width:110px;padding:8px;border-radius:6px;color:#111;font-size:.85rem;font-weight:600;text-align:center}
@media (max-width:860px){
  #menu{display:block}
  nav{position:fixed;left:0;top:57px;z-index:15;background:var(--panel);width:82%;max-width:320px;transform:translateX(-105%);transition:transform .2s}
  nav.open{transform:none}
  main{padding:18px 16px 60px}
  header h1{font-size:1rem}
}

header h1 a{color:inherit;text-decoration:none}
.sw{position:relative;flex:1;max-width:420px}.sw input{width:100%}
#results{position:absolute;top:100%;left:0;right:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;max-height:60vh;overflow:auto;box-shadow:0 8px 24px #0006;margin-top:4px}
#results a{display:block;padding:8px 12px;text-decoration:none;color:var(--text);border-bottom:1px solid var(--line)}
#results a:hover{background:var(--panel2)} #results small{color:var(--muted);display:block}
.toc{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 18px;display:inline-block;min-width:260px;margin:6px 0 10px}
.toc ol{margin:6px 0 0;padding-left:22px}
.crumbs{font-size:.85rem;color:var(--muted);margin-bottom:8px}
.pn{display:flex;justify-content:space-between;margin:48px 0 20px;gap:10px}.pn a{padding:8px 14px;border:1px solid var(--line);border-radius:8px;text-decoration:none;background:var(--panel)}
.tile{text-decoration:none;color:inherit;border-top:4px solid var(--accent);transition:transform .1s}.tile:hover{transform:translateY(-2px)}
.grid.big{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
body.cob{--c:var(--cob)} body.rad{--c:var(--rad)} body.fate{--c:var(--fate)}
nav>a.active{font-weight:700;background:var(--panel2)}
nav a.sub.current{color:var(--accent);background:var(--panel2)}
nav a.sub.active{background:none}
main{max-width:900px}
footer{margin-top:30px}

.srv{display:flex;align-items:center;gap:7px;padding:5px 11px;border:1px solid var(--line);border-radius:99px;background:var(--panel2);font-size:.85rem;white-space:nowrap}
.srv i{width:10px;height:10px;border-radius:50%;background:var(--muted);display:inline-block}
.srv.on i{background:var(--ok);box-shadow:0 0 6px var(--ok)}
.srv.off i{background:#ff5d5d}
@media (max-width:560px){.srv b{font-size:.78rem}.sw{min-width:0}}
