.icon-svg[data-v-e901be6e]{flex:none;width:18px;height:18px;display:block}.login-bg[data-v-0e8f928c]{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.bg-grid[data-v-0e8f928c]{background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);opacity:.4;background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 30%,#0000 75%);mask-image:radial-gradient(#000 30%,#0000 75%)}.bg-glow[data-v-0e8f928c]{background:radial-gradient(circle, var(--primary-soft) 0%, transparent 65%);opacity:.8;width:640px;height:640px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.login-card[data-v-0e8f928c]{background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);width:380px;max-width:100%;box-shadow:var(--shadow-lg);border-radius:20px;padding:40px 36px 28px;position:relative}.brand[data-v-0e8f928c]{width:46px;height:46px;color:var(--primary-contrast);background:linear-gradient(135deg, var(--primary), var(--primary-hover));border-radius:13px;justify-content:center;align-items:center;margin-bottom:18px;display:inline-flex;box-shadow:0 4px 14px #9c6b3f52}.brand svg[data-v-0e8f928c]{width:24px;height:24px}.login-card h2[data-v-0e8f928c]{letter-spacing:-.01em;margin:0 0 4px;font-size:21px}.subtitle[data-v-0e8f928c]{color:var(--muted);margin:0 0 24px;font-size:13px}.field[data-v-0e8f928c]{margin-bottom:14px;position:relative}.field .field-ico[data-v-0e8f928c]{width:17px;height:17px;color:var(--muted);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.field input[data-v-0e8f928c]{width:100%;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);outline:none;padding:10px 13px 10px 39px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}.field input[data-v-0e8f928c]::placeholder{color:var(--muted)}.field input[data-v-0e8f928c]:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.login-btn[data-v-0e8f928c]{letter-spacing:.12em;border-radius:13px;width:100%;margin-top:10px;padding:12px 16px;font-size:15px;position:relative;overflow:hidden}.login-btn[data-v-0e8f928c]:after{content:"";opacity:0;pointer-events:none;background:radial-gradient(90px 90px at 20% 20%,#ffffff29,#0000 70%);transition:opacity .2s;position:absolute;inset:0}.login-btn[data-v-0e8f928c]:hover:after{opacity:1}.error[data-v-0e8f928c]{color:var(--danger);text-align:center;margin:14px 0 0;font-size:13px}.err-enter-active[data-v-0e8f928c]{transition:opacity .2s}.err-enter-from[data-v-0e8f928c]{opacity:0}.foot[data-v-0e8f928c]{border-top:1px dashed var(--border);text-align:center;color:var(--muted);letter-spacing:.05em;margin:24px 0 0;padding-top:16px;font-size:11.5px}.shake[data-v-0e8f928c]{animation:.45s shake-0e8f928c}@keyframes shake-0e8f928c{0%,to{transform:translate(0)}20%{transform:translate(-9px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(4px)}}.error[data-v-401823e1]{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius);margin:0 0 16px;padding:10px 14px}.stats[data-v-401823e1]{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.stat-card[data-v-401823e1]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;align-items:center;gap:14px;padding:18px 20px;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex;position:relative}.stat-card[data-v-401823e1]:hover{box-shadow:var(--shadow);border-color:var(--border-strong);transform:translateY(-3px)}.stat-ico[data-v-401823e1]{border-radius:12px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.stat-ico svg[data-v-401823e1]{width:21px;height:21px}.stat-ico.a[data-v-401823e1]{color:var(--primary);background:var(--primary-soft)}.stat-ico.b[data-v-401823e1]{color:var(--success);background:var(--success-soft)}.stat-ico.c[data-v-401823e1]{color:var(--warning);background:var(--warning-soft)}.stat-ico.d[data-v-401823e1]{color:#b4537d;background:#f7e6ee}.stat-ico.e[data-v-401823e1]{color:#4f6f9e;background:#e8eef7}.stat-ico.f[data-v-401823e1]{color:#6d5a9e;background:#ece8f6}.stat-ico.g[data-v-401823e1]{color:#3f7f8f;background:#e3f0f3}.stat-ico.h[data-v-401823e1]{color:#a06a3c;background:#f5ead9}.stat-body[data-v-401823e1]{flex-direction:column;min-width:0;display:flex}.stat-num[data-v-401823e1]{letter-spacing:-.02em;color:var(--text);font-size:26px;font-weight:700;line-height:1.1}.stat-label[data-v-401823e1]{color:var(--muted);margin-top:2px;font-size:12.5px}.stat-arrow[data-v-401823e1]{width:16px;height:16px;color:var(--border-strong);margin-left:auto;transition:color .16s,transform .16s}.stat-card:hover .stat-arrow[data-v-401823e1]{color:var(--primary);transform:translate(2px)}.dash-grid[data-v-401823e1]{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:start;gap:16px;margin-top:16px;display:grid}.chart-section[data-v-401823e1]{padding:20px 22px 14px}.chart-head[data-v-401823e1]{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.chart-head h3[data-v-401823e1]{margin:0;font-size:15px}.chart-sub[data-v-401823e1]{color:var(--muted);font-size:12px}.badge svg[data-v-401823e1]{width:13px;height:13px}.chart-wrap[data-v-401823e1]{width:100%;position:relative}.chart[data-v-401823e1]{width:100%;height:220px;display:block;overflow:visible}.tip[data-v-401823e1]{pointer-events:none;z-index:5;background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow);color:var(--muted);white-space:nowrap;border-radius:8px;flex-direction:column;align-items:center;gap:1px;padding:5px 10px;font-size:11px;display:flex;position:absolute;transform:translate(-50%,-130%)}.tip b[data-v-401823e1]{color:var(--text);font-size:13px}.recent-col[data-v-401823e1]{flex-direction:column;gap:16px;display:flex}.recent[data-v-401823e1]{padding:16px 18px}.recent-head[data-v-401823e1]{cursor:pointer;justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.recent-head h3[data-v-401823e1]{margin:0;font-size:14px}.head-arrow[data-v-401823e1]{width:15px;height:15px;color:var(--muted);transition:color .15s,transform .15s}.recent-head:hover .head-arrow[data-v-401823e1]{color:var(--primary);transform:translate(3px)}.recent-list[data-v-401823e1]{flex-direction:column;display:flex}.recent-item[data-v-401823e1]{border-bottom:1px dashed var(--border);cursor:pointer;flex-direction:column;gap:1px;padding:9px 4px;transition:background .12s;display:flex}.recent-item[data-v-401823e1]:last-child{border-bottom:none}.recent-item[data-v-401823e1]:hover{background:var(--surface-2);border-radius:8px}.recent-row[data-v-401823e1]{justify-content:space-between;align-items:center;gap:8px;display:flex}.recent-title[data-v-401823e1]{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.recent-author[data-v-401823e1]{color:var(--primary);font-size:12.5px}.recent-excerpt[data-v-401823e1]{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.recent-time[data-v-401823e1]{color:var(--muted);flex:none;font-size:11.5px}.recent-empty[data-v-401823e1]{color:var(--muted);text-align:center;margin:18px 0 6px;font-size:13px}@media (width<=1200px){.dash-grid[data-v-401823e1]{grid-template-columns:1fr}}@media (width<=900px){.stats[data-v-401823e1]{grid-template-columns:repeat(2,1fr)}}.modal-mask[data-v-3dc7e9c0]{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#26201675;justify-content:center;align-items:flex-start;padding:6vh 16px 24px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-card[data-v-3dc7e9c0]{background:var(--surface,#fff);border:1px solid var(--border,#e4e7ec);width:100%;max-width:640px;box-shadow:var(--shadow-lg,0 12px 32px #10182824);border-radius:16px;animation:.22s cubic-bezier(.3,1.3,.4,1) pop-3dc7e9c0}@keyframes pop-3dc7e9c0{0%{opacity:.5;transform:translateY(12px)scale(.97)}to{opacity:1;transform:none}}.modal-head[data-v-3dc7e9c0]{border-bottom:1px solid var(--border,#e4e7ec);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-head h3[data-v-3dc7e9c0]{margin:0;font-size:16px;font-weight:600}.modal-close[data-v-3dc7e9c0]{border-radius:var(--radius);width:30px;height:30px;color:var(--muted,#8a909a);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.modal-close[data-v-3dc7e9c0]:hover{background:var(--surface-2,#fafbfc);color:var(--text,#1f2329)}.modal-close svg[data-v-3dc7e9c0]{width:16px;height:16px}.modal-body[data-v-3dc7e9c0]{padding:18px 20px}.modal-body.scroll[data-v-3dc7e9c0]{max-height:64vh;overflow-y:auto}.modal-foot[data-v-3dc7e9c0]{border-top:1px solid var(--border,#e4e7ec);justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.fade-enter-active[data-v-3dc7e9c0],.fade-leave-active[data-v-3dc7e9c0]{transition:opacity .15s}.fade-enter-from[data-v-3dc7e9c0],.fade-leave-to[data-v-3dc7e9c0]{opacity:0}.empty-state[data-v-b889c6d8]{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:64px 24px;display:flex}.empty-ico[data-v-b889c6d8]{width:58px;height:58px;color:var(--primary);background:var(--primary-soft);border-radius:18px;justify-content:center;align-items:center;display:flex}.empty-ico svg[data-v-b889c6d8]{width:27px;height:27px}.empty-state p[data-v-b889c6d8]{color:var(--muted);margin:6px 0 4px;font-size:13.5px}.cd-mask[data-v-d6f65c9b]{z-index:900;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#28221873;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.cd-card[data-v-d6f65c9b]{background:var(--surface);border:1px solid var(--border);width:360px;max-width:100%;box-shadow:var(--shadow-lg);text-align:center;border-radius:16px;padding:26px 26px 22px}.cd-ico[data-v-d6f65c9b]{width:52px;height:52px;color:var(--danger);background:var(--danger-soft);border-radius:16px;justify-content:center;align-items:center;margin-bottom:14px;display:inline-flex}.cd-ico svg[data-v-d6f65c9b]{width:26px;height:26px}.cd-title[data-v-d6f65c9b]{margin:0 0 6px;font-size:16px}.cd-msg[data-v-d6f65c9b]{color:var(--muted);margin:0 0 22px;font-size:13.5px;line-height:1.7}.cd-actions[data-v-d6f65c9b]{justify-content:center;gap:10px;display:flex}.btn.solid.danger[data-v-d6f65c9b]{color:var(--danger-contrast);background:var(--danger);border-color:var(--danger-hover);border-bottom-width:1px;box-shadow:inset 0 1px #ffffff24,inset 0 -2px #0000002e}.btn.solid.danger[data-v-d6f65c9b]:hover{background:var(--danger-hover);border-color:var(--danger-hover)}.btn.solid.danger[data-v-d6f65c9b]:active{box-shadow:inset 0 2px 4px #00000038}.cd-enter-active[data-v-d6f65c9b],.cd-leave-active[data-v-d6f65c9b]{transition:opacity .2s}.cd-enter-active .cd-card[data-v-d6f65c9b],.cd-leave-active .cd-card[data-v-d6f65c9b]{transition:transform .2s}.cd-enter-from[data-v-d6f65c9b],.cd-leave-to[data-v-d6f65c9b]{opacity:0}.cd-enter-from .cd-card[data-v-d6f65c9b],.cd-leave-to .cd-card[data-v-d6f65c9b]{transform:translateY(10px)scale(.96)}.form-wrap[data-v-2facf86c]{flex-direction:column;gap:5px;display:flex}.form-wrap label[data-v-2facf86c]{color:var(--text-soft);margin-top:8px;font-size:13px}.page-head[data-v-99e30bd8]{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.search-box[data-v-99e30bd8]{width:260px;position:relative}.search-ico[data-v-99e30bd8]{width:16px;height:16px;color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-input[data-v-99e30bd8]{padding-left:36px}.btn svg[data-v-99e30bd8]{width:15px;height:15px}.id-cell[data-v-99e30bd8]{font-family:var(--font-mono);color:var(--muted);font-size:12.5px}.title-cell[data-v-99e30bd8]{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:320px;font-weight:500;overflow:hidden}.tags-cell[data-v-99e30bd8]{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.time-cell[data-v-99e30bd8]{color:var(--muted);white-space:nowrap;font-size:12.5px}.ops[data-v-99e30bd8]{white-space:nowrap}.ops .icon-btn[data-v-99e30bd8]{margin-right:6px}.danger-ico[data-v-99e30bd8]:hover{color:var(--danger);background:var(--danger-soft);border-color:#0000}.list-loading[data-v-99e30bd8]{text-align:center;color:var(--muted);padding:40px;font-size:13px}.form-wrap[data-v-0f41970d]{flex-direction:column;gap:5px;display:flex}.form-wrap label[data-v-0f41970d]{color:var(--text-soft);margin-top:8px;font-size:13px}.form-wrap label.mt[data-v-0f41970d]{margin-top:14px}.hint[data-v-0f41970d]{color:var(--muted);margin-top:8px;font-size:12px}.page-head[data-v-ac8ba132]{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.head-hint[data-v-ac8ba132]{color:var(--muted);align-items:center;gap:6px;margin:0;font-size:12.5px;display:flex}.hint-ico[data-v-ac8ba132]{width:14px;height:14px;color:var(--primary)}.btn svg[data-v-ac8ba132]{width:15px;height:15px}.id-cell[data-v-ac8ba132]{font-family:var(--font-mono);color:var(--muted);font-size:12.5px}.album-cell[data-v-ac8ba132]{align-items:center;gap:10px;min-width:200px;display:flex}.cover[data-v-ac8ba132]{object-fit:cover;border:1px solid var(--border);border-radius:9px;flex:none;width:42px;height:42px}.cover-empty[data-v-ac8ba132]{color:var(--muted);background:var(--surface-3);justify-content:center;align-items:center;display:inline-flex}.cover-empty svg[data-v-ac8ba132]{width:18px;height:18px}.album-title[data-v-ac8ba132]{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.loc-cell[data-v-ac8ba132]{max-width:160px}.time-cell[data-v-ac8ba132]{color:var(--muted);white-space:nowrap;font-size:12.5px}.ops[data-v-ac8ba132]{white-space:nowrap}.ops .icon-btn[data-v-ac8ba132]{margin-right:6px}.danger-ico[data-v-ac8ba132]:hover{color:var(--danger);background:var(--danger-soft);border-color:#0000}.list-loading[data-v-ac8ba132]{text-align:center;color:var(--muted);padding:40px;font-size:13px}.form-wrap[data-v-64385b6c]{flex-direction:column;gap:5px;display:flex}.form-wrap label[data-v-64385b6c]{color:var(--text-soft);margin-top:8px;font-size:13px}.page-head[data-v-8f565998]{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.head-hint[data-v-8f565998]{color:var(--muted);align-items:center;gap:6px;margin:0;font-size:12.5px;display:flex}.hint-ico[data-v-8f565998]{width:14px;height:14px;color:var(--primary)}.btn svg[data-v-8f565998]{width:15px;height:15px}.id-cell[data-v-8f565998]{font-family:var(--font-mono);color:var(--muted);font-size:12.5px}.content-cell[data-v-8f565998]{text-overflow:ellipsis;white-space:nowrap;max-width:380px;overflow:hidden}.time-cell[data-v-8f565998]{color:var(--muted);white-space:nowrap;font-size:12.5px}.ops[data-v-8f565998]{white-space:nowrap}.ops .icon-btn[data-v-8f565998]{margin-right:6px}.danger-ico[data-v-8f565998]:hover{color:var(--danger);background:var(--danger-soft);border-color:#0000}.list-loading[data-v-8f565998]{text-align:center;color:var(--muted);padding:40px;font-size:13px}.form-wrap[data-v-5062dd8d]{flex-direction:column;gap:5px;display:flex}.form-wrap label[data-v-5062dd8d]{color:var(--text-soft);margin-top:8px;font-size:13px}.page-head[data-v-9d8283d7]{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.head-hint[data-v-9d8283d7]{color:var(--muted);align-items:center;gap:6px;margin:0;font-size:12.5px;display:flex}.hint-ico[data-v-9d8283d7]{width:14px;height:14px;color:var(--primary)}.btn svg[data-v-9d8283d7]{width:15px;height:15px}.id-cell[data-v-9d8283d7]{font-family:var(--font-mono);color:var(--muted);font-size:12.5px}.title-cell[data-v-9d8283d7]{color:var(--text);font-weight:500}.artist-cell[data-v-9d8283d7]{color:var(--text-soft)}.ops[data-v-9d8283d7]{white-space:nowrap}.ops .icon-btn[data-v-9d8283d7]{margin-right:6px}.danger-ico[data-v-9d8283d7]:hover{color:var(--danger);background:var(--danger-soft);border-color:#0000}.list-loading[data-v-9d8283d7]{text-align:center;color:var(--muted);padding:40px;font-size:13px}.settings[data-v-96570c12]{max-width:720px}.block[data-v-96570c12]{margin-bottom:16px;padding:20px 24px}.block h3[data-v-96570c12]{margin:0 0 4px;font-size:15px}.block h3[data-v-96570c12]:after{content:"";background:var(--primary-soft);border-radius:3px;width:34px;height:3px;margin-top:6px;display:block}label[data-v-96570c12]{color:var(--text-soft);margin:14px 0 6px;font-size:12.5px;font-weight:600;display:block}.row[data-v-96570c12]{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=640px){.row[data-v-96570c12]{grid-template-columns:1fr}}.save-bar[data-v-96570c12]{align-items:center;gap:14px;padding:18px 4px;display:flex}.msg[data-v-96570c12]{color:var(--success);font-size:13px}.msg.error[data-v-96570c12]{color:var(--danger)}.page-head[data-v-325e3bfd]{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.head-hint[data-v-325e3bfd]{color:var(--muted);align-items:center;gap:6px;margin:0;font-size:12.5px;display:flex}.hint-ico[data-v-325e3bfd]{width:14px;height:14px;color:var(--primary)}.btn svg[data-v-325e3bfd]{width:15px;height:15px}.id-cell[data-v-325e3bfd]{font-family:var(--font-mono);color:var(--muted);font-size:12.5px}.name-cell[data-v-325e3bfd]{color:var(--text);font-weight:500}.desc[data-v-325e3bfd]{text-overflow:ellipsis;white-space:nowrap;max-width:280px;overflow:hidden}.stack[data-v-325e3bfd]{max-width:220px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.ops[data-v-325e3bfd]{white-space:nowrap}.ops .icon-btn[data-v-325e3bfd]{margin-right:6px}.danger-ico[data-v-325e3bfd]:hover{color:var(--danger);background:var(--danger-soft);border-color:#0000}label[data-v-325e3bfd]{color:var(--muted);margin:10px 0 4px;font-size:13px;display:block}.check[data-v-325e3bfd]{color:var(--text-soft);align-items:center;gap:8px;margin-top:12px;display:flex}.row[data-v-325e3bfd]{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.actions[data-v-325e3bfd]{gap:10px;margin-top:14px;display:flex}.overlay[data-v-325e3bfd]{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#26201673;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal[data-v-325e3bfd]{border-radius:16px;width:100%;max-width:560px;max-height:86vh;margin:0;overflow:auto}.modal h3[data-v-325e3bfd]{margin:0 0 4px}.page-head[data-v-3eaf2098]{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.head-hint[data-v-3eaf2098]{color:var(--muted);align-items:center;gap:6px;margin:0;font-size:12.5px;display:flex}.hint-ico[data-v-3eaf2098]{width:14px;height:14px;color:var(--primary)}.btn svg[data-v-3eaf2098]{width:15px;height:15px}.id-cell[data-v-3eaf2098]{font-family:var(--font-mono);color:var(--muted);font-size:12.5px}.name-cell[data-v-3eaf2098]{color:var(--text);font-weight:500}.url[data-v-3eaf2098]{text-overflow:ellipsis;white-space:nowrap;max-width:320px;color:var(--muted);font-family:var(--font-mono);font-size:12.5px;overflow:hidden}.ops[data-v-3eaf2098]{white-space:nowrap}.ops .icon-btn[data-v-3eaf2098]{margin-right:6px}.danger-ico[data-v-3eaf2098]:hover{color:var(--danger);background:var(--danger-soft);border-color:#0000}label[data-v-3eaf2098]{color:var(--muted);margin:10px 0 4px;font-size:13px;display:block}.row[data-v-3eaf2098]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.actions[data-v-3eaf2098]{gap:10px;margin-top:14px;display:flex}.overlay[data-v-3eaf2098]{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#26201673;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal[data-v-3eaf2098]{border-radius:16px;width:100%;max-width:520px;max-height:86vh;margin:0;overflow:auto}.modal h3[data-v-3eaf2098]{margin:0 0 4px}.page-head[data-v-a7c3f059]{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.filter[data-v-a7c3f059]{align-items:center;gap:8px;display:flex}.search-ico[data-v-a7c3f059]{width:16px;height:16px;color:var(--muted)}.filter-input[data-v-a7c3f059]{width:220px}.id-cell[data-v-a7c3f059]{font-family:var(--font-mono);color:var(--muted);font-size:12.5px}.author-cell[data-v-a7c3f059]{color:var(--text);font-weight:500}.content-cell[data-v-a7c3f059]{text-overflow:ellipsis;white-space:nowrap;max-width:340px;color:var(--text-soft);overflow:hidden}.time-cell[data-v-a7c3f059]{color:var(--muted);white-space:nowrap;font-size:12.5px}.ops[data-v-a7c3f059]{white-space:nowrap}.danger-ico[data-v-a7c3f059]:hover{color:var(--danger);background:var(--danger-soft);border-color:#0000}.list-loading[data-v-a7c3f059]{text-align:center;color:var(--muted);padding:40px;font-size:13px}.id-cell[data-v-389ac45f]{font-family:var(--font-mono);color:var(--muted);font-size:12.5px}.author-cell[data-v-389ac45f]{color:var(--text);font-weight:500}.content-cell[data-v-389ac45f]{text-overflow:ellipsis;white-space:nowrap;max-width:420px;color:var(--text-soft);overflow:hidden}.time-cell[data-v-389ac45f]{color:var(--muted);white-space:nowrap;font-size:12.5px}.ops[data-v-389ac45f]{white-space:nowrap}.danger-ico[data-v-389ac45f]:hover{color:var(--danger);background:var(--danger-soft);border-color:#0000}.list-loading[data-v-389ac45f]{text-align:center;color:var(--muted);padding:40px;font-size:13px}.page-head[data-v-1e2c32d5]{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.head-hint[data-v-1e2c32d5]{color:var(--muted);align-items:center;gap:6px;margin:0;font-size:12.5px;display:flex}.hint-ico[data-v-1e2c32d5]{width:14px;height:14px;color:var(--primary)}.btn svg[data-v-1e2c32d5]{width:15px;height:15px}.stats[data-v-1e2c32d5]{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.stat-card[data-v-1e2c32d5]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);align-items:center;gap:14px;padding:18px 20px;transition:transform .16s,box-shadow .16s;display:flex}.stat-card[data-v-1e2c32d5]:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.stat-ico[data-v-1e2c32d5]{border-radius:12px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.stat-ico svg[data-v-1e2c32d5]{width:21px;height:21px}.stat-ico.a[data-v-1e2c32d5]{color:var(--primary);background:var(--primary-soft)}.stat-ico.b[data-v-1e2c32d5]{color:var(--success);background:var(--success-soft)}.stat-ico.c[data-v-1e2c32d5]{color:var(--warning);background:var(--warning-soft)}.stat-body[data-v-1e2c32d5]{flex-direction:column;display:flex}.stat-num[data-v-1e2c32d5]{letter-spacing:-.02em;color:var(--text);font-size:26px;font-weight:700;line-height:1.1}.stat-label[data-v-1e2c32d5]{color:var(--muted);margin-top:2px;font-size:12.5px}.section-title[data-v-1e2c32d5]{color:var(--text-soft);margin:22px 0 12px;font-size:14px;font-weight:600}.sid-cell[data-v-1e2c32d5]{font-family:var(--font-mono);color:var(--muted);font-size:12px}@media (width<=900px){.stats[data-v-1e2c32d5]{grid-template-columns:1fr}}.loading[data-v-b73f4c6f]{min-height:100vh;color:var(--muted);letter-spacing:.05em;justify-content:center;align-items:center;display:flex}.layout[data-v-b73f4c6f]{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar[data-v-b73f4c6f]{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;height:100vh;padding:20px 14px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.logo[data-v-b73f4c6f]{align-items:center;gap:11px;padding:2px 10px 20px;display:flex}.logo-mark[data-v-b73f4c6f]{width:38px;height:38px;color:var(--primary-contrast);background:linear-gradient(135deg, var(--primary), var(--primary-hover));border-radius:11px;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 3px 10px #9c6b3f4d}.logo-mark svg[data-v-b73f4c6f]{width:20px;height:20px}.logo-text[data-v-b73f4c6f]{flex-direction:column;line-height:1.25;display:flex}.logo-text b[data-v-b73f4c6f]{letter-spacing:-.01em;font-size:15px;font-weight:700}.logo-text span[data-v-b73f4c6f]{color:var(--muted);letter-spacing:.02em;font-size:11px}.nav[data-v-b73f4c6f]{flex-direction:column;flex:1;gap:2px;display:flex}.nav-group[data-v-b73f4c6f]{margin-bottom:4px}.nav-group-label[data-v-b73f4c6f]{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:16px 12px 5px;font-size:10.5px;font-weight:600}.nav-item[data-v-b73f4c6f]{border-radius:var(--radius);color:var(--text-soft);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:8px 11px;font-size:13.5px;font-weight:500;transition:background .14s,color .14s;display:flex}.nav-item[data-v-b73f4c6f]:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav-item.active[data-v-b73f4c6f]{color:var(--primary);background:var(--primary-soft);font-weight:600}.nav-ico[data-v-b73f4c6f]{width:17px;height:17px}.sidebar-foot[data-v-b73f4c6f]{border-top:1px solid var(--border);color:var(--muted);flex-direction:column;gap:2px;margin-top:8px;padding:14px 12px 0;font-size:11.5px;display:flex}.foot-site[data-v-b73f4c6f]{color:var(--text-soft);font-weight:600;font-family:var(--font-mono);font-size:11px}.main[data-v-b73f4c6f]{flex-direction:column;min-width:0;min-height:100vh;display:flex}.topbar[data-v-b73f4c6f]{z-index:20;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:14px 28px;display:flex;position:sticky;top:0}.crumbs[data-v-b73f4c6f]{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.crumb-sep[data-v-b73f4c6f]{opacity:.5}.page-title[data-v-b73f4c6f]{color:var(--text);letter-spacing:-.01em;margin:0;font-size:17px;font-weight:700}.top-actions[data-v-b73f4c6f]{align-items:center;gap:8px;display:flex}.btn-ico[data-v-b73f4c6f]{width:15px;height:15px}.danger-ghost[data-v-b73f4c6f]{color:var(--danger)}.danger-ghost[data-v-b73f4c6f]:hover{color:var(--danger);background:var(--danger-soft);border-color:#0000}.content[data-v-b73f4c6f]{padding:26px 28px 40px}.page-enter-active[data-v-b73f4c6f],.page-leave-active[data-v-b73f4c6f]{transition:opacity .18s,transform .18s}.page-enter-from[data-v-b73f4c6f]{opacity:0;transform:translateY(6px)}.page-leave-to[data-v-b73f4c6f]{opacity:0;transform:translateY(-4px)}.toast-wrap[data-v-b73f4c6f]{z-index:9999;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;top:18px;right:18px}.toast[data-v-b73f4c6f]{min-width:230px;max-width:360px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius);box-shadow:var(--shadow);pointer-events:auto;align-items:center;gap:10px;padding:11px 16px;font-size:13.5px;display:flex}.toast svg[data-v-b73f4c6f]{flex:none;width:18px;height:18px}.toast.success[data-v-b73f4c6f]{border-left-color:var(--success)}.toast.success svg[data-v-b73f4c6f]{color:var(--success)}.toast.error[data-v-b73f4c6f]{border-left-color:var(--danger)}.toast.error svg[data-v-b73f4c6f]{color:var(--danger)}.toast.info svg[data-v-b73f4c6f]{color:var(--primary)}.toast-enter-active[data-v-b73f4c6f],.toast-leave-active[data-v-b73f4c6f]{transition:all .25s}.toast-enter-from[data-v-b73f4c6f],.toast-leave-to[data-v-b73f4c6f]{opacity:0;transform:translate(24px)}@media (width<=860px){.layout[data-v-b73f4c6f]{grid-template-columns:1fr}.sidebar[data-v-b73f4c6f]{border-right:none;border-bottom:1px solid var(--border);flex-flow:wrap;align-items:center;height:auto;padding:12px;position:static}.logo[data-v-b73f4c6f]{padding:0 6px}.nav[data-v-b73f4c6f]{flex-flow:wrap;flex:100%;order:3;gap:4px}.nav-group[data-v-b73f4c6f]{display:contents}.nav-group-label[data-v-b73f4c6f]{display:none}.nav-item[data-v-b73f4c6f]{flex:0 auto}.sidebar-foot[data-v-b73f4c6f]{display:none}.topbar[data-v-b73f4c6f]{padding:12px 16px}.content[data-v-b73f4c6f]{padding:18px 16px 32px}}:root,:root[data-theme=light]{--bg:#f6f3ec;--bg-2:#efeade;--surface:#fffdf8;--surface-2:#faf6ee;--surface-3:#f3ede1;--text:#2b2620;--text-soft:#51493e;--muted:#8d8577;--border:#e8e0d2;--border-strong:#d4c7b2;--primary:#9c6b3f;--primary-hover:#87562f;--primary-active:#76492a;--primary-soft:#f3ebe0;--primary-softer:#f9f3ea;--primary-contrast:#fff;--success:#4d7c59;--success-soft:#e7f0e8;--warning:#a87a26;--warning-soft:#f7eed9;--danger:#c94a3a;--danger-hover:#b13c2e;--danger-soft:#fbece9;--danger-contrast:#fff;--shadow-sm:0 1px 2px #5448370f;--shadow:0 6px 20px #5448371a;--shadow-lg:0 18px 48px #5448372e;--radius:10px;--radius-lg:14px;--radius-full:999px;--font:"Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, -apple-system, sans-serif;--font-mono:"Cascadia Code", "SF Mono", Consolas, "Courier New", monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#211d17;--bg-2:#28231c;--surface:#2a251e;--surface-2:#322c23;--surface-3:#3a3227;--text:#eae4d8;--text-soft:#b7ae9e;--muted:#837a69;--border:#3a332a;--border-strong:#4b4135;--primary:#c79468;--primary-hover:#d3a67e;--primary-active:#ddb28d;--primary-soft:#33291d;--primary-softer:#2e2519;--primary-contrast:#241b10;--success:#86b68f;--success-soft:#26352a;--warning:#d2a350;--warning-soft:#3a3120;--danger:#e07a6d;--danger-hover:#e98d81;--danger-soft:#3a2320;--danger-contrast:#2a1613;--shadow-sm:0 1px 2px #00000059;--shadow:0 8px 24px #0006;--shadow-lg:0 20px 56px #0000008c}}:root[data-theme=dark]{--bg:#211d17;--bg-2:#28231c;--surface:#2a251e;--surface-2:#322c23;--surface-3:#3a3227;--text:#eae4d8;--text-soft:#b7ae9e;--muted:#837a69;--border:#3a332a;--border-strong:#4b4135;--primary:#c79468;--primary-hover:#d3a67e;--primary-active:#ddb28d;--primary-soft:#33291d;--primary-softer:#2e2519;--primary-contrast:#241b10;--success:#86b68f;--success-soft:#26352a;--warning:#d2a350;--warning-soft:#3a3120;--danger:#e07a6d;--danger-hover:#e98d81;--danger-soft:#3a2320;--danger-contrast:#2a1613;--shadow-sm:0 1px 2px #00000059;--shadow:0 8px 24px #0006;--shadow-lg:0 20px 56px #0000008c}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.6}a{color:var(--primary);text-decoration:none}h1,h2,h3{letter-spacing:-.01em;font-weight:700}code,pre{font-family:var(--font-mono)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:content-box;border:2px solid #0000}.btn{letter-spacing:.02em;color:var(--text-soft);background:var(--surface);border:1px solid var(--border-strong);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-bottom-width:2px;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:7px 16px;font-size:13.5px;font-weight:600;line-height:1.4;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform 80ms;display:inline-flex}.btn:hover{color:var(--primary);background:var(--surface-2);border-color:var(--primary)}.btn:active{border-bottom-width:1px;transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.btn.primary{color:var(--primary-contrast);background:var(--primary);border-color:var(--primary-active);border-bottom-width:1px;box-shadow:inset 0 1px #ffffff24,inset 0 -2px #00000029}.btn.primary:hover{color:var(--primary-contrast);background:var(--primary-hover);border-color:var(--primary-active);box-shadow:inset 0 1px #ffffff2e,inset 0 -2px #0003}.btn.primary:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #00000038}.btn.primary:disabled{background:var(--primary);border-color:var(--primary-active);box-shadow:none}.btn.danger{color:var(--danger);background:0 0;border-color:#0000;border-bottom-width:1px}.btn.danger:hover{color:var(--danger-hover);background:var(--danger-soft);border-color:#0000}.btn.ghost{background:0 0;border-color:#0000;border-bottom-width:1px}.btn.ghost:hover{color:var(--primary);background:var(--surface-2);border-color:var(--border)}.btn.sm{padding:4px 12px;font-size:12.5px}.btn.loading{pointer-events:none;opacity:.85}.btn.loading:before{content:"";border:2px solid;border-top-color:#0000;border-radius:50%;flex:none;width:13px;height:13px;animation:.65s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{width:34px;height:34px;color:var(--muted);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:11px;justify-content:center;align-items:center;transition:background-color .15s,border-color .15s,color .15s,transform 80ms;display:inline-flex}.icon-btn:hover{color:var(--primary);background:var(--primary-softer);border-color:var(--primary-soft)}.icon-btn:active{transform:scale(.94)}.icon-btn svg{width:17px;height:17px}.input,input[type=text],input[type=password],input[type=email],input[type=url],input[type=number],input[type=search],textarea,select{width:100%;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);outline:none;padding:8px 12px;font-family:inherit;font-size:13.5px;transition:border-color .15s,box-shadow .15s}.input::placeholder,input::placeholder,textarea::placeholder{color:var(--muted)}.input:focus,input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}textarea{resize:vertical}label{color:var(--text-soft);margin:14px 0 6px;font-size:12.5px;font-weight:600;display:block}.hint{color:var(--muted);margin-top:5px;font-size:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:22px 26px}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:auto hidden}table{border-collapse:separate;border-spacing:0;width:100%;font-size:13.5px}thead th{letter-spacing:.05em;text-transform:uppercase;text-align:left;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--border-strong);white-space:nowrap;padding:10px 14px;font-size:11.5px;font-weight:600}tbody td{color:var(--text-soft);border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 14px}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background .12s}tbody tr:hover td{background:var(--surface-2)}td:first-child,th:first-child{padding-left:18px}td:last-child,th:last-child{padding-right:18px}.badge{color:var(--primary);background:var(--primary-soft);border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:4px;padding:2px 10px;font-size:12px;font-weight:500;line-height:1.7;display:inline-flex}.badge.success{color:var(--success);background:var(--success-soft)}.badge.warning{color:var(--warning);background:var(--warning-soft)}.badge.danger{color:var(--danger);background:var(--danger-soft)}.badge.neutral{color:var(--muted);background:var(--surface-3);border:1px solid var(--border)}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:64px 24px;display:flex}.empty-state .empty-ico{background:var(--primary-soft);width:56px;height:56px;color:var(--primary);border-radius:18px;justify-content:center;align-items:center;display:flex}.empty-state .empty-ico svg{width:26px;height:26px}.empty-state p{color:var(--muted);margin:4px 0 0;font-size:13.5px}.toast-wrap{z-index:9999;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;top:18px;right:18px}.toast{min-width:240px;max-width:360px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius);box-shadow:var(--shadow);pointer-events:auto;align-items:center;gap:10px;padding:11px 16px;font-size:13.5px;display:flex}.toast svg{flex:none;width:18px;height:18px}.toast.success{border-left-color:var(--success)}.toast.success svg{color:var(--success)}.toast.error{border-left-color:var(--danger)}.toast.error svg{color:var(--danger)}.toast-enter-active,.toast-leave-active{transition:all .25s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(24px)}body,.sidebar,.topbar,.table-wrap,.card,.input{transition:background .25s,color .25s,border-color .25s}.btn,.icon-btn{transition:background-color .2s,color .2s,border-color .2s,box-shadow .15s,transform 80ms}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
