.stats-bar[data-v-2ce10ff7]{display:flex;gap:12px;flex-wrap:wrap}.stat-card[data-v-2ce10ff7]{flex:1;min-width:120px;background:#fff;border:1px solid #d0d8e8;border-radius:8px;padding:16px 20px;box-shadow:0 1px 4px #0000000f}.stat-card.domestic[data-v-2ce10ff7]{border-left:3px solid #4caf50}.stat-card.foreign[data-v-2ce10ff7]{border-left:3px solid #ff9800}.divider[data-v-2ce10ff7]{width:1px;background:#d0d8e8;margin:0 4px;align-self:stretch}.label[data-v-2ce10ff7]{font-size:12px;color:#5a6a8a;margin-bottom:6px}.value[data-v-2ce10ff7]{font-size:24px;font-weight:600;color:#1a2a44;font-variant-numeric:tabular-nums}.heatmap-wrap[data-v-6af5ddea]{position:relative}.reset-btn[data-v-6af5ddea]{position:absolute;top:10px;right:10px;z-index:10;background:#ffffffd9;border:1px solid #d0d8e8;border-radius:5px;padding:4px 10px;font-size:12px;color:#5a6a8a;cursor:pointer}.reset-btn[data-v-6af5ddea]:hover{background:#fff;color:#2272cc}.heatmap-chart[data-v-6af5ddea]{width:100%;height:520px}.table-wrap[data-v-88fbe01a]{overflow:auto;border-radius:8px;border:1px solid #d0d8e8;background:#fff;box-shadow:0 1px 4px #0000000f}table[data-v-88fbe01a]{width:100%;border-collapse:collapse;font-size:13px;color:#2c3e50}thead th[data-v-88fbe01a]{background:#f0f4f8;padding:10px 14px;text-align:left;color:#5a6a8a;font-weight:500;white-space:nowrap}thead th.count-h[data-v-88fbe01a]{text-align:right}tbody tr[data-v-88fbe01a]:nth-child(odd){background:#fff}tbody tr[data-v-88fbe01a]:nth-child(2n){background:#f8fafd}tbody tr[data-v-88fbe01a]:hover{background:#e8f0fb}td[data-v-88fbe01a]{padding:9px 14px;border-top:1px solid #edf0f5;white-space:nowrap}.rank[data-v-88fbe01a]{color:#8a9bc0;width:36px;text-align:center}.ip[data-v-88fbe01a]{font-family:monospace;color:#1a6fcc}.count[data-v-88fbe01a]{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:#c0520a}.empty[data-v-88fbe01a]{text-align:center;color:#9aaac0;padding:32px}.sync-panel[data-v-49bffc39]{display:flex;flex-direction:column;gap:16px}.desc[data-v-49bffc39]{font-size:13px;color:#5a6a8a;line-height:1.8}code[data-v-49bffc39]{background:#f0f4f8;border-radius:3px;padding:1px 5px;font-size:12px;color:#1a6fcc}.sync-btn[data-v-49bffc39]{align-self:flex-start;background:#2272cc;color:#fff;border:none;border-radius:6px;padding:8px 22px;font-size:14px;cursor:pointer}.sync-btn[data-v-49bffc39]:hover:not(:disabled){background:#1a5faa}.sync-btn[data-v-49bffc39]:disabled{opacity:.5;cursor:not-allowed}.file-list[data-v-49bffc39]{display:flex;flex-direction:column;gap:6px;background:#f8fafd;border-radius:8px;padding:12px 14px}.file-header[data-v-49bffc39]{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid #e8eef5;margin-bottom:4px}.check-all[data-v-49bffc39]{font-size:13px;color:#5a6a8a;display:flex;align-items:center;gap:6px;cursor:pointer}.file-count[data-v-49bffc39]{font-size:12px;color:#9aaac0}.file-item[data-v-49bffc39]{font-size:13px}.file-label[data-v-49bffc39]{display:flex;align-items:center;gap:10px;cursor:pointer;padding:4px 0}.file-label .fname[data-v-49bffc39]{font-family:monospace;color:#2c3e50;flex:1}.ftype[data-v-49bffc39]{font-size:11px;background:#e8eef5;border-radius:3px;padding:1px 6px;color:#5a6a8a}.fstatus[data-v-49bffc39]{font-size:11px;color:#c0351a}.fstatus.synced[data-v-49bffc39]{color:#1e8a4a}.start-btn[data-v-49bffc39]{margin-top:10px}.task-list[data-v-49bffc39]{display:flex;flex-direction:column;gap:8px}.task-item[data-v-49bffc39]{display:flex;align-items:center;gap:12px;background:#f8fafd;border-radius:6px;padding:8px 14px;font-size:13px}.task-item .fname[data-v-49bffc39]{color:#2c3e50;font-family:monospace;flex:1}.status[data-v-49bffc39]{font-size:12px}.status.pending[data-v-49bffc39]{color:#9aaac0}.status.running[data-v-49bffc39]{color:#2272cc}.status.done[data-v-49bffc39]{color:#1e8a4a}.status.error[data-v-49bffc39]{color:#c0351a}.done-msg[data-v-49bffc39]{color:#1e8a4a;font-size:14px;font-weight:500}.table-wrap[data-v-498d2309]{overflow:auto;border-radius:8px;border:1px solid #d0d8e8;background:#fff;box-shadow:0 1px 4px #0000000f;max-height:360px}table[data-v-498d2309]{width:100%;border-collapse:collapse;font-size:13px;color:#2c3e50}thead th[data-v-498d2309]{background:#f0f4f8;padding:10px 14px;text-align:left;color:#5a6a8a;font-weight:500;white-space:nowrap;position:sticky;top:0}thead th.num[data-v-498d2309]{text-align:right}tbody tr[data-v-498d2309]:nth-child(odd){background:#fff}tbody tr[data-v-498d2309]:nth-child(2n){background:#f8fafd}tbody tr[data-v-498d2309]:hover{background:#e8f0fb}td[data-v-498d2309]{padding:8px 14px;border-top:1px solid #edf0f5;white-space:nowrap}.rank[data-v-498d2309]{color:#8a9bc0;width:36px;text-align:center}.num[data-v-498d2309]{text-align:right;font-variant-numeric:tabular-nums;width:90px}.pct[data-v-498d2309]{min-width:140px}.bar-wrap[data-v-498d2309]{display:flex;align-items:center;gap:6px}.bar[data-v-498d2309]{height:8px;background:#4caf50;border-radius:4px;min-width:2px;transition:width .3s}.empty[data-v-498d2309]{text-align:center;color:#9aaac0;padding:32px}.trend-chart[data-v-78b4d642],.trend-chart[data-v-cf48cc0e]{width:100%;height:260px}*{box-sizing:border-box;margin:0;padding:0}body{background:#f0f4f8;color:#2c3e50;font-family:PingFang SC,Helvetica Neue,sans-serif}.app[data-v-a94abeab]{max-width:1400px;margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:20px}header[data-v-a94abeab]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;background:#fff;border-radius:10px;padding:16px 20px;box-shadow:0 1px 4px #00000014}h1[data-v-a94abeab]{font-size:20px;font-weight:600;color:#1a2a44}.page-label[data-v-a94abeab]{font-size:14px;color:#5a6a8a}.filters[data-v-a94abeab]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}select[data-v-a94abeab],input[type=date][data-v-a94abeab]{background:#f5f7fa;border:1px solid #d0d8e8;color:#2c3e50;border-radius:6px;padding:6px 10px;font-size:13px}button[data-v-a94abeab]{background:#2272cc;color:#fff;border:none;border-radius:6px;padding:7px 18px;font-size:13px;cursor:pointer}button[data-v-a94abeab]:hover:not(:disabled){background:#1a5faa}button[data-v-a94abeab]:disabled{opacity:.5;cursor:not-allowed}.main-row[data-v-a94abeab]{display:flex;gap:20px;align-items:flex-start}.map-col[data-v-a94abeab],.table-col[data-v-a94abeab]{flex:1;min-width:0}.chart-col[data-v-a94abeab]{flex:1;min-width:0;background:#fff;border-radius:10px;padding:16px;box-shadow:0 1px 4px #0000000f}.full-col[data-v-a94abeab]{flex:1;min-width:0}.section-title[data-v-a94abeab]{font-size:14px;color:#5a6a8a;margin-bottom:10px;font-weight:500}.upload-page[data-v-a94abeab]{background:#fff;border-radius:10px;padding:24px;box-shadow:0 1px 4px #00000014;max-width:600px}
