.cards[data-v-3b6fe1ad]{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:18px}.card[data-v-3b6fe1ad]{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px}.card .k[data-v-3b6fe1ad]{font-size:12px;color:var(--ink-3)}.card .v[data-v-3b6fe1ad]{font-size:26px;font-weight:600;color:var(--green-dark);margin-top:4px;letter-spacing:.5px}.panel[data-v-3b6fe1ad]{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:14px}.panel h3[data-v-3b6fe1ad]{margin:0 0 12px;font-size:14px;font-weight:600}.links[data-v-3b6fe1ad]{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.link[data-v-3b6fe1ad]{border:1px solid var(--line);border-radius:10px;padding:12px 14px;cursor:pointer;transition:all .15s}.link[data-v-3b6fe1ad]:hover{border-color:var(--green);background:#fafcf9}.lt[data-v-3b6fe1ad]{font-size:14px;font-weight:600}.ld[data-v-3b6fe1ad]{font-size:12px;color:var(--ink-3);margin-top:2px}.notes[data-v-3b6fe1ad]{margin:0;padding-left:18px;color:var(--ink-2);font-size:13px}.notes li[data-v-3b6fe1ad]{margin-bottom:4px}.crud[data-v-d6c0f21a]{display:flex;flex-direction:column;gap:12px}.toolbar[data-v-d6c0f21a]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search[data-v-d6c0f21a]{width:240px}.spacer[data-v-d6c0f21a]{flex:1}.batch[data-v-d6c0f21a]{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-2);background:#eef6ec;border:1px solid #d6e8d2;border-radius:8px;padding:7px 12px}.batch b[data-v-d6c0f21a]{color:var(--green-dark)}.pager[data-v-d6c0f21a]{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--ink-2)}.pages[data-v-d6c0f21a]{display:flex;align-items:center;gap:8px}.cur[data-v-d6c0f21a]{font-size:13px;color:var(--ink-2);min-width:62px;text-align:center}.size-sel[data-v-d6c0f21a]{width:104px;height:28px;font-size:12px}td .btn+.btn[data-v-d6c0f21a]{margin-left:6px}.field .check[data-v-17866f7e]{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);cursor:pointer;height:34px}.confirm-mask[data-v-4b987ef9]{position:fixed;inset:0;background:rgba(24,32,26,.42);display:flex;align-items:center;justify-content:center;z-index:200;padding:24px}.confirm-box[data-v-4b987ef9]{background:#fff;border-radius:14px;width:100%;max-width:400px;padding:22px 22px 16px;box-shadow:0 16px 48px rgba(24,32,26,.2)}.confirm-box h3[data-v-4b987ef9]{margin:0 0 10px;font-size:16px;font-weight:600}.confirm-foot[data-v-4b987ef9]{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.filter-sel[data-v-7b567b70]{width:132px;height:28px;font-size:12px}.thumb[data-v-7b567b70]{width:42px;height:42px;-o-object-fit:cover;object-fit:cover;border-radius:7px;border:1px solid var(--line);background:#f4f6f2;display:block}.noimg[data-v-7b567b70]{font-size:12px;color:var(--ink-3)}.step-row[data-v-7b567b70]{display:flex;align-items:center;gap:8px;margin-bottom:7px}.step-no[data-v-7b567b70]{width:22px;height:22px;border-radius:50%;background:#eef4ec;color:var(--green-dark);font-size:12px;line-height:22px;text-align:center;flex-shrink:0}.add-step[data-v-7b567b70]{margin-top:2px}.gif-preview[data-v-7b567b70]{max-width:260px;border-radius:10px;border:1px solid var(--line);display:block}.filter-sel[data-v-2ba32f1c]{width:130px;height:28px;font-size:12px}.date-sel[data-v-5463a9b7]{width:146px;height:28px;font-size:12px}.dash[data-v-5463a9b7]{color:var(--ink-3);font-size:12px}.badge-vip[data-v-15045d0a]{background:#fff4d6;color:#a9741a}.badge-expired[data-v-15045d0a],.badge-vip[data-v-15045d0a]{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px}.badge-expired[data-v-15045d0a]{background:#fdecec;color:#c0392b}.badge-none[data-v-15045d0a]{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;background:#f0f2f4;color:#98a2b3}.stat-row[data-v-c796a5a0]{display:flex;margin-bottom:16px}.stat[data-v-c796a5a0]{flex:1;background:#fff;border:1px solid #e8ecef;border-radius:8px;padding:14px 16px;margin-right:12px}.stat[data-v-c796a5a0]:last-child{margin-right:0}.stat .n[data-v-c796a5a0]{font-size:22px;font-weight:600;color:#1f2430}.stat .l[data-v-c796a5a0]{font-size:12px;color:#98a2b3;margin-top:4px}.stat.vip .n[data-v-c796a5a0]{color:#b8860b}.stat.money .n[data-v-c796a5a0]{color:#1a7f37}.panel[data-v-c796a5a0]{background:#fff;border:1px solid #e8ecef;border-radius:8px;padding:16px;margin-bottom:16px}.panel-head[data-v-c796a5a0]{display:flex;align-items:center;margin-bottom:12px}.panel-t[data-v-c796a5a0]{font-size:15px;font-weight:600;color:#1f2430}.panel-tip[data-v-c796a5a0]{font-size:12px;color:#98a2b3;margin-left:12px}.panel-note[data-v-c796a5a0]{font-size:12px;color:#98a2b3;margin-top:10px;padding-top:10px;border-top:1px dashed #e8ecef}.scope-tabs[data-v-c796a5a0]{margin-left:auto;display:flex}.tab[data-v-c796a5a0]{border:1px solid #e8ecef;background:#fff;color:#667085;font-size:12px;padding:5px 14px;margin-left:-1px;cursor:pointer}.tab[data-v-c796a5a0]:first-child{border-radius:5px 0 0 5px;margin-left:0}.tab[data-v-c796a5a0]:last-child{border-radius:0 5px 5px 0}.tab.on[data-v-c796a5a0]{background:#1a7f37;border-color:#1a7f37;color:#fff}.badge[data-v-c796a5a0]{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px}.badge.vip[data-v-c796a5a0]{background:#fff4d6;color:#a9741a}.badge.expired[data-v-c796a5a0]{background:#fdecec;color:#c0392b}.badge.none[data-v-c796a5a0]{background:#f0f2f4;color:#98a2b3}.days[data-v-c796a5a0]{color:#1a7f37;font-weight:600}.mono[data-v-c796a5a0]{font-family:Consolas,Monaco,monospace;font-size:12px}.ellipsis[data-v-c796a5a0]{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:bottom}.ops .btn[data-v-c796a5a0]{margin-right:6px}.empty[data-v-c796a5a0]{text-align:center;color:#98a2b3;padding:24px 0}.price-ipt[data-v-c796a5a0]{width:90px}.pager[data-v-c796a5a0]{display:flex;align-items:center;margin-top:12px}.pg-info[data-v-c796a5a0]{font-size:12px;color:#98a2b3}.pg-num[data-v-c796a5a0]{font-size:13px;color:#1f2430;padding:0 10px}.log-list[data-v-c796a5a0]{max-height:420px;overflow-y:auto}.log-item[data-v-c796a5a0]{border-bottom:1px dashed #eef1f4;padding:10px 0}.log-l[data-v-c796a5a0]{display:flex;align-items:center}.log-act[data-v-c796a5a0]{font-size:13px;font-weight:600;color:#1f2430}.log-delta[data-v-c796a5a0]{font-size:12px;color:#1a7f37;margin-left:8px}.log-delta.minus[data-v-c796a5a0]{color:#c0392b}.log-r[data-v-c796a5a0]{font-size:12px;color:#667085;margin-top:4px}.log-m[data-v-c796a5a0]{font-size:11px;color:#98a2b3;margin-top:2px}.login-page[data-v-665ca016]{height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(1100px 460px at 50% -8%,rgba(143,225,90,.16),transparent 70%),var(--bg)}.login-card[data-v-665ca016]{width:372px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:34px 32px 26px;box-shadow:0 14px 40px rgba(31,42,34,.07)}.brand[data-v-665ca016]{text-align:center;margin-bottom:26px}.logo[data-v-665ca016]{width:46px;height:46px;margin:0 auto 12px;border-radius:13px;background:linear-gradient(135deg,var(--green-light),var(--green));color:#fff;font-size:24px;font-weight:700;line-height:46px}.brand h1[data-v-665ca016]{margin:0;font-size:19px;font-weight:600;letter-spacing:.5px}.sub[data-v-665ca016]{margin:5px 0 0;font-size:13px;color:var(--ink-3)}.field[data-v-665ca016]{margin-bottom:15px}.err[data-v-665ca016]{margin:2px 0 12px;font-size:13px;color:var(--danger);background:#fceeec;border:1px solid #f5dad6;border-radius:8px;padding:7px 10px}.submit[data-v-665ca016]{width:100%;height:40px;border:none;border-radius:10px;background:linear-gradient(135deg,var(--green-light),var(--green));color:#fff;font-size:15px;font-weight:600;letter-spacing:3px;cursor:pointer;transition:opacity .15s}.submit[data-v-665ca016]:hover:not(:disabled){opacity:.9}.submit[data-v-665ca016]:disabled{opacity:.55;cursor:not-allowed}.tip[data-v-665ca016]{margin:16px 0 0;text-align:center;font-size:12px;color:var(--ink-3)}.layout[data-v-4d9f0add]{display:flex;height:100%}.side[data-v-4d9f0add]{width:208px;background:#22352a;display:flex;flex-direction:column;flex-shrink:0}.logo[data-v-4d9f0add]{display:flex;align-items:center;gap:10px;padding:18px 18px 16px;border-bottom:1px solid hsla(0,0%,100%,.07)}.mark[data-v-4d9f0add]{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,#8fe15a,#3e9b4f);color:#fff;font-size:17px;font-weight:700;line-height:32px;text-align:center}.logo .name[data-v-4d9f0add]{line-height:1.35}.logo .name b[data-v-4d9f0add]{display:block;color:#fff;font-size:15px;letter-spacing:1px}.logo .name span[data-v-4d9f0add]{font-size:11px;color:hsla(0,0%,100%,.5)}.menu[data-v-4d9f0add]{flex:1;padding:12px 10px 20px;overflow-y:auto}.grp[data-v-4d9f0add]{margin-bottom:14px}.grp-t[data-v-4d9f0add]{font-size:11px;color:hsla(0,0%,100%,.34);padding:4px 10px 6px;letter-spacing:.5px}.item[data-v-4d9f0add]{display:block;padding:8px 10px;border-radius:8px;color:hsla(0,0%,100%,.68);font-size:13px;cursor:pointer;transition:all .15s;margin-bottom:2px}.item[data-v-4d9f0add]:hover{background:hsla(0,0%,100%,.07);color:#fff}.item.on[data-v-4d9f0add]{background:linear-gradient(135deg,rgba(143,225,90,.22),rgba(62,155,79,.28));color:#fff;font-weight:600}.main[data-v-4d9f0add]{flex:1;display:flex;flex-direction:column;min-width:0}.topbar[data-v-4d9f0add]{height:56px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 22px;flex-shrink:0}.page-t[data-v-4d9f0add]{margin:0;font-size:16px;font-weight:600}.right[data-v-4d9f0add]{display:flex;align-items:center;gap:10px}.who[data-v-4d9f0add]{font-size:13px;color:var(--ink-2);padding:0 4px}.content[data-v-4d9f0add]{flex:1;padding:18px 22px 28px;overflow-y:auto}.app-root{height:100%}:root{--green:#3e9b4f;--green-light:#8fe15a;--green-dark:#2f7a3d;--ink:#1f2a22;--ink-2:#5f6b62;--ink-3:#9aa79b;--line:#e6eae3;--bg:#f4f6f2;--card:#fff;--danger:#e85d4f;--warn:#ba7517}*{box-sizing:border-box}#app,body,html{margin:0;padding:0;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 16px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink-2);font-size:13px;cursor:pointer;transition:all .15s;white-space:nowrap}.btn:hover{border-color:var(--green);color:var(--green)}.btn-primary{background:linear-gradient(135deg,var(--green-light),var(--green));border-color:transparent;color:#fff;font-weight:600}.btn-primary:hover{opacity:.9;color:#fff}.btn-danger{color:var(--danger);border-color:#f3d6d2}.btn-danger:hover{background:#fdf3f1;border-color:var(--danger);color:var(--danger)}.btn-sm{height:28px;padding:0 10px;font-size:12px;border-radius:6px}.btn:disabled{opacity:.5;cursor:not-allowed}.input,.select,.textarea{height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px;color:var(--ink);outline:none;transition:border-color .15s;width:100%;font-family:inherit}.input:focus,.select:focus,.textarea:focus{border-color:var(--green)}.textarea{height:auto;padding:8px 10px;resize:vertical;min-height:72px;line-height:1.6}.select{cursor:pointer}.label{display:block;font-size:12px;color:var(--ink-2);margin-bottom:5px}.label .req{color:var(--danger);margin-left:2px}.table-wrap{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}table.tb{width:100%;border-collapse:collapse}table.tb th{background:#fafbf9;color:var(--ink-2);font-size:12px;font-weight:600;text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap}table.tb td{padding:11px 12px;border-bottom:1px solid #f2f5f0;font-size:13px;vertical-align:middle}table.tb tbody tr:last-child td{border-bottom:none}table.tb tbody tr:hover{background:#fafcf9}.tb-empty{text-align:center;color:var(--ink-3);padding:48px 0!important;font-size:13px}.tag{display:inline-block;padding:1px 8px;border-radius:20px;font-size:12px;background:#eef4ec;color:var(--green-dark);white-space:nowrap}.tag-gray{background:#f1f3f0;color:var(--ink-3)}.tag-blue{background:#e9f1fa;color:#2f6da8}.tag-amber{background:#fdf3e3;color:var(--warn)}.tag-red{background:#fceeec;color:var(--danger)}.mask{position:fixed;inset:0;background:rgba(24,32,26,.42);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}.modal{background:#fff;border-radius:14px;width:100%;max-width:560px;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 16px 48px rgba(24,32,26,.18)}.modal-head{padding:16px 20px;border-bottom:1px solid var(--line);font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:space-between}.modal-close{cursor:pointer;color:var(--ink-3);font-size:20px;line-height:1;background:none;border:none;padding:0 2px}.modal-close:hover{color:var(--ink)}.modal-body{padding:18px 20px;overflow-y:auto}.modal-foot{padding:12px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}.form-grid .full{grid-column:1/-1}.toast{position:fixed;top:22px;left:50%;transform:translateX(-50%);background:rgba(31,42,34,.92);color:#fff;padding:9px 18px;border-radius:8px;font-size:13px;z-index:999;max-width:70vw}.toast.err{background:rgba(200,70,58,.95)}.confirm-text{font-size:14px;line-height:1.7;color:var(--ink)}.confirm-text b{color:var(--danger)}