:root{--bg:#07111d;--surface:#0c1928;--surface2:#102238;--line:#1e3550;--text:#eef7ff;--muted:#8ea8bd;--brand:#45b8f2;--brand2:#2669c9;--good:#48d597;--danger:#ff6472;--warning:#ffbf5d;--shadow:0 18px 60px rgba(0,0,0,.28)}*{box-sizing:border-box}html,body{margin:0;background:radial-gradient(circle at 78% 0,#0d2d4d 0,transparent 27%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:270px 1fr}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);padding:24px 18px;display:flex;flex-direction:column;background:rgba(5,14,24,.82);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:12px;margin:0 4px 28px}.brand img{width:112px;height:44px;object-fit:contain;object-position:left}.brand span{font-weight:800;letter-spacing:.2px}.brand small{display:block;color:var(--muted);font-weight:500;font-size:11px;margin-top:2px}.sidebar nav{display:grid;gap:7px}.sidebar nav a{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:12px;color:#9fb7c9;border:1px solid transparent}.sidebar nav a:hover,.sidebar nav a.active{color:#fff;background:linear-gradient(135deg,rgba(69,184,242,.14),rgba(38,105,201,.08));border-color:#1f4765}.sidebar-foot{margin-top:auto;display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:16px}.sidebar-foot small{display:block;color:var(--muted);text-transform:capitalize}.avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),var(--brand2));font-weight:900}.main{padding:28px 32px 36px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px}.topbar h1{margin:4px 0 0;font-size:28px}.eyebrow{font-size:11px;font-weight:900;letter-spacing:1.6px;color:var(--brand)}.top-actions{display:flex;gap:8px;align-items:center}.status-dot{width:9px;height:9px;background:var(--good);border-radius:50%;box-shadow:0 0 0 5px rgba(72,213,151,.12)}.muted{color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.stat,.panel{background:linear-gradient(180deg,rgba(16,34,56,.93),rgba(9,24,39,.93));border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.stat{padding:20px}.stat span{color:var(--muted);font-weight:650}.stat strong{display:block;font-size:34px;margin:8px 0 3px}.stat small{color:#7c9ab0}.smallstrong{font-size:20px!important;margin-top:13px!important}.grid-2{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.8fr);gap:16px;margin-bottom:16px}.panel{padding:20px;margin-bottom:16px}.panel.accent{background:linear-gradient(145deg,rgba(17,55,87,.95),rgba(9,28,45,.95))}.panel h2{font-size:18px;margin:0 0 7px}.panel p{color:var(--muted);line-height:1.55;margin:0 0 18px}.panel-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}.panel-head p{margin:4px 0 0}.table-wrap{width:100%;overflow:auto;border-radius:12px;border:1px solid rgba(66,103,132,.3)}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid rgba(66,103,132,.25);vertical-align:middle}th{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:#8ca8bc;background:rgba(7,17,29,.5)}td{color:#d9e7f3}tr:last-child td{border-bottom:0}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.link{color:#6ecbff;font-weight:700}.pill{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:850;text-transform:uppercase;background:#1b2e43;color:#9db3c4}.pill.online{background:rgba(72,213,151,.12);color:#70e7b0}.pill.reconfiguring{background:rgba(255,191,93,.12);color:#ffd077}.pill.unknown{background:rgba(142,168,189,.1)}.btn{border:1px solid #2a4b66;background:#10263b;color:#dcedf8;border-radius:11px;padding:10px 14px;font-weight:800;cursor:pointer;transition:.18s}.btn:hover{transform:translateY(-1px);border-color:#3f7095}.btn.primary{background:linear-gradient(135deg,var(--brand),var(--brand2));border:0;color:white}.btn.ghost{background:transparent}.btn.danger{color:#ff9fa8;border-color:#71313b;background:rgba(255,100,114,.08)}.btn.tiny{font-size:12px;padding:7px 9px;margin-right:4px}.actions{white-space:nowrap}.feature-list{display:grid;gap:11px;color:#c9deeb}.feature-list span{padding:10px 12px;border-radius:10px;background:rgba(7,17,29,.35);border:1px solid rgba(54,87,113,.35)}.form-grid{display:grid;grid-template-columns:1.15fr .8fr .8fr auto;gap:12px;align-items:end}.form-grid.compact{grid-template-columns:1fr 1fr 1fr auto}.stack{display:grid;gap:13px}label{display:grid;gap:6px;color:#bcd0de;font-weight:700}input,select,textarea{width:100%;border:1px solid #29445c;background:#071522;color:#edf8ff;padding:11px 12px;border-radius:10px;outline:none}input:focus,select:focus,textarea:focus{border-color:#4e9ac8;box-shadow:0 0 0 3px rgba(69,184,242,.1)}input[type=checkbox]{width:auto;accent-color:#3a9fe0}.checkline{display:flex;align-items:center;gap:9px}.form-action{display:flex}.alert{padding:12px 14px;border:1px solid #34506a;border-radius:11px;background:#0a2032}.alert.danger{border-color:#773943;background:rgba(255,100,114,.08);color:#ffc2c8}.progress{margin:18px 0;padding:14px;border:1px solid #29485f;border-radius:12px;display:grid;grid-template-columns:18px 1fr;gap:4px 10px;align-items:center}.progress span{width:18px;height:18px;border-radius:50%;border:2px solid #244b67;border-top-color:var(--brand);animation:spin .8s linear infinite}.progress small{grid-column:2;color:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}.hidden{display:none!important}.empty{text-align:center;color:var(--muted);padding:28px}.warn{color:var(--warning)}.sequence{display:grid;gap:8px;margin:14px 0}.seq-row{display:grid;grid-template-columns:38px 140px 1fr;gap:10px;align-items:center;border:1px solid rgba(54,87,113,.4);padding:9px;border-radius:10px}.seq-row span{color:var(--muted)}.narrow{max-width:780px}.toast{position:fixed;right:22px;bottom:22px;max-width:380px;padding:12px 14px;background:#10283e;border:1px solid #315776;border-radius:12px;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;z-index:50}.toast.show{opacity:1;transform:translateY(0)}.toast.error{border-color:#7b3942;color:#ffd0d4}footer{color:#6f8ba1;font-size:12px;text-align:center;padding:12px 0}footer span{margin:0 7px}.auth-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 5%,#133c63 0,transparent 30%),#06101a}.auth-card{width:min(460px,100%);padding:30px;border:1px solid #25425b;border-radius:22px;background:rgba(10,25,40,.94);box-shadow:0 30px 100px rgba(0,0,0,.45)}.auth-card h1{font-size:28px;margin:7px 0}.auth-logo{width:250px;max-width:75%;height:70px;object-fit:contain;object-position:left;margin-bottom:18px}@media(max-width:1100px){.app-shell{grid-template-columns:82px 1fr}.sidebar{padding:20px 12px}.brand span,.sidebar nav span,.sidebar-foot>div:nth-child(2),.sidebar-foot>a{display:none}.brand img{width:54px}.brand{justify-content:center}.sidebar nav a{justify-content:center;font-size:18px}.sidebar-foot{grid-template-columns:1fr;justify-items:center}.stats{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}}@media(max-width:720px){.app-shell{display:block}.sidebar{position:static;width:100%;height:auto;flex-direction:row;align-items:center;gap:10px;padding:10px;overflow:auto}.brand{margin:0}.brand img{width:58px}.sidebar nav{display:flex}.sidebar nav a{white-space:nowrap;padding:9px 10px}.sidebar-foot{display:none}.main{padding:18px 12px}.topbar{align-items:flex-start}.top-actions{display:none}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:15px}.stat strong{font-size:27px}.form-grid,.form-grid.compact{grid-template-columns:1fr}.grid-2{display:block}.panel{padding:15px}.seq-row{grid-template-columns:30px 110px 1fr}}

.status-dot.offline{background:var(--danger);box-shadow:0 0 0 5px rgba(255,100,114,.12)}
