.footer{padding:48px 0 32px;background:var(--bg-soft);border-top:1px solid var(--border)}.footer-inner{flex-direction:column;text-align:center;gap:16px}.footer-brand,.footer-inner{display:flex;align-items:center}.footer-brand{gap:10px;font-size:18px;font-weight:700}.footer-desc{color:var(--text-secondary);font-size:14px}.footer-links{display:flex;gap:24px}.footer-links a{color:var(--text-secondary);font-size:14px;transition:color .2s}.footer-links a:hover{color:var(--primary)}.footer-copyright{color:var(--text-muted);font-size:12px;margin-top:8px}:root{--bg:#0b0f1a;--bg-soft:#111827;--bg-card:#1a2234;--border:#2a3550;--text:#e5e9f0;--text-secondary:#9aa4b8;--text-muted:#6b7688;--primary:#4a7dff;--primary-hover:#3565e0;--primary-soft:rgba(74,125,255,.12);--success:#52c41a;--success-soft:rgba(82,196,26,.12);--error:#ff4d4f;--error-soft:rgba(255,77,79,.12);--warning:#faad14;--warning-soft:rgba(250,173,20,.12);--btn-disabled:#3a4a6b;--glow:rgba(74,125,255,.15);--nav-bg:rgba(11,15,26,.85);--radius:12px;--radius-sm:8px;--shadow:0 8px 30px rgba(0,0,0,.35);--max-width:1200px}@media (prefers-color-scheme:light){:root{--bg:#f5f7fa;--bg-soft:#fff;--bg-card:#fff;--border:#e2e6ee;--text:#1f2937;--text-secondary:#4b5563;--text-muted:#9ca3af;--primary:#4a7dff;--primary-hover:#3565e0;--primary-soft:rgba(74,125,255,.1);--success:#389e0d;--success-soft:rgba(56,158,13,.1);--error:#cf1322;--error-soft:rgba(207,19,34,.08);--warning:#d48806;--warning-soft:rgba(212,136,6,.1);--btn-disabled:#c0c8d8;--glow:rgba(74,125,255,.1);--nav-bg:hsla(0,0%,100%,.85);--shadow:0 8px 30px rgba(0,0,0,.08)}}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:PingFang SC,Microsoft YaHei,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:-20%;left:50%;transform:translateX(-50%);width:1200px;height:600px;background:radial-gradient(ellipse at center,var(--glow),transparent 70%);pointer-events:none;z-index:0}#root{position:relative;z-index:1}a{color:var(--primary);text-decoration:none}button{cursor:pointer}button,input,textarea{font-family:inherit}.container{max-width:var(--max-width);margin:0 auto;padding:0 24px}.section-header{text-align:center;margin-bottom:32px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:600;transition:all .2s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}.btn-primary:disabled{background:var(--btn-disabled);cursor:not-allowed;opacity:.7}.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#3f9e10}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.fade-in-up{animation:fadeInUp .6s ease both}.page-tabs{position:-webkit-sticky;position:sticky;top:0;z-index:900;background:color-mix(in srgb,var(--bg) 80%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.page-tabs-inner{max-width:var(--max-width);margin:0 auto;padding:0 1rem;display:flex;justify-content:center;gap:2rem}.page-tab,.page-tabs-inner{height:44px;align-items:center}.page-tab{position:relative;display:inline-flex;gap:.35rem;font-size:.92rem;color:var(--text-secondary);text-decoration:none;white-space:nowrap;transition:color .2s}.page-tab:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px 2px 0 0;background:var(--primary);opacity:0;transform:scaleX(.4);transition:opacity .2s,transform .2s}.page-tab:hover{color:var(--text)}.page-tab.active{color:var(--primary);font-weight:600}.page-tab.active:after{opacity:1;transform:scaleX(1)}.page-tab-badge{font-size:.62rem;line-height:1;padding:.2rem .4rem;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-weight:600}@media (max-width:640px){.page-tabs-inner{gap:1.25rem}}