:root{--bg:#f5f6f8;--card:#fff;--ink:#1d2129;--muted:#6b7280;--line:#e5e7eb;--accent:#1f4e79;--red:#c00000;--ok:#15803d;--warn:#b45309}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 -apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
a{color:var(--accent)}header{background:#fff;border-bottom:1px solid var(--line);padding:14px 24px;display:flex;align-items:center;gap:16px}
header h1{font-size:18px;margin:0}header .st{margin-left:auto;font-size:13px;color:var(--muted)}header .st b{color:var(--ok)}header .st b.bad{color:var(--red)}
main{max-width:1280px;margin:24px auto;padding:0 16px}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px;margin-bottom:20px}
h2{font-size:16px;margin:0 0 12px}form .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}input,textarea{width:100%;padding:8px 10px;border:1px solid #cfd4dc;border-radius:6px;font:inherit}
button{background:var(--accent);color:#fff;border:0;border-radius:6px;padding:10px 18px;font:inherit;cursor:pointer}button:disabled{opacity:.5}button.sec{background:#fff;color:var(--accent);border:1px solid var(--accent)}
table{border-collapse:collapse;width:100%;font-size:14px}th,td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}th{background:#f3f4f6}
.tag{display:inline-block;font-size:12px;padding:1px 8px;border-radius:10px;background:#eef2f7;color:var(--accent)}.tag.done{background:#dcfce7;color:var(--ok)}.tag.error{background:#fee2e2;color:var(--red)}.tag.running{background:#fef3c7;color:var(--warn)}
.layout{display:grid;grid-template-columns:380px 1fr;gap:20px}@media(max-width:900px){.layout{grid-template-columns:1fr}}
#log{font-size:13px;max-height:70vh;overflow:auto;font-family:ui-monospace,Menlo,monospace}#log div{padding:3px 0;border-bottom:1px dashed #eee;word-break:break-all}
#log .phase{font-weight:700;color:var(--accent)}#log .warn{color:var(--warn)}#log .error{color:var(--red)}#log .tool{color:#7c3aed}#log .evidence{color:#0f766e}#log .finding{color:#b91c1c;font-weight:600}#log .llm_text{color:#374151;white-space:pre-wrap;font-family:inherit;background:#f9fafb}
#log .t{color:#9ca3af;margin-right:6px}
.banner{background:#fff7d6;border:1px solid #e0c060;padding:10px 14px;border-radius:8px;margin-bottom:12px;color:#5a4500;display:none}
.report{font-family:"FangSong","仿宋","STFangsong","PingFang SC",serif;font-size:16px}.report h1{text-align:center;font-size:24px;font-family:"STZhongsong","SimSun",serif}.report h2{font-size:17px;font-family:"SimHei","Heiti SC",sans-serif}.report h3{font-size:16px;font-family:"STKaiti","KaiTi",serif;font-weight:400}
.report p{text-indent:2em;margin:8px 0}.report table{font-size:13px;font-family:-apple-system,"PingFang SC",sans-serif}.report table p{text-indent:0;margin:0}
a.ev{display:inline-block;font-size:12px;padding:0 6px;border-radius:4px;background:#e8f0fa;color:var(--accent);text-decoration:none;margin:0 2px;cursor:pointer;font-family:ui-monospace,Menlo,monospace}a.ev:hover{background:var(--accent);color:#fff}
.drawer{position:fixed;top:0;right:0;width:min(900px,95vw);height:100vh;background:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.15);transform:translateX(100%);transition:.2s;z-index:50;display:flex;flex-direction:column}
.drawer.open{transform:none}.drawer .hd{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center}.drawer .hd h3{margin:0;font-size:15px;flex:1}
.drawer .meta{padding:8px 16px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);word-break:break-all}.tabs{display:flex;gap:4px;padding:8px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tabs button{background:#f3f4f6;color:var(--ink);padding:6px 12px;font-size:13px}.tabs button.on{background:var(--accent);color:#fff}.drawer .body{flex:1;overflow:auto}.drawer iframe{width:100%;height:100%;border:0}
.drawer pre{white-space:pre-wrap;word-break:break-all;font-size:12px;padding:12px 16px;margin:0}.drawer img{max-width:100%;display:block}
.evlist{font-size:13px}.evlist td{padding:4px 6px}.stats{font-size:13px;color:var(--muted)}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.findings .sev-高{color:var(--red);font-weight:700}.findings .sev-中{color:var(--warn);font-weight:600}.findings .sev-低{color:#0369a1}.findings .sev-无{color:var(--muted)}
