:root{--primary700:#124a86;--primary600:#1b5faa;--primary500:#1677ff;--primary400:#4e93ff;--primary200:#a8c8f0;--primary100:#eaf2fb;--primary50:#f4f8fd;--success:#52c41a;--success-text:#389e0d;--success100:#f6ffed;--warning:#fa8c16;--warning100:#fff7e6;--danger:#f5222d;--danger100:#fff1f0;--text1:#1f2329;--text2:#4e5969;--text3:#86909c;--text4:#c9cdd4;--border:#e5e6eb;--divider:#f2f3f5;--bg:#eef2f7;--bg-card:#fff;--r8:8px;--r12:12px;--r16:16px;--r24:24px;--r-full:999px;--shadow1:0 2px 8px rgba(0,0,0,.04);--shadow2:0 4px 16px rgba(0,0,0,.08);--shadow3:0 8px 24px rgba(0,0,0,.12);--font-zh:"PingFang SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-zh);background:var(--bg);color:var(--text1);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit}#main-content{min-height:calc(100vh - 64px)}.container{max-width:1080px;margin:0 auto;padding:24px 32px}.pageIn{animation:pageIn .25s ease}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:14px;font-weight:600;border:none;border-radius:var(--r8);padding:9px 16px;cursor:pointer;transition:all .18s;font-family:inherit}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:linear-gradient(135deg,#1677ff,#1b5faa);color:#fff;box-shadow:0 4px 12px rgba(22,119,255,.28)}.btn.primary:hover{box-shadow:0 6px 16px rgba(22,119,255,.38)}.btn.default{background:#fff;color:var(--text1);border:1px solid var(--border)}.btn.default:hover{border-color:var(--primary500);color:var(--primary500)}.btn.ghost{background:transparent;color:var(--primary500)}.btn.ghost:hover{background:var(--primary100)}.btn.danger,.btn.ext{background:var(--danger);color:#fff}.btn.danger:hover,.btn.ext:hover{background:#d4171f}.btn.sm{padding:6px 12px;font-size:13px}.btn.lg{padding:12px 22px;font-size:15px}.tag{display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:3px 10px;border-radius:var(--r-full);line-height:1.6}.tag.primary{background:var(--primary100);color:var(--primary500)}.tag.success{background:var(--success100);color:var(--success-text)}.tag.warning{background:var(--warning100);color:var(--warning)}.tag.danger{background:var(--danger100);color:var(--danger)}.tag.neutral{background:var(--divider);color:var(--text3)}.tag.pill{background:hsla(0,0%,100%,.16);color:#fff;font-weight:500}.lbl{display:block;font-size:13px;color:var(--text2);margin-bottom:6px;font-weight:600}.inp{width:100%;height:42px;border:1px solid var(--border);border-radius:var(--r8);padding:0 14px;font-size:14px;font-family:inherit;color:var(--text1);background:#fff;transition:border-color .18s,box-shadow .18s;box-sizing:border-box}.inp:focus{outline:none;border-color:var(--primary500);box-shadow:0 0 0 3px rgba(22,119,255,.12)}.inp.err{border-color:var(--danger)}.msg{font-size:12px;margin-top:6px}.msg.err{color:var(--danger)}.msg.ok{color:var(--success-text)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r12);padding:20px;box-shadow:var(--shadow1)}.card.tight{padding:0}.tabs-line{display:flex;gap:24px;border-bottom:1px solid var(--divider);margin-bottom:16px}.t{font-size:15px;color:var(--text3);padding:10px 0;cursor:pointer;position:relative;transition:color .18s;background:none;border:none;font-family:inherit;line-height:1.6}.t:hover{color:var(--text1)}.t:focus-visible{outline:2px solid var(--primary500);outline-offset:2px;border-radius:4px}.t.on{color:var(--text1);font-weight:600}.t.on:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--primary500);border-radius:2px}.topnav{height:64px;padding:0 32px;background:linear-gradient(90deg,#124a86,#1b5faa 55%,#1677ff);box-shadow:0 2px 8px rgba(0,0,0,.08);position:-webkit-sticky;position:sticky;top:0;z-index:50}#topNavMenu,.topnav{gap:28px}#topNavMenu,.logo,.topnav{display:flex;align-items:center}.logo{gap:10px;font-size:19px;font-weight:800;color:#fff;letter-spacing:1px}.logo .ic{width:30px;height:30px;border-radius:8px;background:hsla(0,0%,100%,.18);display:flex;align-items:center;justify-content:center;font-size:16px}.nav-item{font-size:15px;color:hsla(0,0%,100%,.82);padding:8px 0;position:relative;cursor:pointer;transition:color .2s}.nav-item.on,.nav-item:hover{color:#fff}.nav-item.on:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:#fff}.sp{flex:1 1}.ext-badge{font-size:13px;color:#fff;background:hsla(0,0%,100%,.16);padding:6px 12px;border-radius:var(--r-full);border:1px solid hsla(0,0%,100%,.28)}.ext-badge:hover{background:hsla(0,0%,100%,.26)}.user{gap:8px;font-size:14px;color:#fff}.user,.user .av{display:flex;align-items:center}.user .av{width:30px;height:30px;border-radius:50%;background:hsla(0,0%,100%,.2);justify-content:center;font-size:13px;font-weight:600}#toast-root{position:fixed;top:80px;left:50%;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;gap:10px;align-items:center}.toast{background:var(--text1);color:#fff;font-size:14px;padding:10px 18px;border-radius:10px;box-shadow:var(--shadow3);animation:toastIn .2s ease}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}#modal-root{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9998;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease}.modal{background:#fff;border-radius:var(--r16);padding:24px;min-width:320px;max-width:90vw;box-shadow:var(--shadow3)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}