:root{color-scheme:dark;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#1e1e1e;color:#ccc;--bg-app: #1e1e1e;--bg-titlebar: #181818;--bg-activity: #181818;--bg-sidebar: #252526;--bg-panel: #1e1e1e;--bg-panel-header: #222222;--bg-deep: #111111;--bg-editor: #121212;--bg-input: #313131;--bg-hover: #2a2d2e;--bg-active: #37373d;--border: #3c3c3c;--border-subtle: #2d2d2d;--border-faint: rgba(255, 255, 255, .08);--text-main: #cccccc;--text-muted: #8c8c8c;--text-bright: #ffffff;--text-faint: rgba(255, 255, 255, .55);--accent: #007acc;--accent-hover: #0e8adf;--danger: #f14c4c;--warning: #cca700;--success: #89d185;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace}:root[data-theme=light]{color-scheme:light;background:#f3f3f3;color:#333;--bg-app: #f3f3f3;--bg-titlebar: #dddddd;--bg-activity: #dddddd;--bg-sidebar: #f3f3f3;--bg-panel: #f3f3f3;--bg-panel-header: #ececec;--bg-deep: #fafafa;--bg-editor: #ffffff;--bg-input: #ffffff;--bg-hover: #e8e8e8;--bg-active: #e4e6f1;--border: #cccccc;--border-subtle: #e5e5e5;--border-faint: rgba(0, 0, 0, .1);--text-main: #333333;--text-muted: #616161;--text-bright: #000000;--text-faint: rgba(0, 0, 0, .55);--accent: #0066b8;--accent-hover: #0078d4;--danger: #d13438;--warning: #b58900;--success: #388a34}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;min-height:100%;margin:0}body{overflow:hidden;background:var(--bg-app);color:var(--text-main);font-size:12px}button,input,select,textarea{font:inherit}button{color:var(--text-main)}.workbench{height:100vh;display:grid;grid-template-rows:34px minmax(0,1fr);background:var(--bg-app);overflow:hidden}.titlebar{display:flex;align-items:center;justify-content:space-between;gap:10px;height:34px;padding:0 8px;background:var(--bg-titlebar);border-bottom:1px solid var(--border-subtle);-webkit-user-select:none;user-select:none}.titlebar-brand,.commandbar,.menubar{display:flex;align-items:center;min-width:0}.titlebar-brand{gap:8px}.commandbar{gap:6px;flex-shrink:0}.theme-toggle-button.MuiIconButton-root{width:24px;height:24px;border-radius:50%;border:1px solid var(--border);color:var(--text-main)}.theme-toggle-button.MuiIconButton-root:hover{border-color:var(--accent);color:var(--text-bright);background:var(--bg-hover)}.app-mark{display:inline-grid;place-items:center;width:19px;height:19px;border-radius:3px;background:var(--accent);color:#fff;font-size:11px;font-weight:700}.app-title{color:var(--text-bright);font-size:12px;font-weight:600;white-space:nowrap}.menubar{gap:2px;margin-left:12px}.menubar button,.toolbar-button,.mini-button,.inline-actions button{height:24px;border:1px solid transparent;border-radius:2px;background:transparent;padding:0 8px;cursor:pointer;font-size:12px}.menubar button:hover,.toolbar-button:hover,.mini-button:hover,.inline-actions button:hover{background:var(--bg-hover)}.MuiMenu-paper .MuiMenuItem-root{min-height:32px;padding:7px 14px;font-size:12.5px;line-height:1.3}.MuiMenu-paper .MuiDivider-root{margin:4px 0}.MuiMenu-paper .MuiList-root{padding-top:4px;padding-bottom:4px}.toolbar-button,.mini-button,.inline-actions button{border-color:var(--border);background:var(--bg-input)}.toolbar-button.primary,.toolbar-button.accent,.mini-button.accent{border-color:var(--accent);background:var(--accent);color:#fff}.toolbar-button.primary:hover,.toolbar-button.accent:hover,.mini-button.accent:hover{background:var(--accent-hover)}button:disabled{opacity:.45;cursor:not-allowed}.backend-status{display:inline-flex;align-items:center;height:22px;padding:0 7px;border:1px solid var(--border);border-radius:2px;color:var(--text-muted);font-size:11px;white-space:nowrap}.backend-status.online:before,.backend-status.offline:before{content:"";width:6px;height:6px;margin-right:6px;border-radius:999px;background:var(--success)}.backend-status.offline:before{background:var(--danger)}.workbench-body{min-height:0;display:grid;grid-template-columns:48px 286px minmax(420px,1fr) var(--inspector-width, 280px) 44px;grid-template-rows:minmax(0,1fr) auto;overflow:hidden}.workbench-body .activity-bar{grid-column:1;grid-row:1 / -1}.workbench-body .explorer-panel{grid-column:2;grid-row:1 / -1}.workbench-body .editor-area{grid-column:3;grid-row:1}.workbench-body .viewer-tool-panel{grid-column:4;grid-row:1 / -1}.workbench-body .viewer-tool-activity-bar{grid-column:5;grid-row:1 / -1}.workbench-body .bottom-panel{grid-column:3;grid-row:2}.activity-bar{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0;background:var(--bg-activity);border-right:1px solid var(--border-subtle)}.activity-item{width:36px;height:34px;border:0;border-left:2px solid transparent;background:transparent;color:var(--text-muted);font-size:10px;cursor:pointer}.activity-item:hover{color:var(--text-main);background:var(--bg-hover)}.activity-item.active{border-left-color:var(--accent);color:var(--text-bright)}.side-panel,.inspector-panel,.bottom-panel{min-width:0;min-height:0;background:var(--bg-sidebar);overflow:hidden}.side-panel{border-right:1px solid var(--border-subtle);display:flex;flex-direction:column}.inspector-panel{border-left:1px solid var(--border-subtle);display:flex;flex-direction:column}.panel-title{height:30px;flex:0 0 auto;display:flex;align-items:center;padding:0 10px;border-bottom:1px solid var(--border-subtle);color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.section{border-bottom:1px solid var(--border-subtle);padding:0}.side-panel .section,.inspector-panel .section{flex:0 0 auto}.inspector-panel{overflow-y:auto}.section-header{min-height:28px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 10px;color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:var(--bg-panel-header);border-bottom:1px solid var(--border-subtle)}.badge{min-width:18px;height:16px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;border-radius:8px;background:var(--bg-input);color:var(--text-muted);font-size:10px}.tree-list,.compact-list,.log-list,.run-list{display:grid;gap:1px;padding:4px 0}.tree-item{width:100%;min-height:30px;display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:4px;border:0;border-radius:0;background:transparent;color:var(--text-main);text-align:left;padding:3px 8px;cursor:pointer}.tree-item:hover{background:var(--bg-hover)}.tree-item.selected{background:var(--bg-active);color:var(--text-bright)}.tree-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:11px}.tree-main{min-width:0;display:grid;gap:1px}.tree-main strong,.log-entry strong{overflow:hidden;color:var(--text-main);font-size:12px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.tree-main small,.log-entry span{overflow:hidden;color:var(--text-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.visibility-dot{width:8px;height:8px;justify-self:center;border-radius:999px;background:var(--text-muted);opacity:.55}.visibility-dot.visible{background:var(--success);opacity:1}.visibility-dot.hidden{background:var(--text-muted);opacity:.55}.inline-actions{display:flex;align-items:center;gap:4px;padding:5px 8px 8px;flex-wrap:wrap}.kv-list{display:grid;gap:1px;padding:6px 10px 10px}.kv-list.responsive{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));column-gap:16px}.kv-list div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px;min-height:21px;align-items:center}.kv-list span,.task-summary span{color:var(--text-muted);font-size:11px}.kv-list strong,.task-summary strong{overflow:hidden;color:var(--text-main);font-size:11px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.task-list .tree-item{grid-template-columns:minmax(0,1fr)}.editor-area{min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr);background:var(--bg-editor);overflow:hidden}.editor-tabs{display:flex;align-items:stretch;min-width:0;background:var(--bg-sidebar);border-bottom:1px solid var(--border-subtle);overflow:hidden}.viewer-tab-list{display:flex;align-items:stretch;min-width:0;flex:0 1 auto;overflow-x:auto;scrollbar-width:thin}.viewer-tab{display:flex;align-items:stretch;min-width:0;border-right:1px solid var(--border-subtle);background:var(--bg-app)}.viewer-tab.active{background:var(--bg-editor);border-top:1px solid var(--accent)}.viewer-tab.dragging{opacity:.72}.viewer-tab-main{min-width:180px;max-width:300px;height:30px;border:0;background:transparent;color:var(--text-main);text-align:left;padding:0 10px;display:grid;gap:1px;cursor:pointer}.viewer-tab-main:hover,.viewer-tab-pin:hover,.viewer-tab-close:hover{background:var(--bg-hover)}.viewer-tab-label,.viewer-tab-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-tab-label{font-size:12px;color:var(--text-bright)}.viewer-tab-meta{font-size:10px;color:var(--text-muted)}.viewer-tab-pin,.viewer-tab-close{height:30px;border:0;border-left:1px solid var(--border-subtle);background:transparent;color:var(--text-muted);padding:0 10px;cursor:pointer;font-size:11px}.editor-tab{min-width:180px;max-width:280px;height:30px;border:0;border-right:1px solid var(--border-subtle);background:var(--bg-app);color:var(--text-main);text-align:left;padding:0 10px;font-size:12px}.editor-tab.active{color:var(--text-bright);background:var(--bg-editor);border-top:1px solid var(--accent)}.resource-tree{padding:4px 0 8px}.resource-group{display:grid;gap:1px}.resource-row{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:stretch}.tree-disclosure{border:0;border-radius:0;background:transparent;color:var(--text-muted);cursor:pointer;font-size:12px}.tree-disclosure:hover{background:var(--bg-hover);color:var(--text-bright)}.resource-item{min-height:34px}.resource-children{display:grid}.resource-layer{padding-left:30px}.editor-tab-spacer{flex:1}.editor-meta{display:flex;align-items:center;padding:0 10px;color:var(--text-muted);font-size:11px}.viewer-surface{position:relative;min-width:0;min-height:0;background:#0f0f0f;overflow:hidden}.viewer-surface>canvas:not(.viewer-loupe){width:100%;height:100%;display:block}.viewer-empty-state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#ffffff8c;font-size:13px;text-align:center;padding:24px;pointer-events:none;-webkit-user-select:none;user-select:none}.viewer-empty-state p{margin:0}.viewer-empty-state strong{color:#ffffffbf;font-weight:500}.viewer-statusbar{display:flex;align-items:center;gap:14px;min-width:0;height:23px;padding:0 8px;background:var(--accent);color:#fff;font-size:11px;overflow:hidden}.statusbar-button{height:18px;padding:0 7px;border:1px solid rgba(255,255,255,.32);border-radius:2px;background:#ffffff1f;color:#fff;font-size:11px;cursor:pointer}.statusbar-button:disabled{opacity:.52;cursor:default}.statusbar-button.is-toggled{background:#ffffff57;border-color:#ffffff9e}.statusbar-button--warning{background:#f59e0b52;border-color:#f59e0bb3;color:#fff}.statusbar-button--warning:hover{background:#f59e0b7a}.viewer-loupe{position:absolute;top:12px;right:12px;width:220px;height:220px;background:#0a0a0a;border:1px solid rgba(255,255,255,.35);box-shadow:0 4px 16px #00000080;pointer-events:none;z-index:4;image-rendering:pixelated}.viewer-statusbar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-grid{display:grid;gap:6px;padding:8px 10px}.form-grid.dense{gap:5px}.field{display:grid;gap:4px}.field.horizontal{grid-template-columns:92px minmax(0,1fr);align-items:center;gap:8px}.field span{overflow:hidden;color:var(--text-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.field input,.field select,.manifest-editor,textarea{width:100%;border:1px solid var(--border);border-radius:2px;background:var(--bg-input);color:var(--text-main);outline:none}.field input,.field select{height:24px;padding:2px 6px;font-size:12px}.field input[type=range]{padding:0}.field input[type=checkbox]{width:16px;height:16px;justify-self:start}.field input:focus,.field select:focus,.manifest-editor:focus{border-color:var(--accent)}.task-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;padding:6px 10px;border-bottom:1px solid var(--border-subtle)}.task-summary div{display:grid;gap:2px;padding:6px;background:var(--bg-panel)}.schema-details{padding:0 10px 8px;color:var(--text-muted)}.schema-details summary{cursor:pointer;font-size:11px}.schema-details pre{max-height:180px;margin:6px 0 0;overflow:auto;padding:8px;border:1px solid var(--border);border-radius:2px;background:#111;color:#b5cea8;font-family:var(--font-mono);font-size:11px}.log-entry{display:grid;gap:2px;padding:5px 8px;border-bottom:1px solid var(--border-subtle);background:transparent}.log-entry:hover{background:var(--bg-hover)}.with-margin{margin-top:4px}.empty-state,.muted{margin:0;padding:8px 10px;color:var(--text-muted);font-size:11px}.bottom-panel{display:flex;flex-direction:column;height:var(--bottom-panel-height, 340px);border-top:1px solid var(--border-subtle);background:var(--bg-panel);min-height:0;position:relative}.bottom-panel-resizer{position:absolute;left:0;right:0;top:-4px;height:8px;cursor:row-resize;z-index:5;pointer-events:auto;background:transparent}.bottom-panel-resizer:after{content:"";position:absolute;left:0;right:0;top:4px;height:1px;background:transparent;transition:background .12s ease-out}.bottom-panel-resizer:hover:after,.bottom-panel-resizer.is-dragging:after{background:var(--accent)}.bottom-tabbar{flex:0 0 auto;height:30px;display:flex;align-items:center;justify-content:space-between;padding:0 6px 0 0;border-bottom:1px solid var(--border-subtle);background:var(--bg-panel-header)}.bottom-tabs{display:flex;align-items:stretch;height:100%}.bottom-tab{height:100%;border:0;background:transparent;color:var(--text-muted);padding:0 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;border-bottom:1px solid transparent}.bottom-tab:hover{color:var(--text-main)}.bottom-tab:disabled{color:var(--border);cursor:default}.bottom-tab--small{padding:0 8px;font-size:10px}.bottom-tab--active{color:var(--text-bright);border-bottom-color:var(--accent)}.bottom-content{flex:1 1 auto;min-height:0;overflow:hidden}.runs-master-detail{display:grid;grid-template-columns:320px minmax(0,1fr);height:100%;min-height:0}.runs-list{border-right:1px solid var(--border-subtle);overflow-y:auto;padding:4px 0;display:flex;flex-direction:column;gap:1px}.runs-detail{min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column}.run-card.run-card--selected{background:#007acc2e;box-shadow:inset 3px 0 0 0 var(--accent);color:var(--text-bright);border-color:#007acc59}.run-card.run-card--selected:hover{background:#007acc3d;border-color:#007acc73}.run-card.run-card--selected strong{color:var(--text-bright)}.run-detail{display:flex;flex-direction:column;height:100%;min-height:0}.run-detail-tabs{flex:0 0 auto;display:flex;align-items:stretch;height:28px;border-bottom:1px solid var(--border-subtle);background:var(--bg-deep)}.run-detail-tabs-actions{margin-left:auto;display:flex;align-items:center;padding-right:4px}.run-detail-body{flex:1 1 auto;min-height:0;overflow:auto;padding:8px 10px}.run-detail-json{margin:0;padding:0;background:transparent;color:var(--text-main);font-family:var(--font-mono);font-size:11px;line-height:1.4;white-space:pre}.logs-view{margin:-8px -10px;padding:4px 0;height:calc(100% + 16px);overflow-y:auto;font-family:var(--font-mono);font-size:11px;line-height:1.45;background:var(--bg-deep)}.logs-view .log-line{display:grid;grid-template-columns:60px minmax(0,1fr);gap:6px;padding:0 10px;white-space:pre-wrap;word-break:break-word}.logs-view .log-line:hover{background:var(--bg-hover)}.logs-view .log-line-level{color:var(--text-muted);text-align:right}.log-line--debug .log-line-level{color:#6b7280}.log-line--info .log-line-level{color:#93c5fd}.log-line--warning .log-line-level{color:var(--warning)}.log-line--warning .log-line-message{color:#f5d36a}.log-line--error .log-line-level,.log-line--error .log-line-message,.log-line--critical .log-line-level,.log-line--critical .log-line-message{color:var(--danger)}.workbench-body .page{grid-column:2 / 6;grid-row:1;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column}.page-header{flex:0 0 auto;padding:14px 18px 6px;border-bottom:1px solid var(--border-subtle);background:var(--bg-panel)}.page-header h2{margin:0;font-size:14px;font-weight:600;color:var(--text-bright)}.page-subtitle{margin:4px 0 0;color:var(--text-muted);font-size:11px}.page-body{flex:1 1 auto;min-height:0;overflow:hidden;background:var(--bg-app)}.tasks-page-body{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr)}.tasks-list{border-right:1px solid var(--border-subtle);overflow-y:auto;padding:6px 0;display:flex;flex-direction:column;gap:1px}.tasks-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:4px;padding:0 6px 0 0}.tasks-list-row.selected{background:var(--bg-active)}.tasks-list-row:hover{background:var(--bg-hover)}.tasks-list-button{min-width:0;display:flex;flex-direction:column;gap:1px;padding:6px 10px;border:0;background:transparent;color:var(--text-main);text-align:left;cursor:pointer}.tasks-list-type{font-size:10px;color:var(--text-muted)}.tasks-detail{overflow:auto;padding:14px 18px}.form-actions{display:flex;gap:8px;margin-top:10px}.page-list{list-style:none;margin:0;padding:6px 0}.page-list-row{display:flex;align-items:baseline;gap:8px;padding:6px 18px}.page-list-sub{font-size:11px;color:var(--text-muted)}.manifest-editor{height:100%;min-height:0;resize:none;border:0;border-radius:0;padding:8px;background:var(--bg-deep);color:var(--text-main);font-family:var(--font-mono);font-size:11px;line-height:1.35}@media (max-width: 1280px){.workbench-body{grid-template-columns:46px 250px minmax(360px,1fr) 300px 42px}}@media (max-width: 980px){body{overflow:auto}.workbench{height:auto;min-height:100vh;grid-template-rows:auto auto auto}.titlebar,.commandbar,.titlebar-brand{flex-wrap:wrap;height:auto;min-height:34px;padding-block:4px}.workbench-body{grid-template-columns:44px minmax(220px,280px) minmax(0,1fr) 42px;grid-template-rows:minmax(420px,62vh) auto auto}.viewer-tool-panel{grid-column:2 / 5;grid-row:2;border-left:0;border-top:1px solid var(--border-subtle);max-height:420px}.viewer-tool-activity-bar{grid-column:4;grid-row:1}.workbench-body .bottom-panel{grid-column:1 / -1;grid-row:3;height:auto;max-height:320px}}.viewer-surface,.viewer-surface canvas{touch-action:none;overscroll-behavior:contain}.tile-loading-overlay{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:flex-end;padding:10px;opacity:0;transform:translateY(-4px);transition:opacity .12s ease,transform .12s ease}.tile-loading-overlay.visible{opacity:1;transform:translateY(0)}.tile-loading-card{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;max-width:min(360px,calc(100vw - 32px));padding:7px 9px;border:1px solid rgba(0,122,204,.55);border-radius:3px;background:#181818f0;box-shadow:0 8px 24px #00000059;color:var(--text-main)}.tile-loading-card strong,.tile-loading-card span,.tile-loading-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-loading-card strong{color:var(--text-bright);font-size:12px;font-weight:600}.tile-loading-card span,.tile-loading-card small{color:var(--text-muted);font-size:11px}.spinner{width:14px;height:14px;border:2px solid rgba(204,204,204,.28);border-top-color:var(--accent);border-radius:999px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.editor-tool-button{align-self:center;height:22px;margin:4px 2px;border:1px solid var(--border);border-radius:2px;background:var(--bg-input);color:var(--text-main);padding:0 7px;font-size:11px;cursor:pointer}.editor-tool-button:hover{background:var(--bg-hover)}.editor-tool-button:disabled{opacity:.45;cursor:not-allowed}.workbench .MuiButton-root{min-height:24px;height:24px;border-radius:2px;box-shadow:none;font-size:12px;line-height:1;text-transform:none}.workbench .MuiButton-root:hover{box-shadow:none}.editor-area{grid-template-rows:minmax(0,1fr)}.editor-tabs{height:31px;align-items:stretch;background:var(--bg-sidebar)}.viewer-tab-list{height:31px;flex:0 1 auto;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.viewer-tab-list::-webkit-scrollbar{height:4px}.viewer-tab-list::-webkit-scrollbar-thumb{background:var(--border)}.viewer-tab{flex:0 0 auto;height:31px;border-top:1px solid transparent;border-right:1px solid var(--border-subtle);background:var(--bg-app)}.viewer-tab.active{border-top-color:var(--accent);background:var(--bg-editor)}.viewer-tab-main{min-width:170px;max-width:280px;height:30px;align-content:center;padding:0 9px}.viewer-tab-main:focus-visible,.viewer-tab-close:focus-visible,.editor-tool-button:focus-visible,.field input:focus-visible,.field select:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.viewer-tab-label{min-width:0;color:var(--text-main);font-size:12px;line-height:15px}.viewer-tab.active .viewer-tab-label{color:var(--text-bright)}.viewer-tab-label.preview{font-style:italic}.viewer-tab-meta{color:var(--text-muted);font-size:10px;line-height:12px}.viewer-tab-close{width:28px;height:30px;display:inline-grid;place-items:center;padding:0;opacity:.72}.viewer-tab:hover .viewer-tab-close,.viewer-tab.active .viewer-tab-close,.viewer-tab-close:focus-visible{opacity:1}.viewer-tab-close svg{width:13px;height:13px}.editor-tab-spacer{min-width:8px;background:var(--bg-sidebar)}.editor-tool-button.MuiButton-root{align-self:center;height:22px;min-height:22px;margin:4px 2px;padding:0 7px;border-color:var(--border);background:var(--bg-input);color:var(--text-main);font-size:11px}.editor-tool-button.MuiButton-root:hover{background:var(--bg-hover)}.viewer-split-panel-group{width:100%;height:100%;min-width:0;min-height:0}.viewer-group{width:100%;height:100%;min-width:0;min-height:0;display:grid;grid-template-rows:31px minmax(0,1fr) 23px;border:1px solid transparent;background:var(--bg-editor)}.viewer-group.active{border-color:#007acc94}.viewer-group-tool{width:30px;height:30px;display:inline-grid;place-items:center;border:0;border-left:1px solid var(--border-subtle);background:transparent;color:var(--text-muted);cursor:pointer}.viewer-group-tool:hover{background:var(--bg-hover);color:var(--text-bright)}.viewer-resize-handle{background:var(--border-subtle)}.viewer-resize-handle.horizontal{width:4px;cursor:col-resize}.viewer-resize-handle.vertical{height:4px;cursor:row-resize}.viewer-drop-zone{position:absolute;z-index:5;pointer-events:none;opacity:0;transition:opacity .1s ease}.viewer-drop-zone.is-over{opacity:1;background:#007acc47;outline:1px solid rgba(117,190,255,.8)}.viewer-drop-zone-left{inset:0 auto 0 0;width:18%}.viewer-drop-zone-right{inset:0 0 0 auto;width:18%}.viewer-drop-zone-top{inset:0 18% auto 18%;height:18%}.viewer-drop-zone-bottom{inset:auto 18% 0 18%;height:18%}.viewer-drop-zone-center{top:18%;right:18%;bottom:18%;left:18%}.sync-mode-control{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;padding:8px 10px}.sync-mode-control button{height:26px;border:1px solid var(--border);background:var(--bg-input);color:var(--text-main);font-size:11px;cursor:pointer}.sync-mode-control button.active{border-color:var(--accent);background:#007acc38;color:var(--text-bright)}.compact-sync-status{padding:0 10px 8px}.display-settings-panel .form-grid.dense{gap:5px}.display-settings-panel .form-grid.dense .field{grid-template-columns:92px minmax(0,1fr);align-items:center;gap:8px}.display-settings-panel .field>span{line-height:24px}.histogram-panel{grid-column:1 / -1;display:flex;flex-direction:column;gap:4px;margin:4px 0 8px;padding:6px;border-radius:4px;background:#0000002e;min-width:0}.histogram-panel-header{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--text-muted)}.histogram-panel-title{text-transform:uppercase;letter-spacing:.04em;font-weight:600}.histogram-panel-controls{display:flex;gap:4px}.histogram-panel-toggle{border:0;padding:1px 6px;border-radius:2px;background:var(--bg-input);color:var(--text-main);font-size:10px;cursor:pointer}.histogram-panel-toggle:hover{background:var(--bg-hover)}.histogram-panel-toggle[aria-pressed=true]{background:var(--accent);color:#fff}.histogram-plot{width:100%;-webkit-user-select:none;user-select:none}.histogram-plot .nsewdrag,.histogram-plot .ewdrag,.histogram-plot .nwdrag,.histogram-plot .nedrag,.histogram-plot .swdrag,.histogram-plot .sedrag,.histogram-plot .nsdrag,.histogram-plot .drag{cursor:default!important}.histogram-plot .modebar{display:none!important}.histogram-handle-overlay{z-index:2}.display-presets{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:4px 0 2px}.display-presets .MuiButton-root{min-width:0;padding:2px 6px}.histogram-out-of-range{font-size:10px;color:#f59e0b;margin-right:4px;cursor:help}.histogram-empty-state{height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:11px}.histogram-readouts{display:grid;grid-template-columns:minmax(0,1fr);gap:2px 4px;font-size:10px;color:var(--text-muted);min-width:0}.histogram-readout{display:grid;grid-template-columns:8px 28px minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0}.histogram-readout-swatch{width:6px;height:6px;border-radius:50%}.histogram-readout-label{font-weight:600;color:var(--text-main)}.histogram-readout-value{font-family:var(--font-mono);color:var(--text-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.histogram-readout-percent{font-family:var(--font-mono);white-space:nowrap}.field .MuiFormControl-root,.field .MuiTextField-root,.field .MuiSlider-root{min-width:0;width:100%}.field .MuiInputBase-root,.field .MuiOutlinedInput-root{width:100%;height:24px!important;min-height:24px!important;border-radius:2px!important;background:var(--bg-input)!important;color:var(--text-main)!important;font-size:12px!important}.field .MuiOutlinedInput-notchedOutline{top:0!important;border-color:var(--border)!important}.field .Mui-focused .MuiOutlinedInput-notchedOutline{border-color:var(--accent)!important;border-width:1px!important}.field .MuiOutlinedInput-notchedOutline legend{display:none!important}.field .MuiInputBase-input,.field .MuiSelect-select,.field .MuiSelect-nativeInput{height:22px!important;min-height:22px!important;box-sizing:border-box!important;border:0!important;background:transparent!important;color:var(--text-main)!important;font-size:12px!important;line-height:20px!important;outline:0!important}.field .MuiInputBase-input{padding:2px 6px!important}.field .MuiSelect-select{display:flex!important;align-items:center!important;padding:2px 26px 2px 6px!important}.field .MuiSelect-icon{right:5px!important;color:var(--text-muted)!important;font-size:18px!important}.field .MuiSlider-root{height:18px!important;padding:2px 0!important}.field input[type=checkbox]{accent-color:var(--accent)}.field input[type=checkbox]:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.viewer-tool-activity-bar{min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0;border-left:1px solid var(--border-subtle);background:var(--bg-activity)}.viewer-tool-tab{width:36px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:0;border-right:2px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;font-size:17px}.viewer-tool-tab:hover{background:var(--bg-hover);color:var(--text-main)}.viewer-tool-tab.active{border-right-color:var(--accent);color:var(--text-bright)}.viewer-tool-tab svg{width:17px;height:17px;display:block}.viewer-tool-panel{overflow:hidden;position:relative}.viewer-tool-panel-resizer{position:absolute;left:-4px;top:0;bottom:0;width:8px;cursor:col-resize;z-index:5;pointer-events:auto;background:transparent}.viewer-tool-panel-resizer:after{content:"";position:absolute;left:4px;top:0;bottom:0;width:1px;background:transparent;transition:background .12s ease-out}.viewer-tool-panel-resizer:hover:after,.viewer-tool-panel-resizer.is-dragging:after{background:var(--accent)}.viewer-tool-panel-title{justify-content:space-between;gap:8px}.viewer-tool-panel-mode{overflow:hidden;color:var(--text-main);font-size:10px;font-weight:600;letter-spacing:0;text-overflow:ellipsis;text-transform:none;white-space:nowrap}.viewer-tool-panel-body{min-height:0;overflow-y:auto;display:flex;flex-direction:column}.viewer-tool-heading{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;padding:10px;border-bottom:1px solid var(--border-subtle);background:var(--bg-panel-header)}.viewer-tool-heading-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;color:var(--accent-hover);font-size:17px}.viewer-tool-heading h2{margin:0 0 3px;overflow:hidden;color:var(--text-bright);font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.viewer-tool-heading p{margin:0;color:var(--text-muted);font-size:11px;line-height:1.35}.muted-label{color:var(--text-muted);font-size:11px}.viewer-tool-section{flex:0 0 auto}.tool-card-list{display:grid;gap:1px;padding:6px 0}.tool-card{display:grid;gap:2px;padding:7px 10px;border-left:2px solid transparent;background:transparent}.tool-card:hover{background:var(--bg-hover)}.tool-card.active{border-left-color:var(--accent);background:var(--bg-active)}.tool-card strong,.tool-placeholder-output strong{color:var(--text-main);font-size:12px;font-weight:600}.tool-card span,.tool-placeholder-output span,.tool-note{color:var(--text-muted);font-size:11px;line-height:1.35}.tool-action-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:7px 10px;border-top:1px solid var(--border-subtle)}.tool-note{margin:0;padding:8px 10px 10px;border-top:1px solid var(--border-subtle)}.sonification-timeline{height:22px;margin:2px 10px 8px;border:1px solid var(--border);border-radius:2px;background:var(--bg-deep);overflow:hidden}.sonification-timeline-fill{display:block;width:42%;height:100%;background:linear-gradient(90deg,#007acc59,#007accd9)}.viewer-interaction-overlay{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;z-index:2}.viewer-interaction-hint{position:absolute;left:12px;top:12px;display:grid;gap:2px;min-width:180px;padding:7px 9px;border:1px solid var(--border);border-radius:2px;background:#1e1e1ed1;box-shadow:0 3px 14px #00000047}.viewer-interaction-hint strong{color:var(--text-bright);font-size:12px}.viewer-interaction-hint span{color:var(--text-muted);font-size:11px}.measurement-svg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible}.measurement-line{fill:none;stroke:#00adfff2;stroke-width:1.5;stroke-dasharray:0}.measurement-line.is-drawing{stroke-dasharray:5 4}.measurement-endpoint{fill:#00adffd9;stroke:#ffffffe6;stroke-width:1}.measurement-hover-marker{fill:#ffc83cd9;stroke:#fffffff2;stroke-width:1}.measurement-region{fill:#00adff1f;stroke:#00adfff2;stroke-width:1}.measurement-region.is-drawing{stroke-dasharray:5 4}.sonification-playhead{position:absolute;padding:3px 6px;border:1px solid var(--border);border-radius:2px;background:#1e1e1edb;color:var(--text-main);font-size:11px}.measurement-chart-wrapper{margin-top:8px;padding:6px;border:1px solid var(--border);background:var(--bg-deep)}.measurement-chart{display:block;width:100%;cursor:crosshair}.measurement-chart-frame{fill:transparent;stroke:var(--border);stroke-width:1}.measurement-chart-line{fill:none;stroke:#00adff;stroke-width:1.25;vector-effect:non-scaling-stroke}.measurement-chart-cursor{stroke:#ffc83cd9;stroke-width:1;stroke-dasharray:3 3}.measurement-chart-axis-label{fill:var(--text-muted);font-size:10px;font-family:var(--font-mono, monospace)}.measurement-chart-hover-readout{margin-top:6px;font-size:11px;color:var(--text-muted);font-family:var(--font-mono, monospace)}.measurement-chart-error{color:var(--accent-error, #f08080)}.measurement-actions{display:flex;gap:6px;padding:0 10px;margin-top:8px}.measurement-region-stats{margin-top:8px}.measurement-region-heatmap{margin-top:8px;padding:6px;border-radius:4px;background:#0000002e;display:flex;flex-direction:column;align-items:center;gap:4px}.measurement-region-heatmap-canvas{display:block;border:1px solid var(--border-subtle, #2d2d2d);background:#000;cursor:crosshair}.measurement-region-heatmap-readout{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);align-self:stretch}.measurement-region-heatmap-status{font-size:11px;color:var(--text-muted);padding:12px}.measurement-region-heatmap-tabs{display:flex;gap:2px;align-self:stretch}.measurement-region-heatmap-tab{flex:1 1 0;border:0;padding:4px 8px;border-radius:2px;background:var(--bg-input);color:var(--text-muted);font-size:11px;cursor:pointer}.measurement-region-heatmap-tab:hover{background:var(--bg-hover);color:var(--text-main)}.measurement-region-heatmap-tab.is-active{background:var(--accent);color:#fff}.measurement-region-heatmap-surface{align-self:stretch;position:relative}.sonification-region{fill:#ffc83c1a;stroke:#ffc83cf2;stroke-width:1.5}.sonification-cursor{stroke:#ff5050f2;stroke-width:1.5}.sonification-actions{display:flex;gap:8px;padding:4px 10px 8px;margin-top:12px}.sonification-playback{display:flex;align-items:center;gap:6px;margin:8px 10px 0;padding:8px;border:1px solid var(--border-subtle);background:#ffffff05}.sonification-nav{margin-top:12px;padding:12px 10px 0;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px}.sonification-nav-row{display:flex;align-items:center;gap:6px}.sonification-nav-label{width:44px;color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.sonification-help,.sonification-advanced{margin-top:12px;padding:12px 10px 8px;border-top:1px solid var(--border-subtle)}.sonification-help summary,.sonification-advanced summary{cursor:pointer;color:var(--text-muted);font-size:12px;padding:4px 0}.sonification-help[open]>p,.sonification-advanced[open]>.form-grid{margin-top:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sonification-scan-cursor{position:absolute;top:8%;bottom:8%;left:42%;width:2px;background:var(--accent-hover);box-shadow:0 0 14px #007accbf}.sonification-playhead{left:calc(42% + 10px);bottom:12px}.source-marker .source-marker-aperture{fill:none;stroke:#d7ba7d;stroke-width:1.25;vector-effect:non-scaling-stroke}.source-marker .source-marker-annulus{fill:none;stroke:#d7ba7d73;stroke-width:.85;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.source-marker.is-selected .source-marker-aperture{stroke:#4ec9b0;stroke-width:2}.source-marker.is-selected .source-marker-annulus{stroke:#4ec9b0b3}.source-marker-label{font:10px ui-sans-serif,system-ui,sans-serif;fill:#d7ba7d;paint-order:stroke;stroke:#000000b3;stroke-width:2.5;stroke-linejoin:round}.source-marker.is-selected .source-marker-label{fill:#4ec9b0;font-weight:600}.source-marker--predicted .source-marker-aperture{stroke:#d7ba7d80;stroke-dasharray:3 3;stroke-width:1}.source-marker--predicted .source-marker-crosshair{stroke:#d7ba7d99;stroke-width:1;vector-effect:non-scaling-stroke}.source-marker--predicted .source-marker-label{fill:#d7ba7db3;font-style:italic}.source-marker--predicted.is-selected .source-marker-aperture,.source-marker--predicted.is-selected .source-marker-crosshair{stroke:#4ec9b0}.extraction-region{fill:#4ec9b00f;stroke:#4ec9b0d9;stroke-width:1.25;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}.extraction-region.is-drawing{stroke-dasharray:3 3}.section-header-actions{display:inline-flex;align-items:center;gap:4px}.section-header-subtitle{margin-left:4px;color:var(--text-muted);font-weight:400;font-size:11px;letter-spacing:0;text-transform:none}.layer-picker-row{display:flex;align-items:stretch;gap:6px;padding:6px 10px 4px}.layer-picker-row .MuiFormControl-root{flex:1 1 auto;min-width:0}.layer-picker-row .MuiButton-root{flex:0 0 auto;white-space:nowrap}.layer-list-row{display:flex;flex-direction:column;gap:2px;padding:4px 6px 6px}.layer-list-item{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:4px;border:1px solid transparent;background:transparent;cursor:pointer;-webkit-user-select:none;user-select:none}.layer-list-item:hover{background:var(--bg-hover)}.layer-list-item.is-selected{background:var(--bg-hover);border-color:var(--border)}.layer-list-item.is-dragging{opacity:.7}.layer-list-drag{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:transparent;color:var(--text-muted);cursor:grab;font-size:16px}.layer-list-drag:active{cursor:grabbing}.layer-list-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--text-main)}.layer-list-chip{flex:0 0 auto;display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;border:1px solid var(--border-faint);background:var(--bg-hover);color:var(--text-main);font-size:11px;line-height:1.4;cursor:pointer;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-list-chip:hover:not(:disabled){border-color:var(--border)}.layer-list-chip:disabled{cursor:not-allowed;color:var(--text-muted)}.layer-list-visibility{flex:0 0 auto}.link-group-row{display:flex;align-items:center;gap:6px;padding:4px 10px 6px}.link-group-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;background:var(--bg-hover);border:1px solid var(--border-faint);font-size:11px;color:var(--text-main);flex:1 1 auto;min-width:0}.link-group-chip.is-unlinked{color:var(--text-muted)}.link-group-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-group-chip-count{color:var(--text-muted);flex:0 0 auto}.link-group-popover{display:flex;flex-direction:column;gap:6px;width:280px;padding:10px;border:1px solid var(--border);background:var(--bg-sidebar)}.link-group-popover-list{max-height:260px;overflow-y:auto;display:flex;flex-direction:column}.link-group-popover-list .MuiFormControlLabel-root{margin-left:0;margin-right:0}.link-group-popover-list .MuiFormControlLabel-label{font-size:12px;color:var(--text-main)}.link-group-popover-locked{color:var(--text-muted);font-size:10px}.link-group-popover-actions{display:flex;justify-content:flex-end;gap:6px;padding-top:4px}.photometric-channel-table{width:100%;border-collapse:separate;border-spacing:0 4px}.photometric-channel-table th{font-size:11px;font-weight:500;color:var(--text-muted);text-align:left;padding:0 6px}.photometric-channel-table td{padding:2px 6px;vertical-align:middle}.photometric-channel-table .channel-cell{font-weight:600;font-size:12px;padding-left:8px;border-left:3px solid transparent}.photometric-channel-table .channel-cell-red{border-left-color:#d33}.photometric-channel-table .channel-cell-green{border-left-color:#2c8}.photometric-channel-table .channel-cell-blue{border-left-color:#38d}.photometric-channel-table .zero-point-source{white-space:nowrap}.zero-point-source-tag{display:inline-block;padding:1px 6px;border-radius:999px;font-size:10px;border:1px solid var(--border-faint);background:var(--bg-hover);color:var(--text-main)}.zero-point-source-tag.is-empty{color:var(--text-muted)}.zero-point-source-tag.is-fits{border-color:#2d8cdc80;background:#2d8cdc1f}.zero-point-source-tag.is-calibrated{border-color:#2eb46480;background:#2eb4641f}.zero-point-source-tag.is-manual{border-color:#dca03280;background:#dca0321f}.zero-point-source-tag.is-running{border-color:var(--border);font-style:italic}.calibration-preview-table{width:100%;border-collapse:collapse;font-size:12px}.calibration-preview-table th,.calibration-preview-table td{border-bottom:1px solid var(--border-faint);padding:4px 8px;text-align:left}.calibration-preview-table th{color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.calibration-preview-table td:nth-child(2),.calibration-preview-table td:nth-child(3){font-family:var(--font-mono);text-align:right}.section-header-icon-button.MuiIconButton-root{width:20px;height:20px;padding:0;border-radius:3px;font-size:16px;color:var(--text-muted)}.section-header-icon-button.MuiIconButton-root:hover{color:var(--text-bright);background:var(--bg-hover)}.section-header-icon-button.MuiIconButton-colorWarning{color:var(--warning, #cca700)}.section-header-icon-button.MuiIconButton-colorWarning:hover{color:var(--danger, #f14c4c);background:var(--bg-hover)}.section-header-icon-button.Mui-disabled{color:var(--text-muted);opacity:.4}.region-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 1px 1px 8px;border-radius:11px;background:#4ec9b01f;border:1px solid rgba(78,201,176,.45);color:#4ec9b0;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.region-chip-label{font-weight:500}.region-chip-clear{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;margin:0;border-radius:999px;background:transparent;color:inherit;border:none;cursor:pointer;font-size:12px}.region-chip-clear:hover{background:#4ec9b040}.file-picker{display:grid;gap:6px;border:1px solid var(--border-subtle);border-radius:4px;padding:6px 8px;background:var(--bg-deep)}.file-picker-toolbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.file-picker-toolbar>.MuiTextField-root{flex:1 1 160px;min-width:0}.file-picker-actionbar{display:flex;gap:6px;align-items:center;border-top:1px solid var(--border-subtle);padding:4px 0 0}.file-picker-count{font-size:11px;color:var(--text-muted);flex:1}.file-picker-list{display:grid;max-height:240px;overflow-y:auto;border-top:1px solid var(--border-subtle);padding-top:2px}.file-picker-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:2px 4px;border-radius:3px;cursor:pointer}.file-picker-row:hover{background:var(--bg-hover)}.file-picker-row.is-checked{background:#007acc1a}.file-picker-row.is-disabled{opacity:.5;cursor:default}.file-picker-row-icon{display:inline-flex;align-items:center}.file-picker-row-name{font-size:12px;color:var(--text-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-picker-row-meta{font-size:10px;padding:1px 6px;border-radius:8px;background:var(--bg-hover);color:var(--text-muted)}.file-picker-row-meta.is-warning{background:#ef44442e;color:#f87171}.task-builder-paper{height:min(86vh,880px)}.task-builder-section{display:grid;gap:12px}.task-builder-section .MuiFormControlLabel-root{margin-left:-4px}.task-builder-output-section .task-builder-field{max-width:360px}.task-builder-form{display:flex;flex-direction:column;gap:8px}.task-builder-form-field{min-width:0}.task-builder-field{display:flex;flex-direction:column;gap:4px;min-width:0}.task-builder-field-label{display:inline-flex;align-items:center;gap:4px;color:var(--text-muted);font-size:11px;font-weight:500;letter-spacing:.02em;-webkit-user-select:none;user-select:none}.task-builder-field-required{color:#ef4444;font-weight:600}.task-builder-field .MuiFormControl-root,.task-builder-field .MuiTextField-root,.task-builder-field .MuiInputBase-root{width:100%}.task-builder-field .MuiOutlinedInput-root{min-height:36px}.task-builder-field-help{margin:0;color:var(--text-muted);font-size:10px;line-height:1.35}.task-builder-field.is-error .task-builder-field-label,.task-builder-field.is-error .task-builder-field-help{color:#ef4444}.task-builder-field.is-boolean{padding-top:16px}.task-builder-field.is-boolean .task-builder-field-row{display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:10px;cursor:pointer}.task-builder-field.is-boolean .task-builder-field-label{color:var(--text-main);font-size:12px}.task-builder-group.MuiAccordion-root{background:transparent;box-shadow:none;border:1px solid var(--border-subtle);border-radius:4px}.task-builder-group.MuiAccordion-root:before{display:none}.task-builder-group-summary.MuiAccordionSummary-root{min-height:32px;padding:0 10px;background:var(--bg-panel-header)}.task-builder-group-summary.MuiAccordionSummary-root.Mui-expanded{min-height:32px;border-bottom:1px solid var(--border-subtle)}.task-builder-group-summary .MuiAccordionSummary-content{margin:6px 0;align-items:baseline;gap:10px}.task-builder-group-summary .MuiAccordionSummary-content.Mui-expanded{margin:6px 0}.task-builder-group-title{font-size:12px;font-weight:600;color:var(--text-main)}.task-builder-group-description{font-size:11px;color:var(--text-muted)}.task-builder-group-body.MuiAccordionDetails-root{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));column-gap:16px;row-gap:14px;align-items:start;padding:12px 10px}.sources-error{margin:4px 10px 8px;padding:6px 8px;border-radius:3px;background:#ef44441a;border-left:2px solid #ef4444;color:#f87171;font-size:11px;line-height:1.35}.sources-action-bar{display:flex;flex-wrap:wrap;gap:4px;padding:4px 6px;border-top:1px solid var(--border-subtle)}.sources-toolbar{display:flex;gap:4px;padding:6px 10px;border-top:1px solid var(--border-subtle)}.sources-toolbar button{flex:1;background:transparent;border:1px solid var(--border);color:var(--text-muted);font-size:11px;padding:4px 8px;border-radius:3px;cursor:pointer}.sources-toolbar button.active{background:var(--accent);border-color:var(--accent);color:#fff}.sources-auto-toggle{margin:0;padding:2px 10px 4px}.sources-auto-toggle .MuiFormControlLabel-label{font-size:11px;color:var(--text-muted)}.sources-table{display:grid;grid-template-columns:minmax(80px,1.1fr) minmax(72px,.9fr) minmax(112px,1.2fr) minmax(96px,1fr) 32px;border-top:1px solid var(--border-subtle);max-height:320px;overflow-y:auto;font-variant-numeric:tabular-nums}.sources-table-head{display:contents}.sources-table-head>span{position:sticky;top:0;background:var(--bg-panel-header);border-bottom:1px solid var(--border-subtle);padding:4px 8px;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;z-index:1}.sources-table-head>.num{text-align:right}.sources-table-row{display:contents;cursor:pointer}.sources-table-row>*{padding:4px 8px;border-bottom:1px solid var(--border-subtle);background:transparent;font-size:11px;color:var(--text-muted);display:flex;align-items:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sources-table-row>.num{justify-content:flex-end}.sources-table-row:hover>*{background:var(--bg-hover)}.sources-table-row.is-selected>*{background:#007acc1f}.sources-table-row.is-focused>*{background:var(--bg-active);color:var(--text-main)}.sources-table-row.is-focused.is-selected>*{background:#007acc2e}.sources-table-row.is-focused .sources-table-name{color:var(--text-bright);font-weight:600}.sources-table-name{font-weight:500;color:var(--text-main)}.sources-table-actions{padding:0 4px!important;justify-content:center}.sources-table-row:focus-visible>*{outline:1px solid var(--accent);outline-offset:-1px}.sources-detail{padding:6px 10px 8px;border-top:1px solid var(--border-subtle)}.sources-settings{border-top:1px solid var(--border-subtle);padding:6px 10px 10px}.sources-settings>summary{cursor:pointer;font-size:11px;color:var(--text-muted);padding:2px 0}.sources-calibration{display:grid;gap:6px;border-top:1px solid var(--border-subtle);padding:8px 10px}.sources-calibration-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}@media (max-width: 980px){.viewer-tool-panel-body{max-height:390px}.viewer-tool-tab{width:34px}}.tile-loading-overlay{z-index:4}.resource-tree-badges{display:inline-flex;gap:4px;align-items:center;margin-left:6px;font-size:10px;line-height:1}.resource-tree-badge{display:inline-flex;align-items:center;justify-content:center;min-width:14px;height:14px;padding:0 3px;border-radius:7px;font-weight:600}.resource-tree-badge--dirty{background:#f59e0b;color:#1f1300}.resource-tree-badge--missing{background:#ef4444;color:#fff}.resource-tree-badge--readonly{background:transparent;font-size:11px}.dialog-tab-body{margin-top:16px;min-height:360px}.upload-tab-body{display:flex;flex:1;flex-direction:column;gap:12px;padding:20px 0;min-height:0}.upload-dropzone{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:220px;padding:28px;border:2px dashed var(--border);border-radius:8px;background:var(--bg-hover);color:var(--text-main);cursor:pointer;transition:border-color .12s ease-out,background .12s ease-out,color .12s ease-out;outline:none}.upload-dropzone:hover,.upload-dropzone:focus-visible{border-color:var(--accent);background:var(--bg-active);color:var(--text-bright)}.upload-dropzone.is-dragover{border-color:var(--accent);border-style:solid;background:var(--bg-active);color:var(--text-bright)}.upload-dropzone.is-busy{cursor:progress;opacity:.7}.upload-dropzone-icon{font-size:40px!important;color:var(--text-muted)}.upload-dropzone:hover .upload-dropzone-icon,.upload-dropzone:focus-visible .upload-dropzone-icon,.upload-dropzone.is-dragover .upload-dropzone-icon{color:var(--accent)}.upload-dropzone-title{font-weight:500}.upload-dropzone-subtitle{color:var(--text-muted)}.upload-dropzone-link{color:var(--accent);text-decoration:underline}.upload-dropzone-hint{margin-top:6px;color:var(--text-muted);text-align:center}.provider-browser{display:grid;grid-template-columns:220px 1fr;gap:12px;min-height:420px;flex:1;min-height:0}.provider-browser-providers,.provider-browser-resources{border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:6px;background:#0000002e;display:flex;flex-direction:column;min-height:0}.provider-browser-providers{overflow-y:auto}.provider-browser-resources{overflow:hidden}.provider-browser-resources .provider-browser-list{flex:1;min-height:0;overflow-y:auto;margin:0 -2px}.provider-browser-section-header{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);padding:6px 8px 8px;display:flex;justify-content:space-between;align-items:baseline}.provider-browser-scheme{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text-muted);text-transform:none;letter-spacing:0}.provider-browser-loading{display:flex;justify-content:center;padding:16px}.provider-browser-toolbar{display:flex;align-items:center;gap:4px;padding:4px 6px 8px;border-bottom:1px solid var(--border-faint);margin-bottom:4px;min-height:30px}.provider-browser-breadcrumbs{flex:1;display:flex;align-items:center;gap:2px;overflow-x:auto;white-space:nowrap;font-size:12px}.provider-browser-crumb-row{display:inline-flex;align-items:center;gap:2px}.provider-browser-crumb{background:transparent;border:none;color:var(--text-muted);font-size:12px;padding:2px 6px;border-radius:3px;cursor:pointer;white-space:nowrap}.provider-browser-crumb:hover{background:var(--bg-hover);color:var(--text-main)}.provider-browser-crumb.is-current{color:var(--text-bright);font-weight:600;cursor:default}.provider-browser-crumb-sep{color:var(--text-muted);font-size:12px;-webkit-user-select:none;user-select:none}.provider-browser-row .provider-browser-row-icon{color:var(--text-muted);margin-right:6px}.provider-browser-row.is-folder .provider-browser-row-icon.is-folder{color:#d7ba7d}.provider-browser-row.is-checked{background:#007acc1a}.provider-browser-row.is-checked.Mui-selected{background:#007acc33}.provider-browser-selectbar{display:flex;align-items:center;gap:6px;padding:2px 6px;border-bottom:1px solid var(--border-faint);margin-bottom:2px}.provider-browser-selectbar-count{flex:1;font-size:11px;color:var(--text-muted)}.provider-browser-selectbar-clear{background:transparent;border:none;color:var(--accent);font-size:11px;padding:2px 6px;cursor:pointer;border-radius:3px}.provider-browser-selectbar-clear:hover{background:var(--bg-hover)}.open-dialog-paper{height:min(78vh,720px)}.open-dialog-content{display:flex;flex-direction:column;min-height:0}.open-dialog-body{flex:1;display:flex;flex-direction:column;min-height:0;margin-top:12px}.save-as-filename-row{margin-top:12px;margin-bottom:4px}.task-run-form{display:flex;flex-direction:column;gap:12px}.task-run-form-field{width:100%}.run-card{display:block;padding:8px 10px;border-radius:4px;border:1px solid var(--border-faint);background:var(--bg-hover);cursor:pointer;text-align:left;width:100%}.run-card:hover{background:var(--bg-active);border-color:var(--border)}.run-card strong{display:block;margin-bottom:3px;color:var(--text-main);font-size:12px;font-weight:500;line-height:1.4}.run-card .run-card-status{display:block;color:var(--text-muted);font-size:11px;line-height:1.4}.run-card .run-card-subtitle{opacity:.6;margin-left:6px}.run-card .MuiLinearProgress-root{margin-top:6px}.run-card--succeeded{border-left:3px solid #10b981}.run-card--running,.run-card--starting,.run-card--queued{border-left:3px solid #3b82f6;animation:run-card-active-pulse 1.8s ease-in-out infinite}@keyframes run-card-active-pulse{0%,to{box-shadow:inset 3px 0 #3b82f600}50%{box-shadow:inset 3px 0 #3b82f699}}.viewer-tab.processing .viewer-tab-label{padding-left:0}.viewer-tab-processing{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:#3b82f6;animation:viewer-tab-processing-pulse 1.4s ease-in-out infinite;vertical-align:middle}@keyframes viewer-tab-processing-pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}.viewer-processing-badge{position:absolute;top:10px;left:10px;z-index:5;display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:#0f172ac7;border:1px solid rgba(59,130,246,.45);color:var(--text-bright, #e6e6e6);font-size:11px;line-height:1;pointer-events:none;box-shadow:0 1px 6px #0006}.viewer-processing-badge-dot{width:8px;height:8px;border-radius:50%;background:#3b82f6;animation:viewer-tab-processing-pulse 1.4s ease-in-out infinite}.run-card--failed{border-left:3px solid #ef4444}.run-card--cancelled,.run-card--interrupted{border-left:3px solid #6b7280}.composition-builder-list{border:1px solid var(--border-faint);border-radius:6px;background:var(--bg-hover);max-height:320px;overflow-y:auto;margin-bottom:8px}.pipeline-plan-preview{font-size:13px}.pipeline-plan-preview .MuiList-root{margin-bottom:4px}.explorer-panel .section{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.explorer-panel .section>.section-header{flex:0 0 auto}.side-panel .MuiSimpleTreeView-root{flex:1;min-height:0;overflow:auto;padding:2px 0;font-size:12px;-webkit-user-select:none;user-select:none}.side-panel .MuiTreeItem-root{margin:0!important}.side-panel .MuiTreeItem-content{min-height:24px!important;height:24px!important;padding:0 8px 0 4px!important;border-radius:0!important;color:var(--text-main)!important}.side-panel .MuiTreeItem-content:hover{background:var(--bg-hover)!important}.side-panel .MuiTreeItem-content.Mui-selected,.side-panel .MuiTreeItem-content.Mui-focused,.side-panel .MuiTreeItem-content.Mui-selected:hover,.side-panel .MuiTreeItem-content.Mui-focused:hover,.side-panel .resource-tree-node-selected>.MuiTreeItem-content,.side-panel .resource-tree-node-selected>.MuiTreeItem-content:hover,.side-panel .resource-tree-node-selected>.MuiTreeItem-content.Mui-focused,.side-panel .resource-tree-node-selected>.MuiTreeItem-content.Mui-focused:hover{background:var(--bg-active)!important;color:var(--text-bright)!important}.side-panel .MuiTreeItem-iconContainer{width:16px!important;min-width:16px!important;margin-right:2px!important;color:var(--text-muted)!important}.side-panel .MuiTreeItem-label{min-width:0;overflow:hidden;font-size:12px!important}.side-panel .resource-tree-entry{width:100%;min-width:0;height:24px!important;min-height:24px!important;display:grid!important;grid-template-columns:16px minmax(0,1fr) auto!important;align-items:center!important;gap:5px!important;padding:0!important;border-radius:0!important;background:transparent!important;color:inherit;cursor:pointer}.side-panel .resource-tree-entry.is-disabled{opacity:.68;cursor:not-allowed}.side-panel .resource-tree-name,.side-panel .MuiTreeItem-label .MuiTypography-body2{min-width:0;overflow:hidden;color:inherit;font-size:12px!important;font-weight:500!important;line-height:24px!important;text-overflow:ellipsis;white-space:nowrap}.side-panel .resource-tree-node-checked>.MuiTreeItem-content,.side-panel .resource-tree-node-checked>.MuiTreeItem-content:hover,.side-panel .resource-tree-node-checked>.MuiTreeItem-content.Mui-focused,.side-panel .resource-tree-node-checked>.MuiTreeItem-content.Mui-focused:hover{background:#f59e0b24!important}.side-panel .resource-tree-node-selected.resource-tree-node-checked>.MuiTreeItem-content,.side-panel .resource-tree-node-selected.resource-tree-node-checked>.MuiTreeItem-content:hover{background:linear-gradient(#f59e0b1f,#f59e0b1f),var(--bg-active)!important}.side-panel .resource-tree-row-action{width:18px;height:18px;padding:0!important;margin-right:4px;color:var(--text-muted);opacity:0;transition:opacity .12s ease-out,color .12s ease-out}.side-panel .resource-tree-row-action svg{width:14px;height:14px}.side-panel .resource-tree-entry:hover .resource-tree-row-action,.side-panel .Mui-focused>.MuiTreeItem-content .resource-tree-row-action{opacity:.85}.side-panel .resource-tree-row-action:hover{color:#ef4444;opacity:1!important}.side-panel .MuiTreeItem-label .MuiTypography-caption{display:none!important}.side-panel .resource-kind-icon{width:16px;min-width:16px;height:24px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:14px;line-height:1}.side-panel .resource-kind-icon svg{width:14px;height:14px;display:block}.side-panel .resource-kind-icon--composition{color:#c586c0}.side-panel .resource-kind-icon--layer{color:#4ec9b0}.side-panel .resource-kind-icon--fits{color:#d7ba7d}.side-panel .resource-kind-icon--jpeg{color:#75beff}.side-panel .resource-kind-icon--tiff{color:#b5cea8}.side-panel .resource-kind-icon--png,.side-panel .resource-kind-icon--image{color:#4fc1ff}.side-panel .resource-kind-icon--code{color:#ce9178}.side-panel .resource-kind-icon--file{color:var(--text-main)}.side-panel .MuiTreeItem-groupTransition{margin-left:16px!important;border-left:1px solid var(--border-faint)}.side-panel .MuiTreeItem-groupTransition .MuiTreeItem-content{padding-left:2px!important}.side-panel .MuiTreeItem-content[aria-disabled=true],.side-panel .MuiTreeItem-content.Mui-disabled{opacity:.68}
