/* Workspace V3: rows + always-present icon dock; no floating/split chrome. */
.global-workspace .editor-app,.editor-workspace{overflow:clip;min-height:0}
.canvas-workarea{position:relative;display:flex;flex:1;min-width:0;min-height:0}
.canvas-workarea>.canvas-scroll{width:100%}
.has-modular-inspector>[data-inspector-navigation]{display:none}
.editor-right>.is-modular-inspector{padding:0;overflow:visible;position:relative;min-height:0}
.is-modular-inspector .engine-selected-editor,.is-modular-inspector .engine-selected-element{height:100%;min-height:0;margin:0;padding:0;border:0;display:block}
.is-modular-inspector .engine-selected-editor>section:not(.engine-selected-element),.is-modular-inspector .inspector-utility{display:none}
.inspector-workspace{--workspace-resize-hit-height:10px;--workspace-tab-strip-height:3px;--workspace-tab-border:color-mix(in srgb,var(--line) 85%,var(--app-ink) 15%);--workspace-icon-border:color-mix(in srgb,var(--control-border) 65%,var(--app-ink) 35%);height:100%;min-height:0;display:flex;background:var(--app-surface);font-size:var(--type-editor-control)}
.workspace-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}
.workspace-layout-toolbar{display:flex;align-items:center;gap:var(--space-2);height:var(--workspace-header-height);min-height:var(--workspace-header-height);padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--line);flex:0 0 auto;box-sizing:border-box}
.workspace-selection-summary{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
/* Rail inner width excludes its border. Leave inline room for the native
   vertical scrollbar instead of requiring button width + 16px of padding. */
.workspace-tool-dock{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);width:100%;box-sizing:border-box;padding:var(--space-2) 0;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--page-scroll-color) transparent}
.workspace-tool-dock>.btn{width:var(--workspace-icon-hit-size);height:var(--workspace-icon-hit-size);min-height:var(--workspace-icon-hit-size);padding:0;display:grid;place-items:center;flex:0 0 auto}
html body .inspector-workspace .workspace-tool-dock>.btn{background:var(--app-surface);color:var(--app-ink)}
html body .inspector-workspace .workspace-tool-dock>.btn:hover:not(:disabled,[aria-pressed=true]){background:var(--control-hover)}
html body .inspector-workspace .workspace-tool-dock>.btn[aria-pressed=true]{background:var(--workspace-icon-current);color:var(--app-ink);border-color:var(--workspace-icon-border)}
.inspector-workspace :is(.workspace-icon-dock,.workspace-tool-dock)[hidden]{display:none}
html body .inspector-workspace :is(.workspace-icon-header>.btn,.workspace-layout-toolbar>:is([data-rail-asset],[data-workspace-action=reset],[data-workspace-design-reset])){width:var(--workspace-icon-hit-size);height:var(--workspace-icon-hit-size);min-height:var(--workspace-icon-hit-size);flex:0 0 var(--workspace-icon-hit-size);padding:0;font-size:0;box-sizing:border-box;background:transparent;border:1px solid transparent;color:var(--app-ink)}
html body .inspector-workspace .workspace-layout-toolbar>:is([data-rail-asset],[data-workspace-action=reset],[data-workspace-design-reset]):hover{background:var(--control-hover)}
html body .inspector-workspace .workspace-icon-header>[data-workspace-action=rail-mode][aria-pressed=false]{background:var(--app-surface-subtle);border-color:var(--control-border)}
html body .inspector-workspace .workspace-icon-header>[data-workspace-action=rail-mode][aria-pressed=false]:hover{background:var(--control-hover)}
html body .inspector-workspace .workspace-icon-header>[data-workspace-action=rail-mode][aria-pressed=true]{background:var(--workspace-icon-current);border-color:var(--workspace-icon-border)}
.workspace-rows{display:flex;flex-direction:column;min-height:0;flex:1;overflow:auto;overscroll-behavior:contain;overflow-anchor:none}
.workspace-edit-row{display:flex;flex-direction:column;flex:1 0 132px;min-height:132px;min-width:0;overflow:hidden}
.workspace-edit-row::before{content:'';display:block;flex:0 0 var(--workspace-tab-strip-height);height:var(--workspace-tab-strip-height);background:var(--workspace-tab-idle);pointer-events:none}
.workspace-row-tabs{display:flex;flex:0 0 var(--workspace-tab-height);min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;background:var(--workspace-tab-idle);padding-inline-start:var(--workspace-tab-strip-height);border:0}
html body .inspector-workspace .workspace-row-tabs>.btn{flex:0 0 auto;min-height:var(--workspace-tab-height);height:var(--workspace-tab-height);box-sizing:border-box;padding:0 var(--space-2);border:1px solid var(--workspace-tab-border);border-bottom:0;border-radius:3px 3px 0 0;background:var(--workspace-tab-idle);color:var(--app-muted);font-size:var(--type-editor-control);white-space:nowrap}
/* The previous tab owns each shared edge; retain the original text/hit geometry. */
html body .inspector-workspace .workspace-row-tabs>.btn:not(:first-child){border-left-width:0;padding-left:calc(var(--space-2) + 1px)}
html body .inspector-workspace .workspace-row-tabs>[aria-selected=true]{border-color:var(--workspace-tab-border);background:var(--app-surface);color:var(--app-ink);box-shadow:none}
.workspace-icon-dock>[data-supported=false]{color:var(--app-muted)}
.workspace-row-body{display:flex;flex:1;min-height:0;min-width:0;overflow:hidden;background:var(--app-surface)}
.workspace-group-content{width:100%;height:100%;min-height:0;overflow:auto;overscroll-behavior:contain;overflow-anchor:none;padding:var(--space-3) var(--space-5) var(--space-3) var(--space-2);container-type:inline-size}
@container (max-width:190px){.workspace-panel-content .form-grid{grid-template-columns:minmax(0,1fr)}}
.workspace-panel{min-width:0;border:0;margin:0;padding:0;background:transparent}
.workspace-panel+.workspace-panel{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--line)}
.inspector-workspace :is(.workspace-panel+.workspace-panel,.engine-effect,.engine-property-subgroup+.engine-property-subgroup){border-radius:0}
.workspace-subheading{margin:0 0 var(--space-2);font-size:var(--type-editor-value);font-weight:var(--weight-semibold);line-height:var(--leading-control);color:var(--app-ink)}
.workspace-panel-content>.engine-effect:first-child{border-top:0;padding-top:0}
.workspace-panel-content .engine-muted{overflow-wrap:anywhere}
.workspace-panel-content>.engine-property-subgroup{margin:0;border:0;padding:0}
.workspace-repeat-title,.workspace-repeat-heading,.workspace-staging{display:none!important}
.workspace-icon-rail{width:calc(var(--workspace-icon-hit-size) + 16px);flex:0 0 calc(var(--workspace-icon-hit-size) + 16px);min-height:0;display:flex;flex-direction:column;border-left:1px solid var(--line)}
.workspace-icon-header{height:var(--workspace-header-height);flex:0 0 var(--workspace-header-height);display:flex;align-items:center;justify-content:flex-end;padding:var(--space-1) var(--space-2) var(--space-1) var(--space-1);border-bottom:1px solid var(--line);box-sizing:border-box}
.workspace-icon-dock{width:100%;flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-1);min-height:0;overflow:auto;overscroll-behavior:contain}
html body .inspector-workspace .workspace-icon-dock>.btn{width:var(--workspace-icon-hit-size);height:var(--workspace-icon-hit-size);min-height:var(--workspace-icon-hit-size);flex:0 0 var(--workspace-icon-hit-size);padding:0;display:grid;place-items:center;box-sizing:border-box;border:1px solid transparent;background:transparent;position:relative}
html body .inspector-workspace .workspace-icon-dock>.btn:is(:hover,:focus-visible){border-color:var(--workspace-icon-border)}
.workspace-icon-dock>[data-group-boundary=true]{margin-top:var(--space-2)}
.workspace-icon-dock>[data-group-boundary=true]::before{content:'';position:absolute;left:0;right:0;top:calc(-1 * var(--space-2));border-top:1px solid var(--line);border-radius:0;pointer-events:none}
html body .inspector-workspace [data-workspace-action]:hover{background:var(--control-hover)}
.inspector-workspace{--workspace-icon-pinned:color-mix(in srgb,var(--app-ink) 9%,var(--app-surface));--workspace-icon-current:color-mix(in srgb,var(--app-ink) 21%,var(--app-surface));--workspace-resize-line:color-mix(in srgb,var(--app-ink) 44%,var(--app-surface));--workspace-tab-idle:color-mix(in srgb,var(--app-ink) 12%,var(--app-surface));--workspace-tab-hover:color-mix(in srgb,var(--app-ink) 7%,var(--app-surface))}
html body .inspector-workspace .workspace-icon-dock>[data-state=pinned][data-supported=true]{background:var(--workspace-icon-pinned);color:var(--app-ink)}
html body .inspector-workspace .workspace-icon-dock>[data-state=current][data-supported=true]{background:var(--workspace-icon-current);color:var(--app-ink)}
html body .inspector-workspace .workspace-icon-dock>:is([data-state=unsupported],[data-state=readonly]){background:transparent;color:var(--app-muted)}
html body .inspector-workspace .workspace-row-tabs>[aria-selected=true]:hover{background:var(--app-surface)}
html body .inspector-workspace .workspace-row-tabs>[aria-selected=false]:hover{background:var(--workspace-tab-hover)}
.workspace-popover{position:fixed;z-index:230;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden;background:var(--app-surface);border:1px solid var(--line);box-shadow:0 2px 8px #0001}
.workspace-popover[hidden]{display:none}
.workspace-popover-header{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);flex:0 0 auto;min-height:var(--workspace-tab-height);border-bottom:1px solid var(--line);background:var(--app-surface-subtle)}
.workspace-popover-header>strong{min-width:0;flex:1;font-weight:600}
html body .inspector-workspace .workspace-popover-header>.btn{height:var(--control-dense-height);min-height:var(--control-dense-height);padding:0 var(--space-2);font-size:var(--type-editor-helper)}
.workspace-popover>.workspace-group-content{height:auto;flex:1;min-height:0}
/* History is independent chrome; commands and confirmation stay with App. */
.workspace-history-content{min-width:0}
.workspace-history-content .history-section+.history-section{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--line)}
.workspace-history-content .history-section>h4{margin:0 0 var(--space-2);font-size:var(--type-editor-helper);font-weight:600;color:var(--app-muted)}
.workspace-history-content .history-current-actions{display:flex;gap:var(--space-2)}
.workspace-history-content .history-current-actions>.btn{flex:1;min-width:0}
.workspace-history-content .history-scope{margin:var(--space-2) 0 0;font-size:var(--type-editor-helper);line-height:1.5;color:var(--app-muted)}
.workspace-history-content .version-row{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3) 0;border:0}
.workspace-history-content .version-row+.version-row{border-top:1px solid var(--line)}
.workspace-history-content .version-info{min-width:0;flex:1 0 100%}
.workspace-history-content .version-info strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--type-editor-control);font-weight:600}
.workspace-history-content .version-info small{font-size:var(--type-editor-helper)}
.workspace-history-content .version-actions{display:flex;align-items:flex-start;justify-content:flex-end;gap:var(--space-1);flex:1;min-width:0}
.workspace-history-content .version-actions .workspace-action-menu>div{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-1) 0}
.workspace-history-content .history-empty{margin:0;font-size:var(--type-editor-helper);color:var(--app-muted)}
.workspace-history-content .version-management>.btn{width:100%;white-space:normal}
.workspace-empty{margin:0;padding:0;font-size:var(--type-editor-helper);line-height:1.5;color:var(--app-muted)}
.workspace-status-bar{display:none;align-items:center;gap:var(--space-1);flex:0 0 auto;min-height:28px;min-width:0;overflow:hidden;padding:var(--space-1) var(--space-2);border-top:1px solid var(--line)}
.workspace-status-bar:has([data-save-status=error],[data-save-recovery]){display:flex}
.workspace-status-bar>[data-save-state]{margin:0;min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--type-editor-meta)}
.workspace-layout-notice:empty{display:none}
.workspace-layout-notice{font-size:var(--type-editor-helper);color:var(--app-muted);padding:var(--space-1)}
.workspace-layout-notice[data-drag-hint]{position:fixed;z-index:253;max-width:min(300px,calc(100vw - 16px));pointer-events:none;background:var(--app-surface);border:1px solid var(--control-border);padding:var(--space-1) var(--space-2)}
.workspace-row-gap{height:0;flex:0 0 0;position:relative}
html body .inspector-workspace .workspace-row-resize{display:block;position:relative;flex:0 0 var(--workspace-resize-hit-height);height:var(--workspace-resize-hit-height);min-height:var(--workspace-resize-hit-height);width:100%;padding:0;border:0;border-radius:0;background:transparent;cursor:ns-resize;touch-action:none}
html body .inspector-workspace .workspace-row-resize:is(:hover,:focus-visible,:active,.is-workspace-dragging){background:transparent;opacity:1}
.workspace-row-resize::after{content:'';position:absolute;left:0;width:100%;top:calc(50% - .5px);height:1px;border-top:1px dashed var(--workspace-resize-line);box-sizing:border-box;pointer-events:none}
.workspace-row-resize:is(:hover,:focus-visible,:active,.is-workspace-dragging)::after{border-color:var(--app-muted)}
.workspace-row-tabs>.btn,.workspace-icon-dock>.btn{touch-action:none;user-select:none}
.workspace-drag-active{user-select:none}
.is-workspace-dragging{opacity:.45}
.workspace-row-tabs>.is-workspace-dragging{flex-basis:0!important;width:0;min-width:0!important;padding:0!important;border:0!important;visibility:hidden;overflow:hidden}
.inspector-workspace{--workspace-drop-line:color-mix(in srgb,var(--app-ink) 64%,var(--app-surface));--workspace-drop-invalid:color-mix(in srgb,var(--app-ink) 24%,var(--app-surface));--workspace-drop-slot:color-mix(in srgb,var(--app-ink) 6%,var(--app-surface))}
.workspace-tab-placeholder{flex:0 0 auto;height:var(--workspace-tab-height);background:var(--workspace-drop-slot);box-shadow:inset 0 0 0 1px var(--workspace-drop-line);pointer-events:none}
.workspace-drag-ghost{position:fixed;left:0;top:0;z-index:251;pointer-events:none;display:flex;align-items:center;justify-content:center;white-space:nowrap;background:var(--app-surface);color:var(--app-ink);border:1px solid var(--control-border);box-shadow:0 2px 8px #0002;font-size:var(--type-editor-control);opacity:.95;box-sizing:border-box}
.workspace-drag-ghost[hidden]{display:none}
.workspace-drop-preview{position:fixed;pointer-events:none;z-index:252;background:var(--workspace-drop-line)}
.workspace-drop-preview[hidden]{display:none}
.workspace-drop-preview[data-valid=false]{background:var(--workspace-drop-invalid)}
.workspace-common-actions{display:block;flex:0 0 auto;min-width:0;padding:var(--space-1) var(--space-2);border-top:1px solid var(--line);background:var(--app-surface-subtle)}
.workspace-common-actions>.engine-add-element{margin:0;padding:0;border:0;min-width:0}
.workspace-common-actions>.engine-add-element .field{margin:0}
.workspace-common-actions:empty{display:none}
.workspace-panel-content>.engine-selected-actions{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:var(--space-3)}
.workspace-panel-content>.engine-selected-actions>.btn{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.workspace-action-menu{position:relative}
.workspace-action-menu>summary{list-style:none;cursor:pointer;padding:var(--space-1) var(--space-2);border:1px solid var(--control-border);border-radius:var(--radius-single);font-size:var(--type-editor-control);line-height:24px;background:var(--app-surface)}
.workspace-action-menu>summary::-webkit-details-marker{display:none}
.workspace-action-menu>summary:hover{background:var(--control-hover)}
.workspace-action-menu[open]>summary{background:var(--app-accent-soft);color:var(--app-accent)}
/* Shared control surface, without changing numeric sessions or canonical fields. */
.inspector-workspace .table-count-controls{min-width:0;max-width:100%}
.inspector-workspace .table-count-controls .form-grid>.btn{width:100%;min-width:0;padding-inline:var(--space-1)}
.inspector-workspace [data-table-template-controls]{display:grid;gap:var(--space-1);min-width:0;margin-block:var(--space-2)}
.inspector-workspace [data-table-template-controls]>:is(h5,p){margin:0}
.inspector-workspace [data-table-template-controls] .table-design-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-2)}
.inspector-workspace [data-table-template-controls] .field{min-width:0;margin:0}
.inspector-workspace [data-table-template-controls] select{width:100%}
.inspector-workspace [data-table-design-preview]{height:60px;min-width:0;overflow:hidden}
.inspector-workspace [data-table-edit-help]{margin-block:var(--space-2);font-size:var(--type-editor-helper);color:var(--control-text)}
.inspector-workspace [data-table-edit-help]>p{margin:var(--space-1) 0 0}
.inspector-workspace .table-count-controls>.status:empty{display:none}
.inspector-workspace .engine-property-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:0;border:0;background:transparent;min-height:calc(var(--control-dense-height) - 4px)}
.inspector-workspace :is(h4,h5,.engine-property-label){background:transparent;border:0;box-shadow:none}
html body .inspector-workspace input:not([type=checkbox],[type=radio],[type=range],[type=color]),html body .inspector-workspace select{height:var(--control-compact-height);min-height:var(--control-compact-height);min-width:0;padding:var(--space-1) var(--space-2);box-sizing:border-box}
html body .inspector-workspace textarea{min-height:64px;padding:var(--space-2)}

