/* Sheet Nesting alone may render below the viewport size (25% minimum zoom). */
.nesting-drawing { min-width: 0; min-height: 0; }
.nest-view-controls { display:flex; align-items:center; min-height:42px; margin:6px 0; padding:5px 8px; background:#fff; border:1px solid #bdc8d5; border-radius:5px; }
.nest-view-controls .zoom-tools { flex-wrap:wrap; }
.workflow .artwork-actions { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; }
.workflow .artwork-actions button { width:100%; }
.workflow .artwork-actions #abortLayout,
.workflow .artwork-actions .layout-progress { grid-column:1 / -1; }
.workflow .artwork-actions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.workflow .artwork-actions #openDxf { grid-column:1; grid-row:1; }
.workflow .artwork-actions #settingsButton { grid-column:2; grid-row:1; min-width:0; padding:4px 7px; text-align:center; }
.workflow .artwork-actions #performLayout { grid-column:1; grid-row:2; }
.workflow .artwork-actions #abortLayout { grid-column:2; grid-row:2; color:#b42318; }
.workflow .artwork-actions #openDxf,
.workflow .artwork-actions #settingsButton,
.workflow .artwork-actions #abortLayout,
.workflow .corrections .button-grid button { border:1px solid #6f84a3; }
.workflow .corrections .button-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.workflow .corrections .button-grid button { width:100%; text-align:center; }
.workflow .manual-corrections-info { display:inline-grid; place-items:center; width:30px; height:30px; min-height:30px!important; margin-left:6px; padding:0!important; border:1px solid #6f84a3!important; border-radius:50%!important; font-weight:700; line-height:1; vertical-align:middle; }
.manual-corrections-help { position:absolute; z-index:10; width:min(280px,calc(100vw - 48px)); margin:34px 0 0 -30px; padding:8px 10px; border:1px solid #6f84a3; border-radius:6px; background:#fff; color:#172033; box-shadow:0 5px 18px #0e172e33; font-size:12px; font-weight:400; line-height:1.4; text-transform:none; letter-spacing:normal; }
.desktop-shell > .workflow-tabs { grid-column:1 / -1; grid-row:1; width:100%; height:64px; align-items:center; gap:5px; padding:7px 10px 0; background:#fff; border:1px solid #c9d4e3; border-bottom:1px solid #bdc8d5; border-radius:8px 8px 0 0; overflow-x:auto; }
.desktop-shell > .workflow-tabs button { height:50px; padding:0 14px; border:0; border-radius:7px 7px 0 0; color:#66758b; font-size:19.2px; flex:0 0 auto; }
.desktop-shell > .workflow-tabs button.active { color:#1f5ceb; background:#eaf2ff; border-bottom:3px solid #1f5ceb; font-weight:700; }
.zoom-tools output { padding:4px 8px; border:1px solid #aeb9c7; border-radius:999px; background:#f7f9fb; font-weight:700; }
.autosave-status { display:inline-flex; align-items:center; min-height:27px; padding:3px 8px; border:1px solid #58a56d; border-radius:999px; background:#e9f8ec; color:#277d3c; font-size:12px; font-weight:700; }
.autosave-status[hidden] { display:none; }
.artwork-actions #performLayout { background:#1F5CEB; color:#fff; border-color:#1F5CEB; font-weight:700; }
.corrections .button-grid button { min-height:30px; padding:4px 8px; }
/* The tab strip spans the complete application; no third grid column remains after
   relocating the existing Job Summary below the workspace. */
.desktop-shell,
.desktop-shell.led-summary-relocated { grid-template-columns:minmax(250px,var(--left)) minmax(0,1fr); grid-template-rows:64px minmax(0,1fr); align-items:stretch; }
.desktop-shell > .workflow { grid-column:1; grid-row:2; min-height:0; }
.desktop-shell > .workspace { grid-column:2; grid-row:2; min-width:0; min-height:0; display:flex; flex-direction:column; }
/* Keep the canvas large.  The summary follows it in the workspace scroll flow,
   so populated summary rows cannot consume the canvas's allocated height. */
.desktop-shell.led-active .workspace { overflow-y:auto; overflow-x:hidden; }
.desktop-shell.led-active .workspace-panel { flex:0 0 auto; min-height:clamp(520px,calc(100vh - 205px),900px); }
.desktop-shell.led-active .workspace-panel .canvas-viewport { height:clamp(470px,calc(100vh - 290px),820px); min-height:470px; }
/* app.css keeps generic drawings at least viewport-size for other tabs.  LED
   Layout intentionally supports 25% artwork, so only this SVG may shrink. */
.desktop-shell.led-active #ledCanvas { min-width:0; min-height:0; }
/* Owner LED Layout structure: compact lavender control rail and a single,
   wide production column.  These rules apply only while LED Layout is active. */
.desktop-shell.led-active { grid-template-columns:minmax(210px,232px) minmax(0,1fr); }
.desktop-shell.led-active > .workflow { overflow-y:auto; overflow-x:hidden; padding:10px; }
.desktop-shell.led-active > .workflow fieldset,
.desktop-shell.led-active > .workflow .artwork-box { margin:0 0 10px; padding:10px; border:1px solid #c8b7e6; border-radius:8px; background:#f3edff; }
.desktop-shell.led-active > .workflow .artwork-box { display:block; }
.desktop-shell.led-active > .workflow legend { color:#58477b; }
.desktop-shell.led-active .job-identity { display:grid; gap:3px; margin-bottom:8px; font-size:12px; color:#4c4162; }
.desktop-shell.led-active .led-family-card p { margin:0; font-size:12px; line-height:1.4; }
.desktop-shell.led-active .led-family-actions { display:grid; gap:6px; }
.desktop-shell.led-active .led-family-actions button { width:100%; min-height:31px; padding:5px 7px; border:1px solid #8b77b8; border-radius:5px; background:#fff; color:#3e3061; font-size:11px; text-align:left; }
.header-file-actions { display:flex; align-items:center; gap:7px; }
.header-file-actions > button,
.header-file-actions > .file-button { min-height:34px; padding:6px 10px; border:1px solid #4e648f; border-radius:6px; background:#182542; color:#fff; }
.header-file-actions > .file-button:hover,
.header-file-actions > button:hover { background:#23385f; border-color:#7794cc; }
.desktop-shell.led-active .compact-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:7px; min-height:56px; padding:8px 10px; }
.desktop-shell.led-active .workspace-actions { display:flex; flex:1 1 560px; flex-wrap:wrap; align-items:center; gap:6px; }
.desktop-shell.led-active .workspace-actions > button,
.desktop-shell.led-active .workspace-actions > .file-button,
.desktop-shell.led-active .workspace-actions > .button-link { min-height:34px; border:1px solid #6f84a3; border-radius:6px; background:#fff; color:#18263a; padding:6px 10px; }
.desktop-shell.led-active .workspace-actions #performLayout { background:#1F5CEB; border-color:#1F5CEB; color:#fff; font-weight:700; }
.desktop-shell.led-active .workspace-actions #abortLayout { color:#b42318; }
.desktop-shell.led-active .workspace-actions #settingsButton { color:#18263a; }
.desktop-shell.led-active .workspace-actions #ledBundleExport.is-disabled { opacity:.45; cursor:not-allowed; pointer-events:auto; }
.desktop-shell.led-active .led-canvas-control-row { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:38px; padding:0 0 8px; }
.desktop-shell.led-active .led-canvas-controls { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.desktop-shell.led-active .led-canvas-controls .zoom-tools { display:flex; align-items:center; gap:5px; }
@media(max-width:760px){.desktop-shell.led-active .led-canvas-control-row{align-items:flex-start;flex-direction:column}.desktop-shell.led-active .led-canvas-controls{justify-content:flex-start}}
.desktop-shell.led-active .layout-progress-host { min-height:0; padding:0 10px; background:#fff; }
.desktop-shell.led-active .layout-progress-host .layout-progress { width:min(360px,100%); height:8px; margin:0 0 6px; }
.desktop-shell.led-active .workspace-panel { border-top:1px solid var(--border); }
@media(max-width:760px){
  .desktop-shell,.desktop-shell.led-summary-relocated { grid-template-columns:1fr; grid-template-rows:auto auto auto; height:auto; }
  .desktop-shell > .workflow-tabs { grid-column:1; grid-row:1; }
  .desktop-shell > .workflow { grid-column:1; grid-row:2; }
  .desktop-shell > .workspace { grid-column:1; grid-row:3; }
}

/* LED canvas viewport allocation: keep the working surface in the remaining workspace row. */
.desktop-shell.led-active .workspace { display:grid; grid-template-rows:auto auto minmax(0,1fr) auto auto auto; min-height:0; overflow:hidden; }
.desktop-shell.led-active .workspace-panel { display:flex; flex-direction:column; min-height:0; overflow:hidden; }
.desktop-shell.led-active .workspace-panel .canvas-viewport { flex:1 1 auto; height:auto; min-height:0; }


/* Keep LED workspace information in state without consuming the visual working area. */
.desktop-shell.led-active .canvas-footer,
.desktop-shell.led-active .status-bar,
.desktop-shell.led-active .warnings { display:none; }
