.admin-layout[data-v-ecdc3e01]{display:flex;min-height:100vh}.sidebar[data-v-ecdc3e01]{position:fixed;top:0;left:0;width:220px;height:100vh;background:#111827;color:#e5e7eb;display:flex;flex-direction:column;z-index:100}.sidebar-brand[data-v-ecdc3e01]{display:flex;align-items:center;gap:10px;padding:20px;border-bottom:1px solid #1f2937}.brand-icon[data-v-ecdc3e01]{display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:linear-gradient(135deg,#2563eb,#1d4ed8);border-radius:8px;font-size:16px;font-weight:700;color:#fff}.brand-text[data-v-ecdc3e01]{font-size:16px;font-weight:600;color:#fff}.sidebar-nav[data-v-ecdc3e01]{flex:1;padding:12px 0;overflow-y:auto}.nav-item[data-v-ecdc3e01]{display:block;padding:12px 20px;font-size:14px;color:#9ca3af;transition:all .2s}.nav-item[data-v-ecdc3e01]:hover{color:#fff;background:#1f2937}.nav-item.active[data-v-ecdc3e01]{color:#fff;background:#1f2937;border-right:3px solid #2563eb}.sidebar-footer[data-v-ecdc3e01]{padding:16px 20px;border-top:1px solid #1f2937}.user-name[data-v-ecdc3e01]{font-size:14px;font-weight:500;color:#fff}.user-role[data-v-ecdc3e01]{margin-top:4px;font-size:12px;color:#6b7280}.logout-btn[data-v-ecdc3e01]{margin-top:12px;width:100%;padding:8px 0;background:transparent;border:1px solid #374151;border-radius:6px;color:#9ca3af;font-size:13px;transition:all .2s}.logout-btn[data-v-ecdc3e01]:hover{border-color:#6b7280;color:#fff}.main-content[data-v-ecdc3e01]{flex:1;margin-left:220px;padding:24px 32px;min-height:100vh}.fade-enter-active[data-v-ecdc3e01],.fade-leave-active[data-v-ecdc3e01]{transition:opacity .2s ease}.fade-enter-from[data-v-ecdc3e01],.fade-leave-to[data-v-ecdc3e01]{opacity:0}@media (max-width: 768px){.sidebar[data-v-ecdc3e01]{width:0;overflow:hidden}.main-content[data-v-ecdc3e01]{margin-left:0;padding:16px}}.login-page[data-v-3309df22]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0f9ff,#e0f2fe,#dbeafe)}.login-box[data-v-3309df22]{width:100%;max-width:420px;background:#fff;border-radius:16px;box-shadow:0 10px 40px #00000014;padding:40px 36px}.login-brand[data-v-3309df22]{text-align:center;margin-bottom:32px}.brand-icon[data-v-3309df22]{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;background:linear-gradient(135deg,#2563eb,#1d4ed8);border-radius:14px;font-size:26px;font-weight:700;color:#fff;margin-bottom:16px}.brand-title[data-v-3309df22]{margin:0 0 6px;font-size:22px;font-weight:700;color:#111827}.brand-desc[data-v-3309df22]{margin:0;font-size:14px;color:#6b7280}.login-form .form-group[data-v-3309df22]{margin-bottom:18px}.error-msg[data-v-3309df22]{margin-bottom:16px;padding:10px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font-size:13px;color:#dc2626}.login-btn[data-v-3309df22]{width:100%;padding:12px 0;font-size:15px}.login-hint[data-v-3309df22]{margin-top:18px;text-align:center;font-size:13px;color:#9ca3af}.dashboard-view[data-v-411f8a3a]{--color-accent: #2563eb;--color-accent-soft: #eff6ff;--color-success: #16a34a;--color-success-soft: #f0fdf4;--color-danger: #dc2626;--color-danger-soft: #fef2f2;--color-warning: #d97706;--color-warning-soft: #fffbeb;--color-purple: #7c3aed;--color-purple-soft: #f5f3ff;--color-text: #111827;--color-text-secondary: #6b7280;--color-text-muted: #9ca3af;--color-border: #e5e7eb;--color-border-soft: #f3f4f6;--color-bg: #ffffff;--color-bg-soft: #f9fafb;--radius: 10px;--radius-sm: 6px;--shadow: 0 1px 2px rgba(0, 0, 0, .04);--shadow-hover: 0 4px 12px rgba(0, 0, 0, .06);max-width:1200px}.page-header[data-v-411f8a3a]{margin-bottom:24px}.page-title[data-v-411f8a3a]{margin:0 0 4px;font-size:22px;font-weight:600;color:var(--color-text)}.page-subtitle[data-v-411f8a3a]{margin:0;font-size:14px;color:var(--color-text-secondary)}.stats-row[data-v-411f8a3a]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat-card[data-v-411f8a3a]{display:flex;align-items:center;gap:14px;padding:18px 20px;background:var(--color-bg);border:1px solid var(--color-border-soft);border-radius:var(--radius);box-shadow:var(--shadow);transition:box-shadow .2s,transform .2s}.stat-card[data-v-411f8a3a]:hover{box-shadow:var(--shadow-hover)}.stat-link[data-v-411f8a3a]{text-decoration:none;color:inherit}.stat-link[data-v-411f8a3a]:hover{transform:translateY(-2px)}.stat-icon[data-v-411f8a3a]{width:40px;height:40px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon svg[data-v-411f8a3a]{width:20px;height:20px}.stat-icon-blue[data-v-411f8a3a]{background:var(--color-accent-soft);color:var(--color-accent)}.stat-icon-red[data-v-411f8a3a]{background:var(--color-danger-soft);color:var(--color-danger)}.stat-icon-green[data-v-411f8a3a]{background:var(--color-success-soft);color:var(--color-success)}.stat-icon-purple[data-v-411f8a3a]{background:var(--color-purple-soft);color:var(--color-purple)}.stat-body[data-v-411f8a3a]{flex:1;min-width:0}.stat-value[data-v-411f8a3a]{font-size:26px;font-weight:700;color:var(--color-text);line-height:1.2}.stat-value-accent[data-v-411f8a3a]{color:var(--color-danger)}.stat-label[data-v-411f8a3a]{margin-top:4px;font-size:13px;color:var(--color-text-secondary)}.stat-hint[data-v-411f8a3a]{margin-top:2px;font-size:11px;color:var(--color-accent);font-weight:500}.dashboard-grid[data-v-411f8a3a]{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}.panel[data-v-411f8a3a]{background:var(--color-bg);border:1px solid var(--color-border-soft);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.panel-header[data-v-411f8a3a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--color-border-soft)}.panel-title[data-v-411f8a3a]{margin:0;font-size:15px;font-weight:600;color:var(--color-text)}.panel-meta[data-v-411f8a3a]{font-size:12px;color:var(--color-text-muted)}.pie-wrap[data-v-411f8a3a]{display:flex;align-items:center;gap:28px;padding:8px 0}.pie[data-v-411f8a3a]{position:relative;width:130px;height:130px;border-radius:50%;overflow:hidden;flex-shrink:0;box-shadow:0 2px 8px #0000000f}.pie-segment[data-v-411f8a3a]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%}.seg-color-0[data-v-411f8a3a]{color:var(--color-accent)}.seg-color-1[data-v-411f8a3a]{color:var(--color-success)}.seg-color-2[data-v-411f8a3a]{color:var(--color-warning)}.seg-color-3[data-v-411f8a3a]{color:var(--color-purple)}.pie-legend[data-v-411f8a3a]{flex:1;display:flex;flex-direction:column;gap:10px;margin:0}.legend-item[data-v-411f8a3a]{display:flex;align-items:center;gap:10px;font-size:13px;padding:6px 8px;border-radius:var(--radius-sm);transition:background .15s}.legend-item[data-v-411f8a3a]:hover{background:var(--color-bg-soft)}.legend-dot[data-v-411f8a3a]{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:currentColor}.legend-name[data-v-411f8a3a]{color:var(--color-text-secondary);flex:1}.legend-value[data-v-411f8a3a]{font-weight:600;color:var(--color-text)}.legend-percent[data-v-411f8a3a]{font-size:12px;color:var(--color-text-muted);width:40px;text-align:right}.category-bars[data-v-411f8a3a]{display:flex;flex-direction:column;gap:12px;padding:4px 0}.category-bar-item[data-v-411f8a3a]{display:flex;flex-direction:column;gap:6px}.bar-header[data-v-411f8a3a]{display:flex;justify-content:space-between;font-size:13px}.bar-name[data-v-411f8a3a]{color:var(--color-text-secondary)}.bar-value[data-v-411f8a3a]{font-weight:600;color:var(--color-text)}.bar-bg[data-v-411f8a3a]{height:8px;background:var(--color-border-soft);border-radius:4px;overflow:hidden}.bar-fill[data-v-411f8a3a]{height:100%;border-radius:4px;transition:width .6s ease}.bar-fill-0[data-v-411f8a3a]{background:var(--color-accent)}.bar-fill-1[data-v-411f8a3a]{background:var(--color-success)}.bar-fill-2[data-v-411f8a3a]{background:var(--color-warning)}.bar-fill-3[data-v-411f8a3a]{background:var(--color-purple)}.trend-chart[data-v-411f8a3a]{position:relative;height:180px}.trend-svg[data-v-411f8a3a]{position:absolute;top:0;right:0;bottom:24px;left:0;width:100%;height:calc(100% - 24px);overflow:visible}.trend-x[data-v-411f8a3a]{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;font-size:11px;color:var(--color-text-muted)}.empty-inline[data-v-411f8a3a]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--color-text-muted)}.mini-stats[data-v-411f8a3a]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.mini-stat[data-v-411f8a3a]{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--color-bg);border:1px solid var(--color-border-soft);border-radius:var(--radius);box-shadow:var(--shadow)}.mini-label[data-v-411f8a3a]{font-size:13px;color:var(--color-text-secondary)}.mini-value[data-v-411f8a3a]{font-size:20px;font-weight:700;color:var(--color-text)}.log-table-wrap[data-v-411f8a3a]{overflow-x:auto}.log-table-wrap .table[data-v-411f8a3a]{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.log-table-wrap .table thead th[data-v-411f8a3a]:nth-child(1),.log-table-wrap .table tbody td[data-v-411f8a3a]:nth-child(1){width:16%}.log-table-wrap .table thead th[data-v-411f8a3a]:nth-child(2),.log-table-wrap .table tbody td[data-v-411f8a3a]:nth-child(2){width:12%}.log-table-wrap .table thead th[data-v-411f8a3a]:nth-child(3),.log-table-wrap .table tbody td[data-v-411f8a3a]:nth-child(3){width:14%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log-table-wrap .table thead th[data-v-411f8a3a]:nth-child(4),.log-table-wrap .table tbody td[data-v-411f8a3a]:nth-child(4){width:38%}.log-table-wrap .table thead th[data-v-411f8a3a]:nth-child(5),.log-table-wrap .table tbody td[data-v-411f8a3a]:nth-child(5){width:20%}.log-table-wrap .table thead th[data-v-411f8a3a]{text-align:left;padding:10px 14px;background:var(--color-bg-soft);color:var(--color-text-secondary);font-weight:600;font-size:12px;border-bottom:1px solid var(--color-border);white-space:nowrap}.log-table-wrap .table tbody td[data-v-411f8a3a]{padding:11px 14px;border-bottom:1px solid var(--color-border-soft);color:#374151;vertical-align:middle}.log-table-wrap .table tbody tr[data-v-411f8a3a]{transition:background .15s}.log-table-wrap .table tbody tr[data-v-411f8a3a]:hover{background:var(--color-bg-soft)}.log-table-wrap .table tbody tr:last-child td[data-v-411f8a3a]{border-bottom:none}.user-cell[data-v-411f8a3a]{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--color-text)}.user-avatar[data-v-411f8a3a]{width:26px;height:26px;border-radius:50%;background:var(--color-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600}.tag[data-v-411f8a3a]{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:500}.tag-success[data-v-411f8a3a]{background:var(--color-success-soft);color:var(--color-success)}.tag-danger[data-v-411f8a3a]{background:var(--color-danger-soft);color:var(--color-danger)}.tag-warning[data-v-411f8a3a]{background:var(--color-warning-soft);color:var(--color-warning)}.tag-info[data-v-411f8a3a]{background:var(--color-accent-soft);color:var(--color-accent)}.log-detail[data-v-411f8a3a]{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text-secondary);font-size:12px;word-break:break-all}.empty-row[data-v-411f8a3a]{text-align:center;color:var(--color-text-muted);padding:28px 0!important}.log-pagination[data-v-411f8a3a]{display:flex;align-items:center;justify-content:center;gap:12px;padding-top:14px;border-top:1px solid var(--color-border-soft);margin-top:4px}.page-btn[data-v-411f8a3a]{padding:6px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);font-size:13px;color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.page-btn[data-v-411f8a3a]:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.page-btn[data-v-411f8a3a]:disabled{opacity:.4;cursor:not-allowed}.page-info[data-v-411f8a3a]{font-size:13px;color:var(--color-text-secondary);min-width:60px;text-align:center}@media (max-width: 900px){.stats-row[data-v-411f8a3a]{grid-template-columns:repeat(2,1fr)}.dashboard-grid[data-v-411f8a3a],.mini-stats[data-v-411f8a3a]{grid-template-columns:1fr}}@media (max-width: 640px){.stats-row[data-v-411f8a3a]{grid-template-columns:1fr}.pie-wrap[data-v-411f8a3a]{flex-direction:column;align-items:flex-start}}.intelligence-view[data-v-da515cdc]{max-width:1200px}.filter-bar[data-v-da515cdc]{margin-bottom:20px}.page-header[data-v-da515cdc]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.filter-row[data-v-da515cdc]{display:flex;gap:12px;flex-wrap:wrap}.search-input[data-v-da515cdc]{flex:1;min-width:200px}.batch-bar[data-v-da515cdc]{display:flex;align-items:center;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid #f3f4f6}.batch-select[data-v-da515cdc]{width:160px}.table-card[data-v-da515cdc]{overflow-x:auto}.title-cell[data-v-da515cdc]{max-width:260px}.action-btns[data-v-da515cdc]{display:flex;gap:6px}.pagination[data-v-da515cdc]{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:20px}.page-info[data-v-da515cdc]{font-size:14px;color:#6b7280}.tag-options[data-v-da515cdc]{display:flex;flex-wrap:wrap;gap:10px}.tag-option[data-v-da515cdc]{display:inline-flex;align-items:center;padding:6px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;color:#4b5563;cursor:pointer}.tag-option.active[data-v-da515cdc]{background:#eff6ff;border-color:#2563eb;color:#2563eb;font-weight:500}.hidden-input[data-v-da515cdc]{position:absolute;opacity:0;pointer-events:none}.users-view[data-v-cb63a59a]{max-width:1200px}.table-card[data-v-cb63a59a]{margin-bottom:20px;overflow-x:auto}.action-btns[data-v-cb63a59a]{display:flex;gap:6px;flex-wrap:wrap}.log-section[data-v-cb63a59a]{overflow:hidden}.log-header[data-v-cb63a59a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.log-header .section-title[data-v-cb63a59a]{margin:0}.log-count[data-v-cb63a59a]{font-size:12px;color:#9ca3af}.log-table-wrap[data-v-cb63a59a]{overflow-x:auto}.log-table[data-v-cb63a59a]{table-layout:fixed;font-size:13px}.log-table thead th[data-v-cb63a59a]:nth-child(1),.log-table tbody td[data-v-cb63a59a]:nth-child(1){width:14%}.log-table thead th[data-v-cb63a59a]:nth-child(2),.log-table tbody td[data-v-cb63a59a]:nth-child(2){width:12%}.log-table thead th[data-v-cb63a59a]:nth-child(3),.log-table tbody td[data-v-cb63a59a]:nth-child(3){width:16%}.log-table thead th[data-v-cb63a59a]:nth-child(4),.log-table tbody td[data-v-cb63a59a]:nth-child(4){width:38%}.log-table thead th[data-v-cb63a59a]:nth-child(5),.log-table tbody td[data-v-cb63a59a]:nth-child(5){width:20%}.log-target[data-v-cb63a59a]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#6b7280;font-size:12px}.log-detail[data-v-cb63a59a]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#6b7280;font-size:12px;word-break:break-all}.empty-row[data-v-cb63a59a]{text-align:center;color:#9ca3af;padding:28px 0!important}.log-pagination[data-v-cb63a59a]{display:flex;align-items:center;justify-content:center;gap:12px;padding-top:14px;border-top:1px solid #f3f4f6;margin-top:4px}.page-btn[data-v-cb63a59a]{padding:6px 14px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;font-size:13px;color:#6b7280;cursor:pointer;transition:all .15s}.page-btn[data-v-cb63a59a]:hover:not(:disabled){border-color:#2563eb;color:#2563eb}.page-btn[data-v-cb63a59a]:disabled{opacity:.4;cursor:not-allowed}.page-info[data-v-cb63a59a]{font-size:13px;color:#6b7280;min-width:60px;text-align:center}.btn-warning[data-v-cb63a59a]{background-color:#d97706;color:#fff}.btn-warning[data-v-cb63a59a]:hover{background-color:#b45309}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans SC,sans-serif;color:#1f2937;background-color:#f3f4f6}#app{min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;font-size:14px}.card{background:#fff;border-radius:10px;box-shadow:0 1px 3px #0000000f;padding:20px}.tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500;line-height:1}.tag-primary{background-color:#eff6ff;color:#2563eb}.tag-success{background-color:#f0fdf4;color:#16a34a}.tag-warning{background-color:#fffbeb;color:#d97706}.tag-danger{background-color:#fef2f2;color:#dc2626}.tag-info{background-color:#f3f4f6;color:#4b5563}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border:1px solid transparent;border-radius:8px;font-size:14px;font-weight:500;transition:all .2s}.btn-primary{background-color:#2563eb;color:#fff}.btn-primary:hover{background-color:#1d4ed8}.btn-success{background-color:#16a34a;color:#fff}.btn-success:hover{background-color:#15803d}.btn-danger{background-color:#dc2626;color:#fff}.btn-danger:hover{background-color:#b91c1c}.btn-outline{background-color:#fff;border-color:#d1d5db;color:#374151}.btn-outline:hover{background-color:#f9fafb;border-color:#9ca3af}.btn-sm{padding:5px 12px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.section-title{font-size:18px;font-weight:600;margin:0 0 16px;color:#111827}.page-title{margin:0 0 8px;font-size:24px;font-weight:700;color:#111827}.page-desc{margin:0 0 24px;font-size:14px;color:#6b7280}.page-header-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.page-header-row .page-title,.page-header-row .page-desc{margin:0}.page-header-row .page-desc{margin-top:6px}.text-secondary{color:#6b7280}.empty-tip{padding:48px 0;text-align:center;color:#6b7280;background:#fff;border-radius:10px}.loading-tip{padding:48px 0;text-align:center;color:#6b7280}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{padding:12px 16px;text-align:left;border-bottom:1px solid #f3f4f6}.table th{font-weight:600;color:#6b7280;background:#f9fafb}.table tr:hover td{background:#f9fafb}.form-group{margin-bottom:16px}.form-label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:#374151}.form-input,.form-textarea,.form-select{width:100%;padding:9px 12px;border:1px solid #d1d5db;border-radius:8px;outline:none}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-textarea{min-height:80px;resize:vertical}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.modal{background:#fff;border-radius:12px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;padding:24px}.modal-large{max-width:760px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:16px;border-top:1px solid #f3f4f6}.close-btn{background:transparent;border:none;font-size:28px;color:#9ca3af;line-height:1;cursor:pointer}@media (max-width: 768px){.page-header-row{flex-direction:column;gap:12px}}
