:root{--bg: #0e1116;--panel: #161b22;--panel-2: #1c232d;--border: #2a3340;--text: #e6edf3;--muted: #8b98a8;--up: #3fb950;--down: #f85149;--warn: #d29922;--accent: #4c8dff;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3,h4{margin:0}h1{font-size:18px}h2{font-size:16px}h4{margin:18px 0 8px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.muted{color:var(--muted)}small.muted{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:7px 12px;font:inherit;cursor:pointer}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger:hover:not(:disabled){border-color:var(--down);color:var(--down)}.btn.small{padding:3px 9px}.icon-btn{background:none;border:0;color:var(--muted);font-size:16px;cursor:pointer}.icon-btn:hover{color:var(--text)}input,select{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit}input:focus,select:focus{outline:none;border-color:var(--accent)}.error{background:#f851491f;border:1px solid rgba(248,81,73,.4);color:#ff938d;padding:8px 10px;border-radius:8px;margin:10px 0}.notice{background:#d299221f;border:1px solid rgba(210,153,34,.4);padding:8px 10px;border-radius:8px;margin:10px 0}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--muted);flex:none}.dot.up{background:var(--up)}.dot.down{background:var(--down);animation:pulse 1.2s infinite}.dot.paused{background:var(--warn)}@keyframes pulse{50%{box-shadow:0 0 0 5px #f8514940}}.st-up{color:var(--up)}.st-down{color:var(--down)}.st-paused{color:var(--warn)}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login-card{width:100%;max-width:340px;display:flex;flex-direction:column;gap:12px}.layout{min-height:100vh}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--panel);position:sticky;top:0;z-index:5}.summary{display:flex;gap:16px;color:var(--muted)}.summary .bad{color:var(--down);font-weight:600}.summary .good{color:var(--up)}.top-actions{margin-left:auto;display:flex;flex-wrap:wrap;gap:8px}.banner{padding:8px 20px;background:var(--panel-2);color:var(--muted)}.banner.alarm{background:#f851492e;color:#ff938d;font-weight:600}.content{max-width:1000px;margin:0 auto;padding:20px;display:flex;flex-direction:column;gap:16px}.with-drawer .content{margin-left:0;max-width:calc(100% - 460px)}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px}.empty{text-align:center;display:flex;flex-direction:column;gap:12px;align-items:center}.host{padding:0;overflow:hidden}.host-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border)}.host-head h2{display:flex;align-items:center;gap:8px}.host-actions{display:flex;gap:6px}.pad{padding:14px 16px}.table{display:flex;flex-direction:column}.row-item{display:grid;grid-template-columns:12px minmax(0,1fr) 70px 80px 70px 90px;gap:12px;align-items:center;text-align:left;width:100%;background:none;color:inherit;border:0;border-bottom:1px solid var(--border);padding:11px 16px;font:inherit;cursor:pointer}.row-item:last-child{border-bottom:0}.row-item:hover,.row-item.active{background:var(--panel-2)}.row-item.is-down{background:#f8514914}.row-item .name{min-width:0;font-weight:500}.cell{font-variant-numeric:tabular-nums;white-space:nowrap}.drawer{position:fixed;top:0;right:0;bottom:0;width:440px;max-width:100%;background:var(--panel);border-left:1px solid var(--border);padding:18px;overflow-y:auto;z-index:8}.drawer-head{display:flex;justify-content:space-between;gap:12px}.drawer-title{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.stats>div{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:2px;font-size:12px}.stats b{font-size:16px}.actions{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.section-head{display:flex;justify-content:space-between;align-items:center}.seg{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-top:10px}.seg button{background:none;border:0;color:var(--muted);padding:3px 10px;cursor:pointer}.seg button.on{background:var(--accent);color:#fff}.chart{width:100%;height:auto;background:var(--bg);border:1px solid var(--border);border-radius:10px}.chart .grid{stroke:var(--border);stroke-dasharray:3 3}.chart .axis{fill:var(--muted);font-size:9px}.chart .line{fill:none;stroke:var(--up);stroke-width:1.5}.chart .band{fill:#f851494d}.chart-empty{padding:24px;text-align:center;border:1px dashed var(--border);border-radius:10px}.copy{display:flex;gap:8px;align-items:center}code{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:4px 6px;font-size:12px;word-break:break-all}.copy code{flex:1}code.block{display:block;margin-top:8px}.errors{list-style:none;padding:0;margin:0;font-size:12px;display:flex;flex-direction:column;gap:6px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;padding:16px;z-index:20}.modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px;width:100%;max-width:460px;max-height:100%;overflow-y:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.form{display:flex;flex-direction:column;gap:12px}.form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.form label.check{flex-direction:row;align-items:center;gap:8px;font-size:14px;color:var(--text)}.form label.check input{width:auto}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-actions{display:flex;justify-content:flex-end;gap:8px}@media (max-width: 900px){.with-drawer .content{max-width:1000px}.row-item{grid-template-columns:12px minmax(0,1fr) 80px 90px}.row-item .cell:nth-of-type(1),.row-item .cell:nth-of-type(3){display:none}.drawer{width:100%}.topbar{padding:10px 12px}.content{padding:12px}}
