.login-page[data-v-cbb2d935]{min-height:100vh;display:grid;place-items:center;padding:1.5rem;position:relative;overflow:hidden}.orb[data-v-cbb2d935]{position:absolute;border-radius:50%;filter:blur(8px);pointer-events:none;animation:float-cbb2d935 8s ease-in-out infinite}.orb-a[data-v-cbb2d935]{width:280px;height:280px;background:#2b7de947;top:12%;left:12%}.orb-b[data-v-cbb2d935]{width:320px;height:320px;background:#0f9f8a3d;right:10%;bottom:12%;animation-delay:-3s}.login-card[data-v-cbb2d935]{width:min(420px,100%);position:relative;z-index:1;animation:riseIn .35s ease}.brand[data-v-cbb2d935]{font-size:1.35rem;font-weight:700;letter-spacing:-.03em;background:linear-gradient(135deg,#0f9f8a,#2b7de9);-webkit-background-clip:text;background-clip:text;color:transparent}h1[data-v-cbb2d935]{margin:.3rem 0 0;font-size:1.15rem;letter-spacing:-.01em}.sub[data-v-cbb2d935]{color:var(--muted);margin:.35rem 0 1.2rem;font-size:13px}.full[data-v-cbb2d935]{width:100%}.error[data-v-cbb2d935]{color:var(--danger);margin:0 0 .8rem;font-size:.9rem}@keyframes float-cbb2d935{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}.shell[data-v-aa4b94d3]{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.side[data-v-aa4b94d3]{margin:1rem 0 1rem 1rem;border:1px solid var(--border);background:#ffffff6b;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:22px;padding:1.35rem 1rem;display:flex;flex-direction:column;gap:1.5rem;box-shadow:var(--shadow);position:sticky;top:1rem;height:calc(100vh - 2rem)}.logo[data-v-aa4b94d3]{display:flex;gap:.8rem;align-items:center;padding:0 .35rem}.mark[data-v-aa4b94d3]{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#12b39b33,#2b7de938);color:#0c7f6f;font-weight:700;font-size:12px;font-family:var(--mono);border:1px solid rgba(255,255,255,.7)}.logo strong[data-v-aa4b94d3]{display:block;font-size:14px;letter-spacing:-.01em}.logo small[data-v-aa4b94d3]{color:var(--muted);font-size:11px}nav[data-v-aa4b94d3]{display:flex;flex-direction:column;gap:.3rem}nav a[data-v-aa4b94d3]{padding:.55rem .75rem;border-radius:10px;color:var(--muted);font-weight:500;font-size:13px;transition:background .18s ease,color .18s ease,transform .18s ease}nav a.router-link-active[data-v-aa4b94d3],nav a[data-v-aa4b94d3]:hover{background:#ffffffb8;color:var(--text);box-shadow:var(--shadow-sm)}nav a.router-link-active[data-v-aa4b94d3]{background:linear-gradient(135deg,#12b39b29,#2b7de924);color:#0c6d60}.side-foot[data-v-aa4b94d3]{margin-top:auto;display:flex;flex-direction:column;gap:.25rem}.pwd[data-v-aa4b94d3],.logout[data-v-aa4b94d3]{text-align:left}.main[data-v-aa4b94d3]{padding:1.15rem 1.35rem 2rem}@media(max-width:860px){.shell[data-v-aa4b94d3]{grid-template-columns:1fr}.side[data-v-aa4b94d3]{margin:.75rem;height:auto;position:static}nav[data-v-aa4b94d3]{flex-direction:row;flex-wrap:wrap}.side-foot[data-v-aa4b94d3]{margin-top:0;flex-direction:row}}.head[data-v-be282ebe]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.35rem;gap:1rem}h1[data-v-be282ebe]{margin:0;font-size:1.25rem;letter-spacing:-.02em}.muted[data-v-be282ebe]{color:var(--muted);margin:.2rem 0 0;font-size:12px}.setup-badge[data-v-be282ebe]{display:inline-block;font-size:11px;font-weight:600;color:#0c7f6f;background:#0f9f8a1f;border:1px solid rgba(15,159,138,.22);padding:.15rem .5rem;border-radius:999px;margin-bottom:.6rem}.setup h2[data-v-be282ebe],.next h3[data-v-be282ebe]{margin:0 0 .6rem;font-size:1.05rem;letter-spacing:-.01em}.steps[data-v-be282ebe]{list-style:none;padding:0;margin:0 0 1.25rem;display:grid;gap:.75rem}.steps li[data-v-be282ebe]{display:grid;gap:.15rem;padding:.85rem 1rem;border-radius:14px;background:#ffffff73;border:1px solid rgba(36,84,120,.1);color:var(--muted)}.steps li.active[data-v-be282ebe]{border-color:#0f9f8a4d;background:linear-gradient(135deg,#12b39b1f,#2b7de91a);color:var(--text)}.steps strong[data-v-be282ebe]{color:var(--text)}.next[data-v-be282ebe]{margin-bottom:1rem}.grid[data-v-be282ebe]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.stat[data-v-be282ebe]{transition:transform .2s ease,box-shadow .2s ease}.stat[data-v-be282ebe]:hover{transform:translateY(-2px)}.stat strong[data-v-be282ebe]{display:block;font-size:1.35rem;margin:.2rem 0;letter-spacing:-.02em;background:linear-gradient(135deg,#0f9f8a,#2b7de9);-webkit-background-clip:text;background-clip:text;color:transparent}.stat small[data-v-be282ebe]{color:var(--muted);font-size:12px}.info h3[data-v-be282ebe]{margin:0 0 .4rem;font-size:12px;color:var(--muted);font-weight:500}.info code[data-v-be282ebe]{display:block;word-break:break-all;background:#ffffff8c;border:1px solid rgba(36,84,120,.12);padding:.65rem .75rem;border-radius:10px;font-size:12px}.actions[data-v-be282ebe]{margin-top:1rem;display:flex;gap:.5rem;flex-wrap:wrap}.error[data-v-be282ebe]{color:var(--danger)}@media(max-width:860px){.grid[data-v-be282ebe]{grid-template-columns:1fr}}.head[data-v-410b4c9e]{display:flex;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}h1[data-v-410b4c9e]{margin:0;font-size:1.25rem;letter-spacing:-.02em}.muted[data-v-410b4c9e]{color:var(--muted);margin:.2rem 0 0;font-size:12px}.head-actions[data-v-410b4c9e]{display:flex;gap:.5rem}.table-wrap[data-v-410b4c9e]{overflow-x:auto;padding:.4rem .65rem}.row[data-v-410b4c9e]{cursor:pointer}.name[data-v-410b4c9e]{font-weight:600}.sub[data-v-410b4c9e]{color:var(--muted);font-size:.78rem}.ops[data-v-410b4c9e]{display:flex;flex-wrap:wrap;gap:.35rem}.empty[data-v-410b4c9e]{color:var(--muted);padding:2rem 1.5rem;text-align:center}.empty h3[data-v-410b4c9e]{margin:0 0 .4rem;color:var(--text)}.empty p[data-v-410b4c9e]{margin:0 0 1rem}.modal h2[data-v-410b4c9e]{margin-top:0;letter-spacing:-.02em}.modal-actions[data-v-410b4c9e]{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.drawer-mask[data-v-410b4c9e]{position:fixed;top:0;right:0;bottom:0;left:0;background:#5a82a047;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;display:flex;justify-content:flex-end;animation:fadeIn-410b4c9e .2s ease}.drawer[data-v-410b4c9e]{width:min(460px,100%);height:100%;background:#ffffffd1;border-left:1px solid rgba(255,255,255,.9);box-shadow:-18px 0 50px #285a8229;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);padding:1.25rem;overflow:auto;animation:slideIn-410b4c9e .25s ease}.drawer-head[data-v-410b4c9e]{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.drawer-head h2[data-v-410b4c9e]{margin:0;font-size:1.1rem;letter-spacing:-.01em}.detail-grid[data-v-410b4c9e]{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;margin:.5rem 0 1.1rem}.cmd-row[data-v-410b4c9e]{display:flex;gap:.5rem;align-items:stretch}.cmd[data-v-410b4c9e]{flex:1;display:block;background:#fff9;border:1px solid rgba(36,84,120,.12);border-radius:12px;padding:.75rem;white-space:pre-wrap;word-break:break-all;font-size:12px}.qr-row[data-v-410b4c9e]{display:flex;gap:1.25rem;align-items:flex-start;margin:1rem 0;flex-wrap:wrap}.qr[data-v-410b4c9e]{width:168px;height:168px;background:#fff;border-radius:14px;padding:8px;box-shadow:var(--shadow-sm);border:1px solid rgba(36,84,120,.1)}.qr-actions[data-v-410b4c9e]{display:flex;flex-direction:column;gap:.5rem}.error[data-v-410b4c9e]{color:var(--danger)}@keyframes slideIn-410b4c9e{0%{transform:translate(24px);opacity:.6}to{transform:translate(0);opacity:1}}@keyframes fadeIn-410b4c9e{0%{opacity:0}to{opacity:1}}.head[data-v-5c305058]{margin-bottom:1.25rem}h1[data-v-5c305058]{margin:0;font-size:1.25rem;letter-spacing:-.02em}.muted[data-v-5c305058]{color:var(--muted);margin:.2rem 0 0;font-size:12px}.form[data-v-5c305058]{max-width:900px}.grid[data-v-5c305058]{display:grid;grid-template-columns:1fr 1fr;gap:.25rem 1rem}.field.full[data-v-5c305058]{grid-column:1 / -1}.hint[data-v-5c305058]{margin:.35rem 0 0;color:var(--muted);font-size:12px}.check[data-v-5c305058]{display:flex;gap:.55rem;align-items:center;margin:.5rem 0 1.25rem;color:var(--muted)}.pubkey[data-v-5c305058]{margin-bottom:1rem}.pubkey code[data-v-5c305058]{display:block;word-break:break-all;background:#ffffff8c;border:1px solid rgba(36,84,120,.12);padding:.8rem;border-radius:12px}.ok[data-v-5c305058]{color:var(--accent);font-weight:500}.error[data-v-5c305058]{color:var(--danger)}@media(max-width:720px){.grid[data-v-5c305058]{grid-template-columns:1fr}}.page[data-v-f8f69a9a]{min-height:100vh;display:grid;place-items:center;padding:1.5rem;position:relative;overflow:hidden}.orb[data-v-f8f69a9a]{position:absolute;border-radius:50%;pointer-events:none;filter:blur(10px)}.orb-a[data-v-f8f69a9a]{width:260px;height:260px;background:#2b7de940;top:10%;left:14%}.orb-b[data-v-f8f69a9a]{width:300px;height:300px;background:#0f9f8a38;right:12%;bottom:10%}.card[data-v-f8f69a9a]{width:min(440px,100%);position:relative;z-index:1}.brand[data-v-f8f69a9a]{font-weight:700;background:linear-gradient(135deg,#0f9f8a,#2b7de9);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:13px}h1[data-v-f8f69a9a]{margin:.3rem 0 0;font-size:1.15rem;letter-spacing:-.01em}.sub[data-v-f8f69a9a]{color:var(--muted);margin:.35rem 0 1.1rem;font-size:13px}.full[data-v-f8f69a9a]{width:100%}.error[data-v-f8f69a9a]{color:var(--danger);margin:0 0 .8rem}.ok[data-v-f8f69a9a]{color:var(--accent);margin:0 0 .8rem}:root{--bg: #eef5fb;--bg-elevated: rgba(255, 255, 255, .55);--bg-panel: rgba(255, 255, 255, .48);--bg-panel-strong: rgba(255, 255, 255, .72);--border: rgba(255, 255, 255, .65);--border-strong: rgba(36, 84, 120, .14);--text: #16324a;--muted: #5d7a92;--accent: #0f9f8a;--accent-2: #2b7de9;--accent-dim: rgba(15, 159, 138, .14);--danger: #e25555;--warn: #d9891a;--info: #2b7de9;--shadow: 0 18px 50px rgba(40, 90, 130, .12);--shadow-sm: 0 8px 24px rgba(40, 90, 130, .08);--radius: 18px;--font: "Sora", "IBM Plex Sans", "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace;--glass-blur: blur(18px) saturate(160%)}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%}body{font-family:var(--font);color:var(--text);font-size:14px;line-height:1.5;background:radial-gradient(900px 520px at 8% -8%,rgba(43,125,233,.28),transparent 55%),radial-gradient(780px 480px at 92% 4%,rgba(15,159,138,.24),transparent 50%),radial-gradient(700px 420px at 50% 110%,rgba(120,190,255,.22),transparent 55%),linear-gradient(160deg,#f7fbff,#e8f4f8 42%,#eef8f4);background-attachment:fixed;min-height:100vh}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.mono{font-family:var(--mono)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-strong);background:#ffffffb3;color:var(--text);border-radius:10px;padding:.42rem .85rem;font-size:13px;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-sm)}.btn:hover{background:#ffffffeb;border-color:#0f9f8a59;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:linear-gradient(135deg,#12b39b,#2b7de9);border-color:transparent;color:#fff;font-weight:600;box-shadow:0 10px 24px #2b7de947}.btn-primary:hover{filter:brightness(1.04);background:linear-gradient(135deg,#14c4aa,#3a8af0);color:#fff}.btn-danger{color:var(--danger);border-color:#e2555547;background:#ffffffa6}.btn-ghost{background:transparent;box-shadow:none;border-color:transparent}.btn-ghost:hover{background:#ffffff8c}.input{width:100%;background:#ffffffb3;border:1px solid var(--border-strong);border-radius:10px;color:var(--text);padding:.5rem .75rem;font-size:13px;outline:none;transition:box-shadow .18s ease,border-color .18s ease,background .18s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.input:focus{border-color:#0f9f8a8c;box-shadow:0 0 0 4px var(--accent-dim);background:#ffffffeb}.label{display:block;color:var(--muted);font-size:12px;margin-bottom:.3rem;font-weight:500}.field{margin-bottom:1rem}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:1rem 1.1rem;box-shadow:var(--shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:.65rem .6rem;border-bottom:1px solid rgba(36,84,120,.1);vertical-align:middle;font-size:13px}.table th{color:var(--muted);font-weight:600;font-size:12px;letter-spacing:.01em}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background .15s ease}.table tbody tr:hover{background:#ffffff73}.badge{display:inline-flex;align-items:center;gap:.35rem;font-size:12px;padding:.15rem .5rem;border-radius:999px;border:1px solid rgba(36,84,120,.12);background:#ffffffb3;color:var(--text);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.badge .dot{width:7px;height:7px;border-radius:50%;background:var(--muted)}.badge.online{background:#0f9f8a1f;border-color:#0f9f8a40;color:#0a7a69}.badge.online .dot{background:var(--accent);box-shadow:0 0 0 3px #0f9f8a33}.badge.offline .dot{background:#8aa0b4}.badge.disabled{background:#d9891a1f;border-color:#d9891a47}.badge.disabled .dot{background:var(--warn)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#5a82a047;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50;animation:fadeIn .2s ease}.modal{width:min(560px,100%);background:#ffffffc7;border:1px solid rgba(255,255,255,.85);border-radius:20px;padding:1.35rem;max-height:90vh;overflow:auto;box-shadow:0 24px 60px #285a822e;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);animation:riseIn .25s ease}.toast{position:fixed;right:1rem;bottom:1rem;background:#ffffffd9;border:1px solid var(--border);color:var(--text);padding:.8rem 1.1rem;border-radius:14px;z-index:60;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes riseIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
