.voilea-routing{--anatomy-paper:#202226;--anatomy-top:#303239;--anatomy-shade-0:#15171b;--anatomy-shade-1:#191b20;--anatomy-shade-2:#23252b;--anatomy-shade-3:#292c32;--anatomy-mid:#858a95;--anatomy-lo:#525863;--anatomy-faint:#343840;--anatomy-hi:#c8ccd3;--vr-proxy:var(--accent);--vr-direct:#c8ccd3;--vr-block:#f8b3b3;border-radius:var(--radius,12px);background:var(--panel);color:var(--ink);margin:24px 0 0;padding:20px;overflow:hidden}.voilea-routing[data-theme=light]{--anatomy-paper:#e4e5e9;--anatomy-top:#f7f7f9;--anatomy-shade-0:#c2c5cc;--anatomy-shade-1:#d0d2d8;--anatomy-shade-2:#dadddf;--anatomy-shade-3:#e3e5e8;--anatomy-mid:#626875;--anatomy-lo:#747a84;--anatomy-faint:#afb4bd;--anatomy-hi:#343944;--vr-proxy:#86518e;--vr-direct:#343944;--vr-block:#974b4b;--ink:#18181a;--secondary:#57575a;color:#18181a;background:#fbfbfa}.voilea-routing .vr-header{color:var(--secondary);justify-content:space-between;gap:16px;font-size:12px;line-height:1.4;display:flex}.voilea-routing .vr-header>span:first-child{color:var(--ink);font-weight:500}.voilea-routing .vr-svg{width:100%;height:auto;margin:12px 0 20px;display:block;overflow:visible}.voilea-routing .iso-fill{fill:var(--anatomy-paper)}.voilea-routing .iso-top{fill:var(--anatomy-top)}.voilea-routing .iso-shade[data-shade="0"]{fill:var(--anatomy-shade-0)}.voilea-routing .iso-shade[data-shade="1"]{fill:var(--anatomy-shade-1)}.voilea-routing .iso-shade[data-shade="2"]{fill:var(--anatomy-shade-2)}.voilea-routing .iso-shade[data-shade="3"]{fill:var(--anatomy-shade-3)}.voilea-routing .iso-line{fill:none;stroke:var(--anatomy-mid);stroke-width:.6px;stroke-linecap:round;stroke-linejoin:round}.voilea-routing .iso-line[data-tone=faint]{stroke:var(--anatomy-faint)}.voilea-routing .iso-line[data-tone=lo]{stroke:var(--anatomy-lo)}.voilea-routing .iso-dots circle{fill:var(--anatomy-mid)}.voilea-routing .iso-face-text{fill:var(--anatomy-mid);letter-spacing:.3px;font:3px sans-serif}.voilea-routing .vr-board .iso-top{fill:#242a29}.voilea-routing .vr-rubber .iso-top,.voilea-routing .vr-rubber .iso-fill{fill:#101215}.voilea-routing .vr-module-led .iso-top{fill:var(--anatomy-lo);transition:fill .22s ease-out}.voilea-routing[data-bypass=true] .vr-bypass-led .iso-top{fill:var(--vr-proxy)}.voilea-routing[data-blocking=true] .vr-block-led .iso-top{fill:var(--vr-block)}.voilea-routing .vr-route{--signal-opacity:0;opacity:.12;transition:opacity .22s ease-out}.voilea-routing .vr-trace{fill:none;stroke:var(--anatomy-lo);stroke-width:1.1px;stroke-linejoin:round;stroke-linecap:round}.voilea-routing .vr-route[data-route=proxy]{color:var(--vr-proxy)}.voilea-routing .vr-route[data-route=direct]{color:var(--vr-direct)}.voilea-routing .vr-route[data-route=block]{color:var(--vr-block)}.voilea-routing .vr-signal{fill:currentColor;visibility:hidden;opacity:var(--signal-opacity)}.voilea-routing[data-running=true] .vr-signal{visibility:visible}.voilea-routing .vr-route[data-source=local],.voilea-routing[data-bypass=true] .vr-route:is([data-source=media],[data-source=app])[data-route=proxy],.voilea-routing[data-bypass=false] .vr-route:is([data-source=media],[data-source=app])[data-route=direct],.voilea-routing[data-blocking=true] .vr-route[data-source=tracker][data-route=block],.voilea-routing[data-blocking=false] .vr-route[data-source=tracker][data-route=direct]{--signal-opacity:1;opacity:1}.voilea-routing .vr-route[data-source=local] .vr-trace,.voilea-routing[data-bypass=true] .vr-route:is([data-source=media],[data-source=app])[data-route=proxy] .vr-trace,.voilea-routing[data-bypass=false] .vr-route:is([data-source=media],[data-source=app])[data-route=direct] .vr-trace,.voilea-routing[data-blocking=true] .vr-route[data-source=tracker][data-route=block] .vr-trace,.voilea-routing[data-blocking=false] .vr-route[data-source=tracker][data-route=direct] .vr-trace{stroke:currentColor}.voilea-routing .vr-controls{border:0;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;display:grid}.voilea-routing [data-vr-part]{cursor:pointer}.voilea-routing [data-vr-part] .iso-top,.voilea-routing [data-vr-part] .iso-edge{transition:fill .18s ease-out,stroke .18s ease-out}.voilea-routing [data-highlighted=true] .iso-top{fill:color-mix(in srgb,var(--accent) 12%,var(--anatomy-top))}.voilea-routing [data-highlighted=true] .iso-edge,.voilea-routing [data-vr-part]:focus-visible .iso-edge{stroke:var(--accent);stroke-width:1.1px}.voilea-routing [data-vr-part]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.voilea-routing[data-highlight] .vr-svg .vr-route[data-related=false]{opacity:.08}.voilea-routing .vr-hint>span{flex:1;min-height:36px}.voilea-routing{position:relative}.voilea-routing .vr-tooltip{left:var(--vr-tooltip-x);top:var(--vr-tooltip-y);background:var(--ink);width:max-content;max-width:220px;color:var(--ground);pointer-events:none;opacity:0;z-index:2;border-radius:8px;padding:9px 12px;font-size:12px;line-height:1.5;transition:opacity .12s ease-out;position:absolute;transform:translate(-50%,-100%)}.voilea-routing[data-highlight] .vr-tooltip{opacity:1}.voilea-routing .vr-touch-hint{display:none}@media (hover:none),(pointer:coarse){.voilea-routing .vr-tooltip,.voilea-routing .vr-desktop-hint{display:none}.voilea-routing .vr-touch-hint{display:block}}.voilea-routing .vr-hint{color:var(--secondary);justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;line-height:1.5;display:flex}.voilea-routing .vr-motion-toggle{color:var(--ink);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;flex:none;padding:12px 0;text-decoration:underline}.voilea-routing .vr-controls legend{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.voilea-routing .vr-controls label{cursor:pointer;align-items:center;gap:10px;min-height:44px;font-size:13px;display:flex}.voilea-routing .vr-controls input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex:none}.voilea-routing .vr-legend{color:var(--secondary);flex-wrap:wrap;gap:8px 18px;margin:16px 0;font-size:12px;display:flex}.voilea-routing .vr-legend span{align-items:center;gap:7px;display:flex}.voilea-routing .vr-legend i{background:var(--vr-direct);border-radius:50%;width:8px;height:8px;display:inline-block}.voilea-routing .vr-legend [data-route=proxy] i{background:var(--vr-proxy)}.voilea-routing .vr-legend [data-route=block] i{background:var(--vr-block)}.voilea-routing .vr-results{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:12px 24px;margin:0;padding-top:16px;font-size:13px;line-height:1.5;display:grid}.voilea-routing .vr-results>div{justify-content:space-between;gap:12px;display:flex}.voilea-routing .vr-results dt{color:var(--secondary)}.voilea-routing .vr-results dd{white-space:nowrap;margin:0}.voilea-routing .vr-results [data-route=proxy]{color:var(--vr-proxy)}.voilea-routing .vr-results [data-route=block]{color:var(--vr-block)}.voilea-routing figcaption{color:var(--secondary);margin-top:16px;font-size:12px;line-height:1.6}@media (max-width:600px){.voilea-routing{padding:16px}.voilea-routing .vr-controls,.voilea-routing .vr-results{grid-template-columns:1fr}.voilea-routing .vr-header{font-size:11px}.voilea-routing .vr-svg{margin:12px 0}}@media (prefers-reduced-motion:reduce){.voilea-routing .vr-route,.voilea-routing .vr-module-led .iso-top{transition:none}.voilea-routing .vr-signal{visibility:hidden!important}}
.portaler-plotter{--anatomy-paper:#24282c;--anatomy-top:#363d42;--anatomy-shade-0:#111518;--anatomy-shade-1:#191e22;--anatomy-shade-2:#262c31;--anatomy-shade-3:#30363c;--anatomy-mid:#78848a;--anatomy-lo:#4c595f;--anatomy-faint:#384148;--anatomy-hi:#d2dddf;background:var(--pp-paper,#16171b);border:1px solid var(--line,#ffffff0f);color:var(--ink,#fafafa);border-radius:12px;margin:0;padding:22px;position:relative;overflow:hidden}.portaler-plotter .pp-header{justify-content:space-between;gap:20px;font-size:13px;font-weight:500;line-height:1.4;display:flex}.portaler-plotter .pp-kicker{letter-spacing:.09em;color:var(--secondary,#a3a3a3);font-size:11px}.portaler-plotter .pp-svg{width:100%;height:auto;margin:8px 0 18px;display:block;overflow:visible}.portaler-plotter .iso-fill{fill:var(--anatomy-paper)}.portaler-plotter .iso-top{fill:var(--anatomy-top)}.portaler-plotter .iso-shade[data-shade="0"]{fill:var(--anatomy-shade-0)}.portaler-plotter .iso-shade[data-shade="1"]{fill:var(--anatomy-shade-1)}.portaler-plotter .iso-shade[data-shade="2"]{fill:var(--anatomy-shade-2)}.portaler-plotter .iso-shade[data-shade="3"]{fill:var(--anatomy-shade-3)}.portaler-plotter .iso-line{fill:none;stroke:var(--anatomy-mid);stroke-width:.6px;stroke-linecap:round;stroke-linejoin:round}.portaler-plotter .iso-line[data-tone=faint]{stroke:var(--anatomy-faint)}.portaler-plotter .iso-line[data-tone=lo]{stroke:var(--anatomy-lo)}.portaler-plotter .iso-dots circle{fill:var(--anatomy-mid)}.portaler-plotter .iso-face-text{fill:var(--anatomy-mid);letter-spacing:.3px;font:3px sans-serif}.portaler-plotter .pp-rubber .iso-top{fill:#101315}.portaler-plotter .pp-map .iso-top{fill:#20272b}.portaler-plotter .pp-grid{fill:none;stroke:var(--anatomy-mid);stroke-width:.35px;opacity:.14}.portaler-plotter .pp-dial-index{fill:none;stroke:var(--pp-accent);stroke-width:.65px;stroke-linecap:round}.portaler-plotter .pp-track{fill:none;stroke:var(--anatomy-lo);stroke-width:1.25px;stroke-linecap:round;opacity:.32;transition:stroke .24s,opacity .24s}.portaler-plotter .pp-track[data-active=true]{stroke:var(--pp-accent);opacity:1}.portaler-plotter [data-pp-node]{cursor:pointer}.portaler-plotter [data-pp-node] .iso-edge{transition:stroke .22s}.portaler-plotter [data-on-route=true] .pp-lintel .iso-top{fill:color-mix(in srgb,var(--pp-accent) 48%,var(--anatomy-top))}.portaler-plotter [data-on-route=true] .pp-station .iso-edge{stroke:var(--pp-accent)}.portaler-plotter [data-hover=true] .iso-edge{stroke:var(--ink);stroke-width:1px}.portaler-plotter [data-pp-node]:focus-visible{outline:2px solid var(--pp-accent);outline-offset:4px}.portaler-plotter .pp-head-cap .iso-top,.portaler-plotter .pp-lens .iso-top{fill:var(--pp-accent)}.portaler-plotter .pp-beam{fill:none;stroke:var(--pp-accent);stroke-width:.8px;opacity:.35;pointer-events:none}.portaler-plotter .pp-spot{fill:var(--pp-accent);stroke:var(--pp-accent);stroke-width:3px;stroke-opacity:.15;pointer-events:none}.portaler-plotter[data-returning=true] :is(.pp-beam,.pp-spot){opacity:0}.portaler-plotter .pp-tooltip{top:var(--pp-tip-y);left:var(--pp-tip-x);background:var(--ink);width:max-content;max-width:190px;color:var(--ground,#0b0c0e);opacity:0;pointer-events:none;z-index:2;border-radius:8px;padding:8px 12px;font-size:12px;line-height:1.4;position:absolute;transform:translate(-50%,-100%)}.portaler-plotter[data-hover] .pp-tooltip{opacity:1}.portaler-plotter .pp-hint{color:var(--secondary);justify-content:space-between;align-items:center;gap:16px;font-size:12px;line-height:1.5;display:flex}.portaler-plotter .pp-hint>span{overflow-wrap:anywhere;min-width:0}.portaler-plotter .pp-hint button{text-underline-offset:3px;min-height:44px;font:inherit;color:var(--ink);background:0 0;border:0;flex-shrink:0;padding:0;text-decoration:underline}.portaler-plotter .pp-controls{grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);align-items:end;gap:12px;margin-top:16px;display:grid}.portaler-plotter .pp-controls label{min-width:0;color:var(--secondary);flex-direction:column;gap:8px;font-size:12px;display:flex}.portaler-plotter .pp-controls select{width:100%;min-width:0;min-height:44px;color:var(--ink);cursor:pointer;background:#202428;border:1px solid #ffffff18;border-radius:8px;padding:10px 12px;font-size:14px}.portaler-plotter .pp-swap{background:0 0;border:1px solid #ffffff18;border-radius:8px;height:44px;font-size:22px}.portaler-plotter .pp-readout{border-top:1px solid var(--line);color:var(--secondary);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:22px;padding-top:18px;font-size:12px;display:flex}.portaler-plotter .pp-legend{align-items:center;gap:7px;display:flex}.portaler-plotter .pp-legend i{background:var(--pp-accent);width:18px;height:2px}.portaler-plotter .pp-route{color:var(--ink);flex-wrap:wrap;gap:8px 0;margin:14px 0 0;padding:0;font-size:13px;line-height:1.6;list-style:none;display:flex}.portaler-plotter .pp-route li{overflow-wrap:anywhere;max-width:100%}.portaler-plotter .pp-route li+li:before{content:"→";color:var(--secondary);margin:0 10px;display:inline-block}.portaler-plotter figcaption{color:var(--secondary);margin:18px 0 0;font-size:12px;line-height:1.5}@media (max-width:600px){.portaler-plotter{padding:16px}.portaler-plotter .pp-controls{grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr);gap:8px}.portaler-plotter .pp-controls select{padding:10px 6px;font-size:16px}.portaler-plotter .pp-hint{align-items:flex-start;gap:8px}.portaler-plotter .pp-header{gap:8px;font-size:12px}}@media (max-width:480px){.portaler-plotter .pp-controls{grid-template-columns:minmax(0,1fr) 44px;gap:12px}.portaler-plotter .pp-controls label:first-child{grid-area:1/1}.portaler-plotter .pp-controls label:last-child{grid-area:2/1}.portaler-plotter .pp-swap{grid-area:1/2/span 2;align-self:center}.portaler-plotter .pp-controls select{padding:10px 12px}}@media (hover:none),(pointer:coarse){.portaler-plotter .pp-tooltip{display:none}}@media (prefers-reduced-motion:reduce){.portaler-plotter :is(.pp-track,.iso-edge){transition:none}}
