:root{color:#14201f;background:#f4f1e8;font-family:Noto Sans SC,Source Han Sans SC,Microsoft YaHei,sans-serif;font-synthesis:none;--paper: #f4f1e8;--surface: #fbfaf5;--ink: #14201f;--muted: #5f6f6a;--line: #d9d5ca;--line-strong: #b9c4bf;--teal: #087f7a;--teal-2: #35a5a0;--teal-soft: #dcefee;--orange: #a34b00;--orange-soft: #faeadc;--blue: #326b96;--blue-soft: #e4eef6;--red: #c94338;--shadow: 0 16px 48px rgba(40, 55, 49, .075);--mono: "Cascadia Mono", "SFMono-Regular", Consolas, monospace;--serif: "Noto Serif SC", "Source Han Serif SC", SimSun, serif;--type-micro: 10px;--type-caption: 11px;--type-supporting: 12px;--type-control: 13px;--type-body: 14px;--type-prominent: 15px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-width:320px;background-color:var(--paper);background-image:radial-gradient(circle at 1px 1px,rgba(20,32,31,.06) 1px,transparent 1px);background-size:18px 18px;font-size:16px}button,input,select,textarea{color:inherit;font:inherit}button,select{cursor:pointer}a{color:inherit}:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.console{min-height:100vh;display:grid;grid-template:64px minmax(0,1fr) / 224px minmax(0,1fr)}.topbar{grid-column:1 / -1;display:flex;position:sticky;z-index:20;top:0;min-width:0;border-bottom:1px solid var(--line-strong);background:#fbfaf5f0;backdrop-filter:blur(10px)}.brand{width:224px;flex:0 0 224px;padding:0 20px;display:flex;align-items:center;gap:12px;border-right:1px solid var(--line)}.brand-mark{width:29px;height:29px;flex:0 0 auto;border:1px solid var(--teal);color:var(--teal);display:grid;place-items:center;position:relative;font:700 11px var(--mono)}.brand-mark:before{content:"";position:absolute;inset:5px -3px;border-block:1px solid var(--teal);background:var(--surface);z-index:-1}.brand>div strong{display:block;font:700 14px var(--mono);letter-spacing:.18em}.brand>div small{display:block;color:var(--muted);font:9px var(--mono);letter-spacing:.13em;margin-top:2px}.top-context{flex:1;display:flex;align-items:center;gap:8px;padding:0 24px;min-width:0}.top-context span{color:var(--muted);font-size:11px}.top-context strong{font:600 15px var(--serif)}.top-actions{display:flex;align-items:center;gap:12px;padding:0 20px}.gateway-select{height:42px;min-width:132px;border:1px solid var(--teal);background:var(--teal-soft);display:grid;align-content:center;padding:3px 8px}.gateway-select span{color:var(--muted);font:8px var(--mono);letter-spacing:.12em}.gateway-select select{border:0;background:transparent;color:var(--teal);font:600 11px var(--mono);padding:0;outline:0}.sync-state{color:var(--muted);font:10px var(--mono);display:flex;align-items:center;gap:7px}.sync-state i{width:7px;height:7px;border-radius:50%;background:var(--teal-2);box-shadow:0 0 0 4px #35a5a01f}.sync-state.warn i{background:var(--orange)}.sidebar{grid-row:2;position:sticky;top:64px;height:calc(100vh - 64px);padding:18px 14px;border-right:1px solid var(--line-strong);background:#f7f5eee8}.rail-label,.gateway-rail>p{margin:2px 10px 9px;color:var(--muted);font:9px var(--mono);letter-spacing:.16em}.sidebar nav{display:grid;gap:4px}.sidebar nav a{padding:11px 12px;display:flex;gap:10px;position:relative;text-decoration:none;font-size:12px}.sidebar nav a:hover{background:#087f7a0f}.sidebar nav a.active{color:var(--teal);background:var(--teal-soft);font-weight:600}.sidebar nav a.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;background:var(--teal)}.sidebar nav a span{color:var(--muted);font:9px var(--mono);width:22px}.sidebar nav a.active span{color:var(--teal)}.gateway-rail{margin-top:26px;padding:18px 10px 0;border-top:1px solid var(--line)}.gateway-rail>div{border:1px solid var(--teal);box-shadow:inset 2px 0 var(--teal);background:var(--teal-soft);padding:10px;display:grid;grid-template-columns:8px 1fr;gap:2px 8px}.gateway-rail i{grid-row:1 / 3;align-self:center;width:7px;height:7px;border-radius:50%;background:var(--teal-2)}.gateway-rail strong{font:600 11px var(--mono)}.gateway-rail small{color:var(--teal);font:8px var(--mono)}.sidebar footer{position:absolute;bottom:20px;left:24px;color:var(--muted);font:9px/1.8 var(--mono)}.content{grid-row:2;min-width:0;padding:24px 26px 40px;animation:rise .28s ease-out}@keyframes rise{0%{opacity:0;transform:translateY(4px)}}.page-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:20px}.kicker{margin:0 0 7px;color:var(--teal);font:9px var(--mono);letter-spacing:.2em;text-transform:uppercase}.page-head h1{margin:0;font:500 27px/1.2 var(--serif);letter-spacing:.02em}.page-head>div>p:last-child{margin:7px 0 0;color:var(--muted);font-size:12px}.head-actions{display:flex;gap:8px}.button{min-height:35px;border:1px solid var(--line-strong);background:var(--surface);padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;box-shadow:0 1px #14201f0a;text-decoration:none;font-size:11px}.button:hover:not(:disabled){border-color:var(--teal)}.button.primary{color:#fff;border-color:var(--teal);background:var(--teal)}.button.command{color:#fff;border-color:var(--orange);background:var(--orange)}.button.ghost{background:transparent}.button.wide{width:100%}.button.compact{min-height:26px;padding-inline:9px;font-size:9px}.button:disabled{opacity:.48;cursor:not-allowed}.metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.metrics article{min-height:92px;padding:13px 14px;position:relative;overflow:hidden;border:1px solid var(--line);background:#fbfaf5e0}.metrics article:after{content:"";position:absolute;width:70px;height:70px;right:-14px;bottom:-27px;border:1px solid rgba(8,127,122,.15);border-radius:50%}.metrics span{color:var(--muted);font-size:10px;display:block}.metrics strong{display:block;margin-top:8px;font:600 23px var(--mono)}.metrics strong small{color:var(--muted);font-size:10px}.metrics em{display:block;margin-top:6px;color:var(--teal);font:normal 9px var(--mono)}.metrics .warn strong,.metrics .warn em{color:var(--orange)}.card{min-width:0;border:1px solid var(--line);background:#fbfaf5eb;box-shadow:var(--shadow)}.card-head{min-height:43px;padding:0 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.card-head h2{margin:0;display:flex;align-items:center;gap:9px;font-size:12px}.card-head h2:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--teal-2)}.card-meta{color:var(--muted);font:9px var(--mono)}.card-body{padding:14px}.stack{display:grid;gap:14px;min-width:0;align-content:start}.overview-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.7fr);gap:14px;align-items:start}.layout-controls{min-height:48px;padding:7px 9px;margin-bottom:12px;border:1px solid var(--line);background:#f0eee6;display:grid;grid-template-columns:minmax(150px,1fr) auto auto auto;gap:8px;align-items:center}.layout-controls>div strong{display:block;font:600 10px var(--mono)}.layout-controls>div span{display:block;margin-top:3px;color:var(--muted);font-size:9px}.layout-controls label{color:var(--muted);font-size:9px;white-space:nowrap}.layout-controls input,.layout-controls select{width:57px;height:30px;margin-left:6px;padding:0 6px;border:1px solid var(--line-strong);background:var(--surface);font:600 10px var(--mono)}.layout-controls label>small{display:block;margin-top:2px;text-align:right;color:var(--muted);font:7px var(--mono)}.layout-controls input[aria-invalid=true]{border-color:var(--red)}.overview-presentation-controls{grid-template-columns:minmax(150px,1fr) auto auto}.fleet-grid{display:grid;gap:8px;overflow-x:auto;padding:2px}.fleet-stage{position:relative;min-height:124px}.fleet-overflow{margin:9px 2px 0;color:var(--orange);font:9px/1.55 var(--mono)}.device-cell{min-width:48px;min-height:54px;position:relative;border:1px dashed var(--line-strong);background:#ffffff38;color:#89928e;font:600 11px var(--mono);transition:transform .15s ease,box-shadow .15s ease}.device-cell:not(:disabled):hover,.device-cell:not(:disabled):focus-visible{z-index:2;transform:translateY(-1px);box-shadow:0 5px 12px #14201f14}.device-cell.online{border-style:solid;border-color:#087f7a8c;background:var(--teal-soft);color:var(--teal)}.device-cell.warning{border-style:solid;border-color:#d36a0d99;background:var(--orange-soft);color:var(--orange)}.device-cell.stale{border-style:solid;border-color:#326b969e;background:var(--blue-soft);color:var(--blue)}.device-cell.offline{border-style:solid;border-color:#aeb0ab;background:#eceae3;color:#6e7571}.device-cell.unconfigured{border-style:dashed;background:#eceae32e;color:#a7aaa5;cursor:not-allowed;opacity:.72}.device-cell.unconfigured:after{background:transparent;border:1px dashed currentColor}.device-cell.selected{box-shadow:inset 0 0 0 2px var(--surface),0 0 0 2px var(--teal)}.device-cell:after{content:"";position:absolute;top:5px;right:5px;width:4px;height:4px;border-radius:50%;background:currentColor}.device-cell small{position:absolute;left:5px;bottom:4px;font:7px var(--mono);opacity:.67}.device-inspector{position:fixed;z-index:80;width:min(390px,calc(100vw - 16px));max-height:calc(100vh - 16px);overflow-y:auto;padding:0;border:1px solid var(--line-strong);border-top:3px solid var(--teal);background:#fbfaf5fb;box-shadow:0 22px 60px #14201f33;color:var(--ink);pointer-events:none;animation:inspector-in .14s ease-out}@keyframes inspector-in{0%{opacity:0;transform:translateY(-4px)}}.device-inspector.warning{border-top-color:var(--orange)}.device-inspector.stale{border-top-color:var(--blue)}.device-inspector.offline{border-top-color:var(--muted)}.device-inspector header{min-height:51px;padding:10px 13px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line)}.device-inspector header strong,.device-inspector header small{display:block}.device-inspector header strong{font:600 14px var(--mono)}.device-inspector header small{margin-top:2px;color:var(--muted);font:8px var(--mono)}.device-inspector header>span{padding:4px 7px;color:var(--teal);border:1px solid currentColor;background:var(--teal-soft);font:8px var(--mono)}.device-inspector.warning header>span{color:var(--orange);background:var(--orange-soft)}.device-inspector.stale header>span{color:var(--blue);background:var(--blue-soft)}.device-inspector.offline header>span,.device-inspector.unknown header>span{color:var(--muted);background:#eceae3}.device-inspector dl{margin:0;padding:8px 13px}.device-inspector dl>div{min-height:34px;display:grid;grid-template-columns:92px minmax(0,1fr);align-items:baseline;gap:10px;border-bottom:1px solid rgba(217,213,202,.68)}.device-inspector dl>div:last-child{border:0}.device-inspector dt{color:var(--muted);font-size:9px}.device-inspector dd{margin:0;text-align:right;font:600 10px var(--mono);overflow-wrap:anywhere}.device-inspector dd small{display:block;margin-top:2px;color:var(--muted);font:8px var(--mono)}.device-inspector .inspector-status dd{color:var(--orange)}.device-inspector.online .inspector-status dd{color:var(--teal)}.device-inspector footer{padding:8px 13px;border-top:1px solid var(--line);color:var(--muted);background:#f3f1e9;font:8px var(--mono)}.legend{margin-top:12px;display:flex;flex-wrap:wrap;gap:14px;color:var(--muted);font-size:9px}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:7px;height:7px;border-radius:50%;background:#89928e}.legend i.online{background:var(--teal)}.legend i.warning{background:var(--orange)}.legend i.stale{background:var(--blue)}.legend i.offline{background:#89928e}.legend i.unknown{background:transparent;border:1px dashed #89928e}.legend em{margin-left:auto;font-style:normal}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:10px;white-space:nowrap}th,td{padding:9px 7px;text-align:right;border-bottom:1px solid var(--line)}th:first-child,td:first-child{text-align:left}th{color:var(--muted);font-weight:400}tbody tr:hover{background:var(--teal-soft)}.table-device-link{display:block;color:var(--teal);font-weight:600;text-decoration:none}.table-device-link:hover{text-decoration:underline;text-underline-offset:2px}.point-picker{max-height:min(52vh,460px);margin:17px 0;padding:4px 10px 10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px 12px;overflow-y:auto;border:1px solid var(--line)}.point-picker legend{padding:0 6px}.point-picker label{min-width:0;min-height:35px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;border-bottom:1px solid var(--line);font-size:9px}.point-picker input{accent-color:var(--teal)}.point-picker code{color:var(--muted);font:7px var(--mono)}.scope-graphic{min-height:190px;display:grid;place-items:center;align-content:center;position:relative;background:radial-gradient(circle,var(--teal-soft) 0 30%,transparent 31%)}.scope-graphic:before,.scope-graphic:after{content:"";position:absolute;width:70%;height:70%;border:1px solid var(--line);border-radius:50%}.scope-graphic:after{width:48%;height:48%;border-style:dashed}.scope-graphic span,.scope-graphic strong,.scope-graphic small{position:relative;z-index:1}.scope-graphic span{color:var(--teal);font:600 11px var(--mono)}.scope-graphic strong{font:600 36px var(--mono)}.scope-graphic small{color:var(--muted);font:8px var(--mono)}.scope-list{display:grid;grid-template-columns:repeat(3,1fr);margin:0;border-top:1px solid var(--line)}.scope-list div{padding:10px 5px;text-align:center;border-right:1px solid var(--line)}.scope-list div:last-child{border:0}.scope-list dt{color:var(--muted);font-size:8px}.scope-list dd{margin:4px 0 0;font:9px var(--mono)}.alarm-row{display:grid;grid-template-columns:38px 1fr;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.alarm-row>span{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--orange);color:var(--orange);font:9px var(--mono)}.alarm-row strong,.alarm-row small{display:block}.alarm-row strong{font-size:10px}.alarm-row small{margin-top:4px;color:var(--muted);font-size:9px}.empty-copy{color:var(--muted);font-size:11px}.data-state{min-height:58px;margin-bottom:12px;padding:10px 12px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);background:var(--surface)}.data-state .state-code{padding:5px 7px;color:var(--teal);border:1px solid var(--teal);font:8px var(--mono)}.data-state.error{background:#f6e4e1;border-color:#c9433866}.data-state.error .state-code{color:var(--red);border-color:var(--red)}.data-state.stale{background:var(--orange-soft);border-color:#d36a0d66}.data-state.stale .state-code{color:var(--orange);border-color:var(--orange)}.data-state strong{display:block;font-size:11px}.data-state p{margin:3px 0 0;color:var(--muted);font-size:9px}.status-strip{height:38px;min-width:0;margin-bottom:14px;padding:0 9px;display:grid;grid-template-columns:auto auto auto minmax(0,1fr) auto;gap:8px;align-items:center;overflow:hidden;border:1px solid var(--line);border-left:3px solid var(--teal);background:#fbfaf5d6;color:var(--ink)}.status-strip>i{width:6px;height:6px;border-radius:50%;background:var(--teal-2)}.status-strip-code{padding:2px 5px;border:1px solid currentColor;color:var(--teal);font:7px var(--mono);letter-spacing:.07em;white-space:nowrap}.status-strip strong{min-width:0;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.status-strip-detail{min-width:0;overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.status-strip-action{display:flex;align-items:center}.status-strip.warning{border-left-color:var(--orange);background:#faeadc94}.status-strip.warning>i{background:var(--orange)}.status-strip.warning .status-strip-code{color:var(--orange)}.status-strip.error{border-left-color:var(--red);background:#f6e4e19e}.status-strip.error>i{background:var(--red)}.status-strip.error .status-strip-code{color:var(--red)}.status-strip.success{border-left-color:var(--teal);background:#dcefee85}.status-strip.loading>i{animation:status-pulse 1.4s ease-in-out infinite}@keyframes status-pulse{50%{opacity:.28}}.compare-layout{display:grid;grid-template-columns:218px minmax(0,1fr);gap:14px}.tcu-chart-layout{grid-template-columns:270px minmax(0,1fr)}.filter-panel{position:sticky;top:84px;align-self:start;box-shadow:none}.filter-section{padding:13px 14px;border-bottom:1px solid var(--line)}.filter-section>p{margin:0 0 9px;color:var(--muted);font:8px var(--mono);letter-spacing:.1em}.filter-section>p:not(:first-child){margin-top:12px}.locked-field,.select-input{min-height:35px;width:100%;padding:8px 9px;display:flex;justify-content:space-between;border:1px solid var(--teal);background:var(--teal-soft);color:var(--teal);font:10px var(--mono)}.locked-field i{width:6px;height:6px;border-radius:50%;background:var(--teal);align-self:center}.locked-field.neutral{margin-bottom:6px;color:var(--ink);border-color:var(--line);background:#fff}.select-input{display:block}.check-list{max-height:220px;display:grid;gap:7px;overflow-y:auto}.check-list label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;color:var(--ink);font-size:10px}.check-list input{accent-color:var(--teal)}.check-list small{color:var(--muted);font:8px var(--mono)}.multi-select-field{min-width:0;display:grid;gap:7px}.multi-select{min-width:0;position:relative}.multi-select>button{width:100%;min-height:38px;padding:7px 30px 7px 9px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px;position:relative;overflow:hidden;text-align:left;border:1px solid var(--line-strong);background:#fff}.multi-select>button:after{content:"";width:6px;height:6px;position:absolute;right:10px;top:50%;border-right:1px solid var(--teal);border-bottom:1px solid var(--teal);transform:translateY(-65%) rotate(45deg);transition:transform .15s ease}.multi-select>button[aria-expanded=true]{border-color:var(--teal);box-shadow:inset 2px 0 var(--teal)}.multi-select>button[aria-expanded=true]:after{transform:translateY(-25%) rotate(225deg)}.multi-select>button span{min-width:0;overflow:hidden;font:9px var(--mono);text-overflow:ellipsis;white-space:nowrap}.multi-select>button small{color:var(--teal);font:8px var(--mono);white-space:nowrap}.multi-select.disabled>button{cursor:not-allowed;opacity:.55;background:#eceae380}.multi-select-popover{width:min(360px,calc(100vw - 48px));padding:8px;position:absolute;z-index:40;left:0;top:calc(100% + 4px);border:1px solid var(--line-strong);background:var(--surface);box-shadow:0 18px 45px #14201f33}.multi-select-search{margin-bottom:7px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;color:var(--muted);font-size:8px}.multi-select-search input{width:100%;min-height:33px;padding:0 8px;border:1px solid var(--line);background:#fff;font:9px var(--mono)}.multi-select-options{max-height:270px;overflow-y:auto;border-top:1px solid var(--line)}.multi-select-options>label{min-height:38px;padding:6px 3px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 7px;border-bottom:1px solid var(--line);font-size:9px;cursor:pointer}.multi-select-options>label:hover{background:var(--teal-soft)}.multi-select-options input{grid-row:1 / 3;accent-color:var(--teal)}.multi-select-options span{min-width:0;font-weight:600}.multi-select-options code{min-width:0;overflow:hidden;color:var(--muted);font:7px var(--mono);text-overflow:ellipsis;white-space:nowrap}.multi-select-options>p{margin:12px 4px;color:var(--muted);font-size:9px}.multi-select-chips{display:flex;flex-wrap:wrap;gap:4px}.multi-select-chips button{max-width:100%;padding:3px 5px;display:flex;align-items:center;gap:5px;overflow:hidden;color:var(--teal);border:1px solid rgba(8,127,122,.3);background:var(--teal-soft);font:7px var(--mono);text-overflow:ellipsis;white-space:nowrap}.multi-select-chips button span{font-size:11px;line-height:.7}.filter-actions{padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.chart-time-fields{display:grid;gap:10px}.chart-time-fields>p{margin-bottom:0}.chart-time-fields label{min-width:0;display:grid;gap:5px;color:var(--muted);font-size:10px}.chart-time-fields input{width:100%;min-height:38px;padding:0 8px;color:var(--ink);border:1px solid var(--line-strong);background:#fff;font:11px var(--mono)}.compare-main{min-width:0;display:grid;gap:14px;align-content:start}.compare-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.compare-metrics article{padding:10px 12px;border-left:2px solid var(--teal);background:#fbfaf5d9}.compare-metrics article:nth-child(2){border-color:var(--orange)}.compare-metrics article:nth-child(3){border-color:#507c99}.compare-metrics article:nth-child(4){border-color:#9b8359}.compare-metrics span{display:block;color:var(--muted);font-size:9px}.compare-metrics strong{display:block;margin-top:5px;font:600 16px var(--mono)}.telemetry-chart{width:100%;min-width:0;min-height:350px;position:relative}.telemetry-chart .uplot{max-width:100%;color:var(--muted);font-family:var(--mono)}.telemetry-chart .u-legend{width:100%;max-width:100%;max-height:58px;margin:0 8px 3px;overflow-y:auto;font:9px var(--mono);text-align:right;white-space:normal;scrollbar-width:thin}.telemetry-chart .u-legend .u-series{padding:2px 5px}.telemetry-chart .u-legend .u-marker{width:8px;height:2px;margin-right:5px;border:0!important;border-radius:0!important}.telemetry-chart .u-legend .u-value{min-width:58px;color:var(--ink);font-weight:600}.telemetry-chart .u-cursor-x,.telemetry-chart .u-cursor-y{border-color:var(--line-strong)}.telemetry-tooltip{width:min(330px,calc(100% - 16px));max-height:300px;padding:12px 13px;position:absolute;z-index:10;overflow:hidden;pointer-events:none;border:1px solid rgba(8,127,122,.55);border-left:3px solid var(--teal);background:#14201ff0;color:#f7f5ee;box-shadow:0 15px 36px #14201f3d;backdrop-filter:blur(8px)}.telemetry-tooltip-label{margin:0 0 3px;color:#84d4d0;font:7px var(--mono);letter-spacing:.16em}.telemetry-tooltip time{display:block;padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.14);font:600 9px var(--mono)}.telemetry-tooltip ul{max-height:210px;margin:8px 0 0;padding:0;display:grid;gap:6px;overflow-y:auto;list-style:none;scrollbar-width:thin}.telemetry-tooltip li{min-width:0;display:grid;grid-template-columns:7px minmax(0,1fr) auto;align-items:center;gap:6px}.telemetry-tooltip li i{width:7px;height:2px}.telemetry-tooltip li span{min-width:0;overflow:hidden;color:#f7f5eebd;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.telemetry-tooltip li strong{font:600 9px var(--mono);white-space:nowrap}.chart-result-bar{min-height:45px;margin-bottom:10px;padding:7px 9px;display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);background:#dcefee4d}.chart-result-bar span{min-width:0;color:var(--muted);font:10px var(--mono);overflow-wrap:anywhere}.matrix{display:grid;gap:4px}.matrix>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:4px}.matrix span{min-height:45px;padding:7px;display:grid;background:var(--teal-soft);font:600 10px var(--mono)}.matrix small{color:var(--muted);font:8px var(--mono)}.split-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(250px,.6fr);gap:14px}.summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line)}.summary-grid>div{padding:10px;background:var(--surface)}.summary-grid span{display:block;color:var(--muted);font-size:9px}.summary-grid strong{display:block;margin-top:4px;font:600 12px var(--mono)}.event-list>div{min-height:49px;display:grid;grid-template-columns:50px 12px 1fr;gap:7px}.event-list time{color:var(--muted);font:8px var(--mono)}.event-list i{position:relative}.event-list i:before{content:"";position:absolute;left:5px;inset-block:0;border-left:1px solid var(--line-strong)}.event-list i:after{content:"";position:absolute;left:2px;top:2px;width:7px;height:7px;border-radius:50%;background:var(--teal)}.event-list i.warning:after{background:var(--orange)}.event-list strong,.event-list small{display:block;font-size:9px}.event-list small{margin-top:3px;color:var(--muted)}.device-layout{display:grid;grid-template-columns:minmax(0,1fr) 365px;gap:14px;align-items:start}.device-layout-full{grid-template-columns:minmax(0,1fr)}.device-hero{display:grid;grid-template-columns:.75fr 1.25fr;min-height:180px}.device-hero>div:first-child{padding:18px;border-right:1px solid var(--line)}.device-hero h2{margin:11px 0 3px;font:500 23px var(--serif);overflow-wrap:anywhere}.device-hero p{color:var(--muted);font-size:10px}.device-hero p code{color:var(--teal);font:9px var(--mono)}.status-tag{padding:4px 7px;color:var(--muted);border:1px solid var(--line);font:8px var(--mono);text-transform:uppercase}.status-tag.online{color:var(--teal);border-color:var(--teal);background:var(--teal-soft)}.status-tag.warning{color:var(--orange);border-color:var(--orange);background:var(--orange-soft)}.status-tag.stale{color:var(--blue);border-color:var(--blue);background:var(--blue-soft)}.device-age{display:block;margin-top:26px;color:var(--muted);font:8px var(--mono)}.device-hero dl{margin:0;padding:15px 18px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.device-hero dl div{min-width:0;border-bottom:1px solid var(--line);padding-bottom:9px}.device-hero dt{color:var(--muted);font-size:9px}.device-hero dd{margin:4px 0 0;font:10px var(--mono);overflow-wrap:anywhere}.device-hero dd small{display:block;margin-top:3px;color:var(--muted);font:7px var(--mono)}.device-hero dd.warning{color:var(--orange)}.device-system-status dd{line-height:1.55;white-space:normal}.telemetry-cards{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}.telemetry-cards article{min-width:0;min-height:122px;padding:12px;display:flex;flex-direction:column;border:1px solid var(--line);background:#fbfaf5d6}.telemetry-cards span{min-height:30px;color:var(--muted);font-size:9px}.telemetry-cards strong{margin:7px 0;display:block;flex:1;font:600 16px/1.35 var(--mono);overflow-wrap:anywhere}.telemetry-cards small{margin-top:auto;color:var(--teal);font:7px var(--mono)}.point-ledgers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.point-ledger-card{box-shadow:none}.point-ledger-card .card-body{padding:0}.point-ledger-intro{min-height:57px;padding:10px 13px;display:grid;align-content:center;gap:4px;border-bottom:1px solid var(--line);background:#dcefee4d}.holding-ledger .point-ledger-intro{background:#faeadc61}.point-ledger-intro strong{font-size:10px}.point-ledger-intro span{color:var(--muted);font-size:8px;line-height:1.5}.point-ledger-scroll{max-height:620px;overflow:auto}.point-ledger-table{min-width:580px}.point-ledger-table th{position:sticky;z-index:2;top:0;background:#efede5}.point-ledger-table th:first-child,.point-ledger-table td:first-child{width:65px}.point-ledger-table th:nth-child(2),.point-ledger-table td:nth-child(2){text-align:left}.point-ledger-table th:nth-child(3),.point-ledger-table td:nth-child(3){text-align:left}.point-ledger-table td{height:48px}.point-ledger-table td>code{color:var(--muted);font:7px var(--mono)}.point-ledger-table td:nth-child(3) small{display:block;margin-top:3px;color:var(--muted);font:7px var(--mono)}.point-ledger-table td:last-child strong{display:block;font:600 9px var(--mono)}.point-ledger-table td:last-child small{display:block;margin-top:3px;color:var(--muted);font:7px var(--mono)}.input-ledger-row{cursor:pointer;transition:background-color .14s ease,box-shadow .14s ease}.input-ledger-row:hover{background:#dcefee94;box-shadow:inset 3px 0 var(--teal)}.input-ledger-row:focus-visible{outline:1px solid var(--teal);outline-offset:-2px;background:var(--teal-soft);box-shadow:inset 3px 0 var(--teal)}.point-ledger-table .input-point-name{color:var(--teal);font-size:10px;font-weight:600}.holding-value-button{width:100%;min-height:34px;padding:4px 7px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid transparent;background:transparent;text-align:right}.holding-value-button:hover,.holding-value-button:focus-visible{border-color:var(--orange);background:var(--orange-soft)}.holding-value-button>span{color:var(--orange);font:8px var(--mono)}.inline-receipt{margin:10px 12px 0;padding:8px 10px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;color:var(--teal);border:1px solid rgba(8,127,122,.35);background:var(--teal-soft);font-size:8px}.inline-receipt small{color:var(--muted)}.holding-edit-field{margin:17px 0;display:grid;gap:7px;color:var(--muted);font-size:9px}.holding-edit-field>span{display:flex;justify-content:space-between}.holding-edit-field>span small{color:var(--teal)}.holding-edit-field input,.holding-edit-field select{width:100%;min-height:40px;padding:0 10px;border:1px solid var(--line-strong);background:#fff;font:11px var(--mono)}.holding-edit-field input[aria-invalid=true]{border-color:var(--red)}.form-grid label{display:grid;gap:7px;margin-bottom:13px;color:var(--muted);font-size:9px}.form-grid input,.weather-mappings textarea{width:100%;min-height:37px;padding:0 9px;border:1px solid var(--line-strong);background:#fff;color:var(--ink);font:10px var(--mono)}.semantic-value{margin:-6px 0 13px;padding:7px 9px;display:flex;justify-content:space-between;align-items:center;border-left:2px solid var(--teal);background:#087f7a0f;color:var(--muted);font-size:8px}.semantic-value strong{color:var(--teal);font:600 10px var(--mono)}.command-warning{margin:13px 0;padding:10px;background:var(--orange-soft);color:#8c4d17;font-size:9px;line-height:1.55}.command-list{display:grid}.command-list>div{padding:11px 4px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto auto;align-items:center;gap:10px}.command-identity{min-width:0;display:grid;gap:3px}.command-list code{min-width:0;color:var(--muted);font:8px var(--mono);overflow-wrap:anywhere}.command-list time{color:var(--muted);font:8px var(--mono)}.command-list strong{font-size:9px}.command-list small{color:var(--muted);font-size:8px}.state-pill{padding:3px 6px;color:var(--teal);border:1px solid var(--teal);font:8px var(--mono)}.state-pill.queued{color:var(--orange);border-color:var(--orange)}.state-pill.rejected,.state-pill.failed{color:var(--red);border-color:var(--red)}.receipt{margin:12px 16px 16px;padding:10px;display:grid;gap:4px;border:1px solid rgba(8,127,122,.4);background:var(--teal-soft);color:var(--teal);font-size:9px}.receipt small{color:var(--muted)}.config-scope{min-height:68px;margin-bottom:14px;padding:9px 14px;border:1px solid var(--line-strong);background:var(--surface);display:grid;grid-template-columns:44px minmax(190px,1fr) auto;gap:16px;align-items:center;box-shadow:var(--shadow)}.scope-mark{width:42px;height:42px;display:grid;place-items:center;color:var(--teal);border:1px solid var(--teal);font:700 11px var(--mono)}.config-scope strong,.config-scope small{display:block}.config-scope strong{font:600 14px var(--mono)}.config-scope small{margin-top:3px;color:var(--muted);font-size:8px}.config-scope dl{display:grid;grid-template-columns:repeat(3,auto);margin:0}.config-scope dl div{min-width:100px;padding-left:14px;border-left:1px solid var(--line)}.config-scope dt{color:var(--muted);font-size:8px}.config-scope dd{margin:4px 0 0;font:9px var(--mono)}.ncu-config-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:14px;align-items:start}.config-main{display:grid;gap:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid label{margin:0;padding:10px;border:1px solid var(--line);background:#fff6}.form-grid code{color:var(--teal);font:8px var(--mono)}.weather-mappings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.weather-mappings label{display:grid;grid-template-columns:105px 1fr;align-items:center;gap:8px;padding:7px;border:1px solid var(--line);background:#fff6}.weather-mappings span,.weather-mappings code{display:block;font-size:9px}.weather-mappings code{color:var(--teal);font:7px var(--mono)}.weather-mappings textarea{padding:7px;resize:vertical}.config-preview{position:sticky;top:84px;padding-bottom:15px;border:1px solid rgba(8,127,122,.4);background:#f8faf5f7;box-shadow:var(--shadow)}.config-preview>header{padding:15px 16px;border-bottom:1px solid var(--line)}.config-preview h2{margin:0;font:500 18px var(--serif)}.config-preview header>span{color:var(--teal);font:9px var(--mono)}.api-route{margin:14px 15px 10px;padding:9px;display:flex;gap:8px;border:1px solid var(--line);background:var(--paper);font:8px var(--mono);overflow:hidden}.api-route strong{color:var(--teal)}.config-preview pre{margin:0 15px 10px;padding:10px;max-height:220px;overflow:auto;background:#182321;color:#dcefee;font:8px/1.6 var(--mono)}.config-preview ol{list-style:none;margin:0 15px;padding:0;counter-reset:impacts}.config-preview li{min-height:48px;padding:8px 0 8px 27px;position:relative;border-bottom:1px solid var(--line);counter-increment:impacts}.config-preview li:before{content:counter(impacts);position:absolute;left:0;top:12px;width:17px;height:17px;display:grid;place-items:center;color:var(--teal);border:1px solid var(--teal);font:8px var(--mono)}.config-preview li.warn:before{color:var(--orange);border-color:var(--orange)}.config-preview li strong,.config-preview li span{display:block;font-size:9px}.config-preview li span{margin-top:3px;color:var(--muted);font-size:8px}.config-preview .command-warning{margin-inline:15px}.preview-actions{margin:0 15px;display:grid;grid-template-columns:.8fr 1.2fr;gap:8px}.modal-backdrop{position:fixed;z-index:100;inset:0;padding:20px;display:grid;place-items:center;overflow-y:auto;background:#14201f80;backdrop-filter:blur(3px)}.review-dialog{width:min(460px,100%);padding:24px;border:1px solid var(--line-strong);background:var(--surface);box-shadow:0 28px 100px #14201f4d}.review-dialog h2{margin:0;font:500 22px var(--serif)}.review-dialog>p:not(.kicker){color:var(--muted);font-size:10px;line-height:1.6}.review-dialog dl{margin:17px 0;border-block:1px solid var(--line)}.review-dialog dl div{padding:8px 0;display:grid;grid-template-columns:110px 1fr}.review-dialog dt{color:var(--muted);font-size:9px}.review-dialog dd{margin:0;font:10px var(--mono)}.review-dialog>div{display:flex;justify-content:end;gap:8px}.review-dialog.data-dialog{width:min(980px,100%);max-height:calc(100vh - 40px);padding:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.data-dialog-head{min-height:82px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);background:#dcefee52}.data-dialog-head .kicker{margin-bottom:5px}.data-dialog-head h2{margin:0}.data-dialog-head small{display:block;margin-top:4px;color:var(--muted);font:10px var(--mono)}.data-dialog-body{min-height:410px;padding:18px 20px;overflow:auto}.commands-dialog-body{min-height:420px}.dialog-pagination{min-height:60px;padding:10px 20px;display:flex;align-items:center;justify-content:end;gap:12px;border-top:1px solid var(--line);background:#f3f1e9}.dialog-pagination span{color:var(--muted);font:10px var(--mono)}.device-label-field{margin:17px 0;display:grid;gap:7px;color:var(--muted);font-size:9px}.device-label-field input{min-height:40px;padding:0 10px;border:1px solid var(--line-strong);background:#fff;font:12px var(--mono)}.device-label-field small{color:var(--muted);font:8px var(--mono)}.review-dialog .dialog-error{margin:-7px 0 14px;color:var(--red)}.field-error{color:var(--red);font-size:9px}.form-error{margin:10px 15px;padding:9px;color:var(--red);background:#f6e4e1;font-size:9px}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(400px,.75fr);background:var(--paper)}.login-intro{padding:clamp(40px,8vw,120px);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-intro:before{content:"";position:absolute;width:65vw;height:65vw;max-width:850px;max-height:850px;left:-15vw;top:12%;border:1px solid var(--line-strong);border-radius:50%;box-shadow:0 0 0 80px #087f7a06,0 0 0 160px #087f7a05}.login-intro>*{position:relative;z-index:1}.login-brand{margin-bottom:100px;display:flex;align-items:center;gap:13px;font:700 12px var(--mono);letter-spacing:.12em}.login-intro h1{margin:0;max-width:720px;font:500 clamp(34px,4vw,62px)/1.28 var(--serif);letter-spacing:.02em}.login-intro>p:not(.kicker){max-width:640px;color:var(--muted);font-size:13px;line-height:1.8}.login-intro dl{margin:42px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.login-intro dl div{padding:15px;background:#fbfaf5cc}.login-intro dt{color:var(--muted);font-size:9px}.login-intro dd{margin:7px 0 0;font:9px/1.5 var(--mono)}.login-panel{padding:30px;display:grid;place-items:center;border-left:1px solid var(--line-strong);background:#fbfaf5c7}.login-panel form{width:min(360px,100%);padding:32px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}.login-panel h2{margin:0;font:500 24px var(--serif)}.login-panel form>p:not(.kicker){margin:10px 0 28px;color:var(--muted);font-size:10px;line-height:1.6}.login-panel label{display:block;margin-bottom:7px;color:var(--muted);font-size:9px}.login-panel input{width:100%;height:42px;padding:0 10px;border:1px solid var(--line-strong);background:#fff;font:13px var(--mono)}.login-panel .button{margin-top:17px}.login-panel form>small{display:block;margin-top:15px;text-align:center;color:var(--muted);font:8px var(--mono)}.full-state,.not-found{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:8px}.full-state p{color:var(--muted);font:10px var(--mono)}.not-found h1{font:500 30px var(--serif)}.muted{color:var(--muted);font-size:var(--type-caption)}.gateway-select span,.gateway-rail small,.layout-controls label>small,.device-cell small,.device-inspector header small,.device-inspector header>span,.device-inspector dd small,.device-inspector footer,.point-picker code,.scope-graphic small,.scope-list dt,.data-state .state-code,.status-strip-code,.filter-section>p,.check-list small,.multi-select>button small,.multi-select-search,.multi-select-options code,.multi-select-chips button,.telemetry-tooltip-label,.telemetry-tooltip li span,.matrix small,.event-list time,.status-tag,.device-age,.device-hero dd small,.telemetry-cards small,.point-ledger-intro span,.point-ledger-table td>code,.point-ledger-table td:nth-child(3) small,.point-ledger-table td:last-child small,.holding-value-button>span,.inline-receipt,.semantic-value,.command-list code,.command-list time,.command-list small,.state-pill,.config-scope small,.config-scope dt,.form-grid code,.weather-mappings code,.api-route,.config-preview pre,.config-preview li:before,.config-preview li span,.device-label-field small,.login-panel form>small{font-size:var(--type-micro)}.brand>div small,.rail-label,.gateway-rail>p,.sidebar nav a span,.sidebar footer,.kicker,.button.compact,.metrics em,.card-meta,.layout-controls>div span,.layout-controls label,.fleet-overflow,.device-inspector dt,.legend,.point-picker label,.scope-list dd,.alarm-row>span,.alarm-row small,.data-state p,.status-strip-detail,.multi-select-search input,.multi-select-options>label,.multi-select-options>p,.compare-metrics span,.telemetry-chart .u-legend,.telemetry-tooltip time,.telemetry-tooltip li strong,.summary-grid span,.event-list strong,.event-list small,.device-hero p code,.device-hero dt,.telemetry-cards span,.point-ledger-table td:last-child strong,.holding-edit-field,.form-grid label,.command-warning,.command-list strong,.receipt,.config-scope dd,.weather-mappings span,.config-preview header>span,.config-preview li strong,.review-dialog dt,.device-label-field,.field-error,.form-error,.login-intro dt,.login-intro dd,.login-panel label{font-size:var(--type-caption)}.sync-state,.metrics span,.metrics strong small,.layout-controls>div strong,.layout-controls input,.layout-controls select,.device-inspector dd,table,.alarm-row strong,.status-strip strong,.locked-field,.select-input,.check-list label,.multi-select>button span,.matrix span,.device-hero p,.device-hero dd,.point-ledger-intro strong,.form-grid input,.weather-mappings textarea,.semantic-value strong,.review-dialog>p:not(.kicker),.review-dialog dd,.full-state p{font-size:var(--type-supporting)}.brand-mark,.top-context span,.gateway-select select,.gateway-rail strong,.button,.device-cell,.scope-graphic span,.empty-copy,.data-state strong,.multi-select-options>label span,.holding-edit-field input,.holding-edit-field select,.scope-mark{font-size:var(--type-control)}.sidebar nav a,.page-head>div>p:last-child,.card-head h2,.login-brand{font-size:var(--type-body)}.login-intro>p:not(.kicker),.login-panel input{font-size:var(--type-prominent)}.brand>div strong{font-size:16px}.top-context strong{font-size:17px}.compare-metrics strong,.telemetry-cards strong{font-size:18px}.config-preview h2{font-size:21px}.review-dialog h2{font-size:25px}.metrics strong,.device-hero h2{font-size:26px}.login-panel h2{font-size:27px}.page-head h1{font-size:30px}.not-found h1{font-size:33px}.scope-graphic strong{font-size:40px}@media(max-width:1180px){.metrics{grid-template-columns:repeat(3,1fr)}.overview-grid{grid-template-columns:1fr}.device-layout:not(.device-layout-full),.ncu-config-layout{grid-template-columns:minmax(0,1fr) 320px}.telemetry-cards{grid-template-columns:repeat(4,1fr)}.point-ledgers{grid-template-columns:1fr}.sync-state{display:none}}@media(max-width:900px){.console{display:block;padding-top:64px}.topbar{position:fixed;width:100%;height:64px;top:0}.brand{width:auto;flex-basis:auto;border-right:0}.brand>div,.top-context{display:none}.top-actions{margin-left:auto;padding:0 10px}.gateway-select{min-width:120px}.sidebar{position:sticky;z-index:15;top:64px;width:100%;height:auto;padding:0;border-right:0;border-bottom:1px solid var(--line-strong);overflow-x:auto}.sidebar .rail-label,.gateway-rail,.sidebar footer{display:none}.sidebar nav{display:flex;min-width:560px;padding:6px 10px}.sidebar nav a{flex:1;white-space:nowrap}.content{padding:20px 16px 36px}.compare-layout,.device-layout,.ncu-config-layout{grid-template-columns:1fr}.filter-panel,.config-preview{position:static}.compare-layout .filter-panel{display:grid;grid-template-columns:repeat(2,1fr)}.filter-panel .card-head,.filter-panel .filter-actions{grid-column:1/-1}.login-page{grid-template-columns:1fr}.login-intro{min-height:48vh;padding:50px 30px}.login-brand{margin-bottom:50px}.login-panel{padding:40px 20px;border-left:0;border-top:1px solid var(--line-strong)}}@media(max-width:640px){.page-head{align-items:start;flex-direction:column}.page-head h1{font-size:27px}.metrics{grid-template-columns:repeat(2,1fr)}.metrics article:last-child{grid-column:1/-1}.status-strip{grid-template-columns:auto auto minmax(0,1fr) auto}.status-strip-detail{display:none}.layout-controls{grid-template-columns:1fr 1fr}.layout-controls>div{grid-column:1/-1}.compare-layout .filter-panel{display:block}.compare-metrics{grid-template-columns:repeat(2,1fr)}.split-grid{grid-template-columns:1fr}.chart-result-bar{align-items:stretch;flex-direction:column}.device-inspector{width:calc(100vw - 16px)}.device-inspector dl>div{grid-template-columns:80px minmax(0,1fr)}.point-picker,.device-hero{grid-template-columns:1fr}.device-hero>div:first-child{border-right:0;border-bottom:1px solid var(--line)}.device-hero dl{grid-template-columns:1fr}.telemetry-cards{grid-template-columns:repeat(2,1fr)}.command-list>div{grid-template-columns:minmax(0,1fr) auto}.inline-receipt{grid-template-columns:1fr;gap:3px}.config-scope{grid-template-columns:44px 1fr}.config-scope dl{grid-column:1/-1}.form-grid.three,.form-grid,.weather-mappings{grid-template-columns:1fr}.weather-mappings label{grid-template-columns:90px 1fr}.login-intro dl{grid-template-columns:1fr}.login-intro h1{font-size:36px}.top-actions .button{display:none}.modal-backdrop{padding:8px}.review-dialog.data-dialog{max-height:calc(100vh - 16px)}.data-dialog-head{padding:13px 14px;align-items:start}.data-dialog-body{min-height:360px;padding:12px}.dialog-pagination{padding-inline:12px;justify-content:space-between}}
