:root{--bg:#f4f6f9;--surface:#fff;--surface-alt:#f8fafc;--border:#dfe4ea;--border-strong:#c8d0da;--text:#172033;--muted:#5f6b7a;--subtle:#8993a3;--brand:#0f6cbd;--brand-dark:#0b4f8a;--brand-light:#e8f3fc;--success:#107c10;--success-bg:#e9f6e9;--warning:#986f0b;--warning-bg:#fff4ce;--danger:#c50f1f;--danger-bg:#fde7e9;--paused:#6b4fa3;--paused-bg:#f1eafa;--shadow:0 1px 2px #18243214, 0 4px 12px #1824320d;--radius:8px;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;font-family:Segoe UI,Arial,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#root{min-width:1180px;min-height:100%}body{background:var(--bg);margin:0}button,input,select,textarea{font:inherit}button,select{cursor:pointer}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.skip-link{z-index:1000;color:#fff;background:var(--brand);border-radius:4px;padding:8px 14px;transition:top .15s;position:absolute;top:-48px;left:8px}.skip-link:focus{text-decoration:none;top:8px}.app-shell{min-width:1180px;min-height:100vh}.topbar{z-index:40;color:#fff;background:#18253a;align-items:center;gap:18px;height:56px;padding:0 20px;display:flex;position:sticky;top:0;box-shadow:0 1px #ffffff14}.brand{color:#fff;letter-spacing:.1px;background:0 0;border:0;align-items:center;gap:10px;min-width:272px;padding:0;font-weight:600;display:flex}.brand-mark{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:2px;width:26px;height:26px;display:grid}.brand-mark span:first-child{background:#f25022}.brand-mark span:nth-child(2){background:#7fba00}.brand-mark span:nth-child(3){background:#00a4ef}.brand-mark span:nth-child(4){background:#ffb900}.global-search{background:#ffffff1f;border:1px solid #fff3;border-radius:5px;flex:1;align-items:center;gap:9px;max-width:720px;height:36px;padding:0 12px;display:flex}.global-search:focus-within{color:var(--text);background:#fff;border-color:#87c8f5}.global-search svg{flex:none}.global-search select,.global-search input{color:inherit;background:0 0;border:0;outline:0}.global-search select{border-right:1px solid #ffffff38;max-width:172px;height:28px;padding:0 10px 0 0}.global-search select option{color:var(--text);background:#fff}.global-search:focus-within select{border-right-color:var(--border)}.global-search input{width:100%;min-width:160px}.global-search input::placeholder{color:#ffffffb8}.global-search:focus-within input::placeholder{color:var(--subtle)}.search-submit,.search-clear{border:0;height:28px}.search-submit{color:#fff;background:var(--brand);white-space:nowrap;border-radius:4px;padding:0 9px;font-size:11px;font-weight:700}.search-submit:hover{background:var(--brand-dark)}.search-clear{color:inherit;background:0 0;padding:0 5px;font-size:14px}.search-clear:hover{background:#7f7f7f26}.search-clear:disabled{cursor:default;opacity:1}.topbar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.environment-select{color:#fff;background:#253650;border:1px solid #ffffff40;border-radius:4px;height:32px;padding:0 28px 0 10px}.environment-badge{letter-spacing:.04em;color:#fff;background:#253650;border:1px solid #ffffff40;border-radius:4px;place-items:center;height:32px;padding:0 12px;font-size:12px;font-weight:600;display:inline-grid}.bootstrap-state{text-align:center;color:#253650;place-items:center;min-height:100vh;padding:24px;font-size:14px;display:grid}.signin-card{width:min(100%,480px);padding:32px}.signin-card .btn{margin:8px 4px 0}.signed-in-user{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.avatar{color:#17304a;background:#cfe8fa;border-radius:50%;place-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:grid}.shell-message{color:#654d08;background:#fff8dc;border-bottom:1px solid #e7c86e;justify-content:space-between;align-items:center;gap:12px;padding:10px 28px;font-size:12px;display:flex}.shell-message button{color:inherit;background:0 0;border:0;font-weight:700}main{min-width:0;padding:24px 28px 40px}.page{display:block}.page-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.page-title-row{align-items:center;gap:12px;display:flex}.page-title{letter-spacing:-.2px;margin:0;font-size:26px;font-weight:650}.page-subtitle{color:var(--muted);margin:6px 0 0}.header-actions{align-items:center;gap:8px;display:flex}.btn{color:#253247;border:1px solid var(--border-strong);background:#fff;border-radius:5px;justify-content:center;align-items:center;gap:7px;min-height:34px;padding:0 13px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:#f7f9fb;text-decoration:none}.btn.primary{color:#fff;border-color:var(--brand);background:var(--brand)}.btn.primary:hover{background:var(--brand-dark)}.btn.small{min-height:30px;padding:0 10px;font-size:12px}.btn[disabled]{cursor:not-allowed;color:#929cab;background:#f2f4f7;border-color:#dce1e7}.aggregation-tag{color:#0b4f8a;letter-spacing:.35px;text-transform:uppercase;white-space:nowrap;background:#dceefb;border-radius:3px;margin-left:3px;padding:2px 6px;font-size:9px;font-weight:800;display:inline-flex}.preview-tag{color:#694b00;letter-spacing:.4px;text-transform:uppercase;background:#fff1b8;border-radius:3px;margin-left:4px;padding:1px 5px;font-size:9px;font-weight:800}.support-banner,.error-banner{border-radius:6px;margin-bottom:16px;padding:12px 14px;line-height:1.5}.support-banner{color:#244d69;background:#f2f8fc;border:1px solid #b9d9f2}.support-banner strong{color:#173b54}.error-banner{color:var(--danger);background:var(--danger-bg);border:1px solid #e4a8ae}.kpis{grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin-bottom:18px;display:grid}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.kpi{min-height:110px;padding:16px;position:relative;overflow:hidden}.kpi:after{content:"";background:#edf4fb;border-radius:50%;width:96px;height:96px;position:absolute;bottom:-36px;right:-22px}.kpi-label{color:var(--muted);font-size:12px;font-weight:600}.kpi-value{margin-top:8px;font-size:28px;font-weight:650}.kpi-foot{color:var(--subtle);margin-top:7px;font-size:11px}.kpi.warning:before,.kpi.danger:before{content:"";width:4px;position:absolute;top:0;bottom:0;left:0}.kpi.warning:before{background:#f5a623}.kpi.danger:before{background:var(--danger)}.jobs-card{overflow:hidden}.app-shell:has(.jobs-page){flex-direction:column;height:100dvh;min-height:0;display:flex}:is(.app-shell:has(.jobs-page)>.topbar,.app-shell:has(.jobs-page)>.shell-message){flex-shrink:0}.app-shell:has(.jobs-page)>main{flex:1;min-height:0;display:flex}.jobs-page,.jobs-page .jobs-card{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.jobs-page>:not(.jobs-card),.jobs-card>:not(.table-wrap){flex-shrink:0}.jobs-card .table-wrap{overscroll-behavior:contain;flex:1;min-height:0}.jobs-card th{z-index:1;box-shadow:0 1px 0 var(--border);position:sticky;top:0}@media (height<=650px){.app-shell:has(.jobs-page){height:auto;min-height:100dvh}.jobs-card .table-wrap{flex:none;max-height:60dvh}}.toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:10px;padding:12px;display:flex}.field{height:34px;color:var(--text);border:1px solid var(--border-strong);background:#fff;border-radius:4px;padding:0 10px}.filter-search{border:1px solid var(--border-strong);background:#fff;border-radius:4px;align-items:center;gap:8px;width:330px;padding:0 10px;display:flex}.filter-search:focus-within{border-color:var(--brand);box-shadow:0 0 0 2px #0078d459}.filter-search input{border:0;outline:0;width:100%;height:32px}.time-field{gap:4px;display:grid}.time-field span{color:var(--muted);letter-spacing:.25px;text-transform:uppercase;font-size:10px;font-weight:700}.time-field input{width:190px}.toolbar-spacer{flex:1}.all-running-toggle{color:#354052;border:1px solid var(--border-strong);white-space:nowrap;background:#fff;border-radius:4px;align-items:center;gap:7px;height:36px;padding:0 10px;font-size:12px;display:flex}.all-running-toggle input{width:15px;height:15px}.table-wrap{overflow:auto}table{border-collapse:collapse;white-space:nowrap;width:100%}th{height:42px;color:var(--muted);border-bottom:1px solid var(--border);letter-spacing:.2px;text-align:left;text-transform:uppercase;background:#f8fafc;padding:0 14px;font-size:11px;font-weight:700}th.sortable{padding:0}.sort-button{width:100%;height:42px;color:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-align:left;text-transform:inherit;white-space:nowrap;background:0 0;border:0;align-items:center;gap:7px;padding:0 14px;display:flex}.sort-indicator{min-width:10px;color:var(--brand);font-size:10px}td{vertical-align:middle;border-bottom:1px solid #edf0f3;height:61px;padding:0 14px}tbody tr[tabindex]{cursor:pointer}tbody tr:hover{background:#f7fbfe}tbody tr:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;background:#f7fbfe}tbody tr:last-child td{border-bottom:0}.secondary{color:var(--subtle);margin-top:4px;font-size:11px;display:block}.mono{font-family:Consolas,monospace;font-size:12px}.jobs-page .job-list-id{white-space:normal;overflow-wrap:anywhere}.status{border-radius:12px;align-items:center;gap:6px;padding:4px 8px;font-size:11px;font-weight:700;display:inline-flex}.status:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.status.running{color:var(--brand);background:var(--brand-light)}.status.succeeded{color:var(--success);background:var(--success-bg)}.status.failed,.status.setupFailed{color:var(--danger);background:var(--danger-bg)}.status.warning,.status.retrying{color:var(--warning);background:var(--warning-bg)}.status.paused,.status.skipped{color:var(--paused);background:var(--paused-bg)}.status.scheduled,.status.waiting,.status.completed{color:#555d68;background:#edf0f3}.status-result-pair{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.result-badge{white-space:nowrap;border-radius:12px;align-items:center;padding:4px 8px;font-size:11px;font-weight:700;display:inline-flex}.result-badge.pending{color:var(--warning);background:var(--warning-bg)}.result-badge.succeeded{color:var(--success);background:var(--success-bg)}.result-badge.failed{color:var(--danger);background:var(--danger-bg)}.result-badge.cancelled{color:#555d68;background:#edf0f3}.table-state{min-height:150px;color:var(--muted);text-align:center;place-items:center;gap:4px;padding:40px 20px;display:grid}.pagination{color:var(--muted);border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 14px;font-size:12px;display:flex}.breadcrumb{color:var(--muted);align-items:center;gap:7px;margin-bottom:12px;font-size:12px;display:flex}.detail-title-row{align-items:center;gap:10px;display:flex}.detail-id{font-family:Consolas,monospace;font-size:21px}.copy-btn{width:27px;height:27px;color:var(--muted);background:0 0;border:0;border-radius:4px;place-items:center;padding:0;font-size:10px;display:grid}.copy-btn:hover{background:#eef2f6}.detail-summary{grid-template-columns:1.65fr 1fr;gap:14px;margin-bottom:16px;display:grid}.summary-main,.summary-side{padding:18px}.summary-grid{grid-template-columns:repeat(4,minmax(130px,1fr));gap:18px;display:grid}.label{color:var(--muted);letter-spacing:.25px;text-transform:uppercase;margin-bottom:5px;font-size:11px;font-weight:700}.value{font-weight:600}.id-list{gap:10px;display:grid}.id-line{grid-template-columns:86px minmax(0,1fr) 28px;align-items:center;gap:8px;display:grid}.id-line .mono{color:#39475a;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.detail-summary-toggle{cursor:pointer;font-weight:650}.tabs{z-index:20;border-bottom:1px solid var(--border);background:#fff;align-items:center;gap:2px;padding:0 12px;display:flex;position:sticky;top:56px}.tab{height:44px;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:0 14px;font-weight:600}.tab:hover{color:var(--text)}.tab.active{color:var(--brand);border-bottom-color:var(--brand)}.tab-panel{padding:16px}.resource-grid{grid-template-columns:repeat(3,minmax(240px,1fr));gap:12px;display:grid}.info-card{border:1px solid var(--border);background:#fff;border-radius:7px;min-height:150px;padding:16px}.info-card h3{margin:0 0 6px;font-size:15px}.info-card p{color:var(--muted);margin:0 0 14px;font-size:12px;line-height:1.45}.info-card .btn+.btn{margin-left:6px}.job-e2e{border:1px solid var(--border);background:#f8fafc;border-radius:7px;margin-top:14px;padding:14px}.job-e2e-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.job-e2e-header h3{margin:0;font-size:14px}.job-e2e-current{color:var(--muted);text-align:right;gap:2px;font-size:11px;display:grid}.job-e2e-flow{gap:2px;margin:0;padding:3px 2px 5px;list-style:none;display:grid}.job-e2e-node{--step-color:#9aa4b2;background:0 0;border:1px solid #0000;border-radius:6px;min-width:0;min-height:72px;padding:12px 12px 12px 52px;position:relative}.job-e2e-node:before{z-index:2;content:"";border:3px solid var(--step-color);background:#fff;border-radius:50%;width:13px;height:13px;position:absolute;top:17px;left:17px}.job-e2e-node:not(:last-child):after{content:"";background:#d8dfe7;width:2px;position:absolute;top:35px;bottom:-8px;left:24px}.job-e2e-node.complete{--step-color:var(--success)}.job-e2e-node.current{--step-color:var(--brand);border:2px solid var(--brand);background:var(--brand-light);box-shadow:0 0 0 3px #0f6cbd1a}.job-e2e-node.failed{--step-color:var(--danger);border:2px solid var(--danger);background:var(--danger-bg)}.job-e2e-node.final{--step-color:var(--success);border:2px solid var(--success);background:var(--success-bg)}.job-e2e-node.not-applicable{background:#f4f6f8}.job-e2e-node-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.job-e2e-node-title{color:var(--muted);letter-spacing:.35px;text-transform:uppercase;font-size:10px;font-weight:800}.job-e2e-node-badge{color:#075c07;background:var(--success-bg);text-transform:uppercase;border-radius:9px;padding:2px 6px;font-size:8px;font-weight:800}.job-e2e-node.current .job-e2e-node-badge{color:var(--brand-dark);background:#cfe8fa}.job-e2e-node.failed .job-e2e-node-badge{color:var(--danger);background:var(--danger-bg)}.job-e2e-node-value{margin-top:8px;font-weight:700}.job-e2e-node-source{color:#45546a;background:#edf1f5;border-radius:9px;margin-top:12px;padding:3px 7px;font-size:9px;font-weight:700;display:inline-block}.job-e2e-note{color:var(--muted);margin-top:10px;font-size:10px}.parallel-processors{color:var(--muted);margin-top:8px;font-size:11px}.parallel-processors summary{cursor:pointer;color:var(--brand)}.parallel-processors ul{margin-bottom:0}.change-progress-list{border:1px solid var(--border);background:#fff;border-radius:7px;margin:14px 0 0;padding:0;list-style:none;display:grid;overflow:hidden}.change-progress-step{border-bottom:1px solid var(--border);grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:76px;padding:12px 14px;display:grid}.change-progress-step:last-child{border-bottom:0}.change-progress-step.current{border-left:4px solid var(--brand);background:var(--brand-light)}.change-progress-step.failed{border-left:4px solid var(--danger);background:var(--danger-bg)}.change-progress-marker{color:#5c6672;background:#fff;border:2px solid #9aa4b2;border-radius:50%;place-items:center;width:28px;height:28px;font-size:11px;font-weight:800;display:grid}.change-progress-step.complete .change-progress-marker,.change-progress-step.final .change-progress-marker{color:#fff;border-color:var(--success);background:var(--success)}.change-progress-step.current .change-progress-marker{color:#fff;border-color:var(--brand);background:var(--brand)}.change-progress-step.failed .change-progress-marker{color:#fff;border-color:var(--danger);background:var(--danger)}.change-progress-name{font-weight:700}.change-progress-description{color:var(--muted);margin-top:4px;font-size:11px}.change-progress-state{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.callout{color:#604a0b;background:#fff8df;border:1px solid #efd58a;border-radius:5px;margin-bottom:14px;padding:11px 13px;font-size:12px;line-height:1.45}.endpoint-grid{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.endpoint-grid article{display:contents}.endpoint-code{overflow-wrap:anywhere;color:#23344b;background:#fff;border:1px solid #d7dde5;border-radius:4px;margin:8px 0;padding:9px 10px;font-family:Consolas,monospace;font-size:11px;display:block}.debug-viewer{border:1px solid var(--border);background:#fff;border-radius:7px;margin-top:12px;overflow:hidden}.debug-entry{background:#fff;border-bottom:1px solid #edf0f3;border-left:4px solid #9aa4b2;padding:13px 14px}.debug-entry:last-child{border-bottom:0}.debug-entry.info{border-left-color:var(--brand)}.debug-entry.warning{background:#fffdf5;border-left-color:#d99a00}.debug-entry.error{border-left-color:var(--danger);background:#fff8f8}.debug-entry-header{align-items:center;gap:8px;margin-bottom:7px;display:flex}.debug-severity{color:var(--brand);background:var(--brand-light);text-transform:uppercase;border-radius:10px;padding:3px 7px;font-size:10px;font-weight:800}.debug-severity.warning{color:var(--warning);background:var(--warning-bg)}.debug-severity.error{color:var(--danger);background:var(--danger-bg)}.debug-entry-time{color:var(--muted);font-family:Consolas,monospace;font-size:11px}.debug-entry-step{color:#445269;margin-left:auto;font-size:11px;font-weight:700}.debug-entry-message{color:#26354a;overflow-wrap:anywhere;white-space:pre-wrap;max-height:360px;font-size:12px;line-height:1.5;overflow:auto}.debug-viewer:empty{display:none}.audit-table{border:1px solid var(--border);border-radius:6px;overflow:hidden}.modal-backdrop{z-index:60;background:#08111f7a;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-backdrop.open{display:flex}.modal{background:#fff;border-radius:9px;width:540px;max-height:86vh;overflow:auto;box-shadow:0 18px 60px #00000047}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;gap:18px;padding:18px 20px;display:flex}.modal-header h2{margin:0;font-size:19px}.payload-json-modal{flex-direction:column;width:min(1500px,94vw);height:88vh;max-height:88vh;display:flex;overflow:hidden}.payload-json-modal .modal-header{flex:none;align-items:center;padding:14px 18px}.debug-result-toolbar{border-bottom:1px solid var(--border);background:#fff;flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:10px 12px;display:flex}.payload-json-content{background:#172033;flex:auto;min-height:0;overflow:auto}.json-tree{color:#dce9f7;white-space:pre-wrap;background:#172033;min-height:100%;max-height:none;margin:0;padding:12px 14px;font-family:Consolas,monospace;font-size:11px;line-height:1.55;overflow:auto}.json-tree details{margin:0}.json-tree summary{cursor:pointer;width:fit-content;font-weight:inherit}.json-tree details:not([open])>summary:after{content:attr(data-collapsed)}.json-tree summary:focus-visible{outline-offset:2px;outline:2px solid #dce9f7}.detail-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.child-jobs-toolbar{justify-content:space-between}.child-jobs-toolbar h3{margin:0}.request-lane-picker{flex-wrap:wrap;align-items:center;gap:8px;max-width:100%;display:flex}.request-lane-picker select{max-width:min(650px,75vw)}summary.debug-entry-header{cursor:pointer;flex-wrap:wrap}summary.debug-entry-header:before{content:"+"}.debug-entry[open]>summary.debug-entry-header:before{content:"-"}.debug-entry-preview{text-overflow:ellipsis;white-space:nowrap;flex-basis:100%;overflow:hidden}@media (width<=1280px){.kpis{grid-template-columns:repeat(3,1fr)!important}.summary-grid{grid-template-columns:repeat(2,1fr)}.resource-grid{grid-template-columns:repeat(2,1fr)!important}}
