*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;color:#1f2937;background:#f5f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{border:1px solid #cbd5e1;border-radius:6px;padding:6px 10px;color:#1f2937;background:#fff;cursor:pointer}button.primary{color:#fff;border-color:#0f766e;background:#0f766e}button.danger{color:#fff;border-color:#b91c1c;background:#b91c1c}button:disabled{cursor:not-allowed;opacity:.5}.auth-page{display:grid;min-height:100%;place-items:center;padding:24px;background:#f5f7fb}.auth-card{display:grid;width:min(100%,380px);gap:14px;padding:32px;border:1px solid #d8e0ed;border-radius:8px;background:#fff;box-shadow:0 12px 32px #0f172a14}.auth-card h1{margin:0;font-size:24px}.auth-card label{display:grid;gap:6px;color:#475569;font-size:13px}.auth-brand{color:#0f766e;font-weight:700;letter-spacing:.04em}.auth-subtitle{margin:-6px 0 2px;color:#64748b;font-size:13px}.auth-submit{width:100%;margin-top:4px}.auth-error{margin:0;color:#b91c1c;font-size:13px}.auth-loading{display:grid;height:100%;place-items:center;color:#64748b}.auth-user{color:#475569;font-size:13px}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:6px;padding:7px 9px;color:#111827;background:#fff}textarea{resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px}.json-editor{min-height:120px;resize:vertical;line-height:1.45;-moz-tab-size:2;tab-size:2}.python-editor{position:relative;z-index:1;min-height:140px;resize:vertical;overflow:auto;border-color:#cbd5e1;background:transparent;color:transparent;caret-color:#0f172a;line-height:1.5;-moz-tab-size:4;tab-size:4}.python-editor::selection{background:#0ea5e938}.python-editor-frame{display:grid;min-width:0}.python-editor-highlight,.python-editor{grid-area:1 / 1;margin:0;padding:7px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;white-space:pre}.python-editor-highlight{min-height:140px;overflow:hidden;border:1px solid #cbd5e1;border-radius:6px;background:#f8fafc;color:#0f172a;line-height:1.5;-moz-tab-size:4;tab-size:4;pointer-events:none}.py-keyword{color:#7c3aed;font-weight:650}.py-string{color:#047857}.py-number{color:#1d4ed8}.py-comment{color:#64748b;font-style:italic}.json-editor-shell{display:grid;gap:6px}.json-editor-toolbar,.python-editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.python-editor-shell,.python-viewer-shell,.readonly-block{display:grid;gap:6px}.python-viewer-code{max-height:320px;min-height:0;overflow:auto;pointer-events:auto}.readonly-head{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#475569;font-size:12px}.python-editor-toolbar{color:#475569;font-size:12px}.python-editor-actions{display:inline-flex;align-items:center;gap:6px}.python-editor-action.normalize{border-color:#94a3b8;background:#f8fafc}.python-editor-action.load{color:#075985;border-color:#7dd3fc;background:#e0f2fe}.python-editor-action.apply{color:#065f46;border-color:#6ee7b7;background:#d1fae5}.segmented{display:inline-flex;overflow:hidden;border:1px solid #cbd5e1;border-radius:6px;background:#fff}.segmented button{border:0;border-radius:0;padding:5px 9px;background:transparent}.segmented button+button{border-left:1px solid #cbd5e1}.segmented button.active{color:#fff;background:#0f766e}.json-editor-tree{max-height:520px}.json-editor-error{color:#991b1b;font-size:12px}label{display:grid;gap:5px;color:#475569;font-size:12px}pre{overflow:auto;margin:0;border:1px solid #e2e8f0;border-radius:6px;padding:10px;background:#f8fafc;font-size:12px}.json-viewer{overflow:auto;border:1px solid #e2e8f0;border-radius:6px;padding:10px;background:#f8fafc;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.55}.json-node{min-width:max-content}.json-line{min-height:20px;white-space:nowrap}.json-children{margin-left:18px}.json-toggle{width:18px;height:18px;margin-right:4px;border-radius:4px;padding:0;line-height:1;font-family:inherit;font-size:12px}.json-key{margin-right:5px;color:#7c2d12}.json-punctuation,.json-summary{color:#64748b}.json-scalar.is-string{color:#047857}.json-scalar.is-number{color:#1d4ed8}.json-scalar.is-boolean{color:#9333ea}.json-scalar.is-null{color:#64748b}.app{height:100vh;display:grid;grid-template-rows:48px 1fr}.topbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dbe3ef;padding:0 16px;background:#fff}.brand{font-weight:700}.top-actions{display:flex;align-items:center;gap:8px}.top-nav-button{width:30px;min-width:30px;padding:4px;font-size:16px;line-height:1}.auto-refresh-control{display:inline-flex;align-items:center;gap:6px;color:#64748b;font-size:12px;font-weight:650}.auto-refresh-control select{width:76px;padding:5px 7px}.shell{min-height:0;display:grid;grid-template-columns:180px 1fr;transition:grid-template-columns .16s ease}.shell.sidebar-collapsed{grid-template-columns:56px 1fr}.sidebar{min-width:0;border-right:1px solid #dbe3ef;padding:12px;background:#fff;overflow:hidden}.sidebar-toggle{width:100%;margin-bottom:12px;text-align:center}.nav-item{width:100%;margin-bottom:8px;text-align:left}.nav-group-label{margin:14px 4px 6px;color:#64748b;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.nav-short{display:none;text-align:center;font-weight:700}.shell.sidebar-collapsed .sidebar{padding:12px 8px}.shell.sidebar-collapsed .nav-item{min-height:34px;padding-right:0;padding-left:0;text-align:center}.shell.sidebar-collapsed .nav-label{display:none}.shell.sidebar-collapsed .nav-group-label{height:1px;margin:10px 0 6px;overflow:hidden;color:transparent;background:#dbe3ef}.shell.sidebar-collapsed .nav-short{display:block}.nav-item.active{color:#fff;border-color:#0f766e;background:#0f766e}.page{min-width:0;min-height:0;display:grid;grid-template-rows:auto 1fr;gap:12px;padding:12px}.toolbar{display:flex;align-items:center;gap:8px}.toolbar .search{max-width:360px}.retrieval-page{min-width:0;min-height:0;overflow:hidden;grid-template-rows:auto minmax(0,1fr)}.retrieval-page>.viewer-cases-header{justify-content:flex-start}.retrieval-header-actions{min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.retrieval-header-actions button{flex:0 0 auto;white-space:nowrap}.retrieval-header-actions input{width:220px}.retrieval-header-actions select{width:118px}.retrieval-workspace{min-height:0;display:grid;grid-template-columns:minmax(280px,var(--viewer-task-width, 420px)) 10px minmax(0,1fr);gap:12px}.retrieval-workspace>.panel{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.retrieval-workspace>.retrieval-cases-panel{grid-template-rows:auto minmax(0,1fr)}.retrieval-workspace .viewer-table-wrap{min-height:0;overflow:auto}.retrieval-workspace .viewer-table-wrap th,.retrieval-case-data-table th{top:0;z-index:2;box-shadow:inset 0 -1px #e2e8f0}.retrieval-workspace.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.retrieval-workspace.resizing .panel-resizer.vertical:before{background:#0f766e}.retrieval-workspace .panel-header{min-width:0;gap:12px;align-items:flex-start}.retrieval-cases-header{display:flex;flex-direction:column;align-items:stretch!important}.retrieval-cases-title{min-width:0;display:flex;flex-direction:column;gap:4px}.retrieval-cases-title-main{min-width:0;display:flex;align-items:center;gap:8px}.retrieval-cases-title-main>span:first-child{flex:0 0 auto;font-weight:700}.retrieval-cases-title-main strong,.retrieval-cases-title .muted{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.retrieval-task-meta{display:flex;min-width:0;gap:6px;color:#64748b;font-size:12px;overflow:hidden}.retrieval-task-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.retrieval-task-meta span+span:before{content:"|";margin-right:6px;color:#cbd5e1}.retrieval-case-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;width:100%;min-width:0}.retrieval-case-tabs{display:inline-flex;align-items:stretch;padding:3px;border:1px solid #cbd5e1;border-radius:7px;background:#f1f5f9}.retrieval-case-tabs button{min-height:32px;padding:5px 14px;border:0;border-radius:5px;background:transparent;color:#64748b;box-shadow:none;white-space:nowrap}.retrieval-case-tabs button:hover:not(:disabled){background:#e2e8f0;color:#334155}.retrieval-case-tabs button.active{background:#fff;color:#0f766e;font-weight:700;box-shadow:0 1px 2px #0f172a1f}.retrieval-case-tabs button:disabled{color:#94a3b8}.retrieval-task-table{min-width:100%;width:100%;table-layout:fixed}.retrieval-task-table th:nth-child(1){width:76%}.retrieval-task-table th:nth-child(2){width:24%}.retrieval-task-table td{vertical-align:middle;overflow:hidden}.retrieval-task-table strong,.retrieval-task-table .muted{display:block;min-width:0}.retrieval-task-table td:first-child>strong{max-inline-size:min(100%,56ch);line-height:1.35;overflow-wrap:anywhere;white-space:normal}.retrieval-task-table td:first-child>.muted:first-of-type{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.retrieval-task-table td:first-child>.muted:last-child{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.35;overflow-wrap:anywhere;white-space:normal}.retrieval-batch-table{min-width:880px}.retrieval-batch-table td{vertical-align:middle}.retrieval-batch-table th:nth-child(1){width:28%}.retrieval-batch-table th:nth-child(2){width:12%}.retrieval-batch-table th:nth-child(3){width:10%}.retrieval-batch-table th:nth-child(4){width:13%}.retrieval-batch-table th:nth-child(5){width:11%}.retrieval-batch-table th:nth-child(6){width:26%}.case-page-input input{width:56px;min-width:56px;text-align:center}.retrieval-case-filter{display:flex;gap:6px;margin-left:8px}.retrieval-case-filter select{width:124px}.retrieval-case-filter input{width:170px}.retrieval-form{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px;align-items:end}.retrieval-form label{display:grid;gap:5px;color:#475569;font-size:12px}.retrieval-form .wide{grid-column:1 / -1}.retrieval-version-mode{align-items:center;grid-template-columns:72px 1fr}.retrieval-version-switch{display:inline-flex;justify-self:start;padding:3px;border:1px solid #cbd5e1;border-radius:6px;background:#f1f5f9}.retrieval-version-switch button{min-height:28px;padding:4px 10px;border:0;border-radius:4px;background:transparent;box-shadow:none;color:#64748b}.retrieval-version-switch button.active{background:#fff;color:#0f766e;font-weight:700;box-shadow:0 1px 2px #0f172a1f}.retrieval-check{grid-template-columns:auto 1fr;align-items:center;min-height:34px}.retrieval-check input{width:auto}.retrieval-task-table,.retrieval-record-table{min-width:100%}.retrieval-task-table td,.retrieval-batch-table td,.retrieval-record-table td{vertical-align:top}.retrieval-create-modal{width:min(680px,calc(100vw - 32px))}.task-flow-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 12px 12px;padding:9px 12px;border:1px solid #dbe4ee;border-radius:6px;background:#f8fafc;font-size:12px}.task-flow-strip>div:first-child{display:grid;gap:2px}.task-flow-links{display:flex;flex-wrap:wrap;gap:6px}.task-flow-link{display:grid;gap:2px;padding:5px 8px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;color:#334155;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-align:left}.task-flow-link:hover{border-color:#0f766e;background:#f0fdfa}.task-flow-link span{font-size:11px;overflow-wrap:anywhere}.task-flow-link small{color:#64748b;font-family:inherit}.retrieval-summary-modal{width:min(760px,calc(100vw - 32px))}.retrieval-case-data-modal{width:min(1680px,calc(100vw - 32px));max-width:none;height:min(900px,calc(100vh - 32px));max-height:calc(100vh - 32px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.retrieval-case-data-modal .panel-header>div{display:grid;min-width:0;gap:3px}.retrieval-case-data-modal .panel-header strong,.retrieval-case-data-modal .panel-header .muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.retrieval-case-data-table{min-height:0;overflow:auto}.retrieval-case-data-table .task-table{min-width:980px;width:100%;table-layout:fixed}.retrieval-case-data-table th:nth-child(1){width:20%}.retrieval-case-data-table th:nth-child(2){width:18%}.retrieval-case-data-table th:nth-child(3){width:20%}.retrieval-case-data-table th:nth-child(4){width:26%}.retrieval-case-data-table th:nth-child(5){width:7%}.retrieval-case-data-table th:nth-child(6){width:9%}.retrieval-case-data-table td{vertical-align:middle;overflow:hidden}.retrieval-record-row{cursor:pointer}.retrieval-record-row:hover td{background:#f0fdfa}.retrieval-record-row.selected td{background:#e6fffa}.retrieval-record-row td{height:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.retrieval-record-row td:first-child>strong{display:block;overflow:hidden;text-overflow:ellipsis}.retrieval-record-detail td{padding:0;background:#f8fafc}.retrieval-record-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;padding:14px 18px 16px;border-top:1px solid #99f6e4;border-bottom:1px solid #99f6e4}.retrieval-record-detail-grid .kv{display:grid;gap:4px;padding:8px 0;min-width:0;border-bottom:1px solid #e2e8f0}.retrieval-record-detail-grid .kv.wide{grid-column:1 / -1}.retrieval-record-detail-grid .kv strong{color:#475569;font-size:12px}.retrieval-record-detail-grid .kv span{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}.retrieval-summary-modal .panel-header>div{display:grid;min-width:0;gap:3px}.retrieval-summary-modal .panel-header strong{overflow-wrap:anywhere}.retrieval-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.retrieval-summary-grid .kv{display:grid;gap:4px;padding:10px 0;border-bottom:1px solid #e2e8f0}.retrieval-summary-grid .kv.wide{grid-column:1 / -1}.retrieval-summary-grid .kv span{overflow-wrap:anywhere}.retrieval-detail-modal{width:min(1200px,calc(100vw - 32px));max-height:min(820px,calc(100vh - 32px));overflow:auto}.retrieval-detail-modal .panel-header>div{display:grid;gap:3px}.retrieval-detail-table{min-height:440px;overflow:auto}.retrieval-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.retrieval-overview .kv{padding:10px 0;border-bottom:1px solid #e2e8f0}.modal-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px}.retrieval-download-empty{display:grid;gap:8px;min-height:180px;align-content:center;color:#64748b}.retrieval-download-summary{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid #e2e8f0;background:#f8fafc;color:#64748b;font-size:12px}.retrieval-download-summary strong{color:#334155}.retrieval-record-toolbar{display:flex;gap:14px;align-items:center}.retrieval-record-toolbar label{display:flex;gap:6px;align-items:center;color:#475569;font-size:12px}.retrieval-record-toolbar select{width:150px}.wrap{overflow-wrap:anywhere}@media(max-width:980px){.retrieval-header-actions{flex-wrap:wrap}.retrieval-header-actions input{width:150px}.retrieval-workspace{grid-template-columns:1fr;overflow:auto}.retrieval-workspace>.panel-resizer{display:none}}@media(max-width:760px){.retrieval-overview,.retrieval-form,.retrieval-summary-grid{grid-template-columns:1fr}}.workbench{height:100%;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 10px minmax(300px,var(--schema-inspector-width, 20%));grid-template-rows:minmax(0,1fr);column-gap:12px}.workbench.inspector-collapsed{grid-template-columns:minmax(0,1fr) 0 44px;column-gap:8px}.workbench.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.explorer{min-height:0;display:grid;grid-template-columns:minmax(320px,var(--query-panel-width, 33.333%)) 10px minmax(0,1fr);grid-template-rows:minmax(0,1fr);column-gap:12px}.explorer.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.query-panel{min-width:0}.panel-resizer{background:transparent}.panel-resizer.horizontal{grid-column:1 / -1;position:relative;cursor:row-resize}.panel-resizer.horizontal:before{content:"";position:absolute;left:12px;right:12px;top:4px;height:2px;border-radius:999px;background:#cbd5e1}.panel-resizer.horizontal:hover:before,.explorer.resizing .panel-resizer.horizontal:before,.task-monitor.resizing .panel-resizer.horizontal:before{background:#0f766e}.panel-resizer.vertical{position:relative;cursor:col-resize}.panel-resizer.vertical:before{content:"";position:absolute;top:12px;bottom:12px;left:4px;width:2px;border-radius:999px;background:#cbd5e1}.panel-resizer.vertical:hover:before,.workbench.resizing .panel-resizer.vertical:before,.explorer.resizing .panel-resizer.vertical:before{background:#0f766e}.results-panel{min-width:0}.document-panel{min-width:300px}.task-page{grid-template-rows:auto minmax(0,1fr)}.task-monitor{min-height:0;display:grid;grid-template-rows:minmax(220px,var(--task-top-height, .9fr)) 10px minmax(260px,1fr);gap:12px}.task-monitor.resizing{cursor:row-resize;-webkit-user-select:none;user-select:none}.task-list-panel,.task-items-panel{min-height:0}.task-table{min-width:980px}.task-select-column{width:34px;min-width:34px;text-align:center}.task-summary-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #e2e8f0;padding:10px 12px;background:#fbfdff}.summary-cells{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;color:#475569;font-size:12px}.summary-cells span{border:1px solid #dbe3ef;border-radius:999px;padding:3px 8px;background:#fff}.panel-header-actions{display:flex;align-items:center;gap:8px;font-weight:400}.panel-header-actions label,.toolbar-filter{min-width:160px}.status-pill{display:inline-flex;align-items:center;min-height:22px;border-radius:999px;padding:2px 8px;background:#e2e8f0;color:#334155;font-size:12px;font-weight:650;white-space:nowrap}.status-running,.status-queued,.status-retry-waiting,.status-stale{background:#fef3c7;color:#92400e}.status-success,.status-online{background:#d1fae5;color:#065f46}.status-partial-success{background:#ccfbf1;color:#115e59}.status-skipped{background:#e0f2fe;color:#075985}.status-failed,.status-partial-failed,.status-offline{background:#fee2e2;color:#991b1b}.status-canceled{background:#e5e7eb;color:#374151}.step-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.task-step-stack{display:grid;gap:12px}.step-card{display:grid;gap:8px;border:1px solid #dbe3ef;border-radius:8px;padding:10px;background:#fff}.task-step-card{min-width:0;padding:14px}.step-card-head,.step-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.step-card-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}.step-meta{flex-wrap:wrap;justify-content:flex-start;color:#64748b;font-size:12px}.run-table{width:100%;min-width:760px;border-collapse:collapse;font-size:12px}.run-table-wrap{max-width:100%;overflow:auto;border:1px solid #e2e8f0;border-radius:6px}.run-table th,.run-table td{border-top:1px solid #e2e8f0;padding:6px;text-align:left;vertical-align:top}.run-table th{position:static;z-index:auto;color:#64748b;font-weight:650;background:#f8fafc}.run-table code{white-space:normal;word-break:break-word}.panel{min-width:0;min-height:0;overflow:auto;border:1px solid #dbe3ef;border-radius:8px;background:#fff}.canvas-panel{display:grid;grid-template-rows:auto 1fr;overflow:hidden}.inspector-panel{overflow-x:hidden;overflow-y:auto}.workbench.inspector-collapsed .inspector-panel{overflow:hidden;min-width:44px}.workbench.inspector-collapsed .inspector-panel .panel-header{height:100%;width:100%;align-items:flex-start;justify-content:center;padding:6px 0;writing-mode:horizontal-tb}.workbench.inspector-collapsed .inspector-panel .panel-header span{display:none}.workbench.inspector-collapsed .inspector-panel .panel-header button{display:inline-flex;align-items:center;justify-content:center;writing-mode:vertical-rl;min-width:0;width:28px;min-height:72px;padding:8px 2px;font-size:11px}.workbench.inspector-collapsed .inspector-panel .panel-body{display:none}.inspector-panel,.inspector-panel *{min-width:0}.inspector-panel span,.inspector-panel strong,.inspector-panel label,.inspector-panel div{overflow-wrap:anywhere}.inspector-panel pre,.inspector-panel code,.inspector-panel textarea{overflow-x:auto;overflow-wrap:normal;word-break:normal;white-space:pre}.panel-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e2e8f0;padding:10px 12px;background:#fff;font-weight:650}.panel-body{padding:12px}.panel-subtitle{font-weight:700}.canvas{position:relative;overflow:hidden;min-height:0;height:100%;background-image:linear-gradient(#edf2f7 1px,transparent 1px),linear-gradient(90deg,#edf2f7 1px,transparent 1px);background-size:24px 24px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.canvas.dragging{cursor:grabbing}.canvas-content{position:absolute;top:0;right:0;bottom:0;left:0;min-width:1600px;min-height:1200px;transform-origin:0 0}.connectors{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}.connector{fill:none;stroke:#94a3b8;stroke-width:2}.node{position:absolute;z-index:1;width:180px;border:1px solid #94a3b8;border-radius:8px;padding:7px;background:#fff;box-shadow:0 6px 18px #0f172a14;cursor:pointer;font-size:11px;line-height:1.25;overflow-wrap:anywhere}.node.path{border-color:#0f766e;background:#f0fdfa}.node.root{border-color:#0f766e;background:#0f766e;color:#fff;box-shadow:0 8px 20px #0f766e38}.node.root .node-meta{color:#fffc}.node.schema{border-color:#2563eb;background:#eff6ff}.node.version{border-color:#7c3aed;background:#f5f3ff}.node.collapsed{filter:saturate(.75)}.node.selected{outline:3px solid rgba(20,184,166,.28)}.node-head{display:grid;grid-template-columns:minmax(0,1fr) 24px;align-items:center;gap:6px}.node-title{min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word;font-weight:700;font-size:11px;line-height:1.22}.node-toggle{width:20px;height:20px;border-radius:50%;padding:0;line-height:1;font-weight:700;font-size:11px}.node-meta{margin-top:3px;color:#64748b;font-size:10px;line-height:1.25;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.form-grid,.stack{display:grid;gap:10px}.query-grid{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(420px,1.5fr) minmax(260px,.9fr);align-items:start;gap:14px}.explorer .query-grid{grid-template-columns:minmax(0,1fr)}.explorer .query-card{border-right:0;border-bottom:1px solid #e2e8f0;padding-right:0;padding-bottom:12px}.explorer .query-card:last-child{border-bottom:0;padding-bottom:0}.form-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.form-row.two{grid-template-columns:minmax(0,1fr) max-content;align-items:end}.form-row.three{grid-template-columns:minmax(120px,.9fr) minmax(160px,1.1fr) max-content}.query-card{display:grid;gap:10px;min-width:0;border-right:1px solid #e2e8f0;padding-right:14px}.query-card:last-child{border-right:0;padding-right:0}.field-row{display:grid;grid-template-columns:minmax(110px,.75fr) minmax(220px,1.35fr) max-content max-content max-content;align-items:center;gap:8px}.inline-check{display:flex;align-items:center;gap:5px;white-space:nowrap}.inline-check input{width:auto}.preview-row{display:grid;gap:8px;border-bottom:1px solid #e2e8f0;padding-bottom:12px}.preview-row:last-child{border-bottom:0}.export-diagnostics{border-top:1px solid #e2e8f0}.inline-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.editor{border-top:1px solid #e2e8f0}.input-spec-box{display:grid;gap:10px;border-top:1px solid #e2e8f0;padding-top:12px}.row-actions{display:flex;align-items:center;gap:8px;margin-top:12px}.row-actions.compact{margin-top:0}table{width:100%;min-width:860px;border-collapse:collapse;font-size:13px}th,td{border-bottom:1px solid #e2e8f0;padding:8px;text-align:left;vertical-align:top}th{position:sticky;top:41px;z-index:1;background:#f8fafc;color:#475569;font-weight:650}tr{cursor:pointer}tr:hover{background:#f8fafc}tr.selected{background:#ecfdf5}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:24px;background:#0f172a61}.modal-panel{width:min(980px,100%);max-height:min(760px,calc(100vh - 48px));display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid #dbe3ef;border-radius:8px;background:#fff;box-shadow:0 24px 80px #0f172a3d}.export-modal{width:min(640px,100%)}.task-item-modal{width:min(1680px,calc(100vw - 24px));height:min(980px,calc(100vh - 24px));max-height:none}.task-item-detail{min-height:0;display:grid;grid-template-columns:minmax(280px,340px) minmax(460px,1.2fr) minmax(360px,.9fr);align-items:stretch;gap:14px;overflow:hidden}.task-item-sidebar{min-height:0;display:grid;grid-auto-rows:max-content;align-content:start;gap:10px;overflow:auto;border-right:1px solid #e2e8f0;padding-right:12px}.task-item-sidebar-title{color:#64748b;font-size:12px;font-weight:700;text-transform:uppercase}.task-item-index{display:grid;gap:6px;padding:12px;border:1px solid #dbe3ef;border-radius:8px;background:#f8fafc}.task-item-index code{white-space:normal;word-break:break-word}.task-step-nav{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid #dbe3ef;border-radius:8px;padding:10px;background:#fff;color:#0f172a;text-align:left}.task-step-nav:hover,.task-step-nav.active{border-color:#0f766e;background:#ecfdf5}.task-step-nav.has-error{border-color:#fecaca;background:#fff7f7}.task-step-nav.has-error.active{border-color:#dc2626;background:#fef2f2}.task-step-nav span:first-child{min-width:0;display:grid;gap:2px}.task-step-nav small{min-width:0;overflow:hidden;color:#64748b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.task-step-nav .task-step-error-text{display:-webkit-box;overflow:hidden;color:#b91c1c;text-overflow:unset;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.task-step-detail{min-height:0;min-width:0;overflow:auto}.task-json-detail{min-height:0;min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px;overflow:hidden;border-left:1px solid #e2e8f0;padding-left:12px}.task-json-header{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#334155;font-size:12px;font-weight:700}.task-json-detail .json-viewer{min-height:0;height:100%}.run-error-cell{min-width:240px}.task-item-summary{display:grid;grid-template-columns:minmax(140px,auto) minmax(180px,auto) minmax(0,1fr);gap:10px;padding:12px;border:1px solid #dbe3ef;border-radius:8px;background:#f8fafc}.task-item-summary-cell{min-width:0;display:grid;align-content:start;gap:5px}.task-item-summary-cell code{display:block;max-width:100%;white-space:normal;word-break:break-word}.task-item-summary-cell.wide{min-width:0}.modal-panel .panel-header{position:static}.modal-panel .panel-body{min-height:0;overflow:auto}.modal-panel .task-item-detail{overflow:hidden}.muted{color:#64748b}.badge{display:inline-flex;align-items:center;min-height:22px;border-radius:999px;padding:2px 8px;background:#e2e8f0;font-size:12px}.kv{display:grid;grid-template-columns:110px 1fr;gap:8px;font-size:13px}.error{color:#991b1b}.success{color:#166534}.viewer-page{--viewer-bg: #0d0e10;--viewer-panel: #13151a;--viewer-panel-2: #1a1d24;--viewer-hover: #21252f;--viewer-border: #2a2d35;--viewer-border-strong: #3a3d48;--viewer-text: #e2e4ea;--viewer-muted: #8a8fa0;--viewer-dim: #555a6a;--viewer-accent: #00c8ff;--viewer-accent-bg: rgba(0, 200, 255, .12);--viewer-red: #ff4d4d;min-height:0;background:var(--viewer-bg);color:var(--viewer-text)}.viewer-standalone-app{background:#0d0e10}.shell.viewer-standalone-shell{grid-template-columns:minmax(0,1fr)}.viewer-page button,.viewer-page input,.viewer-page select,.viewer-page textarea{border-color:var(--viewer-border-strong);border-radius:2px;background:var(--viewer-panel-2);color:var(--viewer-text)}.viewer-page button:hover{border-color:var(--viewer-accent);background:var(--viewer-hover)}.viewer-page button.primary{border-color:var(--viewer-accent);background:var(--viewer-accent-bg);color:var(--viewer-accent)}.viewer-page .muted,.viewer-page small{color:var(--viewer-muted)}.viewer-page .panel-header{border-color:var(--viewer-border);background:var(--viewer-panel);color:var(--viewer-muted)}.viewer-page .json-viewer{border-color:var(--viewer-border);background:#08090b;color:var(--viewer-text)}.viewer-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--viewer-border);background:var(--viewer-panel)}.viewer-topline>div:first-child{display:flex;align-items:baseline;gap:10px}.viewer-shell{display:grid;grid-template-columns:minmax(260px,320px) minmax(440px,1fr) minmax(300px,380px);gap:1px;height:calc(100vh - 104px);min-height:0;overflow:hidden;background:var(--viewer-border)}.viewer-shell.standalone{grid-template-columns:minmax(250px,300px) minmax(520px,1fr) minmax(320px,400px);height:calc(100vh - 43px)}.viewer-left,.viewer-center,.viewer-right{min-width:0;min-height:0;overflow:hidden;background:var(--viewer-bg)}.viewer-left,.viewer-right{display:grid;gap:1px;background:var(--viewer-border)}.viewer-left{grid-template-rows:minmax(160px,.9fr) minmax(180px,1fr) minmax(220px,1.25fr)}.viewer-left.standalone{grid-template-rows:minmax(0,1fr)}.viewer-right{grid-template-rows:minmax(220px,.8fr) minmax(300px,1.2fr)}.viewer-panel{min-height:0;overflow:hidden;background:var(--viewer-panel)}.viewer-list,.viewer-tree,.viewer-record-list{display:grid;align-content:start;gap:4px;max-height:100%;overflow:auto;padding:8px}.viewer-list-row,.viewer-tree-node,.viewer-record-row,.viewer-summary-card,.viewer-series-bar button,.viewer-overlay-list button{display:flex;width:100%;min-width:0;align-items:center;justify-content:space-between;gap:8px;border-color:var(--viewer-border);background:var(--viewer-panel-2);text-align:left}.viewer-list-row>span:first-child,.viewer-record-row>span:first-child{min-width:0}.viewer-list-row strong,.viewer-tree-node strong,.viewer-record-row strong,.viewer-series-bar strong{display:block;overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.viewer-list-row small,.viewer-tree-node small,.viewer-record-row small,.viewer-series-bar small{display:block;overflow:hidden;max-width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;text-overflow:ellipsis;white-space:nowrap}.viewer-list-row.active,.viewer-tree-node.active,.viewer-record-row.active,.viewer-summary-card.active,.viewer-series-bar button.active,.viewer-overlay-list button.active{border-color:var(--viewer-accent);background:var(--viewer-accent-bg)}.viewer-tree-group{padding:8px 2px 2px;color:var(--viewer-dim);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.viewer-tree-node{display:grid;justify-items:start}.viewer-tree-node.series{margin-left:10px;width:calc(100% - 10px)}.viewer-empty{padding:12px;color:var(--viewer-muted)}.viewer-empty.large{display:grid;height:100%;place-items:center;color:var(--viewer-muted)}.viewer-center{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto}.viewer-case-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:8px 12px;border-bottom:1px solid var(--viewer-border);background:var(--viewer-panel)}.viewer-case-header strong,.viewer-case-header span{display:block}.viewer-case-tags{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.viewer-study-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border-bottom:1px solid var(--viewer-border);background:var(--viewer-border)}.viewer-summary-card{display:grid;min-height:56px;align-content:center;justify-items:start;border:0;border-radius:0}.viewer-summary-card span{color:var(--viewer-muted);font-size:11px}.viewer-summary-card strong{overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.viewer-viewport-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:1px;min-height:0;background:#000}.viewer-viewport{position:relative;min-width:0;min-height:180px;overflow:hidden;background:radial-gradient(circle at center,#12151b 0,#050607 58%,#000)}.viewer-viewport-label{position:absolute;top:8px;left:8px;z-index:2;padding:2px 6px;border:1px solid rgba(255,255,255,.12);background:#00000080;color:var(--viewer-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:11px}.viewer-crosshair:before,.viewer-crosshair:after{position:absolute;z-index:1;content:"";background:#00c8ff61}.viewer-crosshair:before{top:50%;left:0;width:100%;height:1px}.viewer-crosshair:after{top:0;left:50%;width:1px;height:100%}.viewer-image-placeholder{position:absolute;right:10px;bottom:10px;left:10px;z-index:2;overflow:hidden;color:var(--viewer-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.viewer-overlay-list{display:grid;align-content:start;gap:6px;height:100%;overflow:auto;padding:38px 10px 10px}.viewer-series-bar{display:flex;gap:6px;overflow-x:auto;padding:8px;border-top:1px solid var(--viewer-border);background:var(--viewer-panel)}.viewer-series-bar button{display:grid;flex:0 0 180px;justify-items:start}.viewer-inspector-detail{display:grid;grid-template-rows:auto minmax(0,1fr)}.viewer-inspector-detail>.json-viewer,.viewer-inspector-detail>.panel-body{min-height:0;overflow:auto;border:0;border-radius:0}@media(max-width:1280px){.explorer{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(320px,auto) minmax(340px,1fr)}.panel-resizer.vertical{display:none}.document-panel{min-width:0}.task-item-detail{grid-template-columns:minmax(260px,320px) minmax(0,1fr)}.task-json-detail{grid-column:1 / -1;min-height:260px;border-top:1px solid #e2e8f0;border-left:0;padding-top:12px;padding-left:0}.viewer-shell{grid-template-columns:minmax(220px,280px) minmax(0,1fr)}.viewer-right{grid-column:1 / -1;grid-template-columns:minmax(260px,360px) minmax(0,1fr);grid-template-rows:minmax(260px,1fr);min-height:320px}}@media(max-width:1120px){.query-grid{grid-template-columns:minmax(0,1fr)}.query-card{border-right:0;border-bottom:1px solid #e2e8f0;padding-right:0;padding-bottom:12px}.query-card:last-child{border-bottom:0;padding-bottom:0}}@media(max-width:760px){.shell{grid-template-columns:56px 1fr}.sidebar{padding:8px}.nav-item{margin-bottom:0;padding-right:0;padding-left:0;text-align:center}.nav-group-label{height:1px;margin:8px 0 4px;overflow:hidden;color:transparent;background:#dbe3ef}.nav-label{display:none}.nav-short{display:block}.field-row,.form-row.two,.form-row.three{grid-template-columns:minmax(0,1fr)}.inline-check{justify-content:flex-start}.task-item-summary,.task-item-detail{grid-template-columns:minmax(0,1fr)}.task-item-sidebar{max-height:320px;border-right:0;border-bottom:1px solid #e2e8f0;padding-right:0;padding-bottom:12px}.task-json-detail{grid-column:auto}.viewer-topline{align-items:stretch;flex-direction:column}.viewer-shell{grid-template-columns:minmax(0,1fr);height:auto;min-height:calc(100vh - 104px);overflow:auto}.viewer-left,.viewer-right{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;min-height:0}.viewer-center{min-height:620px}.viewer-study-strip,.viewer-viewport-grid{grid-template-columns:minmax(0,1fr)}.viewer-viewport{min-height:220px}}.app-root{--app-font-scale: 1;--bg-base: #0d0e10;--bg-panel: #13151a;--bg-panel2: #1a1d24;--bg-hover: #21252f;--bg-selected: #1e2d3d;--border: #2a2d35;--border-bright: #3a3d48;--text-primary: #e2e4ea;--text-secondary: #8a8fa0;--text-dim: #555a6a;--accent: #00c8ff;--accent-dim: rgba(0, 200, 255, .12);--accent2: #ff6b35;--accent2-dim: rgba(255, 107, 53, .12);--green: #39d353;--yellow: #f0c040;--red: #ff4d4d;--gt-color: #39d353;--pred-color: #00c8ff;--selected-color: #ff6b35;--image-bg: #000000;--image-panel-bg: #050607;--image-overlay-bg: rgba(5, 6, 7, .75);--image-label-bg: rgba(0, 0, 0, .6);--image-control-bg: rgba(0, 0, 0, .35);--image-loading-bg: rgba(0, 0, 0, .4);--image-handle-text: #ffffff;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-sans: system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;color:var(--text-primary);font-family:var(--font-sans)}:root[data-theme=light] .app-root{--bg-base: #f3f3f3;--bg-panel: #fcfcfc;--bg-panel2: #f7f7f7;--bg-hover: #ececec;--bg-selected: #e7edf6;--border: #d4d4d4;--border-bright: #b8b8b8;--text-primary: #2f2f2f;--text-secondary: #4e4e4e;--text-dim: #767676;--accent: #007acc;--accent-dim: rgba(0, 122, 204, .14);--accent2: #b45700;--accent2-dim: rgba(180, 87, 0, .14);--green: #2e8b57;--yellow: #8a6d1d;--red: #b34a43;--gt-color: #2e8b57;--pred-color: #007acc;--selected-color: #b45700;--image-bg: #e6e6e6;--image-panel-bg: #f0f0f0;--image-overlay-bg: rgba(247, 247, 247, .9);--image-label-bg: rgba(252, 252, 252, .92);--image-control-bg: rgba(247, 247, 247, .95);--image-loading-bg: rgba(243, 243, 243, .85);--image-handle-text: #2f2f2f}.app-root .mono{font-family:var(--font-mono)}.app-root .text-accent{color:var(--accent)}.app-root .text-accent2{color:var(--accent2)}.app-root .text-dim{color:var(--text-dim)}.app-root .text-secondary{color:var(--text-secondary)}.app-root .text-green{color:var(--green)}.app-root .text-yellow{color:var(--yellow)}.app-root .text-red{color:var(--red)}.app-root .btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:2px;cursor:pointer;border:1px solid var(--border-bright);background:var(--bg-panel2);color:var(--text-secondary);font-family:var(--font-mono);font-size:calc(11px * var(--app-font-scale));transition:all .15s ease;-webkit-user-select:none;user-select:none}.app-root .btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent)}.app-root .btn.btn-primary{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.app-root .btn.btn-save{border-color:var(--green);color:var(--green);background:#39d35314}.app-root .tag{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:2px;font-size:calc(11px * var(--app-font-scale));font-family:var(--font-mono);letter-spacing:.02em;border:1px solid var(--border);background:var(--bg-panel2);color:var(--text-secondary)}.app-root .tag.tag-gt{border-color:var(--gt-color);color:var(--gt-color);background:#39d35314}.app-root .tag.tag-pred{border-color:var(--pred-color);color:var(--pred-color);background:#00c8ff14}.app-root .tag.tag-high{border-color:var(--red);color:var(--red);background:#ff4d4d14}.app-root .tag.tag-mid{border-color:var(--yellow);color:var(--yellow);background:#f0c04014}.app-root .tag.tag-low{border-color:var(--green);color:var(--green);background:#39d35314}.app-root .tag.tag-tp{border-color:var(--green);color:var(--green);background:#39d35324}.app-root .tag.tag-fp{border-color:var(--red);color:var(--red);background:#ff4d4d24}.app-root .tag.tag-fn{border-color:var(--yellow);color:var(--yellow);background:#f0c04029}.app-root .tag.tag-tn{border-color:var(--pred-color);color:var(--pred-color);background:#00c8ff1f}.app-root .page-jump{display:inline-flex;align-items:center;gap:4px;color:var(--text-dim);font-family:var(--font-mono);font-size:calc(11px * var(--app-font-scale))}.app-root .page-jump input{width:54px;min-width:0;padding:3px 5px;border:1px solid var(--border);border-radius:2px;background:var(--bg-base);color:var(--text-primary);font:inherit}.app-root .input-field,.app-root .select-field{background:var(--bg-base);border:1px solid var(--border);color:var(--text-primary);padding:4px 8px;border-radius:2px;font-family:var(--font-mono);font-size:calc(12px * var(--app-font-scale));width:100%;outline:none}.app-root .input-field:focus,.app-root .select-field:focus{border-color:var(--accent)}.app-root .loading-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.app-root .crosshair{cursor:crosshair}.app-root{font-size:calc(13px * var(--app-font-scale))}.app-root [style*="font-size:9px"],.app-root [style*="font-size: 9px"]{font-size:calc(9px * var(--app-font-scale))!important}.app-root [style*="font-size:10px"],.app-root [style*="font-size: 10px"]{font-size:calc(10px * var(--app-font-scale))!important}.app-root [style*="font-size:11px"],.app-root [style*="font-size: 11px"]{font-size:calc(11px * var(--app-font-scale))!important}.app-root [style*="font-size:12px"],.app-root [style*="font-size: 12px"]{font-size:calc(12px * var(--app-font-scale))!important}.app-root [style*="font-size:13px"],.app-root [style*="font-size: 13px"]{font-size:calc(13px * var(--app-font-scale))!important}.app-root [style*="font-size:14px"],.app-root [style*="font-size: 14px"],.app-root .logo-text{font-size:calc(14px * var(--app-font-scale))!important}.app-root .param-label,.app-root .bbox-field-label,.app-root .metric-label,.app-root .series-tag,.app-root .slice-header,.app-root .measure-remove-btn{font-size:calc(9px * var(--app-font-scale))!important}.app-root .panel-label,.app-root .section-tab-collapse,.app-root .series-modality,.app-root .metric-value,.app-root .series-version,.app-root .slice-label,.app-root .slice-value,.app-root .axis-label,.app-root .overlay-label,.app-root .bbox-label,.app-root .detail-key,.app-root .instance-subtext,.app-root .mini-btn,.app-root .quick-tag,.app-root .report-section-title,.app-root .tag-input,.app-root .collapsed-label,.app-root .series-expand-label,.app-root .switcher-label,.app-root .wl-input{font-size:calc(10px * var(--app-font-scale))!important}.app-root .btn,.app-root .font-btn,.app-root .theme-btn,.app-root .param-input,.app-root .panel-tab,.app-root .panel-tab-collapse,.app-root .section-tab,.app-root .series-index,.app-root .series-uid,.app-root .instance-title,.app-root .instance-count,.app-root .field-input,.app-root .field-select,.app-root .bbox-row,.app-root .bbox-actions,.app-root .measurement-btn,.app-root .toolbar-group,.app-root .voxel-value,.app-root .save-msg,.app-root .error-badge,.app-root .toast{font-size:calc(11px * var(--app-font-scale))!important}.app-root .input-field,.app-root .select-field,.app-root .info-val,.app-root .detail-val,.app-root .series-name,.app-root .placeholder-panel,.app-root .report-textarea,.app-root .findings-edit,.app-root .conclusion-edit{font-size:calc(12px * var(--app-font-scale))!important}.app-root .remove-tag{font-size:calc(13px * var(--app-font-scale))!important}.dashboard-page{display:flex;flex-direction:column;overflow:hidden}.dashboard-header{display:flex;align-items:baseline;gap:12px;position:relative}.dashboard-header h2{margin:0;font-size:18px}.dashboard-tab-bar{display:flex;border-bottom:1px solid #e2e8f0;background:#f1f5f9;height:32px;flex-shrink:0}.dashboard-tab{padding:0 16px;font-size:12px;border:0;border-bottom:2px solid transparent;cursor:pointer;color:#64748b;height:100%;background:none;display:flex;align-items:center}.dashboard-tab.active{color:#0f766e;border-bottom-color:#0f766e;font-weight:600}.dashboard-tab-content{flex:1;overflow:auto;min-height:0}.dashboard-async.inline{position:absolute;top:8px;right:12px;z-index:5;max-width:360px}.dashboard-toolbar{padding:12px}.dashboard-toolbar .scope-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dashboard-toolbar .scope-field{display:grid;gap:4px;font-size:12px;color:#475569;min-width:240px}.dashboard-toolbar .scope-field select{min-width:200px}.dashboard-toolbar .warning{margin:6px 0 0;color:#b45309;font-size:13px}.dashboard-toolbar code{color:#0f766e}.dashboard-filters{padding:12px}.dashboard-filters .panel-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.dashboard-filters .filter-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.dashboard-filters .filter-row{display:grid;grid-template-columns:1.4fr .6fr 1.4fr 32px;gap:6px;align-items:center}.dashboard-filters .filter-field,.dashboard-filters .filter-op,.dashboard-filters .filter-value{padding:6px 8px}.dashboard-filters .filter-actions{display:flex;align-items:center;gap:8px;margin-top:8px}.dashboard-filters button.ghost{background:transparent;border-color:transparent;color:#475569}.dashboard-kpi{padding:12px}.dashboard-kpi .panel-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.dashboard-kpi .badge.ok{background:#dcfce7;color:#166534}.dashboard-kpi .badge.warn{background:#fef3c7;color:#92400e}.dashboard-kpi .badge.async{background:#e0e7ff;color:#3730a3}.dashboard-kpi .kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.dashboard-kpi .kpi-card{border:1px solid #dbe3ef;border-radius:8px;padding:12px;background:#f8fafc;cursor:pointer;position:relative}.dashboard-kpi .kpi-card.missing{border-color:#fbbf24;background:#fffbeb;cursor:default}.dashboard-kpi .kpi-card.stale{border-color:#f59e0b}.dashboard-kpi .kpi-card.zero{opacity:.85}.dashboard-kpi .kpi-label{color:#64748b;font-size:12px;text-transform:uppercase}.dashboard-kpi .kpi-value{font-size:24px;font-weight:700;color:#0f766e}.dashboard-kpi .kpi-missing{font-size:13px;color:#92400e}.dashboard-kpi .kpi-stale-tag{position:absolute;top:6px;right:8px;font-size:10px;color:#b45309}.dashboard-charts{padding:12px}.dashboard-charts .panel-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.dashboard-charts .chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}.dashboard-charts .chart-card{border:1px solid #f1f5f9;border-radius:6px;padding:10px;background:#fff;display:grid;grid-template-rows:auto 1fr auto;gap:6px;min-height:320px}.dashboard-charts .chart-card-head{display:flex;align-items:center;gap:8px}.dashboard-charts .chart-empty{display:grid;place-items:center;color:#475569;font-size:13px;min-height:200px;text-align:center}.dashboard-charts .chart-foot{display:flex;justify-content:space-between;align-items:center;font-size:12px}.dashboard-quality{padding:12px}.dashboard-quality .panel-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.dashboard-quality .quality-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.dashboard-quality .quality-card{border:1px solid #dbe3ef;border-radius:8px;padding:10px;background:#f8fafc;position:relative}.dashboard-quality .quality-card.missing{border-color:#fbbf24;background:#fffbeb}.dashboard-quality .quality-label{color:#64748b;font-size:12px;text-transform:uppercase}.dashboard-quality .quality-value{font-size:20px;font-weight:700;color:#0f766e}.dashboard-quality .quality-value.missing{font-size:13px;color:#92400e}.dashboard-quality .quality-stale-tag{position:absolute;top:6px;right:8px;font-size:10px;color:#b45309}.dashboard-quality .quality-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.dashboard-quality .quality-detail{margin-top:6px}.dashboard-quality .quality-detail summary{cursor:pointer;font-size:11px;color:#0f766e}.dashboard-quality .quality-detail pre{font-size:11px;max-height:160px;overflow:auto;background:#f8fafc;padding:6px;border-radius:4px;margin:4px 0 0}.dashboard-drill{padding:12px}.dashboard-drill .panel-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.dashboard-drill .inline{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#475569}.dashboard-drill .inline select{width:auto}.dashboard-drill .drill-async{display:flex;flex-direction:column;gap:8px;padding:12px;background:#fffbeb;border-radius:6px;color:#92400e}.dashboard-drill .drill-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:auto}.dashboard-drill .drill-table th,.dashboard-drill .drill-table td{padding:6px 8px;border-bottom:1px solid #e2e8f0;text-align:left}.dashboard-drill .drill-table th{background:#f1f5f9;position:sticky;top:0;z-index:2}.dashboard-drill .drill-table code{font-size:11px;color:#0f766e}.dashboard-drill .drill-foot{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12px}.dashboard-async{padding:12px}.dashboard-async .panel-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.dashboard-async .async-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px;margin:0 0 6px;font-size:12px}.dashboard-async .async-meta dt{color:#64748b;margin-right:6px}.dashboard-async .async-meta dd{display:inline;margin:0;word-break:break-all}.dashboard-async .async-meta>div{display:flex}.dashboard-async .async-result{background:#0f172a;color:#e2e8f0;padding:10px;border-radius:6px;font-size:11px;max-height:240px;overflow:auto}.dashboard-build{padding:12px}.dashboard-build .panel-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.dashboard-build .build-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px;margin:0 0 8px;font-size:12px}.dashboard-build .build-meta dt{color:#64748b;margin-right:6px}.dashboard-build .build-meta dd{display:inline;margin:0;word-break:break-all}.dashboard-build .build-meta>div{display:flex}.dashboard-build .build-recent{width:100%;border-collapse:collapse;font-size:12px}.dashboard-build .build-recent th,.dashboard-build .build-recent td{padding:6px 8px;border-bottom:1px solid #e2e8f0;text-align:left}.dashboard-build .build-recent th{background:#f1f5f9}.dashboard-build .build-recent code{color:#0f766e}.dashboard-drill .drill-col-selector{margin-bottom:8px}.dashboard-drill .drill-col-selector summary{cursor:pointer;font-size:12px;color:#475569}.dashboard-drill .drill-col-selector .col-list{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:6px;padding:8px;background:#f8fafc;border-radius:4px}.dashboard-drill .drill-col-selector label{font-size:11px;color:#475569;display:inline-flex;align-items:center;gap:4px}.dashboard-drill .drill-sticky-col{position:sticky;left:0;background:#fff;z-index:3;box-shadow:2px 0 #e2e8f0}.dashboard-drill .drill-table th.drill-sticky-col{background:#f1f5f9}.dashboard-drill .drill-cell-json summary{cursor:pointer;font-size:11px;color:#0f766e}.dashboard-drill .drill-cell-json pre{font-size:11px;max-height:160px;overflow:auto;background:#f8fafc;padding:6px;border-radius:4px;margin:4px 0 0}.dashboard-charts .chart-card.empty-buckets{border-style:dashed;border-color:#e2e8f0;background:#fafbfc}.dashboard-charts .chart-empty-buckets{display:grid;place-items:center;color:#64748b;font-size:13px;min-height:200px;text-align:center;gap:8px}.app-root .instance-list .detail-collapse-btn,.app-root .instance-attributes-section .attribute-section-header,.app-root .instance-attributes-section .attribute-section-title{font-size:calc(12px * var(--app-font-scale))!important;line-height:1.3}.app-root .instance-list .detail-key,.app-root .instance-attributes-section .attribute-field-label{font-size:calc(12px * var(--app-font-scale))!important;line-height:1.35}.app-root .instance-attributes-section .attribute-field-label{flex:0 0 clamp(84px,28%,126px);min-width:0;overflow-wrap:anywhere}.app-root .instance-list .detail-section-title,.app-root .instance-list .bbox-id,.app-root .instance-list .segmentation-bit,.app-root .instance-list .segmentation-id,.app-root .instance-list .attention-width-readout,.app-root .instance-list .attention-expand-icon,.app-root .instance-attributes-section .attribute-section-status,.app-root .instance-attributes-section .attribute-section-toggle,.app-root .instance-attributes-section .attribute-empty{font-size:calc(11px * var(--app-font-scale))!important}
