.create-form[data-v-fad2dcb1],.edit-form[data-v-fad2dcb1]{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}.create-form input[data-v-fad2dcb1],.create-form select[data-v-fad2dcb1],.edit-form input[data-v-fad2dcb1],.edit-form select[data-v-fad2dcb1]{border:1px solid var(--ui-border-strong);border-radius:10px;padding:10px 12px}.edit-form[data-v-fad2dcb1]{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:20px}.field[data-v-fad2dcb1]{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ui-text-label)}.check[data-v-fad2dcb1]{display:flex;align-items:center;gap:8px;font-size:13px}.btn.primary[data-v-fad2dcb1]{border:none;border-radius:10px;padding:10px 14px;background:var(--ui-primary);color:#fff;font-weight:650;cursor:pointer}.btn.danger-text[data-v-fad2dcb1]{border:none;background:transparent;color:var(--ui-danger);cursor:pointer;font-weight:600}.click-row[data-v-fad2dcb1]{cursor:pointer}.click-row.on[data-v-fad2dcb1]{background:#409eff14}.sub[data-v-fad2dcb1]{margin:8px 0 12px;font-size:15px}.msg.err[data-v-fad2dcb1]{color:var(--ui-danger);font-size:13px}@media(max-width:960px){.create-form[data-v-fad2dcb1],.edit-form[data-v-fad2dcb1]{grid-template-columns:1fr}}.tunnel-form[data-v-0b78a91a]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.field[data-v-0b78a91a]{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ui-text-label)}.field input[data-v-0b78a91a],.field select[data-v-0b78a91a]{border:1px solid var(--ui-border-strong);border-radius:10px;padding:10px 12px;background:#fff}.form-actions[data-v-0b78a91a]{grid-column:1 / -1;display:flex;gap:10px}.btn.primary[data-v-0b78a91a]{border:none;border-radius:10px;padding:10px 16px;background:var(--ui-primary);color:#fff;font-weight:650;cursor:pointer}.btn.link[data-v-0b78a91a],.btn.danger-text[data-v-0b78a91a]{border:none;background:transparent;cursor:pointer;font-weight:600;padding:0 6px}.btn.link[data-v-0b78a91a]{color:var(--ui-primary)}.btn.danger-text[data-v-0b78a91a]{color:var(--ui-danger)}.ops[data-v-0b78a91a]{white-space:nowrap}.msg.err[data-v-0b78a91a]{margin-top:10px;color:var(--ui-danger);font-size:13px}@media(max-width:860px){.tunnel-form[data-v-0b78a91a]{grid-template-columns:1fr}}.info-grid[data-v-05de1781]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.label[data-v-05de1781]{font-size:12px;color:var(--ui-text-secondary)}.value[data-v-05de1781]{margin-top:4px;font-weight:650}.form[data-v-05de1781]{display:grid;gap:12px;max-width:420px}.field[data-v-05de1781]{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ui-text-label)}.field input[data-v-05de1781]{border:1px solid var(--ui-border-strong);border-radius:10px;padding:10px 12px}.btn.primary[data-v-05de1781]{border:none;border-radius:10px;padding:10px 16px;background:var(--ui-primary);color:#fff;font-weight:650;cursor:pointer;width:fit-content}.msg.err[data-v-05de1781]{color:var(--ui-danger);font-size:13px;margin:0}@media(max-width:760px){.info-grid[data-v-05de1781]{grid-template-columns:1fr}}.auth-page[data-v-0ec952f4]{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--ui-page)}.auth-card[data-v-0ec952f4]{width:min(380px,100%);background:#fff;border:1px solid var(--ui-border-strong);border-radius:16px;padding:28px 24px 22px;box-shadow:0 12px 40px #1018280f}.brand[data-v-0ec952f4]{font-size:20px;font-weight:800;letter-spacing:.1em;color:var(--ui-primary)}.auth-card h1[data-v-0ec952f4]{margin:12px 0 0;font-size:22px}.desc[data-v-0ec952f4]{margin:8px 0 20px;color:var(--ui-text-secondary);font-size:13px}.field[data-v-0ec952f4]{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px;color:var(--ui-text-label)}.field input[data-v-0ec952f4]{border:1px solid var(--ui-border-strong);border-radius:10px;padding:11px 12px;background:#fff}.field input[data-v-0ec952f4]:focus{outline:none;border-color:var(--ui-primary);box-shadow:var(--ui-focus-ring)}.submit[data-v-0ec952f4]{width:100%;margin-top:8px;border:none;border-radius:10px;padding:12px;background:var(--ui-primary);color:#fff;font-weight:650;cursor:pointer}.submit[data-v-0ec952f4]:disabled{opacity:.5;cursor:not-allowed}.foot[data-v-0ec952f4]{margin:16px 0 0;text-align:center;font-size:13px;color:var(--ui-text-secondary)}.foot a[data-v-0ec952f4]{color:var(--ui-primary);font-weight:600}.msg.err[data-v-0ec952f4]{margin:0 0 8px;color:var(--ui-danger);font-size:13px}.auth-page[data-v-bd4d0e9c]{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--ui-page)}.auth-card[data-v-bd4d0e9c]{width:min(380px,100%);background:#fff;border:1px solid var(--ui-border-strong);border-radius:16px;padding:28px 24px 22px;box-shadow:0 12px 40px #1018280f}.brand[data-v-bd4d0e9c]{font-size:20px;font-weight:800;letter-spacing:.1em;color:var(--ui-primary)}.auth-card h1[data-v-bd4d0e9c]{margin:12px 0 0;font-size:22px}.desc[data-v-bd4d0e9c]{margin:8px 0 20px;color:var(--ui-text-secondary);font-size:13px}.field[data-v-bd4d0e9c]{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px;color:var(--ui-text-label)}.field input[data-v-bd4d0e9c]{border:1px solid var(--ui-border-strong);border-radius:10px;padding:11px 12px;background:#fff}.field input[data-v-bd4d0e9c]:focus{outline:none;border-color:var(--ui-primary);box-shadow:var(--ui-focus-ring)}.submit[data-v-bd4d0e9c]{width:100%;margin-top:8px;border:none;border-radius:10px;padding:12px;background:var(--ui-primary);color:#fff;font-weight:650;cursor:pointer}.submit[data-v-bd4d0e9c]:disabled{opacity:.5;cursor:not-allowed}.foot[data-v-bd4d0e9c]{margin:16px 0 0;text-align:center;font-size:13px;color:var(--ui-text-secondary)}.foot a[data-v-bd4d0e9c]{color:var(--ui-primary);font-weight:600}.msg.err[data-v-bd4d0e9c]{margin:0 0 8px;color:var(--ui-danger);font-size:13px}.site-nav[data-v-6260ebec]{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:10px 4px 14px;border-bottom:1px solid var(--ui-border);flex-wrap:wrap}.site-brand[data-v-6260ebec]{font-size:18px;font-weight:800;letter-spacing:.08em;color:var(--ui-primary);text-decoration:none}.site-links[data-v-6260ebec]{display:flex;align-items:center;gap:14px;flex:1}.site-links a[data-v-6260ebec]{color:var(--ui-text-secondary);text-decoration:none;font-size:13px;font-weight:600}.site-links a[data-v-6260ebec]:hover,.site-links a.router-link-active[data-v-6260ebec]{color:var(--ui-primary)}.site-user[data-v-6260ebec]{display:flex;align-items:center;gap:8px}.topbar[data-v-6260ebec]{display:flex;align-items:center;justify-content:flex-start;gap:12px;margin-bottom:18px;flex-wrap:wrap}.segment-wrap[data-v-6260ebec]{margin-bottom:0}.user-chip[data-v-6260ebec]{font-size:12px;color:var(--ui-text-secondary);background:var(--ui-fill);border-radius:999px;padding:6px 10px}.btn.ghost[data-v-6260ebec]{border:none;background:transparent;color:var(--ui-primary);font-size:13px;font-weight:600;cursor:pointer;padding:6px 8px;border-radius:8px}.btn.ghost[data-v-6260ebec]:hover{background:var(--ui-fill)}.login-shell .site-nav[data-v-6260ebec]{max-width:1100px;margin:0 auto;padding:16px 24px 12px;border-bottom:1px solid var(--ui-border)}.auth-pending[data-v-6260ebec]{min-height:40vh;display:grid;place-items:center;color:var(--ui-text-secondary);font-size:14px}:root,.overlay-root{--ui-primary: #409eff;--ui-primary-hover: #337ecc;--ui-text: #1d2129;--ui-text-secondary: #86909c;--ui-text-label: #6b7280;--ui-border: #f0f0f0;--ui-border-strong: #e5e5ea;--ui-divider: #f5f5f5;--ui-surface: #ffffff;--ui-surface-muted: #fafafa;--ui-surface-subtle: #f9fafb;--ui-fill: #f2f2f7;--ui-fill-hover: #e5e5ea;--ui-success: #1a9f4b;--ui-success-bg: #e8f8ee;--ui-danger: #d93026;--ui-danger-bg: #ffece8;--ui-switch-on: #34c759;--ui-overlay: rgba(0, 0, 0, .22);--ui-page: #f2f2f7;--ui-z-sheet: 10000;--ui-z-modal: 10001;--ui-z-toast: 10002;--ui-shell-max-width: 1080px;--ui-radius-sm: 8px;--ui-radius-md: 10px;--ui-radius-lg: 12px;--ui-radius-xl: 14px;--ui-radius-pill: 999px;--ui-shadow-card: 0 1px 3px rgba(0, 0, 0, .04);--ui-focus-ring: 0 0 0 3px rgba(64, 158, 255, .18);font-family:SF Pro Text,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:var(--ui-text);background:var(--ui-page)}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;background:var(--ui-page)}button,input,textarea,select{font:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}a{color:inherit;text-decoration:none}.app-shell{max-width:var(--ui-shell-max-width);margin:0 auto;padding:20px 20px 72px}.app-shell.login-shell{max-width:none;margin:0;padding:0}.segment-wrap{display:flex;justify-content:center;margin-bottom:18px}.segment{position:relative;display:inline-flex;width:fit-content;max-width:100%;padding:4px;background:var(--ui-fill);border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius-pill)}.segment-thumb{position:absolute;top:4px;left:0;height:calc(100% - 8px);background:var(--ui-primary);border-radius:var(--ui-radius-pill);z-index:0;transition:transform .28s cubic-bezier(.32,.72,0,1),width .28s cubic-bezier(.32,.72,0,1)}.segment a{position:relative;z-index:1;background:transparent;border:none;padding:10px 22px;border-radius:var(--ui-radius-pill);color:var(--ui-text);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.segment a.active{color:#fff}.segment a:not(.active):hover{color:var(--ui-primary)}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}.toolbar .spacer{flex:1}.card{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius-xl);box-shadow:var(--ui-shadow-card);overflow:hidden;animation:fade-up .35s cubic-bezier(.32,.72,0,1) both}.card-header{background:var(--ui-surface-muted);border-bottom:1px solid var(--ui-divider);padding:18px 20px}.card-title{margin:0;font-size:17px;font-weight:600;color:var(--ui-text)}.card-desc{margin:6px 0 0;font-size:13px;line-height:1.55;color:var(--ui-text-secondary)}.card-body{padding:16px 18px 18px}.grid-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}@media(max-width:640px){.grid-stats{grid-template-columns:repeat(2,1fr)}.app-shell{padding:16px 12px 56px}}.stat{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-card);padding:14px 16px;animation:fade-up .35s cubic-bezier(.32,.72,0,1) both}.stat .label{color:var(--ui-text-secondary);font-size:12px;font-weight:600}.stat .value{margin-top:6px;font-size:22px;font-weight:650;color:var(--ui-text)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:var(--ui-radius-pill);font-weight:600;font-size:14px;cursor:pointer;padding:8px 16px;transition:background .15s,opacity .15s;background:var(--ui-fill-hover);color:#1d1d1f}.btn:hover:not(:disabled){background:#d1d1d6}.btn.primary{background:var(--ui-primary);color:#fff}.btn.primary:hover:not(:disabled){background:var(--ui-primary-hover)}.btn.danger-text{background:transparent;color:var(--ui-danger)}.btn.danger-text:hover:not(:disabled){background:var(--ui-danger-bg)}.btn.text{background:transparent;color:var(--ui-primary)}.btn.text:hover:not(:disabled){background:#eef4ff}.btn:disabled{opacity:.45;cursor:not-allowed}.pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--ui-radius-pill);font-size:12px;font-weight:500;background:#f2f3f5;color:#646a73}.pill.ok{background:var(--ui-success-bg);color:var(--ui-success)}.pill.warn{background:#fff7e8;color:#b76e00}.pill.danger{background:var(--ui-danger-bg);color:var(--ui-danger)}.pill.primary{background:#eef4ff;color:var(--ui-primary)}.muted{color:var(--ui-text-secondary)}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.empty{padding:28px;text-align:center;color:var(--ui-text-secondary);font-size:14px}.table-wrap{overflow-x:auto;border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg)}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--ui-divider);vertical-align:middle;color:#4e5969}th{color:var(--ui-text-secondary);font-weight:600;font-size:12px;background:var(--ui-surface-subtle)}tr:last-child td{border-bottom:none}.field{margin-bottom:14px}.field label{display:block;margin-bottom:6px;font-size:12px;font-weight:600;color:var(--ui-text-label)}.field input,.field textarea,.field select{width:100%;box-sizing:border-box;padding:11px 14px;border:1px solid #d1d5db;border-radius:var(--ui-radius-md);background:var(--ui-surface-subtle);font-size:15px;color:var(--ui-text);transition:border-color .15s,box-shadow .15s,background .15s}.field textarea{min-height:110px;resize:vertical;line-height:1.5}.field input:hover,.field textarea:hover,.field select:hover{background:#fff;border-color:#c5cad3}.field input:focus,.field textarea:focus,.field select:focus{outline:none;background:#fff;border-color:var(--ui-primary);box-shadow:var(--ui-focus-ring)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:640px){.field-row{grid-template-columns:1fr}}.check-row{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:14px;color:var(--ui-text)}.check-row input{width:16px;height:16px;accent-color:var(--ui-primary)}.msg{margin:10px 0 0;font-size:13px}.msg.ok{color:var(--ui-success)}.msg.err{color:var(--ui-danger)}.inline-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.grid-2{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:16px}@media(max-width:900px){.grid-2{grid-template-columns:1fr}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal-portal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--ui-z-modal);display:flex;align-items:center;justify-content:center;padding:20px}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ui-overlay)}.modal-card{position:relative;width:min(420px,100%);background:var(--ui-surface);border-radius:16px;box-shadow:0 20px 60px #00000029;padding:22px 20px 18px}.modal-card h3{margin:0;text-align:center;font-size:17px;font-weight:600}.modal-card p{margin:10px 0 0;text-align:center;font-size:14px;line-height:1.55;color:var(--ui-text-secondary);word-break:break-word}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.toast-host{position:fixed;left:50%;bottom:max(28px,env(safe-area-inset-bottom,0px) + 20px);transform:translate(-50%);z-index:var(--ui-z-toast);display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;max-width:min(280px,calc(100vw - 40px))}.toast{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;border:.5px solid rgba(0,0,0,.08);background:#ffffffb8;box-shadow:0 0 0 .5px #0000000a,0 8px 28px #0000001f;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);color:#1d1d1f;font-size:13px;font-weight:600;animation:toast-in .28s cubic-bezier(.32,.72,0,1)}.toast-dot{width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:11px;flex-shrink:0}.toast-dot.ok{background:#34c759}.toast-dot.err{background:#ff3b30}@keyframes toast-in{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
