/* CNC page density and workspace layout. Original controls and native console geometry remain intact. */
.cnc-layout-disclosure {
  min-width: 0;
  align-self: start;
  border: 1px solid var(--line);
  border-radius: var(--radius, 6px);
  background: var(--surface);
}
.cnc-layout-disclosure[hidden] { display: none; }
.cnc-layout-disclosure > summary {
  min-height: 44px;
  padding: 10px 13px;
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--ink);
  cursor: pointer;
  list-style: none;
}
.cnc-layout-disclosure > summary::-webkit-details-marker { display: none; }
.cnc-layout-disclosure > summary::before {
  content: "";
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg);
}
.cnc-layout-disclosure[open] > summary::before { transform: rotate(45deg); }
.cnc-layout-disclosure[open] > summary { border-bottom: 1px solid var(--line); }
.cnc-layout-disclosure > summary strong { font-size: 12px; font-weight: 650; }
.cnc-layout-disclosure-hint { margin-left: auto; color: var(--muted); font-size: 11px; }
.cnc-layout-disclosure > summary:hover { background: var(--surface-soft); }
.cnc-layout-disclosure > summary:focus-visible,
.cnc-layout-text-details > summary:focus-visible,
.cnc-layout-cam-views button:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.cnc-layout-disclosure > .surface { border: 0; box-shadow: none; background: transparent; }

/* Target selection stays visible; less frequent device setup has explicit entries. */
#page-cnc-parameters { gap: 10px; }
#page-cnc-parameters .cnc-parameter-top-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
#page-cnc-parameters .cnc-parameter-device-panel {
  grid-column: 1 / -1;
  min-height: 0;
  padding: 10px 14px;
  display: grid;
  grid-template-columns: minmax(120px, .55fr) minmax(220px, 1fr) minmax(180px, .85fr) auto;
  align-items: center;
  gap: 12px;
}
#page-cnc-parameters .cnc-parameter-device-panel > .section-heading { display: grid; align-content: center; gap: 3px; }
#page-cnc-parameters .cnc-parameter-device-panel > .section-heading h3 { font-size: 13px; }
#page-cnc-parameters .cnc-parameter-device-select { grid-template-columns: auto minmax(0, 1fr); gap: 8px; }
#page-cnc-parameters #cncParameterDeviceFacts { min-height: 0; padding: 7px 10px; gap: 2px 8px; }
#page-cnc-parameters .cnc-parameter-permission-panel,
#page-cnc-parameters .cnc-boot-image-panel { min-height: 0; padding: 13px; gap: 11px; }
#page-cnc-parameters .cnc-parameter-permission-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#page-cnc-parameters .cnc-parameter-permission-current { min-height: 48px; }
#page-cnc-parameters .cnc-parameter-filterbar { padding: 10px 12px; gap: 10px; }
#page-cnc-parameters .cnc-parameter-filterbar .toolbar-controls { flex: 1 1 540px; gap: 8px; }
#page-cnc-parameters .cnc-parameter-batchbar { min-height: 48px; padding: 8px 12px; gap: 10px; }
#page-cnc-parameters .cnc-parameter-groups { min-height: 220px; padding: 10px; gap: 10px; background: var(--surface-soft); }
#page-cnc-parameters .cnc-parameter-pagination { min-height: 42px; }

/* Compact numerical summaries, including small screens. */
#page-cnc-tools,
#page-cnc-diagnostics,
#page-cnc-updates,
#page-cnc-control { gap: 12px; }
#page-cnc-tools .cnc-tool-metrics,
#page-cnc-updates .cnc-update-metrics,
#page-cnc-diagnostics .cnc-diagnostics-live { gap: 8px; }
#page-cnc-tools .cnc-tool-metrics,
#page-cnc-updates .cnc-update-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
#page-cnc-tools .cnc-tool-metrics > div,
#page-cnc-updates .cnc-update-metrics > div,
#page-cnc-diagnostics .cnc-diagnostics-live > div { min-height: 68px; padding: 10px 13px; }
#page-cnc-tools .cnc-tool-metrics strong,
#page-cnc-updates .cnc-update-metrics strong,
#page-cnc-diagnostics .cnc-diagnostics-live strong { margin-top: 4px; font-size: 22px; line-height: 1.15; }
#page-cnc-tools .cnc-tool-metrics > div::before,
#page-cnc-diagnostics .cnc-diagnostics-live > div::before { width: 2px; background: var(--accent); }
#page-cnc-tools .cnc-tool-metrics > .is-warning::before { background: var(--warning); }
#page-cnc-tools .cnc-tool-filterbar { padding: 10px 12px; gap: 8px; grid-template-columns: minmax(180px, 1fr) minmax(150px, 230px) minmax(150px, 210px); }
#page-cnc-tools .cnc-tool-filterbar > * { min-width: 0; width: 100%; }
#page-cnc-tools .table-scroll { max-height: max(300px, calc(100dvh - 330px)); }

