:root{--font-ui:"Plus Jakarta Sans", "Inter", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-display:"Outfit", "Plus Jakarta Sans", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--bg-page:#f3f6fb;--bg-soft:#f8fafd;--bg-card:#fff;--bg-sidebar:#fbfcff;--line:#e5ebf4;--line-strong:#d2dbe8;--text-main:#0f172a;--text-muted:#64748b;--text-light:#94a3b8;--ok:#10b981;--warning:#f59e0b;--danger:#ef4444;--radius-xl:22px;--radius-lg:16px;--radius-md:12px;--radius-sm:10px;--shadow-card:0 12px 30px #0f172a0f;--shadow-soft:0 22px 52px #0f172a1f;--shadow-btn:0 10px 22px #0f172a29;--brand-primary:#2563eb;--brand-primary-hover:#1d4ed8;--brand-light:#ecf3ff;--brand-gradient:linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);--brand-gradient-hover:linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);--brand-shadow:#2563eb52;--hero-glow-a:#2563eb2b;--hero-glow-b:#0ea5e91f;--brand-deep:var(--brand-primary);--brand-green:var(--ok);--brand-warm:var(--warning)}html[data-theme=ocean]{--brand-primary:#2563eb;--brand-primary-hover:#1d4ed8;--brand-light:#ecf3ff;--brand-gradient:linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);--brand-gradient-hover:linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);--brand-shadow:#2563eb57;--hero-glow-a:#2563eb2e;--hero-glow-b:#0ea5e91f}html[data-theme=forest]{--brand-primary:#059669;--brand-primary-hover:#047857;--brand-light:#eafaf4;--brand-gradient:linear-gradient(135deg, #10b981 0%, #059669 100%);--brand-gradient-hover:linear-gradient(135deg, #059669 0%, #047857 100%);--brand-shadow:#05966952;--hero-glow-a:#10b98133;--hero-glow-b:#34d39924}html[data-theme=sunset]{--brand-primary:#ea580c;--brand-primary-hover:#c2410c;--brand-light:#fff3e9;--brand-gradient:linear-gradient(135deg, #f59e0b 0%, #ea580c 100%);--brand-gradient-hover:linear-gradient(135deg, #ea580c 0%, #c2410c 100%);--brand-shadow:#ea580c4d;--hero-glow-a:#fb923c33;--hero-glow-b:#f59e0b24}html[data-theme=graphite]{--brand-primary:#334155;--brand-primary-hover:#1e293b;--brand-light:#eef2f6;--brand-gradient:linear-gradient(135deg, #475569 0%, #334155 100%);--brand-gradient-hover:linear-gradient(135deg, #334155 0%, #1e293b 100%);--brand-shadow:#33415547;--hero-glow-a:#94a3b833;--hero-glow-b:#64748b1f}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{font-family:var(--font-ui);color:var(--text-main);background:radial-gradient(940px 420px at -4% -12%, var(--hero-glow-a), transparent 62%), radial-gradient(980px 460px at 104% -10%, var(--hero-glow-b), transparent 64%), var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5,h6,p{margin:0}.panel{border:1px solid var(--line);background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.btn{cursor:pointer;border-radius:var(--radius-sm);letter-spacing:.2px;border:0;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:600;transition:all .24s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{color:#fff;background:var(--brand-gradient);box-shadow:0 10px 22px var(--brand-shadow)}.btn-primary:hover{background:var(--brand-gradient-hover)}.btn-gradient{color:#fff;background:var(--brand-gradient);box-shadow:0 8px 18px var(--brand-shadow)}.btn-gradient:hover{background:var(--brand-gradient-hover)}.btn-secondary{color:var(--text-main);border:1px solid var(--line-strong);background:#fff}.btn-secondary:hover{background:var(--bg-soft);border-color:var(--brand-primary);color:var(--brand-primary)}.btn-danger{color:#fff;background:var(--danger);box-shadow:0 8px 18px #ef44444d}.btn-danger:hover{background:#dc2626}.field-label{color:var(--text-main);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.field-input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:100%;color:var(--text-main);background:#fff;padding:11px 13px;font-size:14px;transition:all .22s}.field-input:focus{border-color:var(--brand-primary);box-shadow:0 0 0 4px var(--brand-light);outline:none}.fade-up{animation:.46s cubic-bezier(.16,1,.3,1) both fadeUp}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (width<=760px){body{background:radial-gradient(540px 280px at -8% -16%, var(--hero-glow-a), transparent 64%), radial-gradient(520px 280px at 112% -16%, var(--hero-glow-b), transparent 62%), var(--bg-page)}}
