.topbar[data-v-f79ee75b]{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;border-bottom:1px solid var(--border);background:var(--bg-elev);position:sticky;top:0;z-index:10}.brand[data-v-f79ee75b]{display:flex;align-items:center;gap:12px}.logo[data-v-f79ee75b]{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:#cfe6ff;color:var(--neon-blue)}html.dark .logo[data-v-f79ee75b]{background:#1a2a3a}.brand h1[data-v-f79ee75b]{margin:0;font-size:17px;font-weight:600;letter-spacing:.4px}.empty[data-v-20d16ae1]{padding:32px;text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius-sm)}.err[data-v-71ebdfe7]{margin:12px 0 0;padding:8px 12px;background:#ff2d5514;border:1px solid var(--neon-red);border-radius:var(--radius-sm);color:var(--neon-red);font-size:12px;display:flex;align-items:center;gap:6px}.reports[data-v-71ebdfe7]{margin-top:18px}.reports h4[data-v-71ebdfe7]{margin:0 0 10px;font-size:13px;font-weight:600;color:var(--fg-soft)}.report[data-v-71ebdfe7]{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;background:var(--bg-soft)}.rh[data-v-71ebdfe7]{display:flex;justify-content:space-between;align-items:center}.rh strong[data-v-71ebdfe7]{font-weight:600;font-size:13px}.rb[data-v-71ebdfe7]{font-size:11px;margin-top:4px}.rd[data-v-71ebdfe7]{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.dchip[data-v-71ebdfe7]{display:inline-flex;align-items:center;gap:4px;font-size:11px;background:var(--bg-elev);padding:2px 6px;border-radius:4px;border:1px solid var(--border)}.dchip em[data-v-71ebdfe7]{font-style:normal;color:var(--fg-soft)}.layout[data-v-111e63ed]{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;padding:24px 28px;max-width:1400px;margin:0 auto}.col[data-v-111e63ed]{display:flex;flex-direction:column;gap:16px}.errors[data-v-111e63ed]{border-color:var(--neon-yellow);background:#ffcc000f}.errors h3[data-v-111e63ed]{color:var(--neon-yellow)}.errors ul[data-v-111e63ed]{margin:0;padding-left:18px;font-size:12px;color:var(--fg-soft)}.errors code[data-v-111e63ed]{color:var(--neon-red)}@media(max-width:900px){.layout[data-v-111e63ed]{grid-template-columns:1fr}}:root{--bg: #ffffff;--bg-soft: #f5f5f7;--bg-elev: #ffffff;--fg: #111111;--fg-soft: #555555;--fg-mute: #999999;--border: #e5e5e5;--border-strong: #d0d0d0;--neon-red: #ff2d55;--neon-yellow: #ffcc00;--neon-blue: #007aff;--shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 4px 16px rgba(0, 0, 0, .04);--radius: 10px;--radius-sm: 6px;--transition: .18s cubic-bezier(.4, 0, .2, 1)}html.dark{--bg: #0a0a0a;--bg-soft: #141414;--bg-elev: #1a1a1a;--fg: #f5f5f5;--fg-soft: #aaaaaa;--fg-mute: #666666;--border: #2a2a2a;--border-strong: #3a3a3a;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .5)}*{box-sizing:border-box}html,body,#app{margin:0;padding:0;height:100%;background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5;transition:background var(--transition),color var(--transition);-webkit-font-smoothing:antialiased}button{font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--fg-mute)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-elev);color:var(--fg);cursor:pointer;transition:all var(--transition);font-size:13px;user-select:none}.btn:hover{border-color:var(--fg);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{background:var(--neon-blue);border-color:var(--neon-blue);color:#fff;font-weight:600}.btn-primary:hover{background:#0066d6;border-color:#0066d6;box-shadow:0 4px 16px #007aff66}.btn-danger{color:var(--neon-red);border-color:transparent;padding:4px 8px}.btn-danger:hover{background:#ff2d551a;border-color:var(--neon-red)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--bg-soft);border-color:var(--border)}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card h3{margin:0 0 12px;font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}.muted{color:var(--fg-mute);font-size:12px}input.field,textarea.field,select.field{width:100%;padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--fg);font-family:inherit;font-size:13px;transition:border-color var(--transition);outline:none}input.field:focus,textarea.field:focus,select.field:focus{border-color:var(--neon-blue)}textarea.field{resize:vertical;min-height:160px;font-family:Consolas,Monaco,monospace}table.t{width:100%;border-collapse:collapse;font-size:13px}table.t th,table.t td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border)}table.t th{color:var(--fg-soft);font-weight:500;background:var(--bg-soft)}table.t tr:hover td{background:var(--bg-soft)}table.t td .field{padding:4px 8px;font-size:13px}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;letter-spacing:.5px}.badge.l1{background:#9993;color:var(--fg-soft)}.badge.l2{background:#007aff26;color:var(--neon-blue)}.badge.l3{background:#ffcc002e;color:#b88a00}.badge.l4{background:#ff2d5526;color:var(--neon-red)}.badge.l5{background:linear-gradient(135deg,var(--neon-red),var(--neon-yellow),var(--neon-blue));color:#fff}html.dark .badge.l3{color:var(--neon-yellow)}.progress{height:6px;background:var(--bg-soft);border-radius:3px;overflow:hidden}.progress>div{height:100%;background:linear-gradient(90deg,var(--neon-blue),var(--neon-yellow));transition:width .2s ease}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:all .22s cubic-bezier(.4,0,.2,1)}.slide-enter-from{opacity:0;transform:translateY(-6px)}.slide-leave-to{opacity:0;transform:translateY(6px)}
