:root{--sidebar-w: 220px;--sidebar-w-col: 52px;--topbar-h: 52px;--sb-item-h: 38px}html,body{height:100%;overflow:hidden}body{display:flex;flex-direction:column}#topbar{height:var(--topbar-h)!important;min-height:var(--topbar-h)!important;max-height:var(--topbar-h)!important;padding:0 var(--sp-md)!important;gap:var(--sp-sm)!important;flex-shrink:0;overflow:hidden!important;position:fixed;top:0;left:0;right:0;z-index:900;display:flex;align-items:center;background:var(--bg-panel);border-bottom:1px solid var(--border);box-shadow:0 1px 0 var(--accent-tint)}#ncw-hamburger{width:32px;height:32px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-xs);background:transparent;border:1px solid transparent;border-radius:var(--rad-sm);cursor:pointer;padding:0;transition:all .15s}#ncw-hamburger:hover{border-color:var(--border-bright);background:var(--hover-dim)}#ncw-hamburger span{display:block;width:18px;height:2px;background:var(--text-lo);border-radius:var(--rad-xs);transition:all .2s}#ncw-hamburger:hover span{background:var(--text-md)}#ncw-device-counts{display:flex;align-items:center;gap:var(--sp-sm);margin-left:auto;flex-shrink:0;height:100%}.ncw-count-pill{display:flex;align-items:center;gap:var(--sp-xs);padding:var(--sp-xs) var(--sp-md);height:32px;border-radius:var(--rad-sm);border:1px solid;font-family:var(--font-sans);font-size:var(--fs-base);font-weight:700;letter-spacing:normal;text-decoration:none;transition:all .15s;cursor:pointer;flex-shrink:0}.ncw-count-pill .pill-val{font-size:var(--fs-base);font-weight:700;min-width:16px;text-align:center;line-height:1}.ncw-count-pill.static{cursor:default}.ncw-count-pill.static:hover{background:transparent}.ncw-count-pill.router{color:var(--router);border-color:var(--router-border)}.ncw-count-pill.router:hover{background:var(--accent-tint);border-color:var(--router)}.ncw-count-pill.switch{color:var(--switch);border-color:var(--switch-border)}.ncw-count-pill.switch:hover{background:var(--switch-tint);border-color:var(--switch)}.ncw-count-pill.edge{color:var(--edge);border-color:var(--edge-border)}.ncw-count-pill.edge:hover{background:var(--edge-tint);border-color:var(--edge)}.ncw-count-pill.online{color:var(--state-ok, #10b981);border-color:var(--state-ok, #10b981)}.ncw-count-pill.offline{color:var(--text-md);border-color:var(--border-bright)}#ncw-user-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;background:transparent;border-radius:50%;cursor:pointer;flex-shrink:0;transition:transform .12s}#ncw-user-badge:hover{transform:scale(1.08)}#ncw-user-badge:focus-visible,#ncw-user-badge.open{outline:2px solid var(--accent);outline-offset:2px}.ncw-avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:#fff;font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:700;letter-spacing:normal;user-select:none;box-shadow:0 0 0 2px var(--bg-panel),0 0 0 3px var(--border-bright)}.ncw-avatar.lg{width:40px;height:40px;font-size:var(--fs-base)}#ncw-user-badge.is-admin .ncw-avatar{box-shadow:0 0 0 2px var(--bg-panel),0 0 0 3px var(--purple)}.ncw-profile-popover{display:none;position:fixed;z-index:1000;min-width:260px;background:var(--bg-panel);border:1px solid var(--border-bright);border-radius:var(--rad-sm);box-shadow:var(--shadow-lg);font-family:var(--font-mono);font-size:var(--fs-sm);overflow:hidden;color:var(--text-md)}.ncw-profile-popover.open{display:block}.ncw-profile-header{display:flex;align-items:center;gap:var(--sp-md);padding:var(--sp-lg) var(--sp-lg) var(--sp-md);border-bottom:1px solid var(--border)}.ncw-profile-name{font-family:var(--font-disp);font-size:var(--fs-base);font-weight:700;letter-spacing:1px;color:var(--text-hi)}.ncw-profile-user{font-size:var(--fs-sm);color:var(--text-lo);letter-spacing:.5px;margin-top:var(--sp-xxs)}.ncw-profile-body{padding:var(--sp-md) var(--sp-lg) var(--sp-md);display:flex;flex-direction:column;gap:var(--sp-sm)}.ncw-profile-row{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-md)}.ncw-profile-row .lbl{font-size:var(--fs-sm);color:var(--text-lo);letter-spacing:normal;text-transform:none;font-family:var(--font-sans);font-weight:500}.ncw-profile-admin-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--purple);margin-right:var(--sp-xs);vertical-align:middle}.ncw-profile-actions{padding:var(--sp-md) var(--sp-lg) var(--sp-md);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md)}.ncw-profile-link{font-size:var(--fs-sm);color:var(--accent);text-decoration:none;letter-spacing:.5px;transition:color .12s}.ncw-profile-link:hover{color:var(--accent-hi)}.ncw-profile-signout{padding:var(--sp-xs) var(--sp-md);background:transparent;border:1px solid var(--border-bright);border-radius:var(--rad-sm);color:var(--text-md);font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:500;letter-spacing:normal;text-transform:none;cursor:pointer;transition:all .15s}.ncw-profile-signout:hover{border-color:var(--red);color:var(--red);background:var(--red-tint)}.ncw-theme-toggle{display:inline-flex;border:1px solid var(--border-bright);border-radius:var(--rad-sm);overflow:hidden}.ncw-theme-toggle .ncw-theme-opt{padding:var(--sp-xs) var(--sp-md);background:transparent;border:0;border-left:1px solid var(--border);color:var(--text-md);font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:500;letter-spacing:normal;text-transform:none;cursor:pointer;transition:color .12s,background .12s}.ncw-theme-toggle .ncw-theme-opt:first-child{border-left:0}.ncw-theme-toggle .ncw-theme-opt:hover{color:var(--text-hi)}.ncw-theme-toggle .ncw-theme-opt.active{background:var(--accent-tint);color:var(--accent)}#ncw-sidebar{width:var(--sidebar-w-col);min-height:0;flex-shrink:0;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border-bright) transparent;transition:width .2s ease,box-shadow .2s ease;position:fixed;top:var(--topbar-h);left:0;bottom:0;z-index:850}#ncw-sidebar.expanded{width:var(--sidebar-w);box-shadow:4px 0 24px var(--overlay)}#ncw-sidebar:not(.expanded){width:var(--sidebar-w-col);box-shadow:none}.ncw-sb-section{padding:var(--sp-md) var(--sp-lg) var(--sp-xs);font-size:var(--fs-xs);letter-spacing:2.5px;text-transform:uppercase;color:var(--text-lo);font-family:var(--font-disp);font-weight:600;white-space:nowrap;overflow:hidden;transition:opacity .15s,padding .2s}#ncw-sidebar:not(.expanded) .ncw-sb-section{opacity:0;padding-left:0;padding-right:0}.ncw-sb-item{display:flex;align-items:center;gap:var(--sp-md);height:var(--sb-item-h);padding:0 var(--sp-lg);text-decoration:none;color:var(--text-lo);font-family:var(--font-sans);font-size:var(--fs-base);font-weight:500;letter-spacing:normal;text-transform:none;white-space:nowrap;overflow:hidden;cursor:pointer;border:none;background:transparent;width:100%;text-align:left;transition:background .12s,color .12s,border-color .12s;border-left:2px solid transparent;flex-shrink:0}.ncw-sb-item:hover{background:var(--hover-dim);color:var(--text-md)}.ncw-sb-item.active{color:var(--accent);background:var(--accent-tint);border-left-color:var(--accent)}.ncw-sb-item .sb-icon{font-size:var(--fs-md);width:24px;text-align:center;flex-shrink:0}.ncw-sb-item .sb-label{flex:1;overflow:hidden;text-overflow:ellipsis;transition:opacity .15s}#ncw-sidebar:not(.expanded) .ncw-sb-label,#ncw-sidebar:not(.expanded) .sb-label{opacity:0}.ncw-sb-sub{padding-left:var(--sp-2xl);font-size:var(--fs-sm);height:32px;color:var(--text-lo)}.ncw-sb-sub.active{color:var(--accent)}#ncw-sidebar:not(.expanded) .ncw-sb-sub{display:none}.ncw-sb-divider{height:1px;background:var(--sidebar-border);margin:var(--sp-sm) var(--sp-md);flex-shrink:0}.ncw-sb-spacer{flex:1}#ncw-sb-footer{flex-shrink:0;padding-bottom:var(--sp-xs);border-top:1px solid var(--sidebar-border)}.ncw-sb-tooltip{position:fixed;background:var(--bg-panel);border:1px solid var(--border-bright);border-radius:var(--rad-md);padding:var(--sp-xs) var(--sp-md);font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--text-hi);white-space:nowrap;pointer-events:none;opacity:0;z-index:1100;box-shadow:var(--shadow-md);transition:opacity .12s ease}.ncw-sb-tooltip.visible{opacity:1}#ncw-sb-overlay{display:none;position:fixed;inset:0;background:var(--overlay);z-index:849;cursor:pointer;transition:opacity .2s ease;opacity:0}#ncw-sb-overlay.visible{display:block;opacity:1}@media(max-width:768px){#ncw-sidebar{transform:translate(-100%);width:var(--sidebar-w)!important;transition:transform .2s ease}#ncw-sidebar.mobile-open{transform:translate(0)}#ncw-sb-overlay.visible{display:block}#ncw-content{margin-left:0!important}}html{height:100%!important;overflow:hidden!important}body{height:100%!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}#ncw-body{flex:1!important;min-height:0!important;overflow:hidden!important;margin-top:var(--topbar-h)!important;display:flex!important;flex-direction:column!important;height:calc(100% - var(--topbar-h))!important}#ncw-content{flex:1!important;display:flex!important;flex-direction:column!important;min-height:0!important;min-width:0!important;overflow:hidden!important}#ncw-content,#ncw-content.collapsed{margin-left:var(--sidebar-w-col)!important}body:not(:has(#app)):not(:has(#target-list)):not(:has(#browser-panes)):not(:has(#se-main)) #ncw-content{overflow-y:auto!important;overflow-x:hidden!important}body:not(:has(#app)):not(:has(#target-list)):not(:has(#browser-panes)):not(:has(#se-main)) #main{flex:0 0 auto!important;overflow:visible!important}body:has(#app) #ncw-content{overflow:hidden!important}body:has(#app) #editor-toolbar{flex-shrink:0!important}body:has(#app) #lock-banner{flex-shrink:0!important}body:has(#app) #app{flex:1!important;min-height:0!important;display:flex!important;flex-direction:row!important;overflow:hidden!important}body:has(#dataset-panel) #sidebar{flex-shrink:0!important;display:flex!important;flex-direction:row!important;overflow:hidden!important;height:100%!important}#sidebar #dataset-panel{width:160px;flex-shrink:0;border-right:1px solid var(--border);padding:var(--sp-md) var(--sp-sm) var(--sp-md);display:flex;flex-direction:column;gap:var(--sp-sm);overflow-x:hidden;overflow-y:auto;height:100%;box-sizing:border-box}#sidebar #dataset-list{flex:1;overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:var(--border-hi) transparent;display:flex;flex-direction:column;gap:var(--sp-xxs)}#sidebar #dataset-empty{display:none;padding:var(--sp-md) var(--sp-xs);font-size:var(--fs-sm);color:var(--text-lo);text-align:center}#ds-search-wrap{position:relative;display:flex;align-items:center;flex-shrink:0}#ds-search{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--rad-sm);color:var(--text-hi);font-family:var(--font-mono);font-size:var(--fs-sm);padding:var(--sp-xs) var(--sp-xl) var(--sp-xs) var(--sp-sm);outline:none;transition:border-color .15s;box-sizing:border-box}#ds-search:focus{border-color:var(--accent)}#ds-search::placeholder{color:var(--text-lo);opacity:1}#ds-search-clear{position:absolute;right:4px;display:none;align-items:center;justify-content:center;width:18px;height:18px;background:none;border:none;color:var(--text-lo);font-size:var(--fs-sm);cursor:pointer;padding:0;line-height:1;transition:color .12s}#ds-search-clear:hover{color:var(--text-hi)}body:has(#sidebar-right):not(:has(#dataset-panel)) #sidebar{flex-shrink:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;height:100%!important}#sidebar-right{flex:1;min-width:0;min-height:0;height:100%;display:flex;flex-direction:column;overflow:hidden;align-self:stretch}#sidebar-right #sidebar-nav{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border-hi) transparent}#sidebar-right #nav-tools-resize-handle{height:5px;flex-shrink:0;background:var(--border);cursor:row-resize;transition:background .12s}#sidebar-right #nav-tools-resize-handle:hover,#sidebar-right #nav-tools-resize-handle.dragging{background:var(--accent)}#sidebar-right #sidebar-tools{flex-shrink:0;height:auto;overflow:visible}#sidebar #btn-new-cfg{height:28px;padding:0 var(--sp-md);background:transparent;border:1px solid var(--accent-dim);border-radius:var(--rad-sm);color:var(--accent);font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:700;letter-spacing:normal;cursor:pointer;transition:all .15s;flex-shrink:0;white-space:nowrap}#sidebar #btn-new-cfg:hover{background:var(--accent-tint);border-color:var(--accent)}body:has(#target-list) #main{flex:1!important;min-height:0!important;display:flex!important;overflow:hidden!important}body:has(#browser-panes) #browser-panes{flex:1!important;min-height:0!important;overflow:hidden!important;display:flex!important}body:has(#se-main) #ncw-content{overflow:hidden!important}body:has(#se-main) #editor-toolbar{flex-shrink:0!important;position:relative!important}body:has(#se-main) #main{flex:1!important;min-height:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;padding:0!important;margin-left:0!important}body:has(#se-main) #se-main{flex:1!important;min-height:0!important;display:flex!important;flex-direction:row!important;overflow:hidden!important}body:has(#se-main) #se-sections{overflow-y:auto!important;height:100%!important}body:has(#se-main) #se-centre-col{flex:1!important;min-width:0!important;min-height:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;height:100%!important}body:has(#se-main) #se-top-row{flex:1!important;min-height:0!important;display:flex!important;flex-direction:row!important;overflow:hidden!important}body:has(#se-main) #se-fields{flex:1!important;min-height:0!important;overflow-y:auto!important}body:has(#se-main) #se-editor{overflow-y:auto!important;min-height:0!important;flex-shrink:0!important}body:has(#se-main) #se-json-resize-handle{flex-shrink:0!important;width:100%!important;height:5px!important}body:has(#se-main) #se-json-preview{flex-shrink:0!important;height:var(--json-preview-h, 240px)!important;max-height:60%!important;overflow-y:auto!important}body:has(#se-main) #se-json-preview.collapsed{height:32px!important;max-height:32px!important}body:has(#se-main) #ncw-content{padding-bottom:0!important}body:has(#se-main) #se-main{padding:0!important;margin:0!important}body:has(#se-main) #se-editor{padding:0!important}body:has(#se-main) #se-sections{padding:0!important;margin:0!important}body:has(#se-main) #se-fields{padding:0!important;margin:0!important}.ncw-sb-item{border-left:2px solid transparent;transition:background .12s,color .12s,border-color .15s,padding-left .15s}.ncw-sb-item.active{border-left-color:var(--accent);padding-left:var(--sp-md)}.ncw-sb-item.ncw-sb-sub.active{color:var(--accent);border-left-color:#00d4b880;background:var(--accent-tint-faint)}#ncw-sb-footer .ncw-sb-item{color:var(--text-lo);border-left-color:transparent!important}#ncw-sb-footer .ncw-sb-item:hover{color:var(--text-md);background:var(--hover-dim)}#ncw-sb-signout:hover{color:var(--red)!important;background:var(--red-tint-soft)!important}#ncw-sb-help:hover{color:var(--accent)!important;background:var(--accent-tint-soft)!important}#ncw-sidebar:not(.expanded) .ncw-sb-item{padding:0!important;justify-content:center;align-items:center;gap:0;width:var(--sidebar-w-col)}#ncw-sidebar:not(.expanded) .ncw-sb-item.active{border-left-color:var(--accent)}#ncw-sidebar:not(.expanded) .ncw-sb-item .sb-icon{font-size:var(--fs-lg);width:var(--sidebar-w-col);text-align:center;line-height:var(--sb-item-h)}.ncw-sb-item.active+.ncw-sb-divider,.ncw-sb-divider+.ncw-sb-section{opacity:.7}@media(max-width:768px){#ncw-sidebar.mobile-open~* #ncw-hamburger span:nth-child(1){transform:translateY(7px) rotate(45deg)}#ncw-sidebar.mobile-open~* #ncw-hamburger span:nth-child(2){opacity:0}#ncw-sidebar.mobile-open~* #ncw-hamburger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}}.ncw-count-pill .pill-val[data-loading]{animation:ncw-pulse 1.2s ease-in-out infinite}@keyframes ncw-pulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes ncw-fadein{0%{opacity:0;transform:translate(4px)}to{opacity:1;transform:translate(0)}}.ncw-sb-global-sub{max-height:0;overflow:hidden;opacity:0;transition:max-height .25s ease,opacity .2s ease}.ncw-sb-global-sub.open{max-height:120px;opacity:1}#ncw-sidebar:not(.expanded) .ncw-sb-global-sub{max-height:0!important;opacity:0!important}.ncw-gc-arrow{font-size:var(--fs-xs);opacity:.5;transition:transform .2s ease,opacity .15s;display:inline-block;margin-left:var(--sp-xs)}button:has(+.ncw-sb-global-sub.open) .ncw-gc-arrow{transform:rotate(180deg);opacity:.9}#topbar .breadcrumb{flex:1;margin:0 var(--sp-md);display:flex;align-items:center;gap:var(--sp-xs);overflow:hidden;white-space:nowrap}#topbar .topbar-right{margin-left:auto;display:flex;align-items:center;gap:var(--sp-sm);flex-shrink:0}#topbar:not(:has(.breadcrumb)) .topbar-right{margin-left:auto}#editor-toolbar{display:flex;align-items:center;gap:var(--sp-sm);padding:0 var(--sp-lg);height:44px;flex-shrink:0;background:var(--bg-panel);border-bottom:1px solid var(--border);position:relative;z-index:39}#editor-toolbar .toolbar-label{font-family:var(--font-disp);font-size:var(--fs-xs);letter-spacing:2px;text-transform:uppercase;color:var(--text-lo);margin-right:var(--sp-xs)}#editor-toolbar .toolbar-spacer{flex:1}#editor-toolbar #status-bar{display:flex;align-items:center;gap:var(--sp-sm);font-size:var(--fs-sm);letter-spacing:normal;color:var(--text-lo)}#ncw-footer{height:32px;flex-shrink:0;display:flex;align-items:center;padding:0 var(--sp-lg);gap:var(--sp-lg);background:var(--sidebar-bg);border-top:1px solid var(--sidebar-border);font-size:var(--fs-sm);color:var(--text-lo);font-family:var(--font-sans);letter-spacing:normal;text-transform:none;position:fixed;bottom:0;left:var(--sidebar-w-col);right:0;z-index:700;transition:left .2s ease}#ncw-footer-left{display:flex;align-items:center;gap:var(--sp-md)}#ncw-footer-right{margin-left:auto;display:flex;align-items:center;gap:var(--sp-md)}#ncw-footer a{color:var(--text-lo);text-decoration:none;transition:color .12s}#ncw-footer a:hover{color:var(--text-md)}.ncw-footer-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.4}#ncw-content{padding-bottom:var(--sp-2xl)}#editor-toolbar #status-bar{display:flex;align-items:center;gap:var(--sp-sm);font-family:var(--font-sans);font-size:var(--fs-base);font-weight:600;letter-spacing:normal;color:var(--text-md)}#editor-toolbar #status-text{color:var(--text-hi);font-size:var(--fs-base)}#editor-toolbar #status-dot{width:8px;height:8px}.ncw-sb-item .sb-icon svg{width:16px;height:16px;vertical-align:middle;flex-shrink:0;transition:width .2s ease,height .2s ease}.ncw-sb-item .sb-icon .ncw-icon{width:18px;height:18px;transition:width .2s ease,height .2s ease}#ncw-sidebar:not(.expanded) .ncw-sb-item .sb-icon .ncw-icon{width:22px;height:22px}#ncw-sidebar:not(.expanded) .ncw-sb-item .sb-icon svg{width:20px;height:20px}.logo-type{font-family:var(--font-sans);font-size:var(--fs-base);font-weight:700;letter-spacing:normal;opacity:.75;padding-left:var(--sp-md);border-left:1px solid var(--border-bright);margin-left:var(--sp-xxs);white-space:nowrap}label .key-badge{display:none}label.has-keytip{cursor:default}#ncw-keytip{position:fixed;z-index:9000;pointer-events:none;padding:var(--sp-xs) var(--sp-md);background:var(--bg-panel);border:1px solid var(--accent-dim);border-radius:var(--rad-sm);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--accent);letter-spacing:.3px;white-space:nowrap;opacity:0;transition:opacity .1s ease;box-shadow:var(--shadow-md)}#ncw-keytip.visible{opacity:1}