#page-cnc-diagnostics .cnc-diagnostics-toolbar .toolbar-controls { flex-wrap: wrap; }
#page-cnc-diagnostics .cnc-diagnostics-live { grid-template-columns: repeat(6, minmax(0, 1fr)); }
#page-cnc-diagnostics .cnc-diagnostics-live small { right: 10px; bottom: 11px; }
#page-cnc-diagnostics [data-diagnostic-panel="overview"] { gap: 12px; }
#page-cnc-diagnostics .cnc-diagnostics-grid { grid-template-columns: minmax(270px, .85fr) minmax(340px, 1.3fr); gap: 12px; }
#page-cnc-diagnostics .cnc-predictive-panel,
#page-cnc-diagnostics .cnc-trajectory-panel { padding: 14px; }
#page-cnc-diagnostics .cnc-alarm-log-panel > .section-heading { min-height: 42px; padding: 10px 14px; }
#page-cnc-diagnostics .cnc-alarm-log-panel .table-scroll { max-height: 250px; }
#page-cnc-diagnostics .cnc-alarm-log-panel .table-empty { min-height: 80px; padding: 24px 16px; }
#page-cnc-diagnostics .cnc-alarm-log-panel table { min-width: 600px; }
#page-cnc-diagnostics .cnc-io-diagnostic-item { min-height: 58px; }
#page-cnc-diagnostics .cnc-io-diagnostic-item small { white-space: normal; overflow-wrap: anywhere; }

#page-cnc-updates .cnc-update-actions { position: sticky; top: 0; z-index: 8; padding: 10px 13px; gap: 10px 16px; background: var(--surface-solid, var(--surface)); }
#page-cnc-updates .cnc-update-actions > div { gap: 8px; }
#page-cnc-updates .cnc-update-table-panel .table-scroll { max-height: max(320px, calc(100dvh - 310px)); }
#page-cnc-updates .cnc-update-notes { min-width: 200px; max-width: 280px; }
.cnc-layout-text-details { min-width: 0; white-space: normal; }
.cnc-layout-text-details > summary { padding: 3px 0; cursor: pointer; font-size: 12px; }
.cnc-layout-text-details > summary strong { font-size: 11px; font-weight: 600; color: var(--ink); }
.cnc-layout-text-preview { display: -webkit-box; margin-top: 4px; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.5; }
.cnc-layout-text-details[open] .cnc-layout-text-preview { display: none; }
.cnc-layout-text-content { padding: 7px 0 2px; white-space: pre-line; overflow-wrap: anywhere; font-size: 12px; line-height: 1.6; }
#page-cnc-updates .cnc-update-error .cnc-layout-text-details > summary strong { color: var(--danger); }

/* Expand only the surrounding viewport. The native screen and key coordinates are untouched. */
#page-cnc-control .cnc-control-statusbar { min-height: 52px; padding: 7px 10px; gap: 6px; }
#page-cnc-control .cnc-control-statusbar > div { padding: 3px 8px; }
#appView #page-cnc-control.cnc-layout-expanded {
  position: fixed;
  inset: 10px;
  z-index: 150;
  width: auto;
  height: auto;
  min-height: 0;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius, 6px);
  background: var(--bg);
  box-shadow: 0 0 0 20px var(--bg), var(--shadow);
}
#appView #page-cnc-control.cnc-layout-expanded[hidden] { display: none; }
#page-cnc-control.cnc-layout-expanded > .page-toolbar,
#page-cnc-control.cnc-layout-expanded > .cnc-control-statusbar { flex: 0 0 auto; margin: 0; }
#page-cnc-control.cnc-layout-expanded .cnc-control-stage-scroll { min-height: 0; flex: 1 1 auto; overflow: auto; }
#appView .main-shell:has(#page-cnc-control.cnc-layout-expanded:not([hidden])) { z-index: 120; }
#appView .page-container:has(> #page-cnc-control.cnc-layout-expanded:not([hidden])) { z-index: 20; overflow: visible; }

