:root{--bg:#f5f7fb;--card:#fff;--text:#172033;--muted:#667085;--primary:#456fe8;--primary-hover:#365fd2;--primary-soft:#edf2ff;--danger:#ef4444;--border:#e3e8f2;--brand-grad-a:#456fe8;--brand-grad-b:#7855dc;--shadow-sm:0 1px 2px #1622400a;--shadow-md:0 8px 24px #23345d14;--border-strong:#d3dbea;--ink-soft:#55607a;--ink-faint:#7d879e;--bg-tint:#f9fafd;--card-radius:14px;--radius-s:9px;--radius-m:12px;--focus-ring:#456fe829;--fs-page-title:23px;--fs-module-title:17px;--fs-card-title:15px;--fs-num-hero:clamp(30px, 2.6vw, 38px);--fs-num-big:28px;--fs-body:14px;--fs-aux:12.5px}:root[data-theme=purple]{--primary:#8b5cf6;--primary-hover:#7c4ae0;--primary-soft:#f3eeff;--brand-grad-a:#7c3aed;--brand-grad-b:#a855f7}:root[data-theme=green]{--primary:#0ea271;--primary-hover:#0b8a60;--primary-soft:#e6f7f0;--brand-grad-a:#0b9e69;--brand-grad-b:#34d399}:root[data-theme=pink]{--primary:#ec4899;--primary-hover:#d93887;--primary-soft:#fdeaf3;--brand-grad-a:#db2777;--brand-grad-b:#f472b6}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);min-height:100%;color:var(--text);font-family:Microsoft YaHei,PingFang SC,system-ui,-apple-system,sans-serif;font-size:15px}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed}input,select,textarea{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;outline:none;padding:8px 10px;font-family:inherit;font-size:14px}@media (pointer:coarse){input,select,textarea{font-size:16px!important}}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #456fe81f}button:focus-visible{outline-offset:2px;outline:3px solid #456fe847}a:focus-visible{outline-offset:2px;outline:3px solid #456fe847}input:focus-visible{outline-offset:2px;outline:3px solid #456fe847}select:focus-visible{outline-offset:2px;outline:3px solid #456fe847}textarea:focus-visible{outline-offset:2px;outline:3px solid #456fe847}.btn{border:none;border-radius:8px;padding:9px 18px;font-size:14px;font-weight:600;transition:background .15s,color .15s,transform .15s,box-shadow .15s}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.48;transform:none}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 3px 10px #456fe833}.btn-primary:hover{background:var(--primary-hover)}.btn-ghost{background:var(--primary-soft);color:var(--primary)}.btn-ghost:hover{background:#e1e9ff}.btn-danger{color:var(--danger);background:#fee2e2}.card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:14px;padding:22px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.page-head{justify-content:space-between;align-items:flex-end;gap:18px 24px;margin-bottom:20px;display:flex}.page-head-main{min-width:0}.page-title{font-size:var(--fs-page-title);letter-spacing:-.02em;font-weight:800;line-height:1.25}.page-desc{color:var(--ink-faint);font-size:var(--fs-aux);margin-top:4px;line-height:1.5}.page-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.segmented{border:1px solid var(--border);border-radius:var(--radius-s);background:#eef1f7;gap:3px;width:fit-content;max-width:100%;padding:3px;display:inline-flex}.segmented>button{color:var(--ink-soft);border-radius:calc(var(--radius-s) - 2px);background:0 0;border:none;padding:6px 13px;font-size:12.5px;font-weight:600;transition:background .14s,color .14s,box-shadow .14s}.segmented>button:hover{color:var(--text);background:#ffffffd9}.segmented>button:active{transform:translateY(.5px)}.segmented>button.on{color:var(--primary);background:#fff;box-shadow:0 1px 3px #1622401f,0 0 0 1px #456fe829}.segmented>button b{margin-left:4px;font-weight:800}.chip-row{flex-wrap:wrap;gap:7px;display:flex}.chip{color:var(--ink-soft);border:1px solid var(--border-strong);background:#fff;border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:600;transition:border-color .14s,background .14s,color .14s,box-shadow .14s}.chip:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.chip.on{color:var(--primary);border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.link-btn{color:var(--ink-soft);background:0 0;border:none;border-radius:7px;padding:5px 9px;font-size:12px;font-weight:600;transition:background .14s,color .14s}.link-btn:hover{color:var(--primary);background:var(--primary-soft)}.link-btn.danger:hover{color:var(--danger);background:#feecec}
