.header[data-v-c19b2e0d]{position:sticky;top:0;z-index:20;background:#ffffffdb;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line)}.inner[data-v-c19b2e0d]{max-width:1180px;margin:0 auto;height:64px;padding:0 24px;display:flex;align-items:center;gap:24px}.brand[data-v-c19b2e0d]{display:flex;align-items:center;gap:10px;flex-shrink:0}.logo[data-v-c19b2e0d]{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--brand-600),var(--brand-700));display:inline-flex;align-items:center;justify-content:center;box-shadow:0 6px 14px #1d5bd642}.brand-text[data-v-c19b2e0d]{display:flex;flex-direction:column;line-height:1.2}.brand-text strong[data-v-c19b2e0d]{font-size:15px;letter-spacing:.3px}.brand-text em[data-v-c19b2e0d]{font-style:normal;font-size:10px;color:var(--muted);letter-spacing:.6px}.nav[data-v-c19b2e0d]{display:flex;gap:4px;margin-left:8px}.nav-item[data-v-c19b2e0d]{padding:7px 14px;border-radius:9px;font-size:14px;color:var(--ink-2);transition:all .16s}.nav-item[data-v-c19b2e0d]:hover{background:var(--brand-50);color:var(--brand-600)}.nav-item.active[data-v-c19b2e0d]{background:var(--brand-50);color:var(--brand-600);font-weight:600}.user-area[data-v-c19b2e0d]{margin-left:auto;position:relative}.user-btn[data-v-c19b2e0d]{display:flex;align-items:center;gap:8px;height:38px;padding:0 10px 0 6px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink-2)}.user-btn[data-v-c19b2e0d]:hover{border-color:#cfdcf0}.avatar[data-v-c19b2e0d]{width:26px;height:26px;border-radius:50%;object-fit:cover}.avatar-text[data-v-c19b2e0d]{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#4f86f7,#1d5bd6);color:#fff;font-size:12px;font-weight:600}.user-name[data-v-c19b2e0d]{font-size:13px;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.caret[data-v-c19b2e0d]{opacity:.6}.menu[data-v-c19b2e0d]{position:absolute;right:0;top:46px;min-width:140px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;overflow:hidden}.menu-item[data-v-c19b2e0d]{display:block;width:100%;text-align:left;padding:9px 12px;border-radius:8px;font-size:13px;color:var(--ink-2);background:none;border:none}.menu-item[data-v-c19b2e0d]:hover{background:var(--brand-50);color:var(--brand-600)}.menu-item.danger[data-v-c19b2e0d]{color:var(--danger)}.menu-item.danger[data-v-c19b2e0d]:hover{background:#fdeeee}@media (max-width: 780px){.inner[data-v-c19b2e0d]{padding:0 14px;gap:10px}.brand-text em[data-v-c19b2e0d]{display:none}.nav-item[data-v-c19b2e0d]{padding:6px 9px;font-size:13px}.user-name[data-v-c19b2e0d]{display:none}}.shell[data-v-4d6f66ed]{min-height:100%;display:flex;flex-direction:column}.main[data-v-4d6f66ed]{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:28px 24px 40px}.foot[data-v-4d6f66ed]{padding:20px 24px 28px;text-align:center;font-size:12px;color:var(--muted)}.dot[data-v-4d6f66ed]{margin:0 6px;opacity:.6}@media (max-width: 680px){.main[data-v-4d6f66ed]{padding:16px 14px 28px}}:root{--brand-900: #0b2447;--brand-700: #133c7a;--brand-600: #1d5bd6;--brand-500: #2e6be6;--brand-50: #eef4ff;--accent: #ff9a3d;--ink: #0f1e33;--ink-2: #46586f;--muted: #7a8aa0;--line: #e6edf7;--bg: #f4f7fc;--white: #ffffff;--danger: #d64545;--ok: #1f9d68;--radius: 14px;--shadow-sm: 0 1px 2px rgba(16, 40, 80, .05);--shadow-md: 0 8px 24px rgba(16, 40, 80, .08);--shadow-lg: 0 18px 48px rgba(16, 40, 80, .14)}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--line)}.section-title{font-size:15px;font-weight:600;color:var(--ink);margin:0 0 4px}.section-desc{font-size:13px;color:var(--muted);margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 18px;border-radius:10px;border:1px solid transparent;font-size:14px;font-weight:500;transition:all .18s ease;white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand-600);color:#fff;box-shadow:0 6px 16px #1d5bd63d}.btn-primary:hover:not(:disabled){background:var(--brand-500);transform:translateY(-1px)}.btn-block{width:100%}.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink-2)}.btn-ghost:hover:not(:disabled){border-color:#c9d8ef;color:var(--brand-600)}.btn-sm{height:32px;padding:0 12px;font-size:13px;border-radius:8px}.btn-danger{background:#fff;border-color:#f3d0d0;color:var(--danger)}.btn-danger:hover:not(:disabled){background:#fff6f6}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field label{font-size:13px;color:var(--ink-2);font-weight:500}.input{height:44px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:#fbfcfe;font-size:14px;color:var(--ink);outline:none;transition:border-color .18s,box-shadow .18s}.input:focus{border-color:var(--brand-500);background:#fff;box-shadow:0 0 0 3px #2e6be61f}textarea.input{height:auto;padding:10px 14px;resize:vertical;min-height:76px}.tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;font-size:12px;background:var(--brand-50);color:var(--brand-600)}.tag-gray{background:#f1f4f9;color:var(--muted)}.tag-ok{background:#eaf8f1;color:var(--ok)}.tag-danger{background:#fdeeee;color:var(--danger)}.alert{padding:10px 14px;border-radius:10px;font-size:13px;margin-bottom:14px}.alert-error{background:#fdeeee;color:#b33737}.alert-info{background:var(--brand-50);color:var(--brand-700)}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-weight:500;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:12px;border-bottom:1px solid #f2f6fc;color:var(--ink-2)}.table tr:last-child td{border-bottom:none}.empty{padding:56px 20px;text-align:center;color:var(--muted);font-size:13px}.fade-enter-active,.fade-leave-active{transition:opacity .18s ease}.fade-enter-from,.fade-leave-to{opacity:0}
