@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--bg:#0c1215;--panel:#101a1f;--panel2:#152229;--raised:#1a2a32;--line:#233038;--line2:#2f434d;--tx:#e8eff2;--tx2:#9db0bb;--tx3:#6e848f;--accent:#2ec5c8;--accent-d:#1d9ea1;--on-accent:#04191a;--online:#42d17d;--offline:#f2604a;--queued:#eab543;--sent:#4ea1f0;--delivered:#42d17d;--error:#f2604a;--warn:#eab543;--r:7px;--sans:"IBM Plex Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--sidebar:236px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--sans);background:var(--bg);color:var(--tx);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0;font-weight:600}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}::selection{background:#2ec5c84d}.shell{grid-template-columns:var(--sidebar) 1fr;min-height:100vh;display:grid}.sidebar{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.sb-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:16px 18px;display:flex}.logo{flex-shrink:0;width:auto;height:26px;display:block}.brand{font-size:15px;font-weight:600}.brand small{font-family:var(--mono);color:var(--tx3);font-size:10px;font-weight:400;display:block}.nav{flex-direction:column;flex:1;gap:2px;padding:10px 12px;display:flex;overflow-y:auto}.nav-link{color:var(--tx2);cursor:pointer;font-size:13.5px;font-family:var(--sans);text-align:left;background:0 0;border:none;border-left:2px solid #0000;border-radius:6px;align-items:center;gap:11px;width:100%;padding:9px 12px;transition:background .12s,color .12s;display:flex}.nav-link:hover{color:var(--tx);background:#2ec5c812}.nav-link.active{color:var(--tx);border-left-color:var(--accent);background:#2ec5c81a}.nav-link .ic{flex:none;place-items:center;width:18px;height:18px;display:grid}.sb-foot{border-top:1px solid var(--line);padding:12px}.usercard{background:var(--panel2);border-radius:var(--r);align-items:center;gap:10px;padding:10px;display:flex}.avatar{background:var(--raised);width:30px;height:30px;color:var(--tx2);border-radius:50%;flex:none;place-items:center;font-size:13px;display:grid}.usercard .nm{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.usercard .role{color:var(--tx3);font-size:11px}.logout{border:1px solid var(--line);width:100%;color:var(--tx2);border-radius:var(--r);cursor:pointer;font-family:var(--sans);background:0 0;margin-top:8px;padding:8px;font-size:12.5px}.logout:hover{border-color:var(--line2);color:var(--tx)}.main{flex-direction:column;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:20;background:#101a1fb3;align-items:center;gap:18px;padding:11px 22px;display:flex;position:sticky;top:0}.topbar .title{font-size:16px;font-weight:600}.spacer{flex:1}.status-pill{background:var(--panel2);border:1px solid var(--line);border-radius:8px;align-items:center;gap:10px;padding:6px 12px;display:flex}.sdot{border-radius:50%;width:9px;height:9px;position:relative}.sdot.on{background:var(--online);box-shadow:0 0 8px var(--online)}.sdot.off{background:var(--offline)}.sdot.on:after{content:"";background:var(--online);border-radius:50%;animation:2.4s ease-out infinite ring;position:absolute;inset:0}.status-word{font-family:var(--mono);font-size:12px;font-weight:500}.status-word.on{color:var(--online)}.status-word.off{color:var(--offline)}.clock{font-family:var(--mono);color:var(--tx2);font-size:12.5px}.content{flex:1;padding:22px;overflow:auto}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.card.grad{background:linear-gradient(180deg, var(--panel2), var(--panel))}.card-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.card-head .h{font-size:14px;font-weight:600}.card-body{padding:20px}.grid{gap:16px;display:grid}.g-2{grid-template-columns:1.6fr 1fr}.g-2e{grid-template-columns:1fr 1fr}.g-4{grid-template-columns:repeat(4,1fr)}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.lbl{color:var(--tx2);margin-bottom:6px;font-size:12px;display:block}.muted{color:var(--tx3)}.mut2{color:var(--tx2)}.tiles{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.tile{background:var(--panel2);border:1px solid var(--line);border-radius:var(--r);padding:14px}.tile .v{font-size:22px;font-weight:600;font-family:var(--mono)}.tile .k{color:var(--tx2);align-items:center;gap:6px;margin-top:3px;font-size:12px;display:flex}.big-num{font-size:30px;font-weight:600;font-family:var(--mono);color:var(--accent)}.prog{background:var(--panel2);border:1px solid var(--line);border-radius:6px;height:9px;margin-top:8px;overflow:hidden}.prog>span{background:linear-gradient(90deg, var(--accent), var(--accent-d));height:100%;transition:width .5s cubic-bezier(.4,0,.2,1);display:block}.prog.warn>span{background:linear-gradient(90deg, var(--warn), #c9932f)}.prog.bad>span{background:linear-gradient(90deg, var(--offline), #c94a38)}.prog-head{color:var(--tx2);justify-content:space-between;font-size:12.5px;display:flex}.chip{white-space:nowrap;align-items:center;gap:6px;font-size:12.5px;font-weight:500;display:inline-flex}.chip .gl{align-items:center;display:inline-flex}.tw{overflow-x:auto}.tbl{border-collapse:collapse;width:100%;min-width:720px;font-size:13px}.tbl th{text-align:left;color:var(--tx2);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 18px;font-size:12px;font-weight:500}.tbl td{border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 18px}.tbl tbody tr:hover{background:#2ec5c808}.tbl .ell{text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}.flash{animation:1.2s ease-out rowflash}.btn{font-family:var(--sans);cursor:pointer;border-radius:var(--r);border:1px solid #0000;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:600;transition:all .12s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-accent{background:var(--accent);color:var(--on-accent)}.btn-accent:hover:not(:disabled){background:#35d3d6}.btn-out{background:var(--panel2);border-color:var(--line);color:var(--tx2);padding:7px 11px;font-size:12px;font-weight:500}.btn-out:hover:not(:disabled){border-color:var(--line2);color:var(--tx)}.btn-danger{color:var(--offline);background:0 0;border-color:#f2604a66;padding:6px 11px;font-size:12px;font-weight:500}.btn-danger:hover:not(:disabled){background:#f2604a1a}.btn-block{justify-content:center;width:100%;padding:12px}.input,.select,.ta{background:var(--panel2);border:1px solid var(--line);border-radius:var(--r);width:100%;color:var(--tx);font-size:14px;font-family:var(--sans);outline:none;padding:11px 12px}.ta{resize:vertical;min-height:90px;line-height:1.5}.input:focus,.select:focus,.ta:focus{border-color:var(--accent)}.input::placeholder,.ta::placeholder{color:var(--tx3)}.field+.field{margin-top:14px}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{background:var(--panel2);color:var(--tx);border:1px solid var(--line);border-radius:var(--r);font-family:var(--sans);outline:none;font-size:14px}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--tx3)}select option,select optgroup{background:var(--panel2);color:var(--tx)}input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert()brightness(.85);cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator{filter:invert()brightness(.85);cursor:pointer}input[type=time]::-webkit-calendar-picker-indicator{filter:invert()brightness(.85);cursor:pointer}input[type=number]::-webkit-inner-spin-button{filter:invert()brightness(.85)}input[type=number]::-webkit-outer-spin-button{filter:invert()brightness(.85)}input:-webkit-autofill{-webkit-text-fill-color:var(--tx);-webkit-box-shadow:0 0 0 1000px var(--panel2) inset;caret-color:var(--tx);transition:background-color 9999s ease-in-out}input:-webkit-autofill:hover{-webkit-text-fill-color:var(--tx);-webkit-box-shadow:0 0 0 1000px var(--panel2) inset;caret-color:var(--tx);transition:background-color 9999s ease-in-out}input:-webkit-autofill:focus{-webkit-text-fill-color:var(--tx);-webkit-box-shadow:0 0 0 1000px var(--panel2) inset;caret-color:var(--tx);transition:background-color 9999s ease-in-out}input[type=checkbox],input[type=radio]{accent-color:var(--accent);cursor:pointer;vertical-align:middle;width:15px;height:15px}input[type=file]::file-selector-button{background:var(--raised);color:var(--tx);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;font-family:var(--sans);margin-right:10px;padding:7px 12px}.segs{background:var(--panel2);border:1px solid var(--line);border-radius:8px;gap:2px;padding:3px;display:inline-flex}.seg{color:var(--tx2);cursor:pointer;font-size:12.5px;font-family:var(--sans);background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.seg.active{background:var(--accent);color:var(--on-accent);font-weight:600}.seg .cnt{opacity:.6;font-size:11px}.seg.active .cnt{opacity:.8}.banner{border-radius:var(--r);background:var(--panel2);border:1px solid var(--line);align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:13px;display:flex}.banner.red{color:var(--offline);border-color:#f2604a66}.banner.amber{color:var(--warn);border-color:#eab54366}.banner.info{color:var(--accent);border-color:#2ec5c859}.banner svg{flex:none}.bubble{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:14px}.bubble .from{color:var(--tx3);font-size:12px;font-family:var(--mono);margin-bottom:6px}.bubble .body{white-space:pre-wrap;word-break:break-word}.bubble .meta{color:var(--tx3);font-size:12px;font-family:var(--mono);margin-top:10px}.toasts{z-index:100;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.toast{background:var(--panel2);border:1px solid var(--line2);border-left:3px solid var(--accent);border-radius:var(--r);align-items:center;gap:12px;min-width:280px;max-width:380px;padding:12px 14px;animation:.25s ease-out toastin;display:flex;box-shadow:0 12px 30px #0006}.toast.ok{border-left-color:var(--online)}.toast.err{border-left-color:var(--offline)}.toast .x{color:var(--tx3);cursor:pointer;background:0 0;border:none;align-items:center;margin-left:auto;padding:2px;display:inline-flex}.spin{border:3px solid var(--panel2);border-top-color:var(--accent);border-radius:50%;width:30px;height:30px;margin:30px auto;animation:.8s linear infinite rot}.skel{background:linear-gradient(90deg, var(--panel2), var(--raised), var(--panel2));border-radius:var(--r);background-size:200% 100%;animation:1.3s infinite shimmer}.empty{text-align:center;color:var(--tx3);padding:40px 20px}.errbox{text-align:center;color:var(--tx3);padding:30px}.auth{--auth-panel-1:#0f4a4d;--auth-panel-2:#062326;--auth-on-panel-2:#e8eff2c7;background:var(--bg);min-height:100dvh;color:var(--tx);grid-template-columns:1fr 1fr;display:grid;position:relative}.auth-panel{z-index:1;pointer-events:none;clip-path:polygon(38% 0,100% 0,100% 100%,62% 100%);background:url(/login-poly.svg) center / cover no-repeat, linear-gradient(155deg, var(--auth-panel-1), var(--auth-panel-2));position:absolute;inset:0}.auth-panel:after{content:"";background:linear-gradient(200deg,#ffffff12 0%,#0000 45%),radial-gradient(52% 52% at 100% 100%,#2ec5c838 0%,#0000 70%);position:absolute;inset:0}.auth-left{z-index:2;flex-direction:column;justify-content:center;align-items:center;padding:96px 5vw;display:flex;position:relative}.auth-col{width:100%;max-width:380px}.auth-brand{align-items:center;gap:14px;display:flex;position:absolute;top:40px;left:5vw}.auth-brand img{width:auto;height:56px;display:block}.auth-brand .name{letter-spacing:-.3px;font-size:21px;font-weight:600;line-height:1.15}.auth-sub{font-family:var(--mono);letter-spacing:.4px;color:var(--tx3);margin-top:2px;font-size:11.5px}.auth-title{letter-spacing:-.5px;margin:0 0 6px;font-size:30px;font-weight:600}.auth-lead{color:var(--tx2);margin:0 0 26px;font-size:13.5px}.auth-strip{color:var(--online);align-items:center;gap:8px;margin-bottom:18px;font-size:12.5px;display:flex}.auth-err{color:var(--offline);background:#f2604a1a;border:1px solid #f2604a4d;border-radius:10px;margin-top:14px;padding:10px 12px;font-size:13px}.auth-foot{font-family:var(--mono);color:var(--tx3);align-items:center;gap:8px;font-size:11px;display:flex;position:absolute;bottom:34px;left:5vw}.auth-foot .dot{background:var(--line2);border-radius:50%;width:4px;height:4px}.auth .input{border-radius:10px;padding:12px 14px;font-size:14px}.auth .input:focus{box-shadow:0 0 0 3px #2ec5c81f}.auth .btn-block{border-radius:10px;padding:13px;font-size:14.5px}.auth-right{z-index:2;text-align:right;color:#fff;flex-direction:column;justify-content:center;align-items:flex-end;padding:96px 6vw;display:flex;position:relative}.auth-right h2{letter-spacing:-1.6px;text-shadow:0 2px 26px #00000059;margin:0 0 22px;font-size:clamp(40px,5vw,68px);font-weight:600;line-height:1.05}.auth-right p{max-width:440px;color:var(--auth-on-panel-2);margin:0;font-size:clamp(14px,1.1vw,17px);line-height:1.6}.auth-pill{font-family:var(--mono);letter-spacing:1.2px;text-transform:uppercase;color:#fff;background:#ffffff1f;border:1px solid #fff3;border-radius:10px;align-items:center;gap:8px;margin-bottom:24px;padding:8px 16px;font-size:11.5px;font-weight:600;display:inline-flex}@media (width<=900px){.auth{grid-template-rows:auto 1fr;grid-template-columns:1fr}.auth-panel{clip-path:polygon(0 0,100% 0,100% 74%,0 100%)}.auth-right{text-align:left;order:-1;justify-content:flex-end;align-items:flex-start;min-height:40vh;padding:84px 24px 56px}.auth-right h2{font-size:clamp(30px,8vw,42px)}.auth-left{justify-content:flex-start;padding:36px 24px 80px}.auth-col{max-width:none}.auth-brand{top:26px;left:24px}.auth-foot{bottom:24px;left:24px}}.bars{align-items:flex-end;gap:10px;height:160px;padding-top:10px;display:flex}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.bar-col .val{color:var(--tx2);font-size:11px;font-family:var(--mono)}.bar-col .bar{background:linear-gradient(180deg, var(--accent), var(--accent-d));border-radius:4px 4px 0 0;width:100%;max-width:34px}.bar-col .day{color:var(--tx3);font-size:11px}.dist{flex-direction:column;gap:10px;display:flex}.dist-row .top{justify-content:space-between;margin-bottom:4px;font-size:12.5px;display:flex}.dist-row .track{background:var(--panel2);border-radius:5px;height:8px;overflow:hidden}.dist-row .fill{border-radius:5px;height:100%}@keyframes ring{0%{opacity:.55;transform:scale(1)}70%{opacity:0;transform:scale(2.6)}to{opacity:0}}@keyframes rowflash{0%{background:#2ec5c833}to{background:0 0}}@keyframes toastin{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes rot{to{transform:rotate(360deg)}}@keyframes ecgmove{0%{offset-distance:0%}to{offset-distance:100%}}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width<=900px){.shell{grid-template-columns:1fr}.sidebar{flex-flow:wrap;align-items:center;height:auto;position:static}.nav{flex-flow:row;overflow-x:auto}.nav-link{white-space:nowrap}.sb-foot{display:none}.g-2,.g-2e,.g-4,.tiles{grid-template-columns:1fr}.content{padding:16px}}
