*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:#14171c;color:#d6dce4;font:13px/1.55 Cascadia Mono,Consolas,Microsoft YaHei,monospace}.app{display:flex;flex-direction:column;height:100%}.topbar{padding:8px 12px;background:#1b2027;border-bottom:1px solid #2a313b;flex-shrink:0}.topbar-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.title{font-weight:600;color:#7fb3ff;margin-right:4px}.lamp{width:10px;height:10px;border-radius:50%;display:inline-block}.lamp.on{background:#3fb950;box-shadow:0 0 6px #3fb950}.lamp.off{background:#6e7681}.lamp-text{color:#9aa4b2;margin-right:10px}.field{display:flex;align-items:center;gap:5px;color:#9aa4b2}.field input{width:220px;background:#12161b;border:1px solid #2f3742;color:#d6dce4;border-radius:4px;padding:4px 8px;outline:none}.field input:focus{border-color:#4a7ec2}.field.narrow input{width:76px}.btn{background:#262d36;color:#d6dce4;border:1px solid #343d49;border-radius:4px;padding:4px 12px;cursor:pointer;white-space:nowrap}.btn:hover{background:#303944}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:#1f4478;border-color:#2d5c9e;color:#cfe4ff}.btn.primary:hover{background:#25508c}.btn.danger{background:#5a2323;border-color:#7a3030;color:#ffc9c9}.spacer{flex:1}.check{display:flex;align-items:center;gap:4px;color:#9aa4b2;white-space:nowrap}.flash{margin-top:6px;padding:4px 10px;border-radius:4px}.flash.ok{background:#17301f;color:#7ee2a0}.flash.bad{background:#3a1d1d;color:#ff9d9d}.count{margin-top:6px;color:#6e7a89;font-size:12px}.conn-error{background:#3a1d1d;color:#ff9d9d;padding:4px 12px;flex-shrink:0}.topbar-row.bottom{margin-top:8px}.view-tabs{display:flex;gap:0}.view-tabs button{background:#1a1f26;border:1px solid #2f3742;color:#8b95a3;padding:3px 16px;cursor:pointer;font-size:12px}.view-tabs button:first-child{border-radius:4px 0 0 4px}.view-tabs button:last-child{border-radius:0 4px 4px 0}.view-tabs button+button{border-left:none}.view-tabs button.on{background:#1f3a5f;color:#cfe4ff;border-color:#2d5c9e}.hist-bar{display:flex;gap:8px;align-items:center;padding:8px 10px;border-bottom:1px solid #222831;position:sticky;top:0;background:#171b21;z-index:1}select{background:#12161b;border:1px solid #2f3742;color:#d6dce4;border-radius:4px;padding:4px 8px;outline:none;font:inherit}.gap-warn{color:#d29922}.meta.err{color:#ff7b72}.log-view{flex:1;display:flex;flex-direction:column;min-width:0;padding:10px 14px}.log-bar{display:flex;gap:10px;align-items:center;margin-bottom:8px}.log-pre{flex:1;max-height:none;white-space:pre;overflow:auto}.conn-test{margin-top:8px}.test-pending{color:#7fb3ff}.test-err{color:#ff9d9d;margin-bottom:4px}.test-table{border-collapse:collapse;width:100%;max-width:760px}.test-table th,.test-table td{border:1px solid #2a313b;padding:3px 10px;text-align:left;font-size:12px}.test-table th{background:#222832;color:#9aa4b2;font-weight:500}.test-table .ok{color:#3fb950}.test-table .bad{color:#f85149}.test-table .err-cell{color:#c98a3d;word-break:break-all}.main{flex:1;display:flex;min-height:0}.list-pane{width:380px;flex-shrink:0;overflow-y:auto;border-right:1px solid #2a313b;background:#171b21}.empty{color:#5c6672;padding:14px}.item{padding:7px 10px;border-bottom:1px solid #222831;cursor:pointer}.item:hover{background:#1d232c}.item.active{background:#1f3a5f}.item-line1{display:flex;justify-content:space-between;align-items:center}.start{color:#8b95a3;font-size:12px}.item-line2{display:flex;gap:6px;margin-top:2px;align-items:baseline}.method{color:#7fb3ff;font-weight:600}.path{color:#c9d2de;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:250px}.item-line3{display:flex;gap:8px;margin-top:2px;align-items:baseline;flex-wrap:wrap}.model{color:#d2a8ff}.http{color:#7ee2a0}.http-bad{color:#ff7b72}.meta{color:#7d8794;font-size:12px}.pulse{color:#58a6ff;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}.badge{font-size:11px;padding:1px 7px;border-radius:9px;border:1px solid}.st-pending{color:#9aa4b2;border-color:#444d59}.st-streaming{color:#58a6ff;border-color:#2d5c9e;animation:pulse 1.2s ease-in-out infinite}.st-done{color:#3fb950;border-color:#2c5a38}.st-aborted{color:#d29922;border-color:#7a5c14}.st-error{color:#f85149;border-color:#7a3030}.detail-pane{flex:1;overflow-y:auto;padding:10px 14px;min-width:0}.empty-pane{color:#5c6672;display:flex;align-items:center;justify-content:center}.sec{margin-bottom:16px}.sec-title{color:#7fb3ff;font-weight:600;margin-bottom:6px}.sec-title-row{display:flex;justify-content:space-between;align-items:center}.sec-actions{display:flex;gap:6px;align-items:center}.btn.mini{padding:1px 8px;font-size:12px}.tabs .tab{background:transparent;border:1px solid #2f3742;color:#8b95a3;border-radius:4px 4px 0 0;padding:2px 10px;cursor:pointer;font-size:12px}.tabs .tab.on{background:#1f3a5f;color:#cfe4ff;border-color:#2d5c9e}.kv{border:1px solid #262d36;border-radius:6px;overflow:hidden}.kv-row{display:flex;border-bottom:1px solid #222831}.kv-row:last-child{border-bottom:none}.kv-k{width:130px;flex-shrink:0;padding:4px 10px;color:#7d8794;background:#1a1f26}.kv-v{padding:4px 10px;word-break:break-all;white-space:pre-wrap}.kv-v.err-cell,.err{color:#ff9d9d}.timeline{display:flex;align-items:stretch;height:18px;gap:1px;border:1px solid #262d36;border-radius:4px;padding:2px;background:#12161b}.tl-chunk{background:#4a7ec2;border-radius:1px;min-width:1px}.tl-gap{background:#f85149;border-radius:1px;min-width:2px;opacity:.85}.ht{border-collapse:collapse;width:100%}.ht td{border:1px solid #262d36;padding:2px 8px;vertical-align:top}.ht-name{color:#d2a8ff;white-space:nowrap;width:1%}.ht-val{word-break:break-all;color:#c9d2de}.ht-val.masked{color:#6e7a89}.pre{margin:0;background:#12161b;border:1px solid #262d36;border-radius:6px;padding:8px 10px;overflow:auto;max-height:300px;white-space:pre-wrap;word-break:break-all}.pre.sse{max-height:380px}