/* Firmware records remain immediately accessible beneath the service summary. */
#page-firmware { gap: 12px; }
#page-firmware .firmware-top-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
#page-firmware .firmware-status-panel,
#page-firmware .firmware-upload-panel { padding: 13px 15px; }
#page-firmware .firmware-status-panel > .section-heading { min-height: 30px; }
#page-firmware .firmware-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 10px; }
#page-firmware .firmware-metrics > div { min-height: 62px; padding: 9px 13px; border-bottom: 0; border-right: 1px solid var(--line); }
#page-firmware .firmware-metrics > div:last-child { border-right: 0; }
#page-firmware .firmware-metrics dd { font-size: 22px; }
#page-firmware .firmware-service-hint { margin-top: 8px; }
#page-firmware #cncLayoutPolicyDetails { margin-top: 12px; }
#page-firmware #cncLayoutPolicyDetails .ladder-policy-form { margin: 0; padding: 13px; border: 0; }
#page-firmware .firmware-form-grid { gap: 12px; }
#page-firmware .firmware-table-heading { padding: 12px 15px; }
#page-firmware .firmware-table-panel .table-scroll { max-height: 430px; }

/* PLC tabs share the ladder viewport and keep their own table scroll region. */
#page-cnc-ladder .cnc-ladder-plc-view { min-height: 0; overflow: hidden; }
#page-cnc-ladder .cnc-plc-view-toolbar { min-height: 48px; flex: 0 0 auto; padding: 7px 10px; gap: 8px; }
#page-cnc-ladder .cnc-plc-summary-strip { min-height: 40px; flex: 0 0 auto; padding: 5px 12px; gap: 10px; }
#page-cnc-ladder .cnc-plc-summary-primary > strong { font-size: 18px; }
#page-cnc-ladder .cnc-plc-summary-meta { display: flex; align-items: center; gap: 8px; }
#page-cnc-ladder .cnc-plc-data-region { flex: 1 1 0; min-height: 100px; }
#page-cnc-ladder .cnc-plc-pagination { min-height: 40px; flex: 0 0 auto; }
#page-cnc-ladder .cnc-plc-family-tabs { max-width: 100%; overflow-x: auto; scrollbar-width: thin; }
#page-cnc-ladder .cnc-plc-family-tabs button { flex: 0 0 auto; }

