/* Workbench roles use the shared palette in research-ui.css: neutral structure, teal actions, semantic status. */
:root{--navy:var(--color-text-primary);--teal:var(--color-action);--line:var(--color-border);--muted:var(--color-text-secondary);--bg:var(--color-surface-canvas)}
body{background:var(--bg);color:var(--color-text-primary);font-size:14px}
h1,h2,h3{color:var(--color-text-heading)}h1{font-size:25px;letter-spacing:0}
button,input,select,textarea{font:inherit}button{border-radius:4px;transition:background .15s,border-color .15s;color:var(--color-text-primary)}
button:active:not(:disabled){transform:translateY(1px)}
button.primary{background:var(--color-action);border-color:var(--color-action);color:white;box-shadow:none}
button.primary:hover{background:var(--color-action-hover);border-color:var(--color-action-hover)}
button.flat{color:var(--color-action);text-decoration:underline;text-underline-offset:3px;background:transparent}
button:disabled{cursor:not-allowed;opacity:.5}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-action);outline-offset:3px}
.app-topbar{height:64px;min-height:64px;padding:0 22px;border-bottom:1px solid var(--color-border)}
.app-brand{width:190px}.app-brand .brand-mark{border-radius:4px;background:var(--color-text-primary)}
.app-brand small{font-size:11px;letter-spacing:0;color:var(--color-text-secondary)}.app-brand b{font-size:19px}
.project-trigger-text small{font-size:11px;color:var(--color-text-secondary)}.project-trigger-text strong{font-size:14px}
.app-topbar .identity{font-size:12px;max-width:190px}.app-topbar .demo-tag{font-size:11px;color:var(--color-text-secondary)}
.app-shell{grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 64px)}
.project-sidebar{top:64px;height:calc(100vh - 64px);background:var(--color-surface-muted);padding:16px 12px;scrollbar-width:thin}
.sidebar-project{padding:0 10px 8px}.sidebar-caption{font-size:12px;letter-spacing:0;color:var(--color-text-secondary)}
.nav-group{margin-top:13px}.nav-group h2,.sidebar-group-label{font-size:12px;font-weight:600;color:var(--color-text-secondary);letter-spacing:0;padding:0 10px;margin:0 0 5px}
.sidebar-link{font-size:13px;line-height:1.45;padding:7px 10px;margin:0;border-radius:3px;gap:9px;color:var(--color-text-primary)}
.nav-group .sidebar-link .icon{display:none}.nav-group .sidebar-link{padding-left:20px}
.sidebar-link:hover{background:var(--color-surface-hover)}.sidebar-link.active{background:var(--color-action-soft);color:var(--color-action);font-weight:700}
.sidebar-link.active:before{display:none}.sidebar-link.active .icon{color:inherit}
.platform-nav{padding-top:14px;margin-top:17px;border-color:var(--color-border)}.sidebar-footnote{padding-top:18px;font-size:11px;color:var(--color-text-secondary)}.sidebar-footnote small{font-size:10px;color:var(--color-text-secondary)}
.shell-content .page{padding:24px 28px;max-width:1800px}.page-head{margin-bottom:22px;gap:14px}.eyebrow{font-size:12px;letter-spacing:0;color:var(--color-text-secondary)}.subtitle{font-size:14px;color:var(--color-text-secondary);margin-top:6px}
.card{border:1px solid var(--line);border-radius:4px;box-shadow:none;background:#fff;animation:none}
.card-heading{padding:15px 18px;border-color:var(--color-border)}.card-heading h2{font-size:16px;color:var(--color-text-primary);gap:8px}.card-heading h2>.icon{display:none}.card-body{padding:18px}
.badge{border-radius:3px;font-size:12px;font-weight:400}.badge.neutral{background:var(--color-surface-muted);color:var(--color-text-secondary)}.badge.ok{background:var(--color-success-soft);color:var(--color-success)}.badge.warn{background:var(--color-warning-soft);color:var(--color-warning)}.badge.bad{background:var(--color-danger-soft);color:var(--color-danger)}
.meta-list{font-size:13px}.meta-list>div{gap:18px}.meta-list>div>span:first-child{color:var(--color-text-secondary)}.meta-list>div>span:last-child{color:var(--color-text-primary)}
.overview-top{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:20px;align-items:start}.overview-bottom{gap:20px}
.overview-top .empty,.batch-overview .empty{padding:22px 18px;text-align:left;min-height:0}
.overview-top .empty>.icon,.batch-overview .empty>.icon{display:none}
.empty h3{font-size:15px;margin:0 0 8px}.empty p{font-size:13px;line-height:1.7;color:var(--color-text-secondary);margin:0 0 14px}
.todo-panel .empty button,.batch-overview .empty button{background:white;color:var(--color-action);border:1px solid var(--color-border-control);border-radius:4px}
.project-summary h2{font-size:17px}.summary-purpose{font-size:13px;color:var(--color-text-secondary);line-height:1.8}.quiet-empty{font-size:13px;line-height:1.8;color:var(--color-text-secondary)}
.todo-object{border-radius:0!important;border:0!important;border-bottom:1px solid var(--color-border)!important;padding:13px 0!important;background:transparent!important;color:var(--color-action)!important;text-align:left}
.todo-object strong{font-size:14px;color:var(--color-action);text-decoration:underline;text-underline-offset:3px}.todo-object small{font-size:12px;color:var(--color-text-secondary)}.todo-object:hover{background:var(--color-surface-hover)!important}
.empty .todo-object{padding:8px 12px!important;border:1px solid var(--color-border-control)!important;text-decoration:none;margin-top:0}
.batch-overview .empty{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:8px 0}.batch-overview .empty h3{margin:0}.batch-overview .empty p{margin:0;flex:1}.batch-overview .empty button{margin:0}
.project-sidebar .sidebar-link{min-height:30px;padding-top:5px;padding-bottom:5px}.nav-group{margin-top:10px}
.sidebar-project{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 0 12px 10px}
.sidebar-collapse-toggle{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:5px;background:transparent;border:0;border-radius:4px;flex-shrink:0}
.sidebar-collapse-toggle:hover{background:var(--color-surface-hover)}.sidebar-collapse-toggle .icon{width:17px;height:17px;transform:rotate(180deg)}
.nav-group .sidebar-link .icon{display:block}.nav-group .sidebar-link{padding-left:10px}
@media(min-width:761px){
  .app-shell.sidebar-collapsed{grid-template-columns:60px minmax(0,1fr)}
  .sidebar-collapsed .project-sidebar{padding:14px 8px;overflow-x:hidden}
  .sidebar-collapsed .sidebar-project{padding:0 0 12px;justify-content:center}
  .sidebar-collapsed .sidebar-collapse-toggle .icon{transform:none}
  .sidebar-collapsed .sidebar-caption,.sidebar-collapsed .nav-group h2,.sidebar-collapsed .sidebar-footnote,.sidebar-collapsed .sidebar-link>span{display:none}
  .sidebar-collapsed .sidebar-link{justify-content:center;padding:8px;width:44px;min-height:36px}
  .sidebar-collapsed .sidebar-link .icon{width:18px;height:18px;flex-shrink:0}
  .sidebar-collapsed .nav-group{border-top:1px solid var(--color-border);margin-top:8px;padding-top:8px}
  .sidebar-collapsed .platform-nav{padding-top:0;margin-top:8px;border:0}
  .sidebar-collapsed .shell-content .page{max-width:none}
}
@media(max-width:760px){.sidebar-collapse-toggle{display:none}}
.batch-summary-grid article{border-radius:0;box-shadow:none;background:white}.batch-title h3{font-size:15px}
.pro-overview{margin-top:20px}.pro-progress article{border-left:0;padding-left:0}.pro-progress p{font-size:13px;color:var(--color-text-secondary)}.pro-progress small{color:var(--color-text-secondary)}
.pro-catalog{padding:12px 18px}.pro-method{padding:12px 18px}.pro-chain>div{border-top-color:var(--color-border);background:var(--color-surface-canvas)}.pro-chain small{color:var(--color-text-secondary)}
.pro-task-workspace{grid-template-columns:320px minmax(0,1fr)}.pro-nodes article{background:var(--color-surface-canvas)}.pro-nodes label{font-size:13px}
.draft-status{font-size:13px;color:var(--color-warning);line-height:1.7;margin-top:12px}
.task-summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 20px;margin:-4px 0 18px;padding-bottom:14px;border-bottom:1px solid var(--line);font-size:13px;color:var(--color-text-secondary)}.task-summary strong{font-size:16px;color:var(--color-text-primary)}
.workflow-reference{display:block;margin-top:7px;overflow-wrap:anywhere;font-size:12px;color:var(--color-text-secondary)}
.pro-task-workspace .pro-layer-controls label:has(#pro-layer-select){min-width:220px;flex:2}
.overview-bottom{grid-template-columns:1fr}
@media(max-width:760px){.page-head:has([data-action=pro-canvas]){gap:8px;margin-bottom:12px}.page-head:has([data-action=pro-canvas]) .actions{gap:3px 14px}.page-head:has([data-action=pro-canvas]) .actions button{padding:4px 0;font-size:13px}.task-summary{display:grid;gap:4px;padding-bottom:10px;margin-bottom:12px}.pro-catalog,.pro-method{padding:8px 12px}.pro-task-workspace .pro-layer-controls label:has(#pro-layer-select){flex-basis:100%}}
.pro-detail details summary,.pro-catalog>summary,.pro-method>summary{color:var(--color-text-primary)}.pro-layer-list button{background:var(--color-surface-canvas);color:var(--color-text-primary)}.pro-layer-list button[aria-pressed=true]{background:var(--color-action-soft);border-color:var(--color-action);color:var(--color-action)}
.stat-card{border-radius:4px;box-shadow:none;background:white;border:1px solid var(--line)}.stat-card strong{color:var(--color-text-primary)}.stat-card label{font-size:13px;color:var(--color-text-secondary)}
th{background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:12px}td{font-size:13px}.detail-description{font-size:13px;color:var(--color-text-secondary);line-height:1.8}
.shell-content .footer{font-size:11px;color:var(--color-text-secondary)}.shell-content .footer b{font-weight:400}
#modal{border-radius:6px;border:1px solid var(--color-border)}#modal .modal-head h2{font-size:18px}
#modal.context-panel{margin:0 0 0 auto;width:min(850px,92vw);max-width:92vw;height:100dvh;max-height:100dvh;border-radius:0;border:0;border-left:1px solid var(--color-border);animation:context-enter .18s ease-out}
.context-panel .modal-head{position:sticky;top:0;background:white;z-index:1}.context-panel .modal-actions{position:sticky;bottom:0;background:white}
.related-content .page-head{margin-top:0}.related-content .eyebrow,.related-content .page-head>.actions,.related-content .filters{display:none}.related-content .equipment-grid{grid-template-columns:1fr}.related-content .panel-grid{grid-template-columns:1fr}
@keyframes context-enter{from{transform:translateX(24px);opacity:.5}to{transform:none;opacity:1}}
@media(max-width:1200px){.pro-task-workspace{grid-template-columns:280px minmax(0,1fr)}}
@media(max-width:950px){.overview-top{grid-template-columns:1fr}.shell-content .page{padding:22px 18px}}
@media(max-width:760px){.app-shell{display:block}.app-topbar{padding:0 10px}.app-brand{width:28px}.project-trigger-text strong{font-size:12px}.project-trigger-text small{font-size:10px}.app-topbar .identity{font-size:11px}.project-sidebar{width:240px;top:64px;height:calc(100dvh - 64px)}.shell-content .page{padding:20px 14px}.page-head h1{font-size:23px}.page-head .actions{flex-wrap:wrap}.overview-top,.overview-bottom,.pro-task-workspace{grid-template-columns:1fr}.card-body{padding:15px}.context-panel .modal-body{padding:14px}.related-content .table-wrap{max-width:100%;overflow:auto}#modal.context-panel{width:100vw;max-width:100vw}.app-topbar .demo-tag{display:none}}
@media(prefers-reduced-motion:reduce){#modal.context-panel,button{animation:none;transition:none}}

/* Only first-level entries are shown until a user expands a group. */
.nav-group{margin-top:4px}
.nav-group-children[hidden]{display:none!important}
.nav-group-toggle{font-weight:600}
.nav-group-toggle .nav-group-chevron{margin-left:auto;display:flex;align-items:center}
.nav-group-toggle .nav-group-chevron .icon{width:12px;height:12px;transition:transform .16s ease}
.nav-group-toggle[aria-expanded=true] .nav-group-chevron .icon{transform:rotate(90deg)}
.nav-group-children{margin:3px 0 9px 17px;padding-left:7px;border-left:1px solid var(--color-border)}
.nav-group-children .sidebar-link{font-size:12px;font-weight:400}
@media(min-width:751px){.sidebar-collapsed .nav-group-children{margin-left:0;padding-left:0;border:0}.sidebar-collapsed .nav-group-toggle .nav-group-chevron{display:none}}
@media(prefers-reduced-motion:reduce){.nav-group-toggle .nav-group-chevron .icon{transition:none}}

/* Workflow authoring: palette, canvas and selected-node properties. */
.node-editor{border:1px solid var(--color-border,#d8e0e7);background:var(--color-surface,#fff);margin:16px 0;min-width:0}
.node-toolbar{display:flex;align-items:center;gap:16px;padding:12px 16px;border-bottom:1px solid #d8e0e7;flex-wrap:wrap}.node-toolbar>span{color:#586977;font-size:13px}.node-toolbar .actions{margin-left:auto}
.node-workspace{display:grid;grid-template-columns:170px minmax(260px,1fr) 240px;min-width:0}.node-palette,.node-inspector{padding:16px;background:#f8fafb;min-width:0}.node-palette{border-right:1px solid #d8e0e7}.node-inspector{border-left:1px solid #d8e0e7}.node-palette h3,.node-inspector h3{font-size:15px;margin:0 0 10px}.node-palette p,.node-inspector p{font-size:12px;color:#586977;line-height:1.7}.node-palette h4{font-size:12px;color:#586977;margin:18px 0 6px}.node-palette button{display:block;width:100%;text-align:left;white-space:normal;margin:5px 0;padding:8px;font-size:12px;cursor:grab}.node-palette button:disabled{cursor:default}.node-inspector fieldset{border:0;padding:0;margin:0}.node-inspector label{display:block;font-size:12px;line-height:1.7;margin:12px 0}.node-inspector input:not([type=checkbox]),.node-inspector select{width:100%;min-width:0}.node-inspector .standard-node-fields{padding:0;border:0;background:transparent}.node-inspector .standard-node-label{display:none}
.node-viewport{height:520px;overflow:auto;position:relative;background-color:#f4f7fa;background-image:radial-gradient(#cbd5df 1px,transparent 1px);background-size:20px 20px;touch-action:none}.node-surface{position:relative;transform-origin:0 0}.node-wires{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}.node-wires path{fill:none;stroke:#718b9e;stroke-width:3;pointer-events:stroke;cursor:pointer}.node-wires path:hover,.node-wires path:focus{stroke:#ad5522;stroke-width:6}.node-block{position:absolute;width:190px;min-height:100px;border:1px solid #b9c8d5;background:white;border-radius:8px;padding:10px 14px;box-sizing:border-box}.node-block.selected{border:2px solid #245d9b}.node-title{display:block;text-align:left;border:0;background:transparent;padding:0;font-weight:600;white-space:normal;cursor:move;font-size:13px;width:100%;line-height:1.6;touch-action:none}.node-block>small,.node-block>span{display:block;color:#586977;font-size:11px;margin-top:6px}.node-port{position:absolute!important;top:42px;width:16px!important;height:16px;min-height:0!important;padding:0!important;border:2px solid #245d9b!important;border-radius:50%;background:white;z-index:2}.node-port.input{left:-9px}.node-port.output{right:-9px}.node-port:disabled{opacity:.5}.node-status{padding:10px 16px;font-size:12px;color:#586977;border-top:1px solid #d8e0e7}.node-editor button:focus-visible,.node-viewport:focus-visible{outline:2px solid #245d9b;outline-offset:3px}
.standard-library:has(.node-editor){grid-template-columns:200px minmax(0,1fr)}.standard-library-detail:has(.node-editor)>.card-body{padding:16px}.standard-library .node-workspace{grid-template-columns:145px minmax(200px,1fr) 210px}.standard-library-detail{min-width:0}
@media(max-width:1200px){.node-workspace,.standard-library .node-workspace{grid-template-columns:145px minmax(200px,1fr)}.node-inspector{grid-column:1/-1;border-left:0;border-top:1px solid #d8e0e7}.node-inspector fieldset{display:flex;gap:16px;flex-wrap:wrap}.node-inspector .standard-node-fields{flex:1;min-width:200px}}
@media(max-width:760px){.node-workspace,.standard-library .node-workspace{grid-template-columns:minmax(0,1fr)}.node-palette{border-right:0;border-bottom:1px solid #d8e0e7;display:flex;overflow:auto;gap:12px;padding:12px}.node-palette>h3,.node-palette>p{display:none}.node-palette section{min-width:130px}.node-palette h4{margin:0 0 6px}.node-viewport{height:400px}.node-inspector{grid-column:1}.standard-library:has(.node-editor){grid-template-columns:minmax(0,1fr)}.node-toolbar{padding:10px;gap:8px}.node-toolbar .actions{margin-left:0;flex-wrap:wrap}}
.node-inspector .standard-node-fields{display:block}.node-inspector .standard-node-fields label{display:block;width:100%}.node-inspector .standard-node-fields input{width:100%}
.standard-library:has(.node-editor){display:block}.standard-library:has(.node-editor) .standard-library-list{margin-bottom:16px;display:flex;min-width:0}.standard-library:has(.node-editor) .standard-library-list>.card-body{width:180px;flex-shrink:0}.standard-library:has(.node-editor) .standard-library-list nav{display:flex;overflow:auto;min-width:0}.standard-library:has(.node-editor) .standard-flow-option{min-width:180px;border-bottom:0;border-right:1px solid #d8e0e7}.standard-library .node-workspace{grid-template-columns:160px minmax(240px,1fr) 240px}
@media(max-width:1100px){.standard-library .node-workspace{grid-template-columns:145px minmax(200px,1fr)}.standard-library .node-inspector{grid-column:1/-1;border-left:0;border-top:1px solid #d8e0e7}}
@media(max-width:760px){.standard-library:has(.node-editor) .standard-library-list{display:block}.standard-library:has(.node-editor) .standard-library-list>.card-body{width:auto}.standard-library .node-workspace{grid-template-columns:minmax(0,1fr)}}
/* Keep a generous SVG stroke hit area while drawing a narrow visible connection. */
.node-wires .node-preview{stroke:#245d9b;stroke-width:3;stroke-dasharray:6 4;pointer-events:none}
.node-block{cursor:grab;touch-action:none;user-select:none}.node-block:active{cursor:grabbing}
.node-port{touch-action:none}
.node-wires .node-edge,.node-wires .node-edge:hover,.node-wires .node-edge:focus,.node-wires .node-edge.selected{stroke:transparent;stroke-width:16;pointer-events:stroke}
.node-wires .node-edge-visual{stroke:#718b9e;stroke-width:3;pointer-events:none}.node-wires .node-edge-visual.selected{stroke:#245d9b;stroke-width:5}

/* Final desktop review: shared hierarchy and business context. */
.lifecycle-progress{margin-top:20px}
.lifecycle-progress .card-heading{align-items:flex-start;gap:16px}
.lifecycle-stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.lifecycle-stages article{padding:18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}
.lifecycle-stages .actions{justify-content:space-between;align-items:flex-start}
.lifecycle-stages p{font-size:13px;color:var(--muted);margin:10px 0}
.lifecycle-stages small{display:block;color:var(--muted);margin-bottom:12px}
.lifecycle-stages .todo-object{padding:9px 0;font-size:13px}
.project-blockers{padding:16px 20px}.project-blockers summary{cursor:pointer;font-weight:600}
.project-blockers p{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:13px}
.operation-reason{display:block;font-size:12px;color:var(--muted);max-width:210px;line-height:1.6;margin-top:5px}
.data-catalog .filters{flex-wrap:wrap;align-items:end;gap:12px}
.data-catalog .filters label{display:grid;gap:5px;font-size:12px;min-width:130px}
.data-catalog .filters input{min-width:190px}.data-catalog .secondary{display:block;line-height:1.6}
.data-catalog td{vertical-align:top}.data-catalog td:first-child{min-width:210px;max-width:320px;overflow-wrap:anywhere}
.data-catalog td:last-child{min-width:190px}.data-catalog button.table-action{white-space:nowrap}
.node-workspace.node-readonly{grid-template-columns:minmax(0,1fr) 260px}
.node-readonly .node-block{cursor:pointer}.node-readonly .node-inspector pre{white-space:pre-wrap;overflow-wrap:anywhere}
.page-head>.actions{flex-wrap:wrap;justify-content:flex-end}
.overview-top .empty button,.page-head .actions button{min-height:34px}
.card .quiet-empty{padding:18px 20px;line-height:1.8}
button:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.node-readonly .node-inspector{overflow:auto}
@media(min-width:1700px){.lifecycle-stages{grid-template-columns:repeat(4,minmax(0,1fr))}}

.operation-availability{position:relative;display:inline-flex;vertical-align:middle;max-width:100%}
.operation-availability:focus-visible{outline:2px solid var(--accent,#007983);outline-offset:3px;border-radius:4px}
.operation-availability:hover::after,.operation-availability:focus-visible::after{content:attr(data-reason);position:absolute;z-index:30;top:calc(100% + 6px);left:0;width:max-content;max-width:240px;padding:7px 10px;background:var(--color-text-heading);color:white;border-radius:4px;font-size:12px;line-height:1.5;box-shadow:0 3px 10px #0002;pointer-events:none}
.project-issues-title{font-size:13px;margin:18px 0 8px;color:var(--text,#303c44)}

.lifecycle-entry .meta-list>div{display:grid;grid-template-columns:140px minmax(0,1fr);align-items:start}
.lifecycle-entry .meta-list>div>span:last-child{text-align:left;line-height:1.7}
.node-readonly .node-title{font-size:max(13px,calc(12px / var(--node-scale,1)));line-height:1.5}
.node-readonly .node-block>small,.node-readonly .node-block>span{font-size:max(11px,calc(10px / var(--node-scale,1)))}
.node-workspace.node-readonly+.node-status{display:none}
