:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#eef1f4;--surface:#fff;--surface-2:#f6f8fa;--canvas:#f9fafb;--grid:#dde3e9;--border:#d5dbe2;--ink:#1c2733;--ink-muted:#5c6b7a;--accent:#2563eb;--accent-soft:#e8eefb;--accent-ink:#fff;--arp:#d97706;--tcp:#7c3aed;--dns:#0f766e;--dhcp:#be185d;--ipv6:#15803d;--led-on:#16a34a;--danger:#c81e1e;--danger-soft:#fee2e2;--warning:#92400e;--warning-soft:#fef3c7;--terminal-bg:#f6f8fa;--terminal-bg-2:#eceff3;--terminal-border:#d5dbe2;--terminal-ink:#176534;--terminal-ink-muted:#5c6b7a;--font-sans:"Segoe UI", "Hiragino Sans", "Noto Sans JP", system-ui, sans-serif;--font-mono:"Cascadia Mono", Consolas, "Courier New", monospace;--radius:6px;--radius-pill:999px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}[data-theme=dark]{--bg:#10151b;--surface:#171e26;--surface-2:#1d2530;--canvas:#0c1116;--grid:#1e2733;--border:#2a3442;--ink:#dce4ed;--ink-muted:#8494a6;--accent:#6ea1ff;--accent-soft:#1c2c47;--accent-ink:#10151b;--arp:#f0a24b;--tcp:#b18cf7;--dns:#2dd4bf;--dhcp:#f472b6;--ipv6:#4ade80;--led-on:#34d17b;--danger:#f47171;--danger-soft:#3a1e20;--warning:#f5c177;--warning-soft:#3a2c14;--terminal-bg:#10151b;--terminal-bg-2:#1a212b;--terminal-border:#2a3442;--terminal-ink:#c9e8d4;--terminal-ink-muted:#7c8f96}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg:#10151b;--surface:#171e26;--surface-2:#1d2530;--canvas:#0c1116;--grid:#1e2733;--border:#2a3442;--ink:#dce4ed;--ink-muted:#8494a6;--accent:#6ea1ff;--accent-soft:#1c2c47;--accent-ink:#10151b;--arp:#f0a24b;--tcp:#b18cf7;--dns:#2dd4bf;--dhcp:#f472b6;--ipv6:#4ade80;--led-on:#34d17b;--danger:#f47171;--danger-soft:#3a1e20;--warning:#f5c177;--warning-soft:#3a2c14;--terminal-bg:#10151b;--terminal-bg-2:#1a212b;--terminal-border:#2a3442;--terminal-ink:#c9e8d4;--terminal-ink-muted:#7c8f96}}body{font-family:var(--font-sans);margin:0}*,:before,:after{box-sizing:border-box}input[type=checkbox]{accent-color:var(--accent)}.app{background:var(--bg);height:100vh;color:var(--ink);font-family:var(--font-sans);flex-direction:column;font-size:14px;line-height:1.55;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;display:flex}.app-header h1{margin:0;font-size:15px;font-weight:600}.app-body{flex:1;min-height:0;display:flex}.toolbar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:8px 16px;display:flex}.tool-button{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);height:28px;color:var(--ink);cursor:pointer;white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;padding:0 12px;font-size:13px;display:inline-flex}.tool-button:hover:not(:disabled){border-color:var(--accent)}.tool-button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tool-button.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.tool-button--block{text-align:left;text-overflow:ellipsis;width:100%;line-height:26px;display:block;overflow:hidden}.tool-button:disabled{opacity:.5;cursor:not-allowed}.toolbar__separator{background:var(--border);align-self:stretch;width:1px;margin:4px 0}.toolbar__file-input{display:none}.toolbar__icon-button{flex:none;width:28px;padding:0;font-size:15px;line-height:1}.theme-toggle{border-radius:var(--radius-pill);background:var(--border);cursor:pointer;border:none;flex:none;width:44px;height:24px;padding:0;transition:background-color .15s;position:relative}.theme-toggle.is-dark{background:var(--accent)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-toggle__knob{background:var(--surface);width:20px;height:20px;color:var(--ink-muted);border-radius:50%;justify-content:center;align-items:center;transition:left .15s;display:inline-flex;position:absolute;top:2px;left:2px}.theme-toggle.is-dark .theme-toggle__knob{left:22px}.theme-toggle:hover .theme-toggle__knob{color:var(--ink)}.error-banner{background:var(--danger-soft);color:var(--danger);border-bottom:1px solid var(--danger);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;font-size:13px;display:flex}.error-banner__dismiss{color:inherit;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:15px;line-height:1}.palette-panel{background:var(--surface);border-right:1px solid var(--border);flex:none;display:flex}.palette-panel__body{flex:1;min-width:0;padding:12px;overflow-y:auto}.palette-panel__resize-handle{cursor:ew-resize;touch-action:none;flex:none;width:6px}.palette-panel__resize-handle:hover{background:var(--accent-soft)}.palette-panel__items{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.palette-panel__hint{color:var(--ink-muted);margin:0;font-size:12px;line-height:1.5}.panel-heading{letter-spacing:.08em;color:var(--ink-muted);margin:0 0 8px;font-size:11px;font-weight:600}.panel-heading--small{margin-bottom:4px}.bottom-panel{background:var(--surface);border-top:1px solid var(--border);flex-direction:column;flex:none;display:flex}.bottom-panel__resize-handle{cursor:ns-resize;touch-action:none;flex:none;height:6px;margin-top:-1px}.bottom-panel__resize-handle:hover{background:var(--accent-soft)}.bottom-panel__header{border-bottom:1px solid var(--border);flex-wrap:wrap;flex:none;align-items:center;gap:8px 16px;padding:8px 16px;display:flex}.bottom-panel__tabs{gap:8px;display:flex}.bottom-panel__content{flex:1;min-height:0}.playback-controls{align-items:center;gap:8px;display:flex}.playback-controls--empty{color:var(--ink-muted);font-size:12px}.playback-controls__speeds{gap:2px;margin-left:4px;display:flex}.playback-controls__status{color:var(--ink-muted);margin-left:8px;font-size:12px}.playback-controls__autopause{color:var(--ink-muted);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;margin-left:8px;font-size:12px;display:inline-flex}.packet-legend{color:var(--ink-muted);align-items:center;gap:8px;margin-left:auto;font-size:12px;display:flex}.packet-legend__item{align-items:center;gap:4px;display:inline-flex}.packet-legend__swatch{border-radius:50%;width:9px;height:9px;display:inline-block}.packet-legend__swatch--arp{background:var(--arp)}.packet-legend__swatch--ipv4{background:var(--accent)}.packet-legend__swatch--tcp{background:var(--tcp)}.packet-legend__swatch--dns{background:var(--dns)}.packet-legend__swatch--dhcp{background:var(--dhcp)}.packet-legend__swatch--ipv6{background:var(--ipv6)}.terminal-tabs{background:var(--terminal-bg);flex:none;gap:2px;padding:4px 16px 0;display:flex;overflow-x:auto}.terminal-tabs__item{color:var(--terminal-ink-muted);background:var(--terminal-bg-2);border:1px solid var(--terminal-border);cursor:pointer;border-bottom:none;border-radius:3px 3px 0 0;align-items:center;gap:8px;padding:4px 8px;font-size:12px;display:inline-flex}.terminal-tabs__item.is-active{color:var(--terminal-ink);background:var(--terminal-border)}.terminal-tabs__label{white-space:nowrap}.terminal-tabs__detach,.terminal-tabs__close{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0 2px;line-height:1}.terminal-tabs__detach{opacity:.75;font-size:11px}.terminal-tabs__detach:hover{opacity:1}.terminal-tabs__close:disabled{opacity:.4;cursor:not-allowed}.terminal-view{background:var(--terminal-bg-2);height:100%;color:var(--terminal-ink);font-family:var(--font-mono);flex-direction:column;font-size:12px;display:flex}.terminal-view--empty{color:var(--ink-muted);background:var(--surface);justify-content:center;align-items:center;padding:16px;font-family:inherit;display:flex}.terminal-view__header{background:var(--terminal-bg);color:var(--terminal-ink);flex:none;padding:4px 12px;font-size:11px}.terminal-view__output{flex:1;padding:8px 12px;overflow-y:auto}.terminal-view__hint{color:var(--terminal-ink-muted);margin:0}.terminal-view__line{white-space:pre-wrap;line-height:1.5}.terminal-view__input-row{border-top:1px solid var(--terminal-border);flex:none;align-items:center;gap:8px;padding:8px 12px;display:flex}.terminal-view__prompt{color:var(--terminal-ink)}.terminal-view__input{font:inherit;color:var(--terminal-ink);background:0 0;border:none;outline:none;flex:1}.terminal-view__input::placeholder,.terminal-view__input:disabled{color:var(--terminal-ink-muted)}.event-log{height:100%;padding:4px 12px;overflow-y:auto}.event-log--empty{height:100%;color:var(--ink-muted);justify-content:center;align-items:center;font-size:12px;display:flex}.event-log__list{margin:0;padding:0;list-style:none}.event-log__item{border-bottom:1px solid var(--border);gap:12px;padding:4px 0;font-size:12px;display:flex}.event-log__item.is-pending{color:var(--ink-muted);opacity:.55}.event-log__item.is-current{background:var(--accent-soft)}.event-log__time{width:64px;font-family:var(--font-mono);color:var(--ink-muted);flex:none}.event-log__message{flex:1}.floating-inspector{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex;position:absolute;overflow:hidden}.floating-inspector.is-dragging{box-shadow:0 6px 16px #0000004d}.floating-inspector__titlebar{background:var(--surface-2);border-bottom:1px solid var(--border);cursor:move;touch-action:none;flex:none;justify-content:space-between;align-items:center;gap:8px;padding:4px 6px 4px 10px;display:flex}.floating-inspector__title{letter-spacing:.08em;color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.floating-inspector__actions{flex:none;align-items:center;gap:2px;display:flex}.floating-inspector__action{font:inherit;border-radius:var(--radius);color:var(--ink-muted);cursor:pointer;background:0 0;border:none;padding:2px 5px;line-height:1}.floating-inspector__action:hover:not(:disabled){color:var(--ink);background:var(--accent-soft)}.floating-inspector__body{flex:1;min-height:0;padding:8px 12px 12px;overflow-y:auto}.floating-inspector__resize-handle{cursor:nwse-resize;touch-action:none;width:14px;height:14px;position:absolute;bottom:0;right:0}.floating-inspector__resize-handle:after{content:"";border-right:2px solid var(--border);border-bottom:2px solid var(--border);width:6px;height:6px;position:absolute;bottom:3px;right:3px}.floating-terminal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex;position:absolute;overflow:hidden}.floating-terminal.is-dragging{box-shadow:0 6px 16px #0000004d}.floating-terminal__titlebar{background:var(--surface-2);border-bottom:1px solid var(--border);cursor:move;touch-action:none;flex:none;justify-content:space-between;align-items:center;gap:8px;padding:4px 6px 4px 10px;display:flex}.floating-terminal__title{letter-spacing:.08em;color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.floating-terminal__actions{flex:none;align-items:center;gap:2px;display:flex}.floating-terminal__action{font:inherit;border-radius:var(--radius);color:var(--ink-muted);cursor:pointer;background:0 0;border:none;padding:2px 5px;line-height:1}.floating-terminal__action:hover:not(:disabled){color:var(--ink);background:var(--accent-soft)}.floating-terminal__action:disabled{opacity:.4;cursor:not-allowed}.floating-terminal__body{flex:1;min-height:0}.floating-terminal__resize-handle{cursor:nwse-resize;touch-action:none;width:14px;height:14px;position:absolute;bottom:0;right:0}.floating-terminal__resize-handle:after{content:"";border-right:2px solid var(--border);border-bottom:2px solid var(--border);width:6px;height:6px;position:absolute;bottom:3px;right:3px}.canvas-panel{background:var(--bg);flex:1;min-width:0;display:flex;position:relative}.canvas-svg{flex:1;width:100%;height:100%}.canvas-svg--place-pc,.canvas-svg--place-switch,.canvas-svg--place-l3switch,.canvas-svg--place-router,.canvas-svg--place-server,.canvas-svg--place-internet{cursor:crosshair}.canvas-svg.is-panning{cursor:grabbing}.canvas-svg__background{fill:var(--canvas)}.canvas-svg__grid-dot{fill:var(--grid)}.link-edge__hitbox{stroke:#0000;stroke-width:14px;fill:none}.link-edge__line{stroke:var(--ink-muted);stroke-width:2px;fill:none}.link-edge.is-interactive{cursor:pointer}.link-edge.is-traversed .link-edge__line{stroke:var(--accent-soft);stroke-width:5px}.link-edge.is-selected .link-edge__line{stroke:var(--accent);stroke-width:3px}.link-edge.has-error .link-edge__line{stroke:var(--danger)}.link-edge__channel-label{fill:var(--ink-muted);pointer-events:none;font-size:10px}.device-node.is-interactive{cursor:pointer}.device-node__icon rect,.device-node__icon circle,.device-node__icon path{fill:var(--surface);stroke:var(--ink-muted);stroke-width:1.5px}.device-node__icon .device-node__port{fill:var(--ink-muted);stroke:none}.device-node__router-arrow{stroke:var(--ink-muted);fill:var(--ink-muted);stroke-width:1.5px}.device-node__label{fill:var(--ink);font-size:11px}.device-node__badge{fill:var(--danger);font-size:13px}.device-node__badge--stp-root{fill:var(--accent);font-weight:700}.device-node.is-selected .device-node__icon rect,.device-node.is-selected .device-node__icon circle,.device-node.is-selected .device-node__icon path{stroke:var(--accent);stroke-width:2.5px}.device-node.is-selected .device-node__icon rect:first-child,.device-node.is-selected .device-node__icon circle:first-child,.device-node.is-selected .device-node__icon path:first-child{fill:var(--accent-soft)}.device-node.is-dragging .device-node__icon{filter:drop-shadow(0 3px 6px #00000059)}.device-node--off{opacity:.45}.device-node.is-drop-target .device-node__icon rect:first-child,.device-node.is-drop-target .device-node__icon circle:first-child,.device-node.is-drop-target .device-node__icon path:first-child{fill:var(--accent-soft);stroke:var(--accent);stroke-width:2.5px}.device-node__connector{fill:var(--surface);stroke:var(--border);stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;transition:transform .1s}.device-node__connector.is-connected{fill:var(--led-on);stroke:var(--led-on)}.device-node__connector.is-stp-blocking{fill:var(--danger);stroke:var(--danger)}.device-node__connector.is-dot1x-unauthorized{fill:var(--warning);stroke:var(--warning)}.device-node__connector.is-interactive{cursor:grab}.device-node__connector.is-interactive:hover{transform:scale(1.4)}.device-node__connector.is-clickable{cursor:pointer}.device-node__connector.is-clickable:hover{transform:scale(1.4)}.device-node__connector.is-drag-source{fill:var(--accent-soft);stroke:var(--accent);stroke-dasharray:2 1.5}.device-node__connector.is-hover-target{stroke:var(--accent);stroke-width:2.5px;transform:scale(1.4)}.port-drag-ghost{stroke:var(--accent);stroke-width:2px;stroke-dasharray:4 3;fill:none;pointer-events:none}.canvas-marquee{fill:var(--accent-soft);fill-opacity:.35;stroke:var(--accent);stroke-width:1px;pointer-events:none}.packet-dot{cursor:pointer}.packet-dot--arp{fill:var(--arp);filter:drop-shadow(0 0 4px var(--arp))}.packet-dot--ipv4{fill:var(--accent);filter:drop-shadow(0 0 4px var(--accent))}.packet-dot--tcp{fill:var(--tcp);filter:drop-shadow(0 0 4px var(--tcp))}.packet-dot--dns{fill:var(--dns);filter:drop-shadow(0 0 4px var(--dns))}.packet-dot--dhcp{fill:var(--dhcp);filter:drop-shadow(0 0 4px var(--dhcp))}.packet-dot--ipv6{fill:var(--ipv6);filter:drop-shadow(0 0 4px var(--ipv6))}.packet-dot__ring{fill:none;stroke:var(--accent);stroke-width:2px;pointer-events:none}.drop-marker{fill:var(--danger);pointer-events:none;font-size:16px;font-weight:700}.l3-hop-chip__bg{fill:var(--surface);stroke:var(--accent);stroke-width:1.5px}.l3-hop-chip__text{font-family:var(--font-mono);fill:var(--ink);pointer-events:none;font-size:10px}.canvas-zoom-controls{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:4px;padding:4px;display:flex;position:absolute;bottom:12px;right:12px}.canvas-zoom-controls__level{text-align:center;min-width:38px;font-family:var(--font-mono);color:var(--ink-muted);font-size:11px}.canvas-zoom-controls__separator{background:var(--border);align-self:stretch;width:1px;margin:2px 0}.packet-inspector{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;width:280px;max-height:320px;padding:12px;display:flex;position:absolute;bottom:56px;right:12px;overflow-y:auto}.packet-inspector__header{justify-content:space-between;align-items:center;display:flex}.packet-inspector__title{margin:0}.packet-inspector__close{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:15px;line-height:1}.packet-inspector__close:hover{color:var(--ink)}.packet-inspector__layers{flex-direction:column;display:flex}.packet-inspector__layer{border:1px solid var(--border);border-left:3px solid var(--ink-muted);border-radius:var(--radius);background:var(--surface);padding:6px 8px}.packet-inspector__layer--ipv4,.packet-inspector__layer--icmp{border-left-color:var(--accent)}.packet-inspector__layer--arp{border-left-color:var(--arp)}.packet-inspector__layer-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.packet-inspector__layer-label{letter-spacing:.08em;color:var(--ink-muted);font-size:11px;font-weight:600}.packet-inspector__layer-osi{font-family:var(--font-mono);color:var(--ink-muted);background:var(--surface-2);border-radius:var(--radius-pill);padding:1px 6px;font-size:10px}.packet-inspector__layer-summary{font-family:var(--font-mono);color:var(--ink);word-break:break-word;margin-top:4px;font-size:11px}.packet-inspector__layer-child{margin-top:6px;padding-left:8px}.context-menu{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;min-width:180px;padding:4px;display:flex;position:fixed;box-shadow:0 4px 12px #0003}.context-menu__item{border-radius:var(--radius);height:28px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;padding:0 10px;font-size:13px;display:flex}.context-menu__item:hover:not(:disabled){background:var(--accent-soft)}.context-menu__item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.context-menu__item:disabled{color:var(--ink-muted);opacity:.5;cursor:not-allowed}.context-menu__separator{background:var(--border);height:1px;margin:4px 6px}.inspector-panel{background:var(--surface);border-left:1px solid var(--border);flex:none;display:flex;overflow:hidden}.inspector-panel__resize-handle{cursor:ew-resize;touch-action:none;flex:none;width:6px}.inspector-panel__resize-handle:hover{background:var(--accent-soft)}.inspector-panel__body{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.inspector-panel__body>.panel-heading{padding:12px 12px 0}.inspector-panel__content{flex:1;padding:8px 12px 12px;overflow-y:auto}.inspector-panel__hint{color:var(--ink-muted);margin:0;font-size:12px}.field{margin-bottom:8px;display:block}.field__label{color:var(--ink-muted);margin-bottom:4px;font-size:11px;display:block}.field__input{width:100%;height:28px;font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--ink);padding:0 8px;font-size:13px}.field__input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.field__input--narrow{width:72px}.is-monospace{font-family:var(--font-mono)}.field__value{padding:4px 0;font-size:13px;display:block}.field__value--muted{color:var(--ink-muted)}.field__value-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.ip-fields{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.ip-fields__row{align-items:flex-end;gap:8px;display:flex}.ip-fields__row .field{flex:1;margin-bottom:0}.ip-fields__error{color:var(--danger);margin:0;font-size:11px}.inspector-tabs{flex:none;gap:2px;padding:0 12px;display:flex;overflow-x:auto}.inspector-tabs__item{color:var(--ink-muted);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-bottom:none;border-radius:3px 3px 0 0;align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:inline-flex}.inspector-tabs__item.is-active{color:var(--ink);background:var(--surface)}.inspector-tabs__label{white-space:nowrap;text-overflow:ellipsis;max-width:120px;overflow:hidden}.inspector-tabs__detach,.inspector-tabs__close{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0 2px;line-height:1}.inspector-tabs__detach{opacity:.75;font-size:11px}.inspector-tabs__detach:hover{opacity:1}.device-inspector{flex-direction:column;display:flex}.device-inspector__header{align-items:flex-end;gap:8px;display:flex}.device-inspector__header .field{flex:1;margin-bottom:8px}.kind-inspector{border-top:1px solid var(--border);margin-top:4px;padding-top:8px}.kind-inspector__view-tabs{gap:4px;margin-bottom:8px;display:flex}.kind-inspector__view-tab{flex:1}.kind-inspector__view-tab-dot{background:currentColor;border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}.kind-inspector__heading{letter-spacing:.08em;color:var(--ink-muted);margin:0 0 8px;font-size:11px;font-weight:600}.kind-inspector__group-heading{border-top:1px solid var(--border);letter-spacing:.08em;color:var(--ink-muted);margin:8px 0;padding-top:8px;font-size:11px;font-weight:600}.iface-card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.iface-card+.iface-card{margin-top:8px}.iface-card__header{background:var(--surface-2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:8px;padding:6px 8px;display:flex}.iface-card__title{letter-spacing:.08em;color:var(--ink-muted);white-space:nowrap;margin:0;font-size:11px;font-weight:600}.iface-card__peer{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.iface-card__peer.is-connected{color:var(--ink)}.iface-card__body{padding:8px}.iface-card__body .field:last-child{margin-bottom:0}.static-routes{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.static-routes__empty{color:var(--ink-muted);margin:0 0 8px;font-size:12px}.static-routes__list{margin:0 0 8px;padding:0;list-style:none}.static-routes__item{justify-content:space-between;align-items:center;gap:8px;padding:4px 0;font-size:12px;display:flex}.static-routes__form{align-items:center;gap:8px;display:flex}.nat-toggle{color:var(--ink);align-items:center;gap:8px;font-size:12px;display:flex}.nat-toggle__hint{color:var(--ink-muted);margin:4px 0 0;font-size:11px}.collapsible-section__toggle{width:100%;font:inherit;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:4px 0;font-size:12px;display:flex}.collapsible-section__badge{font-family:var(--font-mono);color:var(--ink-muted);background:var(--surface-2);border-radius:var(--radius-pill);padding:2px 8px;font-size:11px;display:inline-block}.collapsible-section__body{border-left:2px solid var(--border);padding:4px 0 4px 12px}.kind-inspector__section+.kind-inspector__section{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.acl-editor{margin-top:8px}.acl-editor__stateful-toggle{color:var(--ink-muted);align-items:center;gap:4px;margin:0 0 12px;font-size:12px;display:flex}.acl-direction+.acl-direction{margin-top:12px}.acl-direction__heading{letter-spacing:.08em;color:var(--ink-muted);margin:0 0 4px;font-size:11px;font-weight:600}.acl-direction__empty{color:var(--ink-muted);margin:0 0 8px;font-size:12px}.acl-direction__list{margin:0 0 8px;padding:0;list-style:none}.acl-direction__item{justify-content:space-between;align-items:center;gap:8px;padding:4px 0;font-size:12px;display:flex}.acl-direction__rule{overflow-wrap:anywhere}.acl-direction__controls{flex:none;gap:8px;display:flex}.acl-direction__form{flex-direction:column;gap:8px;display:flex}.acl-direction__form-row{gap:8px;display:flex}.acl-direction__form-row .field__input{flex:1}.acl-direction__endpoint-field{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.acl-direction__endpoint-field .field__label{flex:none;margin-bottom:0}.acl-direction__endpoint-field .field__input{flex:1;min-width:0}.acl-direction__any-toggle{color:var(--ink-muted);align-items:center;gap:4px;font-size:12px;display:flex}.port-table-wrapper{overflow-x:auto}.port-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:11px}.port-table th,.port-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap;padding:4px 5px}.port-table th{background:var(--surface-2);color:var(--ink-muted);font-weight:600}.port-table__col-port{width:42px}.port-table__col-mode{width:90px}.port-table__col-vlan{width:44px}.port-table__col-channel{width:52px}.port-table__col-stp{width:108px}.port-table__col-stp.is-stp-blocking{color:var(--danger)}.port-table__col-dot1x{text-align:center;width:52px}.port-table__col-peer{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.port-table__col-peer.is-connected{color:var(--ink)}.port-table__col-peer:not(.is-connected){color:var(--ink-muted)}.port-table__col-action{width:38px}.port-table__mode-select{width:100%;padding:0 2px}.port-table__vlan-input,.port-table__channel-input{width:100%}.device-tables{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.device-table+.device-table{margin-top:12px}.device-table__empty{color:var(--ink-muted);margin:0;font-size:12px}.device-table__grid{border-collapse:collapse;width:100%;font-size:11px}.device-table__grid th,.device-table__grid td{text-align:left;border-bottom:1px solid var(--border);padding:4px 8px}.device-table__grid th{background:var(--surface-2);color:var(--ink-muted);font-weight:600}.multi-selection-summary__text{color:var(--ink);margin:0;font-size:13px}.link-inspector__endpoint{flex-direction:column;margin-bottom:8px;font-size:12px;display:flex}.link-inspector__capture{border-top:1px solid var(--border);margin-top:12px;padding-top:8px}.link-inspector__capture .kind-inspector__heading{align-items:center;gap:8px;display:flex}.link-capture-list{max-height:220px;overflow-y:auto}.link-capture-list__table{border-collapse:collapse;width:100%;font-size:11px}.link-capture-list__table th,.link-capture-list__table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:4px 6px}.link-capture-list__table th{background:var(--surface-2);color:var(--ink-muted);font-weight:600;position:sticky;top:0}.link-capture-list__row{cursor:pointer}.link-capture-list__row:hover{background:var(--accent-soft)}.link-capture-list__detail-row td{background:var(--surface-2)}.link-capture-list__detail{flex-direction:column;gap:6px;display:flex}.link-capture-list__detail-endpoints{color:var(--ink-muted);font-size:11px}.danger-button{font:inherit;border:1px solid var(--danger);border-radius:var(--radius);background:var(--surface);height:28px;color:var(--danger);cursor:pointer;justify-content:center;align-self:flex-start;align-items:center;margin-top:12px;padding:0 12px;font-size:13px;display:inline-flex}.danger-button:hover:not(:disabled){background:var(--danger-soft)}.danger-button:focus-visible{outline:2px solid var(--danger);outline-offset:1px}.danger-button:disabled{opacity:.5;cursor:not-allowed}.link-button{border-radius:var(--radius);height:22px;color:var(--ink-muted);font:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0 6px;font-size:12px;display:inline-flex}.link-button:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.link-button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.link-button:disabled{opacity:.5;cursor:not-allowed}.link-button--danger{color:var(--danger)}.link-button--danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.validation-list{border-top:1px solid var(--border);flex:none;max-height:220px;padding:8px 12px;overflow-y:auto}.validation-list--ok p{color:var(--ink-muted);margin:0;font-size:12px}.issue-list{margin:0;padding:0;list-style:none}.issue-list--inline{margin:8px 0}.issue-list__item{padding:4px 0;font-size:12px;line-height:1.5}.issue-list__severity{font-family:var(--font-mono);border-radius:var(--radius-pill);margin-right:8px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.issue-list__severity--error{background:var(--danger-soft);color:var(--danger)}.issue-list__severity--warning{background:var(--warning-soft);color:var(--warning)}.issue-list__meta{color:var(--ink-muted);font-family:var(--font-mono);font-size:11px}