/* CAM keeps parameters and preview side by side until a single-pane view is useful. */
#page-lathe-cam .lathe-cam-toolbar { gap: 12px; }
#page-lathe-cam .lathe-cam-toolbar .toolbar-controls { flex-wrap: wrap; }
#page-lathe-cam .lathe-cam-workspace {
  height: max(450px, calc(100dvh - 246px));
  min-height: 450px;
  grid-template-columns: minmax(250px, 290px) minmax(360px, 1fr) minmax(280px, 340px);
  gap: 10px;
}
#page-lathe-cam .lathe-cam-workspace > :is(.lathe-cam-settings, .lathe-cam-preview, .lathe-cam-output) { height: 100%; min-height: 0; grid-column: auto; }
#page-lathe-cam .lathe-cam-settings,
#page-lathe-cam .lathe-cam-output { padding: 12px; }
#page-lathe-cam .lathe-cam-gcode { max-height: none; }
#page-lathe-cam .lathe-cam-pane-heading { min-height: 38px; padding-bottom: 9px; }
#page-lathe-cam .cnc-layout-cam-views { display: none; }
#page-lathe-cam .cnc-layout-cam-notice {
  min-width: 0;
  border: 1px solid color-mix(in srgb, var(--warning) 38%, var(--line));
  border-radius: var(--radius, 6px);
  color: var(--warning);
  background: color-mix(in srgb, var(--warning) 7%, var(--surface));
}
#page-lathe-cam .cnc-layout-cam-notice[hidden] { display: none; }
#page-lathe-cam .cnc-layout-cam-notice.is-error { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 38%, var(--line)); background: color-mix(in srgb, var(--danger) 7%, var(--surface)); }
#page-lathe-cam .cnc-layout-cam-notice.is-success { color: var(--success); border-color: color-mix(in srgb, var(--success) 38%, var(--line)); background: color-mix(in srgb, var(--success) 7%, var(--surface)); }
#page-lathe-cam .cnc-layout-cam-notice > summary { min-height: 44px; padding: 10px 13px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 5px 12px; cursor: pointer; list-style: none; }
#page-lathe-cam .cnc-layout-cam-notice > summary::-webkit-details-marker { display: none; }
#page-lathe-cam .cnc-layout-cam-notice > summary strong { font-size: 12px; }
#page-lathe-cam .cnc-layout-cam-notice > summary small { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; }
#page-lathe-cam .cnc-layout-cam-notice > summary small::after { content: ""; width: 5px; height: 5px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
#page-lathe-cam .cnc-layout-cam-notice[open] > summary small::after { transform: rotate(225deg); }
#page-lathe-cam .cnc-layout-cam-notice > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
#page-lathe-cam .cnc-layout-cam-notice-preview { grid-column: 1 / -1; display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 12px; line-height: 1.6; }
#page-lathe-cam .cnc-layout-cam-notice[open] .cnc-layout-cam-notice-preview { display: none; }
#page-lathe-cam .cnc-layout-cam-notice:not(.is-brief) > .lathe-cam-notice { margin: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; }
#page-lathe-cam .cnc-layout-cam-notice.is-brief { border: 0; background: transparent; }
#page-lathe-cam .cnc-layout-cam-notice.is-brief > summary { display: none; }
html[data-theme="light"] #page-lathe-cam .cnc-layout-cam-notice:not(.is-error):not(.is-success) { color: #80540b; }
#page-lathe-cam .cnc-layout-cam-examples { position: relative; align-self: center; }
#page-lathe-cam .cnc-layout-cam-examples > summary { min-height: 38px; padding: 8px 11px; }
#page-lathe-cam .cnc-layout-cam-examples[open] > summary { border-bottom: 0; }
#page-lathe-cam .cnc-layout-cam-example-actions {
  position: absolute;
  z-index: 35;
  top: calc(100% + 6px);
  right: 0;
  width: 270px;
  padding: 8px;
  display: grid;
  gap: 6px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius, 6px);
  background: var(--surface-solid, var(--surface));
  box-shadow: var(--shadow);
}
#page-lathe-cam .cnc-layout-cam-example-actions .button { width: 100%; justify-content: flex-start; }

@media (max-width: 1450px) {
  #page-lathe-cam .lathe-cam-workspace { grid-template-columns: minmax(250px, 290px) minmax(0, 1fr); height: max(430px, calc(100dvh - 276px)); min-height: 430px; }
  #page-lathe-cam .cnc-layout-cam-views { display: inline-flex; justify-self: start; gap: 3px; padding: 3px; border: 1px solid var(--line); border-radius: var(--radius, 6px); background: var(--surface-soft); }
  #page-lathe-cam .cnc-layout-cam-views button { min-height: 32px; padding: 6px 14px; border: 1px solid transparent; border-radius: 4px; color: var(--muted); background: transparent; font: inherit; font-size: 12px; cursor: pointer; }
  #page-lathe-cam .cnc-layout-cam-views button[aria-pressed="true"] { border-color: var(--line-strong); color: var(--ink); background: var(--surface); box-shadow: inset 0 -2px var(--accent); }
  #page-lathe-cam .cnc-layout-cam-views button[data-cnc-layout-cam-target="settings"] { display: none; }
  #page-lathe-cam[data-cnc-layout-cam-pane]:not([data-cnc-layout-cam-pane="program"]) .lathe-cam-output,
  #page-lathe-cam[data-cnc-layout-cam-pane="program"] .lathe-cam-preview { display: none; }
  #page-lathe-cam .lathe-cam-output-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #page-lathe-cam .lathe-cam-output-actions .button:last-child { grid-column: 1 / -1; }
}

