.layout[data-v-81a55038]{display:flex;min-height:100vh}.sidebar[data-v-81a55038]{width:220px;flex-shrink:0;background:#0f172a;color:#cbd5e1;display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;height:100vh}.side-brand[data-v-81a55038]{display:flex;align-items:center;gap:10px;padding:0 10px 20px;border-bottom:1px solid #1e293b;margin-bottom:16px}.side-brand svg[data-v-81a55038]{width:24px;height:24px;color:#2dd4bf}.side-brand span[data-v-81a55038]{font-size:17px;font-weight:700;color:#fff}.side-nav[data-v-81a55038]{display:flex;flex-direction:column;gap:4px;flex:1}.side-item[data-v-81a55038]{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:8px;font-size:14px;font-weight:500;color:#94a3b8;transition:all .15s}.side-item svg[data-v-81a55038]{width:18px;height:18px}.side-item[data-v-81a55038]:hover{color:#fff;background:#1e293b}.side-item.active[data-v-81a55038]{color:#fff;background:var(--primary-dark)}.side-foot[data-v-81a55038]{border-top:1px solid #1e293b;padding-top:12px}.side-item.logout[data-v-81a55038]{width:100%;color:#94a3b8}.side-item.logout[data-v-81a55038]:hover{color:#fca5a5;background:#1e293b}.main[data-v-81a55038]{flex:1;min-width:0;display:flex;flex-direction:column}.topbar[data-v-81a55038]{height:60px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:50}.topbar-title[data-v-81a55038]{font-size:16px;font-weight:700}.topbar-right[data-v-81a55038]{display:flex;align-items:center;gap:12px}.topbar-user[data-v-81a55038]{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.topbar-avatar[data-v-81a55038]{width:30px;height:30px;border-radius:50%;background:var(--primary);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}.content[data-v-81a55038]{flex:1;padding:24px 28px 40px}@media(max-width:768px){.sidebar[data-v-81a55038]{width:64px}.side-brand .label[data-v-81a55038],.side-item .label[data-v-81a55038]{display:none}.side-brand[data-v-81a55038],.side-item[data-v-81a55038]{justify-content:center}.content[data-v-81a55038]{padding:16px}}.login-page[data-v-19f5b890]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(700px 350px at 50% -80px,var(--primary-light),transparent 70%),var(--bg);padding:20px}.login-card[data-v-19f5b890]{width:400px;max-width:100%;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-md);padding:40px 36px 28px;text-align:center}.login-brand[data-v-19f5b890]{display:flex;flex-direction:column;align-items:center;gap:10px}.login-brand svg[data-v-19f5b890]{width:40px;height:40px;color:var(--primary-dark)}.login-brand h1[data-v-19f5b890]{font-size:22px;font-weight:800}.login-sub[data-v-19f5b890]{font-size:13px;color:var(--muted);margin:6px 0 26px}.login-form[data-v-19f5b890]{display:flex;flex-direction:column;gap:16px;text-align:left}.field[data-v-19f5b890]{display:flex;flex-direction:column;gap:6px}.field span[data-v-19f5b890]{font-size:13px;font-weight:600}.field input[data-v-19f5b890]{padding:10px 14px;border:1px solid var(--line);border-radius:8px;font-size:15px;outline:none;transition:border-color .2s,box-shadow .2s}.field input[data-v-19f5b890]:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0d94881f}.login-error[data-v-19f5b890]{color:var(--danger);font-size:13px;text-align:center}.login-submit[data-v-19f5b890]{width:100%;padding:12px;font-size:16px;margin-top:4px}.login-foot[data-v-19f5b890]{margin-top:22px;font-size:12px;color:var(--muted)}.load-error[data-v-1c5f6755]{text-align:center;color:var(--danger);padding:60px 0}.stat-grid[data-v-1c5f6755]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stat-card[data-v-1c5f6755]{padding:18px 20px;display:flex;flex-direction:column;gap:4px}.stat-label[data-v-1c5f6755]{font-size:13px;color:var(--muted)}.stat-value[data-v-1c5f6755]{font-size:26px;font-weight:800}.chart-card[data-v-1c5f6755]{padding:22px 24px}.chart-head[data-v-1c5f6755]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.chart-head h3[data-v-1c5f6755]{font-size:16px;font-weight:700}.chart-sub[data-v-1c5f6755]{font-size:12px;color:var(--muted)}.period-tabs[data-v-1c5f6755]{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}html.dark .period-tabs[data-v-1c5f6755]{background:#0f1626}.period-btn[data-v-1c5f6755]{padding:6px 14px;font-size:13px;font-weight:600;color:var(--muted);transition:all .15s}.period-btn+.period-btn[data-v-1c5f6755]{border-left:1px solid var(--line)}.period-btn[data-v-1c5f6755]:hover{color:var(--primary)}.period-btn.on[data-v-1c5f6755]{background:var(--primary);color:#fff}.period-btn[data-v-1c5f6755]:disabled{opacity:.6;cursor:not-allowed}.legend[data-v-1c5f6755]{display:flex;gap:22px;flex-wrap:wrap;margin-bottom:10px;padding:10px 12px;background:#f8fafc;border-radius:8px;font-size:13px;color:var(--muted)}html.dark .legend[data-v-1c5f6755]{background:#101a2d}.legend-item[data-v-1c5f6755]{display:inline-flex;align-items:center;gap:7px}.legend-item b[data-v-1c5f6755]{color:var(--ink);font-size:14px}.legend-item i[data-v-1c5f6755]{width:10px;height:10px;border-radius:3px}.dot-registrations[data-v-1c5f6755],.bar-registrations[data-v-1c5f6755]{background:linear-gradient(180deg,#fbbf24,#f59e0b)}.dot-logins[data-v-1c5f6755],.bar-logins[data-v-1c5f6755]{background:linear-gradient(180deg,#60a5fa,#3b82f6)}.dot-clicks[data-v-1c5f6755],.bar-clicks[data-v-1c5f6755]{background:linear-gradient(180deg,#2dd4bf,#0d9488)}.chart-scroll[data-v-1c5f6755]{overflow-x:auto}.chart[data-v-1c5f6755]{display:flex;align-items:stretch;gap:6px;padding-top:6px}.bar-col[data-v-1c5f6755]{flex:1;min-width:30px;display:flex;flex-direction:column;gap:6px}.bar-group[data-v-1c5f6755]{height:210px;display:flex;align-items:flex-end;gap:2px}.bar[data-v-1c5f6755]{flex:1;min-width:3px;max-width:16px;border-radius:3px 3px 1px 1px;transition:opacity .15s}.bar-col:hover .bar[data-v-1c5f6755]{opacity:.65}.bar-label[data-v-1c5f6755]{font-size:11px;color:var(--muted);white-space:nowrap;text-align:center}.bar-label.placeholder[data-v-1c5f6755]{visibility:hidden}@media(max-width:900px){.stat-grid[data-v-1c5f6755]{grid-template-columns:repeat(2,1fr)}}.page[data-v-f60dfd0b]{max-width:none}.toolbar[data-v-f60dfd0b]{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.toolbar-left[data-v-f60dfd0b]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.plan-filter[data-v-f60dfd0b]{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.plan-filter select[data-v-f60dfd0b]{height:38px;border-radius:8px;border:1px solid var(--line);background:#fff;color:inherit;padding:0 10px;font-size:13px;outline:none;cursor:pointer}html.dark .plan-filter select[data-v-f60dfd0b]{background:#131c2f}.pwd-cell[data-v-f60dfd0b]{display:flex;align-items:center;gap:6px}.tag.pwd-tag[data-v-f60dfd0b]{background:#10b9811f;color:#10b981}.tag.pwd-none[data-v-f60dfd0b]{background:#ef44441f;color:#ef4444}.pwd-btn[data-v-f60dfd0b]{font-size:12px;color:var(--primary);cursor:pointer;padding:0 4px}.pwd-hash-preview[data-v-f60dfd0b]{display:flex;align-items:center;gap:4px;margin-top:4px;font-size:11px;color:var(--muted)}.pwd-hash-preview code[data-v-f60dfd0b]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:#0000000d;padding:1px 4px;border-radius:4px;font-size:10px}html.dark .pwd-hash-preview code[data-v-f60dfd0b]{background:#ffffff14}.copy-hash-btn[data-v-f60dfd0b]{background:none;border:none;color:var(--primary);font-size:11px;cursor:pointer;padding:0 2px}.copy-hash-btn[data-v-f60dfd0b]:hover{text-decoration:underline}.pwd-security-tip[data-v-f60dfd0b]{display:block;margin-top:6px;font-size:12px;color:var(--muted);line-height:1.5}.search[data-v-f60dfd0b]{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px 6px 6px 14px;min-width:320px}html.dark .search[data-v-f60dfd0b]{background:#131c2f}.search svg[data-v-f60dfd0b]{width:16px;height:16px;color:var(--muted);flex-shrink:0}.search input[data-v-f60dfd0b]{flex:1;border:none;outline:none;font-size:14px;min-width:0;background:transparent;color:inherit}.search .btn[data-v-f60dfd0b]{padding:7px 18px;font-size:13px}.count[data-v-f60dfd0b]{font-size:13px;color:var(--muted)}.action-error[data-v-f60dfd0b]{color:var(--danger);font-size:13px;margin-bottom:12px}.users-table th[data-v-f60dfd0b],.users-table td[data-v-f60dfd0b]{white-space:nowrap}.td-muted[data-v-f60dfd0b]{color:var(--muted);font-size:13px}.td-name[data-v-f60dfd0b]{font-weight:600;margin-right:8px}.td-sub[data-v-f60dfd0b]{display:block;font-size:12px;color:var(--muted);margin-top:2px}.td-ip[data-v-f60dfd0b]{font-family:Consolas,Monaco,monospace;font-size:12.5px;color:var(--muted)}.td-invited[data-v-f60dfd0b]{font-weight:600;color:#7c3aed}html.dark .td-invited[data-v-f60dfd0b]{color:#c4b5fd}.tag.self[data-v-f60dfd0b]{background:#e0e7ff;color:#4f46e5}html.dark .tag.self[data-v-f60dfd0b]{background:#252c54;color:#a5b4fc}.tag.plan[data-v-f60dfd0b]{background:#ede9fe;color:#7c3aed}html.dark .tag.plan[data-v-f60dfd0b]{background:#2c2547;color:#c4b5fd}.quota-num[data-v-f60dfd0b]{font-weight:700;font-variant-numeric:tabular-nums}.quota-num.unlimited[data-v-f60dfd0b]{color:var(--primary-dark)}.row-actions[data-v-f60dfd0b]{display:flex;gap:4px;flex-wrap:wrap}.link-btn[data-v-f60dfd0b]{padding:4px 10px;border-radius:6px;font-size:13px;font-weight:500;color:var(--primary-dark);background:var(--primary-light);transition:all .15s}.link-btn[data-v-f60dfd0b]:hover:not(:disabled){background:#99f6e4}html.dark .link-btn[data-v-f60dfd0b]:hover:not(:disabled){background:#164e4a}.link-btn.danger[data-v-f60dfd0b]{color:var(--danger);background:var(--danger-bg)}.link-btn.danger[data-v-f60dfd0b]:hover:not(:disabled){background:#fecaca}html.dark .link-btn.danger[data-v-f60dfd0b]:hover:not(:disabled){background:#55242a}.link-btn.ok[data-v-f60dfd0b]{color:#16a34a;background:#dcfce7}html.dark .link-btn.ok[data-v-f60dfd0b]{color:#4ade80;background:#143425}.link-btn.ok[data-v-f60dfd0b]:hover:not(:disabled){background:#bbf7d0}.link-btn[data-v-f60dfd0b]:disabled{opacity:.45;cursor:not-allowed}.modal-form[data-v-f60dfd0b]{display:flex;flex-direction:column;gap:14px}.m-field[data-v-f60dfd0b]{display:flex;flex-direction:column;gap:6px}.m-field span[data-v-f60dfd0b]{font-size:13px;font-weight:600}.m-field input[data-v-f60dfd0b],.m-field select[data-v-f60dfd0b]{padding:9px 12px;border:1px solid var(--line);border-radius:8px;font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}.m-field input[data-v-f60dfd0b]:focus,.m-field select[data-v-f60dfd0b]:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0d94881f}.m-error[data-v-f60dfd0b]{color:var(--danger);font-size:13px}.quick-deltas[data-v-f60dfd0b]{display:flex;gap:8px;flex-wrap:wrap}.pager[data-v-f60dfd0b]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 16px;border-top:1px solid var(--line)}.pager-info[data-v-f60dfd0b]{font-size:13px;color:var(--muted)}.pager-btns[data-v-f60dfd0b]{display:flex;gap:8px}.pager-btn[data-v-f60dfd0b]{padding:6px 14px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:13px;font-weight:600;color:var(--ink);transition:all .15s}html.dark .pager-btn[data-v-f60dfd0b]{background:#131c2f}.pager-btn[data-v-f60dfd0b]:hover:not(:disabled){border-color:var(--primary);color:var(--primary-dark)}.pager-btn[data-v-f60dfd0b]:disabled{opacity:.45;cursor:not-allowed}@media(max-width:640px){.search[data-v-f60dfd0b]{min-width:100%}.pager[data-v-f60dfd0b]{justify-content:center}}.page[data-v-a4fb6d6b]{max-width:none}.page-header[data-v-a4fb6d6b]{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:16px;flex-wrap:wrap}.page-title[data-v-a4fb6d6b]{font-size:22px;font-weight:700;margin-bottom:4px}.page-desc[data-v-a4fb6d6b]{font-size:13px;color:var(--muted)}.table-wrap[data-v-a4fb6d6b]{overflow-x:auto}.rankings-table[data-v-a4fb6d6b]{width:100%;border-collapse:collapse;font-size:13px}.rankings-table th[data-v-a4fb6d6b],.rankings-table td[data-v-a4fb6d6b]{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.rankings-table th[data-v-a4fb6d6b]{font-weight:600;color:var(--muted);font-size:12px}.th-rank[data-v-a4fb6d6b]{width:80px}.rank-tag[data-v-a4fb6d6b]{display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;border-radius:6px;padding:2px 8px}.rank-gold[data-v-a4fb6d6b]{background:#eab30826;color:#b45309}.rank-silver[data-v-a4fb6d6b]{background:#94a3b833;color:#475569}.rank-bronze[data-v-a4fb6d6b]{background:#d9770626;color:#c2410c}.rank-normal[data-v-a4fb6d6b]{color:var(--muted);font-weight:600}.top-user[data-v-a4fb6d6b]{background:#2563eb05}.td-name[data-v-a4fb6d6b]{font-weight:600;color:var(--text);display:block}.td-sub[data-v-a4fb6d6b]{font-size:11px;color:var(--muted);display:block}.td-muted[data-v-a4fb6d6b]{color:var(--muted)}.tag[data-v-a4fb6d6b]{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;background:var(--bg-hover)}.tag.plan[data-v-a4fb6d6b]{background:#2563eb1a;color:var(--primary);font-weight:500}.used-clicks[data-v-a4fb6d6b]{font-size:15px;font-weight:700;color:#2563eb;font-variant-numeric:tabular-nums}.progress-wrap[data-v-a4fb6d6b]{display:flex;align-items:center;gap:8px;min-width:140px}.progress-bar[data-v-a4fb6d6b]{flex:1;height:6px;background:var(--line);border-radius:999px;overflow:hidden}.progress-fill[data-v-a4fb6d6b]{height:100%;background:#10b981;border-radius:999px;transition:width .3s}.progress-fill.fill-warn[data-v-a4fb6d6b]{background:#f59e0b}.progress-fill.fill-danger[data-v-a4fb6d6b]{background:#ef4444}.progress-num[data-v-a4fb6d6b]{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;width:38px;text-align:right;color:var(--muted)}.td-unlimited[data-v-a4fb6d6b]{font-size:12px;color:#10b981}.quota-num[data-v-a4fb6d6b]{font-weight:600}.quota-num.quota-zero[data-v-a4fb6d6b]{color:#ef4444}.link-btn[data-v-a4fb6d6b]{background:none;border:none;color:var(--primary);font-size:13px;cursor:pointer;padding:4px 6px}.link-btn[data-v-a4fb6d6b]:hover{text-decoration:underline}.pager[data-v-a4fb6d6b]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-top:1px solid var(--line);flex-wrap:wrap;gap:12px}.pager-info[data-v-a4fb6d6b]{font-size:13px;color:var(--muted)}.pager-btns[data-v-a4fb6d6b]{display:flex;gap:6px}.pager-btn[data-v-a4fb6d6b]{padding:5px 12px;border-radius:6px;border:1px solid var(--line);background:#fff;font-size:12px;cursor:pointer;color:inherit}html.dark .pager-btn[data-v-a4fb6d6b]{background:#131c2f}.pager-btn[data-v-a4fb6d6b]:disabled{opacity:.4;cursor:not-allowed}.loading[data-v-a4fb6d6b],.empty[data-v-a4fb6d6b]{padding:40px;text-align:center;color:var(--muted)}.action-error[data-v-a4fb6d6b]{padding:10px 14px;background:#ef44441a;color:#ef4444;border-radius:8px;margin-bottom:16px;font-size:13px}.modal-mask[data-v-a4fb6d6b]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:999}.modal[data-v-a4fb6d6b]{width:90%;max-width:440px;background:#fff;border-radius:12px;padding:24px;box-shadow:0 20px 40px #0003}html.dark .modal[data-v-a4fb6d6b]{background:#1e293b}.modal h3[data-v-a4fb6d6b]{font-size:18px;font-weight:700;margin-bottom:8px}.modal-tip[data-v-a4fb6d6b]{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:16px}.modal-form[data-v-a4fb6d6b]{display:flex;flex-direction:column;gap:14px}.m-field[data-v-a4fb6d6b]{display:flex;flex-direction:column;gap:6px;font-size:13px}.m-field input[data-v-a4fb6d6b]{height:38px;border-radius:8px;border:1px solid var(--line);padding:0 12px;font-size:14px;outline:none;background:transparent;color:inherit}.quick-deltas[data-v-a4fb6d6b]{display:flex;gap:10px}.m-error[data-v-a4fb6d6b]{font-size:12px;color:#ef4444}.modal-actions[data-v-a4fb6d6b]{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.page[data-v-43a12a11]{max-width:none}.toolbar[data-v-43a12a11]{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.search[data-v-43a12a11]{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px 6px 6px 14px;min-width:320px}html.dark .search[data-v-43a12a11]{background:#131c2f}.search svg[data-v-43a12a11]{width:16px;height:16px;color:var(--muted);flex-shrink:0}.search input[data-v-43a12a11]{flex:1;border:none;outline:none;font-size:14px;min-width:0;background:transparent;color:inherit}.search .btn[data-v-43a12a11]{padding:7px 18px;font-size:13px}.count[data-v-43a12a11]{font-size:13px;color:var(--muted)}.flow-tip[data-v-43a12a11]{font-size:13px;color:var(--muted);margin:0 0 14px;padding:10px 14px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;line-height:1.7}html.dark .flow-tip[data-v-43a12a11]{background:#0c1a2b;border-color:#173a56}.action-error[data-v-43a12a11]{color:var(--danger);font-size:13px;margin-bottom:12px}.domains-table th[data-v-43a12a11],.domains-table td[data-v-43a12a11]{white-space:nowrap}.td-muted[data-v-43a12a11]{color:var(--muted);font-size:13px}.td-name[data-v-43a12a11]{font-weight:700}.td-note[data-v-43a12a11]{max-width:220px;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:13px}.tag.warn[data-v-43a12a11]{background:#fef3c7;color:#b45309}html.dark .tag.warn[data-v-43a12a11]{background:#3a2c10;color:#fcd34d}.tag.info[data-v-43a12a11]{background:#e0f2fe;color:#0369a1}html.dark .tag.info[data-v-43a12a11]{background:#0c2436;color:#7dd3fc}.tag.ok[data-v-43a12a11]{background:#dcfce7;color:#16a34a}html.dark .tag.ok[data-v-43a12a11]{background:#143425;color:#4ade80}.tag.off[data-v-43a12a11]{background:#fee2e2;color:#dc2626}html.dark .tag.off[data-v-43a12a11]{background:#4220;color:#fca5a5}.status-select[data-v-43a12a11]{padding:6px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;font-weight:600;color:var(--ink);background:#fff;outline:none;cursor:pointer;transition:border-color .2s,box-shadow .2s}html.dark .status-select[data-v-43a12a11]{background:#131c2f}.status-select[data-v-43a12a11]:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0d94881f}.status-select[data-v-43a12a11]:disabled{opacity:.5;cursor:not-allowed}.link-btn[data-v-43a12a11]{padding:4px 10px;border-radius:6px;font-size:13px;font-weight:500;color:var(--danger);background:var(--danger-bg);transition:all .15s}.link-btn[data-v-43a12a11]:hover:not(:disabled){background:#fecaca}html.dark .link-btn[data-v-43a12a11]:hover:not(:disabled){background:#55242a}.link-btn[data-v-43a12a11]:disabled{opacity:.45;cursor:not-allowed}@media(max-width:640px){.search[data-v-43a12a11]{min-width:100%}}:root{--primary: #0d9488;--primary-dark: #0f766e;--primary-light: #ccfbf1;--ink: #0f172a;--muted: #64748b;--line: #e2e8f0;--bg: #f1f5f9;--danger: #dc2626;--danger-bg: #fee2e2;--radius: 10px;--shadow-sm: 0 1px 3px rgba(15, 23, 42, .08);--shadow-md: 0 8px 24px rgba(15, 23, 42, .1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit;font-size:14.5px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border-radius:8px;font-size:14.5px;font-weight:600;transition:all .2s;white-space:nowrap}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{border:1px solid var(--line);background:#fff;color:var(--ink)}.btn-ghost:hover{border-color:var(--primary);color:var(--primary)}.btn-danger{background:var(--danger-bg);color:var(--danger)}.btn-danger:hover{background:#fecaca}.page{padding:24px;max-width:1200px;margin:0 auto;width:100%}.page-title{font-size:24px;font-weight:700;margin-bottom:20px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14.5px}th{text-align:left;padding:12px 16px;font-size:13px;font-weight:600;color:var(--muted);background:#f8fafc;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:hover{background:#f8fafc}tbody tr:last-child td{border-bottom:none}.tag{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.tag.ok{background:#dcfce7;color:#16a34a}.tag.off{background:var(--danger-bg);color:var(--danger)}.tag.admin{background:#fef3c7;color:#b45309}.tag.user{background:var(--primary-light);color:var(--primary-dark)}.empty,.loading{text-align:center;padding:48px 0;color:var(--muted);font-size:14px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.modal{width:420px;max-width:100%;background:#fff;border-radius:14px;padding:26px 24px;box-shadow:var(--shadow-md)}.modal h3{font-size:17px;font-weight:700;margin-bottom:8px}.modal-tip{font-size:13px;color:var(--muted);margin-bottom:18px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.fade-enter-active,.fade-leave-active{transition:opacity .15s}.fade-enter-from,.fade-leave-to{opacity:0}html.dark{--primary-light: #103c38;--ink: #e2e8f0;--muted: #8fa1b8;--line: #2a3550;--bg: #0b111e;--danger: #f87171;--danger-bg: #3b1a1f;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 8px 24px rgba(0, 0, 0, .45);color-scheme:dark}html.dark body{background:var(--bg);color:var(--ink)}html.dark .card,html.dark .modal,html.dark .topbar,html.dark .btn-ghost{background:#131c2f;color:var(--ink)}html.dark input,html.dark select,html.dark textarea{background:#0f1626;color:var(--ink);border-color:var(--line)}html.dark input::placeholder,html.dark textarea::placeholder{color:#5b6b84}html.dark th{background:#101a2d;color:var(--muted)}html.dark tbody tr:hover{background:#16203a}html.dark .tag.ok{background:#143425;color:#4ade80}html.dark .tag.off{background:#3b1a1f;color:#f87171}html.dark .tag.admin{background:#3a2c12;color:#fbbf24}html.dark .tag.user{background:#103c38;color:#5eead4}.theme-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--ink);transition:all .2s;flex-shrink:0}.theme-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.theme-btn svg{width:17px;height:17px}
