.site-foot[data-v-f919c638]{margin-top:30px;margin-bottom:88px;border-top:1px solid var(--line);background:linear-gradient(180deg,#fdfdff,#f7f9fd)}.site-foot-inner[data-v-f919c638]{max-width:1180px;margin:0 auto;padding:16px 34px 18px;text-align:right}.foot-line[data-v-f919c638]{display:flex;align-items:flex-start;justify-content:flex-end;gap:8px;margin:0;font-size:13px;line-height:1.75;color:var(--ink2)}.foot-tag[data-v-f919c638]{flex:0 0 auto;margin-top:1px;padding:1px 8px;border:1px solid #f0dcb4;border-radius:6px;background:var(--warn-soft);color:var(--warn);font-size:12px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.foot-text[data-v-f919c638]{max-width:980px}.foot-meta[data-v-f919c638]{margin:7px 0 0;font-size:12px;color:var(--ink3)}.foot-links[data-v-f919c638]{margin-left:10px}.foot-links a[data-v-f919c638]{color:var(--ink3);margin-left:10px}.foot-links a[data-v-f919c638]:hover{color:var(--primary)}@media(max-width:900px){.site-foot[data-v-f919c638]{margin-top:22px;margin-bottom:96px}.site-foot-inner[data-v-f919c638]{padding:14px 16px 16px;text-align:left}.foot-line[data-v-f919c638]{justify-content:flex-start;font-size:12.8px;line-height:1.7}.foot-meta[data-v-f919c638]{font-size:11.5px}.foot-links[data-v-f919c638]{display:flex;flex-wrap:wrap;gap:3px 13px;margin:7px 0 0}.foot-links a[data-v-f919c638]{margin-left:0}}.ai-fab[data-v-f232362b]{position:fixed;right:26px;bottom:26px;z-index:880;display:flex;align-items:center;gap:8px;height:52px;padding:0 18px 0 14px;border:none;border-radius:999px;cursor:pointer;color:#fff;font-family:inherit;font-size:15px;font-weight:600;background:linear-gradient(135deg,#2f6fe4,#6b46c1);box-shadow:0 8px 24px #2f6fe457,0 2px 6px #1018281f;transition:transform .18s,box-shadow .18s}.ai-fab[data-v-f232362b]:hover{transform:translateY(-2px);box-shadow:0 12px 30px #2f6fe46b}.ai-fab[data-v-f232362b]:active{transform:translateY(0)}.fab-text[data-v-f232362b]{letter-spacing:.5px}.fab-ring[data-v-f232362b]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;border:2px solid rgba(107,70,193,.5);animation:fabPulse-f232362b 2.6s ease-out infinite;pointer-events:none}@keyframes fabPulse-f232362b{0%{transform:scale(1);opacity:.65}70%{transform:scale(1.12);opacity:0}to{opacity:0}}@media(max-width:768px){.ai-fab[data-v-f232362b]{right:16px;bottom:78px;height:48px;padding:0 16px 0 13px;font-size:14px}}@media(prefers-reduced-motion:reduce){.fab-ring[data-v-f232362b]{animation:none}}.ai-mask[data-v-7686245b]{position:fixed;top:0;right:0;bottom:0;left:0;background:#1018282e;z-index:900;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.ai-panel[data-v-7686245b]{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:100vw;background:#fff;z-index:901;display:flex;flex-direction:column;box-shadow:-12px 0 32px #10182824}.ai-head[data-v-7686245b]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);flex:0 0 auto}.ai-head-main[data-v-7686245b]{display:flex;align-items:center;gap:10px;min-width:0}.ai-avatar[data-v-7686245b]{width:38px;height:38px;border-radius:12px;flex:0 0 38px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#2f6fe4,#6b46c1);box-shadow:0 4px 12px #1f5dd847}.ai-title-wrap[data-v-7686245b]{min-width:0}.ai-title[data-v-7686245b]{font-size:16px;font-weight:700;color:var(--ink);line-height:1.2}.ai-ctx[data-v-7686245b]{display:flex;align-items:center;gap:5px;margin-top:3px;font-size:12.5px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-dot[data-v-7686245b]{width:6px;height:6px;border-radius:50%;background:#22a06b;flex:0 0 6px}.ai-head-btns[data-v-7686245b]{display:flex;gap:4px;flex:0 0 auto}.ai-icon-btn[data-v-7686245b]{width:36px;height:36px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--ink3);display:grid;place-items:center;cursor:pointer;transition:.15s}.ai-icon-btn[data-v-7686245b]:hover{background:var(--bg);color:var(--ink)}.ai-body[data-v-7686245b]{flex:1 1 auto;overflow-y:auto;padding:16px;background:#fafbfe}.ai-empty[data-v-7686245b]{padding:8px 4px}.ai-empty-title[data-v-7686245b]{font-size:15px;color:var(--ink);line-height:1.65}.ai-empty-sub[data-v-7686245b]{font-size:13px;color:var(--ink3);margin-top:8px;line-height:1.6}.ai-chips[data-v-7686245b]{display:flex;flex-direction:column;gap:8px;margin-top:16px}.ai-chip[data-v-7686245b]{text-align:left;padding:11px 14px;border-radius:11px;border:1px solid var(--line2);background:#fff;color:var(--ink2);font-size:14px;font-family:inherit;cursor:pointer;transition:.15s;line-height:1.4}.ai-chip[data-v-7686245b]:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.ai-chip.sm[data-v-7686245b]{padding:7px 11px;font-size:12.5px;border-radius:999px;white-space:nowrap}.ai-sys[data-v-7686245b]{width:fit-content;margin:12px auto;padding:3px 12px;border-radius:999px;background:#eef1f7;font-size:12px;color:var(--ink3);text-align:center;line-height:1.6}.ai-row[data-v-7686245b]{display:flex;gap:8px;margin-bottom:14px;align-items:flex-start}.ai-row.user[data-v-7686245b]{justify-content:flex-end}.ai-bot-mark[data-v-7686245b]{flex:0 0 26px;width:26px;height:26px;border-radius:9px;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;background:linear-gradient(135deg,#2f6fe4,#6b46c1);margin-top:2px}.ai-bubble[data-v-7686245b]{max-width:84%;padding:11px 14px;border-radius:14px;font-size:14.5px;line-height:1.72;word-break:break-word}.ai-bubble.user[data-v-7686245b]{background:var(--primary);color:#fff;border-top-right-radius:5px;white-space:pre-wrap}.ai-bubble.bot[data-v-7686245b]{background:#fff;color:var(--ink);border:1px solid var(--line);border-top-left-radius:5px;box-shadow:var(--shadow-sm)}.ai-text[data-v-7686245b] .ai-sec{display:block;font-weight:700;color:var(--primary-dark);margin:8px 0 2px;font-size:14.2px}.ai-text[data-v-7686245b] .ai-sec:first-child{margin-top:0}.ai-ctx-tag[data-v-7686245b]{display:inline-block;margin-bottom:8px;padding:2px 8px;border-radius:6px;background:var(--primary-soft);color:var(--primary-dark);font-size:11.5px;font-weight:600}.ai-badge[data-v-7686245b]{margin-top:9px;padding-top:8px;border-top:1px dashed var(--line);font-size:11.5px;color:var(--ink3)}.ai-badge.err[data-v-7686245b]{color:var(--danger)}.typing[data-v-7686245b]{display:flex;align-items:center;gap:4px}.tdot[data-v-7686245b]{width:6px;height:6px;border-radius:50%;background:var(--ink3);animation:blink-7686245b 1.2s infinite}.tdot[data-v-7686245b]:nth-child(2){animation-delay:.18s}.tdot[data-v-7686245b]:nth-child(3){animation-delay:.36s}.typing-text[data-v-7686245b]{margin-left:6px;font-size:12.5px;color:var(--ink3)}@keyframes blink-7686245b{0%,60%,to{opacity:.25}30%{opacity:1}}.ai-err[data-v-7686245b]{margin:4px 0 10px;padding:9px 12px;border-radius:10px;background:var(--danger-soft);color:var(--danger);font-size:13px}.ai-suggest-row[data-v-7686245b]{flex:0 0 auto;display:flex;gap:8px;overflow-x:auto;padding:9px 16px;border-top:1px solid var(--line);background:#fff}.ai-suggest-row[data-v-7686245b]::-webkit-scrollbar{height:0}.ai-foot[data-v-7686245b]{flex:0 0 auto;padding:10px 16px 12px;border-top:1px solid var(--line);background:#fff}.ai-input-wrap[data-v-7686245b]{display:flex;align-items:flex-end;gap:8px;border:1px solid var(--line2);border-radius:13px;padding:6px 6px 6px 12px;background:#fff;transition:.15s}.ai-input-wrap[data-v-7686245b]:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.ai-input[data-v-7686245b]{flex:1;border:none;outline:none;resize:none;background:transparent;font-family:inherit;font-size:14.5px;line-height:1.6;color:var(--ink);max-height:96px;min-height:24px;padding:4px 0}.ai-send[data-v-7686245b]{flex:0 0 36px;width:36px;height:36px;border-radius:10px;border:none;background:var(--primary);color:#fff;display:grid;place-items:center;cursor:pointer;transition:.15s}.ai-send[data-v-7686245b]:hover:not(:disabled){background:var(--primary-dark)}.ai-send[data-v-7686245b]:disabled{opacity:.4;cursor:not-allowed}.ai-disclaimer[data-v-7686245b]{margin-top:8px;font-size:11.5px;color:var(--ink3);text-align:center;line-height:1.5}.ai-fade-enter-active[data-v-7686245b],.ai-fade-leave-active[data-v-7686245b]{transition:opacity .2s}.ai-fade-enter-from[data-v-7686245b],.ai-fade-leave-to[data-v-7686245b]{opacity:0}.ai-slide-enter-active[data-v-7686245b],.ai-slide-leave-active[data-v-7686245b]{transition:transform .26s cubic-bezier(.22,.7,.3,1),opacity .2s}.ai-slide-enter-from[data-v-7686245b],.ai-slide-leave-to[data-v-7686245b]{transform:translate(20px);opacity:0}@media(max-width:768px){.ai-panel[data-v-7686245b]{width:100%;top:0}.ai-slide-enter-from[data-v-7686245b],.ai-slide-leave-to[data-v-7686245b]{transform:translateY(24px)}.ai-bubble[data-v-7686245b]{max-width:88%;font-size:15px}.ai-body[data-v-7686245b]{padding:14px 14px 18px}.ai-foot[data-v-7686245b]{padding-bottom:max(12px,env(safe-area-inset-bottom))}.ai-chip[data-v-7686245b]{padding:13px 15px}.ai-send[data-v-7686245b]{width:44px;height:44px;flex:0 0 44px}.ai-icon-btn[data-v-7686245b]{width:44px;height:44px}}.ad-login[data-v-ff0c9b89]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.ad-login-box[data-v-ff0c9b89]{width:100%;max-width:380px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px;box-shadow:var(--shadow)}.ad-brand[data-v-ff0c9b89]{display:flex;align-items:center;gap:12px;margin-bottom:26px}.ad-mark[data-v-ff0c9b89]{width:40px;height:40px;border-radius:11px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:700}.ad-mark.sm[data-v-ff0c9b89]{width:30px;height:30px;border-radius:9px;font-size:15px}.ad-t[data-v-ff0c9b89]{font-size:18px;font-weight:700}.ad-s[data-v-ff0c9b89]{font-size:12px;color:var(--ink3)}.ad-wrap[data-v-ff0c9b89]{display:flex;min-height:100vh;background:var(--bg)}.ad-side[data-v-ff0c9b89]{position:fixed;inset:0 auto 0 0;width:232px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:60}.ad-side-brand[data-v-ff0c9b89]{display:flex;align-items:center;gap:9px;padding:14px 16px;border-bottom:1px solid var(--line)}.ad-side-t[data-v-ff0c9b89]{font-size:15px;font-weight:700;line-height:1.25}.ad-side-t span[data-v-ff0c9b89]{display:block;font-size:11px;font-weight:400;color:var(--ink3)}.ad-close[data-v-ff0c9b89]{display:none;margin-left:auto;border:0;background:transparent;font-size:18px;cursor:pointer;color:var(--ink3)}.ad-nav[data-v-ff0c9b89]{flex:1;overflow-y:auto;padding:10px 10px 20px}.ad-group[data-v-ff0c9b89]{font-size:11.5px;color:var(--ink3);padding:12px 10px 6px;letter-spacing:.04em}.ad-item[data-v-ff0c9b89]{display:block;padding:9px 12px;border-radius:8px;font-size:14.5px;color:var(--ink2);text-decoration:none;margin-bottom:2px;min-height:40px}.ad-item[data-v-ff0c9b89]:hover{background:var(--primary-soft);color:var(--primary-dark);text-decoration:none}.ad-item.router-link-exact-active[data-v-ff0c9b89]{background:var(--primary);color:#fff;font-weight:600}.ad-empty[data-v-ff0c9b89]{padding:20px;color:var(--ink3);font-size:13px}.ad-side-foot[data-v-ff0c9b89]{border-top:1px solid var(--line);padding:12px 16px}.ad-me b[data-v-ff0c9b89]{display:block;font-size:13.5px}.ad-me span[data-v-ff0c9b89]{font-size:11.5px;color:var(--ink3)}.ad-main[data-v-ff0c9b89]{flex:1;margin-left:232px;min-width:0;display:flex;flex-direction:column}.ad-head[data-v-ff0c9b89]{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:10px 22px;min-height:56px}.ad-crumb[data-v-ff0c9b89]{font-size:14.5px;display:flex;align-items:center;gap:8px;flex:1;min-width:0}.ad-crumb .dim[data-v-ff0c9b89]{color:var(--ink3)}.ad-crumb .sep[data-v-ff0c9b89]{color:var(--line2)}.ad-head-right[data-v-ff0c9b89]{display:flex;gap:8px}.ad-burger[data-v-ff0c9b89]{display:none;border:1px solid var(--line2);background:#fff;border-radius:8px;width:40px;height:40px;font-size:17px;cursor:pointer;color:var(--ink2)}.ad-body[data-v-ff0c9b89]{padding:20px 22px 60px}.ad-loading[data-v-ff0c9b89]{display:flex;align-items:center;gap:10px;padding:40px;color:var(--ink3)}.ad-mask[data-v-ff0c9b89]{display:none}@media(max-width:900px){.ad-side[data-v-ff0c9b89]{transform:translate(-100%);transition:transform .22s;width:250px;box-shadow:var(--shadow)}.ad-side.open[data-v-ff0c9b89]{transform:translate(0)}.ad-close[data-v-ff0c9b89]{display:block}.ad-main[data-v-ff0c9b89]{margin-left:0}.ad-burger[data-v-ff0c9b89]{display:block}.ad-mask[data-v-ff0c9b89]{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#10182859;z-index:50}.ad-head[data-v-ff0c9b89]{padding:10px 14px;gap:8px}.ad-body[data-v-ff0c9b89]{padding:14px 12px 48px}.hide-sm[data-v-ff0c9b89]{display:none}}.pager-pro[data-v-3a1fa368]{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 4px 4px;font-size:14px;color:var(--ink2)}.pager-pro.is-loading[data-v-3a1fa368]{opacity:.65;pointer-events:none}.pp-total b[data-v-3a1fa368]{color:var(--ink);font-variant-numeric:tabular-nums}.pp-ctrl[data-v-3a1fa368]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pp-size[data-v-3a1fa368]{display:flex;align-items:center;gap:5px;font-size:13.5px;color:var(--ink3)}.pp-size select[data-v-3a1fa368]{min-height:34px;padding:4px 8px;border:1px solid var(--line2);border-radius:8px;background:#fff;color:var(--ink);font-size:13.5px;font-family:inherit;cursor:pointer}.pp-btn[data-v-3a1fa368]{min-width:36px;min-height:36px;padding:0 9px;border:1px solid var(--line2);background:#fff;border-radius:8px;color:var(--ink2);font-size:14px;font-family:inherit;cursor:pointer;font-variant-numeric:tabular-nums;transition:.15s}.pp-btn[data-v-3a1fa368]:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.pp-btn[data-v-3a1fa368]:disabled{opacity:.38;cursor:not-allowed}.pp-btn.on[data-v-3a1fa368]{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.pp-btn.on[data-v-3a1fa368]:hover{background:var(--primary-dark);color:#fff}.pp-gap[data-v-3a1fa368]{color:var(--ink3);padding:0 2px}.pp-mobile-info[data-v-3a1fa368]{display:none;font-size:13.5px;color:var(--ink2)}.pp-jump[data-v-3a1fa368]{display:flex;align-items:center;gap:5px;font-size:13.5px;color:var(--ink3);margin-left:4px}.pp-input[data-v-3a1fa368]{width:56px;min-height:34px;padding:4px 8px;text-align:center;border:1px solid var(--line2);border-radius:8px;font-size:13.5px;font-family:inherit;color:var(--ink)}.pp-input[data-v-3a1fa368]:focus{outline:none;border-color:var(--primary)}@media(max-width:768px){.pager-pro[data-v-3a1fa368]{justify-content:center;gap:10px;padding:14px 0 8px}.pp-total[data-v-3a1fa368]{width:100%;text-align:center;font-size:13.5px}.pp-num[data-v-3a1fa368],.pp-gap[data-v-3a1fa368],.pp-jump[data-v-3a1fa368]{display:none}.pp-mobile-info[data-v-3a1fa368]{display:inline;padding:0 4px}.pp-btn[data-v-3a1fa368]{min-width:44px;min-height:44px;font-size:15px}.pp-size select[data-v-3a1fa368]{min-height:40px}}.df-mask[data-v-52953e16]{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182861;z-index:90;display:flex;justify-content:flex-end}.df[data-v-52953e16]{width:100%;max-width:520px;background:#fff;display:flex;flex-direction:column;height:100%;box-shadow:-8px 0 30px #1018281f}.df-head[data-v-52953e16]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);font-size:16px}.df-x[data-v-52953e16]{border:0;background:transparent;font-size:17px;cursor:pointer;color:var(--ink3);width:34px;height:34px;border-radius:8px}.df-x[data-v-52953e16]:hover{background:var(--bg);color:var(--ink)}.df-body[data-v-52953e16]{flex:1;overflow-y:auto;padding:18px 20px}.df-foot[data-v-52953e16]{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line)}.req[data-v-52953e16]{color:var(--danger)}textarea.input[data-v-52953e16]{min-height:92px;resize:vertical;line-height:1.6;padding:10px 12px}.df-view[data-v-52953e16]{font-size:14px}.df-vrow[data-v-52953e16]{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid #f0f2f7}.df-vlab[data-v-52953e16]{width:110px;flex:none;color:var(--ink3);font-size:13px}.df-vval[data-v-52953e16]{flex:1;min-width:0;word-break:break-all}.df-vval pre[data-v-52953e16]{margin:0;background:var(--bg);padding:8px 10px;border-radius:8px;font-size:12px;overflow-x:auto;white-space:pre-wrap}@media(max-width:640px){.df[data-v-52953e16]{max-width:100%}.df-vrow[data-v-52953e16]{flex-direction:column;gap:2px}.df-vlab[data-v-52953e16]{width:auto}}.rp-head[data-v-ce0a600e]{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}.rp-title[data-v-ce0a600e]{font-size:20px;margin:0}.rp-sub[data-v-ce0a600e]{font-size:13px;color:var(--ink3);margin-top:2px}.rp-tools[data-v-ce0a600e]{display:flex;gap:8px;flex-wrap:wrap}.rp-note[data-v-ce0a600e]{margin:0 0 14px}.rp-filter[data-v-ce0a600e]{display:flex;flex-wrap:wrap;gap:12px 14px;align-items:flex-end;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-bottom:14px}.rp-fi[data-v-ce0a600e]{display:flex;flex-direction:column;gap:5px;min-width:168px}.rp-lab[data-v-ce0a600e]{font-size:12.5px;color:var(--ink3)}.rp-in[data-v-ce0a600e]{min-height:38px;padding:6px 10px;font-size:14px;height:38px}.rp-range[data-v-ce0a600e]{display:flex;align-items:center;gap:6px}.rp-range .rp-in[data-v-ce0a600e]{width:92px}.rp-range span[data-v-ce0a600e]{color:var(--ink3)}.rp-reset[data-v-ce0a600e]{align-self:flex-end;height:38px}.rp-card[data-v-ce0a600e]{padding:0;overflow:hidden}.rp-table[data-v-ce0a600e]{font-size:13.8px;margin:0;min-width:860px}.rp-table td[data-v-ce0a600e],.rp-table th[data-v-ce0a600e]{white-space:nowrap}.rp-table td.rp-long[data-v-ce0a600e],.rp-table th.rp-long[data-v-ce0a600e]{white-space:normal}.rp-table th[data-v-ce0a600e]{position:sticky;top:0;z-index:2}.rp-table th.sortable[data-v-ce0a600e]{cursor:pointer;-webkit-user-select:none;user-select:none}.rp-table th.sortable[data-v-ce0a600e]:hover{color:var(--primary)}.rp-arrow[data-v-ce0a600e]{color:var(--primary);font-size:11px}.rp-load[data-v-ce0a600e],.rp-empty[data-v-ce0a600e]{text-align:center;padding:40px 16px;color:var(--ink3)}.rp-load[data-v-ce0a600e]{display:flex;align-items:center;justify-content:center;gap:8px}.rp-clip[data-v-ce0a600e]{display:block;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rp-long[data-v-ce0a600e]{max-width:340px}.rp-acts[data-v-ce0a600e]{display:flex;gap:5px;flex-wrap:wrap}.rp-acts-col[data-v-ce0a600e]{position:sticky;right:0;background:#fff;box-shadow:-8px 0 10px -8px #1018282e}.rp-table th.rp-acts-col[data-v-ce0a600e]{z-index:3;background:#f2f0ea}.btn-danger-text[data-v-ce0a600e]{color:var(--danger)}.btn-danger-text[data-v-ce0a600e]:hover{background:var(--danger-soft);border-color:var(--danger)}.tag-mini[data-v-ce0a600e]{font-size:11px;padding:1px 7px;margin-right:4px}.dim[data-v-ce0a600e]{color:var(--ink3)}@media(max-width:900px){.rp-head[data-v-ce0a600e]{align-items:flex-start}.rp-fi[data-v-ce0a600e]{min-width:140px;flex:1}.rp-clip[data-v-ce0a600e],.rp-long[data-v-ce0a600e]{max-width:190px}}:root{--ink: #161a26;--ink2: #4b5567;--ink3: #8a92a6;--line: #e3e7f0;--line2: #cfd5e3;--bg: #f5f7fb;--card: #ffffff;--primary: #1f5dd8;--primary-dark: #17479f;--primary-soft: #edf3ff;--ok: #0d7a52;--ok-soft: #e6f6ef;--warn: #b45309;--warn-soft: #fdf4e3;--danger: #c0342b;--danger-soft: #fdeceb;--violet: #6b46c1;--violet-soft: #f2edff;--radius: 14px;--radius-sm: 9px;--shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 6px 20px rgba(16, 24, 40, .06);--shadow-sm: 0 1px 3px rgba(16, 24, 40, .07);--sidebar-w: 232px;--font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em;color:var(--ink)}h1{font-size:30px;line-height:1.35}h2{font-size:22px;line-height:1.4}h3{font-size:18px}h4{font-size:16px}p{margin:0}.layout{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:30}.brand{padding:22px 20px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}.brand-mark{width:34px;height:34px;border-radius:9px;flex:none;background:linear-gradient(135deg,#1f5dd8,#4b8bf5);color:#fff;font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:center}.brand-name{font-size:17px;font-weight:700;letter-spacing:.01em}.brand-sub{font-size:11px;color:var(--ink3);letter-spacing:.08em}.nav{flex:1;padding:14px 12px;overflow-y:auto}.nav-group{font-size:11.5px;color:var(--ink3);letter-spacing:.1em;margin:14px 10px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:10px;color:var(--ink2);font-size:15px;margin-bottom:2px;transition:.15s}.nav-item:hover{background:var(--bg);text-decoration:none;color:var(--ink)}.nav-item.active{background:var(--primary-soft);color:var(--primary-dark);font-weight:600}.nav-item .ico{width:20px;text-align:center;font-size:15px;opacity:.85}.side-foot{padding:14px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink3)}.main{flex:1;margin-left:var(--sidebar-w);min-width:0}.main-inner{max-width:1180px;margin:0 auto;padding:30px 34px 60px}.page-head{margin-bottom:24px}.page-head .kicker{font-size:12px;letter-spacing:.12em;color:var(--ink3);text-transform:uppercase;margin-bottom:6px}.page-head .desc{color:var(--ink2);font-size:15px;margin-top:8px;max-width:720px}.head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:22px 24px}.card+.card{margin-top:16px}.card-title{font-size:17px;font-weight:600;margin-bottom:4px}.card-sub{font-size:13.5px;color:var(--ink3);margin-bottom:16px}.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.metric{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}.metric .lab{font-size:13px;color:var(--ink3);margin-bottom:6px}.metric .val{font-size:28px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.2}.metric .unit{font-size:14px;font-weight:400;color:var(--ink3);margin-left:3px}.metric .foot{font-size:12.5px;color:var(--ink3);margin-top:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 20px;border-radius:10px;border:1px solid var(--line2);background:#fff;color:var(--ink);font-size:15px;font-family:inherit;font-weight:500;cursor:pointer;transition:.15s;white-space:nowrap}.btn:hover{border-color:var(--primary);color:var(--primary);text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}.btn-ghost{background:transparent;border-color:transparent;color:var(--ink2)}.btn-ghost:hover{background:var(--bg);color:var(--ink)}.btn-sm{min-height:34px;padding:0 13px;font-size:13.5px;border-radius:8px}.btn-danger{color:var(--danger);border-color:#f0c4c0}.btn-danger:hover{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.btn-block{width:100%}.field{margin-bottom:18px}.label{display:block;font-size:14px;color:var(--ink2);margin-bottom:7px;font-weight:500}.label .req{color:var(--danger);margin-left:2px}.input,.select,textarea.input{width:100%;min-height:46px;padding:10px 14px;border:1px solid var(--line2);border-radius:10px;font-size:16px;font-family:inherit;color:var(--ink);background:#fff;transition:.15s;outline:none}.input:focus,.select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1f5dd81f}.input::placeholder{color:#a8afbf}.hint{font-size:12.5px;color:var(--ink3);margin-top:6px}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:20px;font-size:12.5px;background:var(--bg);color:var(--ink2);border:1px solid var(--line);white-space:nowrap}.tag-blue{background:var(--primary-soft);color:var(--primary-dark);border-color:#cfe0fb}.tag-ok{background:var(--ok-soft);color:var(--ok);border-color:#bfe6d4}.tag-warn{background:var(--warn-soft);color:var(--warn);border-color:#f0dcb4}.tag-danger{background:var(--danger-soft);color:var(--danger);border-color:#f2c8c4}.tag-violet{background:var(--violet-soft);color:var(--violet);border-color:#dcd0f5}.tier{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;font-size:13px;font-weight:700}.tier-chong{background:#fff2e4;color:#c25a00}.tier-wen{background:var(--primary-soft);color:var(--primary-dark)}.tier-bao{background:var(--ok-soft);color:var(--ok)}.tier-dian{background:#eef0f5;color:#5a6478}.table{width:100%;border-collapse:collapse;font-size:14.5px}.table th{text-align:left;padding:11px 12px;font-size:13px;font-weight:600;color:var(--ink2);background:#f8f9fc;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:12px;border-bottom:1px solid #f0f2f7;vertical-align:middle}.table tbody tr:hover{background:#fafbfe}.table tbody tr:last-child td{border-bottom:none}.num{font-variant-numeric:tabular-nums}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.bar{height:10px;border-radius:99px;background:#eef1f7;overflow:hidden}.bar>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#1f5dd8,#4b8bf5);transition:width .5s ease}.bar.ok>i{background:linear-gradient(90deg,#0d7a52,#2aa678)}.bar.warn>i{background:linear-gradient(90deg,#b45309,#e09127)}.bar.danger>i{background:linear-gradient(90deg,#c0342b,#e06055)}.empty{text-align:center;padding:52px 20px;color:var(--ink3);font-size:14.5px}.empty .ico{font-size:34px;opacity:.5;margin-bottom:10px}.loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:56px;color:var(--ink3);font-size:14.5px}.spinner{width:18px;height:18px;border:2px solid var(--line2);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.note{border-radius:var(--radius-sm);padding:13px 16px;font-size:14px;line-height:1.65}.note+.note{margin-top:10px}.note-info{background:var(--primary-soft);color:#14315e;border:1px solid #d3e2fb}.note-ok{background:var(--ok-soft);color:#0a4f36;border:1px solid #c3e7d6}.note-warn{background:var(--warn-soft);color:#6d3a06;border:1px solid #f0dcb4}.note-danger{background:var(--danger-soft);color:#7d2019;border:1px solid #f2c8c4}.seg{display:inline-flex;background:#eef1f7;border-radius:10px;padding:3px;gap:2px}.seg button{border:0;background:transparent;padding:8px 16px;border-radius:8px;font-size:14px;font-family:inherit;color:var(--ink2);cursor:pointer;min-height:38px}.seg button.on{background:#fff;color:var(--ink);font-weight:600;box-shadow:var(--shadow-sm)}.subject-pick{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.subject-btn{min-height:66px;border-radius:12px;border:1.5px solid var(--line2);background:#fff;font-size:18px;font-weight:600;color:var(--ink2);cursor:pointer;transition:.15s;font-family:inherit}.subject-btn:hover{border-color:var(--primary);color:var(--primary)}.subject-btn.on{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 14px #1f5dd840}.pager{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:22px}.pager .info{font-size:13.5px;color:var(--ink3)}.tabbar{display:none}.user-chip{display:flex;align-items:center;gap:9px;padding:12px 14px;border-top:1px solid var(--line)}.avatar{width:34px;height:34px;border-radius:50%;background:var(--primary-soft);color:var(--primary-dark);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex:none}.user-chip .name{font-size:14px;font-weight:600;line-height:1.3}.user-chip .sub{font-size:12px;color:var(--ink3)}@media(max-width:900px){h1{font-size:24px}h2{font-size:19px}.sidebar{display:none}.main{margin-left:0}.main-inner{padding:18px 16px 88px}.g2,.g3,.g4{grid-template-columns:1fr}.card{padding:18px 16px;border-radius:12px}.metric{padding:14px 16px}.metric .val{font-size:24px}.table{font-size:13.5px}.table th,.table td{padding:9px 8px}.hide-mobile{display:none!important}.head-row{align-items:stretch}.head-row .btn{width:100%}.subject-pick{gap:9px}.subject-btn{min-height:58px;font-size:16px}.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fffffff7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:6px 0 calc(6px + env(safe-area-inset-bottom))}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;color:var(--ink3);font-size:11.5px}.tabbar a.active{color:var(--primary)}.tabbar .tico{font-size:19px;line-height:1}}@media(max-width:380px){.subject-pick{grid-template-columns:repeat(2,1fr)}}.btn-xs{min-height:28px;padding:3px 9px;font-size:12.5px;border-radius:7px;border:1px solid var(--line2);background:#fff;color:var(--ink2);font-family:inherit;cursor:pointer;white-space:nowrap}.btn-xs:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.note-blue{border-left-color:var(--primary)}.tag-mini{font-size:11.5px;padding:1px 7px;border-radius:6px;background:var(--bg);color:var(--ink2)}.table-wrap{overflow-x:auto}.dim{color:var(--ink3)}@media print{.sidebar,.tabbar,.no-print{display:none!important}.main{margin:0}.main-inner{padding:0;max-width:none}.card{box-shadow:none;border:none;padding:0}body{background:#fff}}
