:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--palette-main:#131722;--palette-surface:#1e222d;--palette-elevated:#2a2e39;--palette-border:#363a45;--palette-text:#d1d4dc;--palette-text-secondary:#787b86;--palette-accent:#2962ff;--palette-positive:#089981;--palette-negative:#f23645;--palette-warning:#ffb74d;--palette-text-muted:#8c8f9a;--palette-accent-text:#5b8cff;--palette-positive-text:#22ab94;--palette-negative-text:#f7525f;--palette-negative-strong:#d32f3c;--palette-neutral:#5d606b;--palette-white:#fff;--palette-black:#000;--bg:var(--palette-main);--surface:var(--palette-surface);--surface-2:var(--palette-elevated);--surface-3:color-mix(in srgb, var(--palette-elevated), var(--palette-text) 6%);--surface-inset:color-mix(in srgb, var(--palette-main), var(--palette-black) 18%);--border:var(--palette-border);--border-subtle:color-mix(in srgb, var(--palette-border) 55%, var(--palette-main));--border-strong:color-mix(in srgb, var(--palette-border), var(--palette-text) 14%);--text:var(--palette-text);--text-muted:var(--palette-text-muted);--text-faint:var(--palette-text-secondary);--text-on-solid:var(--palette-white);--accent:var(--palette-accent);--accent-strong:var(--palette-accent);--accent-text:var(--palette-accent-text);--ok:var(--palette-positive);--ok-text:var(--palette-positive-text);--warn:var(--palette-warning);--warn-text:var(--palette-warning);--bad:var(--palette-negative);--bad-strong:var(--palette-negative-strong);--bad-text:var(--palette-negative-text);--info:var(--palette-accent-text);--neutral:var(--palette-neutral);--buy:var(--ok-text);--sell:var(--bad-text);--ok-bg:color-mix(in srgb, var(--ok) 14%, transparent);--ok-border:color-mix(in srgb, var(--ok) 50%, transparent);--warn-bg:color-mix(in srgb, var(--warn) 12%, transparent);--warn-border:color-mix(in srgb, var(--warn) 45%, transparent);--bad-bg:color-mix(in srgb, var(--bad) 13%, transparent);--bad-border:color-mix(in srgb, var(--bad) 55%, transparent);--info-bg:color-mix(in srgb, var(--accent) 14%, transparent);--info-border:color-mix(in srgb, var(--accent) 50%, transparent);--muted-bg:color-mix(in srgb, var(--neutral) 16%, transparent);--muted-border:color-mix(in srgb, var(--neutral) 45%, transparent);--hover:var(--palette-elevated);--pressed:color-mix(in srgb, var(--palette-elevated), var(--palette-text) 8%);--row-hover:color-mix(in srgb, var(--palette-elevated) 70%, transparent);--row-selected:color-mix(in srgb, var(--accent) 20%, transparent);--focus:var(--accent-text);--focus-ring:color-mix(in srgb, var(--accent) 45%, transparent);--selection:color-mix(in srgb, var(--accent) 40%, transparent);--scrollbar:color-mix(in srgb, var(--palette-border), var(--palette-text) 8%);--disabled-opacity:.45;--shadow-float:0 6px 18px color-mix(in srgb, var(--palette-black) 55%, transparent);--backdrop:color-mix(in srgb, var(--palette-black) 55%, transparent);--radius-sm:2px;--radius:2px;--radius-lg:3px;--control-h:26px;--control-h-sm:22px;--row-h:24px;--topbar-h:36px;--statusbar-h:22px;--rail-w:44px;--rail-w-open:196px;--fs-2xs:10px;--fs-xs:11px;--fs-sm:12px;--fs-table:12px;--fs-base:13px;--fs-md:13px;--fs-lg:15px;--fs-xl:16px;--fs-kpi:15px;--mono:"Cascadia Mono", "Cascadia Code", ui-monospace, "SFMono-Regular", Menlo, Consolas, "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans SC", monospace;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "Trebuchet MS", Roboto, Ubuntu, "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans SC", sans-serif;--ease:cubic-bezier(.2, 0, 0, 1);--icon-warning:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.5 15.2 14H.8z M7.2 6v4.2h1.6V6z M7.2 11.3v1.6h1.6v-1.6z' fill-rule='evenodd'/%3E%3C/svg%3E");--icon-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.3 12.2 2 7.9l1.4-1.4 2.9 2.9 6.3-6.3L14 4.5z'/%3E%3C/svg%3E");--icon-info:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1zm-.8 3h1.6v1.6H7.2zm0 3h1.6v5H7.2z' fill-rule='evenodd'/%3E%3C/svg%3E");--icon-error:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1zM5.2 4.1 8 6.9l2.8-2.8 1.1 1.1L9.1 8l2.8 2.8-1.1 1.1L8 9.1l-2.8 2.8-1.1-1.1L6.9 8 4.1 5.2z' fill-rule='evenodd'/%3E%3C/svg%3E");--icon-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 3.5 10.5 8 6 12.5 4.9 11.4 8.3 8 4.9 4.6z'/%3E%3C/svg%3E");--topo-idle:color-mix(in srgb, var(--accent) 45%, var(--neutral));--topo-offline:var(--neutral);--topo-canvas:var(--palette-main);--topo-grid:color-mix(in srgb, var(--palette-border) 60%, var(--palette-main));--topo-card:var(--palette-surface)}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:var(--fs-base);-webkit-font-smoothing:antialiased;margin:0;padding:0;line-height:1.4}a{color:var(--accent-text);text-decoration:none}a:hover{text-underline-offset:2px;text-decoration:underline}h1{font-size:var(--fs-xl);margin:0;font-weight:600}h2{font-size:var(--fs-md);margin:0;font-weight:600}h3{font-size:var(--fs-sm);margin:.6rem 0 .3rem;font-weight:600}p{margin:.25rem 0}code,pre,.mono{font-family:var(--mono);font-size:.92em}.num,td.num,th.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.num-left{text-align:left}:is(table:has(>tbody>tr:first-child>td.num:first-child)>thead>tr>th:first-child,table:has(>tbody>tr:first-child>td.num:nth-child(2))>thead>tr>th:nth-child(2),table:has(>tbody>tr:first-child>td.num:nth-child(3))>thead>tr>th:nth-child(3),table:has(>tbody>tr:first-child>td.num:nth-child(4))>thead>tr>th:nth-child(4),table:has(>tbody>tr:first-child>td.num:nth-child(5))>thead>tr>th:nth-child(5),table:has(>tbody>tr:first-child>td.num:nth-child(6))>thead>tr>th:nth-child(6),table:has(>tbody>tr:first-child>td.num:nth-child(7))>thead>tr>th:nth-child(7),table:has(>tbody>tr:first-child>td.num:nth-child(8))>thead>tr>th:nth-child(8),table:has(>tbody>tr:first-child>td.num:nth-child(9))>thead>tr>th:nth-child(9),table:has(>tbody>tr:first-child>td.num:nth-child(10))>thead>tr>th:nth-child(10),table:has(>tbody>tr:first-child>td.num:nth-child(11))>thead>tr>th:nth-child(11),table:has(>tbody>tr:first-child>td.num:nth-child(12))>thead>tr>th:nth-child(12),table:has(>tbody>tr:first-child>td.num:nth-child(13))>thead>tr>th:nth-child(13),table:has(>tbody>tr:first-child>td.num:nth-child(14))>thead>tr>th:nth-child(14),table:has(>tbody>tr:first-child>td.num:nth-child(15))>thead>tr>th:nth-child(15),table:has(>tbody>tr:first-child>td.num:nth-child(16))>thead>tr>th:nth-child(16)){text-align:right}.nowrap{white-space:nowrap}::selection{background:var(--selection);color:var(--text)}hr{border:0;border-top:1px solid var(--border-subtle);margin:.6rem 0}*{scrollbar-color:var(--scrollbar) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:4px}::-webkit-scrollbar-corner{background:0 0}:focus-visible{outline:1px solid var(--focus);outline-offset:1px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--accent);color:var(--text-on-solid);z-index:100;padding:.4rem .8rem;position:absolute;top:0;left:-9999px}.skip-link:focus{top:.5rem;left:.5rem}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.icon{vertical-align:-.2em;flex:none;display:inline-block}.ico{width:12px;height:12px;-webkit-mask:var(--ico) center / contain no-repeat;-webkit-mask:var(--ico) center / contain no-repeat;mask:var(--ico) center / contain no-repeat;background:currentColor;flex:none;display:inline-block}.ico-warning{--ico:var(--icon-warning)}.ico-check{--ico:var(--icon-check)}.ico-info{--ico:var(--icon-info)}.ico-error{--ico:var(--icon-error)}.app{background:var(--bg);flex-direction:column;height:100vh;display:flex;overflow:hidden}.sim-banner{background:var(--warn-bg);color:var(--warn-text);letter-spacing:.04em;font-weight:600;font-size:var(--fs-xs);border-bottom:1px solid var(--warn-border);flex:none;justify-content:center;align-items:center;gap:.4rem;padding:.1rem .5rem;line-height:18px;display:flex}.sim-banner:before{content:"";width:11px;height:11px;-webkit-mask:var(--icon-warning) center / contain no-repeat;-webkit-mask:var(--icon-warning) center / contain no-repeat;mask:var(--icon-warning) center / contain no-repeat;background:currentColor}.topbar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--border);z-index:5;flex:none;align-items:stretch;display:flex;position:relative}.brand{white-space:nowrap;border-right:1px solid var(--border-subtle);align-items:center;gap:.45rem;padding:0 .75rem;font-weight:600;display:flex}.brand-mark{background:var(--accent);color:var(--text-on-solid);border-radius:var(--radius-sm);font-size:var(--fs-2xs);letter-spacing:.08em;padding:0 .3rem;font-weight:800;line-height:16px}.brand-name{font-size:var(--fs-base)}.brand-sub{color:var(--text-muted);font-weight:500;font-size:var(--fs-xs)}.tb-metrics{flex:1;align-items:stretch;min-width:0;display:flex;overflow:hidden}.tb-metric{border-right:1px solid var(--border-subtle);color:var(--text);white-space:nowrap;flex-direction:column;justify-content:center;gap:1px;min-width:0;padding:0 .75rem;text-decoration:none;display:flex}a.tb-metric:hover{background:var(--hover);text-decoration:none}.tb-label{font-size:var(--fs-2xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;line-height:12px}.tb-value{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;align-items:center;gap:.3rem;font-weight:600;line-height:16px;display:inline-flex}.tb-metric.bad{background:var(--bad-bg)}.tb-actions{border-left:1px solid var(--border-subtle);align-items:center;gap:.4rem;padding:0 .6rem;display:flex}.user{white-space:nowrap;font-size:var(--fs-sm);align-items:center;gap:.4rem;display:flex}.user-name{font-weight:600}.btn-estop{background:var(--bad-strong);border-color:var(--bad);color:var(--text-on-solid);letter-spacing:.04em;text-transform:uppercase;font-weight:700;font-size:var(--fs-xs)}.btn-estop:hover:not(:disabled){background:var(--bad);border-color:var(--bad-text)}.btn-estop.engaged{background:var(--bad-bg);color:var(--bad-text);border-color:var(--bad)}.body{flex:1;min-height:0;display:flex}.sidenav{width:var(--rail-w);background:var(--surface);border-right:1px solid var(--border);transition:width .12s var(--ease);flex-direction:column;flex:none;display:flex}.sidenav.open{width:var(--rail-w-open)}.sidenav-inner{flex-direction:column;flex:1;min-height:0;padding:4px;display:flex;overflow:hidden auto}.sidenav ul{flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.sidenav a{height:32px;color:var(--text-muted);border-radius:var(--radius-sm);white-space:nowrap;align-items:center;gap:.6rem;padding:0 .55rem;text-decoration:none;display:flex;position:relative;overflow:hidden}.sidenav a .icon{width:18px;height:18px}.sidenav:not(.open) a span{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.sidenav a:hover{color:var(--text);background:var(--hover);text-decoration:none}.sidenav a.active{color:var(--text);background:var(--row-selected)}.sidenav a.active:before{content:"";background:var(--accent);width:2px;position:absolute;top:6px;bottom:6px;left:0}.nav-section{border-top:1px solid var(--border-subtle);margin-top:4px;padding-top:4px}.nav-section-title{font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);white-space:nowrap;padding:2px .55rem;font-weight:600;overflow:hidden}.sidenav:not(.open) .nav-section-title{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.rail-toggle{height:28px;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;margin:4px;display:flex}.rail-toggle:hover{background:var(--hover);color:var(--text)}.rail-toggle .ico{--ico:var(--icon-chevron);width:10px;height:10px;transition:transform .12s var(--ease)}.sidenav.open .rail-toggle .ico{transform:rotate(180deg)}.main{flex:1;min-width:0;min-height:0;padding:10px 12px 24px;overflow:auto}.main:focus{outline:none}.main.main-workspace{flex-direction:column;padding:0;display:flex;overflow:hidden}.statusbar{height:var(--statusbar-h);background:var(--surface);border-top:1px solid var(--border);font-size:var(--fs-xs);flex:none;align-items:stretch;display:flex;overflow:hidden}.status-badges{align-items:stretch;min-width:0;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.status-badges>li{border-right:1px solid var(--border-subtle);align-items:center;display:flex}.statusbar .pill{height:100%;font-size:var(--fs-xs);background:0 0;border:0;border-radius:0;padding:0 .6rem;font-weight:500}.statusbar .pill:hover{background:var(--hover);filter:none}.statusbar .pill.pill-bad{background:var(--bad-bg)}.statusbar-end{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:.6rem;margin-left:auto;padding:0 .6rem;display:flex}.boot{min-height:100vh;color:var(--text-muted);background:var(--bg);justify-content:center;align-items:center;display:flex}.boot-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;flex-direction:column;align-items:center;gap:.7rem;min-width:300px;padding:1.2rem 1.6rem;display:flex}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;flex:none;width:14px;height:14px;animation:.8s linear infinite tep-spin}@keyframes tep-spin{to{transform:rotate(360deg)}}@media (max-width:860px){.tb-metric:nth-child(n+4){display:none}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.6rem;display:flex}.page-head .muted-text{font-size:var(--fs-sm)}.card{background:var(--bg);border:1px solid var(--border-subtle);border-radius:var(--radius);margin-bottom:.6rem;padding:0 .7rem .6rem}.card-head{background:var(--surface);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;min-height:28px;margin:0 -.7rem .55rem;padding:0 .7rem;display:flex}.card-head h2{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.card-head a{font-size:var(--fs-xs)}.card-danger{border-color:var(--bad-border)}.card-danger>.card-head{background:var(--bad-bg);border-bottom-color:var(--bad-border)}.card-danger>.card-head h2{color:var(--bad-text);align-items:center;gap:.4rem;display:flex}.card-danger>.card-head h2:before{content:"";width:12px;height:12px;-webkit-mask:var(--icon-warning) center / contain no-repeat;-webkit-mask:var(--icon-warning) center / contain no-repeat;mask:var(--icon-warning) center / contain no-repeat;background:currentColor}.grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.5rem;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:.6rem;display:grid}.grid-2>.card{margin-bottom:0}.grid-2+.grid-2,.grid-2+.card{margin-top:.6rem}.section-title{color:var(--text-muted);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.5rem;margin:.2rem 0 .35rem;font-weight:600;display:flex}.section-title:after{content:"";background:var(--border-subtle);flex:1;height:1px}.status-strip{border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;margin-bottom:.6rem;display:flex}.status-tile{border-right:1px solid var(--border-subtle);min-width:150px;color:var(--text);flex-direction:column;gap:1px;padding:.35rem .75rem;text-decoration:none;display:flex}.status-tile:last-child{border-right:0}a.status-tile:hover{background:var(--hover);text-decoration:none}.status-tile-label{color:var(--text-muted);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.status-tile-value{font-size:var(--fs-sm);font-weight:600}.status-tile-detail{color:var(--text-muted);font-size:var(--fs-xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.status-tile-bad{background:var(--bad-bg)}.stats{border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;margin-bottom:.6rem;display:flex}.stat{border-right:1px solid var(--border-subtle);flex-direction:column;gap:1px;min-width:108px;padding:.35rem .75rem;display:flex}.stat:last-child{border-right:0}.stat-label{color:var(--text-muted);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;align-items:center;gap:.3rem;font-weight:600;display:flex}.stat-value{font-size:var(--fs-kpi);text-align:left;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-weight:600;line-height:1.25}.stat-value.num{white-space:normal}.stat .small{font-size:var(--fs-2xs)}.stat-ok .stat-value{color:var(--ok-text)}.stat-warn .stat-value{color:var(--warn-text)}.stat-bad{background:var(--bad-bg)}.stat-bad .stat-value{color:var(--bad-text)}.stat-muted .stat-value{color:var(--text-muted)}.stat-ok .stat-label:before,.stat-warn .stat-label:before,.stat-bad .stat-label:before{content:"";background:currentColor;flex:none;width:6px;height:6px}.stat-ok .stat-label:before{color:var(--ok);border-radius:50%}.stat-warn .stat-label:before{color:var(--warn);clip-path:polygon(50% 0,100% 100%,0 100%);width:7px}.stat-bad .stat-label:before{color:var(--bad);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);width:7px;height:7px}.stack{flex-direction:column;gap:.55rem;display:flex}.stack.center{align-items:center}.row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.row.end{justify-content:flex-end}.center-row{justify-content:center}.spacer{flex:1}.muted-text{color:var(--text-muted)}.small{font-size:var(--fs-xs);color:var(--text-muted)}.error-text{color:var(--bad-text)}.warn-text{color:var(--warn-text)}.ok-text,.pos-text{color:var(--ok-text)}.neg-text{color:var(--bad-text)}.pnl-cell{font-weight:600}.callout{border:1px solid var(--warn-border);background:var(--warn-bg);border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-sm);border-left-width:2px;align-items:flex-start;gap:.45rem;margin-bottom:.5rem;padding:.35rem .6rem;display:flex}.callout:before{content:"";background:var(--warn);width:12px;height:12px;-webkit-mask:var(--icon-warning) center / contain no-repeat;-webkit-mask:var(--icon-warning) center / contain no-repeat;mask:var(--icon-warning) center / contain no-repeat;flex:none;margin-top:2px}.callout-warn{border-color:var(--warn-border);background:var(--warn-bg)}.callout-info{border-color:var(--info-border);background:var(--info-bg)}.callout-info:before{background:var(--accent-text);-webkit-mask-image:var(--icon-info);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.callout-bad{border-color:var(--bad-border);background:var(--bad-bg)}.callout-bad:before{background:var(--bad-text);-webkit-mask-image:var(--icon-error);-webkit-mask-image:var(--icon-error);mask-image:var(--icon-error)}.btn{appearance:none;min-height:var(--control-h);background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-sm);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background-color .1s var(--ease), border-color .1s var(--ease), color .1s var(--ease);justify-content:center;align-items:center;gap:.35rem;padding:0 .65rem;font-weight:500;line-height:1.2;text-decoration:none;display:inline-flex;position:relative}.btn:hover:not(:disabled){background:var(--surface-3);border-color:var(--border-strong);text-decoration:none}.btn:active:not(:disabled){background:var(--pressed)}.btn:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.btn[aria-busy=true]{cursor:progress;pointer-events:none}.btn[aria-busy=true]:after{content:"";border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:10px;height:10px;animation:.7s linear infinite tep-spin}.btn-sm{min-height:var(--control-h-sm);font-size:var(--fs-xs);padding:0 .5rem}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-solid)}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent), var(--palette-white) 10%);border-color:color-mix(in srgb, var(--accent), var(--palette-white) 10%)}.btn-primary:active:not(:disabled){background:color-mix(in srgb, var(--accent), var(--palette-black) 18%)}.btn-danger{background:var(--bad-strong);border-color:var(--bad);color:var(--text-on-solid)}.btn-danger:before{content:"";width:11px;height:11px;-webkit-mask:var(--icon-warning) center / contain no-repeat;-webkit-mask:var(--icon-warning) center / contain no-repeat;mask:var(--icon-warning) center / contain no-repeat;background:currentColor;flex:none}.btn-danger:hover:not(:disabled){background:var(--bad);border-color:var(--bad-text)}.btn-danger:active:not(:disabled){background:color-mix(in srgb, var(--bad-strong), var(--palette-black) 20%)}.btn-sm.btn-danger{border-color:var(--bad-border);color:var(--bad-text);background:0 0}.btn-sm.btn-danger:hover:not(:disabled){background:var(--bad-strong);border-color:var(--bad);color:var(--text-on-solid)}.btn-estop:before{content:"";width:11px;height:11px;-webkit-mask:var(--icon-warning) center / contain no-repeat;-webkit-mask:var(--icon-warning) center / contain no-repeat;mask:var(--icon-warning) center / contain no-repeat;background:currentColor;flex:none}.btn-warn{border-color:var(--warn-border);color:var(--warn-text);background:0 0}.btn-warn:hover:not(:disabled){background:var(--warn-bg);border-color:var(--warn)}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--hover);color:var(--text);border-color:#0000}.btn-icon{border-radius:var(--radius-sm);min-width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0 .25rem;font-size:1rem;line-height:1;display:inline-flex}.btn-icon:hover{color:var(--text);background:var(--hover)}.btn-group{flex-wrap:wrap;gap:.25rem;display:inline-flex}.btn[aria-pressed=true]{background:var(--row-selected);border-color:var(--accent);color:var(--text)}.btn[aria-disabled=true]{cursor:not-allowed}.btn[aria-disabled=true]:not([aria-pressed=true]):hover:not(:disabled){background:var(--surface-2);border-color:var(--border)}.btn[aria-disabled=true][aria-pressed=true]:hover:not(:disabled){background:var(--row-selected);border-color:var(--accent)}.mode-options{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.6rem;display:grid}.mode-option{text-align:left;white-space:normal;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:.25rem;padding:.6rem .8rem}.mode-option-head{align-items:center;gap:.5rem;display:flex}.mode-option-label{font-size:var(--fs-md);font-weight:650}.linklike{color:var(--accent-text);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.linklike:hover{text-decoration:underline}.seg{border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.seg>button{appearance:none;border:0;border-right:1px solid var(--border);color:var(--text-muted);font:inherit;font-size:var(--fs-xs);height:var(--control-h-sm);cursor:pointer;white-space:nowrap;background:0 0;padding:0 .55rem}.seg>button:last-child{border-right:0}.seg>button:hover{background:var(--hover);color:var(--text)}.seg>button[aria-pressed=true]{background:var(--surface-2);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}input,select,textarea{background:var(--surface-inset);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:var(--control-h);font:inherit;font-size:var(--fs-sm);min-width:0;padding:0 .45rem}textarea{min-height:4rem;padding:.3rem .45rem}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--border-strong)}input:focus,select:focus,textarea:focus,input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--accent);outline:none}input::placeholder,textarea::placeholder{color:var(--text-faint)}input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--bad)}input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}input[type=checkbox],input[type=radio]{width:13px;height:13px;min-height:0;accent-color:var(--accent);cursor:pointer;margin:0;padding:0}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:1px solid var(--focus);outline-offset:2px}input[type=number]{font-variant-numeric:tabular-nums;width:7rem}select{cursor:pointer;padding-right:.25rem}.input-sm,select.input-sm{min-height:var(--control-h-sm);font-size:var(--fs-xs)}option,optgroup{background:var(--surface-2);color:var(--text)}input:-webkit-autofill{-webkit-text-fill-color:var(--text);caret-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface-inset) inset;box-shadow:0 0 0 1000px var(--surface-inset) inset;transition:background-color 600000s,color 600000s}input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text);caret-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface-inset) inset;box-shadow:0 0 0 1000px var(--surface-inset) inset;transition:background-color 600000s,color 600000s}input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);caret-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface-inset) inset;box-shadow:0 0 0 1000px var(--surface-inset) inset;transition:background-color 600000s,color 600000s}textarea:-webkit-autofill{-webkit-text-fill-color:var(--text);caret-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface-inset) inset;box-shadow:0 0 0 1000px var(--surface-inset) inset;transition:background-color 600000s,color 600000s}select:-webkit-autofill{-webkit-text-fill-color:var(--text);caret-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface-inset) inset;box-shadow:0 0 0 1000px var(--surface-inset) inset;transition:background-color 600000s,color 600000s}.field{flex-direction:column;gap:.2rem;display:flex}.field label,.field .label{font-size:var(--fs-xs);color:var(--text-muted)}.field-inline{align-items:center;gap:.4rem;display:flex}.form-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));align-items:end;gap:.5rem .8rem;display:grid}.filters{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius);flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin-bottom:.5rem;padding:.4rem .6rem;display:flex}fieldset{border:1px solid var(--border-subtle);border-radius:var(--radius);margin:0;padding:.45rem .6rem}fieldset:disabled{opacity:.8}legend{color:var(--text-muted);font-size:var(--fs-xs);padding:0 .25rem}.switch{border:1px solid var(--border);border-radius:var(--radius-sm);height:var(--control-h-sm);color:var(--text-muted);cursor:pointer;font:inherit;font-size:var(--fs-xs);background:0 0;align-items:center;gap:.4rem;padding:0 .5rem 0 .2rem;font-weight:600;display:inline-flex}.switch:hover:not(:disabled){border-color:var(--border-strong)}.switch-knob{border-radius:var(--radius-sm);background:var(--neutral);width:12px;height:12px}.switch.on{border-color:var(--ok-border);color:var(--ok-text);background:var(--ok-bg)}.switch.on .switch-knob{background:var(--ok)}.switch:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.badge,.pill{font-size:var(--fs-xs);white-space:nowrap;letter-spacing:.01em;vertical-align:middle;color:var(--text-muted);align-items:center;gap:.3rem;font-weight:600;line-height:1.3;text-decoration:none;display:inline-flex}.badge:before,.pill:before{content:"";background:currentColor;flex:none;width:6px;height:6px}.badge-ok,.pill-ok{color:var(--ok-text)}.badge-ok:before,.pill-ok:before{border-radius:50%}.badge-warn,.pill-warn{color:var(--warn-text)}.badge-warn:before,.pill-warn:before{clip-path:polygon(50% 0,100% 100%,0 100%);width:7px;height:6px}.badge-bad,.pill-bad{color:var(--bad-text)}.badge-bad:before,.pill-bad:before{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);width:7px;height:7px}.badge-info,.pill-info{color:var(--accent-text)}.badge-info:before,.pill-info:before{background:0 0;border:1.5px solid;border-radius:50%;width:7px;height:7px}.badge-muted,.pill-muted{color:var(--text-muted)}.badge-muted:before,.pill-muted:before{width:7px;height:2px}a.pill:hover{filter:brightness(1.15);text-decoration:none}.side{align-items:center;gap:.25rem;font-weight:600;display:inline-flex}.side:before{content:"";border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0}.side-buy{color:var(--buy)}.side-buy:before{border-bottom:5px solid}.side-sell{color:var(--sell)}.side-sell:before{border-top:5px solid}.table-wrap{border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--bg);overflow:auto}.table-scroll{max-height:max(320px,100vh - 220px)}table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-table)}th,td{height:var(--row-h);border-bottom:1px solid var(--border-subtle);text-align:left;vertical-align:middle;padding:0 .55rem}td{padding-top:2px;padding-bottom:2px}th{background:var(--surface);color:var(--text-muted);font-weight:500;font-size:var(--fs-xs);z-index:1;border-bottom-color:var(--border);white-space:nowrap;position:sticky;top:0}tbody th{color:var(--text);font-size:inherit;white-space:normal;border-bottom-color:var(--border-subtle);background:0 0;font-weight:600;position:static}tbody tr:hover{background:var(--row-hover)}tbody tr:last-child td{border-bottom:0}caption{text-align:left;color:var(--text-muted);font-size:var(--fs-xs);background:var(--bg);padding:.3rem .55rem}td.actions{white-space:nowrap}.row-selected,tr.row-selected{background:var(--row-selected)!important}.row-bad{background:color-mix(in srgb, var(--bad) 8%, transparent)}.row-bad>td:first-child{box-shadow:inset 2px 0 0 var(--bad)}.row-warn>td:first-child{box-shadow:inset 2px 0 0 var(--warn)}.row-has-pos>td:first-child{box-shadow:inset 2px 0 0 var(--ok)}.table-dense td{white-space:nowrap}.table-dense td.wrap{white-space:normal;min-width:14rem}.state{color:var(--text-muted);text-align:center;border:1px dashed var(--border);border-radius:var(--radius);font-size:var(--fs-sm);padding:.8rem}.state-error{color:var(--bad-text);border-color:var(--bad-border);background:var(--bad-bg);justify-content:center;align-items:center;gap:.6rem;display:flex}.dg{background:var(--bg);flex:1;min-height:0;position:relative;overflow:auto}.dg table{table-layout:fixed;width:max-content;min-width:100%}.dg th{padding:0;position:sticky;top:0}.dg-th{height:var(--row-h);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-muted);width:100%;font:inherit;font-size:var(--fs-xs);text-align:left;background:0 0;border:0;align-items:center;gap:.25rem;padding:0 .5rem;display:flex}.dg-th:hover{color:var(--text);background:var(--hover)}.dg-th.num{justify-content:flex-end}.dg-th[data-sort]:after{content:"";border-left:3px solid #0000;border-right:3px solid #0000;flex:none}.dg-th[data-sort=asc]:after{border-bottom:4px solid var(--accent-text)}.dg-th[data-sort=desc]:after{border-top:4px solid var(--accent-text)}.dg-th[data-sort]{color:var(--text)}.dg-resize{cursor:col-resize;z-index:2;width:7px;height:100%;position:absolute;top:0;right:-3px}.dg-resize:after{content:"";background:var(--border);width:1px;position:absolute;top:5px;bottom:5px;left:3px}.dg-resize:hover:after,.dg-resize:focus-visible:after{background:var(--accent)}.dg td{text-overflow:ellipsis;white-space:nowrap;height:var(--row-h);padding:0 .5rem;overflow:hidden}.dg tbody tr{cursor:default}.dg tbody tr.clickable{cursor:pointer}.dg-spacer td{border:0;height:auto;padding:0}.dg-empty{text-align:center;color:var(--text-muted);font-size:var(--fs-sm);padding:1rem}.lat-bad{color:var(--bad-text);font-weight:600}.lat-bad:before{content:"";vertical-align:-1px;width:9px;height:9px;-webkit-mask:var(--icon-warning) center / contain no-repeat;-webkit-mask:var(--icon-warning) center / contain no-repeat;mask:var(--icon-warning) center / contain no-repeat;background:currentColor;margin-right:3px;display:inline-block}.ws{background:var(--border-subtle);flex-direction:column;flex:1;min-height:0;display:flex}.ws-toolbar{background:var(--surface);border-bottom:1px solid var(--border);height:30px;font-size:var(--fs-xs);flex:none;align-items:center;gap:.5rem;padding:0 .6rem;display:flex;overflow:auto hidden}.ws-toolbar h1{font-size:var(--fs-sm);white-space:nowrap;font-weight:600}.ws-toolbar .sep{background:var(--border);flex:none;align-self:stretch;width:1px;margin:6px .15rem}.ws-toolbar>*{flex:none}.ws-toolbar>.spacer{flex:1}@media (max-width:1500px){.ws-path{display:none}}.ws-toolbar select{min-height:var(--control-h-sm);font-size:var(--fs-xs)}.split{flex:1;min-width:0;min-height:0;display:flex}.split.col{flex-direction:column}.split-pane{background:var(--bg);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.split-handle{background:var(--border-subtle);z-index:3;touch-action:none;flex:none;position:relative}.split:not(.col)>.split-handle{cursor:col-resize;width:4px}.split.col>.split-handle{cursor:row-resize;height:4px}.split-handle:hover,.split-handle:focus-visible,.split-handle.dragging{background:var(--accent);outline:none}.pane{background:var(--bg);flex-direction:column;flex:1;min-height:0;display:flex}.pane-head{background:var(--surface);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:.4rem;height:28px;padding:0 .3rem 0 .6rem;display:flex;overflow:hidden}.pane-title{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);white-space:nowrap;font-weight:700}.pane-tabs{align-items:stretch;height:100%;margin-left:-.6rem;display:flex;overflow:auto hidden}.pane-tab{appearance:none;color:var(--text-muted);font:inherit;font-size:var(--fs-xs);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:.35rem;height:100%;padding:0 .7rem;font-weight:600;display:inline-flex}.pane-tab:hover{color:var(--text);background:var(--hover)}.pane-tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.pane-tab .count{font-variant-numeric:tabular-nums;color:var(--text-muted);font-weight:500}.pane-tab .count.bad{color:var(--bad-text);font-weight:700}.pane-tools{align-items:center;gap:.3rem;margin-left:auto;padding-left:.4rem;display:flex}.pane-tools input,.pane-tools select{min-height:var(--control-h-sm);font-size:var(--fs-xs)}.pane-tools input[type=search]{width:11rem}.pane-body{flex:1;min-height:0;overflow:auto}.pane-sub{border-bottom:1px solid var(--border-subtle);min-height:30px;font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;flex:none;align-items:center;gap:3px .5rem;padding:3px .6rem;display:flex}.pane-collapse{appearance:none;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.pane-collapse:hover{background:var(--hover);color:var(--text)}.pane-collapse .ico{--ico:var(--icon-chevron);width:9px;height:9px}.collapsed-strip{background:var(--surface);color:var(--text-muted);font-size:var(--fs-xs);flex:none;align-items:center;gap:.5rem;display:flex}.collapsed-strip.vertical{border-left:1px solid var(--border);flex-direction:column;width:28px;padding:.4rem 0}.collapsed-strip.vertical .strip-label{writing-mode:vertical-rl;letter-spacing:.08em;text-transform:uppercase;font-size:var(--fs-2xs);font-weight:700;transform:rotate(180deg)}.tree{min-height:0;font-size:var(--fs-sm);flex:1;overflow:auto}.tree-row{height:calc(var(--row-h) + 1px);cursor:pointer;white-space:nowrap;border-bottom:1px solid color-mix(in srgb, var(--border-subtle) 50%, transparent);grid-template-columns:auto 14px 10px minmax(0,1fr) auto;align-items:center;gap:.35rem;padding-right:.5rem;display:grid;position:relative}.tree-row:hover{background:var(--row-hover)}.tree-row.selected{background:var(--row-selected)}.tree-row.selected:before{content:"";background:var(--accent);width:2px;position:absolute;top:0;bottom:0;left:0}.tree-row.related:not(.selected){background:color-mix(in srgb, var(--accent) 7%, transparent)}.tree-row.dimmed{opacity:.55}.tree-indent{display:block}.tree-chev{appearance:none;width:14px;height:14px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.tree-chev:hover{color:var(--text);background:var(--hover)}.tree-chev .ico{--ico:var(--icon-chevron);width:9px;height:9px;transition:transform .1s var(--ease)}.tree-chev[aria-expanded=true] .ico{transform:rotate(90deg)}.tree-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.tree-name .kind{color:var(--text-faint);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;margin-right:.35rem}.tree-name .sub{color:var(--text-muted);font-size:var(--fs-xs);margin-left:.35rem}.tree-row.kind-master .tree-name,.tree-row.kind-node .tree-name{font-weight:600}.tree-row.has-pos .tree-name{color:var(--text);font-weight:600}.tree-row.has-pos:after{content:"";background:var(--ok);width:2px;position:absolute;top:4px;bottom:4px;left:0}.tree-row.selected.has-pos:after{left:2px}.tree-row.error-row .tree-name{color:var(--bad-text)}.tree-meta{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--text-muted);align-items:center;gap:.45rem;display:flex}.tree-meta .m-pos{color:var(--ok-text);font-weight:600}.tree-meta .m-wrk{color:var(--warn-text)}.tree-meta .m-err{color:var(--bad-text);font-weight:700}.tree-pos{color:var(--text)}.tree-section-row{cursor:default;background:color-mix(in srgb, var(--surface) 60%, transparent)}.tree-section-row:hover{background:color-mix(in srgb, var(--surface) 60%, transparent)}.dot{background:var(--text-faint);border-radius:50%;flex:none;justify-self:center;width:7px;height:7px;display:inline-block}.dot-online{background:var(--ok)}.dot-degraded,.dot-connecting{background:var(--warn);clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0;width:8px}.dot-offline,.dot-disabled{border:1.5px solid var(--neutral);background:0 0}.dot-error{background:var(--bad);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);border-radius:0;width:8px;height:8px}.dot-unknown{border:1.5px dashed var(--text-faint);background:0 0}.insp{font-size:var(--fs-sm);padding:.5rem .6rem .8rem}.insp h2{font-size:var(--fs-base);font-weight:600}.insp h3{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);margin:.75rem 0 .3rem;padding-bottom:.2rem}.insp-actions{flex-direction:column;gap:.35rem;display:flex}.insp-actions .btn-group{gap:.25rem}.log-time{color:var(--text-muted);font-variant-numeric:tabular-nums}.sev{font-size:var(--fs-2xs);letter-spacing:.04em;align-items:center;gap:.25rem;font-weight:700;display:inline-flex}.sev:before{content:"";background:currentColor;flex:none;width:6px;height:6px}.sev-critical,.sev-error{color:var(--bad-text)}.sev-critical:before,.sev-error:before{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);width:7px;height:7px}.sev-warn{color:var(--warn-text)}.sev-warn:before{clip-path:polygon(50% 0,100% 100%,0 100%);width:7px}.sev-info{color:var(--text-muted)}.sev-info:before{border-radius:50%}.node-card{background:var(--bg);border:1px solid var(--border-subtle);border-radius:var(--radius);flex-direction:column;gap:.3rem;padding:.45rem .6rem;display:flex;position:relative}.node-card h3{font-size:var(--fs-base);margin:0}.gw-panel{background:var(--bg);border:1px solid var(--border-subtle);border-radius:var(--radius);flex-direction:column;gap:.45rem;margin:.6rem 0;padding:.5rem .6rem;display:flex}.gw-panel h3{font-size:var(--fs-sm);margin:0}.gw-panel .card-head{background:0 0;border:0;min-height:0;margin:0;padding:0}.gw-actions .btn-group+.btn-group{margin-top:.3rem}.gw-actions .small{margin:.3rem 0 0}.node-card dl,.kv{font-size:var(--fs-sm);grid-template-columns:max-content 1fr;gap:.12rem .8rem;margin:0;display:grid}.kv dt,.node-card dt{color:var(--text-muted)}.kv dd,.node-card dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;min-width:0;margin:0}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-bottom:1px solid var(--border-subtle);font-size:var(--fs-sm);grid-template-columns:9rem 6.5rem 1fr;align-items:start;gap:.5rem;padding:.2rem .4rem;display:grid}.timeline.timeline-dated li{grid-template-columns:11rem 5.5rem 1fr}.timeline li:last-child{border-bottom:0}.timeline li:hover{background:var(--row-hover)}.steps{flex-wrap:wrap;align-items:center;gap:.2rem;display:flex}.step{font-size:var(--fs-xs);border-radius:var(--radius-sm);color:var(--text-muted);border:1px solid var(--border);white-space:nowrap;padding:0 .35rem}.step.done{color:var(--accent-text);border-color:var(--info-border)}.step.final-ok{color:var(--ok-text);border-color:var(--ok-border)}.step.final-bad{color:var(--bad-text);border-color:var(--bad-border)}.step-arrow{color:var(--text-faint);font-size:var(--fs-xs)}.bars{flex-direction:column;gap:.2rem;display:flex}.bar-row{font-size:var(--fs-sm);grid-template-columns:10rem 1fr 7rem;align-items:center;gap:.5rem;display:grid}.bar-track{background:var(--surface);border-radius:1px;height:10px;position:relative;overflow:hidden}.bar-track:before{content:"";background:var(--border-strong);width:1px;position:absolute;top:0;bottom:0;left:50%}.bar{position:absolute;top:1px;bottom:1px}.bar.pos{background:var(--ok);left:50%}.bar.neg{background:var(--bad);right:50%}.progress{background:var(--surface-2);border-radius:1px;height:4px;position:relative;overflow:hidden}.progress>span{background:var(--accent);transition:width .2s var(--ease);position:absolute;top:0;bottom:0;left:0}.modal{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(440px,94vw);max-height:90vh;box-shadow:var(--shadow-float);padding:0;overflow:hidden}.modal[open]{flex-direction:column;display:flex}.modal-wide{width:min(760px,96vw)}.modal::backdrop{background:var(--backdrop)}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;height:34px;padding:0 .5rem 0 .8rem;display:flex}.modal-head h2{font-size:var(--fs-base);align-items:center;gap:.4rem;font-weight:600;display:flex}.modal-body{font-size:var(--fs-sm);padding:.8rem;overflow:auto}.modal-danger{border-color:var(--bad-border)}.modal-danger .modal-head{border-top:2px solid var(--bad);background:var(--bad-bg)}.modal-danger .modal-head h2:before{content:"";background:var(--bad-text);width:13px;height:13px;-webkit-mask:var(--icon-warning) center / contain no-repeat;-webkit-mask:var(--icon-warning) center / contain no-repeat;mask:var(--icon-warning) center / contain no-repeat;flex:none}.toasts{right:.75rem;bottom:calc(var(--statusbar-h) + .6rem);z-index:200;flex-direction:column;gap:.3rem;max-width:min(420px,92vw);display:flex;position:fixed}.toasts>div{flex-direction:column;gap:.3rem;display:flex}.toast{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);border-left:2px solid var(--accent);box-shadow:var(--shadow-float);color:var(--text);font-size:var(--fs-sm);justify-content:space-between;align-items:flex-start;gap:.5rem;padding:.4rem .4rem .4rem 1.8rem;display:flex;position:relative}.toast:before{content:"";background:var(--accent-text);width:12px;height:12px;-webkit-mask:var(--icon-info) center / contain no-repeat;-webkit-mask:var(--icon-info) center / contain no-repeat;mask:var(--icon-info) center / contain no-repeat;position:absolute;top:.55rem;left:.6rem}.toast-ok{border-left-color:var(--ok)}.toast-ok:before{background:var(--ok-text);-webkit-mask-image:var(--icon-check);-webkit-mask-image:var(--icon-check);mask-image:var(--icon-check)}.toast-error{border-left-color:var(--bad);border-color:var(--bad-border)}.toast-error:before{background:var(--bad-text);-webkit-mask-image:var(--icon-error);-webkit-mask-image:var(--icon-error);mask-image:var(--icon-error)}.tooltip{z-index:400;background:var(--surface-2);max-width:min(420px,90vw);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-float);font-size:var(--fs-xs);white-space:pre-line;overflow-wrap:anywhere;pointer-events:none;margin:0;padding:.25rem .45rem;line-height:1.4;position:fixed;inset:auto}.tooltip:not(:popover-open){display:none}.secret-once{border:1px solid var(--warn-border);background:var(--warn-bg);border-radius:var(--radius);flex-direction:column;gap:.5rem;padding:.6rem;display:flex}.secret-value{background:var(--surface-inset);border:1px solid var(--border);border-radius:var(--radius-sm);word-break:break-all;-webkit-user-select:all;user-select:all;flex:1;padding:.3rem .5rem}.json{background:var(--surface-inset);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-word;max-height:14rem;font-size:var(--fs-xs);color:var(--text);margin:0;padding:.35rem .5rem;overflow:auto}details>summary{cursor:pointer;color:var(--accent-text)}.login-wrap{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(360px,100%);margin:0;padding:1rem 1.1rem .9rem}.login-brand{align-items:center;gap:.5rem;display:flex}.login-brand .brand-mark{font-size:var(--fs-xs);padding:0 .35rem;line-height:18px}.login-card h1{font-size:var(--fs-lg);margin:0}.login-card .btn-primary{min-height:30px;font-weight:600}.login-card input{min-height:30px}.login-foot{color:var(--text-muted);font-size:var(--fs-xs);border-top:1px solid var(--border-subtle);align-items:center;gap:.35rem;margin:.1rem 0 0;padding-top:.55rem;display:flex}.tabs{flex-wrap:wrap;gap:.25rem;margin-bottom:.5rem;display:inline-flex}.kv-wide{grid-template-columns:max-content 1fr}.handoff{text-align:center}.topo-page{flex-direction:column;gap:.5rem;display:flex}.topo-kpis{border-bottom:1px solid var(--border-subtle);background:var(--surface);flex-wrap:wrap;display:flex}.topo-kpis .stat{font-family:var(--sans);border-radius:0}.topo-kpis .stat-value{font-size:var(--fs-base)}.topo-pnl-line{font-variant-numeric:tabular-nums;font-size:var(--fs-sm);flex-wrap:wrap;align-items:baseline;gap:.7rem;display:flex}.topo-pnl-line strong{font-size:var(--fs-base)}.topo-toolbar{gap:.4rem}.topo-trace-bar{border-bottom:1px solid var(--border-subtle);font-size:var(--fs-xs);background:var(--bg);flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:.3rem .6rem;display:flex}.topo-trace-bar select{min-width:20rem;min-height:var(--control-h-sm);font-size:var(--fs-xs)}.topo-canvas{background:var(--topo-canvas);flex:1;min-height:240px;overflow:hidden}.topo-empty{justify-content:center;align-items:center;display:flex}.topo-canvas .react-flow{--xy-background-color:var(--topo-canvas);--xy-background-pattern-dots-color-default:var(--topo-grid);--xy-controls-button-background-color:var(--surface);--xy-controls-button-background-color-hover:var(--surface-2);--xy-controls-button-color:var(--text);--xy-controls-button-color-hover:var(--text);--xy-controls-button-border-color:var(--border);--xy-controls-box-shadow:none;--xy-minimap-background-color:var(--surface);--xy-minimap-mask-background-color:color-mix(in srgb, var(--palette-main) 70%, transparent);--xy-minimap-mask-stroke-color:var(--border-strong);--xy-attribution-background-color:transparent;--xy-edge-label-background-color:var(--surface);--xy-edge-label-color:var(--text);--xy-selection-background-color:var(--row-selected);--xy-selection-border:1px dotted var(--accent)}.topo-canvas .react-flow__attribution a{color:var(--text-faint)}.topo-canvas .react-flow__minimap,.topo-canvas .react-flow__controls{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.topo-canvas .react-flow__controls-button svg{fill:currentColor}.topo-canvas .react-flow__handle{background:var(--border-strong);border:0;width:5px;min-width:0;height:5px;min-height:0}.topo-card{box-sizing:border-box;background:var(--topo-card);border:1px solid var(--border);border-left:2px solid var(--topo-idle);border-radius:var(--radius-sm);font-family:var(--sans);color:var(--text);cursor:pointer;flex-direction:column;gap:.1rem;padding:.3rem .5rem;font-size:.72rem;display:flex;overflow:hidden}.topo-card:hover{border-color:var(--border-strong)}.topo-card-coordinator{border-left-color:var(--accent)}.topo-card-master{border-left-color:var(--accent-text)}.topo-card-group,.topo-card-nodegroup{border-style:dashed}.topo-avail-online{border-left-color:var(--ok)}.topo-avail-degraded,.topo-avail-connecting{border-left-color:var(--warn)}.topo-avail-offline,.topo-avail-disabled{border-left-color:var(--topo-offline);opacity:.8}.topo-card-has-pos{border-color:var(--ok-border)}.topo-card-error{border-color:var(--bad-border)}.topo-card-selected{outline:1px solid var(--accent);outline-offset:1px}.topo-card-highlighted{border-color:var(--accent)}.topo-card-dimmed{opacity:.3}.topo-card-head{align-items:center;gap:.3rem;display:flex}.topo-kind{letter-spacing:.08em;color:var(--text-muted);font-size:.6rem}.topo-dot{background:var(--text-faint);border-radius:50%;flex:none;width:.5rem;height:.5rem;display:inline-block}.topo-dot-online{background:var(--ok)}.topo-dot-degraded,.topo-dot-connecting{background:var(--warn);clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0;width:.58rem}.topo-dot-offline,.topo-dot-disabled{border:1.5px solid var(--topo-offline);background:0 0}.topo-dot-unknown{border:1.5px dashed var(--text-faint);background:0 0}.topo-sim{letter-spacing:.06em;color:var(--warn-text);border:1px solid var(--warn-border);border-radius:var(--radius-sm);padding:0 .2rem;font-size:.6rem;font-weight:700}.topo-toggle{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;width:1.15rem;height:1.05rem;line-height:1;font:inherit;margin-left:auto;padding:0;font-weight:700}.topo-toggle:hover{border-color:var(--accent)}.topo-title{white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;font-weight:600;overflow:hidden}.topo-sub{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.66rem;overflow:hidden}.topo-metrics{flex-wrap:wrap;gap:.25rem;margin-top:auto;display:flex}.topo-m{border-radius:var(--radius-sm);border:1px solid var(--border);white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:.15rem;padding:0 .2rem;font-size:.62rem}.topo-m-pos{color:var(--ok-text);border-color:var(--ok-border);font-weight:700}.topo-m-wrk{color:var(--warn-text);border-color:var(--warn-border)}.topo-m-err{color:var(--bad-text);border-color:var(--bad-border);font-weight:700}.topo-m-warn{color:var(--warn-text);border-style:dashed}.topo-m-pnl{color:var(--text-muted);margin-left:0}.topo-edge-label{pointer-events:all;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);gap:2px;padding:0 3px;font-size:9px;display:flex;position:absolute}.topo-mk{padding:0 2px}.topo-mk-error{color:var(--bad-text);font-weight:700}.topo-mk-offline{color:var(--text-muted)}.topo-mk-position{color:var(--ok-text)}.topo-mk-working,.topo-mk-pending{color:var(--warn-text)}.topo-inspector{font-size:var(--fs-sm)}.topo-inspector h2{font-size:var(--fs-base)}.topo-inspector h3{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-top:.75rem}.topo-inspector .kv{margin-top:.4rem}.topo-list{font-size:var(--fs-sm);flex-direction:column;gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.topo-scroll{max-height:14rem;overflow:auto}.topo-events li{font-size:var(--fs-xs)}.topo-links{flex-direction:column;gap:.25rem;display:flex}.topo-row-warn td{color:var(--warn-text)}.topo-legend ul{font-size:var(--fs-xs);flex-direction:column;gap:.25rem;margin:.25rem 0;padding:0;list-style:none;display:flex}.topo-swatch{vertical-align:middle;border-top:2px solid var(--topo-idle);width:2rem;height:0;margin-right:.35rem;display:inline-block}.topo-swatch-pos{border-top:4px solid var(--ok)}.topo-swatch-idle{border-top:1.5px solid var(--topo-idle)}.topo-swatch-wrk{border-top:2px dashed var(--warn)}.topo-swatch-err{border-top:2px solid var(--bad)}.topo-swatch-off{border-top:2px solid var(--topo-offline)}.topo-timeline{font-size:var(--fs-sm)}.topo-simulated .topo-canvas{outline:1px solid var(--warn-border);outline-offset:-1px}.topo-canvas:fullscreen{background:var(--topo-canvas);border:0;border-radius:0;outline:0;width:100vw;height:100vh;max-height:none}.topo-canvas::backdrop{background:var(--palette-main)}.topo-canvas-fullscreen-fallback{z-index:150;background:var(--topo-canvas);border:0;border-radius:0;outline:0;width:auto;height:auto;min-height:0;position:fixed;inset:0}.topo-fs-btn{box-shadow:var(--shadow-float)}
