.diagram-container.svelte-1h5abdp{background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;padding:16px;position:relative;overflow:hidden}.controls-overlay.svelte-1h5abdp{z-index:10;background:color-mix(in srgb, var(--card-bg) 90%, transparent);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:4px;max-width:200px;padding:8px 10px;display:flex;position:absolute;top:12px;right:12px}.control-group.svelte-1h5abdp{flex-direction:column;gap:3px;display:flex}.group-label.svelte-1h5abdp{text-transform:uppercase;letter-spacing:.5px;color:var(--text);opacity:.5;padding:2px 0;font-size:10px;font-weight:700}.control-btn.svelte-1h5abdp{border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.control-btn.svelte-1h5abdp:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.control-btn.svelte-1h5abdp:disabled{opacity:.35;cursor:not-allowed}.control-btn.state-ok.svelte-1h5abdp{border-color:var(--green);color:var(--green);background:var(--green-light)}.control-btn.state-ok.svelte-1h5abdp:hover{color:#047857;border-color:#047857}.control-btn.state-broken.svelte-1h5abdp{color:#ef4444;background:color-mix(in srgb, var(--error-red) 15%, var(--card-bg));border-color:#ef4444}.control-btn.state-broken.svelte-1h5abdp:hover{color:#dc2626;border-color:#dc2626}.control-divider.svelte-1h5abdp{background:var(--border);height:1px;margin:2px 0}.control-status.svelte-1h5abdp{border-top:1px solid var(--border);color:var(--text);text-align:center;padding:4px 0 0;font-size:11px;font-weight:600;line-height:1.3}.control-status.degraded.svelte-1h5abdp{color:#dc2626}.status-alert.svelte-1h5abdp{font-weight:700;display:block}.status-detail.svelte-1h5abdp{color:var(--text);font-weight:500;display:block}.diagram-svg.svelte-1h5abdp{width:100%;height:auto;color:var(--accent)}.legend.svelte-1h5abdp{justify-content:center;gap:24px;padding:12px 0 0;display:flex}.legend-item.svelte-1h5abdp{color:var(--text);align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.legend-icon.svelte-1h5abdp{flex-shrink:0}.legend-blue-icon.svelte-1h5abdp{color:var(--accent)}.legend-dot.svelte-1h5abdp{border-radius:50%;flex-shrink:0;width:14px;height:14px}.vpn-line.svelte-1h5abdp{stroke:var(--accent);stroke-width:1.5px;opacity:.4}.vpn-direct-line.svelte-1h5abdp{stroke:var(--accent);stroke-width:1.5px;opacity:.35}.vpn-label.svelte-1h5abdp{fill:var(--accent);text-anchor:middle;opacity:.45;font-size:12px;font-weight:600}.https-line.svelte-1h5abdp{stroke:var(--green);stroke-width:2px;stroke-dasharray:8 4;opacity:.45;animation:1.5s linear infinite svelte-1h5abdp-dash}@keyframes svelte-1h5abdp-dash{to{stroke-dashoffset:-12px}}.https-label.svelte-1h5abdp{fill:var(--green);text-anchor:middle;opacity:.5;font-size:12px;font-weight:600}.wan-conn.svelte-1h5abdp{stroke-width:2.5px;stroke-linecap:round}.wan-ftto.svelte-1h5abdp{stroke-width:4px}.wan-4g.svelte-1h5abdp{stroke-dasharray:8 4}.wan-line-active.svelte-1h5abdp{stroke:var(--green);stroke-dasharray:none;opacity:.7}.wan-line-standby.svelte-1h5abdp{stroke:var(--border);stroke-dasharray:6 4;opacity:.4}.wan-line-failed.svelte-1h5abdp{stroke:#ef4444;stroke-dasharray:6 4;opacity:.8;animation:.5s ease-in-out infinite svelte-1h5abdp-blink}@keyframes svelte-1h5abdp-blink{0%,to{opacity:.8}50%{opacity:.2}}.wan-conn-label.svelte-1h5abdp{fill:var(--text);text-anchor:middle;opacity:.55;font-size:12px;font-weight:600}.node.svelte-1h5abdp{cursor:pointer}.node-bg.svelte-1h5abdp{fill:var(--accent-light);stroke:var(--accent);stroke-width:2px;transition:fill .15s}.node.svelte-1h5abdp:hover .node-bg:where(.svelte-1h5abdp){fill:var(--accent)}.hub-bg.svelte-1h5abdp{fill:var(--accent-light);stroke:var(--accent);stroke-width:2.5px}.node.svelte-1h5abdp:hover .hub-bg:where(.svelte-1h5abdp){fill:var(--accent)}.shield-passive.svelte-1h5abdp{color:var(--bg-muted);opacity:.4}.shield-active.svelte-1h5abdp{color:var(--accent)}.shield-failed.svelte-1h5abdp{color:#ef4444;animation:.5s ease-in-out infinite svelte-1h5abdp-blink}.fw-failed.svelte-1h5abdp{animation:.5s ease-in-out infinite svelte-1h5abdp-blink;stroke:#ef4444!important;fill:#fef2f2!important}.fw-standby.svelte-1h5abdp{stroke:#d1d5db!important;fill:#f9fafb!important}.site-bg.svelte-1h5abdp{fill:var(--accent-light);stroke:var(--accent);stroke-width:2px}.node.svelte-1h5abdp:hover .site-bg:where(.svelte-1h5abdp){fill:var(--accent)}.remote-bg.svelte-1h5abdp{fill:var(--surface);stroke:var(--surface-stroke)}.node.svelte-1h5abdp:hover .remote-bg:where(.svelte-1h5abdp){fill:var(--surface-stroke)}.user-bg.svelte-1h5abdp{fill:var(--surface);stroke:var(--surface-stroke);stroke-width:2px}.node.svelte-1h5abdp:hover .user-bg:where(.svelte-1h5abdp){fill:var(--surface-stroke)}.node.svelte-1h5abdp:hover{color:#fff}.node-dark.svelte-1h5abdp{color:var(--surface-stroke)}.node-dark.svelte-1h5abdp:hover{color:#fff}.node-label.svelte-1h5abdp{fill:var(--text-h);text-anchor:middle;font-size:15px;font-weight:600}.hub-label.svelte-1h5abdp{fill:var(--accent-dark);font-size:16px}.server-node.svelte-1h5abdp{cursor:default}.server-link.svelte-1h5abdp{stroke:var(--accent);stroke-width:1.5px;opacity:.3}.server-label.svelte-1h5abdp{fill:var(--text);text-anchor:middle;font-size:12px;font-weight:600}.particle-blue.svelte-1h5abdp{fill:var(--accent)}.particle-green.svelte-1h5abdp{fill:var(--green)}.particle-red.svelte-1h5abdp{fill:#ef4444}.particle-glow.svelte-1h5abdp{fill:none}.particle-blue-glow.svelte-1h5abdp{stroke:var(--accent);stroke-width:2px;opacity:.3;animation:.6s ease-in-out infinite svelte-1h5abdp-pulse}.particle-green-glow.svelte-1h5abdp{stroke:var(--green);stroke-width:2px;opacity:.3}.particle-red-glow.svelte-1h5abdp{stroke:#ef4444;stroke-width:2px;opacity:.3;animation:.6s ease-in-out infinite svelte-1h5abdp-pulse}.particle-orange.svelte-1h5abdp{fill:#f97316}.particle-orange-glow.svelte-1h5abdp{stroke:#f97316;stroke-width:2px;opacity:.3;animation:.6s ease-in-out infinite svelte-1h5abdp-pulse}.port-badge-text.svelte-1h5abdp{fill:#fff;font-size:11px;font-weight:700}.backup-bg.svelte-1h5abdp{fill:#fff7ed;stroke:#f97316;stroke-width:2px}.backup-label.svelte-1h5abdp{fill:#f97316}.backup-line.svelte-1h5abdp{stroke:#f97316;stroke-width:2.5px;opacity:.7}.backup-line-wan.svelte-1h5abdp{stroke:#f97316;stroke-width:2px;stroke-dasharray:8 4;opacity:.5}@keyframes svelte-1h5abdp-pulse{0%,to{opacity:.3}50%{opacity:.1}}.tooltip.svelte-1h5abdp{z-index:20;background:var(--card-bg);border:1px solid var(--accent);box-shadow:var(--shadow);opacity:0;pointer-events:none;border-radius:12px;min-width:180px;padding:16px 20px;transition:opacity .15s,transform .15s;position:absolute;top:16px;right:16px;transform:translateY(-4px)}.tooltip-dark.svelte-1h5abdp{border-color:var(--surface-stroke)}.tooltip-left.svelte-1h5abdp{left:16px;right:auto}.tooltip.visible.svelte-1h5abdp{opacity:1;transform:translateY(0)}.tooltip.svelte-1h5abdp strong:where(.svelte-1h5abdp){color:var(--text-h);margin-bottom:6px;font-size:15px;display:block}.tooltip.svelte-1h5abdp p:where(.svelte-1h5abdp){color:var(--text);margin:0 0 8px;font-size:13px}.tooltip.svelte-1h5abdp ul:where(.svelte-1h5abdp){margin:0;padding:0;list-style:none}.tooltip.svelte-1h5abdp li:where(.svelte-1h5abdp){color:var(--text);padding:3px 0 3px 18px;font-size:13px;position:relative}.tooltip.svelte-1h5abdp li:where(.svelte-1h5abdp):before{content:"→";color:var(--accent);font-weight:700;position:absolute;left:0}.tooltip-devices.svelte-1h5abdp{gap:16px;margin:8px 0 6px;display:flex}.tooltip-device.svelte-1h5abdp{flex-direction:column;align-items:center;gap:4px;display:flex}.tooltip-device.svelte-1h5abdp span:where(.svelte-1h5abdp){color:var(--text);font-size:13px;font-weight:600}.tooltip-icon.svelte-1h5abdp{background:var(--accent-light);width:28px;height:28px;color:var(--accent);border-radius:8px;padding:4px}.tooltip-badge.svelte-1h5abdp{border-radius:6px;margin-top:4px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.cluster-badge.svelte-1h5abdp{background:var(--accent-light);color:var(--accent-dark)}.wan-badge.svelte-1h5abdp{background:var(--green-light);color:var(--green)}@media (width<=700px){.tooltip.svelte-1h5abdp{min-width:auto;inset:auto 8px 8px}.controls-overlay.svelte-1h5abdp{flex-flow:wrap;max-width:100%;margin-bottom:8px;position:relative;top:auto;right:auto}.control-group.svelte-1h5abdp{flex-flow:wrap;gap:4px}.control-divider.svelte-1h5abdp{width:1px;height:auto;margin:0 4px}}
