:root{color-scheme:dark;--bg:#0d171e;--panel:#14232d;--line:#304650;--text:#ecf2f4;--muted:#a8bdc6;--accent:#71e4cc;--accent-ink:#09251e;--accent-hover:#a5f5df;--button:#1b333f;--button-hover:#2a4858;--control-line:#4a6571;--input:#0c1a22;--sidebar:#101e27;--selected:#24424e;--inset:#10202a;--danger:#ffb7af;--badge:#a2ead8;--badge-line:#3e675f;--notice:#3b2d23;--notice-text:#ffdbb8;--notice-line:#f8ba7b;--result:#08131a;--result-text:#c8e7ed;--graph-dot:#2a3d47;--summary:#cde5ea;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.pipeline-canvas-shell{display:grid;grid-template-columns:minmax(10rem,14rem) minmax(30rem,1fr);gap:.75rem;margin:1rem 0}.pipeline-palette{max-height:34rem;overflow:auto;display:flex;flex-direction:column;gap:.35rem}.pipeline-palette h4{margin:.7rem 0 .2rem;text-transform:capitalize}.pipeline-canvas{height:34rem;border:1px solid var(--line,#687080);border-radius:.5rem;background:#f7f8fa}.pipeline-node{min-width:8rem;padding:.7rem;border:2px solid #465469;border-radius:.45rem;background:white;color:#172033;box-shadow:0 2px 8px rgb(0 0 0/12%)}.pipeline-node small,.pipeline-node strong{display:block}.pipeline-node.selected{outline:3px solid #b20e75;outline-offset:2px}.pipeline-node-dataset_source{border-color:#156b4f}.pipeline-node-dataset_output{border-color:#174ea6}.pipeline-node-function_reference{border-color:#a33a24}.pipeline-builder-lower{display:grid;grid-template-columns:minmax(18rem,1fr) minmax(18rem,1fr);gap:1rem}.pipeline-builder-lower>section,.pipeline-inspector,.pipeline-invalid,.pipeline-valid{border:1px solid var(--line,#687080);border-radius:.5rem;padding:.8rem}.pipeline-builder-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}.pipeline-valid{border-left:.4rem solid #177245}.pipeline-invalid{border-left:.4rem solid #a33a24}@media (max-width:850px){.pipeline-builder-lower,.pipeline-canvas-shell{grid-template-columns:1fr}.pipeline-canvas{height:26rem}}@media (prefers-reduced-motion:reduce){.pipeline-builder *,.react-flow__viewport{transition:none!important}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--control-line);border-radius:5px;padding:8px 13px;background:var(--button);color:var(--text)}button:hover{background:var(--button-hover)}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:650}.primary:hover{background:var(--accent-hover)}.danger{color:var(--danger)}input,select,textarea{border:1px solid var(--control-line);background:var(--input);color:var(--text);border-radius:4px;padding:9px;width:100%;min-width:0}input[type=checkbox]{width:auto;accent-color:var(--accent);margin-right:7px}textarea{font-family:ui-monospace,monospace;font-size:12px;resize:vertical}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1{font-size:34px;line-height:1.2;letter-spacing:-1px;margin:0 0 10px}h2{font-size:21px;margin:0 0 18px}h3{font-size:16px}p{color:var(--muted)}code{word-break:break-all;font-size:12px}.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}aside{border-right:1px solid var(--line);padding:30px 20px;display:flex;flex-direction:column;gap:18px;background:var(--sidebar)}main{padding:35px 40px;min-width:0;max-width:1700px}.brand{font-size:22px;letter-spacing:3px;font-weight:700}.brand span{display:block;font-size:9px;letter-spacing:1.5px;color:var(--muted);margin:8px 0 20px}nav{display:flex;flex-direction:column;gap:9px;margin-top:20px}nav button{text-align:left;border:0;background:transparent;padding:12px}nav button[aria-current=page]{background:var(--selected);border-left:3px solid var(--accent);color:var(--accent)}.sidebar-bottom{margin-top:auto;font-size:11px;display:grid;gap:10px;padding-top:60px}header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:28px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--accent)}.badge{display:inline-block;border:1px solid var(--badge-line);color:var(--badge);border-radius:20px;padding:4px 12px;font-size:11px;white-space:nowrap}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:24px;margin-bottom:24px}.inset{background:var(--inset);padding:16px;margin:12px 0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.row{flex-wrap:wrap;align-items:end;gap:12px;margin:16px 0}.field,.row{display:flex}.field{flex-direction:column;gap:6px;margin:10px 0;color:var(--muted);font-size:12px;min-width:160px;flex:1 1}fieldset{border:1px solid var(--line);border-radius:6px;margin:22px 0;padding:20px}legend{color:var(--accent);padding:0 8px}.notice{border-left:3px solid var(--notice-line);padding:12px 16px;background:var(--notice);color:var(--notice-text);overflow-wrap:anywhere}.result{max-height:520px;overflow:auto;background:var(--result);padding:18px;border-radius:6px;color:var(--result-text);font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.graph{border:1px solid var(--line);border-radius:6px;padding:15px;margin:20px 0;background:radial-gradient(var(--graph-dot) 1px,transparent 1px);background-size:18px 18px}.graph svg{width:100%;max-height:550px}.graph-description{color:var(--muted);font-size:12px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}td,th{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top;max-width:320px;overflow-wrap:anywhere}th{font-weight:500}caption,th{color:var(--muted)}caption{text-align:left;margin:10px}details{margin:14px 0}summary{cursor:pointer;color:var(--summary);padding:8px 0}.operation{border-bottom:1px solid var(--line);padding:8px}.muted{color:var(--muted);font-size:11px}.skip{position:absolute;left:-9999px}.skip:focus{left:20px;top:10px;background:var(--accent);color:var(--accent-ink);padding:10px;z-index:100}.login{max-width:850px;margin:10vh auto;padding:50px}.login h1{font-size:76px;margin-top:70px;line-height:1.05}.login p{font-size:16px}.login .primary{margin-top:25px;padding:13px 22px}.login .muted{font-size:12px}@media (max-width:850px){.shell{grid-template-columns:1fr}aside{border-right:0;border-bottom:1px solid var(--line);padding:20px}.sidebar-bottom{padding:0;display:flex;align-items:center}.sidebar-bottom,nav{margin:0;flex-wrap:wrap}nav{flex-direction:row}main{padding:22px 16px}.panel{padding:16px}.login h1{font-size:50px}.login{margin:20px auto}.brand span{margin-bottom:0}.graph{overflow:auto}.graph svg{min-width:650px}.grid{grid-template-columns:1fr}}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:20px 0}.metrics>div{border:1px solid var(--line);border-radius:6px;padding:16px;background:var(--inset)}.metrics strong{display:block;font-size:28px;font-weight:500;color:var(--accent)}.metrics span{color:var(--muted);font-size:11px}aside{height:100vh;position:sticky;top:0;overflow-y:auto;align-self:start}aside .field{flex:none}aside .row:has(button:disabled+button:disabled){display:none}@media (max-width:850px){aside{height:auto;position:static;overflow:visible}}.brand-heading{display:flex;align-items:center;gap:12px}.brand-logo{flex:none;width:56px;height:56px;border-radius:6px}.brand-logo-light{display:none}.login .brand-logo{width:72px;height:72px}@media (prefers-color-scheme:light){:root{color-scheme:light;--bg:#f5f7fa;--panel:#ffffff;--line:#cbd5df;--text:#14232d;--muted:#526570;--accent:#b00065;--accent-ink:#ffffff;--accent-hover:#8d0051;--button:#ffffff;--button-hover:#e8edf3;--control-line:#91a3b1;--input:#ffffff;--sidebar:#ffffff;--selected:#fce7f2;--inset:#edf2f6;--danger:#b42318;--badge:#23624f;--badge-line:#649a87;--notice:#fff1df;--notice-text:#73401b;--notice-line:#a85c16;--result:#edf2f6;--result-text:#223e4a;--graph-dot:#bccbd4;--summary:#264958}.brand-logo-light{display:block}.brand-logo-dark{display:none}}.application-editor,.application-runtime{padding:1rem;max-width:100%}.app-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:1.5rem}.app-layout{display:flex;gap:1rem;min-width:0}.app-layout.column{flex-direction:column}.app-layout.row{flex-direction:row;flex-wrap:wrap}.app-layout.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}.app-layout.compact{gap:.5rem}.app-layout.large{gap:2rem}.app-layout.align-start{align-items:start}.app-layout.align-center{align-items:center}.app-widget{min-width:0;flex:1 1;border:1px solid var(--line,#777);border-radius:.4rem;padding:1rem}.app-table{overflow-x:auto}.app-table table{width:100%}.application-runtime nav{display:flex;gap:.5rem;flex-wrap:wrap}.application-runtime [aria-current=page]{outline:2px solid currentColor}.application-editor button:focus-visible,.application-runtime button:focus-visible{outline:3px solid currentColor;outline-offset:3px}@media (max-width:700px){.app-editor-grid{grid-template-columns:1fr}.app-layout.row{flex-direction:column}}@media (prefers-reduced-motion:reduce){.application-editor *,.application-runtime *{animation:none!important;transition:none!important}}.application-runtime>header{display:block;margin-bottom:1.5rem}.application-runtime>header h1{font-size:clamp(1.8rem,5vw,2.6rem);max-width:100%}.application-runtime>header p{max-width:60ch;margin:.5rem 0}.app-table table{min-width:40rem}.app-table td,.app-table th,.app-table th button{white-space:nowrap;word-break:normal}