@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#172137;--muted:#758096;--line:#e7eaf0;--navy:#172c52;--blue:#2769ef;--pale:#f6f8fc;--green:#19b483;--amber:#f5a524;--red:#e55050}*{box-sizing:border-box}body{margin:0;background:var(--pale);color:var(--ink);font:13px Manrope,system-ui,sans-serif}.app-shell{min-height:100vh;display:flex}aside{width:234px;display:flex;flex-direction:column;background:var(--navy);color:#d8e3fa;padding:25px 16px 20px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.2px;padding:0 10px 34px;font-size:15px}.brand>span:last-child span{color:#85a8ed;font-weight:500}.brand-mark{display:grid;place-items:center;width:26px;height:26px;color:#fff;border:2px solid #4e8dff;border-radius:8px;font-size:15px}nav{display:grid;gap:5px}nav a{display:flex;gap:13px;align-items:center;color:#aebddb;text-decoration:none;padding:11px 12px;border-radius:7px;font-weight:600;font-size:13px}nav a.active,nav a:hover{background:#27426d;color:#fff}.sidebar-foot{margin-top:auto}.controller{display:flex;gap:10px;align-items:center;border-top:1px solid #334b70;padding:20px 10px 15px}.controller i,.live i{width:8px;height:8px;border-radius:50%;background:#42daa0;box-shadow:0 0 0 3px #42daa022}.controller small{display:block;color:#8da2c5;font-size:9px;letter-spacing:1px}.controller strong{display:block;color:#fff;font-size:11px;margin-top:2px}.ghost{background:none;border:0;color:#b5c4df;padding:8px 10px;font:600 12px Manrope;cursor:pointer}main{padding:42px 54px;flex:1;max-width:1600px;margin:auto}header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.eyebrow{color:#77839a;letter-spacing:1.3px;font-size:10px;font-weight:800;margin:0 0 7px}h1{font-size:25px;letter-spacing:-.8px;margin:0 0 5px}h2{font-size:17px;letter-spacing:-.4px;margin:0}.subhead{color:var(--muted);margin:0}.header-actions{display:flex;align-items:center;gap:15px}.live{font:700 10px 'DM Mono';letter-spacing:1px;color:#258b6b;display:flex;align-items:center;gap:7px;background:#e8f8f2;padding:7px 10px;border-radius:5px}.live i{width:6px;height:6px}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:6px;width:32px;height:32px;color:#637087;font-size:17px;cursor:pointer}.avatar{display:grid;place-items:center;background:#dce9ff;color:#2769ef;font-size:10px;font-weight:800;border-radius:50%;width:32px;height:32px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:19px}.metrics article,.card{background:#fff;border:1px solid var(--line);border-radius:9px}.metrics article{padding:19px 20px 15px;min-height:144px}.metrics article>span{color:#77839a;font-weight:800;font-size:10px;letter-spacing:.9px}.metrics strong{display:block;font-size:27px;letter-spacing:-1px;margin:8px 0 4px}.metrics em{font-style:normal;font-size:14px;color:#8b94a5;font-weight:500}.metrics small{color:#8a94a5;font-size:10px}.metrics b{color:var(--green)}.amber{color:#e9930c!important}.healthbar{height:5px;border-radius:4px;background:#e7f5f0;margin-top:18px;overflow:hidden}.healthbar i{display:block;width:98%;height:100%;background:var(--green)}.mini-dots{display:flex;gap:5px;margin-top:17px}.mini-dots i{width:13px;height:5px;background:#4fc49e;border-radius:3px}.mini-dots i:nth-last-child(-n+2){background:#e4e8ef}.alert-bars{display:flex;gap:5px;margin-top:17px}.alert-bars i{height:5px;width:36px;border-radius:3px;background:#f3c469}.alert-bars i:nth-child(2){background:#f6d7a0}.alert-bars i:nth-child(3){background:#e9edf3}.content-grid{display:grid;grid-template-columns:minmax(560px,1.6fr) minmax(330px,.9fr);gap:19px}.card-head{display:flex;align-items:center;justify-content:space-between;padding:21px 21px 16px}.filters,.log-filter{display:flex;gap:4px}.filters button,.log-filter button{border:0;background:transparent;border-radius:4px;padding:6px 8px;color:#768298;font:600 10px Manrope;cursor:pointer}.filters button.selected,.log-filter button.selected{background:#e9f0ff;color:#2666d8}.port-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 21px;color:#778298;font-size:10px;display:flex;gap:14px;align-items:center}.port-summary b{color:#26334b}.port-summary small{margin-left:auto;color:#a2aab8}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.connected{background:var(--green)}.inactive{background:#bfc7d3}.warning{background:var(--amber)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;color:#8b96a8;font-size:9px;letter-spacing:.7px;padding:13px 20px 8px}td{padding:11px 20px;border-top:1px solid #f0f2f6;font-size:11px;color:#556176}td:first-child{font-weight:800;color:#26334d}.device{color:#273652;font-weight:700}.status{font-size:10px;font-weight:700}.status .dot{margin-bottom:1px}.status.down{color:#8791a1}.poe{color:#258e6c}.poe.off{color:#98a1af}.ellipsis{color:#91a0b6;font-size:17px}.view-all{display:block;background:none;border:0;color:#2969df;font:700 11px Manrope;cursor:pointer;padding:15px 20px}.view-all span{font-size:15px;margin-left:4px}.log-card{min-width:0}.log-filter{border-top:1px solid var(--line);padding:10px 16px}.logs{height:354px;overflow:auto;padding:2px 16px}.log{display:grid;grid-template-columns:61px 58px 1fr;gap:8px;padding:10px 0;border-bottom:1px solid #f0f2f6;font:10px/1.45 'DM Mono',monospace}.log time{color:#98a2b1}.tag{font-size:8px;font-weight:700;align-self:start;padding:2px 4px;border-radius:3px;text-align:center}.tag.info{background:#e8f0ff;color:#3672d8}.tag.warning{background:#fff2d6;color:#bd7905}.tag.error{background:#ffe6e6;color:#ca4646}.tag.debug{background:#eef0f4;color:#7e8899}.log p{margin:0;color:#58657a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-foot{display:flex;justify-content:space-between;align-items:center;padding:13px 17px;border-top:1px solid var(--line);font:600 10px Manrope;color:#5d6c80}.log-foot button{border:0;background:none;color:#2769ef;font:700 10px Manrope;cursor:pointer}@media(max-width:980px){aside{width:62px;padding:25px 9px}.brand{padding:0 8px 34px}.brand>span:last-child,nav span,.sidebar-foot>button,.controller div{display:none}nav a{font-size:17px;padding:11px}.controller{padding:15px 12px}.content-grid{grid-template-columns:1fr}main{padding:32px}}@media(max-width:680px){main{padding:24px 16px}header{margin-bottom:22px}.metrics{grid-template-columns:1fr}.header-actions .live{display:none}h1{font-size:21px}.content-grid{display:block}.log-card{margin-top:18px}.filters{display:none}.port-summary span:nth-child(3){display:none}}
