:root{--bg: #0d1117;--bg-surface: #161b22;--bg-elevated: #21262d;--border: #30363d;--text: #e6edf3;--text-muted: #8b949e;--accent: #58a6ff;--success: #3fb950;--error: #f85149;--warn: #d29922;--critical: #bc8cff;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", "Consolas", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);height:100vh;display:flex;flex-direction:column;overflow:hidden;font-size:14px}header{background:var(--bg-surface);border-bottom:1px solid var(--border);padding:10px 16px;display:flex;align-items:center;gap:10px;flex-shrink:0}header h1{font-size:15px;font-weight:600;letter-spacing:-.3px}.badge{background:var(--bg-elevated);color:var(--text-muted);font-size:11px;padding:2px 8px;border-radius:12px;border:1px solid var(--border);white-space:nowrap}.badge-tip{margin-left:auto;color:var(--warn);border-color:#d2992233;background:#d2992214;font-size:11px}.badge-tip code{font-family:var(--font-mono);font-size:10px}.layout{display:flex;flex:1;overflow:hidden;min-height:0}.sidebar{width:192px;background:var(--bg-surface);border-right:1px solid var(--border);overflow-y:auto;flex-shrink:0}.sidebar-group{padding:14px 0 6px}.sidebar-group+.sidebar-group{border-top:1px solid var(--border);margin-top:4px}.sidebar-group-label{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:0 14px 6px}.sidebar-item{display:flex;align-items:center;gap:8px;padding:6px 14px;font-size:13px;color:var(--text-muted);cursor:pointer;border-left:2px solid transparent;transition:color .12s,background .12s,border-color .12s;-webkit-user-select:none;user-select:none}.sidebar-item:hover{color:var(--text);background:#ffffff0a}.sidebar-item.active{color:var(--accent);border-left-color:var(--accent);background:#58a6ff12}.content{flex:1;overflow:hidden;display:flex;flex-direction:column;min-width:0}.section{display:none;flex-direction:column;height:100%;overflow:hidden}.section.active{display:flex}.section-header{padding:16px 20px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.section-title{font-size:17px;font-weight:600;letter-spacing:-.3px;margin-bottom:4px}.section-desc{font-size:12px;color:var(--text-muted);line-height:1.55}.section-body{display:flex;flex:1;overflow:hidden;min-height:0}.controls{width:264px;flex-shrink:0;padding:14px;border-right:1px solid var(--border);overflow-y:auto}.control-group{margin-bottom:18px}.control-group-label{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px}.btn{display:block;width:100%;padding:6px 11px;background:var(--bg-elevated);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:12px;cursor:pointer;text-align:left;transition:background .12s,border-color .12s;margin-bottom:5px;font-family:inherit;line-height:1.5}.btn:hover{background:#2d333b;border-color:#444c56}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.btn-primary{background:#1f6feb2e;border-color:#388bfd55;color:var(--accent)}.btn-primary:hover{background:#1f6feb47;border-color:var(--accent)}.btn-danger{background:#f851491a;border-color:#f8514933;color:var(--error)}.btn-danger:hover{background:#f8514933;border-color:var(--error)}.btn-success{background:#3fb9501a;border-color:#3fb95033;color:var(--success)}.btn-success:hover{background:#3fb95033;border-color:var(--success)}.config-box{background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:11px;font-family:var(--font-mono);color:var(--text-muted);line-height:1.6;margin-bottom:12px;white-space:pre;overflow-x:auto}.info-row{display:flex;justify-content:space-between;align-items:center;padding:5px 8px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:5px;margin-bottom:5px;font-size:12px}.info-row-label{color:var(--text-muted)}.info-row-value{font-family:var(--font-mono);font-weight:600;color:var(--accent)}.state-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700;letter-spacing:.05em;margin-bottom:10px}.state-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.state-closed{color:var(--success);background:#3fb9501f;border:1px solid rgba(63,185,80,.25)}.state-open{color:var(--error);background:#f851491f;border:1px solid rgba(248,81,73,.25)}.state-half{color:var(--warn);background:#d299221f;border:1px solid rgba(210,153,34,.25)}hr.sep{border:none;border-top:1px solid var(--border);margin:10px 0}.log-pane{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.log-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:8px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.log-toolbar-label{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;flex:0 0 auto}.log-legend{display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px;flex:1 1 auto;justify-content:flex-end;min-width:0}.log-legend-item{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:2px 7px 2px 8px;border-radius:4px;border-left:3px solid var(--border);background:#ffffff08;white-space:nowrap}.log-legend-item[data-ch=action]{border-left-color:#58a6ff;background:#58a6ff1a;color:#79b8ff}.log-legend-item[data-ch=event-core]{border-left-color:#a371f7;background:#a371f71f;color:#c297ff}.log-legend-item[data-ch=event-plugin]{border-left-color:#f0883e;background:#f0883e1f;color:#ffa657}.log-legend-item[data-ch=http]{border-left-color:#3fb950;background:#3fb9501a;color:#56d364}.log-legend-item[data-ch=result]{border-left-color:#8b949e;background:#8b949e1a;color:#b1bac4}.log-legend-item[data-ch=tool]{border-left-color:#79c0ff;background:#79c0ff14;color:#a5d6ff}.log-legend-item[data-ch=library]{border-left-color:#db61a2;background:#db61a21a;color:#ff7eb6}.log-legend-item[data-ch=misc]{border-left-color:#8b949e80;background:#ffffff08;color:#6e7681}.log-clear-btn{background:none;border:1px solid transparent;color:var(--text-muted);font-size:11px;cursor:pointer;font-family:inherit;padding:2px 7px;border-radius:4px;transition:color .12s,border-color .12s}.log-clear-btn:hover{color:var(--text);border-color:var(--border)}.log-clear-btn--toolbar{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:4px 10px;border:1px solid var(--border);border-radius:5px;background:var(--bg-elevated);color:var(--text-muted)}.log-clear-btn--toolbar:hover{color:var(--accent);border-color:#388bfd55;background:#1f6feb1f}.log-area{flex:1;overflow-y:auto;padding:10px 14px;font-family:var(--font-mono);font-size:12px;line-height:1.65}.log-line{display:flex;gap:10px;align-items:baseline;padding:3px 8px 3px 10px;margin:0 -4px;border-radius:5px;border-left:3px solid transparent}.log-line+.log-line{margin-top:1px}.log-ch-action{border-left-color:#58a6ff;background:#58a6ff0f}.log-ch-event-core{border-left-color:#a371f7;background:#a371f712}.log-ch-event-plugin{border-left-color:#f0883e;background:#f0883e14}.log-ch-http{border-left-color:#3fb950;background:#3fb9500f}.log-ch-result{border-left-color:#6e7681;background:#6e768114}.log-ch-tool{border-left-color:#79c0ff;background:#79c0ff0d}.log-ch-library{border-left-color:#db61a2;background:#db61a212}.log-ch-misc{border-left-color:#8b949e59;background:#ffffff05}.log-ts{flex-shrink:0;width:5.5rem;color:#484f58}.log-msg.info{color:#8b949e}.log-msg.success{color:var(--success)}.log-msg.error{color:#ff8a83}.log-msg.warn{color:#e3b341}.log-msg.highlight{color:var(--accent)}.log-msg.critical{color:var(--critical)}.log-msg.dim{color:#6e7681}.log-ch-action .log-ts{color:#386994}.log-ch-action .log-msg.dim{color:#5cadff}.log-ch-action .log-msg.info{color:#7ab8f7}.log-ch-action .log-msg.highlight{color:#b6e0ff}.log-ch-action .log-msg.success{color:#6ef08a}.log-ch-action .log-msg.warn{color:#f0c14d}.log-ch-action .log-msg.error{color:#ff9a94}.log-ch-action .log-msg.critical{color:#d2b8ff}.log-ch-event-core .log-ts{color:#6e4db8}.log-ch-event-core .log-msg.dim{color:#b589ff}.log-ch-event-core .log-msg.info{color:#c9a8ff}.log-ch-event-core .log-msg.highlight{color:#dcc4ff}.log-ch-event-core .log-msg.success{color:#7ee787}.log-ch-event-core .log-msg.warn{color:#f0d27a}.log-ch-event-core .log-msg.error{color:#ff9a94}.log-ch-event-core .log-msg.critical{color:#e2c4ff}.log-ch-event-plugin .log-ts{color:#9a5f2a}.log-ch-event-plugin .log-msg.dim{color:#d9a066}.log-ch-event-plugin .log-msg.info{color:#e8b078}.log-ch-event-plugin .log-msg.highlight{color:#ffc480}.log-ch-event-plugin .log-msg.success{color:#6ef08a}.log-ch-event-plugin .log-msg.warn{color:#f5c84d}.log-ch-event-plugin .log-msg.error{color:#ff9a94}.log-ch-event-plugin .log-msg.critical{color:#ffb86c}.log-ch-http .log-ts{color:#2d7a3e}.log-ch-http .log-msg.dim{color:#4bdb6a}.log-ch-http .log-msg.info{color:#56d364}.log-ch-http .log-msg.highlight{color:#8ff0a4}.log-ch-http .log-msg.success{color:#56f079}.log-ch-http .log-msg.warn{color:#e8c547}.log-ch-http .log-msg.error{color:#ff9a94}.log-ch-http .log-msg.critical{color:#a7f5b5}.log-ch-result .log-ts{color:#545d6a}.log-ch-result .log-msg.dim{color:#9ea7b3}.log-ch-result .log-msg.info{color:#b1bac4}.log-ch-result .log-msg.highlight{color:#d1d7de}.log-ch-result .log-msg.success{color:#5ef075}.log-ch-result .log-msg.warn{color:#f0b84d}.log-ch-result .log-msg.error{color:#ff8b84}.log-ch-result .log-msg.critical{color:#d4b5ff}.log-ch-tool .log-ts{color:#3a6d8f}.log-ch-tool .log-msg.dim{color:#6eb3e8}.log-ch-tool .log-msg.info{color:#8cc8f5}.log-ch-tool .log-msg.highlight{color:#b6e0ff}.log-ch-tool .log-msg.success{color:#6ef08a}.log-ch-tool .log-msg.warn{color:#f0c14d}.log-ch-tool .log-msg.error{color:#ff9a94}.log-ch-tool .log-msg.critical{color:#c8e7ff}.log-ch-library .log-ts{color:#8f3d62}.log-ch-library .log-msg.dim{color:#e598b8}.log-ch-library .log-msg.info{color:#f0a8ca}.log-ch-library .log-msg.highlight{color:#ffb8d9}.log-ch-library .log-msg.success{color:#7ef0a8}.log-ch-library .log-msg.warn{color:#ffd479}.log-ch-library .log-msg.error{color:#ff9a94}.log-ch-library .log-msg.critical{color:#ffc2e6}.log-ch-misc .log-ts{color:#484f58}.log-ch-misc .log-msg.dim{color:#768390}.log-ch-misc .log-msg.info{color:#8b949e}.log-ch-misc .log-msg.highlight{color:#a8b3c0}.log-ch-misc .log-msg.success{color:var(--success)}.log-ch-misc .log-msg.warn{color:var(--warn)}.log-ch-misc .log-msg.error{color:#ff8a83}.log-ch-misc .log-msg.critical{color:var(--critical)}.log-empty{color:#444c56;font-style:italic;padding:6px 0}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}.metric-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:8px 10px}.metric-value{font-size:20px;font-weight:700;font-family:var(--font-mono);color:var(--accent);margin-bottom:2px}.metric-label{font-size:10px;color:var(--text-muted)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#30363d;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#444c56}
