*{box-sizing:border-box}body{margin:0;background:#eef1f6;color:#111827;font-family:Inter,system-ui,-apple-system,sans-serif}.app{min-height:100vh}.app.shell{display:flex;align-items:stretch}.sidebar{width:220px;flex-shrink:0;background:#111827;color:#f9fafb;display:flex;flex-direction:column;padding:1rem .85rem;min-height:100vh;position:sticky;top:0;align-self:flex-start;max-height:100vh;overflow-y:auto}.side-top{display:flex;align-items:center;gap:.5rem;padding:0 .35rem 1rem;border-bottom:1px solid #374151;margin-bottom:.75rem}.brand{color:#fff;text-decoration:none;font-weight:600;font-size:.95rem}.tag{font-size:.7rem;background:#374151;padding:.12rem .4rem;border-radius:4px;color:#d1d5db}.side-nav{display:flex;flex-direction:column;gap:.2rem;flex:1}.nav-link{color:#d1d5db;text-decoration:none;font-size:.9rem;padding:.55rem .65rem;border-radius:8px}.nav-link:hover{background:#1f2937;color:#fff}.nav-link.router-link-active{background:#374151;color:#fff;font-weight:500}.side-foot{margin-top:auto;padding-top:1rem;border-top:1px solid #374151;display:flex;flex-direction:column;gap:.45rem}.user{font-size:.85rem;color:#9ca3af;padding:0 .35rem}.logout{background:transparent;border:1px solid #4b5563;color:#e5e7eb;border-radius:6px;padding:.35rem .55rem;cursor:pointer;font-size:.8rem;text-align:left}.logout:hover{background:#374151}.main{flex:1;min-width:0;padding:1.25rem 1.5rem 2rem}.main-login{padding:0;width:100%}@media(max-width:720px){.app.shell{flex-direction:column}.sidebar{width:100%;min-height:auto;max-height:none;position:static}.side-nav{flex-direction:row;flex-wrap:wrap}}.card[data-v-8af27ebf]{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.1rem 1.25rem;min-width:0;border-left-width:4px;box-shadow:0 1px 2px #0000000a}.card.blue[data-v-8af27ebf]{border-left-color:#3b82f6}.card.green[data-v-8af27ebf]{border-left-color:#10b981}.card.amber[data-v-8af27ebf]{border-left-color:#f59e0b}.card.violet[data-v-8af27ebf]{border-left-color:#8b5cf6}.card.rose[data-v-8af27ebf]{border-left-color:#f43f5e}.label[data-v-8af27ebf]{margin:0;font-size:.82rem;color:#6b7280;font-weight:500}.value[data-v-8af27ebf]{margin:.4rem 0 0;font-size:1.85rem;font-weight:700;color:#111827;letter-spacing:-.02em}.hint[data-v-8af27ebf]{margin:.35rem 0 0;font-size:.75rem;color:#9ca3af}.chart[data-v-ca1ecb15]{width:100%;height:320px}.chart[data-v-5d0085b2],.chart[data-v-ff8aabfe],.chart[data-v-11c56848]{width:100%;height:300px}.chart[data-v-01aecd84]{width:100%;height:260px}.dashboard[data-v-63172d4d]{max-width:1400px;margin:0 auto}.head[data-v-63172d4d]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.head h1[data-v-63172d4d]{margin:0;font-size:1.65rem;font-weight:700;letter-spacing:-.02em}.sub[data-v-63172d4d]{display:flex;align-items:center;gap:.4rem;margin:.35rem 0 0;color:#6b7280;font-size:.88rem}.dot[data-v-63172d4d]{width:8px;height:8px;border-radius:50%;background:#d1d5db}.dot.ok[data-v-63172d4d]{background:#22c55e}.actions[data-v-63172d4d]{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.range[data-v-63172d4d]{display:flex;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:3px}.range-btn[data-v-63172d4d]{border:none;background:transparent;padding:.35rem .75rem;border-radius:6px;font-size:.85rem;color:#6b7280;cursor:pointer}.range-btn.active[data-v-63172d4d]{background:#111827;color:#fff}.refresh[data-v-63172d4d]{border:1px solid #d1d5db;background:#fff;border-radius:8px;padding:.45rem .95rem;cursor:pointer;font-size:.88rem}.refresh[data-v-63172d4d]:hover:not(:disabled){background:#f9fafb}.refresh[data-v-63172d4d]:disabled{opacity:.6;cursor:not-allowed}.kpi-grid[data-v-63172d4d]{display:grid;grid-template-columns:repeat(5,1fr);gap:.85rem;margin-bottom:1rem}.chart-grid[data-v-63172d4d]{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem}.panel[data-v-63172d4d]{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:1rem 1.15rem .5rem;box-shadow:0 1px 2px #0000000a}.panel-wide[data-v-63172d4d]{grid-column:1 / -1}.panel h2[data-v-63172d4d]{margin:0;font-size:1rem;font-weight:600;color:#111827}.panel-desc[data-v-63172d4d]{margin:.2rem 0 .5rem;font-size:.8rem;color:#9ca3af}.empty-chart[data-v-63172d4d]{color:#9ca3af;text-align:center;padding:3rem 1rem;font-size:.9rem}.tables[data-v-63172d4d]{padding-bottom:1rem}.tabs[data-v-63172d4d]{display:flex;gap:.5rem;margin-bottom:.85rem}.tabs button[data-v-63172d4d]{border:1px solid #e5e7eb;background:#f9fafb;border-radius:8px;padding:.4rem .85rem;cursor:pointer;font-size:.85rem;color:#374151}.tabs button.active[data-v-63172d4d]{background:#111827;border-color:#111827;color:#fff}.table-wrap[data-v-63172d4d]{overflow-x:auto;border:1px solid #f3f4f6;border-radius:10px}table[data-v-63172d4d]{width:100%;border-collapse:collapse;font-size:.88rem}th[data-v-63172d4d],td[data-v-63172d4d]{padding:.65rem .85rem;text-align:left;border-bottom:1px solid #f3f4f6}th[data-v-63172d4d]{background:#f9fafb;color:#6b7280;font-weight:500}.empty[data-v-63172d4d]{text-align:center;color:#9ca3af}.status[data-v-63172d4d]{color:#6b7280;padding:2rem;text-align:center}.status.err[data-v-63172d4d]{color:#dc2626}.path-link[data-v-63172d4d]{color:#0f6b4c;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;word-break:break-all}code[data-v-63172d4d]{font-size:.82em;color:#4b5563}@media(max-width:1100px){.kpi-grid[data-v-63172d4d]{grid-template-columns:repeat(2,1fr)}.chart-grid[data-v-63172d4d]{grid-template-columns:1fr}}@media(max-width:640px){.kpi-grid[data-v-63172d4d]{grid-template-columns:1fr}}.login[data-v-6c30c948]{display:flex;justify-content:center;padding:3rem 1rem}.card[data-v-6c30c948]{width:100%;max-width:360px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem;display:flex;flex-direction:column;gap:.85rem}h1[data-v-6c30c948]{margin:0 0 .5rem;font-size:1.25rem}label[data-v-6c30c948]{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;color:#374151}input[data-v-6c30c948]{padding:.55rem .65rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem}button[data-v-6c30c948]{margin-top:.5rem;padding:.65rem;background:#2563eb;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem}button[data-v-6c30c948]:disabled{opacity:.6;cursor:not-allowed}.err[data-v-6c30c948]{color:#dc2626;margin:0;font-size:.9rem}.pager[data-v-39a6ce18]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.85rem;font-size:.85rem;color:#6b7280}.controls[data-v-39a6ce18]{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}button[data-v-39a6ce18],select[data-v-39a6ce18]{padding:.35rem .65rem;border:1px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer}button[data-v-39a6ce18]:disabled{opacity:.45;cursor:not-allowed}.page[data-v-1ce51690]{max-width:1100px}.head h1[data-v-1ce51690]{margin:0;font-size:1.5rem}.sub[data-v-1ce51690]{color:#6b7280;font-size:.9rem}.panel[data-v-1ce51690]{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1rem;margin:1rem 0}.form[data-v-1ce51690]{display:flex;flex-wrap:wrap;gap:.5rem}.form input[data-v-1ce51690]{flex:1;min-width:200px;padding:.5rem;border:1px solid #d1d5db;border-radius:6px}.form select[data-v-1ce51690]{padding:.5rem;border-radius:6px}button[data-v-1ce51690]{padding:.45rem .85rem;border-radius:6px;border:1px solid #d1d5db;background:#111827;color:#fff;cursor:pointer}button.secondary[data-v-1ce51690]{background:#fff;color:#374151}button.danger[data-v-1ce51690]{background:#dc2626;border-color:#dc2626}button[data-v-1ce51690]:disabled{opacity:.5;cursor:not-allowed}.precheck[data-v-1ce51690]{font-size:.9rem;margin:.5rem 0 0}.tabs[data-v-1ce51690]{display:flex;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.tabs button[data-v-1ce51690]{background:#f3f4f6;color:#374151}.tabs button.active[data-v-1ce51690]{background:#111827;color:#fff}.tabs .refresh[data-v-1ce51690]{margin-left:auto;background:#fff}.table-wrap[data-v-1ce51690]{overflow-x:auto;background:#fff;border:1px solid #e5e7eb;border-radius:10px}table[data-v-1ce51690]{width:100%;border-collapse:collapse;font-size:.88rem}th[data-v-1ce51690],td[data-v-1ce51690]{padding:.6rem .75rem;border-bottom:1px solid #f3f4f6;text-align:left}th[data-v-1ce51690]{background:#f9fafb;color:#6b7280}.empty[data-v-1ce51690]{text-align:center;color:#9ca3af}.actions[data-v-1ce51690]{display:flex;gap:.35rem}.status.err[data-v-1ce51690]{color:#dc2626}code[data-v-1ce51690]{font-size:.85em}.pager-wrap[data-v-1ce51690]{padding:0 .75rem .75rem}.page[data-v-cee05050]{max-width:1200px}.head h1[data-v-cee05050]{margin:0;font-size:1.5rem}.sub[data-v-cee05050]{color:#6b7280;font-size:.9rem}.filters[data-v-cee05050]{display:flex;gap:.5rem;margin:1rem 0;flex-wrap:wrap}.filters select[data-v-cee05050],.filters button[data-v-cee05050]{padding:.45rem .75rem;border-radius:6px;border:1px solid #d1d5db}.filters button[data-v-cee05050]{background:#111827;color:#fff;cursor:pointer}.table-wrap[data-v-cee05050]{overflow-x:auto;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding-bottom:.5rem}table[data-v-cee05050]{width:100%;border-collapse:collapse;font-size:.85rem}th[data-v-cee05050],td[data-v-cee05050]{padding:.55rem .7rem;border-bottom:1px solid #f3f4f6;text-align:left;vertical-align:top}th[data-v-cee05050]{background:#f9fafb;color:#6b7280}.text[data-v-cee05050]{max-width:360px;word-break:break-word}.time[data-v-cee05050]{white-space:nowrap;font-size:.8rem;color:#6b7280}.ok[data-v-cee05050]{color:#16a34a;font-weight:500}.bad[data-v-cee05050]{color:#dc2626;font-weight:500}.empty[data-v-cee05050]{text-align:center;color:#9ca3af}.status.err[data-v-cee05050]{color:#dc2626}code[data-v-cee05050]{font-size:.85em}.pager-wrap[data-v-cee05050]{padding:0 .75rem}.fl[data-v-30879475]{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem;margin-bottom:.25rem;font-size:.82rem}.name[data-v-30879475]{color:#374151;font-weight:600}.key[data-v-30879475]{color:#9ca3af;font-size:.72rem;background:transparent}.cnt[data-v-30879475]{margin-left:auto;color:#6b7280;font-variant-numeric:tabular-nums}.cnt.over[data-v-30879475]{color:#dc2626}.bf[data-v-045ac21f]{display:flex;flex-direction:column;gap:.65rem}label[data-v-045ac21f]{display:flex;flex-direction:column;gap:.15rem;font-size:.85rem}input[data-v-045ac21f],textarea[data-v-045ac21f],select[data-v-045ac21f]{padding:.4rem .55rem;border:1px solid #d1d5db;border-radius:6px;font-size:.88rem}.item[data-v-045ac21f]{border:1px solid #e5e7eb;border-radius:8px;padding:.55rem .65rem;display:flex;flex-direction:column;gap:.45rem;background:#fafafa}.item header[data-v-045ac21f]{display:flex;justify-content:space-between;font-size:.8rem;color:#6b7280}.linkish[data-v-045ac21f]{background:none;border:none;color:#b91c1c;cursor:pointer;font-size:.8rem}.ghost[data-v-045ac21f]{align-self:flex-start;background:#fff;color:#111827;border:1px solid #d1d5db;border-radius:6px;padding:.35rem .65rem;cursor:pointer}.warn[data-v-045ac21f]{color:#b45309;font-size:.88rem;margin:0}.hint[data-v-045ac21f]{color:#6b7280;font-size:.85rem;margin:0 0 .35rem}.modal[data-v-5be0d49f]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:grid;place-items:center;z-index:40;padding:.75rem}.dialog[data-v-5be0d49f]{width:min(1100px,100%);max-height:min(92vh,900px);overflow:auto;background:#fff;border-radius:12px;padding:.9rem 1rem 1.1rem;display:flex;flex-direction:column;gap:.65rem}.top[data-v-5be0d49f]{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.65rem;align-items:flex-start}.top h2[data-v-5be0d49f]{margin:0;font-size:1.15rem}.sub[data-v-5be0d49f]{margin:.2rem 0 0;color:#6b7280;font-size:.88rem}.actions[data-v-5be0d49f]{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.actions a[data-v-5be0d49f]{text-decoration:none;display:inline-flex;align-items:center}button[data-v-5be0d49f],.ghost[data-v-5be0d49f],select[data-v-5be0d49f],input[data-v-5be0d49f],textarea[data-v-5be0d49f]{padding:.4rem .65rem;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem}button[data-v-5be0d49f]{background:#111827;color:#fff;border-color:#111827;cursor:pointer}.ghost[data-v-5be0d49f],.actions a.ghost[data-v-5be0d49f]{background:#fff;color:#111827;border:1px solid #d1d5db;cursor:pointer}.layout[data-v-5be0d49f]{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:.75rem;align-items:start}@media(max-width:959px){.layout[data-v-5be0d49f]{grid-template-columns:1fr}}.left[data-v-5be0d49f]{display:flex;flex-direction:column;gap:.65rem}.card[data-v-5be0d49f]{border:1px solid #e5e7eb;border-radius:10px;padding:.7rem .8rem;background:#fff}.card h3[data-v-5be0d49f]{margin:0 0 .55rem;font-size:.95rem}.card h3 small[data-v-5be0d49f]{color:#9ca3af;font-weight:400}.card label[data-v-5be0d49f]{display:flex;flex-direction:column;gap:.15rem;margin-bottom:.5rem}.blocks[data-v-5be0d49f]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.blocks li[data-v-5be0d49f]{border:1px solid #e5e7eb;border-radius:8px;padding:.45rem .55rem;cursor:pointer;background:#fafafa}.blocks li.active[data-v-5be0d49f]{border-color:#0f6b4c;background:#f0fdf6}.row[data-v-5be0d49f]{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.row code[data-v-5be0d49f]{font-size:.72rem;color:#9ca3af}.ops[data-v-5be0d49f]{margin-top:.3rem}.mini[data-v-5be0d49f]{background:#fff;color:#111827;border:1px solid #d1d5db;padding:.15rem .4rem;font-size:.75rem;cursor:pointer}.mini.danger[data-v-5be0d49f]{color:#b91c1c}.mini[data-v-5be0d49f]:disabled{opacity:.4;cursor:not-allowed}.sw[data-v-5be0d49f]{font-size:.78rem;color:#374151;display:inline-flex;align-items:center;gap:.25rem}.add[data-v-5be0d49f]{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem}.json-pane .json-tip[data-v-5be0d49f]{margin:0 0 .4rem;font-size:.82rem;color:#6b7280}.json-pane .json-editor[data-v-5be0d49f]{width:100%;font-family:ui-monospace,Menlo,Monaco,Consolas,monospace;font-size:.8rem;line-height:1.45;-moz-tab-size:2;tab-size:2;border:1px solid #d1d5db;border-radius:8px;padding:.65rem .75rem;background:#f8fafc;white-space:pre}.json-actions[data-v-5be0d49f]{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.45rem}.status[data-v-5be0d49f]{margin:0;font-size:.88rem}.status.err[data-v-5be0d49f]{color:#dc2626}.hints[data-v-5be0d49f]{margin:0;padding-left:1.1rem;color:#b45309;font-size:.82rem}.empty[data-v-5be0d49f]{color:#9ca3af}.right[data-v-5be0d49f]{min-height:280px}.page[data-v-e80f079c]{max-width:1100px}.head h1[data-v-e80f079c]{margin:0;font-size:1.5rem}.sub[data-v-e80f079c]{color:#6b7280;font-size:.9rem}.filters[data-v-e80f079c]{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:.85rem 1rem;margin:1rem 0;display:flex;flex-direction:column;gap:.65rem}.row[data-v-e80f079c]{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}label[data-v-e80f079c]{font-size:.85rem;color:#374151;display:inline-flex;align-items:center;gap:.35rem}.check[data-v-e80f079c]{-webkit-user-select:none;user-select:none}select[data-v-e80f079c],input[data-v-e80f079c],button[data-v-e80f079c]{padding:.4rem .65rem;border:1px solid #d1d5db;border-radius:6px;font-size:.88rem}.q[data-v-e80f079c]{min-width:220px;flex:1}button[data-v-e80f079c]{background:#111827;color:#fff;cursor:pointer;border-color:#111827}.ops[data-v-e80f079c]{white-space:nowrap}.linkish[data-v-e80f079c]{background:transparent;color:#0f6b4c;border:none;padding:0 .35rem 0 0;cursor:pointer;font-size:.85rem}.linkish.danger[data-v-e80f079c]{color:#b91c1c}.table-wrap[data-v-e80f079c]{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:.5rem .75rem .85rem;overflow-x:auto}table[data-v-e80f079c]{width:100%;border-collapse:collapse;font-size:.88rem}th[data-v-e80f079c],td[data-v-e80f079c]{padding:.55rem .65rem;border-bottom:1px solid #f3f4f6;text-align:left}th[data-v-e80f079c]{background:#f9fafb;color:#6b7280}a[data-v-e80f079c]{color:#0f6b4c}.empty[data-v-e80f079c]{text-align:center;color:#9ca3af}.status.err[data-v-e80f079c]{color:#dc2626}code[data-v-e80f079c]{font-size:.85em}
