.icon[data-v-87c3b7fe]{flex:0 0 auto;display:block}:root{--bg:#0a0a0b;--panel:#101012;--panel-2:#141417;--raise:#1a1a1e;--line:#232327;--line-2:#2e2e34;--text:#e6e6e8;--dim:#8b8b94;--dimmer:#5c5c65;--accent:#4d7fd6;--accent-dim:#2b4470;--ok:#3fb950;--warn:#d29922;--bad:#f0544c;--r:4px;--mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:13px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--line-2)}a:hover{border-color:var(--dim)}button,input,select,textarea{font:inherit;color:inherit}h1{font-size:17px;font-weight:600;margin:0;letter-spacing:-.01em}h2{font-size:11px;font-weight:600;margin:0 0 14px;text-transform:uppercase;letter-spacing:.09em;color:var(--dim)}.sub{color:var(--dim);font-size:12px;margin-top:3px}.muted{color:var(--dim)}.right{text-align:right}.mono{font-family:var(--mono);font-size:12px;letter-spacing:-.01em}.layout{display:flex;min-height:100vh}.sidebar{width:212px;flex:0 0 212px;background:var(--panel);border-right:1px solid var(--line);padding:0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:9px;padding:0 16px;height:49px;border-bottom:1px solid var(--line);font-weight:600;font-size:13px;letter-spacing:.02em;color:var(--text)}.brand .dot{width:6px;height:6px;border-radius:50%;background:var(--ok)}.nav{padding:10px 8px;display:flex;flex-direction:column;gap:1px}.nav-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--dimmer);padding:12px 8px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:var(--r);color:var(--dim);cursor:pointer;font-size:13px;transition:background .12s,color .12s}.nav-item:hover{background:var(--panel-2);color:var(--text)}.nav-item.active{background:var(--raise);color:var(--text)}.nav-item.active .icon{color:var(--accent)}.sidebar .spacer{flex:1}.sidebar-foot{padding:8px;border-top:1px solid var(--line)}.main{flex:1;min-width:0;padding:22px 26px 56px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid var(--line);flex-wrap:wrap}@media(max-width:820px){.sidebar{display:none}.main{padding:16px}}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px}.grid{display:grid;gap:12px}.grid.stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.grid.two{grid-template-columns:2fr 1fr}@media(max-width:1100px){.grid.two{grid-template-columns:1fr}}.stat .label{color:var(--dim);font-size:10.5px;text-transform:uppercase;letter-spacing:.09em}.stat .value{font-family:var(--mono);font-size:24px;font-weight:500;margin-top:7px;letter-spacing:-.02em}.stat .hint{color:var(--dimmer);font-size:11.5px;margin-top:5px}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--panel-2);border:1px solid var(--line-2);border-radius:var(--r);padding:6px 11px;cursor:pointer;font-size:12.5px;color:var(--text);transition:.12s;white-space:nowrap}.btn:hover{background:var(--raise);border-color:#3c3c44}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#5a8ce0;border-color:#5a8ce0}.btn.danger{color:var(--bad);border-color:#3d2526}.btn.danger:hover{background:#2a1a1b;border-color:var(--bad)}.btn.sm{padding:4px 7px;font-size:11.5px}.btn.icon-only{padding:5px}.btn:disabled{opacity:.45;cursor:not-allowed}.row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}input,select,textarea{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r);padding:6px 9px;width:100%;font-size:12.5px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}input[readonly]{color:var(--dim)}label{display:block;font-size:10.5px;color:var(--dim);margin:0 0 5px;text-transform:uppercase;letter-spacing:.07em}.field{margin-bottom:13px}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--dimmer);padding:8px 12px;border-bottom:1px solid var(--line);white-space:nowrap;font-weight:500;background:var(--panel-2)}td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--panel-2)}.table-wrap{overflow-x:auto}.card.flush{padding:0;overflow:hidden}.card.flush th:first-child,.card.flush td:first-child{padding-left:16px}.card.flush th:last-child,.card.flush td:last-child{padding-right:16px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--dim);font-family:var(--mono);letter-spacing:-.01em}.badge:before{content:"";width:5px;height:5px;border-radius:1px;background:currentColor}.badge.on{color:var(--ok)}.badge.off{color:var(--dimmer)}.badge.warn{color:var(--warn)}.badge.bad{color:var(--bad)}.badge.plain:before{display:none}.pulse{display:none}.progress{height:3px;background:var(--line);border-radius:2px;overflow:hidden;margin-top:5px;min-width:80px}.progress i{display:block;height:100%;background:var(--accent)}.progress i.hot{background:var(--warn)}.tabs{display:flex;gap:0;margin-bottom:16px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.tab{padding:7px 13px;cursor:pointer;font-size:12.5px;color:var(--dim);border-bottom:1.5px solid transparent;margin-bottom:-1px}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.tabs.compact{border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;margin:0;display:inline-flex}.tabs.compact .tab{border:none;margin:0;padding:4px 10px;font-size:11.5px;font-family:var(--mono)}.tabs.compact .tab.active{background:var(--raise);color:var(--text)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.modal{background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r);padding:18px;width:100%;max-width:500px;max-height:90vh;overflow:auto}.modal.wide{max-width:780px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:13px;margin-bottom:16px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:13px;text-transform:none;letter-spacing:0;color:var(--text)}.x{background:none;border:none;color:var(--dim);cursor:pointer;line-height:1;padding:2px;display:flex}.x:hover{color:var(--text)}pre.conf{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:12px;overflow:auto;font-family:var(--mono);font-size:11.5px;max-height:300px;color:var(--dim);line-height:1.7;margin:0}.qr{background:#fff;padding:9px;border-radius:var(--r);display:block;margin:0 auto;max-width:240px;width:100%}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login{width:100%;max-width:340px}.err{background:#f0544c14;border:1px solid rgba(240,84,76,.3);color:#f7b4b0;padding:9px 11px;border-radius:var(--r);font-size:12px;margin-bottom:13px}.toast{position:fixed;right:18px;bottom:18px;background:var(--raise);border:1px solid var(--line-2);border-left:2px solid var(--dim);padding:10px 14px;border-radius:var(--r);z-index:99;font-size:12.5px;animation:slide .15s ease-out}.toast.ok{border-left-color:var(--ok)}.toast.bad{border-left-color:var(--bad)}@keyframes slide{0%{transform:translateY(6px);opacity:0}}.events{max-height:320px;overflow:auto;display:flex;flex-direction:column}.event{display:flex;gap:11px;font-size:12px;padding:6px 0;border-bottom:1px solid var(--line)}.event:last-child{border-bottom:none}.event .t{color:var(--dimmer);white-space:nowrap;font-family:var(--mono);font-size:11px}.empty{text-align:center;padding:36px 20px;color:var(--dimmer);font-size:12.5px}.actions{display:flex;gap:2px;justify-content:flex-end;flex-wrap:nowrap}.actions .btn{background:none;border-color:transparent;color:var(--dim);padding:5px}.actions .btn:hover{background:var(--raise);border-color:var(--line-2);color:var(--text)}.actions .btn.danger:hover{color:var(--bad)}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#3c3c44}
