:root{color-scheme:light dark;--bg: #eef4fc;--fg: #1a1a1a;--card-bg: #fbfdff;--border: #dbe6f5;--muted: #6b7280;--accent: #2563eb;--ok: #16a34a;--warn: #d97706;--bad: #dc2626;--row-alt: #eef4fc;--row-hover: #dbeafe;--card-glow: none}:root[data-theme=dark]{--bg: #050b1a;--fg: #e0f2fe;--card-bg: #0d1830;--border: #2d5a8f;--muted: #93c5fd;--accent: #38bdf8;--row-alt: #0a1730;--row-hover: #16274a;--card-glow: 0 0 24px rgba(56, 189, 248, .12)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:-apple-system,Segoe UI,sans-serif}.app-shell{max-width:1100px;margin:0 auto;padding:0 20px 40px}header{padding:24px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}header a{color:inherit;text-decoration:none}.nav-links{display:flex;align-items:center;gap:16px}.nav-links a{color:var(--accent);font-size:.9rem;white-space:nowrap}h1{font-size:1.4rem;margin:0}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:500}tbody tr:nth-child(2n){background:var(--row-alt)}tbody tr:hover{background:var(--row-hover)}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:16px;box-shadow:var(--card-glow)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.8rem}.badge-ok{background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok)}.badge-warn{background:color-mix(in srgb,var(--warn) 15%,transparent);color:var(--warn)}.badge-bad{background:color-mix(in srgb,var(--bad) 15%,transparent);color:var(--bad)}button{font:inherit;padding:6px 12px;border-radius:6px;border:1px solid var(--border);background:var(--card-bg);color:var(--fg);cursor:pointer}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button:disabled{opacity:.5;cursor:not-allowed}a.export-link{color:var(--accent);text-decoration:none}.qr-fallback[data-v-db44367e]{display:inline-flex;align-items:center;justify-content:center;aspect-ratio:1;border:1px dashed var(--border);border-radius:4px;cursor:pointer;font-size:.9em;vertical-align:middle}.modal[data-v-db44367e]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;cursor:zoom-out}.modal img[data-v-db44367e]{width:min(80vw,400px);background:#fff;border-radius:8px;padding:16px}.banner[data-v-54cdeec4]{display:flex;align-items:center;gap:8px;padding:8px 0}.detail[data-v-54cdeec4]{color:var(--muted);font-size:.85rem}.stats-wrap[data-v-69761df6]{display:inline-flex;gap:16px;flex-wrap:wrap}.stat[data-v-69761df6]{color:var(--muted);font-size:.85rem;white-space:nowrap}.stat.stat-warn[data-v-69761df6]{color:var(--warn)}.stat.stat-bad[data-v-69761df6]{color:var(--bad);font-weight:600}.card[data-v-7b6bbd39]{transition:box-shadow .15s ease,transform .15s ease}.card[data-v-7b6bbd39]:hover{box-shadow:0 2px 10px #00000014;transform:translateY(-1px)}.row[data-v-7b6bbd39]{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.identity[data-v-7b6bbd39]{display:flex;align-items:center;gap:10px;min-width:160px}.status-dot[data-v-7b6bbd39]{display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0}.status-dot.dot-ok[data-v-7b6bbd39]{background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 20%,transparent)}.status-dot.dot-bad[data-v-7b6bbd39]{background:var(--bad);box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 20%,transparent)}.names[data-v-7b6bbd39]{display:flex;flex-direction:column;line-height:1.3}.label[data-v-7b6bbd39]{font-size:1.05rem;font-weight:600}.nickname[data-v-7b6bbd39]{color:var(--muted);font-size:.85rem}.badges[data-v-7b6bbd39]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hint[data-v-7b6bbd39]{color:var(--muted);font-size:.8rem}.summary[data-v-7b6bbd39]{display:flex;gap:16px;color:var(--muted);font-size:.9rem;flex-wrap:wrap}.summary b[data-v-7b6bbd39]{color:var(--fg);font-weight:600}.detail-link[data-v-7b6bbd39]{margin-left:auto;color:var(--accent);text-decoration:none;font-size:.9rem;white-space:nowrap}.sub-row[data-v-7b6bbd39]{display:flex;gap:16px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--border)}.toolbar[data-v-109f7c13]{display:flex;gap:8px;margin-bottom:16px}.stack[data-v-109f7c13]{display:flex;flex-direction:column;gap:10px}.stack[data-v-109f7c13]>.card:nth-child(2n){background:var(--row-alt)}.error[data-v-109f7c13]{color:var(--bad)}.empty[data-v-fc4f6de3],.hint[data-v-fc4f6de3]{color:var(--muted);font-size:.85rem}.error[data-v-fc4f6de3]{color:var(--bad);font-size:.9rem}.empty[data-v-268461be],.empty[data-v-203c5db1],.hint[data-v-203c5db1]{color:var(--muted);font-size:.9rem}.error[data-v-203c5db1]{color:var(--bad);font-size:.9rem}.head[data-v-5712b4e3]{display:flex;align-items:center;justify-content:space-between}h2[data-v-5712b4e3]{display:flex;align-items:center;gap:8px}.nickname[data-v-5712b4e3]{color:var(--muted);font-weight:400;font-size:.9rem}section[data-v-5712b4e3]{margin-top:20px}h3[data-v-5712b4e3]{font-size:.95rem;color:var(--muted);margin-bottom:6px}.hint[data-v-5712b4e3]{color:var(--muted);font-size:.85rem}h2[data-v-8eb546ad]{font-size:1.1rem;margin:0 0 12px}.capture-row[data-v-8eb546ad]{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px;padding-bottom:14px;border-bottom:1px dashed var(--border)}.store-form[data-v-8eb546ad]{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin-top:10px}.store-form label[data-v-8eb546ad]{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--muted)}.store-form input[data-v-8eb546ad]{font:inherit;padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--card-bg);color:var(--fg);min-width:160px}.pending-capture[data-v-8eb546ad]{display:flex;flex-direction:column;gap:4px;align-items:start}.note[data-v-8eb546ad]{color:var(--muted);font-size:.85rem;max-width:220px}.empty[data-v-8eb546ad]{color:var(--muted);font-size:.9rem}.hint[data-v-8eb546ad]{color:var(--muted);font-size:.85rem}.error[data-v-8eb546ad]{color:var(--bad);font-size:.85rem}select[data-v-8eb546ad]{font:inherit;padding:4px 8px;border-radius:6px;border:1px solid var(--border);background:var(--card-bg);color:var(--fg)}button.danger[data-v-8eb546ad]{border-color:var(--bad);color:var(--bad)}button.danger[data-v-8eb546ad]:not(:disabled):hover{background:color-mix(in srgb,var(--bad) 12%,transparent)}h2[data-v-2ca72353]{font-size:1.1rem;margin:0 0 12px}.user-form[data-v-2ca72353]{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin-top:10px}.user-form label[data-v-2ca72353]{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--muted)}.user-form input[data-v-2ca72353],.user-form select[data-v-2ca72353]{font:inherit;padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--card-bg);color:var(--fg);min-width:160px}.empty[data-v-2ca72353]{color:var(--muted);font-size:.9rem}.hint[data-v-2ca72353]{color:var(--muted);font-size:.85rem}.error[data-v-2ca72353]{color:var(--bad);font-size:.85rem}.login-page[data-v-c4d5256f]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#020614}.matrix-canvas[data-v-c4d5256f]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;display:block}.login-wrap[data-v-c4d5256f]{position:relative;z-index:1}.login-card[data-v-c4d5256f]{width:300px;display:flex;flex-direction:column;gap:14px;padding:32px 28px;border-radius:12px;background:#08142d80;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border:1px solid rgba(56,189,248,.35);box-shadow:0 0 40px #38bdf826,0 20px 60px #00000080;color:#e0f2fe}h2[data-v-c4d5256f]{margin:0;font-size:1.3rem;text-align:center;font-family:SF Mono,Consolas,monospace;color:#7dd3fc;text-shadow:0 0 12px rgba(125,211,252,.6)}.subtitle[data-v-c4d5256f]{margin:-8px 0 4px;text-align:center;font-size:.85rem;color:#93c5fd}label[data-v-c4d5256f]{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:#93c5fd}input[data-v-c4d5256f]{font:inherit;font-family:SF Mono,Consolas,monospace;padding:8px 10px;border-radius:6px;border:1px solid rgba(56,189,248,.4);background:#020a1e99;color:#e0f2fe}input[data-v-c4d5256f]:focus{outline:none;border-color:#7dd3fc;box-shadow:0 0 8px #7dd3fc80}button.primary[data-v-c4d5256f]{background:#2563ebd9;border-color:#2563ebd9}button.primary[data-v-c4d5256f]:hover:not(:disabled){background:#2563eb}.error[data-v-c4d5256f]{color:#fca5a5;font-size:.85rem;margin:0;text-align:center}.topology-page[data-v-035afd9d]{padding-top:8px;overflow-x:auto}.head-row[data-v-035afd9d]{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:8px}h2[data-v-035afd9d]{margin:0;font-size:1.15rem}.hint[data-v-035afd9d]{color:var(--muted);font-size:.85rem}.err[data-v-035afd9d]{color:var(--bad);font-size:.9rem}.legend[data-v-035afd9d]{display:flex;gap:18px;margin:10px 0 16px;font-size:.85rem;color:var(--muted)}.legend .dot[data-v-035afd9d]{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.canvas[data-v-035afd9d]{position:relative;aspect-ratio:960 / 540;min-width:640px;overflow:hidden;padding:0}.lines[data-v-035afd9d]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.node[data-v-035afd9d]{position:absolute;transform:translate(-50%,-50%);text-align:center;box-sizing:border-box}.relay-station[data-v-035afd9d]{display:flex;flex-direction:column;align-items:center;justify-content:center;width:12.5%;height:12.963%;transition:opacity .3s ease}.relay-station.dim[data-v-035afd9d]{opacity:.35}.relay-icon[data-v-035afd9d]{font-size:1.6rem;line-height:1}.relay-name[data-v-035afd9d]{font-size:.75rem;color:var(--muted);margin-top:2px}.relay-region[data-v-035afd9d]{font-size:.7rem;color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,transparent);border-radius:999px;padding:1px 8px;margin-top:2px}.hub-node[data-v-035afd9d]{display:flex;flex-direction:column;align-items:center;justify-content:center;width:13.542%;height:16.667%;background:var(--card-bg);border:1.5px solid var(--accent);border-radius:12px;box-shadow:var(--card-glow)}.hub-icon[data-v-035afd9d]{font-size:1.5rem;line-height:1}.hub-name[data-v-035afd9d]{font-weight:700;font-size:1rem;margin-top:2px}.hub-role[data-v-035afd9d]{font-size:.75rem;color:var(--muted)}.machine-node[data-v-035afd9d]{width:16.458%;height:27.778%;display:flex;flex-direction:column;justify-content:center;background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;box-shadow:var(--card-glow)}.row1[data-v-035afd9d]{display:flex;align-items:center;gap:6px;justify-content:center}.status-dot[data-v-035afd9d]{width:9px;height:9px;border-radius:50%;flex-shrink:0}.label[data-v-035afd9d]{font-weight:600;font-size:.95rem}.conn-text[data-v-035afd9d]{font-size:.78rem;margin-top:3px}.ip[data-v-035afd9d]{font-size:.75rem;color:var(--muted);margin-top:2px;font-family:ui-monospace,monospace}.machine-node .badge[data-v-035afd9d]{margin-top:6px}.detail-link[data-v-035afd9d]{display:block;margin-top:6px;color:var(--accent);text-decoration:none;font-size:.78rem}
