:root{--bg:#e8eef1;--panel:#fff;--ink:#14242c;--mute:#4f626d;--line:#b8c6cd;--go:#0a6e45;--stop:#b3261e;--idle:#7d8d96;--act:#17476b}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 "Segoe UI",Roboto,"Noto Sans",Arial,sans-serif}
.top{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;background:var(--act);color:#fff}
.top form{margin:0}.brand{color:#fff;font-weight:600;text-decoration:none}.who{margin-right:12px;opacity:.85}
main{max-width:1120px;margin:0 auto;padding:24px}
h1{font-size:28px;line-height:1.2;margin:0 0 20px;overflow-wrap:anywhere}h2{font-size:18px;margin:0 0 6px}h3{font-size:16px;margin:0 0 10px}
.head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
a{color:var(--act)}
button,.primary{font:inherit;padding:9px 16px;border:1px solid var(--act);background:#fff;color:var(--act);border-radius:4px;cursor:pointer;text-decoration:none;display:inline-block}
.primary{background:var(--act);color:#fff}.primary:disabled{opacity:.6;cursor:wait}
.danger{border-color:var(--stop);color:var(--stop);margin-left:auto}
.link{background:none;border:0;color:#fff;text-decoration:underline;padding:0}
:focus-visible{outline:3px solid #e0a100;outline-offset:2px}
label{display:block;font-weight:600;font-size:14px;margin-bottom:14px;min-width:0}
input,select{display:block;width:100%;margin-top:4px;padding:9px 10px;font:400 16px/1.3 inherit;font-family:inherit;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink)}
small{display:block;font-weight:400;color:var(--mute);margin-top:4px;font-size:13px}
fieldset{border:0;border-top:1px solid var(--line);margin:8px 0 12px;padding:14px 0 0}legend{font-weight:600;padding-right:10px}
.split{display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,2fr);gap:24px;align-items:start}
#box,aside,.boxes,.login,.empty{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:20px}
aside{position:sticky;top:16px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.srv{display:grid;grid-template-columns:minmax(0,1fr) 90px 130px;gap:12px}
.actions{display:flex;gap:10px;flex-wrap:wrap}
.hint{color:var(--mute);font-size:14px;margin:0 0 12px}
.err,.errorlist{color:var(--stop);font-size:14px;font-weight:400;list-style:none;padding:0;margin:4px 0}
.notice{padding:10px 14px;border-left:4px solid var(--go);background:#fff;margin:0 0 16px}.notice.error{border-color:var(--stop)}
.line{margin-top:18px}.line.clear h3{color:var(--go)}.line.stop h3{color:var(--stop)}
.line ol{list-style:none;margin:0;padding:0}
.line li{position:relative;padding:0 0 16px 28px;border-left:3px solid var(--idle);margin-left:8px}
.line li:last-child{border-left-color:transparent;padding-bottom:0}
.line li::before{content:"";position:absolute;left:-10px;top:3px;width:17px;height:17px;border-radius:50%;background:#fff;border:3px solid var(--idle)}
.line li.ok{border-left-color:var(--go)}.line li.ok::before{background:var(--go);border-color:var(--go)}
.line li.failed::before{background:var(--stop);border-color:var(--stop);border-radius:2px}
.line li.skipped{color:var(--mute)}.line li b{font-weight:600}.line li p{margin:2px 0 0;font-size:14px;color:var(--mute)}.line li.failed p{color:var(--stop)}
.boxes{width:100%;border-collapse:collapse;padding:0}.boxes th,.boxes td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}.boxes th{font-size:14px;color:var(--mute);font-weight:600}.boxes tr:last-child td{border-bottom:0}
.acts{display:flex;gap:12px;align-items:center}.acts form{margin:0}.acts button{padding:5px 10px}
.st{font-size:14px}.st.ok{color:var(--go);font-weight:600}.st.failed{color:var(--stop);font-weight:600}.st.unknown,.st.off{color:var(--mute)}
.login{max-width:380px;margin:48px auto}.login .primary{width:100%}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:800px){.split,.row{grid-template-columns:1fr}.row{gap:0}aside{position:static}main{padding:16px}.top{padding:10px 16px}
.boxes thead{display:none}.boxes,.boxes tbody,.boxes tr,.boxes td{display:block;width:100%}.boxes tr{border-bottom:1px solid var(--line);padding:6px 0}.boxes td{border:0;padding:6px 14px}.boxes td[data-label]:not(:first-child)::before{content:attr(data-label) ": ";color:var(--mute);font-size:14px}}
@media(max-width:480px){.srv{grid-template-columns:1fr 1fr}.srv label:first-child{grid-column:1/-1}}
.nav{display:flex;gap:18px;align-items:center}.nav a{color:#fff}
.block{margin-top:28px}.block h2{margin-bottom:10px}
.narrow,.inline-form{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:20px;max-width:640px}
.inline-form{max-width:none;margin-top:16px}.inline-form .srv{grid-template-columns:repeat(3,minmax(0,1fr))}
.check{display:flex;gap:8px;align-items:center;font-weight:400}.check input{width:auto;margin:0}
.plain{list-style:none;padding:0;margin:0}.plain li{padding:6px 0;overflow-wrap:anywhere}
code{font-size:15px;background:#fff;border:1px solid var(--line);padding:2px 6px;border-radius:3px}
@media(max-width:800px){.inline-form .srv{grid-template-columns:1fr}.nav{gap:12px}}
.st.warn{color:#8a5a00;font-weight:600}
.stats td{text-align:center;width:20%}.stats strong{font-size:24px}
@media(max-width:800px){.stats td{display:inline-block;width:49%}}
