:root{--bg:#0b1311;--panel:#101c17;--panel-2:#14251d;--line:#284537;--mint:#84e2bd;--text:#e3eee7;--muted:#92aa9b;--dim:#668071;--red:#f19592;--amber:#e8ca82;--blue:#9ac8e5;--font:Inter,"Microsoft YaHei","PingFang SC",system-ui,sans-serif;--num:"Cascadia Code",Consolas,monospace;color-scheme:dark;font-family:var(--font);background:var(--bg);color:var(--text);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--mint);outline-offset:3px}a{color:var(--mint)}button{color:inherit}button,select,input,textarea{border-radius:4px}input,textarea,select{background:#09120e;border:1px solid #355443;color:var(--text);padding:11px 12px;min-width:0}textarea{resize:vertical;min-height:85px}input::placeholder,textarea::placeholder{color:#6b8576}label{font-size:13px;font-weight:600;color:#bacdc0;line-height:1.5}.field{display:flex;flex-direction:column;gap:8px}.micro{font-size:10px;letter-spacing:2.1px;color:var(--dim);font-family:var(--num)}.num{font-family:var(--num);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:12px;line-height:1.7}.icon{width:20px;height:20px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.brand-mark{width:25px;height:30px;background:var(--mint);display:block;clip-path:polygon(0 0,22% 0,22% 23%,39% 23%,39% 0,61% 0,61% 23%,78% 23%,78% 0,100% 0,100% 52%,73% 67%,73% 84%,88% 84%,88% 100%,12% 100%,12% 84%,27% 84%,27% 67%,0 52%)}.brand{display:flex;align-items:center;gap:12px}.brand strong{font-size:17px;letter-spacing:.5px}.brand small{display:block;margin-top:3px;font-size:10px;letter-spacing:1.9px;color:var(--muted)}.skip-link{position:fixed;top:8px;left:8px;background:var(--mint);color:#082014;padding:10px 15px;z-index:100;transform:translateY(-200%)}.skip-link:focus{transform:none}.boot{min-height:100vh;display:grid;place-content:center;justify-items:center;color:var(--muted);gap:15px;font-size:14px}.boot__mark{width:30px;height:30px;border:2px solid var(--line);border-top-color:var(--mint);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.button{border:1px solid #3b6050;background:#172c22;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 15px;min-height:41px;font-size:13px;font-weight:600;line-height:1.3;text-decoration:none;white-space:nowrap}.button:hover:not(:disabled){background:#213d2f;border-color:var(--mint)}.button--primary{background:var(--mint);color:#10291b;border-color:var(--mint)}.button--primary:hover:not(:disabled){background:#a2edce}.button--quiet{background:transparent;border-color:var(--line);color:var(--muted)}.button--danger{background:#3a2422;border-color:#86514a;color:#ffc0b9}.button--danger:hover:not(:disabled){background:#58312d;border-color:var(--red)}.button--tiny{min-height:30px;padding:6px 10px;font-size:11px}.button--block{width:100%}.text-link{background:none;border:0;color:var(--mint);padding:7px 0;font-size:12px;text-decoration:underline;text-underline-offset:4px}.error-box,.info-box{padding:12px 14px;border:1px solid #764c43;background:#2d1f1c;color:#f0b6ab;font-size:12px;line-height:1.75;margin:17px 0}.info-box{border-color:#365743;background:#13261a;color:#adcbb4}.error-box:empty{display:none}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:99px;padding:4px 9px;font-size:10px;line-height:1.5;white-space:nowrap;color:var(--muted)}.pill--ok{color:var(--mint);border-color:#3c6a51;background:#152c20}.pill--warn{color:var(--amber);border-color:#675b39;background:#2c281b}.pill--bad{color:var(--red);border-color:#7b4b43;background:#30211d}.dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block;flex-shrink:0}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(300px,.9fr) minmax(390px,1fr);max-width:1440px;margin:auto;align-items:center;padding:60px 9%;gap:100px;position:relative}.login-shell:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 15% 40%,#1b422a33,transparent 55%)}.login-intro,.login-card{position:relative}.login-intro h1{font-size:43px;line-height:1.35;letter-spacing:-1.6px;margin:48px 0 21px}.login-intro h1 span{color:var(--mint)}.login-intro>p{font-size:14px;color:var(--muted);line-height:2;max-width:330px;margin:0}.login-rules{border-top:1px solid var(--line);margin-top:35px;padding-top:20px;display:flex;gap:20px;color:var(--dim);font-size:11px}.login-rules span{display:flex;align-items:center;gap:7px}.login-rules .icon{width:15px;height:15px}.login-card{padding:34px 34px 26px;border:1px solid var(--line);border-top:3px solid var(--mint);background:#0d1914;box-shadow:0 24px 80px #0002;max-width:470px;width:100%}.login-card h2{font-size:24px;margin:16px 0 10px}.login-card .lead{font-size:12px;color:var(--muted);line-height:1.9;margin:0 0 25px}.login-form{display:flex;flex-direction:column;gap:20px}.login-form input{min-height:45px}.login-form .button{min-height:46px;margin-top:4px}.login-card .form-foot{border-top:1px solid var(--line);margin:25px 0 0;padding-top:18px;font-size:11px;color:var(--dim);line-height:1.9}.login-steps{display:flex;gap:8px;margin-bottom:25px}.login-steps span{height:3px;background:var(--line);flex:1}.login-steps .on{background:var(--mint)}.otp-field{font-family:var(--num);font-size:27px;letter-spacing:12px;text-align:center}.otp-note{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);gap:10px;margin-top:-8px}.shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);padding:28px 19px 20px;display:flex;flex-direction:column;background:#0d1712}.sidebar .brand{padding:0 5px 28px}.sidebar .brand strong{font-size:15px}.sidebar .brand small{font-size:8px;letter-spacing:1.3px}.sidebar .brand-mark{width:21px;height:25px}.nav{display:flex;flex-direction:column;gap:6px}.nav button{display:flex;align-items:center;gap:12px;background:none;border:1px solid transparent;text-align:left;padding:13px 15px;font-size:13px;color:var(--muted);min-height:46px}.nav button:hover{background:#14261a}.nav button[aria-current=page]{color:var(--mint);background:#193124;border-color:#365d45}.nav button .icon{width:18px;height:18px}.sidebar-foot{margin-top:auto;padding:20px 6px 0;border-top:1px solid var(--line)}.sidebar-foot .admin-email{font-size:11px;color:#bacfc0;overflow-wrap:anywhere;margin:8px 0 15px;line-height:1.8}.sidebar-foot .button{font-size:11px;width:100%;min-height:34px}.sidebar-foot .hint{font-size:9px;color:var(--dim);line-height:1.8;margin-top:16px}.workspace{min-width:0;padding:0 35px 30px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:88px;border-bottom:1px solid var(--line);margin-bottom:25px}.topbar .eyebrow{font-size:9px;color:var(--dim);font-family:var(--num);letter-spacing:2px;margin:0 0 6px}.topbar h1{font-size:23px;margin:0;letter-spacing:1px}.topbar-right{display:flex;align-items:center;gap:14px}.updated{font-size:10px;color:var(--dim);text-align:right;line-height:1.7}.connection{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--mint)}.connection.is-stale{color:var(--amber)}.connection.is-error{color:var(--red)}.view-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.view-heading h2{font-size:15px;font-weight:600;margin:0}.view-heading p{font-size:11px;color:var(--muted);margin:7px 0 0;line-height:1.8}.refresh .icon{width:15px;height:15px}.page-note{font-size:11px;color:var(--muted);line-height:1.9;padding:13px 16px;border-left:2px solid #3d6c4c;background:#112018;margin:0 0 20px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:25px}.stat-card{min-width:0;background:var(--panel);border:1px solid var(--line);padding:18px 20px;position:relative;overflow:hidden}.stat-card .stat-label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:8px;margin-bottom:15px}.stat-card .stat-label .icon{height:16px;width:16px;color:var(--dim)}.stat-value{font-family:var(--num);font-size:33px;line-height:1.1;color:var(--text);letter-spacing:-1px;overflow-wrap:anywhere}.stat-value small{font-size:12px;color:var(--dim);margin-left:5px;letter-spacing:0;font-weight:400}.stat-card .stat-foot{font-size:10px;color:var(--dim);margin-top:11px;line-height:1.5}.stat-card.is-accent{background:#163022;border-color:#3e7052}.stat-card.is-accent .stat-value{color:var(--mint)}.stat-card .stat-decor{position:absolute;right:13px;top:13px;font-size:9px;color:#486d54;font-family:var(--num)}.overview-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);min-width:0}.panel-head{padding:17px 20px;display:flex;justify-content:space-between;gap:15px;align-items:center;border-bottom:1px solid var(--line)}.panel-head h2{font-size:13px;margin:0;font-weight:600}.panel-head .micro{font-size:8px;letter-spacing:1.2px}.panel-body{padding:20px}.hardware-pair{display:grid;grid-template-columns:1fr 1fr;gap:25px}.gauge-head{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:14px}.gauge-head strong{font-family:var(--num);color:var(--text);font-size:25px;letter-spacing:-1px;font-weight:400}.meter{height:5px;background:#20362a;overflow:hidden;border-radius:3px}.meter>span{height:100%;display:block;background:var(--mint);max-width:100%}.meter.is-high>span{background:var(--red)}.meter.is-warn>span{background:var(--amber)}.gauge-note{font-size:10px;color:var(--dim);line-height:1.8;margin-top:12px}.divider{height:1px;background:var(--line);margin:22px 0}.kv-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 25px}.kv label{display:block;font-size:10px;color:var(--dim);font-weight:400;margin-bottom:7px}.kv strong{font-family:var(--num);font-weight:400;font-size:17px;line-height:1.4}.disk-row+.disk-row{margin-top:23px}.disk-head{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;margin-bottom:11px}.disk-head b{font-weight:500}.disk-head small{font-size:9px;color:var(--dim);display:block;margin-top:4px}.disk-head strong{font-family:var(--num);font-weight:400}.disk-note{display:flex;justify-content:space-between;gap:15px;font-size:10px;color:var(--dim);margin-top:11px;line-height:1.8}.subgrid{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.subgrid .panel-body{padding:18px 20px}.status-list{display:flex;flex-direction:column;gap:15px}.status-item{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted)}.status-item strong{font-weight:400;color:var(--text)}.empty{padding:40px 20px;color:var(--dim);font-size:12px;text-align:center;line-height:1.9}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.search{display:flex;align-items:center;gap:9px;flex:1;max-width:520px}.search input{width:100%;font-size:12px;min-height:40px}.search .button{min-height:40px}.table-wrap{overflow:auto;max-width:100%;scrollbar-width:thin}.table{width:100%;border-collapse:collapse;text-align:left;font-size:11px;white-space:nowrap}.table th{padding:13px 17px;color:var(--dim);font-size:10px;font-weight:500;background:#102016;border-bottom:1px solid var(--line)}.table td{padding:17px;border-bottom:1px solid #213b2b;color:#bbcec1;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#15281c}.table .primary{display:block;font-size:12px;color:var(--text);line-height:1.6}.table .secondary{display:block;font-size:10px;color:var(--dim);margin-top:4px;max-width:230px;overflow:hidden;text-overflow:ellipsis;line-height:1.6}.table .actions{display:flex;gap:7px;align-items:center}.pager{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px 18px;border-top:1px solid var(--line);font-size:10px;color:var(--dim)}.pager-buttons{display:flex;gap:8px}.ip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.ip-card{border:1px solid var(--line);padding:19px;background:var(--panel);min-width:0}.ip-card.is-flagged{border-color:#655737}.ip-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.ip-address{font-family:var(--num);font-size:15px;line-height:1.7;overflow-wrap:anywhere}.ip-meta{font-size:10px;color:var(--dim);margin-top:7px}.ip-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:21px 0}.ip-counts span{font-size:10px;color:var(--dim);display:block;margin-bottom:6px}.ip-counts b{font-family:var(--num);font-weight:400;font-size:19px}.reasons{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 17px}.reason{font-size:10px;line-height:1.5;color:var(--amber);background:#2b281a;border:1px solid #5a5330;padding:4px 7px}.ip-note{border-left:2px solid #6b603d;padding:7px 10px;background:#242417;color:#d2cba7;font-size:11px;line-height:1.8;overflow-wrap:anywhere;margin:0 0 16px}.ip-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:var(--dim);margin-top:14px}.audit-target{max-width:250px;white-space:normal;overflow-wrap:anywhere;line-height:1.7}.audit-event{display:flex;gap:10px;align-items:center}.audit-event .icon{width:15px;height:15px;color:var(--dim)}.workspace-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);font-size:9px;color:var(--dim);margin-top:30px;padding:18px 0;line-height:1.8}.modal-backdrop{position:fixed;inset:0;z-index:40;background:#000b;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:22px;overflow:auto}.modal{width:100%;max-width:490px;border:1px solid #47614f;border-top:3px solid var(--mint);background:#101d16;box-shadow:0 20px 80px #0009;max-height:calc(100dvh - 44px);overflow:auto}.modal--danger{border-top-color:var(--red)}.modal-head{padding:25px 27px 0}.modal-head h2{font-size:21px;margin:11px 0 0;line-height:1.4}.modal-body{padding:23px 27px;display:flex;flex-direction:column;gap:19px}.modal-body>p{font-size:12px;color:var(--muted);line-height:1.9;margin:0}.confirm-target{padding:13px 15px;border:1px solid var(--line);background:#0b1710;font-size:13px;line-height:1.8;overflow-wrap:anywhere}.confirm-target small{display:block;font-size:10px;color:var(--dim);margin-bottom:4px}.modal-body .error-box{margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding:17px 27px;position:sticky;bottom:0;background:#101d16;z-index:1}.dialog-note{font-size:10px;color:var(--dim);line-height:1.7}.toast-root{position:fixed;right:25px;bottom:25px;z-index:100;display:flex;flex-direction:column;gap:10px;max-width:min(380px,calc(100vw - 40px))}.toast{background:#193625;border:1px solid #548064;padding:13px 17px;border-left:3px solid var(--mint);box-shadow:0 8px 35px #0007;color:#d6efde;font-size:12px;line-height:1.8;overflow-wrap:anywhere}.toast--error{background:#35231e;border-color:#89544a;border-left-color:var(--red);color:#ffd0c6}.loading{display:flex;justify-content:center;align-items:center;gap:12px;padding:55px 20px;color:var(--dim);font-size:12px}.loading .boot__mark{width:19px;height:19px}.mobile-session{display:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.error-retry{padding:30px;text-align:center}.error-retry p{color:var(--red);font-size:12px;line-height:1.9;margin:0 0 15px}.session-warning{padding:11px 15px;border:1px solid #665736;background:#292515;color:var(--amber);font-size:11px;line-height:1.8;margin-bottom:20px}
@media(min-width:1700px){.workspace{padding-inline:50px}.stat-card{padding:22px 24px}.stat-value{font-size:39px}.panel-head{padding:20px 24px}.panel-body{padding:24px}.overview-grid{gap:22px}.subgrid{gap:22px}.table td{padding-block:20px}.ip-card{padding:23px}}
@media(max-width:1150px){.shell{grid-template-columns:185px minmax(0,1fr)}.sidebar{padding-inline:12px}.workspace{padding-inline:24px}.sidebar .brand{gap:9px}.sidebar .brand strong{font-size:13px}.sidebar .brand small{font-size:7px}.stat-grid{gap:10px}.stat-card{padding:15px 14px}.stat-value{font-size:27px}.stat-card .stat-label{font-size:10px}.overview-grid{grid-template-columns:1fr}.subgrid{grid-template-columns:1fr 1fr}.ip-grid{grid-template-columns:1fr}.login-shell{padding:50px 6%;gap:50px}.login-intro h1{font-size:36px}.topbar-right{gap:10px}}
@media(max-width:750px){.shell{display:block}.sidebar{height:auto;position:static;border-right:0;border-bottom:1px solid var(--line);padding:18px 17px 0}.sidebar .brand{padding:0 0 17px}.sidebar .brand strong{font-size:15px}.sidebar .brand small{font-size:8px}.sidebar .brand-mark{width:21px;height:24px}.nav{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0 -8px}.nav button{justify-content:center;gap:7px;font-size:11px;padding:12px 5px;border-width:0 0 2px;min-height:44px}.nav button .icon{width:15px;height:15px}.nav button[aria-current=page]{background:transparent;border-color:var(--mint)}.sidebar-foot{display:none}.workspace{padding:0 17px 15px}.topbar{min-height:83px;margin-bottom:20px;gap:12px}.topbar h1{font-size:20px}.topbar .eyebrow{font-size:8px;letter-spacing:1.5px}.topbar-right{display:block}.updated{font-size:9px;margin-top:6px}.connection{font-size:10px;justify-content:flex-end}.topbar-right>.button{display:none}.stat-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}.stat-card{padding:17px 15px}.stat-value{font-size:30px}.stat-card .stat-label{font-size:10px;margin-bottom:13px}.stat-card .stat-foot{font-size:9px}.panel-body{padding:17px}.panel-head{padding:15px 17px}.hardware-pair{gap:20px}.gauge-head{font-size:10px}.gauge-head strong{font-size:24px}.kv-grid{gap:17px}.kv strong{font-size:15px}.subgrid{grid-template-columns:1fr;gap:15px;margin-top:15px}.view-heading{align-items:flex-start}.view-heading h2{font-size:14px}.view-heading p{font-size:10px}.view-heading .button{font-size:10px;padding:8px 10px;min-height:33px}.toolbar{flex-wrap:wrap}.search{max-width:none;flex:1 1 100%}.page-note{font-size:10px;padding:12px 13px}.table th{padding:12px 14px}.table td{padding:15px 14px}.table .primary{font-size:11px}.table .secondary{font-size:9px;max-width:190px}.pager{font-size:9px;padding:13px 14px}.ip-card{padding:17px}.workspace-footer{margin-top:22px;font-size:8px;gap:10px}.mobile-session{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:9px;color:var(--dim);border-bottom:1px solid var(--line);padding:11px 0;margin-bottom:17px}.mobile-session span{overflow:hidden;text-overflow:ellipsis}.mobile-session .button{font-size:9px;padding:5px 8px;min-height:28px}.login-shell{grid-template-columns:1fr;max-width:500px;gap:25px;padding:35px 22px 30px;align-content:center}.login-intro .brand strong{font-size:17px}.login-intro h1{font-size:27px;line-height:1.45;margin:25px 0 10px;letter-spacing:-.5px}.login-intro h1 br{display:none}.login-intro>p{font-size:11px;line-height:1.9;max-width:none}.login-rules{display:none}.login-card{padding:27px 24px 22px}.login-card h2{font-size:22px}.login-card .lead{font-size:11px}.login-form{gap:18px}.modal-backdrop{padding:14px}.modal{max-height:calc(100dvh - 28px)}.modal-head{padding:22px 22px 0}.modal-head h2{font-size:20px}.modal-body{padding:21px 22px}.modal-actions{padding:15px 22px}.modal-actions .button{flex:1}.toast-root{right:18px;bottom:18px}.topbar .micro{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
progress.meter{display:block;width:100%;border:0;appearance:none;-webkit-appearance:none}progress.meter::-webkit-progress-bar{background:#20362a;border-radius:3px}progress.meter::-webkit-progress-value{background:var(--mint);border-radius:3px}progress.meter.is-high::-webkit-progress-value{background:var(--red)}progress.meter.is-warn::-webkit-progress-value{background:var(--amber)}progress.meter::-moz-progress-bar{background:var(--mint);border-radius:3px}.live-rooms{margin-top:18px}