.netsim-stage,.netsim-legend{--netsim-live:var(--netsim-signal);--netsim-live-hot:var(--netsim-signal-hot)}.netsim-stage[data-signal=arp]{--netsim-live:var(--netsim-arp);--netsim-live-hot:var(--netsim-arp-hot)}.netsim-stage{background-color:var(--netsim-stage-bg);background-image:radial-gradient(ellipse 70% 60% at 50% 45%, color-mix(in srgb, var(--netsim-live) 5%, transparent), transparent 70%), linear-gradient(to right, var(--netsim-grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--netsim-grid-line) 1px, transparent 1px);background-size:auto,32px 32px,32px 32px;width:100%;height:clamp(420px,100svh - 21rem,760px);position:relative}.netsim-stage[data-mode=tall]{height:auto}.netsim-stage .react-flow{background:0 0}.netsim-stage .react-flow__pane{cursor:default}.netsim-stage .react-flow__node{pointer-events:none}.netsim-stage .react-flow__attribution{opacity:.5;background:0 0;padding:2px 8px;font-size:9px}.netsim-stage .react-flow__attribution a{color:var(--muted-foreground)}.netsim-stage[data-paused] *,.netsim-stage[data-paused] :before,.netsim-stage[data-paused] :after{animation-play-state:paused!important}.netsim-handle{opacity:0;border:0!important;width:1px!important;min-width:0!important;height:1px!important;min-height:0!important}.netsim-zone{border:1.5px dashed var(--netsim-zone-line);border-radius:28px;position:relative}.netsim-zone[data-zone=lan]{background:var(--netsim-zone-lan)}.netsim-zone[data-zone=wan]{background:var(--netsim-zone-wan)}.netsim-zone[data-shared=right]{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.netsim-zone[data-shared=left]{border-left:2.5px dashed color-mix(in srgb, var(--netsim-zone-line) 60%, var(--muted-foreground));border-top-left-radius:0;border-bottom-left-radius:0}.netsim-zone[data-shared=bottom]{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.netsim-zone[data-shared=top]{border-top:2.5px dashed color-mix(in srgb, var(--netsim-zone-line) 60%, var(--muted-foreground));border-top-left-radius:0;border-top-right-radius:0}.netsim-zone__label{font-family:var(--font-cairo), sans-serif;letter-spacing:.02em;color:var(--muted-foreground);white-space:nowrap;align-items:baseline;gap:10px;font-size:17px;font-weight:800;display:inline-flex;position:absolute;top:16px}.netsim-zone__label[dir=rtl]{letter-spacing:0}.netsim-zone__cidr{font-family:var(--font-mono-code), ui-monospace, monospace;color:color-mix(in srgb, var(--muted-foreground) 80%, transparent);font-size:15px;font-weight:500}.netsim-cable path{fill:none;stroke-linecap:round}.netsim-cable__sheath{stroke:var(--netsim-cable);stroke-width:14px}.netsim-cable__core{stroke:var(--netsim-cable-core);stroke-width:3px;transition:stroke .4s}.netsim-cable[data-io] .netsim-cable__sheath{stroke-width:8px}.netsim-cable[data-io] .netsim-cable__core{stroke-dasharray:2 9}.netsim-cable[data-state=trail] .netsim-cable__core{stroke:color-mix(in srgb, var(--netsim-signal) 55%, transparent)}.netsim-cable__glow{stroke:var(--netsim-live);stroke-width:18px;opacity:.18}.netsim-cable__flow{stroke:var(--netsim-live);stroke-width:3.5px;stroke-dasharray:4 16;animation:.8s linear infinite netsim-cable-flow}.netsim-cable[data-direction=back] .netsim-cable__flow{animation-direction:reverse}.netsim-cable__port{fill:var(--netsim-device-face);stroke:var(--netsim-device-line);stroke-width:2px;transition:fill .3s,stroke .3s}.netsim-cable[data-state=active] .netsim-cable__port{fill:var(--netsim-live);stroke:var(--netsim-live)}@keyframes netsim-cable-flow{to{stroke-dashoffset:-20px}}.netsim-cable__label{border:1px solid color-mix(in srgb, var(--border) 100%, transparent);background:color-mix(in srgb, var(--background) 88%, transparent);font-family:var(--font-mono-code), ui-monospace, monospace;letter-spacing:.04em;color:var(--muted-foreground);white-space:nowrap;pointer-events:none;border-radius:999px;padding:4px 12px;font-size:15px;transition:color .3s,border-color .3s;position:absolute}.netsim-cable__label[dir=rtl]{font-family:var(--font-cairo), sans-serif;letter-spacing:0;font-weight:700}.netsim-cable__label[data-state=active]{color:var(--netsim-live);border-color:color-mix(in srgb, var(--netsim-live) 55%, transparent)}.netsim-station,.netsim-terminal{color:var(--netsim-idle-light);transition:color .3s;position:relative}.netsim-station[data-lit=true],.netsim-terminal[data-lit=true]{color:var(--netsim-live)}.netsim-station__hit{cursor:pointer;pointer-events:auto;color:inherit;text-align:inherit;border-radius:24px;display:block;position:absolute;inset:0}.netsim-station__hit:focus-visible{outline:3px solid var(--ring);outline-offset:4px}.netsim-station__glyph{justify-content:center;align-items:center;display:flex;position:absolute}.netsim-station__art{transition:filter .3s,transform .3s;position:relative;overflow:visible}.netsim-station__hit:hover .netsim-station__art{transform:translateY(-2px)}.netsim-station[data-lit=true] .netsim-station__art{filter:drop-shadow(0 0 10px color-mix(in srgb, var(--netsim-live) 55%, transparent))}.netsim-station[data-lit=true] .netsim-station__art [stroke="var(--netsim-device-line)"]{stroke:color-mix(in oklch, var(--netsim-live) 80%, var(--netsim-device-line))}.netsim-halo{background:radial-gradient(circle, color-mix(in srgb, var(--netsim-live) 34%, transparent) 0%, color-mix(in srgb, var(--netsim-live) 10%, transparent) 42%, transparent 68%);pointer-events:none;border-radius:50%;position:absolute;inset:-18%}.netsim-halo--terminal{inset:-30%}.netsim-ripple{border:2px solid var(--netsim-live);pointer-events:none;border-radius:50%;width:150px;height:150px;position:absolute;top:calc(50% - 75px);left:calc(50% - 75px)}.netsim-station__label{flex-direction:column;gap:2px;display:flex;position:absolute}.netsim-station__label--below{text-align:center;justify-content:flex-start;align-items:center;padding-top:6px}.netsim-station__label--beside{text-align:start;justify-content:center;align-items:flex-start;padding-inline:10px}.netsim-station__role{font-family:var(--font-cairo), sans-serif;color:var(--foreground);font-size:27px;font-weight:900;line-height:1.15}.netsim-station__name{font-family:var(--font-mono-code), ui-monospace, monospace;letter-spacing:.06em;color:color-mix(in srgb, var(--foreground) 78%, transparent);font-size:15px;font-weight:600}.netsim-station__address{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--muted-foreground);font-size:15px}.netsim-station[data-lit=true] .netsim-station__name{color:var(--netsim-live)}.netsim-station[data-pinned] .netsim-station__role{text-decoration:underline;-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary);text-underline-offset:7px;text-decoration-thickness:3px}.netsim-terminal__body{border:2px dashed color-mix(in srgb, var(--netsim-device-line) 55%, transparent);background:color-mix(in srgb, var(--netsim-device-face) 85%, transparent);border-radius:24px;transition:border-color .3s,background-color .3s;position:absolute;inset:0}.netsim-terminal[data-lit=true] .netsim-terminal__body,.netsim-terminal[data-done] .netsim-terminal__body{border-style:solid;border-color:color-mix(in srgb, var(--netsim-live) 80%, transparent);background:color-mix(in oklch, var(--netsim-live) 10%, var(--netsim-device-face))}.netsim-terminal__socket{justify-content:center;align-items:center;display:flex;position:absolute}.netsim-terminal__well{border:2px solid color-mix(in srgb, var(--netsim-device-line) 45%, transparent);background:var(--netsim-device-body);border-radius:50%;width:48px;height:48px;position:relative;box-shadow:inset 0 2px 8px #00000040;box-shadow:inset 0 2px 8px lab(0% 0 0/.25)}.netsim-terminal__text{flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:absolute;top:0;bottom:0}.netsim-terminal__title{font-family:var(--font-mono-code), ui-monospace, monospace;letter-spacing:.08em;color:var(--foreground);align-items:center;gap:8px;font-size:17px;font-weight:700;display:inline-flex}.netsim-terminal[data-lit=true] .netsim-terminal__title svg,.netsim-terminal[data-done] .netsim-terminal__title svg{color:var(--netsim-live)}.netsim-terminal__sub{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--muted-foreground);white-space:nowrap;font-size:14px}.netsim-terminal__text[dir=rtl] .netsim-terminal__sub{font-family:var(--font-cairo), sans-serif;font-weight:700}.netsim-packet-layer{pointer-events:none;z-index:10;width:0;height:0;position:absolute;top:0;left:0;overflow:visible}.netsim-packet-layer[data-signal=arp]{--netsim-live:var(--netsim-arp);--netsim-live-hot:var(--netsim-arp-hot)}.netsim-trail{position:absolute;top:0;left:0;overflow:visible}.netsim-trail__path{fill:none;stroke:var(--netsim-live);stroke-width:7px;stroke-linecap:round;opacity:.55;filter:drop-shadow(0 0 6px var(--netsim-live))}.netsim-packet{width:0;height:0;position:absolute;top:0;left:0}.netsim-packet__orb{background:radial-gradient(circle at 38% 34%, #fffcf1 0 14%, var(--netsim-live) 42%, var(--netsim-live-hot) 78%);width:30px;height:30px;box-shadow:0 0 12px 3px color-mix(in srgb, var(--netsim-live) 75%, transparent), 0 0 42px 14px color-mix(in srgb, var(--netsim-live-hot) 35%, transparent);border-radius:50%;position:absolute;top:-15px;left:-15px}@supports (color:lab(0% 0 0)){.netsim-packet__orb{background:radial-gradient(circle at 38% 34%, lab(98.9836% .142217 11.5982) 0 14%, var(--netsim-live) 42%, var(--netsim-live-hot) 78%)}}.netsim-packet[data-docked] .netsim-packet__orb{animation:1.3s ease-in-out infinite netsim-orb}@keyframes netsim-orb{0%,to{transform:scale(1)}50%{transform:scale(1.14)}}.netsim-packet__ring{border:2.5px solid color-mix(in srgb, var(--netsim-live) 85%, transparent);border-radius:50%;position:absolute}.netsim-packet__ring[data-ring="0"]{width:46px;height:46px;top:-23px;left:-23px}.netsim-packet__ring[data-ring="1"]{opacity:.75;width:62px;height:62px;top:-31px;left:-31px}.netsim-packet__ring[data-ring="2"]{opacity:.55;width:78px;height:78px;top:-39px;left:-39px}.netsim-packet__ring[data-arp]{border-style:dashed}.netsim-packet__chip{border:1.5px solid color-mix(in srgb, var(--netsim-live) 70%, transparent);background:color-mix(in srgb, var(--background) 90%, transparent);box-shadow:0 6px 20px -8px color-mix(in srgb, var(--netsim-live) 60%, transparent);font-family:var(--font-cairo), sans-serif;color:var(--foreground);white-space:nowrap;border-radius:999px;align-items:baseline;gap:8px;padding:5px 13px;font-size:17px;font-weight:800;display:inline-flex;position:absolute;bottom:46px;left:0;transform:translate(-50%)}.netsim-packet__bytes{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--netsim-live);font-size:14px;font-weight:600}.netsim-callout{width:0;height:0;position:absolute}.netsim-callout__inner{border:1.5px solid color-mix(in srgb, var(--netsim-live) 55%, transparent);background:color-mix(in srgb, var(--card) 94%, transparent);width:max-content;max-width:260px;box-shadow:0 14px 40px -18px color-mix(in srgb, var(--netsim-live) 70%, transparent);text-align:center;border-radius:16px;flex-direction:column;gap:2px;padding:8px 14px;display:flex;position:absolute;top:0;left:0}.netsim-callout[data-side=above] .netsim-callout__inner{transform:translate(-50%,-100%)}.netsim-callout[data-side=below] .netsim-callout__inner{transform:translate(-50%)}.netsim-callout__device{font-family:var(--font-mono-code), ui-monospace, monospace;letter-spacing:.12em;color:var(--netsim-live);font-size:13px;font-weight:600}.netsim-callout__inner[dir=rtl] .netsim-callout__device{letter-spacing:.08em}.netsim-callout__text{font-family:var(--font-cairo), sans-serif;color:var(--foreground);font-size:17px;font-weight:800;line-height:1.3}.netsim-swatch{background:var(--netsim-signal);width:10px;height:10px;box-shadow:0 0 8px var(--netsim-signal);border-radius:50%;display:inline-block}.netsim-swatch[data-kind=arp]{background:var(--netsim-arp);box-shadow:0 0 8px var(--netsim-arp)}:root{--netsim-reply:#008d8a;--netsim-reply-hot:#007379;--netsim-drop:#de3b3d;--netsim-reply-ink:color-mix(in oklch, var(--netsim-reply) 70%, black);--netsim-drop-ink:color-mix(in oklch, var(--netsim-drop) 70%, black)}@supports (color:lab(0% 0 0)){:root{--netsim-reply:lab(52.6041% -40.2292 -9.50084);--netsim-reply-hot:lab(43.2322% -40.2905 -16.4448);--netsim-drop:lab(51.5803% 63.2457 38.9399)}}.dark{--netsim-reply:#47e2d1;--netsim-reply-hot:#00b7b6;--netsim-drop:#fa6863;--netsim-reply-ink:var(--netsim-reply);--netsim-drop-ink:var(--netsim-drop)}@supports (color:lab(0% 0 0)){.dark{--netsim-reply:lab(81.8582% -45.0122 -3.74029);--netsim-reply-hot:lab(66.8044% -49.542 -13.7109);--netsim-drop:lab(63.4204% 56.5783 32.9929)}}:is(.arpsim-signal,.arpsim-cable,.arpsim-host,.arpsim-switch,.arpsim-port,.arpsim-callout,.arpsim-trail,.arpsim-banner,.arpsim-progress,.arpsim-kind-dot,.arpsim-kind-text)[data-kind=broadcast]{--netsim-live:var(--netsim-arp);--netsim-live-hot:var(--netsim-arp-hot)}:is(.arpsim-signal,.arpsim-cable,.arpsim-host,.arpsim-switch,.arpsim-port,.arpsim-callout,.arpsim-trail,.arpsim-banner,.arpsim-progress,.arpsim-kind-dot,.arpsim-kind-text)[data-kind=reply]{--netsim-live:var(--netsim-reply);--netsim-live-hot:var(--netsim-reply-hot)}:is(.arpsim-signal,.arpsim-cable,.arpsim-host,.arpsim-switch,.arpsim-port,.arpsim-callout,.arpsim-trail,.arpsim-banner,.arpsim-progress,.arpsim-kind-dot,.arpsim-kind-text)[data-kind=frame]{--netsim-live:var(--netsim-signal);--netsim-live-hot:var(--netsim-signal-hot)}.arpsim-stage-wrap{position:relative}.arpsim-stage{height:clamp(440px,100svh - 21rem,780px)}.arpsim-stage[data-mode=tall]{height:auto}.arpsim-domain{border:1.5px dashed var(--netsim-zone-line);background:var(--netsim-zone-lan);border-radius:34px;transition:background-color .4s,border-color .4s;position:relative}.arpsim-domain[data-show]{border:2px dashed color-mix(in srgb, var(--netsim-arp) 60%, transparent);background:color-mix(in srgb, var(--netsim-arp) 7%, transparent)}.arpsim-domain[data-show][data-broadcasting]{animation:1.8s ease-in-out infinite arpsim-domain-pulse}@keyframes arpsim-domain-pulse{0%,to{background:color-mix(in srgb, var(--netsim-arp) 6%, transparent)}50%{background:color-mix(in srgb, var(--netsim-arp) 13%, transparent)}}.arpsim-domain__label{font-family:var(--font-cairo), sans-serif;color:var(--muted-foreground);white-space:nowrap;align-items:baseline;gap:10px;font-size:17px;font-weight:800;display:inline-flex;position:absolute;top:14px}.arpsim-domain[data-show] .arpsim-domain__label{color:var(--netsim-arp)}.arpsim-domain__cidr{font-family:var(--font-mono-code), ui-monospace, monospace;font-size:15px;font-weight:500}.arpsim-cable__reach{fill:none;stroke:var(--netsim-arp);stroke-width:4px;stroke-dasharray:1 12;stroke-linecap:round;opacity:.6}.arpsim-host[data-verdict=ignore] .netsim-station__art{opacity:.55;filter:grayscale(.7)}.arpsim-verdict-slot{pointer-events:none;justify-content:center;display:flex;position:absolute;left:0;right:0}.arpsim-verdict{font-family:var(--font-cairo), sans-serif;white-space:nowrap;pointer-events:none;border-radius:999px;align-items:center;gap:5px;padding:4px 11px 4px 9px;font-size:15px;font-weight:800;display:inline-flex}.arpsim-verdict[data-verdict=match]{color:var(--background);background:var(--netsim-reply);box-shadow:0 0 18px color-mix(in srgb, var(--netsim-reply) 55%, transparent)}.arpsim-verdict[data-verdict=ignore]{color:var(--netsim-drop);background:color-mix(in srgb, var(--netsim-drop) 14%, var(--card));border:1.5px solid color-mix(in srgb, var(--netsim-drop) 60%, transparent)}.arpsim-plate{border:1.5px solid var(--border);background:color-mix(in srgb, var(--card) 90%, transparent);pointer-events:none;border-radius:16px;flex-direction:column;gap:5px;padding:9px 13px 10px;display:flex;position:absolute;box-shadow:0 10px 30px -18px #00000080;box-shadow:0 10px 30px -18px lab(0% 0 0/.5)}.arpsim-plate__title{font-family:var(--font-cairo), sans-serif;color:var(--foreground);justify-content:space-between;align-items:baseline;gap:8px;font-size:15px;font-weight:800;display:flex}.arpsim-plate__meta,.arpsim-plate__empty{font-family:var(--font-cairo), sans-serif;color:var(--muted-foreground);font-size:13px;font-weight:600}.arpsim-plate__row{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--foreground);border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:12px;margin-inline:-8px;padding:3px 8px;font-size:14px;display:grid}.arpsim-plate__mac{color:var(--foreground)}.arpsim-plate__age{color:var(--muted-foreground);font-size:12px}.arpsim-plate__state{letter-spacing:.04em;font-size:11px;font-weight:700}.arpsim-plate__row[data-state=incomplete]{color:var(--netsim-arp);border:1.5px dashed color-mix(in srgb, var(--netsim-arp) 55%, transparent);grid-template-columns:minmax(0,1fr) auto;gap:8px}.arpsim-plate__row[data-fresh],.arpsim-table-row[data-fresh]{animation:1.6s ease-out both arpsim-fresh}@keyframes arpsim-fresh{0%{background:color-mix(in srgb, var(--netsim-reply) 45%, transparent)}to{background:color-mix(in srgb, var(--netsim-reply) 10%, transparent)}}.arpsim-switch__hit{border-radius:28px}.arpsim-switch__traces{pointer-events:none;position:absolute;inset:0;overflow:visible}.arpsim-switch__traces line{stroke:var(--netsim-device-detail);stroke-width:3px;stroke-dasharray:2 7;stroke-linecap:round;transition:stroke .3s,opacity .3s}.arpsim-switch__traces line[data-role=ingress],.arpsim-switch__traces line[data-role=egress]{stroke:var(--netsim-live);stroke-dasharray:none;opacity:.8}.arpsim-switch__traces line[data-role=excluded]{opacity:.3}.arpsim-switch__label{pointer-events:none;justify-content:center;align-items:baseline;gap:10px;display:flex;position:absolute;left:0;right:0}.arpsim-switch__label[data-mode=tall]{flex-direction:column;gap:0;left:8px;right:auto}.arpsim-switch__label[data-mode=tall] .netsim-station__role{font-size:20px}.arpsim-switch__label[data-mode=tall] .netsim-station__name{font-size:12px}.arpsim-port{border:2px solid var(--netsim-device-line);background:var(--netsim-device-face);border-radius:10px;transition:border-color .25s,box-shadow .25s,background-color .25s;position:absolute}.arpsim-port__jack{background:var(--netsim-device-body);border:1.5px solid var(--netsim-device-detail);border-radius:3px;position:absolute;inset:8px 16px}.arpsim-port__led{top:5px;background:var(--netsim-idle-light);border-radius:50%;width:6px;height:6px;transition:background-color .25s,box-shadow .25s;position:absolute;inset-inline-end:6px}.arpsim-port[data-lit=true]{border-color:var(--netsim-live);background:color-mix(in srgb, var(--netsim-live) 22%, var(--netsim-device-face));box-shadow:0 0 22px 2px color-mix(in srgb, var(--netsim-live) 60%, transparent)}.arpsim-port[data-lit=true] .arpsim-port__led,.arpsim-port[data-role=ingress] .arpsim-port__led,.arpsim-port[data-role=egress] .arpsim-port__led{background:var(--netsim-live);box-shadow:0 0 8px var(--netsim-live)}.arpsim-port[data-role=ingress],.arpsim-port[data-role=egress]{border-color:color-mix(in srgb, var(--netsim-live) 75%, var(--netsim-device-line))}.arpsim-port[data-role=excluded]{opacity:.65;border-style:dashed}.arpsim-port__name{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--foreground);white-space:nowrap;align-items:center;gap:6px;font-size:14px;font-weight:700;display:inline-flex;position:absolute}.arpsim-port__name[data-side=above]{bottom:calc(100% + 5px);left:50%;transform:translate(-50%)}.arpsim-port__name[data-side=below]{top:calc(100% + 5px);left:50%;transform:translate(-50%)}.arpsim-port__name[data-side=left]{top:50%;right:calc(100% + 8px);transform:translateY(-50%)}.arpsim-port__name[data-side=right]{top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.arpsim-port__role{font-family:var(--font-cairo), sans-serif;color:var(--background);background:var(--netsim-live);border-radius:999px;padding:1px 7px;font-size:12px;font-weight:800}.arpsim-port[data-role=excluded] .arpsim-port__role{color:var(--muted-foreground);border:1.5px dashed var(--muted-foreground);background:0 0}.arpsim-signal,.arpsim-signal__body{width:0;height:0;position:absolute;top:0;left:0}.arpsim-signal[data-muted]{opacity:.5}.arpsim-signal__orb{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--netsim-live);justify-content:center;align-items:center;font-size:18px;font-weight:800;display:flex}.arpsim-signal[data-pending] .arpsim-signal__orb{background:color-mix(in srgb, var(--netsim-live) 12%, var(--card));border:2.5px dashed var(--netsim-live);box-shadow:0 0 16px color-mix(in srgb, var(--netsim-live) 40%, transparent)}.arpsim-signal[data-resting] .arpsim-signal__orb{animation:1.3s ease-in-out infinite netsim-orb}.arpsim-signal__ring{border:2.5px solid color-mix(in srgb, var(--netsim-live) 85%, transparent);border-radius:50%;width:48px;height:48px;position:absolute;top:-24px;left:-24px}.arpsim-signal[data-kind=broadcast] .arpsim-signal__ring{border-style:dashed}.arpsim-signal[data-kind=frame] .arpsim-signal__ring{border-radius:12px;width:50px;height:50px;top:-25px;left:-25px}.arpsim-signal[data-pending] .arpsim-signal__ring{display:none}.arpsim-signal__wave{border:2px solid var(--netsim-live);border-radius:50%;width:44px;height:44px;animation:1.7s ease-out infinite arpsim-wave;position:absolute;top:-22px;left:-22px}.arpsim-signal__wave--late{animation-delay:.85s}@keyframes arpsim-wave{0%{opacity:.75;transform:scale(1)}to{opacity:0;transform:scale(3.4)}}.arpsim-signal__drop{width:40px;height:40px;color:var(--netsim-drop);background:color-mix(in srgb, var(--netsim-drop) 16%, var(--card));border:2px solid var(--netsim-drop);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:-20px;left:-20px}.arpsim-signal__chip{bottom:50px}.arpsim-signal__chip[dir=rtl] .netsim-packet__bytes,.arpsim-plate[dir=rtl] .arpsim-plate__state{font-family:var(--font-cairo), sans-serif;font-weight:700}.arpsim-banner-slot{inset-inline:0;pointer-events:none;z-index:5;justify-content:center;padding-inline:16px;display:flex;position:absolute;bottom:20px}.arpsim-stage-wrap[data-mode=tall] .arpsim-banner-slot{padding:12px 16px 0;position:static}.arpsim-banner{border:1.5px solid color-mix(in srgb, var(--netsim-live) 65%, transparent);background:color-mix(in srgb, var(--card) 94%, transparent);max-width:100%;box-shadow:0 18px 50px -20px color-mix(in srgb, var(--netsim-live) 70%, transparent), 0 0 0 6px color-mix(in srgb, var(--netsim-live) 8%, transparent);pointer-events:auto;border-radius:18px;align-items:center;gap:14px;padding:12px 14px 12px 18px;display:flex}.arpsim-banner__icon{width:30px;height:30px;color:var(--netsim-live);flex-shrink:0}.arpsim-banner__title{font-family:var(--font-cairo), sans-serif;letter-spacing:.01em;color:var(--foreground);font-size:17px;font-weight:900;display:block}.arpsim-banner__detail{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--netsim-live);font-size:13px;display:block}.arpsim-banner__action{white-space:nowrap;height:40px;color:var(--background);background:var(--netsim-live);border-radius:12px;align-items:center;gap:8px;padding-inline:16px;font-size:14px;font-weight:800;transition:filter .2s;display:inline-flex}.arpsim-banner__action:hover{filter:brightness(1.08)}.arpsim-banner__action:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.arpsim-cta{animation:1.6s ease-in-out infinite arpsim-cta}@keyframes arpsim-cta{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--primary) 50%, transparent)}50%{box-shadow:0 0 0 8px color-mix(in srgb, var(--primary) 0%, transparent)}}.arpsim-chapter--current{color:var(--primary-ink);background:color-mix(in srgb, var(--primary) 14%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 50%, transparent)}.arpsim-kind-dot{background:var(--netsim-live);width:10px;height:10px;box-shadow:0 0 8px var(--netsim-live);border-radius:50%;display:inline-block}.arpsim-kind-dot[data-kind=frame]{border-radius:3px}.arpsim-kind-text{color:color-mix(in oklch, var(--netsim-live) var(--tone-ink), black)}.arpsim-progress{background:var(--netsim-live);box-shadow:0 0 10px var(--netsim-live)}.arpsim-port-row[data-role=ingress],.arpsim-port-row[data-role=egress]{border-color:color-mix(in srgb, var(--primary) 55%, transparent);background:color-mix(in srgb, var(--primary) 8%, transparent)}.arpsim-port-row[data-role=excluded]{border-style:dashed}.arpsim-question[data-current]{border-color:color-mix(in srgb, var(--primary) 60%, transparent);background:color-mix(in srgb, var(--primary) 7%, transparent)}.arpsim-question summary::-webkit-details-marker{display:none}:root{--rtsim-net-a:#2b7ad6;--rtsim-net-b:#008e88;--rtsim-net-c:#8c54c3;--rtsim-net-link:#677284}@supports (color:lab(0% 0 0)){:root{--rtsim-net-a:lab(50.1782% 1.49259 -55.0805);--rtsim-net-b:lab(52.6411% -40.7692 -8.00256);--rtsim-net-c:lab(46.2898% 40.0527 -49.808);--rtsim-net-link:lab(47.6812% -1.14912 -11.0096)}}.dark{--rtsim-net-a:#6cadff;--rtsim-net-b:#4cd7c8;--rtsim-net-c:#c699f8;--rtsim-net-link:#9aa5b8}@supports (color:lab(0% 0 0)){.dark{--rtsim-net-a:lab(69.1178% -3.12543 -48.7541);--rtsim-net-b:lab(78.2431% -41.3735 -4.23547);--rtsim-net-c:lab(70.2126% 30.8184 -41.5508);--rtsim-net-link:lab(67.4079% -1.26991 -11.0616)}}[data-network=net-a]{--rtsim-net:var(--rtsim-net-a)}[data-network=net-b]{--rtsim-net:var(--rtsim-net-b)}[data-network=net-c]{--rtsim-net:var(--rtsim-net-c)}[data-network=link-12],[data-network=link-13]{--rtsim-net:var(--rtsim-net-link)}.rtsim-net-dot{background:var(--rtsim-net);border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block}.rtsim-stage-wrap{position:relative}.rtsim-stage{height:clamp(460px,100svh - 21rem,780px)}.rtsim-stage[data-mode=tall]{height:auto}.rtsim-overlay{pointer-events:none;z-index:5;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:12px;padding:16px;display:flex;position:absolute;inset:0}.rtsim-overlay>*{pointer-events:auto}.rtsim-readout__action{height:30px;color:var(--background);background:var(--netsim-drop);border-radius:9px;align-items:center;gap:6px;padding-inline:12px;font-size:12px;font-weight:800;display:inline-flex}.rtsim-readout__action:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.rtsim-stage-wrap[data-mode=tall] .rtsim-overlay{flex-direction:column;align-items:stretch;padding:12px;position:static}.rtsim-stage-wrap[data-mode=tall] .rtsim-overlay:not(:has(section,[role=status])){display:none}.rtsim-readout{border:1.5px solid color-mix(in srgb, var(--netsim-signal) 45%, var(--border));background:color-mix(in srgb, var(--card) 95%, transparent);border-radius:18px;width:min(430px,100%);padding:12px 14px;box-shadow:0 20px 50px -24px #0009;box-shadow:0 20px 50px -24px lab(0% 0 0/.6)}.rtsim-readout[data-tone=drop]{border-color:color-mix(in srgb, var(--netsim-drop) 60%, var(--border))}.rtsim-readout__head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.rtsim-readout__title{font-family:var(--font-cairo), sans-serif;color:var(--foreground);font-size:15px;font-weight:900}.rtsim-readout__query{color:var(--muted-foreground);font-size:12px}.rtsim-readout__query bdi{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--netsim-signal);font-weight:700}.rtsim-readout__decision{color:var(--muted-foreground);background:color-mix(in srgb, var(--muted) 55%, transparent);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 10px;margin-top:10px;padding:8px 10px;font-size:13px;font-weight:700;display:flex}.rtsim-readout__decision bdi{font-family:var(--font-mono-code), ui-monospace, monospace}.rtsim-readout__decision[data-state=route]{color:var(--foreground);background:color-mix(in srgb, var(--netsim-signal) 16%, transparent);box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--netsim-signal) 55%, transparent)}.rtsim-readout__decision[data-state=none]{color:var(--netsim-drop);background:color-mix(in srgb, var(--netsim-drop) 12%, transparent);box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--netsim-drop) 55%, transparent)}.rtsim-readout__note{color:var(--netsim-signal);font-size:12px;font-weight:800}.rtsim-table{min-width:0;font-size:12px;display:grid}.rtsim-table__row{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--foreground);border-radius:9px;grid-template-columns:34px minmax(94px,1.2fr) 44px minmax(96px,1.2fr) 70px 46px 72px 22px;align-items:center;gap:8px;padding:6px 8px;transition:background-color .25s,opacity .25s,box-shadow .25s;display:grid}.rtsim-table[data-compact] .rtsim-table__row{grid-template-columns:minmax(0,1.45fr) minmax(0,1.05fr) 46px 40px 20px;padding:5px 8px}.rtsim-readout{container-type:inline-size}@container (max-width:360px){.rtsim-table[data-compact] .rtsim-table__row{grid-template-columns:minmax(128px,1.35fr) minmax(0,1fr) 36px 16px;gap:6px;padding-inline:6px;font-size:11.5px}.rtsim-table[data-compact] .rtsim-table__row>:nth-child(4){display:none}.rtsim-table[data-compact] .rtsim-table__code{min-width:18px;margin-inline-end:3px}}.rtsim-table__row--head{text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);padding-block:2px 6px;font-family:inherit;font-size:10px;font-weight:700}:root[dir=rtl] .rtsim-table__row--head{letter-spacing:0}.rtsim-table__code{min-width:22px;color:var(--muted-foreground);margin-inline-end:6px;font-weight:800;display:inline-block}.rtsim-table__net{white-space:nowrap}.rtsim-table__status{font-family:var(--font-cairo), sans-serif;color:var(--muted-foreground);font-size:12px}.rtsim-table__verdict{justify-content:center;font-weight:900;display:inline-flex}.rtsim-table__tick,.rtsim-table__cross{display:none}.rtsim-table__row[data-verdict=match] .rtsim-table__tick,.rtsim-table__row--scan[data-lit=true][data-candidate=match] .rtsim-table__tick{color:var(--netsim-signal);display:inline}.rtsim-table__row[data-verdict=miss] .rtsim-table__cross,.rtsim-table__row--scan[data-lit=true][data-candidate=miss] .rtsim-table__cross{color:var(--muted-foreground);display:inline}.rtsim-table__row[data-verdict=miss],.rtsim-table__row--scan[data-lit=true][data-candidate=miss]{opacity:.5}.rtsim-table__row[data-verdict=match],.rtsim-table__row--scan[data-lit=true][data-candidate=match]{background:color-mix(in srgb, var(--netsim-signal) 9%, transparent)}.rtsim-table__row--scan[data-lit=true]{animation:.42s ease-out rtsim-row-scan}@keyframes rtsim-row-scan{0%{box-shadow:inset 0 0 0 1.5px var(--netsim-signal)}to{box-shadow:inset 0 0 0 1.5px #0000}}.rtsim-table__row[data-selected]{opacity:1;background:color-mix(in srgb, var(--netsim-signal) 22%, transparent);box-shadow:inset 3px 0 0 var(--netsim-signal), 0 0 18px -6px var(--netsim-signal);font-weight:800}:root[dir=rtl] .rtsim-table__row[data-selected]{box-shadow:inset -3px 0 0 var(--netsim-signal), 0 0 18px -6px var(--netsim-signal)}.rtsim-table__row[data-verdict=withdrawn]{color:var(--netsim-drop);opacity:.8;text-decoration:line-through}.rtsim-table__row[data-verdict=withdrawn] .rtsim-table__status{color:var(--netsim-drop);text-decoration:none}.rtsim-zone{border:1.5px dashed color-mix(in srgb, var(--rtsim-net) 45%, transparent);background:color-mix(in srgb, var(--rtsim-net) 6%, transparent);border-radius:30px;position:relative}.rtsim-zone__label{font-family:var(--font-cairo), sans-serif;color:color-mix(in srgb, var(--rtsim-net) 80%, var(--foreground));white-space:nowrap;align-items:center;gap:9px;font-size:17px;font-weight:800;display:inline-flex;position:absolute}.rtsim-zone__cidr{font-family:var(--font-mono-code), ui-monospace, monospace;font-size:15px;font-weight:600}.rtsim-router[data-noroute]{--netsim-live:var(--netsim-drop);--netsim-live-hot:var(--netsim-drop)}.rtsim-router__hit{border-radius:26px}.rtsim-router__traces{pointer-events:none;position:absolute;inset:0;overflow:visible}.rtsim-router__traces line{stroke:var(--netsim-device-detail);stroke-width:3px;stroke-dasharray:2 7;stroke-linecap:round;transition:stroke .3s}.rtsim-router__traces line[data-role]{stroke:var(--netsim-signal);stroke-dasharray:none;opacity:.85}.rtsim-router__label{pointer-events:none}.rtsim-router__label .netsim-station__role{font-size:25px}.rtsim-decision{font-family:var(--font-mono-code), ui-monospace, monospace;white-space:nowrap;color:var(--foreground);border:1.5px solid color-mix(in srgb, var(--netsim-signal) 60%, transparent);background:color-mix(in srgb, var(--netsim-signal) 12%, var(--card));border-radius:999px;margin-top:6px;padding:3px 11px;font-size:13px;font-weight:700}.rtsim-badge-slot{pointer-events:none;justify-content:center;display:flex;position:absolute;left:0;right:0}.rtsim-badge{font-family:var(--font-cairo), sans-serif;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;margin-top:6px;padding:4px 12px;font-size:15px;font-weight:900;display:inline-flex}.rtsim-badge[data-tone=drop]{color:var(--background);background:var(--netsim-drop);box-shadow:0 0 22px color-mix(in srgb, var(--netsim-drop) 60%, transparent)}.rtsim-badge[data-tone=ok]{color:var(--background);background:var(--netsim-signal);box-shadow:0 0 22px color-mix(in srgb, var(--netsim-signal) 55%, transparent)}.rtsim-iface{border:2px solid color-mix(in srgb, var(--rtsim-net) 55%, var(--netsim-device-line));background:var(--netsim-device-face);border-radius:9px;transition:border-color .25s,box-shadow .25s,background-color .25s;position:absolute}.rtsim-iface__jack{background:var(--netsim-device-body);border:1.5px solid var(--netsim-device-detail);border-radius:3px;position:absolute;inset:7px 13px}.rtsim-iface[data-lit=true]{border-color:var(--netsim-live);background:color-mix(in srgb, var(--netsim-live) 22%, var(--netsim-device-face));box-shadow:0 0 22px 2px color-mix(in srgb, var(--netsim-live) 60%, transparent)}.rtsim-iface[data-role]{border-color:var(--netsim-signal)}.rtsim-iface__label{white-space:nowrap;pointer-events:none;flex-direction:column;gap:1px;display:flex;position:absolute}.rtsim-iface__label[data-side=above]{align-items:center;bottom:calc(100% + 5px);left:50%;transform:translate(-50%)}.rtsim-iface__label[data-side=below]{align-items:center;top:calc(100% + 5px);left:50%;transform:translate(-50%)}.rtsim-iface__label[data-side=left]{align-items:flex-end;top:50%;right:calc(100% + 8px);transform:translateY(-50%)}.rtsim-iface__label[data-side=right]{align-items:flex-start;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.rtsim-iface__name{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--foreground);align-items:center;gap:5px;font-size:14px;font-weight:800;display:inline-flex}.rtsim-iface__ip{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--muted-foreground);font-size:12px}.rtsim-iface__role{color:var(--background);background:var(--netsim-signal);border-radius:999px;padding:0 6px;font-size:11px;font-weight:800}.rtsim-packet{width:0;height:0;position:absolute;top:0;left:0}.rtsim-packet[data-drop]{--netsim-live:var(--netsim-drop);--netsim-live-hot:var(--netsim-drop)}.rtsim-packet[data-idle]{opacity:.75}.rtsim-packet__body{width:0;height:0;position:absolute;top:0;left:0}.rtsim-packet[data-resting] .rtsim-packet__orb{animation:1.3s ease-in-out infinite netsim-orb}.rtsim-packet__frame{border:2.5px solid color-mix(in srgb, var(--netsim-live) 80%, transparent);border-radius:50%;width:48px;height:48px;position:absolute;top:-24px;left:-24px}.rtsim-packet__spinner{border:3px dashed var(--netsim-live);border-radius:50%;width:66px;height:66px;animation:2.4s linear infinite rtsim-spin;position:absolute;top:-33px;left:-33px}@keyframes rtsim-spin{to{transform:rotate(360deg)}}.rtsim-packet__drop{width:40px;height:40px;color:var(--netsim-drop);background:color-mix(in srgb, var(--netsim-drop) 16%, var(--card));border:2px solid var(--netsim-drop);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:-20px;left:-20px}.rtsim-packet__chip{bottom:48px}.rtsim-ttl{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--netsim-live);align-items:baseline;gap:5px;font-size:14px;font-weight:700;display:inline-flex}.rtsim-ttl__value{min-width:2ch;display:inline-flex;position:relative;overflow:hidden}.rtsim-ttl-pop{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--netsim-signal);text-shadow:0 0 12px var(--netsim-signal);pointer-events:none;font-size:22px;font-weight:900;position:absolute;top:-58px;left:42px}.rtsim-callout[data-tone=drop]{--netsim-live:var(--netsim-drop)}.rtsim-outcome{border:1.5px solid color-mix(in srgb, var(--rtsim-tone) 65%, transparent);background:color-mix(in srgb, var(--card) 95%, transparent);max-width:100%;box-shadow:0 18px 50px -20px color-mix(in srgb, var(--rtsim-tone) 70%, transparent), 0 0 0 6px color-mix(in srgb, var(--rtsim-tone) 8%, transparent);border-radius:18px;align-items:center;gap:14px;padding:12px 14px 12px 18px;display:flex}.rtsim-outcome[data-tone=ok]{--rtsim-tone:var(--netsim-signal)}.rtsim-outcome[data-tone=drop]{--rtsim-tone:var(--netsim-drop)}.rtsim-outcome__icon{width:30px;height:30px;color:var(--rtsim-tone);flex-shrink:0}.rtsim-outcome__title{font-family:var(--font-cairo), sans-serif;color:var(--foreground);font-size:17px;font-weight:900;display:block}.rtsim-outcome__detail{color:var(--rtsim-tone);font-size:13px;font-weight:700;display:block}.rtsim-outcome__detail bdi{font-family:var(--font-mono-code), ui-monospace, monospace}.rtsim-outcome__action{white-space:nowrap;height:40px;color:var(--background);background:var(--rtsim-tone);border-radius:12px;align-items:center;gap:8px;padding-inline:16px;font-size:14px;font-weight:800;display:inline-flex}.rtsim-outcome__action:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.rtsim-rail-stop{border-radius:9px;flex-direction:column;flex-shrink:0;align-items:center;padding:3px 9px;line-height:1.25;transition:color .25s,background-color .25s;display:inline-flex}.rtsim-rail-stop__kind{color:inherit;opacity:.9;font-size:10px;font-weight:700}.rtsim-rail-stop__detail,.rtsim-rail-stop__main{font-family:var(--font-mono-code), ui-monospace, monospace;font-size:11px;font-weight:700}.rtsim-rail-stop__main{padding-block:3px;font-size:13px}.rtsim-rail-stop[data-state=upcoming]{color:color-mix(in srgb, var(--muted-foreground) 80%, transparent)}.rtsim-rail-stop[data-state=done]{color:var(--foreground)}.rtsim-rail-stop[data-state=current]{color:var(--netsim-signal-ink);background:color-mix(in srgb, var(--netsim-signal) 16%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--netsim-signal) 55%, transparent)}.rtsim-rail-stop[data-fail],.rtsim-rail-stop[data-state=unreachable]{color:var(--netsim-drop);background:color-mix(in srgb, var(--netsim-drop) 12%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--netsim-drop) 50%, transparent)}.rtsim-progress{background:var(--netsim-signal);box-shadow:0 0 10px var(--netsim-signal)}.rtsim-progress[data-tone=drop]{background:var(--netsim-drop);box-shadow:0 0 10px var(--netsim-drop)}.rtsim-tag{color:var(--netsim-signal-ink)}.rtsim-tag[data-kind=no-route]{color:var(--netsim-drop-ink)}.rtsim-iface-row{border:1px solid color-mix(in srgb, var(--border) 100%, transparent);border-radius:10px;align-items:center;gap:10px;padding:6px 12px;display:flex}.rtsim-iface-row[data-role]{border-color:color-mix(in srgb, var(--netsim-signal) 60%, transparent);background:color-mix(in srgb, var(--netsim-signal) 9%, transparent)}.rtsim-event{border-inline-start:2px solid color-mix(in srgb, var(--border) 100%, transparent);gap:12px;padding:8px 0 8px 12px;transition:opacity .25s,background-color .25s;display:flex}.rtsim-event[data-state=current]{border-inline-start-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, transparent)}.rtsim-event[data-state=upcoming]{opacity:.8}.rtsim-event__dot{background:var(--netsim-signal);width:9px;height:9px;box-shadow:0 0 7px var(--netsim-signal);border-radius:50%;flex-shrink:0;margin-top:6px}.rtsim-event[data-kind=travel] .rtsim-event__dot{border-radius:2px}.rtsim-event[data-kind=no-route] .rtsim-event__dot{background:var(--netsim-drop);box-shadow:0 0 7px var(--netsim-drop)}.rtsim-question[data-current]{border-color:color-mix(in srgb, var(--primary) 60%, transparent);background:color-mix(in srgb, var(--primary) 7%, transparent)}.rtsim-question summary::-webkit-details-marker{display:none}:root{--tcpsim-control:#396ed6;--tcpsim-control-hot:#3056cd;--tcpsim-udp:#8e51c7;--tcpsim-udp-hot:#8632b6;--tcpsim-control-ink:color-mix(in oklch, var(--tcpsim-control) 70%, black);--tcpsim-udp-ink:color-mix(in oklch, var(--tcpsim-udp) 70%, black)}@supports (color:lab(0% 0 0)){:root{--tcpsim-control:lab(47.3516% 10.0889 -59.8436);--tcpsim-control-hot:lab(39.647% 20.5896 -67.139);--tcpsim-udp:lab(46.0807% 42.8353 -52.6729);--tcpsim-udp-hot:lab(38.5645% 51.7889 -54.5957)}}.dark{--tcpsim-control:#73acff;--tcpsim-control-hot:#5088f2;--tcpsim-udp:#c797fd;--tcpsim-udp-hot:#b16ee5;--tcpsim-control-ink:var(--tcpsim-control);--tcpsim-udp-ink:var(--tcpsim-udp)}@supports (color:lab(0% 0 0)){.dark{--tcpsim-control:lab(69.0057% -.674874 -49.353);--tcpsim-control-hot:lab(56.777% 7.72357 -60.0421);--tcpsim-udp:lab(70.0454% 33.2713 -44.4356);--tcpsim-udp-hot:lab(57.805% 43.2695 -50.9086)}}:is(.tcpsim-stage,.tcpsim-signal,.tcpsim-link,.tcpsim-lane,.tcpsim-trail,.tcpsim-dot,.tcpsim-callout,.tcpsim-ladder__msg,.simlog-entry,.tcpsim-tag)[data-tone=data]{--netsim-live:var(--netsim-signal);--netsim-live-hot:var(--netsim-signal-hot)}:is(.tcpsim-stage,.tcpsim-signal,.tcpsim-link,.tcpsim-lane,.tcpsim-trail,.tcpsim-dot,.tcpsim-callout,.tcpsim-ladder__msg,.simlog-entry,.tcpsim-tag)[data-tone=control]{--netsim-live:var(--tcpsim-control);--netsim-live-hot:var(--tcpsim-control-hot)}:is(.tcpsim-stage,.tcpsim-signal,.tcpsim-link,.tcpsim-lane,.tcpsim-trail,.tcpsim-dot,.tcpsim-callout,.tcpsim-ladder__msg,.simlog-entry,.tcpsim-tag)[data-tone=ack]{--netsim-live:var(--netsim-reply);--netsim-live-hot:var(--netsim-reply-hot)}:is(.tcpsim-stage,.tcpsim-signal,.tcpsim-link,.tcpsim-lane,.tcpsim-trail,.tcpsim-dot,.tcpsim-callout,.tcpsim-ladder__msg,.simlog-entry,.tcpsim-tag)[data-tone=datagram]{--netsim-live:var(--tcpsim-udp);--netsim-live-hot:var(--tcpsim-udp-hot)}:is(.tcpsim-stage,.tcpsim-signal,.tcpsim-dot,.tcpsim-callout,.tcpsim-ladder__msg,.simlog-entry,.tcpsim-tag)[data-tone=lost],:is(.tcpsim-stage,.tcpsim-callout,.simlog-entry,.tcpsim-tag)[data-tone=drop]{--netsim-live:var(--netsim-drop);--netsim-live-hot:var(--netsim-drop)}.simlog-entry[data-tone=retx]{--netsim-live:var(--netsim-signal)}.tcpsim-tag[data-tone=tcp]{color:var(--netsim-signal-ink)}.tcpsim-tag[data-tone=udp]{color:var(--tcpsim-udp-ink)}.tcpsim-tag[data-tone=drop]{color:var(--netsim-drop-ink)}.tcpsim-stage-wrap{position:relative}.tcpsim-stage{height:clamp(440px,100svh - 22rem,680px)}.tcpsim-stage[data-mode=tall]{height:auto}.tcpsim-overlay-top,.tcpsim-overlay-bottom{pointer-events:none;z-index:5;justify-content:center;padding:12px 16px;display:flex;position:absolute;inset-inline:0}.tcpsim-overlay-top{top:0}.tcpsim-overlay-bottom{bottom:0}.tcpsim-overlay-top>*,.tcpsim-overlay-bottom>*{pointer-events:auto}.tcpsim-stage-wrap[data-mode=tall] .tcpsim-overlay-top,.tcpsim-stage-wrap[data-mode=tall] .tcpsim-overlay-bottom{position:static}.tcpsim-stage-wrap[data-mode=tall] .tcpsim-overlay-bottom:empty{display:none}.tcpsim-legend{border:1px solid color-mix(in srgb, var(--border) 100%, transparent);background:color-mix(in srgb, var(--card) 88%, transparent);color:var(--muted-foreground);border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 16px;padding:6px 14px;font-size:12px;display:flex}.tcpsim-legend li{align-items:center;gap:6px;display:inline-flex}.tcpsim-dot{background:var(--netsim-live);width:10px;height:10px;box-shadow:0 0 8px var(--netsim-live);border-radius:50%;flex-shrink:0;display:inline-block}.tcpsim-lanes-icon{border-top:2px solid var(--muted-foreground);border-bottom:2px solid var(--muted-foreground);opacity:.8;width:18px;height:8px}.tcpsim-zone{border:1.5px dashed var(--netsim-zone-line);background:var(--netsim-zone-lan);border-radius:28px;position:relative}.tcpsim-zone[data-zone=server]{background:var(--netsim-zone-wan)}.tcpsim-zone__label{font-family:var(--font-cairo), sans-serif;color:var(--muted-foreground);white-space:nowrap;align-items:baseline;gap:9px;font-size:16px;font-weight:800;display:inline-flex;position:absolute}.tcpsim-zone__cidr{font-family:var(--font-mono-code), ui-monospace, monospace;font-size:14px;font-weight:600}.tcpsim-link__sheath{fill:none;stroke:var(--netsim-cable);stroke-width:34px;stroke-linecap:round}.tcpsim-lane__line{fill:none;stroke:var(--netsim-cable-core);stroke-width:3px;stroke-linecap:round}.tcpsim-lane__glow{fill:none;stroke:var(--netsim-live);stroke-width:12px;stroke-linecap:round;opacity:.2}.tcpsim-lane__flow{fill:none;stroke:var(--netsim-live);stroke-width:3.5px;stroke-dasharray:4 14;stroke-linecap:round;animation:.7s linear infinite netsim-cable-flow}.tcpsim-lane__chevron{fill:none;stroke:color-mix(in srgb, var(--netsim-cable-core) 100%, transparent);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.tcpsim-lane[data-live] .tcpsim-lane__chevron{stroke:var(--netsim-live)}.tcpsim-endpoint,.tcpsim-router{position:relative}.tcpsim-art{border-radius:24px}.tcpsim-label{text-align:center;pointer-events:none;flex-direction:column;align-items:center;gap:3px;display:flex;position:absolute}.tcpsim-label[data-mode=tall]{text-align:start;align-items:flex-start}.tcpsim-label .netsim-station__role{font-size:25px}.tcpsim-label__addr{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--muted-foreground);font-size:14px;font-weight:600}.tcpsim-state{font-family:var(--font-mono-code), ui-monospace, monospace;letter-spacing:.03em;white-space:nowrap;color:var(--muted-foreground);border:1.5px solid color-mix(in srgb, var(--muted-foreground) 45%, transparent);background:color-mix(in srgb, var(--card) 85%, transparent);border-radius:999px;align-items:center;padding:3px 10px;font-size:12.5px;font-weight:800;display:inline-flex}.tcpsim-state[data-state=SYN-SENT],.tcpsim-state[data-state=SYN-RECEIVED]{color:var(--tcpsim-control-ink);border-color:color-mix(in srgb, var(--tcpsim-control) 70%, transparent);background:color-mix(in srgb, var(--tcpsim-control) 12%, var(--card))}.tcpsim-state[data-state=ESTABLISHED]{color:var(--background);border-color:var(--netsim-reply-ink);background:var(--netsim-reply-ink)}.tcpsim-state[data-state=CONNECTIONLESS]{font-family:var(--font-cairo), sans-serif;letter-spacing:0;color:var(--tcpsim-udp-ink);border-color:color-mix(in srgb, var(--tcpsim-udp) 60%, transparent);background:color-mix(in srgb, var(--tcpsim-udp) 8%, var(--card));border-style:dashed}.tcpsim-stack{pointer-events:none;flex-direction:column;justify-content:center;gap:6px;display:flex;position:absolute}.tcpsim-stack__row{border:1.5px solid color-mix(in srgb, var(--border) 100%, transparent);background:color-mix(in srgb, var(--card) 80%, transparent);border-radius:10px;justify-content:space-between;align-items:baseline;gap:4px;padding:6px 7px;transition:border-color .25s,background-color .25s,box-shadow .25s;display:flex}.tcpsim-stack__name{font-family:var(--font-cairo), sans-serif;color:var(--muted-foreground);font-size:13px;font-weight:800}.tcpsim-stack__proto{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--muted-foreground);font-size:12px;font-weight:700}.tcpsim-stack__row[data-active]{border-color:var(--netsim-live);background:color-mix(in srgb, var(--netsim-live) 16%, var(--card));box-shadow:0 0 16px -4px var(--netsim-live)}.tcpsim-stack__row[data-active] .tcpsim-stack__name,.tcpsim-stack__row[data-active] .tcpsim-stack__proto{color:var(--foreground)}.tcpsim-plate{border:1.5px solid var(--border);background:color-mix(in srgb, var(--card) 90%, transparent);pointer-events:none;border-radius:14px;flex-direction:column;gap:7px;padding:8px 11px 10px;display:flex;position:absolute}.tcpsim-plate__title{font-family:var(--font-cairo), sans-serif;color:var(--muted-foreground);font-size:13px;font-weight:800}.tcpsim-plate__slots{gap:7px;display:flex}.tcpsim-slot{border:1.5px solid color-mix(in srgb, var(--muted-foreground) 35%, transparent);height:30px;font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--muted-foreground);border-radius:8px;flex:1;justify-content:center;align-items:center;gap:3px;font-size:13px;font-weight:800;transition:background-color .3s,border-color .3s,color .3s;display:flex;position:relative}.tcpsim-slot__mark{font-size:11px}.tcpsim-slot[data-state=in-flight]{color:var(--netsim-signal);border-color:var(--netsim-signal);background:color-mix(in srgb, var(--netsim-signal) 14%, transparent);animation:1.3s ease-in-out infinite tcpsim-slot-pulse}@keyframes tcpsim-slot-pulse{50%{box-shadow:0 0 12px -2px var(--netsim-signal)}}.tcpsim-slot[data-state=acked],.tcpsim-slot[data-state=delivered][data-protocol=tcp]{color:var(--background);border-color:var(--netsim-reply);background:var(--netsim-reply)}.tcpsim-slot[data-state=sent],.tcpsim-slot[data-state=delivered][data-protocol=udp]{color:var(--background);border-color:var(--tcpsim-udp);background:var(--tcpsim-udp)}.tcpsim-slot[data-state=buffered]{color:var(--netsim-signal);border-color:var(--netsim-signal);border-style:dashed}.tcpsim-slot[data-state=missing],.tcpsim-slot[data-state=lost]{color:var(--netsim-drop);border-color:var(--netsim-drop);background:color-mix(in srgb, var(--netsim-drop) 12%, transparent);border-style:dashed}.tcpsim-iface{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--foreground);white-space:nowrap;pointer-events:none;font-size:13px;font-weight:800;position:absolute}.tcpsim-iface__ip{color:var(--muted-foreground);font-weight:500}.tcpsim-router-layer{font-family:var(--font-cairo), sans-serif;color:var(--muted-foreground);border:1.5px solid color-mix(in srgb, var(--border) 100%, transparent);border-radius:999px;margin-top:4px;padding:3px 11px;font-size:13px;font-weight:800;transition:border-color .25s,color .25s,background-color .25s}.tcpsim-router-layer bdi{font-family:var(--font-mono-code), ui-monospace, monospace}.tcpsim-router-layer[data-active]{color:var(--foreground);border-color:var(--netsim-live);background:color-mix(in srgb, var(--netsim-live) 16%, var(--card))}.tcpsim-router-note{font-family:var(--font-cairo), sans-serif;color:var(--muted-foreground);font-size:12.5px}.tcpsim-signal,.tcpsim-signal__body{width:0;height:0;position:absolute;top:0;left:0}.tcpsim-signal__orb{width:24px;height:24px;top:-12px;left:-12px}.tcpsim-signal[data-resting] .tcpsim-signal__orb{animation:1.3s ease-in-out infinite netsim-orb}.tcpsim-signal__ring{border:2.5px solid color-mix(in srgb, var(--netsim-live) 80%, transparent);border-radius:50%;width:38px;height:38px;position:absolute;top:-19px;left:-19px}.tcpsim-signal[data-tone=data] .tcpsim-signal__ring{border-radius:10px}.tcpsim-signal[data-tone=datagram] .tcpsim-signal__ring{border-style:dashed}.tcpsim-signal[data-retx] .tcpsim-signal__ring{box-shadow:0 0 0 4px color-mix(in srgb, var(--netsim-live) 30%, transparent)}.tcpsim-signal[data-dup] .tcpsim-signal__ring{border-style:dotted;border-width:3px}.tcpsim-signal__drop{width:36px;height:36px;color:var(--netsim-drop);background:color-mix(in srgb, var(--netsim-drop) 16%, var(--card));border:2px solid var(--netsim-drop);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:-18px;left:-18px}.tcpsim-chip{gap:6px;padding:3px 10px;font-size:14px;bottom:30px}.tcpsim-chip[data-below]{top:30px;bottom:auto}.tcpsim-chip bdi:first-child{font-family:var(--font-mono-code), ui-monospace, monospace;font-weight:800}.tcpsim-chip__meta{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--netsim-live);font-size:12px;font-weight:600}.tcpsim-callout[data-tone=drop]{--netsim-live:var(--netsim-drop)}.tcpsim-outcome{border:1.5px solid color-mix(in srgb, var(--tcpsim-tone) 65%, transparent);background:color-mix(in srgb, var(--card) 95%, transparent);max-width:100%;box-shadow:0 18px 50px -20px color-mix(in srgb, var(--tcpsim-tone) 70%, transparent);border-radius:18px;align-items:center;gap:14px;padding:10px 12px 10px 16px;display:flex}.tcpsim-outcome[data-tone=tcp]{--tcpsim-tone:var(--netsim-reply)}.tcpsim-outcome[data-tone=udp]{--tcpsim-tone:var(--tcpsim-udp)}.tcpsim-outcome[data-tone=partial]{--tcpsim-tone:var(--netsim-drop)}.tcpsim-outcome__icon{width:28px;height:28px;color:var(--tcpsim-tone);flex-shrink:0}.tcpsim-outcome__title{font-family:var(--font-cairo), sans-serif;color:var(--foreground);font-size:16px;font-weight:900;display:block}.tcpsim-outcome__detail{color:var(--muted-foreground);font-size:12.5px;font-weight:700;display:block}.tcpsim-outcome__action{white-space:nowrap;height:38px;color:var(--background);background:var(--tcpsim-tone);border-radius:12px;align-items:center;gap:8px;padding-inline:14px;font-size:13px;font-weight:800;display:inline-flex}.tcpsim-outcome__action:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.tcpsim-phase{color:color-mix(in srgb, var(--muted-foreground) 80%, transparent);border-radius:8px;flex-shrink:0;padding:4px 10px;font-size:12px;font-weight:800}.tcpsim-phase[data-state=done]{color:var(--foreground)}.tcpsim-phase[data-state=current]{color:var(--primary-ink);background:color-mix(in srgb, var(--primary) 14%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 50%, transparent)}.tcpsim-phase[data-chapter=recovery][data-state=current]{color:var(--netsim-drop);background:color-mix(in srgb, var(--netsim-drop) 12%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--netsim-drop) 50%, transparent)}.tcpsim-toggle__on[data-protocol=tcp]{color:#0b1020;background:var(--netsim-signal)}.tcpsim-toggle__on[data-protocol=udp]{color:#0b1020;background:var(--tcpsim-udp)}.tcpsim-loss-on{color:var(--background);background:var(--netsim-drop)}.tcpsim-progress{background:var(--netsim-signal);box-shadow:0 0 10px var(--netsim-signal)}.tcpsim-progress[data-protocol=udp]{background:var(--tcpsim-udp);box-shadow:0 0 10px var(--tcpsim-udp)}.tcpsim-track{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.tcpsim-track__name{min-width:64px;color:var(--foreground);font-size:12px;font-weight:800}.tcpsim-track__states{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.tcpsim-track .tcpsim-state{padding:2px 8px;font-size:11px}.tcpsim-track .tcpsim-state[data-phase=upcoming]{background:0 0;border-style:dashed}.tcpsim-track .tcpsim-state[data-phase=upcoming][data-state=ESTABLISHED]{color:var(--netsim-reply-ink)}.tcpsim-track .tcpsim-state[data-phase=done]{opacity:.7;color:var(--muted-foreground);border-color:color-mix(in srgb, var(--muted-foreground) 45%, transparent);background:0 0}.tcpsim-operation{color:var(--foreground);font-size:13px;font-weight:800}.tcpsim-operation[data-operation=dropped]{color:var(--netsim-drop)}.tcpsim-operation[data-operation=retransmitting],.tcpsim-operation[data-operation=waiting-ack]{color:var(--netsim-signal)}.tcpsim-guarantee{color:var(--muted-foreground);align-items:center;gap:8px;font-size:12.5px;display:flex}.tcpsim-guarantee svg{color:var(--netsim-drop);flex-shrink:0}.tcpsim-guarantee[data-on]{color:var(--foreground)}.tcpsim-guarantee[data-on] svg{color:var(--netsim-reply)}.tcpsim-guarantee--header{border-top:1px solid color-mix(in srgb, var(--border) 100%, transparent);margin-top:4px;padding-top:6px}.tcpsim-question[data-current]{border-color:color-mix(in srgb, var(--primary) 60%, transparent);background:color-mix(in srgb, var(--primary) 7%, transparent)}.tcpsim-question summary::-webkit-details-marker{display:none}.simlog-entry{border-inline-start:2px solid color-mix(in srgb, var(--border) 100%, transparent);gap:12px;padding:8px 0 8px 12px;transition:opacity .25s,background-color .25s;display:flex}:root[dir=rtl] .simlog-entry{padding:8px 12px 8px 0}.simlog-entry[data-state=current]{border-inline-start-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, transparent)}.simlog-entry[data-state=upcoming]{opacity:.8}.simlog-entry__dot{background:var(--netsim-live,var(--primary));width:9px;height:9px;box-shadow:0 0 7px var(--netsim-live,var(--primary));border-radius:50%;flex-shrink:0;margin-top:6px}.tcpsim-compare{border:1.5px solid color-mix(in srgb, var(--border) 100%, transparent);border-radius:16px;min-width:0;padding:12px 14px}.tcpsim-compare[data-live]{border-color:color-mix(in srgb, var(--primary) 50%, transparent);background:color-mix(in srgb, var(--primary) 4%, transparent)}.tcpsim-compare__switch{height:30px;color:var(--foreground);border:1px solid color-mix(in srgb, var(--border) 100%, transparent);background:color-mix(in srgb, var(--background) 60%, transparent);border-radius:9px;align-items:center;gap:6px;padding-inline:10px;font-size:12px;font-weight:800;display:inline-flex}.tcpsim-compare__switch:hover{border-color:color-mix(in srgb, var(--primary) 50%, transparent)}.tcpsim-compare__switch:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.tcpsim-ladder{width:100%;max-width:460px;height:auto;margin:10px auto 4px;display:block;overflow:visible}.tcpsim-ladder__head{font-family:var(--font-mono-code), ui-monospace, monospace;fill:var(--foreground);font-size:11px;font-weight:800}.tcpsim-ladder__life{stroke:color-mix(in srgb, var(--muted-foreground) 45%, transparent);stroke-width:1.5px;stroke-dasharray:3 4}.tcpsim-ladder__arrow{stroke:var(--netsim-live);stroke-width:2px}.tcpsim-ladder__head-dot{fill:var(--netsim-live)}.tcpsim-ladder__cross{stroke:var(--netsim-drop);stroke-width:2.5px;stroke-linecap:round;fill:none}.tcpsim-ladder__msg[data-lost] .tcpsim-ladder__arrow{stroke-dasharray:4 3}.tcpsim-ladder__label{font-family:var(--font-mono-code), ui-monospace, monospace;fill:var(--muted-foreground);font-size:10px;font-weight:700}.tcpsim-ladder__msg{transition:opacity .25s}.tcpsim-ladder__msg[data-state=upcoming]{opacity:.18}.tcpsim-ladder__msg[data-state=reference]{opacity:.6}.tcpsim-ladder__msg[data-state=current] .tcpsim-ladder__arrow{stroke-width:3.5px;filter:drop-shadow(0 0 4px var(--netsim-live))}.tcpsim-ladder__msg[data-state=current] .tcpsim-ladder__label{fill:var(--foreground);font-weight:900}.tcpsim-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:2px 18px;margin-top:6px;display:grid}.tcpsim-stats__row{border-bottom:1px solid color-mix(in srgb, var(--border) 100%, transparent);justify-content:space-between;align-items:baseline;gap:10px;padding:4px 0;font-size:12px;display:flex}.tcpsim-stats__row dt{color:var(--muted-foreground)}.tcpsim-stats__row dd{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--foreground);font-weight:800}:root{--svcsim-dhcp:#008cbc;--svcsim-dhcp-hot:#0070a6;--svcsim-dns:#8e51c7;--svcsim-dns-hot:#8632b6;--svcsim-dhcp-ink:color-mix(in oklch, var(--svcsim-dhcp) 70%, black);--svcsim-dns-ink:color-mix(in oklch, var(--svcsim-dns) 70%, black)}@supports (color:lab(0% 0 0)){:root{--svcsim-dhcp:lab(53.7278% -20.4299 -39.741);--svcsim-dhcp-hot:lab(43.8829% -11.3779 -49.3298);--svcsim-dns:lab(46.0807% 42.8353 -52.6729);--svcsim-dns-hot:lab(38.5645% 51.7889 -54.5957)}}.dark{--svcsim-dhcp:#52c7f2;--svcsim-dhcp-hot:#009eda;--svcsim-dns:#c797fd;--svcsim-dns-hot:#b16ee5;--svcsim-dhcp-ink:var(--svcsim-dhcp);--svcsim-dns-ink:var(--svcsim-dns)}@supports (color:lab(0% 0 0)){.dark{--svcsim-dhcp:lab(74.9018% -24.1385 -31.648);--svcsim-dhcp-hot:lab(60.6162% -20.3469 -43.7187);--svcsim-dns:lab(70.0454% 33.2713 -44.4356);--svcsim-dns-hot:lab(57.805% 43.2695 -50.9086)}}:is(.svcsim-stage,.svcsim-dot,.simlog-entry,.svcsim-tag,.svcsim-progress,.svcsim-layers)[data-tone=dhcp],.svcsim-signal[data-protocol=dhcp]{--netsim-live:var(--svcsim-dhcp);--netsim-live-hot:var(--svcsim-dhcp-hot)}:is(.svcsim-stage,.svcsim-dot,.simlog-entry,.svcsim-tag,.svcsim-progress,.svcsim-layers)[data-tone=dns],.svcsim-signal[data-protocol=dns]{--netsim-live:var(--svcsim-dns);--netsim-live-hot:var(--svcsim-dns-hot)}:is(.svcsim-stage,.svcsim-dot,.simlog-entry,.svcsim-tag,.svcsim-progress,.svcsim-layers)[data-tone=app],.svcsim-signal[data-protocol=tcp]{--netsim-live:var(--netsim-signal);--netsim-live-hot:var(--netsim-signal-hot)}:is(.svcsim-stage,.svcsim-dot,.simlog-entry,.svcsim-tag,.svcsim-progress)[data-tone=done]{--netsim-live:var(--netsim-reply);--netsim-live-hot:var(--netsim-reply-hot)}:is(.svcsim-stage,.svcsim-dot,.simlog-entry,.svcsim-tag,.svcsim-progress)[data-tone=fail]{--netsim-live:var(--netsim-drop);--netsim-live-hot:var(--netsim-drop)}.svcsim-tag{color:color-mix(in oklch, var(--netsim-live) var(--tone-ink), black)}.svcsim-stage-wrap{position:relative}.svcsim-stage{height:clamp(460px,100svh - 21rem,780px)}.svcsim-stage[data-mode=tall]{height:auto}.svcsim-overlay-top,.svcsim-overlay-bottom{pointer-events:none;z-index:5;justify-content:center;padding:12px 16px;display:flex;position:absolute;inset-inline:0}.svcsim-overlay-top{top:0}.svcsim-overlay-bottom{bottom:0}.svcsim-overlay-top>*,.svcsim-overlay-bottom>*{pointer-events:auto}.svcsim-stage-wrap[data-mode=tall] .svcsim-overlay-top,.svcsim-stage-wrap[data-mode=tall] .svcsim-overlay-bottom{position:static}.svcsim-stage-wrap[data-mode=tall] .svcsim-overlay-bottom:empty{display:none}.svcsim-legend{border:1px solid color-mix(in srgb, var(--border) 100%, transparent);background:color-mix(in srgb, var(--card) 88%, transparent);color:var(--muted-foreground);border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 16px;padding:6px 14px;font-size:12px;display:flex}.svcsim-legend li{align-items:center;gap:6px;display:inline-flex}.svcsim-dot{background:var(--netsim-live);width:10px;height:10px;box-shadow:0 0 8px var(--netsim-live);border-radius:50%;flex-shrink:0;display:inline-block}.svcsim-ring-key{border:2px solid var(--muted-foreground);border-radius:50%;width:13px;height:13px}.svcsim-ring-key[data-delivery=broadcast]{border-style:dashed}.svcsim-zone{border:1.5px dashed var(--netsim-zone-line);background:var(--netsim-zone-lan);border-radius:34px;position:relative}.svcsim-zone__label{font-family:var(--font-cairo), sans-serif;color:var(--muted-foreground);white-space:nowrap;align-items:baseline;gap:10px;font-size:17px;font-weight:800;display:inline-flex;position:absolute;top:16px}.svcsim-zone__cidr{font-family:var(--font-mono-code), ui-monospace, monospace;font-size:15px;font-weight:500}.svcsim-cable[data-muted] .netsim-cable__glow{opacity:.07}.svcsim-cable[data-muted] .netsim-cable__flow{opacity:.45}.svcsim-art{border-radius:24px}.svcsim-label{pointer-events:none;flex-direction:column;gap:3px;display:flex;position:absolute}.svcsim-label[data-align=center]{text-align:center;align-items:center}.svcsim-label[data-align=start]{text-align:start;align-items:flex-start}.svcsim-label .netsim-station__role{font-size:25px}.svcsim-stage[data-mode=tall] .svcsim-server .netsim-station__role{font-size:22px}.svcsim-label__addr{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--muted-foreground);font-size:14px;font-weight:600}.svcsim-service{font-family:var(--font-cairo), sans-serif;color:var(--muted-foreground);white-space:nowrap;align-items:center;gap:6px;margin-top:2px;font-size:13px;font-weight:700;display:inline-flex}.svcsim-service__port{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--foreground);font-size:12.5px}.svcsim-service__dot{background:var(--netsim-reply);width:8px;height:8px;box-shadow:0 0 8px color-mix(in srgb, var(--netsim-reply) 70%, transparent);border-radius:50%}.svcsim-service[data-stopped]{color:var(--netsim-drop)}.svcsim-server[data-stopped] .netsim-station__art{opacity:.5;filter:grayscale(.85)}.svcsim-server[data-verdict=discard] .netsim-station__art{opacity:.6}.svcsim-verdict-slot{pointer-events:none;z-index:2;justify-content:center;display:flex;position:absolute}.svcsim-verdict{font-family:var(--font-cairo), sans-serif;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 11px 3px 9px;font-size:14px;font-weight:800;display:inline-flex}.svcsim-verdict[data-verdict=accept]{color:var(--background);background:var(--netsim-reply);box-shadow:0 0 18px color-mix(in srgb, var(--netsim-reply) 55%, transparent)}.svcsim-verdict[data-verdict=discard],.svcsim-verdict[data-verdict=stopped]{color:var(--netsim-drop);background:color-mix(in srgb, var(--netsim-drop) 14%, var(--card));border:1.5px solid color-mix(in srgb, var(--netsim-drop) 60%, transparent)}.svcsim-verdict__port{font-family:var(--font-mono-code), ui-monospace, monospace;font-size:12.5px}.svcsim-plate{border:1.5px solid var(--border);background:color-mix(in srgb, var(--card) 92%, transparent);pointer-events:none;border-radius:16px;flex-direction:column;gap:5px;padding:9px 13px 10px;transition:border-color .4s,box-shadow .4s;display:flex;position:absolute;box-shadow:0 10px 30px -18px #00000080;box-shadow:0 10px 30px -18px lab(0% 0 0/.5)}.svcsim-plate[data-stopped]{border-style:dashed;border-color:color-mix(in srgb, var(--netsim-drop) 55%, transparent);opacity:.8}.svcsim-plate--config[data-state=BOUND]{border-color:color-mix(in srgb, var(--netsim-reply) 70%, transparent);box-shadow:0 0 0 4px color-mix(in srgb, var(--netsim-reply) 10%, transparent), 0 10px 30px -18px #00000080}@supports (color:lab(0% 0 0)){.svcsim-plate--config[data-state=BOUND]{box-shadow:0 0 0 4px color-mix(in srgb, var(--netsim-reply) 10%, transparent), 0 10px 30px -18px lab(0% 0 0/.5)}}.svcsim-plate--config[data-state=FAILED]{border-color:color-mix(in srgb, var(--netsim-drop) 70%, transparent)}.svcsim-plate__title{font-family:var(--font-cairo), sans-serif;color:var(--foreground);justify-content:space-between;align-items:center;gap:8px;font-size:15px;font-weight:800;display:flex}.svcsim-plate__chip{align-items:center;gap:6px;display:inline-flex}.svcsim-plate__proto,.svcsim-plate__meta{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--muted-foreground);font-size:12.5px;font-weight:600}.svcsim-plate__row{color:var(--foreground);border-radius:8px;justify-content:space-between;align-items:baseline;gap:10px;margin-inline:-8px;padding:2px 8px;font-size:14px;display:flex}.svcsim-plate__key{font-family:var(--font-cairo), sans-serif;color:var(--muted-foreground);white-space:nowrap;font-size:13px;font-weight:600}.svcsim-plate__value,.svcsim-plate__mac{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--foreground);white-space:nowrap;font-size:14px;font-weight:700}.svcsim-plate__mac{color:var(--muted-foreground);font-size:12.5px;font-weight:500}.svcsim-plate__row[data-unset] .svcsim-plate__value{color:color-mix(in srgb, var(--muted-foreground) 75%, transparent);font-weight:500}.svcsim-plate__row[data-fresh]{animation:2s ease-out both svcsim-fresh}.svcsim-plate__row[data-fresh] .svcsim-plate__value{color:color-mix(in oklch, var(--netsim-reply) 70%, var(--foreground))}@keyframes svcsim-fresh{0%{background:color-mix(in srgb, var(--netsim-reply) 45%, transparent)}to{background:color-mix(in srgb, var(--netsim-reply) 8%, transparent)}}.svcsim-plate__divider{background:color-mix(in srgb, var(--border) 100%, transparent);height:1px;margin:2px 0}.svcsim-plate__host{font-family:var(--font-mono-code), ui-monospace, monospace;font-size:12.5px}.svcsim-plate__row--name .svcsim-plate__value{font-family:var(--font-cairo), sans-serif;color:var(--muted-foreground);font-size:13px;font-weight:700}.svcsim-plate__row--name[data-dns=RESOLVED] .svcsim-plate__value{font-family:var(--font-mono-code), ui-monospace, monospace;color:color-mix(in oklch, var(--netsim-reply) 75%, var(--foreground));font-size:14px}.svcsim-plate__row--name[data-dns=QUERYING] .svcsim-plate__value{color:var(--svcsim-dns)}.svcsim-plate__row--name[data-dns=FAILED] .svcsim-plate__value{color:var(--netsim-drop)}.svcsim-plate__note{font-family:var(--font-cairo), sans-serif;color:var(--muted-foreground);font-size:12px;font-weight:600}.svcsim-binding{font-family:var(--font-cairo), sans-serif;color:var(--muted-foreground);border:1.5px solid color-mix(in srgb, var(--muted-foreground) 40%, transparent);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:800}.svcsim-binding[data-binding=offered]{color:var(--svcsim-dhcp);border-color:var(--svcsim-dhcp)}.svcsim-binding[data-binding=bound]{color:var(--background);border-color:var(--netsim-reply);background:var(--netsim-reply)}.svcsim-record{justify-content:flex-start}.svcsim-record__type{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--svcsim-dns);font-size:12px;font-weight:800}.svcsim-record[data-hit]{animation:1.8s ease-out both svcsim-hit}@keyframes svcsim-hit{0%{background:color-mix(in srgb, var(--svcsim-dns) 40%, transparent)}to{background:color-mix(in srgb, var(--svcsim-dns) 10%, transparent)}}.svcsim-state{font-family:var(--font-mono-code), ui-monospace, monospace;letter-spacing:.03em;white-space:nowrap;color:var(--muted-foreground);border:1.5px solid color-mix(in srgb, var(--muted-foreground) 45%, transparent);background:color-mix(in srgb, var(--card) 85%, transparent);border-radius:999px;align-items:center;padding:2px 9px;font-size:12px;font-weight:800;display:inline-flex}.svcsim-state[data-state=SELECTING],.svcsim-state[data-state=REQUESTING]{color:var(--svcsim-dhcp-ink);border-color:color-mix(in srgb, var(--svcsim-dhcp) 70%, transparent);background:color-mix(in srgb, var(--svcsim-dhcp) 12%, var(--card))}.svcsim-state[data-state=QUERYING]{color:var(--svcsim-dns-ink);border-color:color-mix(in srgb, var(--svcsim-dns) 70%, transparent);background:color-mix(in srgb, var(--svcsim-dns) 12%, var(--card))}.svcsim-state[data-state=CONNECTING]{color:var(--netsim-signal-hot-ink);border-color:color-mix(in srgb, var(--netsim-signal) 75%, transparent);background:color-mix(in srgb, var(--netsim-signal) 12%, var(--card))}.svcsim-state[data-state=BOUND],.svcsim-state[data-state=RESOLVED],.svcsim-state[data-state=CONNECTED]{color:var(--background);border-color:var(--netsim-reply-ink);background:var(--netsim-reply-ink)}.svcsim-state[data-state=FAILED]{color:var(--background);border-color:var(--netsim-drop-ink);background:var(--netsim-drop-ink)}.svcsim-track{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.svcsim-track .svcsim-state{padding:2px 8px;font-size:11px}.svcsim-track .svcsim-state[data-phase=upcoming]{background:0 0;border-style:dashed}.svcsim-track .svcsim-state[data-phase=upcoming]:is([data-state=BOUND],[data-state=RESOLVED],[data-state=CONNECTED]){color:var(--netsim-reply-ink)}.svcsim-track .svcsim-state[data-phase=upcoming][data-state=FAILED]{color:var(--netsim-drop-ink)}.svcsim-track .svcsim-state[data-phase=done]{opacity:.7;color:var(--muted-foreground);border-color:color-mix(in srgb, var(--muted-foreground) 45%, transparent);background:0 0}.svcsim-switch__hit{border-radius:28px}.svcsim-switch__traces{pointer-events:none;position:absolute;inset:0;overflow:visible}.svcsim-switch__traces line{stroke:var(--netsim-device-detail);stroke-width:3px;stroke-dasharray:2 7;stroke-linecap:round;transition:stroke .3s,opacity .3s}.svcsim-switch__traces line[data-role]{stroke:var(--netsim-live);stroke-dasharray:none;opacity:.8}.svcsim-switch__label{white-space:nowrap;pointer-events:none;align-items:baseline;gap:10px;display:flex;position:absolute}.svcsim-switch__label[data-anchor=corner]{flex-direction:column;align-items:flex-end;gap:0}.svcsim-switch__label[data-anchor=corner] .netsim-station__role{font-size:20px}.svcsim-switch__label[data-anchor=corner] .netsim-station__name{font-size:12px}.svcsim-port{border:2px solid var(--netsim-device-line);background:var(--netsim-device-face);border-radius:10px;transition:border-color .25s,box-shadow .25s,background-color .25s;position:absolute}.svcsim-port__jack{background:var(--netsim-device-body);border:1.5px solid var(--netsim-device-detail);border-radius:3px;position:absolute;inset:8px 16px}.svcsim-port__led{top:5px;background:var(--netsim-idle-light);border-radius:50%;width:6px;height:6px;transition:background-color .25s,box-shadow .25s;position:absolute;inset-inline-end:6px}.svcsim-port[data-role]{border-color:color-mix(in srgb, var(--netsim-live) 75%, var(--netsim-device-line))}.svcsim-port[data-lit=true]{border-color:var(--netsim-live);background:color-mix(in srgb, var(--netsim-live) 22%, var(--netsim-device-face));box-shadow:0 0 22px 2px color-mix(in srgb, var(--netsim-live) 60%, transparent)}.svcsim-port[data-lit=true] .svcsim-port__led,.svcsim-port[data-role] .svcsim-port__led{background:var(--netsim-live);box-shadow:0 0 8px var(--netsim-live)}.svcsim-port__name{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--foreground);white-space:nowrap;font-size:14px;font-weight:700;position:absolute}.svcsim-port__name[data-side=above]{bottom:calc(100% + 5px);left:50%;transform:translate(-50%)}.svcsim-port__name[data-side=below]{top:calc(100% + 5px);left:50%;transform:translate(-50%)}.svcsim-port__name[data-side=left]{top:50%;right:calc(100% + 8px);transform:translateY(-50%)}.svcsim-port__name[data-side=right]{top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.svcsim-signal,.svcsim-signal__body{width:0;height:0;position:absolute;top:0;left:0}.svcsim-signal[data-muted]{opacity:.45}.svcsim-signal[data-resting] .svcsim-signal__orb{animation:1.3s ease-in-out infinite netsim-orb}.svcsim-signal__ring{border:2.5px solid color-mix(in srgb, var(--netsim-live) 85%, transparent);border-radius:50%;width:46px;height:46px;position:absolute;top:-23px;left:-23px}.svcsim-signal[data-delivery=broadcast] .svcsim-signal__ring{border-style:dashed}.svcsim-signal__wave{border:2px solid var(--netsim-live);border-radius:50%;width:44px;height:44px;animation:1.7s ease-out infinite svcsim-wave;position:absolute;top:-22px;left:-22px}.svcsim-signal__wave--late{animation-delay:.85s}@keyframes svcsim-wave{0%{opacity:.75;transform:scale(1)}to{opacity:0;transform:scale(3.2)}}.svcsim-signal__drop{width:40px;height:40px;color:var(--netsim-drop);background:color-mix(in srgb, var(--netsim-drop) 16%, var(--card));border:2px solid var(--netsim-drop);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:-20px;left:-20px}.svcsim-chip{gap:7px;padding:4px 12px;font-size:15px;bottom:44px}.svcsim-chip[data-side=left]{inset:0 34px auto auto;transform:translateY(-50%)}.svcsim-chip[data-side=right]{top:0;bottom:auto;left:34px;transform:translateY(-50%)}.svcsim-chip bdi:first-child{font-family:var(--font-mono-code), ui-monospace, monospace;font-weight:800}.svcsim-chip .netsim-packet__bytes[dir=rtl]{font-family:var(--font-cairo), sans-serif;font-weight:700}.svcsim-trail[data-muted] .netsim-trail__path{opacity:.22}.svcsim-outcome{border:1.5px solid color-mix(in srgb, var(--svcsim-tone) 65%, transparent);background:color-mix(in srgb, var(--card) 95%, transparent);max-width:100%;box-shadow:0 18px 50px -20px color-mix(in srgb, var(--svcsim-tone) 70%, transparent);border-radius:18px;align-items:center;gap:14px;padding:10px 12px 10px 16px;display:flex}.svcsim-outcome__head{align-items:center;gap:14px;min-width:0;display:flex}.svcsim-outcome-anchor{pointer-events:auto;width:max-content;max-width:640px;position:absolute;transform:translate(-50%)}.svcsim-outcome[data-in-flow]{border-width:2px;border-radius:22px;flex-direction:column;align-items:stretch;gap:12px;padding:16px 20px}.svcsim-outcome[data-in-flow] .svcsim-outcome__head{gap:16px}.svcsim-outcome[data-in-flow] .svcsim-outcome__icon{width:38px;height:38px}.svcsim-outcome[data-in-flow] .svcsim-outcome__title{font-size:22px;line-height:1.35}.svcsim-outcome[data-in-flow] .svcsim-outcome__checks{gap:6px 16px;margin-top:5px}.svcsim-outcome[data-in-flow] .svcsim-outcome__check{gap:5px;font-size:16px}.svcsim-outcome[data-in-flow] .svcsim-outcome__check svg{width:18px;height:18px}.svcsim-outcome[data-in-flow] .svcsim-outcome__detail{margin-top:4px;font-size:15px}.svcsim-outcome[data-in-flow] .svcsim-outcome__action{border-radius:14px;align-self:flex-start;height:48px;margin-inline-start:54px;padding-inline:20px;font-size:17px}.svcsim-outcome[data-in-flow] .svcsim-outcome__action svg{width:20px;height:20px}.svcsim-stage-wrap[data-mode=tall] .svcsim-outcome{flex-direction:column;align-items:stretch;gap:10px;width:100%}.svcsim-stage-wrap[data-mode=tall] .svcsim-outcome__action{align-self:flex-start;margin-inline-start:42px}.svcsim-outcome__detail{overflow-wrap:anywhere}.svcsim-outcome[data-outcome=success]{--svcsim-tone:var(--netsim-reply)}.svcsim-outcome[data-outcome=dhcp-failed],.svcsim-outcome[data-outcome=dns-failed]{--svcsim-tone:var(--netsim-drop)}.svcsim-outcome__icon{width:28px;height:28px;color:var(--svcsim-tone);flex-shrink:0}.svcsim-outcome__title{font-family:var(--font-cairo), sans-serif;color:var(--foreground);font-size:16px;font-weight:900;display:block}.svcsim-outcome__checks{flex-wrap:wrap;gap:4px 12px;margin-top:2px;display:flex}.svcsim-outcome__check{color:var(--netsim-drop);align-items:center;gap:4px;font-size:12.5px;font-weight:800;display:inline-flex}.svcsim-outcome__check[data-ok]{color:color-mix(in oklch, var(--netsim-reply) 80%, var(--foreground))}.svcsim-outcome__detail{font-family:var(--font-mono-code), ui-monospace, monospace;color:var(--muted-foreground);margin-top:1px;font-size:12px;display:block}.svcsim-outcome__action{white-space:nowrap;height:38px;color:var(--background);background:var(--svcsim-tone);border-radius:12px;align-items:center;gap:8px;padding-inline:14px;font-size:13px;font-weight:800;display:inline-flex}.svcsim-outcome__action:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.svcsim-chapter{color:color-mix(in srgb, var(--muted-foreground) 80%, transparent);border-radius:8px;flex-shrink:0;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:800;display:inline-flex}.svcsim-chapter[data-state=done]{color:color-mix(in oklch, var(--netsim-reply) 75%, var(--foreground))}.svcsim-chapter[data-state=current]{color:var(--primary-ink);background:color-mix(in srgb, var(--primary) 14%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 50%, transparent)}.svcsim-chapter[data-state=failed]{color:var(--netsim-drop);background:color-mix(in srgb, var(--netsim-drop) 12%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--netsim-drop) 50%, transparent)}.svcsim-fault-on{color:var(--background);background:var(--netsim-drop)}.svcsim-progress{background:var(--netsim-live);box-shadow:0 0 10px var(--netsim-live)}.svcsim-layer-row{border:1px solid color-mix(in srgb, var(--border) 100%, transparent);border-radius:10px;grid-template-columns:6.75rem minmax(0,1fr);align-items:baseline;gap:1px 10px;padding:6px 10px;transition:border-color .25s,background-color .25s,opacity .25s;display:grid}.svcsim-layer-row__name{color:var(--muted-foreground);font-size:11px;font-weight:700}.svcsim-layer-row__value{overflow-wrap:anywhere;min-width:0;color:var(--foreground);font-size:12px;line-height:1.5}.svcsim-layer-row__value[data-mono]{font-family:var(--font-mono-code), ui-monospace, monospace;font-size:11.5px}.svcsim-layer-row__note{color:var(--muted-foreground);grid-column:2;font-size:10.5px}.svcsim-layer-row[data-active]{border-color:var(--netsim-live);background:color-mix(in srgb, var(--netsim-live) 12%, transparent);box-shadow:0 0 14px -4px var(--netsim-live)}.svcsim-layer-row[data-active] .svcsim-layer-row__name{color:var(--foreground)}.svcsim-layer-row[data-unread]{opacity:.8;border-style:dashed}.svcsim-service-panel[data-live]>section{border-color:color-mix(in srgb, var(--primary) 55%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 8%, transparent)}.svcsim-question[data-current]{border-color:color-mix(in srgb, var(--primary) 60%, transparent);background:color-mix(in srgb, var(--primary) 7%, transparent)}.svcsim-question summary::-webkit-details-marker{display:none}.vlansim-stage{--vlansim-vlan10:#009fcb;--vlansim-vlan20:#009e98}@supports (color:lab(0% 0 0)){.vlansim-stage{--vlansim-vlan10:lab(59.8597% -28.2381 -38.3605);--vlansim-vlan20:lab(58.5546% -44.1638 -8.67019)}}.dark .vlansim-stage{--vlansim-vlan10:#36caf1;--vlansim-vlan20:#35c9c2}@supports (color:lab(0% 0 0)){.dark .vlansim-stage{--vlansim-vlan10:lab(75.132% -29.8346 -30.6763);--vlansim-vlan20:lab(73.5241% -40.5411 -8.06854)}}.vlansim-domain{--vlansim-zone-color:var(--vlansim-vlan10);border-color:color-mix(in oklch, var(--vlansim-zone-color) 48%, var(--netsim-zone-line));background:color-mix(in oklch, var(--vlansim-zone-color) 6%, transparent)}.vlansim-domain[data-vlan="20"]{--vlansim-zone-color:var(--vlansim-vlan20)}.vlansim-domain .netsim-zone__label{color:var(--vlansim-zone-color)}.vlansim-domain__network{color:var(--muted-foreground);font-size:11px;font-family:var(--font-mono-code), ui-monospace, monospace}.netsim-cable[data-trunk] .netsim-cable__core{stroke-dasharray:7 6}.netsim-cable__label[data-trunk]{border-style:dashed;border-color:color-mix(in oklch, var(--vlansim-vlan20) 55%, var(--border))}.vlansim-station[data-vlan="10"]{--vlansim-device-accent:var(--vlansim-vlan10)}.vlansim-station[data-vlan="20"]{--vlansim-device-accent:var(--vlansim-vlan20)}.vlansim-station__vlan{border:1px solid color-mix(in oklch, var(--vlansim-device-accent,var(--primary)) 48%, transparent);color:var(--vlansim-device-accent,var(--primary));border-radius:999px;padding:1px 7px}.netsim-stage[data-signal=drop],.netsim-packet-layer[data-signal=drop]{--netsim-live:var(--netsim-drop);--netsim-live-hot:var(--netsim-drop)}.netsim-trail__path[data-dropped]{stroke:var(--netsim-drop)}.netsim-packet__chip--drop{border-color:var(--netsim-drop);color:var(--netsim-drop)}
