*{box-sizing:border-box}:root{--bg: #0d1117;--bg-card: #161b22;--border: #30363d;--text: #f0f6fc;--text-muted: #9ca3af;--accent: #58a6ff;--success: #3fb950;--warn: #d29922;--danger: #f85149;--font-sans: "Outfit", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}#app{min-height:100vh}.login[data-v-17402281]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(135deg,#0f172a,#1e293b 35%,#0d1117);position:relative}.bg-pattern[data-v-17402281]{position:fixed;top:0;right:0;bottom:0;left:0;opacity:.35;background-image:radial-gradient(circle at 1px 1px,#334155 1px,transparent 0);background-size:24px 24px;pointer-events:none}.card[data-v-17402281]{position:relative;background:linear-gradient(180deg,#1e293b,#161b22);border:1px solid #334155;border-radius:16px;padding:2.25rem;width:100%;max-width:380px;box-shadow:0 25px 50px -12px #00000080,0 0 0 1px #94a3b80d}.brand[data-v-17402281]{margin-bottom:1.75rem;display:flex;flex-direction:column;align-items:center;gap:.75rem}.logo-img[data-v-17402281]{display:block}.logo[data-v-17402281]{font-size:1.6rem;font-weight:700;letter-spacing:-.02em;color:#f8fafc}.step[data-v-17402281],.step+form[data-v-17402281]{margin-top:0}.step[data-v-17402281]{color:#94a3b8;font-size:.9rem;margin-bottom:1rem}form[data-v-17402281]{display:flex;flex-direction:column;gap:.9rem}input[data-v-17402281]{background:#0d1117;border:1px solid #30363d;border-radius:8px;color:#f0f6fc;padding:.65rem .9rem;font:inherit;transition:border-color .15s,box-shadow .15s}input[data-v-17402281]::placeholder{color:#64748b}input[data-v-17402281]:focus{outline:none;border-color:#38bdf8;box-shadow:0 0 0 3px #38bdf840}button.prim[data-v-17402281],form button[type=submit][data-v-17402281]{background:linear-gradient(180deg,#0ea5e9,#0284c7);color:#fff;border:none;border-radius:10px;padding:.75rem;font:inherit;font-weight:600;cursor:pointer;margin-top:.15rem;box-shadow:0 4px 14px #0ea5e959}button.prim[data-v-17402281]:hover:not(:disabled),form button[type=submit][data-v-17402281]:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 4px 18px #0ea5e973}button[data-v-17402281]:disabled{opacity:.6;cursor:not-allowed}button.link[data-v-17402281]{background:none;color:#94a3b8;font-weight:400;margin-top:.35rem;font-size:.9rem}button.link[data-v-17402281]:hover:not(:disabled){color:#38bdf8;text-decoration:none}.err[data-v-17402281]{color:#f87171;font-size:.85rem;margin:0}.secure-note[data-v-17402281]{color:#64748b;font-size:.7rem;margin:1rem 0 0;text-align:center}.list[data-v-61c68b8c]{min-height:120px}.empty[data-v-61c68b8c]{color:var(--text-muted)}.cards[data-v-61c68b8c]{display:flex;flex-direction:column;gap:1rem}.card[data-v-61c68b8c]{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem 1.5rem}.peer-header[data-v-61c68b8c]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.name[data-v-61c68b8c]{font-weight:600;font-size:1.05rem}.header-right[data-v-61c68b8c]{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.tg[data-v-61c68b8c]{width:36px;height:20px;padding:0;border:1px solid var(--border);border-radius:10px;background:var(--bg);cursor:pointer;position:relative;flex-shrink:0}.tg .tg-dot[data-v-61c68b8c]{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--text-muted);transition:transform .2s}.tg.on .tg-dot[data-v-61c68b8c]{transform:translate(16px);background:var(--success, #3fb950)}.tg.on[data-v-61c68b8c]{background:#3fb95026;border-color:var(--success, #3fb950)}.badge[data-v-61c68b8c]{font-size:.7rem;padding:.2rem .5rem;border-radius:4px}.badge.connected[data-v-61c68b8c]{background:#3fb95033;color:var(--success, #3fb950)}.badge.disconnected[data-v-61c68b8c],.badge.off[data-v-61c68b8c]{background:#8b949e33;color:var(--text-muted)}.peer-meta[data-v-61c68b8c]{font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted);margin-bottom:.5rem}.peer-stats[data-v-61c68b8c]{font-size:.9rem;color:var(--text-muted);display:flex;gap:1rem;flex-wrap:wrap}.peer-actions[data-v-61c68b8c]{display:flex;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.peer-actions button[data-v-61c68b8c]{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:.35rem .6rem;border-radius:6px;font:inherit;font-size:.8rem;cursor:pointer}.peer-actions button[data-v-61c68b8c]:hover{color:var(--text)}.peer-actions .del[data-v-61c68b8c]:hover{border-color:var(--danger);color:var(--danger)}.overlay[data-v-b6ff48f9]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal[data-v-b6ff48f9]{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;width:100%;max-width:400px}.top[data-v-b6ff48f9]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}h3[data-v-b6ff48f9]{margin:0;font-size:1.1rem}.x[data-v-b6ff48f9]{background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:0 .25rem}.x[data-v-b6ff48f9]:hover{color:var(--text)}form[data-v-b6ff48f9]{display:flex;flex-direction:column;gap:.5rem}label[data-v-b6ff48f9]{font-size:.9rem}.hint[data-v-b6ff48f9]{color:var(--text-muted);font-weight:400}input[data-v-b6ff48f9],select[data-v-b6ff48f9]{background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:.5rem .75rem;font:inherit}select[data-v-b6ff48f9]{cursor:pointer}.err[data-v-b6ff48f9]{color:var(--danger);font-size:.85rem;margin:.25rem 0 0}.btns[data-v-b6ff48f9]{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.btns button[data-v-b6ff48f9]{padding:.5rem 1rem;border-radius:8px;font:inherit;cursor:pointer;border:none;background:var(--accent);color:#fff}.btns .sec[data-v-b6ff48f9]{background:transparent;border:1px solid var(--border);color:var(--text-muted)}.btns .sec[data-v-b6ff48f9]:hover{color:var(--text)}.btns button[data-v-b6ff48f9]:disabled{opacity:.7}.overlay[data-v-38f12c92]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal[data-v-38f12c92]{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;width:100%;max-width:400px}.top[data-v-38f12c92]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}h3[data-v-38f12c92]{margin:0;font-size:1.1rem}.x[data-v-38f12c92]{background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:0 .25rem}.x[data-v-38f12c92]:hover{color:var(--text)}form[data-v-38f12c92]{display:flex;flex-direction:column;gap:.5rem}label[data-v-38f12c92]{font-size:.9rem}.hint[data-v-38f12c92]{color:var(--text-muted);font-weight:400}input[data-v-38f12c92]{background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:.5rem .75rem;font:inherit}.err[data-v-38f12c92]{color:var(--danger);font-size:.85rem;margin:.25rem 0 0}.btns[data-v-38f12c92]{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.btns button[data-v-38f12c92]{padding:.5rem 1rem;border-radius:8px;font:inherit;cursor:pointer;border:none;background:var(--accent);color:#fff}.btns .sec[data-v-38f12c92]{background:transparent;border:1px solid var(--border);color:var(--text-muted)}.btns .sec[data-v-38f12c92]:hover{color:var(--text)}.btns button[data-v-38f12c92]:disabled{opacity:.7}.overlay[data-v-c340f284]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal[data-v-c340f284]{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;text-align:center}.top[data-v-c340f284]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}h3[data-v-c340f284]{margin:0;font-size:1.1rem}.x[data-v-c340f284]{background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer}.qr[data-v-c340f284]{max-width:340px;width:100%;height:auto;display:block;margin:0 auto}.err[data-v-c340f284]{color:var(--danger)}.muted[data-v-c340f284],.hint[data-v-c340f284]{color:var(--text-muted);font-size:.9rem}.dash[data-v-78cbe2b7]{min-height:100vh}header[data-v-78cbe2b7]{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#1e293b 0%,var(--bg-card) 100%)}.logo[data-v-78cbe2b7]{font-weight:700;font-size:1.15rem;color:var(--text);text-decoration:none;letter-spacing:-.02em}.right[data-v-78cbe2b7]{display:flex;align-items:center;gap:1rem}.sett[data-v-78cbe2b7]{color:var(--text-muted);font-size:.9rem;text-decoration:none}.sett[data-v-78cbe2b7]:hover{color:var(--text)}.user[data-v-78cbe2b7]{color:var(--text-muted);font-size:.9rem}.out[data-v-78cbe2b7]{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:.4rem .75rem;border-radius:6px;font:inherit;cursor:pointer}.out[data-v-78cbe2b7]:hover{color:var(--text);border-color:var(--text-muted)}main[data-v-78cbe2b7]{padding:1.5rem;max-width:1000px;margin:0 auto}.metrics[data-v-78cbe2b7]{display:flex;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.metrics .m[data-v-78cbe2b7]{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.85rem 1.25rem;min-width:100px;box-shadow:0 1px 3px #0003}.metrics .m-v[data-v-78cbe2b7]{display:block;font-size:1.3rem;font-weight:700;font-family:var(--font-mono);color:var(--text)}.metrics .m-l[data-v-78cbe2b7]{font-size:.8rem;color:var(--text-muted)}.intro[data-v-78cbe2b7]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.intro-acts[data-v-78cbe2b7]{display:flex;align-items:center;gap:.5rem}.tab[data-v-78cbe2b7]{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:.4rem .75rem;border-radius:8px;font:inherit;cursor:pointer}.tab[data-v-78cbe2b7]:hover{color:var(--text)}.tab.active[data-v-78cbe2b7]{background:#58a6ff26;border-color:var(--accent);color:var(--accent)}.perpeer-table[data-v-78cbe2b7]{overflow-x:auto;margin-bottom:1rem}.perpeer-table .activity-note[data-v-78cbe2b7]{color:var(--text-muted);font-size:.8rem;margin:0 0 .75rem}.perpeer-table table[data-v-78cbe2b7]{width:100%;border-collapse:collapse;font-size:.9rem}.perpeer-table th[data-v-78cbe2b7],.perpeer-table td[data-v-78cbe2b7]{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.perpeer-table th[data-v-78cbe2b7]{color:var(--text-muted);font-weight:500}.perpeer-table .st[data-v-78cbe2b7]{font-size:.8rem}.perpeer-table .st.co[data-v-78cbe2b7]{color:var(--success)}.perpeer-table .st.off[data-v-78cbe2b7]{color:var(--text-muted)}.perpeer-table .link[data-v-78cbe2b7]{background:none;border:none;color:var(--accent);cursor:pointer;font:inherit;font-size:.85rem;padding:0}.perpeer-table .link[data-v-78cbe2b7]:hover{text-decoration:underline}h2[data-v-78cbe2b7]{margin:0;font-size:1.25rem;font-weight:600}.prim[data-v-78cbe2b7]{background:var(--accent);color:#fff;border:none;padding:.5rem 1rem;border-radius:8px;font:inherit;font-weight:500;cursor:pointer}.prim[data-v-78cbe2b7]:hover{filter:brightness(1.1)}@media (max-width: 768px){header[data-v-78cbe2b7]{padding:.5rem 1rem;flex-wrap:wrap;gap:.5rem}.right[data-v-78cbe2b7]{flex-wrap:wrap}.user[data-v-78cbe2b7]{display:none}main[data-v-78cbe2b7]{padding:1rem}.metrics[data-v-78cbe2b7]{gap:.5rem}.metrics .m[data-v-78cbe2b7]{min-width:80px;padding:.6rem .9rem}.metrics .m-v[data-v-78cbe2b7]{font-size:1.1rem}.intro[data-v-78cbe2b7]{flex-direction:column;align-items:stretch}.intro-acts[data-v-78cbe2b7]{flex-wrap:wrap}.tab[data-v-78cbe2b7],.prim[data-v-78cbe2b7]{flex:1;min-width:0}.perpeer-table[data-v-78cbe2b7]{font-size:.8rem}.perpeer-table th[data-v-78cbe2b7],.perpeer-table td[data-v-78cbe2b7]{padding:.4rem .5rem}}@media (max-width: 480px){.metrics .m[data-v-78cbe2b7]{min-width:70px}}.dash[data-v-89ed2b9f]{min-height:100vh}header[data-v-89ed2b9f]{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-bottom:1px solid var(--border);background:var(--bg-card)}.logo[data-v-89ed2b9f]{font-weight:600;font-size:1.1rem;color:inherit;text-decoration:none}.right[data-v-89ed2b9f]{display:flex;align-items:center;gap:1rem}.sett[data-v-89ed2b9f]{color:var(--text-muted);font-size:.9rem;text-decoration:none}.sett[data-v-89ed2b9f]:hover{color:var(--text)}.user[data-v-89ed2b9f]{color:var(--text-muted);font-size:.9rem}.out[data-v-89ed2b9f]{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:.4rem .75rem;border-radius:6px;font:inherit;cursor:pointer}main[data-v-89ed2b9f]{padding:1.5rem;max-width:600px;margin:0 auto}h2[data-v-89ed2b9f]{margin:0 0 1rem;font-size:1.25rem}.card[data-v-89ed2b9f]{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1.25rem}.card+.card[data-v-89ed2b9f]{margin-top:1rem}.card>p.muted[data-v-89ed2b9f]{color:var(--text-muted);font-size:.9rem;margin:0 0 .5rem}h3[data-v-89ed2b9f]{margin:0 0 .75rem;font-size:1rem}.pw-form .muted[data-v-89ed2b9f]{margin-bottom:.5rem}.pw-form input[data-v-89ed2b9f]{width:100%;max-width:280px;margin:.25rem 0;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem;font:inherit;color:var(--text)}.pw-form .row[data-v-89ed2b9f]{margin-top:.75rem}.pw-form button[data-v-89ed2b9f]{background:var(--accent);color:#fff;border:none;padding:.5rem 1rem;border-radius:8px;font:inherit;cursor:pointer}.pw-form button[data-v-89ed2b9f]:disabled{opacity:.7;cursor:not-allowed}.card .status[data-v-89ed2b9f]{color:var(--text);font-size:.9rem;margin:.5rem 0 0}.card .status.ok[data-v-89ed2b9f]{color:var(--success, #3fb950)}.totp[data-v-89ed2b9f]{margin:.5rem 0}.totp .status[data-v-89ed2b9f]{color:var(--text);font-size:.9rem;margin:0 0 .5rem}.totp .status.ok[data-v-89ed2b9f]{color:var(--success, #3fb950)}.totp .muted[data-v-89ed2b9f]{color:var(--text-muted);font-size:.9rem;margin:0 0 .75rem}.totp .qr[data-v-89ed2b9f]{display:block;margin:.5rem 0;max-width:180px}.totp .hint[data-v-89ed2b9f]{font-size:.85rem;color:var(--text-muted);margin:.5rem 0 .25rem}.totp input[data-v-89ed2b9f]{width:100%;max-width:140px;margin:.25rem 0;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem;font:inherit;color:var(--text)}.totp input[data-v-89ed2b9f]::placeholder{color:var(--text-muted)}.totp .row[data-v-89ed2b9f]{display:flex;gap:.5rem;margin-top:.75rem}.totp .sec[data-v-89ed2b9f]{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:.5rem 1rem;border-radius:8px;font:inherit;cursor:pointer}.totp .sec[data-v-89ed2b9f]:hover{color:var(--text)}.totp .link[data-v-89ed2b9f]{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;font:inherit;text-decoration:underline}.totp button[data-v-89ed2b9f]:not(.sec){background:var(--accent);color:#fff;border:none;padding:.5rem 1rem;border-radius:8px;font:inherit;cursor:pointer}.totp button[data-v-89ed2b9f]:disabled{opacity:.7;cursor:not-allowed}.totp .err[data-v-89ed2b9f]{color:var(--danger);font-size:.85rem;margin:.5rem 0 0}.server .field[data-v-89ed2b9f]{margin:.75rem 0}.server label[data-v-89ed2b9f]{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:.25rem}.server .mono[data-v-89ed2b9f]{font-family:var(--font-mono);font-size:.85rem;word-break:break-all}.server .ep-row[data-v-89ed2b9f]{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.server input[data-v-89ed2b9f]{flex:1;min-width:180px;max-width:320px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem;font:inherit;color:var(--text)}.server input[data-v-89ed2b9f]::placeholder{color:var(--text-muted)}.server .save[data-v-89ed2b9f]{background:var(--accent);color:#fff;border:none;padding:.5rem 1rem;border-radius:8px;font:inherit;cursor:pointer}.server .save[data-v-89ed2b9f]:disabled{opacity:.6;cursor:not-allowed}.server .err[data-v-89ed2b9f]{color:var(--danger);font-size:.85rem;margin:.5rem 0 0}
