:root{--canvas:#f4f6f8;--surface:#fff;--surface-muted:#f8fafb;--ink:#17202a;--ink-soft:#475467;--muted:#7b8794;--line:#dfe4e9;--line-strong:#c9d0d8;--nav:#18212a;--nav-soft:#24313d;--blue:#2368c4;--blue-dark:#19549f;--green:#16865c;--green-soft:#e9f6f0;--red:#c63f46;--red-soft:#fcecee;--amber:#ad6c0d;--amber-soft:#fff4dd;--shadow:0 1px 2px #1018280d}*{box-sizing:border-box;letter-spacing:0}html{background:var(--canvas)}body{color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,Segoe UI,PingFang SC,Microsoft YaHei,ui-sans-serif,system-ui,sans-serif;font-size:14px;line-height:1.5}button,input,textarea{color:inherit;font:inherit}button{border:0}button:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:2px;outline:2px solid #2368c473}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{min-height:100vh;display:flex}.sidebar{z-index:20;color:#dce4eb;background:var(--nav);border-right:1px solid #111820;flex-direction:column;width:236px;padding:0 14px 18px;display:flex;position:fixed;inset:0 auto 0 0}.brand{border-bottom:1px solid #2d3945;align-items:center;gap:11px;height:70px;padding:0 7px;display:flex}.brand-mark{color:#fff;background:#2768ae;border-radius:6px;flex:0 0 34px;place-items:center;width:34px;height:34px;display:grid}.brand>div:last-child{flex-direction:column;min-width:0;display:flex}.brand strong{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:680;overflow:hidden}.brand span{color:#8fa0af;font-size:11px}.nav-list{flex-direction:column;flex:1;gap:4px;padding:18px 0;display:flex}.nav-list button{color:#aebbc6;cursor:pointer;text-align:left;background:0 0;border-radius:5px;align-items:center;gap:10px;width:100%;height:42px;padding:0 11px;transition:color .15s,background-color .15s;display:flex}.nav-list button:hover{color:#fff;background:#202c37}.nav-list button.active{color:#fff;background:var(--nav-soft);box-shadow:inset 3px 0 #4d91da}.nav-list button span{flex:1;font-size:13px;font-weight:550}.nav-chevron{opacity:.45}.sidebar-boundary{color:#8dc5ad;background:#1d2d2a;border:1px solid #2a4940;border-radius:6px;align-items:center;gap:10px;padding:12px;display:flex}.sidebar-boundary div{flex-direction:column;min-width:0;display:flex}.sidebar-boundary strong{color:#dcefe7;font-size:12px}.sidebar-boundary span{color:#7fa493;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.app-main{width:calc(100% - 236px);min-width:0;margin-left:236px}.topbar{z-index:15;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff5;justify-content:flex-end;align-items:center;gap:14px;height:58px;padding:0 28px;display:flex;position:sticky;top:0}.mobile-brand,.mobile-nav{display:none}.topbar-context{color:var(--ink-soft);white-space:nowrap;align-items:center;gap:8px;font-size:12px;display:flex}.service-dot,.status-dot{background:#a5adb6;border-radius:50%;flex:0 0 8px;width:8px;height:8px;display:inline-block}.service-dot.online,.status-dot.completed{background:var(--green);box-shadow:0 0 0 3px #16865c21}.service-dot.offline,.status-dot.failed{background:var(--red);box-shadow:0 0 0 3px #c63f461f}.service-dot.pending,.status-dot.queued,.status-dot.running{background:var(--amber);box-shadow:0 0 0 3px #ad6c0d1f}.separator{background:var(--line);width:1px;height:14px;margin:0 4px}.icon-button{width:34px;height:34px;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:5px;flex:0 0 34px;place-items:center;display:inline-grid}.icon-button:hover{color:var(--ink);background:var(--surface-muted);border-color:var(--line-strong)}.icon-button.compact{flex-basis:30px;width:30px;height:30px}.content{width:min(100%,1520px);min-height:calc(100vh - 58px);margin:0 auto;padding:26px 30px 42px}.page-heading{justify-content:space-between;align-items:flex-start;gap:18px;min-height:58px;margin-bottom:18px;display:flex}.page-heading h1{color:var(--ink);margin:2px 0 0;font-size:24px;font-weight:690;line-height:1.25}.eyebrow{color:var(--muted);text-transform:uppercase;margin:0;font-size:11px;font-weight:600}.secondary-button,.primary-button{cursor:pointer;white-space:nowrap;border-radius:5px;justify-content:center;align-items:center;gap:7px;min-height:36px;padding:0 13px;font-size:12px;font-weight:620;display:inline-flex}.secondary-button{color:var(--ink-soft);background:var(--surface);border:1px solid var(--line-strong)}.secondary-button:hover{color:var(--ink);background:var(--surface-muted)}.primary-button{color:#fff;background:var(--blue);border:1px solid var(--blue);box-shadow:var(--shadow)}.primary-button:hover:not(:disabled){background:var(--blue-dark);border-color:var(--blue-dark)}.primary-button.small{min-width:76px;min-height:34px}.compact-button{min-height:32px;padding:0 10px}.workbench-grid{grid-template-columns:minmax(340px,.78fr) minmax(520px,1.4fr);align-items:stretch;gap:16px;display:grid}.panel,.result-panel,.query-bar,.runs-list,.run-detail,.status-primary,.boundary-panel,.capabilities-panel,.endpoint-list{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:7px}.panel{flex-direction:column;min-width:0;display:flex;overflow:hidden}.panel-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;min-height:67px;padding:12px 15px;display:flex}.panel-header>div:first-child{align-items:center;gap:11px;min-width:0;display:flex}.panel-header>div:first-child>div{min-width:0}.panel-header h2{margin:0;font-size:14px;font-weight:660}.panel-header p{max-width:390px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:11px;overflow:hidden}.step-index{color:#275d96;background:#edf4fb;border:1px solid #cee0f2;border-radius:5px;flex:0 0 28px;place-items:center;width:28px;height:28px;font-family:SFMono-Regular,Consolas,monospace;font-size:11px;font-weight:700;display:inline-grid}.json-editor{resize:vertical;color:#253141;border:0;border-bottom:1px solid var(--line);tab-size:2;background:#fbfcfd;outline:0;width:100%;height:422px;min-height:422px;padding:15px 16px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1.62}.json-editor:focus{background:#fff;box-shadow:inset 0 0 0 2px #2368c42e}.json-editor.invalid{box-shadow:inset 3px 0 0 var(--red)}.validation-line{align-items:center;gap:7px;min-height:37px;padding:8px 14px;font-size:11px;display:flex}.validation-line span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.validation-line.valid{color:#176b4c;background:#f2faf6}.validation-line.error{color:#a72e37;background:#fff5f5}.dataset-stats{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));min-height:70px;padding:11px 15px;display:grid}.dataset-stats>div{border-right:1px solid var(--line);flex-direction:column;justify-content:center;min-width:0;padding:0 12px;display:flex}.dataset-stats>div:first-child{padding-left:0}.dataset-stats>div:last-child{border-right:0;padding-right:0}.dataset-stats span,.metric span,.identifier>span{color:var(--muted);font-size:10px}.dataset-stats strong{color:var(--ink);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:14px;overflow:hidden}.candle-chart{background:#fff;width:100%;height:350px;min-height:350px;overflow:hidden}.execution-strip{color:#dce5ec;min-height:68px;box-shadow:var(--shadow);background:#25313c;border:1px solid #1a232c;border-radius:7px;justify-content:space-between;align-items:center;gap:18px;margin-top:16px;padding:12px 14px;display:flex}.execution-copy,.execution-actions,.execution-copy>div:last-child{align-items:center;display:flex}.execution-copy{gap:11px;min-width:0}.execution-copy>div:last-child{flex-direction:column;align-items:flex-start;min-width:0}.execution-copy strong{color:#fff;font-size:13px}.execution-copy span{color:#9aabb8;font-size:11px}.execution-icon{color:#9ec4ea;background:#1c2731;border:1px solid #3c4b58;border-radius:5px;flex:0 0 36px;place-items:center;width:36px;height:36px;display:grid}.execution-actions{gap:10px}.execution-strip .primary-button{min-width:122px}.run-link{color:#c8d4dd;cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:6px;height:34px;padding:0 9px;font-size:11px;display:inline-flex}.run-link:hover{background:#303e4a}.result-panel{margin-top:16px;overflow:hidden}.result-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:60px;padding:12px 15px;display:flex}.result-heading>div{align-items:center;gap:10px;display:flex}.result-heading h2{margin:0;font-size:14px}.result-heading code,.identifier code{color:#5b6572;text-overflow:ellipsis;white-space:nowrap;font-family:SFMono-Regular,Consolas,monospace;font-size:10px;overflow:hidden}.status-badge{min-height:24px;color:var(--ink-soft);white-space:nowrap;background:#eef1f4;border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:10px;font-weight:650;display:inline-flex}.status-badge.completed,.status-text.completed{color:#126e4b;background:var(--green-soft)}.status-badge.failed,.status-text.failed{color:#a83038;background:var(--red-soft)}.status-badge.queued,.status-badge.running,.status-text.queued,.status-text.running{color:#8a570c;background:var(--amber-soft)}.pulse{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite pulse}.metric-grid{grid-template-columns:repeat(6,minmax(0,1fr));padding:17px 15px;display:grid}.metric{border-right:1px solid var(--line);flex-direction:column;min-width:0;padding:0 14px;display:flex}.metric:first-child{padding-left:0}.metric:last-child{border-right:0;padding-right:0}.metric strong{font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:16px;overflow:hidden}.positive{color:var(--green)}.negative{color:var(--red)}.run-progress{min-height:82px;color:var(--ink-soft);justify-content:center;align-items:center;gap:9px;font-size:12px;display:flex}.query-bar{height:54px;color:var(--muted);align-items:center;gap:10px;margin-bottom:16px;padding:9px 10px 9px 14px;display:flex}.query-bar input{background:0 0;border:0;outline:0;flex:1;min-width:0;padding:0;font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.query-bar input::placeholder{color:#a0a9b3;font-family:Inter,Microsoft YaHei,sans-serif}.runs-layout{grid-template-columns:minmax(360px,.78fr) minmax(480px,1.22fr);align-items:start;gap:16px;display:grid}.runs-list,.run-detail{min-width:0;overflow:hidden}.list-header{height:47px;color:var(--ink-soft);background:var(--surface-muted);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:0 14px;font-size:11px;font-weight:620;display:flex}.run-row{border-bottom:1px solid var(--line);cursor:pointer;text-align:left;background:#fff;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:67px;padding:10px 13px;display:flex}.run-row:last-child{border-bottom:0}.run-row:hover,.run-row.selected{background:#f5f8fb}.run-row.selected{box-shadow:inset 3px 0 0 var(--blue)}.run-row-main,.run-row-end{align-items:center;gap:10px;min-width:0;display:flex}.run-row-main>div{flex-direction:column;min-width:0;display:flex}.run-row-main strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.run-row-main span:last-child{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:10px;overflow:hidden}.run-row-end{color:var(--muted);flex:none}.status-text{white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:10px}.run-detail{min-height:348px;padding-bottom:16px}.detail-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:73px;padding:13px 16px;display:flex}.detail-heading p{color:var(--muted);margin:0;font-size:10px}.detail-heading h2{margin:2px 0 0;font-size:17px}.identifier{grid-template-columns:74px minmax(0,1fr);gap:8px;padding:11px 16px 0;display:grid}.identifier code{background:#f3f5f7;border-radius:3px;padding:4px 7px}.run-detail .metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:18px;padding-top:22px}.run-detail .metric:nth-child(3),.run-detail .metric:last-child{border-right:0}.run-detail .metric:nth-child(4){padding-left:0}.error-banner{color:#9f3037;background:var(--red-soft);border-radius:5px;align-items:center;gap:8px;margin:0 16px;padding:10px;font-size:11px;display:flex}.refresh-run{margin:16px 16px 0}.empty-state{color:#a0a9b3;flex-direction:column;justify-content:center;align-items:center;gap:9px;min-height:200px;display:flex}.empty-state strong{color:var(--ink-soft);font-size:12px}.detail-empty{min-height:330px}.status-overview{grid-template-columns:1.35fr 1fr;gap:16px;margin-bottom:16px;display:grid}.status-primary,.boundary-panel{align-items:center;gap:15px;min-height:132px;padding:20px;display:flex}.large-status-icon{border-radius:7px;flex:0 0 50px;place-items:center;width:50px;height:50px;display:grid}.large-status-icon.ok{color:var(--green);background:var(--green-soft)}.large-status-icon.error{color:var(--red);background:var(--red-soft)}.status-primary>div:nth-child(2),.boundary-panel>div{flex:1;min-width:0}.status-primary span,.boundary-panel span{color:var(--muted);font-size:10px}.status-primary h2,.boundary-panel h2{margin:2px 0;font-size:18px}.status-primary p,.boundary-panel p{color:var(--ink-soft);margin:0;font-size:11px}.status-time{color:var(--muted);align-items:center;gap:6px;font-size:10px;display:flex;flex:none!important}.boundary-panel{color:#2d5874;background:#f2f7fa;border-color:#d3e1e9}.capabilities-panel,.endpoint-list{margin-bottom:16px;overflow:hidden}.section-title{background:var(--surface-muted);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;height:52px;padding:0 16px;display:flex}.section-title>div{align-items:center;gap:8px;display:flex}.section-title h2{margin:0;font-size:13px}.section-title>span{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:10px}.capability-grid{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.capability{color:#617082;border-right:1px solid var(--line);border-bottom:1px solid var(--line);align-items:center;gap:10px;min-width:0;min-height:84px;padding:13px 16px;display:flex}.capability:nth-child(4n){border-right:0}.capability:nth-last-child(-n+4){border-bottom:0}.capability>div{flex-direction:column;min-width:0;display:flex}.capability strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.capability span{width:fit-content;margin-top:3px;font-size:10px;font-weight:620}.capability span.enabled{color:var(--green)}.capability span.disabled{color:var(--muted)}.endpoint-row{align-items:center;gap:11px;min-height:72px;padding:12px 16px;display:flex}.endpoint-row>div{flex-direction:column;flex:1;min-width:0;display:flex}.endpoint-row strong{font-size:12px}.endpoint-row div span{color:var(--muted);margin-top:2px;font-family:SFMono-Regular,Consolas,monospace;font-size:10px}.read-only-label{color:#176b4c;background:var(--green-soft);border-radius:999px;padding:3px 8px;font-size:10px;font-weight:650}.toast{z-index:50;color:#fff;background:#293541;border-radius:6px;align-items:center;gap:9px;width:min(390px,100vw - 32px);min-height:48px;padding:10px 11px 10px 13px;animation:.18s ease-out toast-in;display:flex;position:fixed;bottom:22px;right:22px;box-shadow:0 10px 30px #10182838}.toast.success{background:#176e50}.toast.danger{background:#a93840}.toast span{overflow-wrap:anywhere;flex:1;min-width:0;font-size:12px}.toast button{color:currentColor;cursor:pointer;opacity:.75;background:0 0;border-radius:4px;flex:0 0 28px;place-items:center;width:28px;height:28px;display:grid}.toast button:hover{opacity:1;background:#ffffff1f}.spin{animation:.8s linear infinite spin}.login-page{background:#eef2f5;place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{border:1px solid var(--line-strong);background:#fff;border-radius:7px;width:min(100%,410px);overflow:hidden;box-shadow:0 16px 45px #1a27341f}.login-brand{color:#e7edf2;background:var(--nav);align-items:center;gap:11px;min-height:76px;padding:14px 20px;display:flex}.login-mark{color:#fff;background:#2768ae;border-radius:6px;flex:0 0 40px;place-items:center;width:40px;height:40px;display:grid}.login-brand>div:last-child{flex-direction:column;display:flex}.login-brand strong{color:#fff;font-size:15px}.login-brand span{color:#91a1af;font-size:11px}.login-heading{color:#315b7b;align-items:center;gap:11px;padding:24px 22px 15px;display:flex}.login-heading h1{color:var(--ink);margin:0;font-size:20px}.login-heading p{color:var(--muted);margin:2px 0 0;font-size:11px}.login-panel form{flex-direction:column;gap:9px;padding:0 22px 22px;display:flex}.login-panel label{color:var(--ink-soft);font-size:11px;font-weight:620}.login-panel input{border:1px solid var(--line-strong);background:#fbfcfd;border-radius:5px;width:100%;height:42px;padding:0 11px}.login-panel input:focus{background:#fff;border-color:#77a4d2}.login-button{width:100%;min-height:42px;margin-top:5px}.login-error{color:#a72e37;background:var(--red-soft);border-radius:5px;align-items:center;gap:7px;padding:8px 9px;font-size:11px;display:flex}.login-security{color:#557063;background:#f3f8f5;border-top:1px solid #dce9e2;justify-content:center;align-items:center;gap:7px;min-height:47px;font-size:10px;display:flex}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.35}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (max-width:1180px){.workbench-grid,.runs-layout{grid-template-columns:1fr}.json-editor{height:370px;min-height:370px}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:18px}.metric:nth-child(3){border-right:0}.metric:nth-child(4){padding-left:0}.capability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.capability:nth-child(2n){border-right:0}.capability:nth-child(4n+1),.capability:nth-child(4n+2){border-bottom:1px solid var(--line)}.capability:nth-last-child(-n+2){border-bottom:0}}@media (max-width:820px){.sidebar{display:none}.app-main{width:100%;margin-left:0}.topbar{justify-content:space-between;padding:0 16px}.mobile-brand{min-width:0;color:var(--ink);align-items:center;gap:8px;display:flex}.mobile-brand strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.topbar-context .separator,.topbar-context span:last-child{display:none}.mobile-nav{z-index:14;border-bottom:1px solid var(--line);background:#fff;grid-template-columns:repeat(3,1fr);height:50px;display:grid;position:sticky;top:58px}.mobile-nav button{min-width:0;color:var(--muted);cursor:pointer;background:0 0;border-bottom:2px solid #0000;justify-content:center;align-items:center;gap:6px;font-size:11px;display:flex}.mobile-nav button.active{color:var(--blue);border-bottom-color:var(--blue)}.content{min-height:calc(100vh - 108px);padding:20px 16px 34px}.page-heading h1{font-size:21px}.status-overview{grid-template-columns:1fr}}@media (max-width:600px){.topbar-context{margin-left:auto}.topbar-context span:nth-child(2){text-overflow:ellipsis;max-width:76px;overflow:hidden}.mobile-nav button span{font-size:10px}.page-heading{min-height:50px;margin-bottom:14px}.page-heading .secondary-button{min-width:36px;padding:0 9px}.panel-header{align-items:flex-start;padding:12px}.panel-header p{max-width:190px}.json-editor{height:340px;min-height:340px;padding:12px;font-size:10px}.dataset-stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:10px}.dataset-stats>div:nth-child(2){border-right:0}.dataset-stats>div:nth-child(3){padding-left:0}.candle-chart{height:300px;min-height:300px}.execution-strip{flex-direction:column;align-items:stretch}.execution-actions{justify-content:flex-end}.execution-strip .primary-button{flex:1}.result-heading{flex-direction:column;align-items:flex-start}.result-heading code{max-width:100%}.metric-grid,.run-detail .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric,.metric:nth-child(3),.run-detail .metric:nth-child(3){border-right:1px solid var(--line)}.metric:nth-child(2n){border-right:0}.metric:nth-child(3),.metric:nth-child(5),.run-detail .metric:nth-child(3),.run-detail .metric:nth-child(5){padding-left:0}.query-bar{flex-wrap:wrap;height:auto;min-height:52px}.query-bar input{flex:none;width:calc(100% - 30px)}.query-bar .primary-button{width:100%}.run-row-end .status-text{display:none}.identifier{grid-template-columns:1fr}.status-primary,.boundary-panel{min-height:118px;padding:16px}.status-time{display:none}.capability-grid{grid-template-columns:1fr}.capability,.capability:nth-child(2n),.capability:nth-last-child(-n+2){border-right:0;border-bottom:1px solid var(--line);min-height:68px}.capability:last-child{border-bottom:0}.toast{bottom:16px;right:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