@media (max-width: 1180px) {
  #page-cnc-parameters .cnc-parameter-device-panel { grid-template-columns: minmax(160px, 1fr) minmax(220px, 1.3fr) auto; }
  #page-cnc-parameters #cncParameterDeviceFacts { grid-column: 1 / 3; grid-row: 2; }
  #page-cnc-parameters .cnc-parameter-device-panel > .button { grid-column: 3; grid-row: 1 / 3; }
  #page-cnc-diagnostics .cnc-diagnostics-live { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #page-cnc-diagnostics .cnc-diagnostics-grid { grid-template-columns: minmax(0, 1fr); }
  #page-cnc-ladder .cnc-plc-view-toolbar { grid-template-columns: minmax(0, 1fr); }
  #page-cnc-ladder .cnc-plc-toolbar-actions { justify-content: flex-start; }
  #page-cnc-ladder .cnc-plc-search-field { flex: 1 1 160px; min-width: 0; }
}

@media (max-width: 980px) {
  #page-cnc-parameters .cnc-parameter-filterbar .toolbar-controls { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(128px, auto) minmax(128px, auto) 114px; flex: 0 0 auto; }
  #page-cnc-parameters .cnc-parameter-filterbar .toolbar-controls > * { min-width: 0; }
  #page-lathe-cam .cnc-layout-cam-views { display: flex; justify-self: stretch; }
  #page-lathe-cam .cnc-layout-cam-views button,
  #page-lathe-cam .cnc-layout-cam-views button[data-cnc-layout-cam-target="settings"] { display: block; flex: 1 1 0; }
  #page-lathe-cam .lathe-cam-workspace { grid-template-columns: minmax(0, 1fr); height: max(430px, calc(100dvh - 310px)); min-height: 430px; }
  #page-lathe-cam[data-cnc-layout-cam-pane="settings"] .lathe-cam-preview,
  #page-lathe-cam[data-cnc-layout-cam-pane]:not([data-cnc-layout-cam-pane="settings"]) .lathe-cam-settings { display: none; }
  #page-lathe-cam .lathe-cam-settings { overflow: hidden; }
  #page-lathe-cam .lathe-cam-settings-scroll { min-height: 0; max-height: none; overflow-x: hidden; overflow-y: auto; }
  #page-lathe-cam .lathe-cam-canvas-wrap { min-height: 0; }
  #page-cnc-control .cnc-control-statusbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #page-cnc-control .cnc-control-statusbar > div { border-bottom: 0; }
  #page-cnc-control .cnc-control-statusbar > div:nth-child(2n) { border-right: 0; }
  #page-cnc-control .cnc-control-statusbar > div:nth-child(odd) { border-right: 1px solid var(--line); }
}

