:root{--shape-xs:4px;--shape-sm:8px;--shape-md:12px;--shape-lg:16px;--shape-xl:28px;--shape-2xl:36px;--shape-full:999px;--shape-hero:20px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-8:48px;--content-max:1520px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--display-l:800 40px/44px var(--font);--display-s:700 36px/44px var(--font);--headline-s:600 24px/32px var(--font);--title-l:700 20px/28px var(--font);--title-m:700 16px/24px var(--font);--body-l:400 16px/24px var(--font);--body-m:400 14px/20px var(--font);--label-l:600 14px/20px var(--font);--label-m:600 12px/16px var(--font);--label-s:600 11px/16px var(--font);--ease-emph:cubic-bezier(.2, 0, 0, 1);--ease-emph-decel:cubic-bezier(.05, .7, .1, 1);--dur-short:.2s;--dur-med:.3s;--dur-long:.5s;--elev-1:0 1px 2px #1018300d;--elev-2:0 2px 8px #10183012;--elev-3:0 6px 22px #1018301a;--border:1px solid var(--md-outlineVariant);--state-hover:color-mix(in srgb, var(--md-onSurface) 6%, transparent);--state-press:color-mix(in srgb, var(--md-onSurface) 12%, transparent);--u-ok:#2e6b4f;--u-okC:#b7f2ce;--u-onOkC:#00210f;--u-warn:#7a5900;--u-warnC:#ffdea1;--u-error:var(--md-error);--u-unknown:var(--md-outline);--depth-0:var(--md-surface);--depth-1:color-mix(in srgb, var(--md-surfaceVariant) 45%, var(--md-surface));--depth-2:color-mix(in srgb, var(--md-surfaceVariant) 70%, var(--md-surface));--depth-3:var(--md-surfaceVariant);--surface-lowest:#fff;--z-sticky:100;--z-dropdown:200;--z-modal-backdrop:300;--z-modal:400;--z-toast:500}@media (prefers-color-scheme:dark){:root{--u-ok:#6fd8a3;--u-okC:#00513049;--u-onOkC:#92f5c0;--u-warn:#f5c518;--u-warnC:#5a420049;--surface-lowest:var(--md-surfaceContainerHigh,#2a2a30)}}*{box-sizing:border-box}body{font:var(--body-l);background:var(--md-surfaceContainer,#ededf4);color:var(--md-onSurface);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--md-primary)}svg{vertical-align:middle;flex-shrink:0;display:inline-block}.shell{min-height:100dvh;display:flex}.rail{background:var(--md-surface);width:96px;padding:var(--sp-4) 0;align-items:center;gap:var(--sp-2);border-right:var(--border);flex-direction:column;flex-shrink:0;height:100dvh;display:flex;position:sticky;top:0;overflow-y:auto}.brand{background:var(--md-primary);width:46px;height:46px;color:var(--md-onPrimary,#fff);margin-bottom:var(--sp-5);border-radius:14px;place-items:center;display:grid}.ritem{color:var(--md-onSurfaceVariant);cursor:pointer;padding:var(--sp-1) 0;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;flex-direction:column;align-items:center;gap:5px;width:100%;display:flex}.ritem .ic{border-radius:var(--shape-full);width:60px;height:32px;transition:background var(--dur-med) var(--ease-emph);justify-content:center;align-items:center;display:flex}@media (hover:none){.ritem{min-height:48px}}.ritem:hover .ic{background:var(--state-hover)}.ritem.on .ic{background:var(--md-secondaryContainer);color:var(--md-onSecondaryContainer)}.ritem .lb{font:var(--label-s)}.ritem.on .lb{color:var(--md-onSurface)}.main{flex-direction:column;flex:1;min-width:0;display:flex}.appbar{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-6) var(--sp-3);z-index:var(--z-sticky);background:var(--md-surfaceContainer,#ededf4);display:flex;position:sticky;top:0}.appbar h1{font:800 22px var(--font);letter-spacing:-.01em;margin:0}.appbar-actions{align-items:center;gap:var(--sp-3);display:flex}.userchip{align-items:center;gap:var(--sp-2);background:var(--surface-lowest);border:1px solid var(--md-outlineVariant);border-radius:var(--shape-full);padding:5px 6px 5px var(--sp-4);font:600 14px var(--font);display:flex}.userchip .avatar{border-radius:var(--shape-full);background:var(--md-primaryContainer);width:30px;height:30px;color:var(--md-onPrimaryContainer);font:700 14px var(--font);place-items:center;display:grid}.iconbtn{cursor:pointer;color:var(--md-onSurfaceVariant);border-radius:var(--shape-full);width:42px;height:42px;transition:background var(--dur-short) var(--ease-emph);background:0 0;border:none;place-items:center;display:grid}.iconbtn:hover{background:var(--state-hover)}.content{padding:var(--sp-2) var(--sp-6) var(--sp-8);max-width:var(--content-max);width:100%;margin-inline:auto}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.content>*{animation:rise var(--dur-long) var(--ease-emph-decel) both}.content>:nth-child(2){animation-delay:50ms}.content>:nth-child(3){animation-delay:.1s}.content>:nth-child(4){animation-delay:.15s}.content>:nth-child(5){animation-delay:.2s}.content>:nth-child(6){animation-delay:.25s}.page-head{justify-content:space-between;align-items:center;gap:var(--sp-3);margin:var(--sp-2) 0 var(--sp-4);flex-wrap:wrap;display:flex}.page-head h2{font:var(--title-l);letter-spacing:-.01em;margin:0}.page-head .sub{font:var(--body-m);color:var(--md-onSurfaceVariant);margin-top:2px}.btn{font:var(--label-l);border-radius:var(--shape-full);padding:10px var(--sp-5);cursor:pointer;transition:filter var(--dur-short) var(--ease-emph), background var(--dur-short) var(--ease-emph);border:none;align-items:center;gap:7px;display:inline-flex}.btn-filled{background:var(--md-primary);color:var(--md-onPrimary,#fff)}.btn-tonal{background:var(--md-secondaryContainer);color:var(--md-onSecondaryContainer)}.btn-text{color:var(--md-primary);padding:10px var(--sp-3);background:0 0}.btn:hover:not(:disabled){filter:brightness(1.06)}.btn:disabled{opacity:.4;cursor:default}.cta{height:42px;padding:0 var(--sp-5);border-radius:var(--shape-full);background:var(--md-primary);color:#fff;font:700 14px var(--font);cursor:pointer;transition:filter var(--dur-short) var(--ease-emph);border:none;align-items:center;gap:8px;display:inline-flex}.cta:hover:not(:disabled){filter:brightness(1.07)}.cta:disabled{opacity:.5;cursor:default}.card{background:var(--surface-lowest);border:var(--border);border-radius:var(--shape-lg)}.panel{background:var(--surface-lowest);border:var(--border);border-radius:var(--shape-lg);padding:var(--sp-5)}.seg{background:var(--surface-lowest);border:1px solid var(--md-outlineVariant);border-radius:var(--shape-full);padding:3px;display:inline-flex}.seg button{cursor:pointer;font:600 14px var(--font);color:var(--md-onSurfaceVariant);padding:7px var(--sp-4);border-radius:var(--shape-full);transition:background var(--dur-short) var(--ease-emph), color var(--dur-short) var(--ease-emph);background:0 0;border:none}.seg button.on{background:var(--md-secondaryContainer);color:var(--md-onSecondaryContainer)}.chip{font:var(--label-l);border-radius:var(--shape-full);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid var(--md-outlineVariant);background:var(--surface-lowest);color:var(--md-onSurfaceVariant);transition:background var(--dur-short) var(--ease-emph), color var(--dur-short) var(--ease-emph), border-color var(--dur-short) var(--ease-emph);padding:7px 15px}.chip:hover{background:var(--state-hover)}.chip.on{background:var(--md-secondaryContainer);color:var(--md-onSecondaryContainer);border-color:#0000}.field{border:1px solid var(--md-outline);border-radius:var(--shape-sm);font:var(--body-m);background:var(--surface-lowest);color:var(--md-onSurface);transition:border-color var(--dur-short) var(--ease-emph);outline:none;padding:10px 14px}.field:focus{border-color:var(--md-primary);border-width:2px;padding:9px 13px}.tablecard{background:var(--surface-lowest);border:var(--border);border-radius:var(--shape-lg);-webkit-overflow-scrolling:touch;overflow-x:auto}.tbl{border-collapse:collapse;width:100%;font:var(--body-m)}.tbl thead th{background:var(--md-surfaceContainer);text-align:left;padding:14px var(--sp-4);white-space:nowrap;font:700 13px var(--font);color:var(--md-onSurfaceVariant)}.tbl thead th:first-child{padding-left:var(--sp-5)}.tbl tbody tr{border-top:1px solid var(--md-outlineVariant);transition:background var(--dur-short) var(--ease-emph)}.tbl tbody tr:hover{background:var(--state-hover)}.tbl td{padding:var(--sp-3) var(--sp-4);vertical-align:middle}.tbl td:first-child{padding-left:var(--sp-5)}.grouphd{background:var(--md-secondaryContainer);color:var(--md-onSecondaryContainer);border-radius:var(--shape-full);font:700 13px var(--font);padding:5px 14px;display:inline-block}.login-shell{background:radial-gradient(130% 130% at 0% 0%, color-mix(in srgb, var(--md-primary) 12%, var(--md-surface)), var(--md-surface) 60%);min-height:100vh;padding:var(--sp-5);justify-content:center;align-items:center;display:flex}.login-card{background:var(--surface-lowest);padding:var(--sp-8) var(--sp-6);border-radius:var(--shape-xl);border:var(--border);width:100%;min-width:340px;max-width:380px;box-shadow:var(--elev-2)}.login-brand{background:var(--md-primary);width:54px;height:54px;color:var(--md-onPrimary,#fff);margin:0 auto var(--sp-4);border-radius:16px;place-items:center;display:grid}.login-title{font:var(--headline-s);margin:0 0 var(--sp-2);text-align:center;letter-spacing:-.01em}.login-tagline{font:var(--body-m);color:var(--md-onSurfaceVariant);text-align:center;margin:0 0 var(--sp-6)}.login-form{gap:var(--sp-4);flex-direction:column;display:flex}.login-label{gap:var(--sp-2);font:var(--label-l);flex-direction:column;display:flex}.login-input{border:1px solid var(--md-outline);border-radius:var(--shape-sm);font:var(--body-l);background:var(--surface-lowest);color:var(--md-onSurface);transition:border-color var(--dur-short) var(--ease-emph);outline:none;padding:12px 14px}.login-input:focus{border-color:var(--md-primary);border-width:2px;padding:11px 13px}.login-btn{background:var(--md-primary);color:var(--md-onPrimary,#fff);border-radius:var(--shape-full);font:var(--label-l);cursor:pointer;transition:filter var(--dur-short) var(--ease-emph);border:none;padding:13px}.login-btn:hover:not(:disabled){filter:brightness(1.06)}.login-btn:disabled{opacity:.5;cursor:default}.login-error{color:var(--u-error);font:var(--body-m);text-align:center;margin:0}.hero{align-items:center;gap:var(--sp-6);color:#fff;background:linear-gradient(108deg, color-mix(in srgb, var(--md-primary) 74%, #8d94a3), color-mix(in srgb, var(--md-primary) 80%, #717888));border-radius:var(--shape-hero);padding:var(--sp-5) var(--sp-6);margin:var(--sp-3) 0 var(--sp-5);display:flex}.hero-left{flex:1;min-width:0}.hero-eyebrow{font:600 12px var(--font);color:#fff;opacity:.9;margin-bottom:var(--sp-3);align-items:center;gap:7px;display:inline-flex}.hero-eyebrow .live{background:#86e7c2;border-radius:50%;width:8px;height:8px}.hero h1{font:var(--display-l);letter-spacing:-.02em;text-wrap:balance;margin:0}.hero-meta{font:400 14px var(--font);opacity:.85;margin-top:var(--sp-3)}.ring{--p:0;background:conic-gradient(#bfe3ff calc(var(--p) * 1%), #fff3 0);border-radius:50%;flex-shrink:0;width:128px;height:128px;position:relative}.ring:after{content:"";background:color-mix(in srgb, var(--md-primary) 80%, #717888);border-radius:50%;position:absolute;inset:13px}.ring-v{z-index:1;text-align:center;place-content:center;display:grid;position:absolute;inset:0}.ring-v b{font:800 32px/1 var(--font);color:#fff}.ring-v span{font:600 11px var(--font);opacity:.82;margin-top:4px;display:block}.groups{gap:var(--sp-4);margin-bottom:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.gcard{background:var(--surface-lowest);border:var(--border);border-radius:var(--shape-lg);padding:var(--sp-4) var(--sp-5)}.gcard-top{justify-content:space-between;align-items:center;display:flex}.gcard-top .n{font:700 15px var(--font)}.gcard-top .pct{font:800 22px var(--font)}.gcard-sub{font:400 13px var(--font);color:var(--md-onSurfaceVariant);margin:4px 0 var(--sp-3)}.track{border-radius:var(--shape-full);background:var(--md-surfaceContainer);height:6px;overflow:hidden}.track i{border-radius:var(--shape-full);height:100%;transition:width var(--dur-long) var(--ease-emph-decel);display:block}.attn{background:color-mix(in srgb, var(--md-errorContainer,#ffdad6) 50%, var(--surface-lowest));border:1px solid color-mix(in srgb, var(--md-error) 14%, transparent);border-radius:var(--shape-lg);padding:var(--sp-3) var(--sp-5) var(--sp-4);margin-bottom:var(--sp-5)}.attn-hd{align-items:center;gap:var(--sp-2);font:700 15px var(--font);color:var(--md-onErrorContainer);padding:var(--sp-2) 0;display:flex}.attn-badge{background:var(--md-error);color:#fff;border-radius:var(--shape-full);font:700 12px var(--font);padding:1px 9px}.attn-row{align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;border-top:1px solid color-mix(in srgb, var(--md-error) 14%, transparent);display:flex}.attn-row:first-of-type{border-top:none}.attn-ico{border-radius:var(--shape-md);background:color-mix(in srgb, var(--md-error) 10%, transparent);width:32px;height:32px;color:var(--md-error);flex-shrink:0;place-items:center;display:grid}.attn-where{font:700 14px var(--font);min-width:220px;color:var(--md-onErrorContainer)}.attn-where em{font-style:normal;font:400 13px var(--font);opacity:.8}.attn-msg{font:400 14px var(--font);color:var(--md-onErrorContainer);flex:1}.attn-msg b{font:600 13px var(--font)}.pinchip{background:var(--md-tertiaryContainer,#fad8fd);color:var(--md-onTertiaryContainer,#2a132e);border-radius:var(--shape-full);font:700 12px var(--font);white-space:nowrap;align-items:center;gap:6px;padding:5px 11px;display:inline-flex}.bar{justify-content:space-between;align-items:center;gap:var(--sp-3);margin:0 2px var(--sp-3);flex-wrap:wrap;display:flex}.bar h2{font:700 20px var(--font);letter-spacing:-.01em;margin:0}.bar-actions{align-items:center;gap:var(--sp-3);display:flex}.legend{align-items:center;gap:var(--sp-4);margin:0 2px var(--sp-3);font:600 12px var(--font);color:var(--md-onSurfaceVariant);flex-wrap:wrap;display:flex}.legend i{align-items:center;gap:6px;font-style:normal;display:inline-flex}.legend i b{border-radius:50%;width:10px;height:10px}.mtag{min-width:20px;height:20px;font:700 11px var(--font);border-radius:7px;place-items:center;padding:0 6px;display:inline-grid}.mtag.o{background:var(--md-primaryContainer);color:var(--md-onPrimaryContainer)}.mtag.p{border:1.5px solid var(--md-outline);color:var(--md-onSurfaceVariant)}.node{align-items:center;gap:var(--sp-2);display:flex}.node-name{font:700 15px var(--font)}.node-grp{font:400 13px var(--font);color:var(--md-onSurfaceVariant)}.node-v4{background:var(--md-tertiaryContainer,#fad8fd);color:var(--md-onTertiaryContainer,#2a132e);border-radius:var(--shape-full);font:700 11px var(--font);padding:3px 9px}.cell{cursor:pointer;border-radius:var(--shape-full);transition:filter var(--dur-short) var(--ease-emph);align-items:center;gap:8px;margin:-4px 0;padding:6px 13px;display:inline-flex}.cell:hover{filter:brightness(.97)}.cell .dot{border-radius:50%;flex-shrink:0;width:11px;height:11px}.cell .be{font:600 14px var(--font)}.cell.degraded{background:color-mix(in srgb, var(--u-warnC) 42%, transparent)}.cell.error{background:color-mix(in srgb, var(--md-errorContainer) 55%, var(--surface-lowest))}.cell.error .be{color:var(--md-error);font-weight:700}.cell-empty{color:var(--md-outline);font:500 14px var(--font)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes drawerIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.actionbar{z-index:var(--z-sticky);background:var(--surface-lowest);border-top:1px solid var(--md-outlineVariant);box-shadow:var(--elev-2);padding:var(--sp-3) var(--sp-6);padding-bottom:max(var(--sp-3), env(safe-area-inset-bottom));position:fixed;bottom:0;left:96px;right:0}@media (width<=1023px){.rail{width:80px}.actionbar{left:80px}.content{padding:var(--sp-2) var(--sp-5) var(--sp-8)}.appbar{padding:var(--sp-4) var(--sp-5) var(--sp-3)}.hero h1{font:800 40px/44px var(--font)}}@media (width<=639px){.shell{flex-direction:column}.rail{width:100%;height:auto;padding:var(--sp-1) var(--sp-1);padding-bottom:max(var(--sp-1), env(safe-area-inset-bottom));border-right:none;border-top:1px solid var(--md-outlineVariant);z-index:var(--z-sticky);flex-direction:row;justify-content:space-around;align-items:stretch;gap:0;position:fixed;inset:auto 0 0;overflow:visible;box-shadow:0 -2px 14px #10183014}.brand{display:none}.ritem{flex:1;justify-content:center;min-width:0;min-height:56px;padding:6px 2px 4px}.ritem .ic{width:100%;max-width:64px;height:32px}.ritem .ic svg{width:23px;height:23px}.ritem .lb{font:var(--label-m);white-space:nowrap}.main{padding-bottom:calc(64px + env(safe-area-inset-bottom))}.appbar{padding:var(--sp-4) var(--sp-4) var(--sp-3)}.appbar h1{font:800 19px var(--font)}.content{padding:var(--sp-2) var(--sp-4) var(--sp-6)}.hero{align-items:flex-start;gap:var(--sp-4);padding:var(--sp-5);flex-direction:column}.hero h1{font:800 32px/36px var(--font)}.ring{width:120px;height:120px}.ring-v b{font:800 30px/1 var(--font)}.userchip{background:0 0;border:none;padding:3px}.userchip>span{display:none}.attn-row{flex-wrap:wrap}.attn-where{flex:100%;min-width:0}.attn-msg{flex:100%}.actionbar{padding:var(--sp-3) var(--sp-4);left:0;bottom:calc(64px + env(safe-area-inset-bottom));box-shadow:var(--elev-3)}.tbl{min-width:max-content}.tbl thead th,.tbl td{padding:var(--sp-3)}.tbl thead th:first-child,.tbl td:first-child{padding-left:var(--sp-4)}.page-head,.bar{gap:var(--sp-2)}}@media (width<=360px){.ritem .lb{font:var(--label-s)}.ritem{padding:6px 1px 4px}}@media (hover:none){.btn,.cta,.chip,.seg button,.field,select.field,input.login-input,.login-btn{min-height:44px}.iconbtn{min-width:44px;min-height:44px}}@media (prefers-reduced-motion:reduce){*,.content>*{transition:none!important;animation:none!important}}
