:root{--app-max-width: 1760px;--app-page-gutter: 24px;color:#17211b;background:#f5f6f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}code,.monoText{color:#30433a;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.appShell{width:min(var(--app-max-width),calc(100vw - var(--app-page-gutter) * 2));min-height:100vh;margin:0 auto;padding:24px 0 48px}.appNav{position:sticky;top:0;z-index:5;padding:10px 12px;border-bottom:1px solid #dde5db;background:#f5f6f3f2}.appNavInner{display:flex;justify-content:space-between;gap:12px;width:min(var(--app-max-width),calc(100vw - var(--app-page-gutter) * 2));margin:0 auto}.runCreateGrid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;gap:12px;align-items:end}.runCreateGrid label{display:grid;gap:6px;color:#4d5b53;font-size:12px;font-weight:800}.runCreateGrid select{min-height:38px;padding:0 10px;border:1px solid #cbd8cf;border-radius:8px;background:#fff;color:#24382e}.runTable,.runItems{display:grid;gap:8px}.runRow{display:grid;grid-template-columns:minmax(180px,1fr) 100px 150px auto;gap:12px;align-items:center;padding:12px;border:1px solid #dde5db;border-radius:8px}.runRow.active,.runItem{border-color:#8ab59f;background:#f6fbf7}.runItem{overflow:hidden;border:1px solid #dde5db;border-radius:8px}.runItemHeader{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:0 12px;border:0;background:transparent;color:#24382e;cursor:pointer;text-align:left}.runItemHeader .statusChip{margin-left:auto}.nodeTraceList{display:grid;gap:8px;padding:0 12px 12px}.statusChip{display:inline-flex;justify-content:center;padding:4px 8px;border:1px solid #cbd8cf;border-radius:999px;font-size:11px;font-weight:800;text-transform:uppercase}.statusChip.succeeded{border-color:#a6d7bb;background:#edf9f1;color:#247046}.statusChip.failed{border-color:#efb6ad;background:#fff6f4;color:#91382d}.statusChip.running{border-color:#e6c47a;background:#fff8e6;color:#805d13}@media(max-width:900px){.runCreateGrid,.runRow{grid-template-columns:1fr}}.navGroup{display:flex;gap:8px;min-width:0}.navButton{min-height:34px;padding:0 12px;border:1px solid #d6e0d8;border-radius:8px;background:#fff;color:#4d5b53;cursor:pointer;font-size:14px;font-weight:800}.navButton.active{border-color:#235f48;background:#e9f3ed;color:#163326}.scopeSelector{display:flex;gap:8px;min-width:0;flex:0 1 auto}.scopeSelectTrigger{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;width:160px;max-width:32vw;min-height:34px;padding:0 10px;border:1px solid #cbd8cf;border-radius:8px;background:#fff;color:#24382e;cursor:pointer;font-size:13px;font-weight:800}.scopeSelectTrigger:disabled{cursor:not-allowed;opacity:.55}.scopeSelectContent{z-index:20;min-width:var(--radix-select-trigger-width);overflow:hidden;border:1px solid #d6e0d8;border-radius:8px;background:#fff;box-shadow:0 16px 40px #10191429}.scopeSelectItem{display:flex;align-items:center;min-height:34px;padding:0 10px;color:#24382e;cursor:pointer;font-size:13px;font-weight:700;outline:none}.scopeSelectItem[data-highlighted]{background:#e9f3ed;color:#163326}.globalError{width:min(var(--app-max-width),calc(100vw - var(--app-page-gutter) * 2));margin:14px auto 0;padding:12px 14px;border:1px solid #efb6ad;border-radius:8px;background:#fff6f4;color:#91382d;font-size:14px}.topbar,.pageHeader,.mainSurface,.sectionPanel{border:1px solid #dde5db;border-radius:8px;background:#fff}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;padding:12px 16px}.brand{display:inline-flex;align-items:center;gap:12px}.brandMark{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:#235f48;color:#fff;font-size:13px;font-weight:800}.brand strong,.brand span{display:block}.brand strong{color:#101914;font-size:15px}.brand div>span{margin-top:2px;color:#68756d;font-size:13px}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar.compact{justify-content:flex-end}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:0 14px;border:1px solid #235f48;border-radius:8px;background:#235f48;color:#fff;cursor:pointer;font-size:14px;font-weight:700;white-space:nowrap}.button.secondary{border-color:#cbd8cf;background:#fff;color:#24382e}.button:disabled,.iconButton:disabled{cursor:not-allowed;opacity:.52}.modeTabsList{display:inline-flex;overflow:hidden;border:1px solid #cbd8cf;border-radius:8px;background:#fff}.modeTabsTrigger{min-height:34px;padding:0 12px;border:0;background:transparent;color:#4d5d54;cursor:pointer;font-size:13px;font-weight:800}.modeTabsTrigger[data-state=active]{background:#235f48;color:#fff}.modeTabsTrigger:disabled{cursor:not-allowed;opacity:.45}.pageHeader{display:grid;grid-template-columns:minmax(260px,1fr) minmax(420px,.95fr);gap:20px;margin-top:18px;padding:22px}.eyebrow{color:#2f6b4f;font-size:13px;font-weight:800;text-transform:uppercase}h1,h2{margin:0;color:#101914;letter-spacing:0}h1{margin-top:6px;font-size:30px;line-height:1.18}h2{font-size:18px}.summaryGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.summaryTile{min-height:78px;padding:14px;border:1px solid #e1e8df;border-radius:8px;background:#fafbf8}.summaryTile span{display:block;color:#68756d;font-size:12px;font-weight:700}.summaryTile strong{display:block;margin-top:10px;color:#101914;font-size:26px;line-height:1}.errorBanner{margin-top:14px;padding:12px 14px;border:1px solid #efb6ad;border-radius:8px;background:#fff6f4;color:#91382d;font-size:14px}.warningBanner{margin:12px 0;padding:12px 14px;border:1px solid #e5c65f;border-radius:8px;background:#fff9df;color:#695415;font-size:14px}.mainSurface{margin-top:18px;padding:16px}.tabsRoot{width:100%}.tabsList{display:flex;gap:8px;overflow-x:auto;padding:4px 4px 14px}.tabsTrigger{min-height:34px;padding:0 12px;border:1px solid #d6e0d8;border-radius:8px;background:#fff;color:#4d5b53;cursor:pointer;font-size:14px;font-weight:700;white-space:nowrap}.tabsTrigger[data-state=active]{border-color:#235f48;background:#e9f3ed;color:#163326}.sectionPanel{padding:16px}.sectionStack{display:grid;gap:16px}.sectionHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.tableWrap{overflow-x:auto;border:1px solid #e2e9e0;border-radius:8px}.dataTable{width:100%;min-width:860px;border-collapse:collapse}.dataTable th,.dataTable td{padding:12px 14px;border-bottom:1px solid #e8eee6;text-align:left;vertical-align:middle}.dataTable th{color:#68756d;background:#fafbf8;font-size:12px;font-weight:800}.dataTable tr:last-child td{border-bottom:0}.stackCell{display:grid;gap:4px;min-width:160px}.stackCell strong{color:#17211b;font-size:14px}.stackCell span,.muted{color:#68756d;font-size:12px}.actionsCell{width:98px;white-space:nowrap}.iconButton{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin-left:4px;border:1px solid #d4ded6;border-radius:8px;background:#fff;color:#24382e;cursor:pointer}.dangerIcon{color:#a84436}.statusBadge{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border:1px solid #b8d8c6;border-radius:999px;background:#eef8f1;color:#1d6844;font-size:12px;font-weight:800}.statusBadge.disabled{border-color:#d8d8d0;background:#f3f2ee;color:#77756d}.tokenList{display:flex;flex-wrap:wrap;gap:6px;min-width:160px}.token{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid #dce4db;border-radius:999px;background:#f7f9f5;color:#3f5248;font-size:12px;font-weight:700}.typeChip{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid #cfded3;border-radius:8px;background:#edf5ef;color:#244635;font-size:12px;font-weight:800;text-transform:uppercase}.emptyState{display:grid;gap:6px;min-height:132px;align-content:center;justify-items:center;padding:24px;border:1px dashed #cfdacf;border-radius:8px;color:#68756d;text-align:center}.emptyState strong{color:#17211b}.workflowLayout{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(420px,1.25fr);gap:16px}.workflowStudio{overflow:hidden}.studioToolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid #e1e8e1}.studioToolbar>div:first-child{display:grid;gap:4px}.templateToolbar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,.9fr) minmax(150px,.9fr) auto minmax(140px,.8fr) minmax(140px,.8fr) auto;gap:8px;align-items:center;padding:12px 16px;border-bottom:1px solid #e1e8e1;background:#fafbf8}.templateToolbarTitle{display:grid;gap:3px;min-width:0}.templateToolbar select,.templateToolbar input{width:100%;min-height:34px;padding:0 9px;border:1px solid #ccd8d0;border-radius:8px;background:#fff;color:#17211b;font-size:12px}.studioGrid{display:grid;grid-template-columns:minmax(230px,.7fr) minmax(250px,.8fr) minmax(420px,1.5fr);min-height:640px}.studioColumn{min-width:0;padding:16px;border-right:1px solid #e1e8e1}.studioColumn:last-child{border-right:0}.nodeLibrary,.nodeInstanceList,.edgeEditor,.nodeForm{display:grid;gap:8px}.nodeLibraryRow,.nodeInstanceRow{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:54px;padding:9px 10px;border:1px solid #e1e9e1;border-radius:8px;background:#fafbf8;color:#17211b;cursor:pointer;text-align:left}.nodeLibraryRow:hover,.nodeInstanceRow.active{border-color:#6c9b82;background:#eef7f0}.nodeLibraryRow span,.nodeInstanceRow span{display:grid;gap:3px;min-width:0}.nodeLibraryRow small,.nodeInstanceRow small{overflow:hidden;color:#68756d;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.edgeHeader{margin-top:22px}.edgeEditor select,.nodeForm input{width:100%;min-height:36px;padding:0 10px;border:1px solid #d6e0d8;border-radius:8px;background:#fff;color:#17211b}.edgeRow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border:1px solid #e1e9e1;border-radius:8px;background:#fafbf8;color:#526158;font-family:SFMono-Regular,Consolas,monospace;font-size:11px}.compactEmpty{min-height:72px;padding:12px}.nodeConfigColumn{overflow:auto}.nodeForm label,.jsonField{display:grid;gap:6px;color:#526158;font-size:12px;font-weight:800}.nodeForm input{font-size:13px;font-weight:500}.jsonSectionEditor{width:100%;min-height:116px;resize:vertical;padding:9px;border:1px solid #ccd8d0;border-radius:8px;background:#fff;color:#30433a;font-family:SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.45}.jsonSectionEditor.invalid{border-color:#d46658;background:#fff8f6}.fieldError{color:#a84436;font-size:11px;font-weight:700}.fieldHint{color:#7a877f;font-size:11px;font-weight:500;line-height:1.35}.configEditor{display:grid;gap:10px;padding:10px;border:1px solid #e1e8e1;border-radius:8px;background:#fafbf8}.configEditorHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#405249;font-size:12px}.configFieldGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.configFieldGrid .field textarea{min-height:132px}.configFieldGrid .fieldHint{align-self:end}.bindingEditor{display:grid;gap:10px;padding:10px;border:1px solid #e1e8e1;border-radius:8px;background:#fafbf8}.bindingToolbar{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(140px,1fr) auto;gap:8px;align-items:center}.bindingToolbar select,.bindingToolbar input{width:100%;min-height:34px;padding:0 9px;border:1px solid #ccd8d0;border-radius:8px;background:#fff;color:#17211b;font-size:12px}.bindingToolbar .muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bindingTreePanel{max-height:270px;overflow:auto;padding:7px;border:1px solid #dbe5dd;border-radius:8px;background:#fff}.bindingTree,.bindingTreeItem{display:grid;gap:2px}.bindingTreeRow{display:grid;grid-template-columns:24px minmax(0,1fr);gap:2px;align-items:stretch;border-radius:6px}.bindingTreeRow.selected{background:#eef7f0}.bindingTreeToggle,.bindingTreeValue{border:0;background:transparent;color:#405249;cursor:pointer}.bindingTreeToggle{display:grid;place-items:center;padding:0}.bindingTreeToggle:disabled{cursor:default;opacity:.35}.bindingTreeSpacer{width:14px}.bindingTreeValue{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:6px 7px;text-align:left}.bindingTreeValue span:first-child{display:grid;gap:2px;min-width:0}.bindingTreeValue small{color:#7a877f;font-size:10px;font-weight:500}.bindingTreeSample{overflow:hidden;max-width:48%;color:#68756d;font-family:SFMono-Regular,Consolas,monospace;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.bindingTreeHint{padding-left:24px}.bindingSelection{display:grid;gap:4px;padding:8px 10px;border:1px solid #dbe5dd;border-radius:8px;background:#fff;color:#405249;font-size:11px}.bindingSelection span{overflow:hidden;color:#68756d;font-family:SFMono-Regular,Consolas,monospace;text-overflow:ellipsis;white-space:nowrap}.bindingWarning{padding:8px 10px;border:1px solid #efc3a5;border-radius:8px;background:#fff8f0;color:#98552e;font-size:11px;font-weight:700;line-height:1.4}.rawWorkflowEditor{width:calc(100% - 32px);min-height:640px;margin:16px}.dryRunSurface{margin-top:16px}.datasetLayout{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(620px,1.3fr);gap:16px}.datasetList{display:grid;gap:8px}.datasetRow{display:grid;gap:4px;width:100%;min-height:58px;padding:10px 12px;border:1px solid #e2e9e0;border-radius:8px;background:#fafbf8;color:#17211b;cursor:pointer;text-align:left}.datasetRow.active{border-color:#235f48;background:#e9f3ed}.datasetRow strong{font-size:14px}.datasetRow span{color:#68756d;font-size:12px}.inlineForm{display:grid;gap:10px;margin-top:14px}.inlineForm input,.inlineForm textarea{width:100%;border:1px solid #d6e0d8;border-radius:8px;background:#fff;color:#17211b}.inlineForm input{min-height:36px;padding:0 10px}.smallTextarea{min-height:70px;padding:10px;resize:vertical}.caseGrid{display:grid;grid-template-columns:minmax(220px,.45fr) minmax(360px,.55fr);gap:16px}.caseEditor{min-height:320px}.dryRunInputBar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:10px}.dryRunInputBar select{min-width:180px;max-width:280px;min-height:34px;border:1px solid #ccd8d0;border-radius:8px;background:#fff;color:#17211b;padding:0 10px;font-size:13px;font-weight:700}.dryRunInputEditor{min-height:180px;margin-top:10px}.versionList{display:grid;gap:10px}.versionRow{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:12px;align-items:center;padding:12px;border:1px solid #e2e9e0;border-radius:8px;background:#fafbf8}.dangerText{color:#a84436}.nodeTypeList,.traceList{display:grid;gap:10px}.nodeTypeRow,.traceRow{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(120px,.7fr);gap:12px;align-items:center;padding:12px;border:1px solid #e2e9e0;border-radius:8px;background:#fafbf8}.traceRow{grid-template-columns:minmax(160px,.3fr) minmax(0,1fr);align-items:start}.traceMeta{display:flex;grid-column:2;gap:8px;flex-wrap:wrap}.traceMeta span{padding:3px 8px;border:1px solid #dce6df;border-radius:999px;background:#fff;color:#526158;font-size:12px;font-weight:700}.traceError{grid-column:2;padding:8px 10px;border:1px solid #efb6ad;border-radius:8px;background:#fff6f4;color:#91382d;font-size:13px}.traceRow pre{grid-column:2;max-height:260px;overflow:auto;margin:0;padding:12px;border:1px solid #e2e9e0;border-radius:8px;background:#fff;color:#30433a;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.45}.jsonEditor{width:100%;min-height:520px;resize:vertical;border:1px solid #ccd8d0;border-radius:8px;background:#fff;color:#17211b;padding:12px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.55}.successBanner{margin-bottom:14px;padding:12px 14px;border:1px solid #b8d8c6;border-radius:8px;background:#eef8f1;color:#1d6844;font-size:14px;font-weight:800}.dialogOverlay{position:fixed;inset:0;background:#10191470}.dialogContent{position:fixed;top:50%;left:50%;width:min(720px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 32px));overflow-y:auto;transform:translate(-50%,-50%);border:1px solid #d7e0d7;border-radius:8px;background:#fff;padding:18px;box-shadow:0 24px 80px #111f183d}.dialogHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.dialogTitle{color:#101914;font-size:18px;font-weight:800}.dialogDescription{margin-top:5px;color:#68756d;font-size:13px;line-height:1.45}.entityForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:6px}.field span,.checkboxField{color:#405249;font-size:13px;font-weight:800}.field input,.field select,.field textarea{width:100%;min-height:38px;border:1px solid #ccd8d0;border-radius:8px;background:#fff;color:#17211b;padding:8px 10px}.field textarea{resize:vertical;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.45}.field input:disabled{background:#f2f4f0;color:#68756d}.spanTwo{grid-column:1 / -1}.checkboxField{display:inline-flex;align-items:center;gap:8px}.checkboxField input{width:16px;height:16px}.formError{padding:10px 12px;border:1px solid #efb6ad;border-radius:8px;background:#fff6f4;color:#91382d;font-size:13px}.dialogActions{display:flex;justify-content:flex-end;gap:10px}.toastViewport{position:fixed;top:64px;right:24px;z-index:100;width:min(420px,calc(100vw - 48px))}.toast{border:1px solid #efb6ad;border-radius:8px;background:#fff6f4;box-shadow:0 12px 32px #111f1829;color:#91382d;padding:12px 14px;font-size:13px;font-weight:700;line-height:1.45}@media(max-width:920px){.pageHeader{grid-template-columns:1fr}.workflowLayout,.datasetLayout,.summaryGrid,.studioGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.nodeConfigColumn{grid-column:1 / -1;border-top:1px solid #e1e8e1;border-right:0}}@media(max-width:640px){:root{--app-page-gutter: 12px}.appShell{padding-top:12px}.topbar,.sectionHeader,.dialogActions{align-items:stretch;flex-direction:column}.toolbar.compact,.button{width:100%}h1{font-size:24px}.summaryGrid,.workflowLayout,.studioGrid,.datasetLayout,.caseGrid,.versionRow,.nodeTypeRow,.traceRow,.entityForm{grid-template-columns:1fr}.spanTwo{grid-column:auto}.studioToolbar{align-items:stretch;flex-direction:column}.templateToolbar{grid-template-columns:1fr}.studioColumn{border-right:0;border-bottom:1px solid #e1e8e1}}
