:root{--bg-0: #080b10;--bg-1: #0e131b;--bg-2: #141b25;--bg-3: #1b2430;--bg-4: #232f3d;--bd: rgba(255,255,255,.07);--bd-1: rgba(255,255,255,.11);--bd-2: rgba(255,255,255,.17);--tx-0: #e8eef5;--tx-1: #9bacbd;--tx-2: #61707f;--tx-3: #44515e;--accent: #4d9bff;--accent-d: #2f7ce8;--accent-soft: rgba(77,155,255,.14);--accent-line: rgba(77,155,255,.4);--accent-glow: rgba(77,155,255,.3);--ok: #3fb950;--ok-soft: rgba(63,185,80,.15);--warn: #e3a72f;--warn-soft: rgba(227,167,47,.15);--crit: #f8635a;--crit-soft: rgba(248,99,90,.15);--reserved: #a371f7;--reserved-soft: rgba(163,113,247,.16);--shadow-1: 0 1px 2px rgba(0,0,0,.4);--shadow-2: 0 6px 24px rgba(0,0,0,.45);--shadow-3: 0 18px 60px rgba(0,0,0,.55);--r-xs: 5px;--r-sm: 7px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--sans: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--rail-w: 232px;--topbar-h: 56px}[data-theme=light]{--bg-0: #eef1f5;--bg-1: #ffffff;--bg-2: #ffffff;--bg-3: #f3f6fa;--bg-4: #e7edf4;--bd: rgba(15,28,45,.1);--bd-1: rgba(15,28,45,.14);--bd-2: rgba(15,28,45,.22);--tx-0: #16212e;--tx-1: #4a5a6a;--tx-2: #768492;--tx-3: #9aa7b3;--accent: #2f7ce8;--accent-d: #1f63c4;--accent-soft: rgba(47,124,232,.1);--accent-line: rgba(47,124,232,.35);--accent-glow: rgba(47,124,232,.18);--ok: #1f9d3a;--ok-soft: rgba(31,157,58,.12);--warn: #c6850f;--warn-soft: rgba(198,133,15,.14);--crit: #e0453b;--crit-soft: rgba(224,69,59,.12);--reserved: #8b5cf6;--reserved-soft: rgba(139,92,246,.12);--shadow-1: 0 1px 2px rgba(15,28,45,.08);--shadow-2: 0 6px 22px rgba(15,28,45,.1);--shadow-3: 0 18px 50px rgba(15,28,45,.16)}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--sans);background:var(--bg-0);color:var(--tx-0);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#root{height:100%}::selection{background:var(--accent-soft)}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-thumb{background:var(--bg-4);border-radius:8px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--tx-3);background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}.mono{font-family:var(--mono);font-feature-settings:"zero" 1}.tag{font-family:var(--mono);font-size:11.5px;letter-spacing:-.01em}.dim{color:var(--tx-1)}.faint{color:var(--tx-2)}.nowrap{white-space:nowrap}.upper{text-transform:uppercase;letter-spacing:.09em;font-size:10.5px;font-weight:600;color:var(--tx-2)}.app{display:grid;grid-template-columns:var(--rail-w) 1fr;height:100%;overflow:hidden}.app.rail-collapsed{grid-template-columns:64px 1fr}.rail{background:var(--bg-1);border-right:1px solid var(--bd);display:flex;flex-direction:column;min-height:0}.rail-brand{height:var(--topbar-h);display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--bd);flex-shrink:0}.brand-mark{width:28px;height:28px;border-radius:7px;background:linear-gradient(150deg,var(--accent),var(--accent-d));display:grid;place-items:center;flex-shrink:0;box-shadow:0 0 0 1px var(--accent-line),0 4px 14px var(--accent-glow)}.brand-name{font-weight:600;font-size:15px;letter-spacing:-.02em}.brand-name b{color:var(--accent)}.rail-collapsed .brand-name,.rail-collapsed .rail-section-label,.rail-collapsed .nav-item span,.rail-collapsed .role-meta,.rail-collapsed .rail-foot-txt{display:none}.rail-scroll{flex:1;overflow-y:auto;padding:10px 0;min-height:0}.rail-section-label{padding:14px 18px 6px}.nav-item{display:flex;align-items:center;gap:11px;margin:1px 9px;padding:8px 10px;border-radius:var(--r-sm);color:var(--tx-1);cursor:pointer;font-size:13.5px;font-weight:500;position:relative;transition:background .12s,color .12s}.nav-item svg{width:17px;height:17px;flex-shrink:0}.nav-item:hover{background:var(--bg-3);color:var(--tx-0)}.nav-item.active{background:var(--accent-soft);color:var(--tx-0)}.nav-item.active:before{content:"";position:absolute;left:-9px;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.nav-item .count{margin-left:auto;font-family:var(--mono);font-size:10.5px;padding:1px 6px;border-radius:20px;background:var(--bg-3);color:var(--tx-1)}.nav-item .count.crit{background:var(--crit-soft);color:var(--crit)}.rail-foot{border-top:1px solid var(--bd);padding:10px;flex-shrink:0}.role-card{display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:var(--r-sm);cursor:pointer}.role-card:hover{background:var(--bg-3)}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:12px;flex-shrink:0;color:#fff}.role-meta{min-width:0}.role-meta .nm{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-meta .rl{font-size:11px;color:var(--tx-2)}.main{display:flex;flex-direction:column;min-width:0;min-height:0}.topbar{height:var(--topbar-h);border-bottom:1px solid var(--bd);display:flex;align-items:center;gap:14px;padding:0 18px;background:color-mix(in srgb,var(--bg-1) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-shrink:0}.icon-btn{width:32px;height:32px;border-radius:var(--r-sm);display:grid;place-items:center;cursor:pointer;color:var(--tx-1);border:1px solid transparent;background:transparent}.icon-btn:hover{background:var(--bg-3);color:var(--tx-0)}.icon-btn svg{width:17px;height:17px}.crumbs{display:flex;align-items:center;gap:7px;font-size:13px;min-width:0;overflow:hidden}.crumbs .c{color:var(--tx-1);cursor:pointer;white-space:nowrap}.crumbs .c:hover{color:var(--tx-0)}.crumbs .c.cur{color:var(--tx-0);font-weight:600}.crumbs .sep{color:var(--tx-3)}.searchbtn{margin-left:auto;display:flex;align-items:center;gap:9px;height:34px;padding:0 11px;border-radius:var(--r-sm);background:var(--bg-2);border:1px solid var(--bd);color:var(--tx-2);cursor:pointer;font-size:13px;min-width:240px;white-space:nowrap}.searchbtn:hover{border-color:var(--bd-2)}.searchbtn .kbd{margin-left:auto}.kbd{font-family:var(--mono);font-size:10.5px;padding:2px 6px;border-radius:5px;background:var(--bg-3);border:1px solid var(--bd-1);color:var(--tx-1);box-shadow:0 1px 0 var(--bd-1)}.content{flex:1;overflow-y:auto;min-height:0}.page{padding:22px 26px 60px;max-width:1480px;margin:0 auto}.page-wide{max-width:none}.page-head{display:flex;align-items:flex-end;gap:16px;margin-bottom:20px}.page-title{font-size:22px;font-weight:600;letter-spacing:-.02em}.page-sub{color:var(--tx-1);font-size:13px;margin-top:3px}.page-head .right{margin-left:auto;display:flex;gap:9px;align-items:center}.btn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px;border-radius:var(--r-sm);border:1px solid var(--bd-1);background:var(--bg-2);color:var(--tx-0);font-family:var(--sans);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}.btn:hover{background:var(--bg-3);border-color:var(--bd-2)}.btn svg{width:15px;height:15px}.btn.primary{background:var(--accent);border-color:transparent;color:#fff;box-shadow:0 2px 10px var(--accent-glow)}.btn.primary:hover{background:var(--accent-d)}.btn.ghost{background:transparent;border-color:transparent;color:var(--tx-1)}.btn.ghost:hover{background:var(--bg-3);color:var(--tx-0)}.btn.sm{height:28px;padding:0 10px;font-size:12px}.btn.danger{color:var(--crit);border-color:var(--crit-soft)}.btn.danger:hover{background:var(--crit-soft)}.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:20px;background:var(--bg-3);border:1px solid var(--bd);color:var(--tx-1);font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap}.chip:hover{border-color:var(--bd-2);color:var(--tx-0)}.chip.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--tx-0)}.chip .x{color:var(--tx-2)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600;line-height:1.5}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.crit{background:var(--crit-soft);color:var(--crit)}.badge.res{background:var(--reserved-soft);color:var(--reserved)}.badge.neutral{background:var(--bg-3);color:var(--tx-1)}.badge.accent{background:var(--accent-soft);color:var(--accent)}.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.card{background:var(--bg-2);border:1px solid var(--bd);border-radius:var(--r-md)}.card-pad{padding:16px}.card-head{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--bd)}.card-head h3{margin:0;font-size:13.5px;font-weight:600;letter-spacing:-.01em}.card-head .right{margin-left:auto;display:flex;gap:7px;align-items:center}.grid{display:grid;gap:14px}.bar{height:6px;border-radius:4px;background:var(--bg-4);overflow:hidden;position:relative}.bar>i{display:block;height:100%;border-radius:4px;background:var(--accent);transition:width .5s cubic-bezier(.2,.7,.2,1)}.bar.ok>i{background:var(--ok)}.bar.warn>i{background:var(--warn)}.bar.crit>i{background:var(--crit)}.meter{display:flex;flex-direction:column;gap:5px}.meter .lab{display:flex;justify-content:space-between;font-size:11.5px;color:var(--tx-1)}.meter .lab b{color:var(--tx-0);font-family:var(--mono)}table.tbl{width:100%;border-collapse:collapse;font-size:13px}table.tbl th{text-align:left;font-weight:600;color:var(--tx-2);font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:9px 12px;border-bottom:1px solid var(--bd);white-space:nowrap}table.tbl td{padding:10px 12px;border-bottom:1px solid var(--bd)}table.tbl tbody tr{cursor:pointer}table.tbl tbody tr:hover{background:var(--bg-3)}table.tbl tbody tr.norow{cursor:default}table.tbl tr.norow:hover{background:transparent;cursor:default}.kpi{padding:15px 16px;display:flex;flex-direction:column;gap:2px;position:relative;overflow:hidden}.kpi .k-lab{font-size:11.5px;color:var(--tx-1);display:flex;align-items:center;gap:6px}.kpi .k-val{font-size:27px;font-weight:600;letter-spacing:-.03em;font-family:var(--mono)}.kpi .k-sub{font-size:11.5px;color:var(--tx-2)}.kpi .k-delta{font-size:11.5px;font-weight:600}.kpi .k-delta.up{color:var(--ok)}.kpi .k-delta.down{color:var(--crit)}.spark{display:flex;align-items:flex-end;gap:2px;height:30px}.spark>i{flex:1;background:var(--accent-soft);border-radius:2px 2px 0 0;min-height:2px}.spark>i.hl{background:var(--accent)}.seg{display:inline-flex;background:var(--bg-3);border:1px solid var(--bd);border-radius:var(--r-sm);padding:2px;gap:2px}.seg button{border:none;background:transparent;color:var(--tx-1);font-family:var(--sans);font-size:12.5px;font-weight:500;padding:5px 11px;border-radius:5px;cursor:pointer}.seg button.on{background:var(--bg-1);color:var(--tx-0);box-shadow:var(--shadow-1)}input.fld,select.fld,textarea.fld{width:100%;background:var(--bg-1);border:1px solid var(--bd-1);border-radius:var(--r-sm);color:var(--tx-0);font-family:var(--sans);font-size:13px;padding:8px 11px;outline:none}input.fld:focus,select.fld:focus,textarea.fld:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}input.fld::placeholder{color:var(--tx-3)}label.fld-lab{font-size:11.5px;color:var(--tx-1);font-weight:500;display:block;margin-bottom:5px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#03060a9e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;display:flex;justify-content:center;align-items:flex-start;padding-top:12vh;animation:fade .12s ease}@keyframes fade{0%{opacity:0}}.cmdk{width:min(640px,92vw);background:var(--bg-2);border:1px solid var(--bd-2);border-radius:var(--r-lg);box-shadow:var(--shadow-3);overflow:hidden;animation:pop .14s cubic-bezier(.2,.8,.2,1)}@keyframes pop{0%{transform:translateY(-8px) scale(.99);opacity:.4}}.cmdk-in{display:flex;align-items:center;gap:11px;padding:15px 18px;border-bottom:1px solid var(--bd)}.cmdk-in input{flex:1;background:transparent;border:none;outline:none;color:var(--tx-0);font-family:var(--sans);font-size:16px}.cmdk-in svg{width:19px;height:19px;color:var(--tx-2)}.cmdk-list{max-height:52vh;overflow-y:auto;padding:7px}.cmdk-grp{padding:9px 12px 4px}.cmdk-row{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:var(--r-sm);cursor:pointer}.cmdk-row.sel{background:var(--accent-soft)}.cmdk-row .ic{width:30px;height:30px;border-radius:7px;background:var(--bg-3);display:grid;place-items:center;color:var(--tx-1);flex-shrink:0}.cmdk-row .ic svg{width:15px;height:15px}.cmdk-row.sel .ic{background:var(--accent);color:#fff}.cmdk-row .tt{font-size:13.5px;font-weight:500}.cmdk-row .ds{font-size:11.5px;color:var(--tx-2)}.cmdk-row .meta{margin-left:auto}.cmdk-foot{display:flex;align-items:center;gap:16px;padding:9px 16px;border-top:1px solid var(--bd);font-size:11px;color:var(--tx-2)}.cmdk-foot .kbd{font-size:9.5px}.empty{text-align:center;padding:50px 20px;color:var(--tx-2)}.empty .ic{width:46px;height:46px;border-radius:12px;background:var(--bg-2);border:1px solid var(--bd);display:grid;place-items:center;margin:0 auto 14px;color:var(--tx-2)}.split{display:grid;gap:0}.tip{position:relative}.legend{display:flex;flex-wrap:wrap;gap:5px 14px;align-items:center;font-size:11.5px;color:var(--tx-1)}.legend .li{display:flex;align-items:center;gap:6px}.legend .sw{width:11px;height:11px;border-radius:3px;flex-shrink:0}.divider{height:1px;background:var(--bd);margin:14px 0}.scrollx{overflow-x:auto}a.link{color:var(--accent);text-decoration:none;cursor:pointer}a.link:hover{text-decoration:underline}.toast-wrap{position:fixed;bottom:22px;right:22px;display:flex;flex-direction:column;gap:9px;z-index:200}.toast{background:var(--bg-3);border:1px solid var(--bd-2);border-radius:var(--r-md);padding:12px 15px;box-shadow:var(--shadow-2);display:flex;gap:11px;align-items:flex-start;min-width:280px;animation:slidein .2s cubic-bezier(.2,.8,.2,1)}@keyframes slidein{0%{transform:translate(20px);opacity:0}}.toast .ic{width:20px;height:20px;flex-shrink:0}.toast .tt{font-size:13px;font-weight:600}.toast .ds{font-size:12px;color:var(--tx-1);margin-top:1px}.modal-card{width:min(720px,94vw);max-height:86vh;background:var(--bg-2);border:1px solid var(--bd-2);border-radius:var(--r-lg);box-shadow:var(--shadow-3);overflow:hidden;display:flex;flex-direction:column;animation:pop .16s cubic-bezier(.2,.8,.2,1)}.modal-head{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--bd)}.modal-head h2{margin:0;font-size:16px;font-weight:600}.modal-body{padding:20px;overflow-y:auto}.modal-foot{display:flex;gap:9px;justify-content:flex-end;padding:14px 20px;border-top:1px solid var(--bd)}.row{display:flex;align-items:center;gap:10px}.col{display:flex;flex-direction:column}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.gap6{gap:6px}.gap10{gap:10px}.gap14{gap:14px}.gap20{gap:20px}.mt4{margin-top:4px}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt20{margin-top:20px}.fill{flex:1}.center{display:grid;place-items:center}.md-body{font-size:13.5px;line-height:1.65;color:var(--tx-0);max-width:900px}.md-body .md-h{font-weight:600;letter-spacing:-.01em;line-height:1.3;margin:1.4em 0 .5em;color:var(--tx-0)}.md-body .md-h:first-child{margin-top:0}.md-body .md-h1{font-size:23px;padding-bottom:8px;border-bottom:1px solid var(--bd)}.md-body .md-h2{font-size:18px;padding-bottom:6px;border-bottom:1px solid var(--bd)}.md-body .md-h3{font-size:15px}.md-body .md-h4,.md-body .md-h5,.md-body .md-h6{font-size:13.5px;color:var(--tx-1)}.md-body p{margin:.7em 0}.md-body a{color:var(--accent);text-decoration:none}.md-body a:hover{text-decoration:underline}.md-body code{font-family:var(--mono);font-size:12px;background:var(--bg-3);border:1px solid var(--bd);border-radius:5px;padding:1px 5px}.md-body .md-pre{background:var(--bg-1);border:1px solid var(--bd);border-radius:var(--r-sm);padding:12px 14px;overflow-x:auto;margin:.9em 0}.md-body .md-pre code{background:none;border:none;padding:0;font-size:12px;line-height:1.55;color:var(--tx-0);white-space:pre}.md-body .md-list{margin:.6em 0;padding-left:1.4em}.md-body .md-list li{margin:.25em 0}.md-body .md-quote{margin:.9em 0;padding:6px 14px;border-left:3px solid var(--accent-line);color:var(--tx-1);background:var(--accent-soft);border-radius:0 var(--r-sm) var(--r-sm) 0}.md-body .md-hr{border:none;border-top:1px solid var(--bd);margin:1.6em 0}.md-body .md-tbl{width:100%;border-collapse:collapse;font-size:12.5px;margin:.9em 0}.md-body .md-tbl th{text-align:left;font-weight:600;color:var(--tx-1);padding:7px 10px;border-bottom:1px solid var(--bd-1);white-space:nowrap}.md-body .md-tbl td{padding:7px 10px;border-bottom:1px solid var(--bd);vertical-align:top}.hamburger,.rail-backdrop,.app-banner{display:none}@media(max-width:768px){.app,.app.rail-collapsed{grid-template-columns:1fr}.rail{position:fixed;top:0;left:0;bottom:0;width:min(82vw,300px);z-index:60;transform:translate(-100%);transition:transform .22s cubic-bezier(.2,.8,.2,1);box-shadow:var(--shadow-3);border-right:1px solid var(--bd-1)}.app.drawer-open .rail{transform:translate(0)}.rail-collapsed .brand-name,.rail-collapsed .nav-item span,.rail-collapsed .role-meta{display:revert}.rail-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#03060a8c;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);opacity:0;pointer-events:none;transition:opacity .22s ease}.app.drawer-open .rail-backdrop{opacity:1;pointer-events:auto}.hamburger{display:grid;place-items:center;width:36px;height:36px;margin-left:-4px;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--tx-0);cursor:pointer;flex-shrink:0}.hamburger:hover{background:var(--bg-3)}.app-banner{display:flex;align-items:center;gap:9px;padding:7px 12px;background:var(--accent-soft);border-bottom:1px solid var(--accent-line);font-size:12px;color:var(--tx-0);flex-shrink:0}.app-banner-txt{flex:1;min-width:0;line-height:1.35}.app-banner-txt b{color:var(--accent)}.app-banner-cta{flex-shrink:0;padding:4px 10px;border-radius:var(--r-sm);background:var(--accent);color:#fff;font-weight:600;font-size:11.5px;text-decoration:none;white-space:nowrap}.app-banner-x{flex-shrink:0;display:grid;place-items:center;width:26px;height:26px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--tx-1);cursor:pointer}.app-banner-x:hover{background:#0000001f;color:var(--tx-0)}.topbar{gap:10px;padding:0 12px}.searchbtn{display:none}.page{padding:16px 14px 48px}.page-head{flex-wrap:wrap;gap:10px}.page-head .right{margin-left:0;width:100%;flex-wrap:wrap}.page-title{font-size:19px}.content .grid{grid-template-columns:1fr!important}.card,.scrollx{overflow-x:auto;-webkit-overflow-scrolling:touch}table.tbl{min-width:max-content}table.tbl th,table.tbl td{white-space:nowrap}.content{overflow-x:auto;-webkit-overflow-scrolling:touch}.page-wide{min-width:0}.modal-body{padding:16px}}@media(max-width:768px)and (prefers-reduced-motion:reduce){.rail,.rail-backdrop{transition:none}}
