:root{--bg: #0b0f14;--bg2:#0f141b;--panel:#111824;--panel2:#0e151f;--stroke: rgba(255,255,255,.08);--stroke2: rgba(255,255,255,.12);--text:#eaf2ff;--muted:#9cb0c6;--muted2:#cbd8e7;--good:#1ed760;--bad:#ff4d4f;--warn:#ffcc00;--accent:#4aa3ff;--shadow: 0 10px 30px rgba(0,0,0,.35);--radius: 14px;--radius2: 10px;--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji"}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--sans);background:radial-gradient(1200px 800px at 30% 0%,rgba(74,163,255,.1),transparent 55%),radial-gradient(800px 700px at 80% 20%,rgba(30,215,96,.08),transparent 50%),linear-gradient(180deg,var(--bg),var(--bg2));color:var(--text)}a{color:inherit;text-decoration:none}#root{height:100%}.appShell{height:100%;display:flex;flex-direction:column}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--stroke);background:#0a0e13a6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand{display:flex;align-items:center;gap:12px}.logo{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:linear-gradient(135deg,#4aa3ff40,#1ed76029);border:1px solid var(--stroke2);box-shadow:var(--shadow);font-weight:900}.title{font-weight:800;letter-spacing:.2px;line-height:1.05}.sub{font-size:12px;color:var(--muted);margin-top:2px}.topbarRight{display:flex;align-items:center;gap:10px}.main{flex:1;display:flex;min-height:0}.sidebar{width:240px;padding:10px;border-right:1px solid var(--stroke);background:#0a0e1359;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:auto}.navItem{width:100%;text-align:left;padding:10px;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--muted2);cursor:pointer;margin-bottom:6px;font-weight:700;transition:.12s ease}.navItem:hover{background:#ffffff0a;border-color:#ffffff0f;color:var(--text)}.navItem.active{background:#4aa3ff1c;border-color:#4aa3ff38;color:var(--text)}.view{flex:1;min-width:0;overflow:auto;padding:12px}.content{max-width:1320px;margin:0 auto}.card{background:#1118249e;border:1px solid var(--stroke);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow)}.h{font-weight:900;letter-spacing:.2px}.small{font-size:12px;color:var(--muted);line-height:1.35}.sep{height:1px;width:100%;background:#ffffff14;margin:10px 0}.row{display:flex;gap:10px;align-items:stretch}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 980px){.sidebar{width:200px}.grid2{grid-template-columns:1fr}}.split2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 980px){.split2{grid-template-columns:1fr}}.input,.textarea,select.input{width:auto;background:#0a0e138c;border:1px solid rgba(255,255,255,.1);color:var(--text);border-radius:12px;padding:10px 12px;outline:none;transition:.12s ease}.input:focus,.textarea:focus,select.input:focus{border-color:#4aa3ff59;box-shadow:0 0 0 3px #4aa3ff1a}.textarea{width:100%;min-height:160px;resize:vertical;font-family:var(--mono);font-size:12px;line-height:1.35}.btn{background:#4aa3ff24;border:1px solid rgba(74,163,255,.28);color:var(--text);border-radius:12px;padding:10px 12px;cursor:pointer;font-weight:800;transition:.12s ease}.btn:hover{background:#4aa3ff33}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.ghost{background:#ffffff0a;border:1px solid rgba(255,255,255,.1)}.btn.good{background:#1ed76024;border-color:#1ed76042}.btn.danger{background:#ff4d4f24;border-color:#ff4d4f42}.tab{background:#ffffff08;border:1px solid rgba(255,255,255,.1);color:var(--muted2);border-radius:999px;padding:8px 10px;cursor:pointer;font-weight:800;transition:.12s ease}.tab:hover{color:var(--text);border-color:#ffffff2e}.tab.active{background:#4aa3ff1f;border-color:#4aa3ff42;color:var(--text)}.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:#ffffff08;color:var(--muted2);font-size:12px;font-weight:800}.pill.good{border-color:#1ed76042;background:#1ed7601f;color:#eafff2}.pill.bad{border-color:#ff4d4f42;background:#ff4d4f1f;color:#ffecec}.badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#0a0e1373;font-size:12px;font-weight:800;color:var(--muted2)}.listItem{padding:10px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:#0a0e1359;cursor:pointer;transition:.12s ease;margin-bottom:10px}.listItem:hover{border-color:#ffffff24;background:#0a0e1373}.listItem.active{border-color:#4aa3ff42;background:#4aa3ff1a}pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--mono);font-size:12px;line-height:1.35;color:#e8f2ff}.kv{display:grid;grid-template-columns:160px 1fr;gap:10px;align-items:center}.kv .k{font-size:12px;color:var(--muted);font-weight:800}.toastStack{position:fixed;right:12px;bottom:12px;display:flex;flex-direction:column;gap:10px;z-index:9999;max-width:340px}.toast{border-radius:14px;border:1px solid rgba(255,255,255,.12);background:#0c1016bf;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);padding:10px 12px}.toast.good{border-color:#1ed76042}.toast.bad{border-color:#ff4d4f42}.toast.warn{border-color:#ffcc0042}.toastTitle{font-weight:900;font-size:13px}.toastDetail{font-size:12px;color:var(--muted);margin-top:4px}.chatShell{display:flex;flex-direction:column;min-height:72vh}.chatHeader{display:flex;justify-content:space-between;align-items:center;gap:10px}.chatLog{margin-top:12px;flex:1;min-height:0;overflow:auto;border-radius:var(--radius);border:1px solid rgba(255,255,255,.08);background:#0a0e1359;padding:10px}.msg{border:1px solid rgba(255,255,255,.08);background:#1118248c;border-radius:14px;padding:10px 12px;margin-bottom:10px}.msg .meta{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px}.msg .who{font-weight:900;font-size:12px;color:var(--muted2)}.msg .time{font-size:12px;color:var(--muted)}.msg.user{border-color:#4aa3ff38;background:#4aa3ff14}.msg.assistant{border-color:#1ed7602e;background:#1ed7600f}.msg.system{border-color:#ffffff1f;background:#ffffff0a}.chatComposer{margin-top:12px;display:flex;gap:10px}.chatInput{flex:1;min-height:54px;resize:vertical;font-family:var(--sans);font-size:14px;line-height:1.35}