.inspector-workspace :is(input,select,textarea,button):disabled{opacity:.55;cursor:not-allowed}
.inspector-workspace :is(.engine-input-unit,.input-unit){color:var(--app-muted);font-size:var(--type-editor-helper)}

/* Navigation and toolbar use one shell rhythm; document/service scrolling is untouched. */
.editor-app :is(.panel-tabs,.canvas-toolbar){height:var(--workspace-header-height);min-height:var(--workspace-header-height);align-items:center;box-sizing:border-box}
.editor-app .panel-tabs>button{height:100%}
.editor-app .canvas-toolbar :is(.btn,select){height:var(--control-compact-height);min-height:var(--control-compact-height);display:inline-flex;align-items:center;box-sizing:border-box}
@media print{.inspector-workspace{display:none!important}}
.workspace-group-content>.workspace-panel:first-of-type:last-of-type>.workspace-subheading{display:none}
/* Leave Canvas space beside the existing mobile Inspector sheet for its Popover. */
@media(max-width:1000px){.global-workspace .editor-right.has-modular-inspector{left:auto;width:min(360px,60vw)}}

/* Keep last live fields readable while the existing App inert policy blocks edits. */
.workspace-group-content>.workspace-feature-outline{margin:var(--space-3) 0 0;padding:0;color:var(--app-muted);font-size:var(--type-editor-helper);line-height:1.5;list-style:none}
.workspace-panel-content .engine-property-heading :is(h4,h5){margin:0;font-size:var(--type-editor-helper);font-weight:600;line-height:1.5}
.workspace-panel-content .engine-property-heading{margin:0 0 var(--space-2)}
.workspace-panel-content .engine-property-heading .engine-toggle{margin-left:auto;flex:0 0 auto}
.workspace-panel-content .engine-surface-media-action{display:block;width:100%;height:var(--control-compact-height);min-height:var(--control-compact-height);box-sizing:border-box;padding:var(--space-1) var(--space-2);border:1px solid var(--control-border);font-size:var(--type-editor-control)}
.workspace-panel-content>.engine-muted{margin:0;line-height:1.5}
html body .inspector-workspace .workspace-group-content[data-readonly=true] :is(input,textarea,select,button){cursor:default;background:var(--app-surface-subtle);border-color:var(--line)}

