:root{--bg: #0f1115;--surface: #171a21;--surface2: #1f2430;--border: rgba(255, 255, 255, .08);--text: #e8eaf0;--muted: #8b93a3;--accent: #7f77dd;--accent2: #1d9e75;--danger: #e24b4a}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font:14px/1.6 -apple-system,Segoe UI,Microsoft YaHei,sans-serif}#root{max-width:520px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.tabbar{position:sticky;top:auto;display:flex;border-top:1px solid var(--border);background:var(--surface)}.tabbar a{flex:1;text-align:center;padding:10px 0;color:var(--muted);text-decoration:none;font-size:12px}.tabbar a.active{color:var(--accent)}.page{flex:1;padding:16px 14px 24px;overflow-y:auto}h2{font-size:16px;margin-bottom:12px;font-weight:500}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:10px}.btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:13px}.btn.ghost{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.btn.sm{padding:3px 10px;font-size:12px}input,textarea,select{background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px;font-size:13px;width:100%}.row{display:flex;gap:8px;align-items:center}.muted{color:var(--muted);font-size:12px}.msg{margin-bottom:12px;display:flex}.msg.user{justify-content:flex-end}.bubble{max-width:82%;padding:9px 12px;border-radius:12px;white-space:pre-wrap;word-break:break-word}.msg.user .bubble{background:#534ab7;border-bottom-right-radius:4px}.msg.bot .bubble{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px}.toolcard{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin:6px 0;max-width:82%;font-size:12px;cursor:pointer}.toolcard .tresult{margin-top:6px;color:var(--muted);white-space:pre-wrap;border-top:1px dashed var(--border);padding-top:6px}.toolcard .spin{color:var(--accent)}.chat-input{display:flex;gap:8px;padding:10px 14px;background:var(--surface);border-top:1px solid var(--border)}.chat-input input{flex:1}.banner{background:#2a2650;border-bottom:1px solid var(--accent);padding:10px 14px;font-size:13px}.banner b{color:var(--accent)}.graph-wrap{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.graph-node{cursor:pointer}.graph-detail{padding:10px 14px;border-top:1px solid var(--border);font-size:13px;min-height:44px}.p1{color:var(--danger)}.p2{color:#ef9f27}.p3{color:var(--muted)}.stat{display:flex;gap:10px;margin-bottom:12px}.stat .card{flex:1;text-align:center;margin:0}.stat .num{font-size:20px;font-weight:500}
