*{box-sizing:border-box}body,html{padding:0;margin:0}html{height:100%}body{min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-md);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv01","ss01";transition:background .2s var(--ease),color .2s var(--ease)}.mono,.tabular,code{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit;font-size:inherit}h1,h2,h3,h4,p{margin:0}::selection{background:var(--brand-tint);color:var(--brand-ink)}:focus-visible{outline:none}.nx-skip{position:absolute;left:-9999px;top:0;z-index:var(--z-tooltip);background:var(--surface);color:var(--text);border:1px solid var(--brand);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);box-shadow:var(--shadow-md)}.nx-skip:focus{left:var(--space-4);top:var(--space-4)}.nx-h1{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-2xl);line-height:var(--leading-2xl)}.nx-h1,.nx-h2{color:var(--text)}.nx-h2{font-size:var(--text-lg);letter-spacing:var(--tracking-lg);line-height:var(--leading-lg)}.nx-eyebrow,.nx-h2{font-weight:var(--weight-semibold)}.nx-eyebrow{font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--brand-ink);background:var(--brand-tint);display:inline-block;padding:3px var(--space-2);border-radius:var(--radius-xs)}.nx-subtitle{font-size:var(--text-md)}.nx-muted,.nx-subtitle{color:var(--text-2)}.nx-link{color:var(--brand-ink);font-weight:var(--weight-semibold)}.nx-link:hover{text-decoration:underline}.nx-faint{color:var(--text-3);font-size:var(--text-sm)}.nx-demo-banner{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);margin-bottom:var(--space-4);border:1px solid var(--warning);border-radius:var(--radius-md);background:var(--warning-bg);color:var(--text);font-size:var(--text-sm)}.nx-demo-banner__icon{color:var(--warning);display:flex;flex:none}.nx-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.nx-stat{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--surface-2)}.nx-stat--key{border-color:var(--brand)}.nx-stat__value{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-xl);line-height:var(--leading-xl)}.nx-stat__value--accent{color:var(--brand-ink)}.nx-stat__label{font-size:var(--text-sm);color:var(--text-2);margin-top:2px}.nx-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));grid-gap:var(--space-3);gap:var(--space-3);margin-bottom:var(--space-5)}.nx-optile{position:relative;border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4);background:var(--surface-2);overflow:hidden}.nx-optile__top{display:flex;align-items:center;justify-content:space-between;color:var(--text-3);margin-bottom:var(--space-2)}.nx-optile__value{font-size:var(--text-2xl);font-weight:var(--weight-semibold);color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-2xl);line-height:var(--leading-3xl)}.nx-optile__label{font-size:var(--text-sm);color:var(--text-2);margin-top:2px}.nx-optile__sub{font-size:var(--text-xs);color:var(--text-3);margin-top:2px}.nx-optile--good{box-shadow:inset 3px 0 0 var(--success)}.nx-optile--warn{box-shadow:inset 3px 0 0 var(--warning)}.nx-optile--bad{box-shadow:inset 3px 0 0 var(--danger)}.nx-optile--brand{box-shadow:inset 3px 0 0 var(--brand)}.nx-optile__value--good{color:var(--success)}.nx-optile__value--warn{color:var(--warning)}.nx-optile__value--bad{color:var(--danger)}.nx-ops-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));grid-gap:var(--space-4);gap:var(--space-4)}.nx-catcard__head{display:flex;align-items:center;gap:var(--space-3)}.nx-caticon{width:38px;height:38px;border-radius:var(--radius-md);display:grid;place-items:center;background:var(--surface-3);color:var(--text-2);flex-shrink:0}.nx-catcard__counts{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.nx-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.nx-dot--connected{background:var(--success)}.nx-dot--degraded{background:var(--warning)}.nx-dot--error{background:var(--danger)}.nx-dot--disconnected{background:var(--muted)}.nx-dot--pending{background:var(--info)}.nx-conn{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line-2)}.nx-conn:last-child{border-bottom:none}.nx-conn__main{min-width:0;flex:1 1}.nx-conn__title{font-weight:600;display:flex;align-items:center;gap:var(--space-2);color:var(--text)}.nx-conn__meta{font-size:var(--text-xs);color:var(--text-3);margin-top:3px;display:flex;gap:var(--space-3);flex-wrap:wrap}.nx-conn__err{font-size:var(--text-xs);color:var(--danger);margin-top:4px;word-break:break-word}.nx-conn__side{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.nx-scope{font-size:10px;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);border:1px solid var(--line);border-radius:var(--radius-full);padding:1px 7px;white-space:nowrap}.nx-avail{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--line-2)}.nx-avail__chip{font-size:var(--text-xs);color:var(--text-3);border:1px dashed var(--line-strong);border-radius:var(--radius-full);padding:2px 10px}.nx-route{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--line-2);flex-wrap:wrap}.nx-route:last-child{border-bottom:none}.nx-route__main{flex:1 1;min-width:220px}.nx-route__controls{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.nx-skel{display:block;background:linear-gradient(90deg,var(--surface-3) 25%,var(--surface-2) 37%,var(--surface-3) 63%);background-size:400% 100%;animation:nx-skel-shimmer 1.4s ease infinite}@keyframes nx-skel-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion:reduce){.nx-skel{animation:none}}.nx-routing-table td:nth-child(2),.nx-routing-table td:nth-child(3),.nx-routing-table th:nth-child(2),.nx-routing-table th:nth-child(3){width:210px}.nx-routing-table .nx-select{width:100%}.nx-barrow{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0}.nx-barrow__label{width:170px;flex-shrink:0;font-size:var(--text-sm);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nx-barrow__track{flex:1 1;height:8px;background:var(--surface-3);border-radius:var(--radius-full);overflow:hidden}.nx-barrow__fill{height:100%;background:var(--brand);border-radius:var(--radius-full);min-width:2px}.nx-barrow__val{width:100px;text-align:right;flex-shrink:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:var(--text-sm);color:var(--text-2)}.nx-trend{display:flex;align-items:flex-end;gap:3px;height:120px;padding-top:var(--space-2)}.nx-trend__col{flex:1 1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:var(--space-1);min-width:0}.nx-trend__bar{width:100%;max-width:24px;background:var(--brand);border-radius:var(--radius-xs) var(--radius-xs) 0 0;min-height:2px}.nx-trend__cap{font-size:9px;color:var(--text-3);white-space:nowrap}.nx-split{display:flex;height:12px;border-radius:var(--radius-full);overflow:hidden;background:var(--surface-3)}.nx-split__in{background:var(--brand)}.nx-split__out{background:var(--info)}.nx-budget{padding:var(--space-4) 0;border-bottom:1px solid var(--line-2)}.nx-budget:last-child{border-bottom:none}.nx-budget__track{height:10px;background:var(--surface-3);border-radius:var(--radius-full);overflow:hidden;margin-top:var(--space-2)}.nx-budget__fill{height:100%;border-radius:var(--radius-full);min-width:2px;transition:width var(--dur) var(--ease)}.nx-budget__fill--ok{background:var(--success)}.nx-budget__fill--warn{background:var(--warning)}.nx-budget__fill--over{background:var(--danger)}