/* Suspend outgoing target controls only while current properties are being rebuilt. */
[data-inspector-stale=true] :is(.workspace-panel:not([data-workspace-panel=tools],[data-workspace-panel=history]),.engine-header-actions){display:none!important}

[data-inspector-stale=true] .workspace-common-actions>:not(.engine-add-element){display:none!important}

/* Viewport chrome: independent of document scroll/zoom and outside the Inspector. */
.canvas-workarea>.canvas-editor-mode{position:absolute;right:16px;bottom:16px;z-index:2;display:flex;overflow:hidden;border:1px solid var(--control-border);border-radius:4px;background:var(--app-surface)}
.canvas-editor-mode>button{border:0;border-radius:0;background:transparent;color:var(--app-muted);font-family:inherit;font-size:11px;font-weight:500;line-height:1.2;min-height:28px;min-width:44px;padding:0 10px;cursor:pointer}
.canvas-editor-mode>button+button{border-left:1px solid var(--control-border)}
.canvas-editor-mode>button[aria-pressed=true]{background:var(--app-ink);color:var(--app-surface)}
.canvas-editor-mode>button:focus-visible{outline:2px solid var(--app-ink);outline-offset:-3px}
.canvas-editor-mode>button:disabled{cursor:default;opacity:.65}

/* Personal presentation only; authority and button handlers remain Lease-owned. */
.canvas-editor-mode>button{font-size:calc(11px * var(--app-ui-scale,1));min-height:max(28px,calc(28px * var(--app-ui-scale,1)))}
:root[data-editor-mode-design="segmented"] .canvas-editor-mode{border-radius:999px;padding:2px;gap:2px;background:var(--app-surface-subtle)}
:root[data-editor-mode-design="segmented"] .canvas-editor-mode>button{border:0;border-radius:999px}
:root[data-editor-mode-design="segmented"] .canvas-editor-mode>button[aria-pressed=true]{background:var(--app-surface);color:var(--app-ink);font-weight:600}
:root[data-editor-mode-design="minimal"] .canvas-editor-mode{border-color:transparent;background:transparent;overflow:visible}
:root[data-editor-mode-design="minimal"] .canvas-editor-mode>button{border:0;border-radius:4px;background:transparent}
:root[data-editor-mode-design="minimal"] .canvas-editor-mode>button[aria-pressed=true]{color:var(--app-ink);font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* Table captions use the same group-to-heading and heading-to-field rhythm. */
.inspector-workspace [data-table-cell-style-controls]>:is(h5,h6){margin:var(--control-group-gap) 0 var(--space-2);font-size:var(--type-editor-helper);font-weight:600;line-height:1.5}
.inspector-workspace [data-table-cell-style-controls]>:is(h5,h6):first-child{margin-top:0}
