.login-page[data-v-f2525a19]{min-height:100vh;display:grid;place-items:center;padding:1.5rem;position:relative;overflow:hidden}.orb[data-v-f2525a19]{position:absolute;border-radius:50%;filter:blur(8px);pointer-events:none;animation:float-f2525a19 8s ease-in-out infinite}.orb-a[data-v-f2525a19]{width:280px;height:280px;background:#2b7de947;top:12%;left:12%}.orb-b[data-v-f2525a19]{width:320px;height:320px;background:#0f9f8a3d;right:10%;bottom:12%;animation-delay:-3s}.login-card[data-v-f2525a19]{width:min(420px,100%);position:relative;z-index:1;animation:riseIn .35s ease}.brand[data-v-f2525a19]{font-size:1.35rem;font-weight:700;background:linear-gradient(135deg,#0f9f8a,#2b7de9);-webkit-background-clip:text;background-clip:text;color:transparent}h1[data-v-f2525a19]{margin:.3rem 0 0;font-size:1.15rem}.sub[data-v-f2525a19]{color:var(--muted);margin:.35rem 0 1.2rem;font-size:13px}.full[data-v-f2525a19]{width:100%}.error[data-v-f2525a19]{color:var(--danger);margin:0 0 .8rem;font-size:.9rem}@keyframes float-f2525a19{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}.shell[data-v-d51d116c]{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side[data-v-d51d116c]{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.25rem .85rem;display:flex;flex-direction:column;gap:1.25rem;box-shadow:var(--shadow);position:sticky;top:1rem;height:calc(100vh - 2rem)}.logo[data-v-d51d116c]{display:flex;gap:.7rem;align-items:center;padding:0 .5rem}.mark[data-v-d51d116c]{flex-shrink:0;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content: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);line-height:1}.logo-text[data-v-d51d116c]{display:flex;flex-direction:column;justify-content:center;gap:.1rem;line-height:1.3}.logo strong[data-v-d51d116c]{font-size:14px;font-weight:600}.logo small[data-v-d51d116c]{color:var(--muted);font-size:11px}nav[data-v-d51d116c]{display:flex;flex-direction:column;gap:.2rem}nav a[data-v-d51d116c]{display:block;padding:.6rem .75rem;padding-left:calc(.75rem - 3px);border-left:3px solid transparent;border-radius:0 10px 10px 0;color:var(--muted);font-weight:500;font-size:14px;line-height:1.5;transition:background .18s ease,color .18s ease,border-color .18s ease}nav a[data-v-d51d116c]:hover{background:#ffffff8c;color:var(--text)}nav a.router-link-active[data-v-d51d116c]{border-left-color:var(--accent);background:linear-gradient(135deg,#12b39b24,#2b7de91a);color:#0c6d60;font-weight:600}.side-foot[data-v-d51d116c]{margin-top:auto;display:flex;flex-direction:column;gap:.2rem;padding:0 .5rem}.pwd[data-v-d51d116c],.logout[data-v-d51d116c]{width:100%;justify-content:flex-start;padding:.5rem .75rem;font-size:13px}.main[data-v-d51d116c]{padding:1.15rem 1.35rem 2rem;min-width:0}@media(max-width:860px){.shell[data-v-d51d116c]{grid-template-columns:1fr}.side[data-v-d51d116c]{margin:.75rem;height:auto;position:static}nav[data-v-d51d116c]{flex-direction:row;flex-wrap:wrap}nav a[data-v-d51d116c]{border-left:none;border-bottom:3px solid transparent;border-radius:10px 10px 0 0;padding:.55rem .75rem}nav a.router-link-active[data-v-d51d116c]{border-left-color:transparent;border-bottom-color:var(--accent)}.side-foot[data-v-d51d116c]{margin-top:0;flex-direction:row;flex-wrap:wrap}}.setup-badge[data-v-0e61d7f7]{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-0e61d7f7],.next h3[data-v-0e61d7f7]{margin:0 0 .6rem;font-size:1.05rem}.steps[data-v-0e61d7f7]{list-style:none;padding:0;margin:0 0 1.25rem;display:grid;gap:.75rem}.steps li[data-v-0e61d7f7]{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-0e61d7f7]{border-color:#0f9f8a4d;background:linear-gradient(135deg,#12b39b1f,#2b7de91a);color:var(--text)}.steps strong[data-v-0e61d7f7]{color:var(--text)}.next[data-v-0e61d7f7]{margin-bottom:1rem}.grid[data-v-0e61d7f7]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.stat[data-v-0e61d7f7]{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;transition:transform .2s ease,box-shadow .2s ease}.stat[data-v-0e61d7f7]:hover{transform:translateY(-2px)}.stat .label[data-v-0e61d7f7]{margin-bottom:0}.stat strong[data-v-0e61d7f7]{display:block;font-size:1.5rem;font-weight:700;line-height:1.2;color:#0c7f6f;margin:0}.stat small[data-v-0e61d7f7]{color:var(--muted);font-size:12px;line-height:1.4}.next .sub[data-v-0e61d7f7]{color:var(--muted);margin:0 0 1rem;font-size:13px;line-height:1.5}.info h3[data-v-0e61d7f7]{margin:0 0 .4rem;font-size:12px;color:var(--muted);font-weight:500}.info code[data-v-0e61d7f7]{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-0e61d7f7]{margin-top:1rem;display:flex;gap:.5rem;flex-wrap:wrap}.error[data-v-0e61d7f7]{color:var(--danger)}@media(max-width:860px){.grid[data-v-0e61d7f7]{grid-template-columns:1fr}}.head-actions[data-v-c30d1534]{display:flex;gap:.5rem;flex-shrink:0}.table-wrap[data-v-c30d1534]{overflow-x:auto;padding:.4rem .65rem}.row[data-v-c30d1534]{cursor:pointer}.name[data-v-c30d1534]{font-weight:600}.sub[data-v-c30d1534]{color:var(--muted);font-size:.78rem}.ops[data-v-c30d1534]{display:flex;flex-wrap:wrap;gap:.35rem}.empty[data-v-c30d1534]{color:var(--muted);padding:2rem 1.5rem;text-align:center}.empty h3[data-v-c30d1534]{margin:0 0 .4rem;color:var(--text)}.empty p[data-v-c30d1534]{margin:0 0 1rem}.modal h2[data-v-c30d1534]{margin-top:0}.modal-actions[data-v-c30d1534]{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.drawer-mask[data-v-c30d1534]{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-c30d1534 .2s ease}.drawer[data-v-c30d1534]{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-c30d1534 .25s ease}.drawer-head[data-v-c30d1534]{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.drawer-head h2[data-v-c30d1534]{margin:0;font-size:1.1rem}.detail-grid[data-v-c30d1534]{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;margin:.5rem 0 1.1rem}.cmd-row[data-v-c30d1534]{display:flex;gap:.5rem;align-items:stretch}.cmd[data-v-c30d1534]{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-c30d1534]{display:flex;gap:1.25rem;align-items:flex-start;margin:1rem 0;flex-wrap:wrap}.qr[data-v-c30d1534]{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-c30d1534]{display:flex;flex-direction:column;gap:.5rem}.error[data-v-c30d1534]{color:var(--danger)}@keyframes slideIn-c30d1534{0%{transform:translate(24px);opacity:.6}to{transform:translate(0);opacity:1}}@keyframes fadeIn-c30d1534{0%{opacity:0}to{opacity:1}}.form[data-v-ad10cb46]{max-width:900px}.grid[data-v-ad10cb46]{display:grid;grid-template-columns:1fr 1fr;gap:.25rem 1rem}.field.full[data-v-ad10cb46]{grid-column:1 / -1}.hint[data-v-ad10cb46]{margin:.35rem 0 0;color:var(--muted);font-size:12px}.check[data-v-ad10cb46]{display:flex;gap:.55rem;align-items:center;margin:.5rem 0 1.25rem;color:var(--muted)}.pubkey[data-v-ad10cb46]{margin-bottom:1rem}.pubkey code[data-v-ad10cb46]{display:block;word-break:break-all;background:#ffffff8c;border:1px solid rgba(36,84,120,.12);padding:.8rem;border-radius:12px}.ok[data-v-ad10cb46]{color:var(--accent);font-weight:500}.error[data-v-ad10cb46]{color:var(--danger)}@media(max-width:720px){.grid[data-v-ad10cb46]{grid-template-columns:1fr}}.page[data-v-189191a8]{min-height:100vh;display:grid;place-items:center;padding:1.5rem;position:relative;overflow:hidden}.orb[data-v-189191a8]{position:absolute;border-radius:50%;pointer-events:none;filter:blur(10px)}.orb-a[data-v-189191a8]{width:260px;height:260px;background:#2b7de940;top:10%;left:14%}.orb-b[data-v-189191a8]{width:300px;height:300px;background:#0f9f8a38;right:12%;bottom:10%}.card[data-v-189191a8]{width:min(440px,100%);position:relative;z-index:1}.brand[data-v-189191a8]{font-weight:700;background:linear-gradient(135deg,#0f9f8a,#2b7de9);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:13px}h1[data-v-189191a8]{margin:.3rem 0 0;font-size:1.15rem}.sub[data-v-189191a8]{color:var(--muted);margin:.35rem 0 1.1rem;font-size:13px}.full[data-v-189191a8]{width:100%}.error[data-v-189191a8]{color:var(--danger);margin:0 0 .8rem}.ok[data-v-189191a8]{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: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Helvetica Neue", Arial, sans-serif;--mono: "SF Mono", "Cascadia Code", Consolas, "Liberation Mono", "Courier New", monospace;--glass-blur: blur(18px) saturate(160%)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body,#app{margin:0;min-height:100%}h1,h2,h3,h4,h5,h6,p{margin:0;padding:0}body{font-family:var(--font);color:var(--text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;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;line-height:1.5;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;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:1.1rem 1.25rem;box-shadow:var(--shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.page-head h1{font-size:1.25rem;font-weight:600;line-height:1.4}.page-head .sub{color:var(--muted);margin-top:.25rem;font-size:13px;line-height:1.5}.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;line-height:1.5}.table th{color:var(--muted);font-weight:600;font-size:12px}.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)}}