@media (max-width: 680px) {
  .cnc-layout-disclosure > summary { flex-wrap: wrap; gap: 6px 9px; }
  .cnc-layout-disclosure-hint { width: calc(100% - 15px); margin-left: 15px; font-size: 11px; }
  #page-cnc-parameters .cnc-parameter-top-grid { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  #page-cnc-parameters .cnc-parameter-device-panel { grid-template-columns: minmax(0, 1fr); padding: 11px; gap: 10px; }
  #page-cnc-parameters .cnc-parameter-device-panel > .section-heading { display: flex; flex-wrap: wrap; }
  #page-cnc-parameters #cncParameterDeviceFacts,
  #page-cnc-parameters .cnc-parameter-device-panel > .button { grid-column: auto; grid-row: auto; }
  #page-cnc-parameters .cnc-parameter-device-panel > .button { justify-self: stretch; }
  #page-cnc-parameters .cnc-parameter-permission-fields { grid-template-columns: minmax(0, 1fr); }
  #page-cnc-parameters .cnc-parameter-filterbar .toolbar-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); flex-basis: auto; }
  #page-cnc-parameters #cncParameterSearch { grid-column: 1 / -1; min-width: 0; width: 100%; }
  #page-cnc-parameters .cnc-parameter-filterbar select { width: 100%; min-width: 0; }
  #page-cnc-parameters .cnc-parameter-font-controls { justify-self: start; }
  #page-cnc-parameters .cnc-parameter-batchbar { align-items: stretch; }
  #page-cnc-parameters .cnc-parameter-batchbar > div:last-child { display: flex; flex-wrap: wrap; gap: 7px; }
  #page-cnc-tools .cnc-tool-metrics,
  #page-cnc-updates .cnc-update-metrics,
  #page-cnc-diagnostics .cnc-diagnostics-live { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  #page-cnc-tools .cnc-tool-metrics > div,
  #page-cnc-updates .cnc-update-metrics > div,
  #page-cnc-diagnostics .cnc-diagnostics-live > div { min-height: 62px; padding: 9px 11px; }
  #page-cnc-tools .cnc-tool-filterbar { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 10px; }
  #page-cnc-tools #cncToolSearch { grid-column: 1 / -1; }
  #page-cnc-diagnostics .cnc-diagnostics-toolbar .toolbar-controls { display: flex; align-items: stretch; gap: 8px; }
  #page-cnc-diagnostics #cncDiagnosticsDevice { width: 100%; min-width: 0; flex-basis: 100%; }
  #page-cnc-diagnostics .cnc-diagnostics-mode { flex: 1 1 150px; min-height: 44px; }
  #page-cnc-diagnostics .cnc-diagnostics-tabs { min-height: 44px; width: 100%; }
  #page-cnc-diagnostics .cnc-diagnostics-tabs button { font-size: 11px; }
  #page-cnc-updates .cnc-update-actions { position: static; flex-direction: row; flex-wrap: wrap; align-items: center; padding: 10px; }
  #page-cnc-updates .cnc-update-actions > span { margin-left: auto; }
  #page-cnc-updates .cnc-update-actions > div { width: 100%; margin-left: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #page-cnc-updates .cnc-update-actions > div .button { min-width: 0; padding-inline: 8px; }
  #page-cnc-updates .cnc-update-actions > div .button:last-child { grid-column: 1 / -1; }
  #page-cnc-control .cnc-control-toolbar .toolbar-controls { display: flex; flex-wrap: wrap; gap: 8px; }
  #page-cnc-control #cncControlDevice { width: 100%; min-width: 0; flex-basis: 100%; }
  #page-cnc-control .cnc-control-toolbar .button { flex: 1 1 auto; }
  #page-cnc-control .cnc-control-statusbar { padding: 7px; }
  #appView #page-cnc-control.cnc-layout-expanded { inset: 5px; padding: 8px; }
  #page-firmware .firmware-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #page-firmware .firmware-metrics > div:nth-child(2) { border-right: 0; }
  #page-firmware .firmware-metrics > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  #page-firmware .firmware-form-grid { grid-template-columns: minmax(0, 1fr); }
  #page-firmware .firmware-publish-actions { flex-direction: column; align-items: stretch; gap: 10px; }
  #page-firmware .firmware-publish-toggle { width: 100%; }
  #page-cnc-ladder .cnc-plc-view-navigation { max-width: 100%; flex-wrap: wrap; }
  #page-cnc-ladder .cnc-plc-toolbar-actions { flex-wrap: wrap; }
  #page-cnc-ladder .cnc-plc-family-tabs button,
  #page-cnc-ladder .cnc-plc-mode-switch button { min-height: 38px; }
  #page-cnc-ladder .cnc-plc-summary-strip { grid-template-columns: minmax(0, 1fr); gap: 3px; padding-block: 7px; }
  #page-cnc-ladder .cnc-plc-summary-meta { padding-left: 0; border-left: 0; }
  #page-lathe-cam .lathe-cam-toolbar .toolbar-controls { position: relative; display: flex; gap: 8px; }
  #page-lathe-cam .lathe-cam-toolbar .toolbar-controls > .button { flex: 1 1 auto; }
  #page-lathe-cam .cnc-layout-cam-examples > summary { min-height: 44px; }
  #page-lathe-cam .cnc-layout-cam-examples { position: static; }
  #page-lathe-cam .cnc-layout-cam-example-actions { left: auto; right: 0; width: min(270px, calc(100vw - 48px)); }
  #page-lathe-cam .cnc-layout-cam-views button { min-height: 44px; padding-inline: 7px; }
  #page-lathe-cam .lathe-cam-workspace { height: max(450px, calc(100dvh - 345px)); min-height: 450px; }
}
