.header[data-v-8825ae88]{position:sticky;top:0;z-index:100;height:var(--header-h);background:hsla(0,0%,100%,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.header-inner[data-v-8825ae88]{display:flex;align-items:center;height:var(--header-h);gap:24px}.logo[data-v-8825ae88]{display:flex;align-items:center;gap:8px;flex-shrink:0;color:var(--text)}.logo[data-v-8825ae88]:hover{color:var(--text)}.logo-mark[data-v-8825ae88]{display:flex}.logo-text[data-v-8825ae88]{font-size:18px;font-weight:700;display:flex;align-items:center;gap:6px}.logo-text em[data-v-8825ae88]{font-style:normal;font-size:11px;font-weight:600;color:var(--primary);background:var(--primary-soft);padding:2px 7px;border-radius:999px}.nav[data-v-8825ae88]{display:flex;gap:4px;flex:1;overflow-x:auto}.nav a[data-v-8825ae88]{color:var(--text-secondary);font-size:13px;font-weight:500;padding:6px 10px;border-radius:8px;white-space:nowrap}.nav a.router-link-active[data-v-8825ae88],.nav a.router-link-exact-active[data-v-8825ae88],.nav a[data-v-8825ae88]:hover{color:var(--primary);background:var(--primary-soft)}.header-right[data-v-8825ae88]{display:flex;align-items:center;flex-shrink:0}.user-dropdown[data-v-8825ae88]{position:relative}.user-info[data-v-8825ae88]{display:flex;align-items:center;gap:10px;cursor:pointer;padding:4px 8px;border-radius:10px;height:var(--header-h)}.user-info[data-v-8825ae88]:hover{background:var(--bg)}.avatar-img[data-v-8825ae88],.avatar[data-v-8825ae88]{width:34px;height:34px;border-radius:50%;flex-shrink:0}.avatar[data-v-8825ae88]{background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}.avatar-img.lg[data-v-8825ae88],.avatar.lg[data-v-8825ae88]{width:40px;height:40px;font-size:16px}.avatar-img[data-v-8825ae88]{-o-object-fit:cover;object-fit:cover;background:#eee}.user-meta[data-v-8825ae88]{display:flex;flex-direction:column;line-height:1.25;min-width:0}.username[data-v-8825ae88]{font-size:13px;font-weight:600;color:var(--text);max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.userid[data-v-8825ae88]{font-size:11px;color:var(--text-muted)}.dropdown-wrap[data-v-8825ae88]{position:absolute;top:100%;right:0;padding-top:0;z-index:300}.dropdown-menu[data-v-8825ae88]{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-md);min-width:200px;padding:6px 0}.dropdown-profile[data-v-8825ae88]{display:flex;align-items:center;gap:10px;padding:12px 16px 10px;border-bottom:1px solid var(--border);margin-bottom:4px}.dp-name[data-v-8825ae88]{font-size:14px;font-weight:600;color:var(--text)}.dp-id[data-v-8825ae88]{font-size:12px;color:var(--text-muted);margin-top:2px}.dropdown-menu a[data-v-8825ae88]{display:block;padding:10px 16px;color:var(--text);font-size:13px}.dropdown-menu a[data-v-8825ae88]:hover{background:var(--bg);color:var(--primary)}@media (max-width:960px){.nav[data-v-8825ae88]{display:none}}.footer[data-v-dfdeaed8]{background:#121826;color:#9aa6b8;margin-top:24px}.footer-top[data-v-dfdeaed8]{display:grid;grid-template-columns:1.2fr 2fr;gap:40px;padding:48px 20px 36px}.logo[data-v-dfdeaed8]{display:flex;align-items:center;gap:8px;color:#fff;font-weight:700;font-size:16px;margin-bottom:12px}.logo-mark[data-v-dfdeaed8]{display:flex}.brand-col p[data-v-dfdeaed8]{font-size:13px;line-height:1.7;max-width:360px}.company[data-v-dfdeaed8]{margin-top:10px;color:#7f8b9e;font-size:12px!important}.link-cols[data-v-dfdeaed8]{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.col h4[data-v-dfdeaed8]{color:#fff;font-size:14px;margin-bottom:14px}.col a[data-v-dfdeaed8]{display:block;color:#9aa6b8;font-size:13px;margin-bottom:10px;word-break:break-all}.col a[data-v-dfdeaed8]:hover{color:#fff}.footer-bottom[data-v-dfdeaed8]{border-top:1px solid #1f2937;padding:16px 0;font-size:12px}.bottom-inner[data-v-dfdeaed8]{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.icp[data-v-dfdeaed8]{color:#9aa6b8}.icp[data-v-dfdeaed8]:hover{color:#fff}@media (max-width:900px){.footer-top[data-v-dfdeaed8]{grid-template-columns:1fr}.link-cols[data-v-dfdeaed8]{grid-template-columns:repeat(2,1fr)}}.main-layout[data-v-fcce2182]{min-height:100vh;display:flex;flex-direction:column}main[data-v-fcce2182]{flex:1}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--primary:#2f6bff;--primary-dark:#1f54d8;--primary-soft:#eaf1ff;--android:#22a06b;--android-dark:#1b8758;--android-soft:#e8f8f0;--text:#1a2332;--text-secondary:#5b6b7c;--text-muted:#8b97a8;--border:#e6ebf2;--border-strong:#d5dde8;--bg:#f5f7fb;--bg-bar:#eef2f7;--bg-elevated:#f8fafc;--surface:#fff;--surface-hover:#f8fafc;--wechat:#07c160;--wechat-dark:#06ad56;--success:#12b76a;--warning:#f79009;--danger:#f04438;--white:#fff;--radius:10px;--radius-lg:16px;--shadow:0 1px 2px rgba(16,24,40,0.04);--shadow-md:0 10px 30px rgba(16,24,40,0.08);--font-display:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;--font-body:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;--font-mono:Consolas,"SF Mono",monospace;--accent:var(--warning);--bg-elevated:#f0f3f8;--header-h:64px}body{font-family:var(--font-body);color:var(--text);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh;font-size:14px}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-dark)}.container{max-width:1160px;margin:0 auto;padding:0 20px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:10px;font-family:var(--font-body);font-size:14px;font-weight:500;cursor:pointer;border:none;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;gap:6px}.btn-primary{background:var(--primary);color:var(--white)}.btn-primary:hover{background:var(--primary-dark);color:var(--white)}.btn-outline{background:transparent;color:var(--primary);border:1px solid var(--primary)}.btn-outline:hover{background:var(--primary-soft)}.btn-ghost{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover{border-color:#c9d2e0;color:var(--text)}.btn-wechat{background:var(--wechat);color:#fff}.btn-wechat:hover{background:var(--wechat-dark);color:#fff}.btn-android{background:var(--android);color:#fff}.btn-android:hover{background:var(--android-dark);color:#fff}.btn-sm{padding:6px 14px;font-size:13px}.btn-lg{padding:12px 28px;font-size:15px}.card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow)}.section-title{font-size:26px;font-weight:700;text-align:center;margin-bottom:8px;letter-spacing:-.02em}.section-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:32px;font-size:14px}.form-group{margin-bottom:18px;text-align:left}.form-label{display:block;font-size:13px;font-weight:500;margin-bottom:6px;color:var(--text)}.form-input{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;font-size:14px;font-family:var(--font-body);color:var(--text);background:var(--surface);outline:none;transition:border-color .15s,box-shadow .15s}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:500}.tag-normal{background:#ecfdf3;color:#027a48}.tag-advanced{background:#fffaeb;color:#b54708}.table{width:100%;border-collapse:collapse}.table td,.table th{padding:12px 14px;text-align:left;border-bottom:1px solid var(--border);font-size:14px}.table th{background:var(--bg);font-weight:600;font-size:13px}.empty-state,.table th{color:var(--text-secondary)}.empty-state{text-align:center;padding:56px 20px}.page-header{background:linear-gradient(180deg,#eef3ff,#f5f7fb);border-bottom:1px solid var(--border);color:var(--text);padding:40px 0;text-align:center}.page-header h1{font-size:28px;font-weight:700;margin-bottom:6px;letter-spacing:-.02em}.page-header p{color:var(--text-secondary);font-size:14px}.page-content{padding:36px 0 64px;min-height:calc(100vh - 260px)}.alert{padding:12px 14px;border-radius:10px;font-size:14px;margin-bottom:14px}.alert-error{background:#fef3f2;color:#b42318;border:1px solid #fecdca}.alert-success{background:#ecfdf3;color:#027a48;border:1px solid #abefc6}