:root{font-family:Inter,"Segoe UI","Microsoft YaHei",system-ui,sans-serif;color:#192a3e;background:#edf2f7;font-size:14px;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #2b6de5;outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.5}header{height:60px;background:#163d66;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 20px;gap:10px}.brand{font-weight:740;font-size:17px}.eyebrow{font-size:10px;letter-spacing:.1em;font-weight:700;color:#8290a2}.top-tag{font-size:10px;letter-spacing:.07em;border:1px solid #ffffff4d;color:#dbeafe;padding:4px 8px;border-radius:6px;margin-left:14px}.top-actions{display:flex;align-items:center;gap:8px}.switch{border:1px solid #ffffff44;background:#ffffff16;color:white;padding:8px 13px;border-radius:7px}.switch.selected{background:#fff;color:#164d83}.layout{display:flex;height:calc(100vh - 60px);min-height:520px}.sidebar{width:228px;flex-shrink:0;background:#fff;border-right:1px solid #d9e1ec;padding:18px 10px;overflow:auto}.nav-section{color:#8793a3;font-size:10px;letter-spacing:.13em;font-weight:750;padding:0 12px;margin:12px 0}.nav-item{display:block;width:100%;text-align:left;padding:11px 12px;margin-bottom:4px;border:0;border-radius:8px;background:transparent;color:#435772}.nav-item:hover{background:#f1f6fc}.nav-item.selected{background:#e5f0ff;color:#1168ba;font-weight:670}.nav-foot{font-size:11px;color:#8090a0;line-height:1.6;padding:12px;margin-top:20px;border-top:1px solid #e8eef5}.main{display:flex;flex:1;flex-direction:column;min-width:0}.page-head{min-height:72px;background:#fff;border-bottom:1px solid #dfe6ef;display:flex;align-items:center;justify-content:space-between;padding:11px 22px;gap:12px}.heading{font-size:18px;font-weight:750}.subtitle{font-size:12px;color:#788899;margin-top:5px}.actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.button{background:#fff;border:1px solid #d0dbe8;color:#38506a;border-radius:7px;padding:8px 12px}.button:hover{background:#f4f8ff}.button.primary{background:#166fca;border-color:#166fca;color:white}.button.primary:hover{background:#0d5cae}.body{flex:1;min-height:0;display:flex}.pane{display:flex;flex-direction:column;flex:1;min-width:0}.pane-tools{background:white;border-bottom:1px solid #e4eaf2;min-height:48px;padding:8px 15px;display:flex;align-items:center;justify-content:space-between;gap:8px}.tabs{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.tab{border:0;background:transparent;border-radius:6px;padding:7px 10px;color:#687b8f}.tab.selected{background:#e8f2ff;color:#135fa9;font-weight:650}.tag{font-size:11px;color:#155c9c;background:#e6f2ff;padding:5px 8px;border-radius:5px}.inspector{width:275px;flex-shrink:0;background:#fff;border-left:1px solid #dce4ed;overflow:auto}.inspector h3{margin:0;padding:17px;font-size:14px;border-bottom:1px solid #e4eaf2}.info{padding:13px 17px;border-bottom:1px solid #edf1f5}.info label{display:block;color:#8995a4;font-size:11px;margin-bottom:5px}.info p{margin:0;font-size:13px;line-height:1.5;word-break:break-word}.scroll{flex:1;min-height:0;overflow:auto;padding:23px}.conversation{max-width:805px;margin:auto}.bubble{background:#fff;border:1px solid #e0e8f1;padding:17px 19px;border-radius:12px;margin:13px 0;box-shadow:0 3px 10px #20334a09;line-height:1.6}.bubble.you{background:#e8f2ff;border-color:#d3e4f8;margin-left:15%}.bubble .who{font-size:11px;color:#68809a;font-weight:670;margin-bottom:7px}.composer{padding:15px 20px;background:white;border-top:1px solid #dbe4ed}.composer textarea{width:100%;min-height:73px;resize:vertical;border:1px solid #cad7e6;border-radius:8px;padding:10px 12px}.composer-foot{margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:10px}.muted{font-size:12px;color:#7b8a9a}.note{padding:12px 15px;border-radius:8px;border:1px solid #d4e7ff;background:#e9f3ff;font-size:12px;line-height:1.6;color:#315e87;margin-bottom:15px}.file-area{display:flex;flex:1;min-height:0}.files{width:200px;border-right:1px solid #dfe6ef;background:#f9fbfd;padding:15px 10px;flex-shrink:0}.file-item{border:0;background:transparent;width:100%;text-align:left;padding:10px;border-radius:6px;color:#415978}.file-item.selected{background:#e5f1ff;color:#0f64b4;font-weight:680}.editor-wrap{flex:1;display:flex;min-width:0;flex-direction:column;background:#fff}.editor-meta{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e9edf3;padding:11px 16px;gap:12px}.editor{width:100%;height:100%;resize:none;border:0;padding:20px;outline:0;color:#243548;font:13px/1.7 "Cascadia Code",Consolas,monospace}.timeline{max-width:990px;margin:auto}.track-row{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:14px;margin:18px 0}.track{height:29px;background:#e1eaf4;border-radius:6px;position:relative}.track button{position:absolute;top:6px;height:17px;border:0;border-radius:4px;background:#3e88cb;padding:0}.track button.tool{background:#be9250}.track button.artifact{background:#388f79}.ticks{display:flex;justify-content:space-between;color:#8794a3;font-size:11px}.flow-layout{flex:1;display:flex;min-height:0}.palette{width:190px;background:#fff;border-right:1px solid #dce4ec;padding:15px;overflow:auto;flex-shrink:0}.palette-btn{display:block;width:100%;text-align:left;border:1px solid #e1e8f1;background:#f8fafc;color:#35516d;border-radius:7px;margin:7px 0;padding:10px}.canvas{flex:1;min-width:0;overflow:auto;display:flex;align-items:center;flex-direction:column;padding:20px;gap:9px;background-image:radial-gradient(#ccdae9 1px,transparent 1px);background-size:20px 20px}.flow-node{min-width:220px;max-width:320px;background:white;border:1px solid #cddbe9;padding:12px 15px;text-align:left;border-radius:10px;box-shadow:0 5px 15px #274b6719}.flow-node.selected{outline:2px solid #2b77c6}.flow-node strong{display:block}.flow-node small{display:block;color:#7a8898;margin-top:5px}.flow-arrow{color:#7891ab}.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.resource-card{border:1px solid #dde6ef;border-radius:10px;background:#fff;padding:17px}.resource-card h3{font-size:14px;margin:0 0 10px}.resource-card p{font-size:12px;color:#728297;line-height:1.6}.resource-card .button{margin-top:9px}.bottom{padding:10px 17px;background:#f9fbfe;border-top:1px solid #e3eaf3;font-size:11px;color:#8794a5}.toast{position:fixed;bottom:26px;right:24px;max-width:350px;padding:13px 18px;border:1px solid #b5d7fc;background:#e9f3ff;color:#1a527f;border-radius:9px;box-shadow:0 8px 20px #092c4822;z-index:20}.status{font-size:12px;color:#297a5e}.empty{max-width:620px;margin:24px auto;text-align:center;color:#708194}@media(max-width:1050px){.inspector{display:none}.sidebar{width:195px}}@media(max-width:640px){header{padding:0 10px}.top-tag{display:none}.sidebar{width:135px;padding:12px 5px}.page-head{padding:10px}.nav-item{font-size:12px}.palette{width:126px;padding:8px}.scroll{padding:12px}.heading{font-size:15px}}

/* Client workbench v0.2: hierarchical navigation + persistent chat + resizable secondary surfaces */
.client-shell{display:flex;width:100%;height:calc(100vh - 60px);min-height:460px;min-width:0;overflow:hidden;background:#f3f7fb}
.client-left,.client-right{height:100%;min-width:0;background:#fff;flex-shrink:0;display:flex;flex-direction:column;overflow:hidden}
.client-left{border-right:1px solid #e4eaf3}.client-right{border-left:1px solid #e4eaf3}
.client-panel-head{height:55px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 15px;border-bottom:1px solid #e4eaf2;background:#fff}
.client-panel-head strong{font-size:13px}.mini-note{font-size:11px;color:#8291a4;margin-top:3px;line-height:1.5}.ui-icon-btn{border:1px solid transparent;background:transparent;color:#627891;border-radius:6px;padding:5px 8px;white-space:nowrap}.ui-icon-btn:hover{background:#eaf2fd;color:#1167b4}
.client-filter{padding:12px;border-bottom:1px solid #eff3f7}.client-filter input{width:100%;padding:9px 10px;border-radius:7px;border:1px solid #d8e3ee;min-width:0;font-size:12px}
.client-tree{flex:1;min-height:0;overflow:auto;padding:8px}.client-tree .nav-section{padding:8px 7px 4px;margin:0}.tree-title{display:block;width:100%;border:0;background:transparent;border-radius:7px;text-align:left;padding:9px 7px;font-size:13px;color:#3d556e}.tree-title:hover{background:#f1f6fd}.tree-title.item{padding-left:21px;font-size:12px;color:#53657b}.tree-session{width:100%;display:flex;align-items:center;gap:8px;text-align:left;padding:9px 10px 9px 34px;background:transparent;border:0;border-radius:7px;color:#60738c;font-size:12px;min-width:0}.tree-session:hover{background:#f1f6fd}.tree-session.active{background:#e6f1ff;color:#1768b5;font-weight:650}.session-dot{font-size:9px}.client-left-foot{border-top:1px solid #e7edf3;color:#50708f;font-size:12px;padding:14px;display:flex;align-items:center;justify-content:space-between}
.client-main{min-width:0;flex:1;display:flex;flex-direction:column}.client-global-line{height:38px;flex-shrink:0;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 15px;background:#f8fbff;border-bottom:1px solid #e4eaf2;font-size:12px;color:#56738d}.client-center{min-width:0;min-height:0;flex:1;display:flex;overflow:hidden}.client-chat{flex:1;min-width:240px;display:flex;flex-direction:column;min-height:0;overflow:hidden}.client-chat .scroll{padding:15px;min-height:0}.client-chat .conversation{max-width:720px}.client-chat .composer{padding:12px}.chat-actions{display:flex}.client-chat .bubble{padding:12px 15px;margin:12px 0}.client-doc{min-width:210px;max-width:67%;flex-shrink:0;background:#fff;display:flex;flex-direction:column;min-height:0}.client-doc-tabs,.client-right-tabs{display:flex;align-items:center;gap:5px;border-bottom:1px solid #e4eaf1;padding:7px 8px;background:#fff}.client-doc-tabs .tab{padding:6px 12px}.client-doc-editor{display:flex;flex:1;min-height:0;overflow:auto}.client-doc-editor textarea{height:100%;min-height:0}.client-doc-status{font-size:11px;color:#7792a7;border-top:1px solid #e4eaf1;padding:8px 12px}.preview-content{margin:0;padding:18px;white-space:pre-wrap;word-break:break-word;font:12px/1.8 Consolas,monospace}.diff-demo{padding:15px;font-size:12px}.diff-removed{background:#fdeced;padding:10px}.diff-added{background:#e5f5ec;padding:10px}
.client-right-tabs .right-tab{flex:1;font-size:12px;padding:8px 2px;border:0;border-radius:6px;background:transparent;color:#748598}.client-right-tabs .right-tab.selected{background:#e5f1ff;color:#1264b2;font-weight:700}.client-right-scroll{flex:1;min-height:0;overflow:auto}.client-right-scroll .nav-section{margin:12px 0 6px;padding:0 14px}.right-step{padding:10px 17px;font-size:12px;color:#4c657e;border-left:2px solid #dbe8f5;margin-left:18px}.run-card{margin:12px;border:1px solid #d8e8f3;border-radius:8px;background:#f5faff;padding:12px;font-size:12px}.client-resource-list{padding-top:9px}.resource-entry{display:block;width:calc(100% - 20px);text-align:left;padding:10px 12px;margin:4px 10px;border-radius:7px;border:1px solid #e4edf6;background:#f9fbfd;color:#45627d;font-size:12px}.resource-entry:hover{background:#e7f1ff}.sidebar-hint{margin:13px;padding:12px;border-radius:7px;background:#f5f8fb;color:#8491a1;font-size:11px;line-height:1.6}.inspector-caption{font-size:11px;color:#7990a4;margin:13px}.right-event{display:flex;width:100%;align-items:center;gap:9px;border:0;border-bottom:1px solid #eff3f7;background:#fff;padding:11px 12px;text-align:left;font-size:12px;color:#4a6179}.right-event:hover{background:#f5faff}.event-time{font-family:Consolas,monospace;color:#8495a6;font-size:11px}.event-mark{color:#2c7dd0}.event-mark.tool{color:#b68d43}.event-mark.artifact{color:#368e7c}.right-panel-actions{padding:12px}.right-panel-actions .button{width:100%}
.client-full-timeline{display:flex;flex-direction:column;flex:1;min-width:0}.client-full-timeline .timeline{max-width:1000px;margin:auto}.client-full-timeline .scroll{min-width:0}
.client-rail{width:37px;flex-shrink:0;border-right:1px solid #d8e3ee;background:#e8f1fa;display:flex;align-items:stretch;justify-content:center}.client-rail.right-rail{border-right:0;border-left:1px solid #d8e3ee}.rail-button{width:100%;height:180px;writing-mode:vertical-rl;font-size:12px;letter-spacing:2px;color:#386b9b;border:0;background:transparent;padding:12px}.rail-button:hover{background:#d8e9fd}
.client-splitter{width:7px;flex-shrink:0;cursor:col-resize;position:relative;background:#eff4fa;border-left:1px solid #dfe8f0;border-right:1px solid #dfe8f0;touch-action:none}.client-splitter:after{content:"";position:absolute;top:46%;bottom:46%;left:2px;width:2px;background:#bacdde;border-radius:2px}.client-splitter:hover,.client-splitter:focus{background:#c0ddfa}.resizing-client,.resizing-client *{user-select:none!important;cursor:col-resize!important}
@media(max-width:1000px){.client-global-line>.muted{display:none}.client-doc{max-width:55%}.client-right-tabs .right-tab{font-size:11px}.client-chat .scroll{padding:10px}}
@media(max-width:760px){.client-shell{min-width:0}.client-chat{min-width:0}.client-doc{min-width:0;max-width:none}.client-doc-tabs{flex-wrap:wrap}.client-global-line{font-size:11px}.top-tag{display:none}}

/* Client V0.3 · user-controlled workbench layouts and bottom Timeline */
.client-global-line{min-height:46px;height:auto;padding:7px 12px;gap:8px;flex-wrap:wrap}
.client-control-bar{display:flex;align-items:center;gap:9px;margin-left:auto;flex-wrap:wrap}
.timeline-switch{border:1px solid #bfd5e8;color:#30668e;background:#fff;padding:8px 10px;border-radius:7px;font-size:12px}
.timeline-switch:hover{background:#e6f3ff}
.client-horizontal-splitter{flex-shrink:0;height:8px;cursor:row-resize;touch-action:none;border-top:1px solid #d8e4ef;border-bottom:1px solid #d8e4ef;background:#e9f0f8;position:relative}
.client-horizontal-splitter:after{content:"";position:absolute;left:46%;right:46%;height:2px;top:2px;background:#a8c0d8}
.client-horizontal-splitter:hover,.client-horizontal-splitter:focus-visible{background:#c9e3fc}
.client-bottom-timeline{min-height:145px;max-height:55vh;flex-shrink:0;background:#fff;border-top:1px solid #dce8f3;display:flex;flex-direction:column;min-width:0}
.client-bottom-title{min-height:43px;padding:7px 12px;border-bottom:1px solid #e4ecf4;display:flex;align-items:center;gap:12px;font-size:12px}
.client-bottom-title>span{color:#8193a5;font-size:11px;margin-right:auto}
.client-bottom-scroll{padding:10px 15px;flex:1;min-height:0;overflow:auto}
.timeline-bottom-lanes{min-width:400px}
.timeline-bottom-row{display:grid;grid-template-columns:105px minmax(0,1fr);align-items:center;gap:10px;height:25px;font-size:11px;color:#536b84}
.timeline-bottom-track{height:19px;background:#edf2f7;position:relative;border-radius:4px}
.timeline-bottom-track button{position:absolute;top:4px;height:11px;border:0;border-radius:3px;background:#357fc6}
.timeline-bottom-track .tool{background:#bd9150}.timeline-bottom-track .artifact{background:#428d7c}
.timeline-demo-label{padding:3px 13px 5px}
@media(max-width:950px){.client-control-bar{margin-left:0}.preset-button{padding:6px 8px}.client-bottom-title>span{display:none}}


/* Client V0.4: eliminate minimum conversation width and complementary editor cap. */
.client-center>.client-chat{min-width:0;overflow:hidden}
.client-center>.client-doc{flex:1 1 0;min-width:0;max-width:none;width:auto;overflow:hidden}
.client-center>.client-chat-rail{flex:0 0 37px;min-width:37px;width:37px}
.client-center>.client-chat-rail .rail-button{height:100%;max-height:180px}
.client-chat .bubble,.client-chat .composer{overflow-wrap:anywhere}
.client-chat .composer textarea{min-width:0}
@media(max-width:1000px){.client-center>.client-doc{max-width:none}}
@media(max-width:760px){.client-center>.client-chat{min-width:0}.client-center>.client-doc{min-width:0;max-width:none}}

/* V0.5: sidebars are free to resize within the available viewport. */
.client-left,.client-right{min-width:0;max-width:none}
.client-center>.client-chat,.client-center>.client-doc{min-width:0;max-width:none}


/* Client UI prototype v0.6: linked messages, file tabs, event detail */
.linked-message-actions{border-top:1px solid #dce7f0;padding-top:10px;margin-top:14px}
.linked-message-buttons{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.message-link{border:1px solid #c6dff3;background:#f5faff;color:#1766a8;border-radius:6px;padding:7px 9px;font-size:11px;white-space:normal}
.message-link:hover{background:#dceeff}
.filetabs{display:flex;overflow-x:auto;align-items:center;flex-shrink:0;min-height:38px;background:#f5f8fc;border-bottom:1px solid #dbe6ef}
.filetab{display:flex;align-items:center;flex-shrink:0;border-right:1px solid #d9e5f0}
.filetab.selected{background:#fff;box-shadow:inset 0 -2px #1c6fb5}
.filetab-select{border:0;background:transparent;padding:10px;color:#586e82;font-size:11px;white-space:nowrap}
.filetab.selected .filetab-select{color:#1469ae;font-weight:700}
.filetab-close{border:0;background:transparent;padding:7px;color:#9aabb8}
.filetab-close:hover{background:#fce8e9;color:#9b3b3b}
.trace-event{display:block;text-align:left;width:calc(100% - 22px);margin:5px 11px;border:1px solid transparent;border-radius:6px;background:#fff;padding:9px;font-size:12px;color:#516e89}
.trace-event:hover,.trace-event.selected{background:#e8f3ff;border-color:#cfe3f8;color:#166ab1}
.linked-event-detail{padding:12px;border-radius:9px;margin:12px;background:#f6faff;border:1px solid #d9e7f4;font-size:12px;line-height:1.6}
.linked-event-detail>strong{display:block;margin:7px 0}.linked-event-detail p{color:#6d7e90}
.linked-event-buttons{display:flex;flex-direction:column;gap:6px;margin-top:10px}.linked-event-buttons .button{text-align:left}
.right-event.selected{background:#e2f0ff;font-weight:700}
.track button.selected,.timeline-bottom-track button.selected{outline:2px solid #145e9e;outline-offset:1px}

/* V0.7: safe Markdown/JSON/Python previews and calculated local file diff */
.client-doc-tabs{flex-wrap:wrap}.doc-tab-actions{display:flex;gap:5px;align-items:center;margin-left:auto}
.file-action{font-size:11px;padding:6px 9px;border:1px solid #d5e3f0;border-radius:6px;background:#fff;color:#4f718e}
.file-action.danger{color:#a63a3a;border-color:#efc1c1;background:#fff4f4}
.client-doc-editor{display:block;overflow:auto;background:#fff}
.client-doc-editor>.editor{display:block;width:100%;height:100%;min-height:190px}
.client-doc-status{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
#file-change-state{font-weight:650;color:#a77b39}.file-status-hint{color:#899baa}
.rendered-markdown{padding:16px 22px;max-width:840px;font-size:13px;line-height:1.7;color:#354b60}
.rendered-markdown h1,.rendered-markdown h2,.rendered-markdown h3,.rendered-markdown h4{margin:12px 0 8px;line-height:1.4}
.rendered-markdown h1{font-size:23px}.rendered-markdown h2{font-size:19px}.rendered-markdown h3{font-size:16px}
.rendered-markdown p{margin:7px 0}.rendered-markdown .md-list-item{padding:3px 0 3px 16px}
.rendered-markdown code{background:#ecf2fa;color:#2c648e;padding:2px 4px;border-radius:4px}
.md-code{font-family:Consolas,monospace;white-space:pre-wrap;background:#162838;color:#dcecf5;padding:14px;border-radius:7px}
.md-spacer{height:7px}.preview-subtitle{font:12px/1.4 system-ui;color:#768da3;background:#f5f8fc;padding:9px 13px;border-bottom:1px solid #e0eaf5}
.json-field{display:grid;grid-template-columns:minmax(95px,32%) minmax(0,1fr);gap:10px;padding:9px 14px;border-bottom:1px solid #e6eef6}
.json-key{font-size:12px;color:#225b8b;overflow-wrap:anywhere}.json-value{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.5 Consolas,monospace;color:#3f576d}
.json-error{margin:14px;padding:14px;background:#fff3f3;border:1px solid #efcece;border-radius:7px;color:#984848;overflow-wrap:anywhere;font-size:12px}
.source-line,.diff-line{display:flex;white-space:pre;min-width:max-content;line-height:23px;font:12px/23px Consolas,monospace}
.source-line-number,.diff-sign{flex:0 0 44px;color:#8e9da9;text-align:right;padding:0 11px;border-right:1px solid #e6edf4;background:#f7fafc;user-select:none}
.source-line code,.diff-line code{padding:0 12px;white-space:pre}
.real-diff .add{background:#e5f5ea}.real-diff .remove{background:#fff0ef}.real-diff .remove .diff-sign{color:#ad4d4d}.real-diff .add .diff-sign{color:#298047}
.diff-empty{padding:24px;color:#667f95;font-size:13px}

/* Event payload inspector V0.7: overview / structured input and output */
.event-inspector-tabs{display:flex;gap:5px;margin:12px 0}
.event-inspector-tab{border:1px solid #d2e4f2;border-radius:6px;background:#fff;color:#688298;font-size:11px;padding:7px 9px}
.event-inspector-tab.selected{background:#e6f2ff;color:#1a6cae;font-weight:700}
.event-payload pre{margin:6px 0 12px;background:#122838;color:#ddedf8;font:11px/1.65 Consolas,monospace;border-radius:7px;padding:11px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
.payload-label{font-size:11px;font-weight:700;color:#607e99;margin-top:10px}
.payload-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:6px 0;border-bottom:1px solid #e1ecf6;font-size:11px}
.payload-row>span{color:#718aa0}.payload-row strong{font-weight:600;color:#405c74;overflow-wrap:anywhere}

/* Admin V0.8 graph workspace */
.graph-pane{background:#f5f8fc}
.graph-tabbar{flex-shrink:0;display:flex;align-items:center;gap:7px;padding:9px 14px;background:#fff;border-bottom:1px solid #dbe5ef}
.graph-tabbar .button{font-size:12px}
.graph-validate-pill{margin-left:auto;font-size:11px;font-weight:650;padding:7px 11px;border-radius:6px}
.graph-validate-pill.valid{color:#28785f;background:#e7f6ed}.graph-validate-pill.invalid{color:#a54747;background:#fff0ee}
.graph-layout{display:flex;flex:1;min-height:0;min-width:0}
.graph-palette{width:189px;flex-shrink:0;overflow:auto;border-right:1px solid #dce6f0;background:#fff;padding:14px 11px}
.graph-palette-head{font-size:13px;font-weight:700;margin-bottom:12px;color:#263f59}
.graph-palette-head span{display:block;font-size:10px;font-weight:400;color:#94a2b1}
.graph-palette>.button{display:block;width:100%;margin-bottom:7px;text-align:left;padding:10px 8px;font-size:11px}
.graph-palette-help{padding:10px;margin-top:14px;font-size:11px;line-height:1.65;border-radius:6px;background:#f3f8fe;color:#7a90a5}
.graph-workspace{flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}
.graph-canvas-scroll{flex:1;overflow:auto;min-width:0;min-height:0;background:#f8fbff}
.graph-stage{position:relative;background-image:radial-gradient(#ccdbea 1px,transparent 1px);background-size:18px 18px}
.graph-svg-layer{position:absolute;inset:0;pointer-events:none}
.graph-edges{display:block;overflow:visible}
.graph-edges .graph-edge-hit{pointer-events:stroke;cursor:pointer}
.graph-edges .graph-edge-label{font-size:12px;font-family:system-ui,Arial;fill:#866938;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round}
.graph-card{position:absolute;width:190px;min-height:86px;background:#fff;border:1px solid #bad0e4;border-radius:11px;box-shadow:0 7px 18px #2547661c;color:#39566d}
.graph-card.conditional{border-color:#d8b879}
.graph-card.selected{outline:3px solid #2681d6;outline-offset:1px;z-index:1}
.graph-node-grip{height:29px;border-radius:11px 11px 0 0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 10px;background:#f0f6fc;border-bottom:1px solid #e0eaf4;cursor:grab;touch-action:none}
.graph-node-grip:active{cursor:grabbing}
.graph-kind{font-size:10px;letter-spacing:.02em;color:#54738e;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.graph-move-grip{color:#9ab0c2}
.graph-card.conditional .graph-node-grip{background:#fff7e9}
.graph-card-body{width:100%;min-height:57px;padding:9px 11px;text-align:left;border:0;background:transparent;display:flex;flex-direction:column;gap:5px;overflow:hidden}
.graph-card-body strong{font-size:12px;color:#294766;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:164px}
.graph-card-body small{font-size:10px;color:#8292a3;line-height:1.3;white-space:nowrap;text-overflow:ellipsis;max-width:165px;overflow:hidden}
.graph-port{width:9px;height:9px;border:2px solid #fff;background:#578ebb;border-radius:50%;position:absolute;top:39px;box-shadow:0 0 0 1px #6f96b7}
.graph-port-input{left:-6px}.graph-port-output{right:-6px}
.graph-inspector{display:block;max-width:320px;min-width:255px;width:270px}
.graph-inspector-body{padding:14px;display:flex;flex-direction:column;gap:10px}
.graph-inspector-kicker{font-size:10px;letter-spacing:.07em;color:#6d91b5}
.graph-inspector-body h4{margin:0 0 5px;color:#264765;font-size:14px}
.graph-form-field{display:flex;flex-direction:column;gap:6px}
.graph-form-field label{font-size:11px;font-weight:600;color:#69819a}
.graph-form-field input,.graph-form-field select,.graph-form-field textarea{border:1px solid #d1dfed;border-radius:6px;background:#fff;color:#3b536a;padding:8px;width:100%;min-width:0;font-size:12px}
.graph-inspector-actions{display:flex;flex-wrap:wrap;gap:8px}
.graph-inspector-actions>.button{font-size:11px}
.graph-position,.graph-hint{color:#8093a4;font-size:11px;line-height:1.5}
.graph-confirm{font-size:11px;padding:9px;background:#fff3f3;border:1px solid #eec3c3;border-radius:7px;display:flex;gap:5px;flex-wrap:wrap}
.graph-linking-banner{padding:9px 15px;background:#fff3da;color:#76581d;font-size:12px}
.graph-linking-banner .button{margin-left:10px}
.graph-footnote{font-size:10px;color:#758da5;background:#fff;border-top:1px solid #e2ebf4;padding:9px 15px}
.graph-json-view{flex:1;min-width:0;display:flex;flex-direction:column;background:#fff}
.graph-json-warning{padding:11px 16px;border-bottom:1px solid #e2eaf3;font-size:12px;color:#677f96}
.graph-json-view textarea{padding:16px;font:12px/1.6 Consolas,monospace;border:0;outline:0;resize:none;min-height:0;flex:1;background:#15283b;color:#e0f0fa}
.graph-diagnostics{padding:16px 22px;flex:1;overflow:auto;font-size:12px;line-height:1.6;color:#476079;background:#fff}
.graph-diagnostics h4{margin:16px 0 8px}
.graph-summary{padding:12px;border-radius:8px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.graph-summary.ok{background:#e9f6ee;color:#2b7d60}.graph-summary.error{background:#fff0ee;color:#ad4e4e}
.graph-diagnostic-item{padding:8px 12px;margin:4px 0;border-radius:6px}
.graph-diagnostic-item.error{background:#fff0ee}.graph-diagnostic-item.warning{background:#fff6e8}
.graph-pass{color:#337d60}
@media(max-width:1200px){.graph-inspector{width:250px;min-width:220px}.graph-palette{width:160px}}
@media(max-width:800px){.graph-inspector{width:205px;min-width:175px}.graph-palette{width:120px}.graph-tabbar{flex-wrap:wrap}.graph-validate-pill{margin-left:0}}


/* Admin V0.9: React Flow style viewport controls + viewport MiniMap */
.graph-canvas-scroll{position:relative;overflow:hidden;cursor:grab;touch-action:none}
.graph-canvas-scroll:active{cursor:grabbing}
.graph-canvas-scroll.is-locked{cursor:default}
.graph-canvas-scroll.is-locked .graph-node-grip{cursor:not-allowed}
.graph-stage{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
.graph-viewport-controls{position:absolute;bottom:17px;left:17px;z-index:10;display:flex;flex-direction:column;background:#fff;border:1px solid #cbdbea;border-radius:9px;overflow:hidden;box-shadow:0 5px 18px #1b436226}
.graph-control-btn{display:flex;align-items:center;justify-content:center;width:37px;height:35px;border:0;border-bottom:1px solid #e1e9f2;background:#fff;color:#526f89;cursor:pointer}
.graph-control-btn:last-child{border-bottom:0}
.graph-control-btn:hover,.graph-control-btn:focus-visible{color:#146db4;background:#e9f3ff}
.graph-control-btn.active{background:#dfeeff;color:#1269ae}
.graph-controls-separator{height:3px;background:#f0f4f8}
.graph-zoom-indicator{position:absolute;left:65px;bottom:18px;padding:5px 10px;font:11px Consolas,monospace;background:#fff;border:1px solid #d7e5f1;border-radius:6px;color:#50738f;z-index:9}
.graph-minimap{position:absolute;right:16px;bottom:17px;width:186px;height:125px;background:#f8fbff;border:1px solid #bbd0e3;border-radius:8px;box-shadow:0 6px 20px #163a581e;overflow:hidden;z-index:9;cursor:crosshair}
.graph-minimap svg{display:block;width:100%;height:100%}
.graph-minimap:hover,.graph-minimap:focus-visible{outline:2px solid #6daae0}
@media(max-width:900px){.graph-minimap{width:140px;height:95px}.graph-viewport-controls{bottom:12px;left:10px}.graph-zoom-indicator{bottom:12px;left:57px}}

/* Admin Graph V0.10 */
.graph-edit-actions{display:flex;gap:5px;flex-wrap:wrap;margin-left:auto}.graph-edit-actions .button{padding:7px 8px;font-size:11px}
.graph-edit-actions+.graph-validate-pill{margin-left:0}
.graph-port{width:17px;height:17px;border:3px solid white;border-radius:50%;top:34px;background:#3989bc;position:absolute;padding:0;cursor:crosshair;box-shadow:0 0 0 1px #578aaf;z-index:3}
.graph-port-input{left:-9px}.graph-port-output{right:-9px}
.graph-port:hover,.graph-port:focus-visible{outline:3px solid #b4dcff;outline-offset:1px;background:#1568a7}
.graph-wire-preview{position:absolute;inset:0;overflow:visible;pointer-events:none}
.graph-canvas-scroll.is-locked .graph-port{cursor:not-allowed;opacity:.55}
@media(max-width:1200px){.graph-edit-actions{margin-left:0}}


/* Admin V0.11 — node intent inspector, branch routing, fan-out and multi-input warnings */
.graph-tabbar{flex-wrap:wrap;row-gap:7px}
.graph-edit-actions{flex-wrap:wrap;gap:5px}
.graph-edit-actions .button{padding:6px 9px;white-space:nowrap}
.graph-config-section{display:flex;flex-direction:column;gap:11px;margin:5px -2px 4px;padding:12px 10px 14px;background:#f6faff;border:1px solid #deebf5;border-radius:8px}
.graph-config-section h5{font-size:12px;color:#345878;margin:0 0 3px;font-weight:700}
.graph-config-section h5 small{display:block;font-size:10px;color:#879ba9;margin-top:4px;font-weight:400}
.graph-semantic-caption{padding:9px;background:#fff7e9;border:1px solid #eddab6;color:#826b44;border-radius:7px;font-size:11px;line-height:1.65}
.graph-card.parallel{border-color:#6fb3a9}
.graph-card.parallel .graph-node-grip{background:#e7f6f2}
.graph-card.state .graph-node-grip{background:#f1f0ff}
.graph-card-body{min-height:58px}
.graph-node-semantic{font-size:9px;color:#577796;background:#eff5fb;padding:3px 5px;border-radius:4px;margin-top:1px;text-align:left;white-space:normal;line-height:1.4;max-width:165px}
.graph-card.parallel .graph-node-semantic{color:#2c8276;background:#e7f6f3}
.graph-card.state .graph-node-semantic{color:#685f9b;background:#efeffb}
.graph-card.conditional .graph-node-semantic{color:#926e2c;background:#fff5e2}
.graph-legend{pointer-events:none;position:absolute;left:17px;top:12px;z-index:8;display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:7px 10px;background:rgba(255,255,255,.96);border:1px solid #dae6f1;border-radius:7px;font-size:10px;color:#627e94;max-width:calc(100% - 30px)}
.graph-legend>div{display:flex;gap:5px;align-items:center}
.legend-line{display:inline-block;width:19px;border-top:2px solid #bc8a46}
.legend-line.fanout{border-color:#3e9992;border-top-style:dashed}
.legend-join{font-size:17px;line-height:11px;color:#7b75ad}
.graph-edge-fanout .graph-edge-label{fill:#2f857e}
.graph-inspector .graph-form-field input,.graph-inspector .graph-form-field select{max-width:100%}
@media(max-width:1000px){.graph-legend{top:9px;left:9px;gap:6px}.graph-config-section{padding:10px 7px}}


/* Admin V0.12 — mock catalog picker and editable State Schema */
.graph-binding-row{display:flex;gap:5px;min-width:0;align-items:center}
.graph-binding-row input{flex:1;min-width:0}
.graph-binding-row .button{flex-shrink:0;padding:7px 8px;font-size:11px}
.graph-resource-picker{padding:10px 9px;border:1px solid #bfd8ec;border-radius:8px;background:white;display:flex;flex-direction:column;gap:8px;box-shadow:0 3px 14px #284b6a13}
.graph-picker-heading{display:flex;align-items:center;justify-content:space-between;gap:5px;color:#3f6888;font-size:11px;font-weight:700}
.graph-picker-heading .button{font-size:10px;padding:4px 6px}
.graph-resource-picker>label,.graph-resource-picker p{font-size:10px;color:#7c91a2;line-height:1.5}
.graph-resource-picker>input{border:1px solid #d1dfea;border-radius:5px;padding:8px;font-size:11px;max-width:100%}
.graph-picker-results{display:flex;flex-direction:column;gap:5px;max-height:250px;overflow:auto}
.graph-resource-entry{display:flex;flex-direction:column;gap:3px;text-align:left;border:1px solid #e1e9f2;border-radius:6px;background:#f7fbff;padding:9px;cursor:pointer;min-width:0}
.graph-resource-entry:hover,.graph-resource-entry:focus-visible{border-color:#6baddc;background:#eaf5ff}
.graph-resource-entry strong{color:#315d80;font-size:11px}
.graph-resource-entry code,.graph-resource-entry small{color:#718ca1;font-size:10px;overflow-wrap:anywhere}
.graph-state-editor{height:100%;width:100%;overflow:auto;background:white;min-width:0;padding:16px 18px;color:#456279}
.graph-state-toolbar{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}
.graph-state-toolbar h3{font-size:19px;margin:0 0 6px;color:#284b6b}
.graph-state-toolbar p{margin:0;color:#72879a;font-size:12px;line-height:1.55}
.graph-state-toolbar .button{flex-shrink:0}
.graph-state-notice,.graph-state-note{margin:14px 0;background:#f3f8fe;border:1px solid #ddeaf6;padding:11px 13px;font-size:11px;color:#66829a;border-radius:8px;line-height:1.6}
.graph-state-table{min-width:620px;border:1px solid #dce7f2;border-radius:8px;overflow:hidden}
.graph-state-header,.graph-state-row{display:grid;grid-template-columns:minmax(110px,1.4fr) minmax(100px,1fr) minmax(132px,1.2fr) 65px minmax(85px,auto);gap:9px;align-items:center;padding:9px 10px;border-bottom:1px solid #e5ecf5}
.graph-state-header{font-size:11px;font-weight:700;color:#597b96;background:#f5f9fd}
.graph-state-row:last-child{border-bottom:0}
.graph-state-row input:not([type="checkbox"]),.graph-state-row select{width:100%;min-width:0;border:1px solid #d0dfeb;border-radius:5px;font-size:11px;color:#476980;padding:7px;background:#fff}
.graph-state-required{display:flex;align-items:center;gap:3px;white-space:nowrap;font-size:11px;color:#608096}
.graph-state-actions{display:flex;gap:5px;flex-wrap:wrap}
.graph-state-actions .button{font-size:10px;padding:6px}
@media(max-width:1000px){.graph-state-editor{padding:12px}.graph-state-table{overflow:auto}.graph-state-row,.graph-state-header{min-width:620px}}


/* Admin V0.13 Agent Studio & lifecycle surfaces */
.lifecycle-pane{background:#f5f8fc}
.lifecycle-steps{padding:12px 18px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#fff;border-bottom:1px solid #dce6f0}
.lifecycle-steps span{font-size:11px;color:#798da2;background:#f2f6fb;border-radius:7px;padding:8px 11px}
.lifecycle-steps span.active{color:#145f9f;background:#e5f2ff;font-weight:700}
.lifecycle-agent-shell{display:flex;flex:1;min-height:0;min-width:0}
.lifecycle-agent-list{flex-shrink:0;width:195px;padding:15px 11px;border-right:1px solid #dbe5f0;background:#fff;overflow:auto}
.lifecycle-agent-list h4{margin:3px 6px 14px;font-size:11px;color:#71879d;letter-spacing:.06em}
.lifecycle-agent-list button{display:block;text-align:left;border:1px solid transparent;background:transparent;color:#506b84;width:100%;padding:12px 10px;border-radius:8px;margin-bottom:6px;font-size:12px}
.lifecycle-agent-list button.selected{background:#e9f3ff;border-color:#bdd9f0;color:#1968aa;font-weight:700}
.lifecycle-agent-main{display:flex;flex-direction:column;flex:1;min-width:0}
.lifecycle-tabs{background:#fff;border-bottom:1px solid #e0eaf3;display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:10px 15px}
.lifecycle-tabs button{border:0;background:transparent;border-radius:7px;padding:9px 11px;color:#73889c;font-size:12px}
.lifecycle-tabs button.selected{background:#e8f2fd;color:#1669ac;font-weight:700}
.lifecycle-agent-content{padding:19px 22px;flex:1;overflow:auto}
.lifecycle-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 21px}
.lifecycle-panel-heading h3{font-size:19px;color:#315574;margin:0}
.lifecycle-panel-heading span{font-size:11px;color:#aa7c39}
.lifecycle-field{display:flex;flex-direction:column;gap:7px;margin:0 0 17px;max-width:830px}
.lifecycle-field>strong{font-size:11px;font-weight:700;color:#617f9b}
.lifecycle-field input,.lifecycle-field select,.lifecycle-field textarea,.lifecycle-select-row select{width:100%;border:1px solid #ceddeb;border-radius:7px;background:#fff;color:#415e78;padding:10px 12px;font-size:12px;min-width:0}
.lifecycle-field textarea{resize:vertical;line-height:1.6}
.lifecycle-hint{padding:13px;border:1px solid #d4e4f2;border-radius:8px;background:#f0f7ff;font-size:12px;color:#6b86a0;line-height:1.6;margin:13px 0}
.lifecycle-hint .button{margin-left:8px;font-size:11px}
.lifecycle-tool{display:flex;align-items:center;gap:10px;padding:12px;margin:8px 0;background:white;border:1px solid #e0e9f2;border-radius:7px;font-size:12px;color:#496780}
.lifecycle-tool input{flex-shrink:0}
.lifecycle-tool code{font-size:10px;color:#829aae;margin-left:9px}
.lifecycle-record{background:white;border:1px solid #dbe5ef;border-radius:9px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0}
.lifecycle-record strong{display:block;font-size:12px;color:#3b6180}
.lifecycle-record small{display:block;font-size:11px;color:#8195a6;margin-top:6px}
.lifecycle-record .button{font-size:11px;white-space:nowrap}
.lifecycle-info-actions{display:flex;flex-direction:column;gap:7px;padding:12px}
.lifecycle-info-actions .button{text-align:left;font-size:11px}
.lifecycle-disclaimer{padding:12px;font-size:11px;line-height:1.6;color:#866a3a;background:#fff8e8;border:1px solid #efdfbf;border-radius:8px;margin:12px}
.lifecycle-build-scroll{overflow:auto;flex:1;padding:15px 20px}
.lifecycle-banner{background:#e9f4ff;color:#466f91;border:1px solid #cfe5f8;border-radius:9px;padding:12px 14px;font-size:12px;line-height:1.6;margin-bottom:14px}
.lifecycle-stage{border:1px solid #d9e6f2;background:#fff;border-radius:10px;padding:17px;margin-bottom:13px}
.lifecycle-stage h3{font-size:15px;color:#355f7b;margin:0 0 8px}
.lifecycle-stage>p{font-size:12px;color:#8094a5}
.lifecycle-select-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lifecycle-select-row select{width:auto;min-width:200px;max-width:100%;flex:1}
.lifecycle-build-grid{display:grid;grid-template-columns:minmax(155px,30%) minmax(0,1fr);gap:14px}
.lifecycle-record-options{display:flex;flex-direction:column;gap:7px;margin-top:12px}
.lifecycle-build-option{text-align:left;color:#53718a;background:#f6f9fe;border:1px solid #dce8f2;border-radius:7px;padding:11px;font-size:12px}
.lifecycle-build-option.selected{background:#e8f3ff;border-color:#9dc7e8;color:#1668aa;font-weight:700}
.lifecycle-build-result{background:#fbfdff;border:1px solid #e2eaf3;border-radius:9px;padding:14px;min-width:0}
.lifecycle-build-result h4{font-size:13px;color:#446781;margin:0 0 11px}
.lifecycle-build-result p{font-size:11px;line-height:1.5;color:#69869c}
.lifecycle-build-result .lifecycle-problem{color:#a34b4b;background:#fff1ef;padding:8px;border-radius:5px}
.lifecycle-build-result .lifecycle-success{color:#348364;background:#eaf8f0;padding:8px;border-radius:5px}
.lifecycle-file{display:inline-flex;font-size:11px;color:#6f8395;background:#f1f5f9;padding:7px 9px;border-radius:6px;margin:4px}
.lifecycle-stage pre{color:#dceef9;background:#172b3c;border-radius:7px;padding:12px;white-space:pre-wrap;overflow-wrap:anywhere;overflow:auto;font:11px/1.6 Consolas,monospace}
.lifecycle-catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.lifecycle-catalog-item{display:flex;flex-direction:column;gap:7px;background:#fff;padding:14px;border:1px solid #dce7f2;border-radius:9px}
.lifecycle-catalog-item strong{color:#416b8b;font-size:12px}
.lifecycle-catalog-item code{font-size:11px;color:#266ca7;overflow-wrap:anywhere}
.lifecycle-catalog-item small{font-size:11px;color:#91a1ad;line-height:1.6}
@media(max-width:1250px){.lifecycle-agent-list{width:155px}.lifecycle-agent-content{padding:15px}.lifecycle-build-grid{grid-template-columns:1fr}.lifecycle-build-scroll{padding:11px}}
@media(max-width:820px){.lifecycle-agent-list{width:125px}.lifecycle-steps{padding:7px}.lifecycle-steps span{padding:6px}.lifecycle-build-grid{grid-template-columns:1fr}}
