/* V3.3.66: measured board geometry. Load after WebDashboard.css. */
#cncDeviceBoard[data-board-adaptive="true"] {
  --monitor-board-font-size: var(--cnc-board-font-size, 26px);
  --cnc-adaptive-gap: clamp(8px, .65vw, 12px);
  --cnc-adaptive-pad: clamp(8px, .7vw, 16px);
  min-width: 0;
  min-height: 0;
  width: 100%;
  height: 100dvh;
  max-height: 100dvh;
  box-sizing: border-box;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
}
#cncDeviceBoard[data-board-adaptive="true"][hidden] { display: none !important; }
#cncDeviceBoard[data-board-adaptive="true"] > .monitor-board-header { grid-row: 1; }
#cncDeviceBoard[data-board-adaptive="true"] > .cnc-device-board-summary { grid-row: 2; }
#cncDeviceBoard[data-board-adaptive="true"] > .cnc-monitor-board-body { grid-row: 3; }
#cncDeviceBoard[data-board-adaptive="true"] > .cnc-device-board-footer { grid-row: 4; }

#cncDeviceBoard[data-board-adaptive="true"] .monitor-board-header {
  min-height: 68px;
  height: auto;
  padding-block: 8px;
  gap: 16px;
}
#cncDeviceBoard[data-board-adaptive="true"] .monitor-board-header-meta { gap: 12px; }
#cncDeviceBoard[data-board-adaptive="true"] .monitor-board-actions { gap: 6px; }
#cncDeviceBoard[data-board-adaptive="true"] .monitor-board-brand h2 {
  font-size: clamp(20px, calc(var(--monitor-board-font-size) * 1.08), 38px);
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-device-board-summary {
  grid-template-columns: repeat(var(--cnc-adaptive-summary-columns, 8), minmax(0, 1fr));
  grid-auto-rows: auto;
  gap: var(--cnc-adaptive-gap);
  padding-block: 8px;
}
#cncDeviceBoard[data-board-adaptive="true"][data-board-summary-empty="true"] .cnc-device-board-summary { display: none; }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-device-board-summary > div {
  height: auto;
  min-height: max(66px, calc(var(--monitor-board-font-size) * 2.7));
  max-height: none;
  padding: 6px 10px;
  grid-template-rows: auto auto;
  gap: 4px;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-device-board-summary > div > span {
  font-size: clamp(12px, calc(var(--monitor-board-font-size) * .67), 27px);
  line-height: 1.2;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-board-summary-value {
  min-height: 0;
  height: auto;
  font-size: clamp(22px, calc(var(--monitor-board-font-size) * 1.18), 48px);
  line-height: 1.1;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-board-summary-value strong {
  font-size: inherit;
  line-height: 1.1;
}

#cncDeviceBoard[data-board-adaptive="true"] .cnc-monitor-board-body {
  min-height: 0;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 30%);
  grid-template-rows: minmax(0, 1fr);
  gap: var(--cnc-adaptive-gap);
  overflow: hidden;
  padding-bottom: 8px;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-monitor-stage {
  min-height: 0;
  grid-column: 1;
  grid-row: 1;
  grid-template-rows: auto minmax(0, 1fr) !important;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-monitor-stage > .monitor-panel-heading {
  min-height: min-content !important;
  flex-shrink: 0;
}
#cncDeviceBoard[data-board-adaptive="true"][data-card-rows="2"] .cnc-device-board-grid {
  min-height: 0 !important;
  height: 100% !important;
  grid-template-rows: repeat(2, minmax(max(292px, calc(var(--monitor-board-font-size) * 7 + 92px)), 1fr)) !important;
  overflow-y: auto !important;
}
#cncDeviceBoard[data-board-adaptive="true"][data-card-rows="2"] .cnc-device-board-grid .cnc-board-device.is-compact .cnc-board-device-metrics > div {
  height: auto !important;
  max-height: none !important;
  align-self: stretch;
}
#cncDeviceBoard[data-board-adaptive="true"][data-card-rows="1"] .cnc-device-board-grid > .cnc-board-device {
  height: 100%;
  max-height: none;
  grid-template-rows: 86px minmax(0, 1fr) 30px;
}
#cncDeviceBoard[data-board-adaptive="true"][data-card-rows="1"] .cnc-device-board-grid .cnc-board-device-metrics {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: minmax(max(84px, calc(var(--monitor-board-font-size) * 3.1)), 1fr);
  align-content: stretch;
  overflow-y: auto;
}
#cncDeviceBoard[data-board-adaptive="true"][data-card-rows="1"] .cnc-device-board-grid .cnc-board-device-metrics > div {
  display: grid;
  min-height: max(84px, calc(var(--monitor-board-font-size) * 3.1));
  max-height: none;
  height: auto;
  grid-template-rows: auto minmax(0, 1fr) auto;
}
#cncDeviceBoard[data-board-adaptive="true"][data-card-rows="1"] .cnc-device-board-grid .cnc-board-device-metrics > div > small { display: block; }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-device-board-grid .cnc-board-device .cnc-board-device-metrics > div > strong {
  font-size: var(--cnc-card-fitted-size, var(--cnc-card-value-size, 26px));
  line-height: 1.2;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-device-board-grid .cnc-board-device .cnc-board-device-metrics > div > span {
  font-size: var(--cnc-card-fitted-size, var(--cnc-card-label-size, 15px));
  line-height: 1.25;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-device-board-grid .cnc-board-device h3 { font-size: clamp(18px, calc(var(--monitor-board-font-size) * .9), 28px); }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-monitor-side {
  min-width: 0;
  min-height: 0;
  height: 100%;
  grid-column: 2;
  grid-row: 1;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: var(--cnc-board-side-rows, repeat(3, minmax(0, 1fr)));
  gap: var(--cnc-adaptive-gap);
  overflow: hidden;
}
#cncDeviceBoard[data-board-adaptive="true"][data-board-side-empty="true"] .cnc-monitor-side { display: none; }
#cncDeviceBoard[data-board-adaptive="true"][data-board-side-empty="true"] .cnc-monitor-board-body { grid-template-columns: minmax(0, 1fr); }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-monitor-side > .monitor-panel {
  min-height: 0;
  height: auto;
  padding: var(--cnc-adaptive-pad);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 8px;
  overflow: hidden;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-monitor-side > .monitor-panel[hidden] { display: none; }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-monitor-side .monitor-panel-heading {
  height: auto;
  min-height: 0;
  max-height: none;
  margin: 0;
  padding-bottom: 0;
  gap: 8px;
  align-items: baseline;
}
#cncDeviceBoard[data-board-adaptive="true"] .monitor-panel-heading h3 {
  font-size: clamp(16px, calc(var(--monitor-board-font-size) * .9), 36px);
  line-height: 1.2;
}
#cncDeviceBoard[data-board-adaptive="true"] .monitor-panel-meta {
  font-size: clamp(12px, calc(var(--monitor-board-font-size) * .61), 24px);
  line-height: 1.3;
  white-space: nowrap;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-monitor-side .monitor-panel-heading > div:first-child > span { display: none; }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-monitor-trend > .monitor-panel-heading {
  grid-template-rows: auto auto;
  gap: 6px;
}
#cncDeviceBoard[data-board-adaptive="true"] .monitor-chart-legend {
  flex-wrap: wrap;
  gap: 4px 10px;
}
#cncDeviceBoard[data-board-adaptive="true"] .monitor-chart-legend,
#cncDeviceBoard[data-board-adaptive="true"] .monitor-chart-legend span {
  font-size: clamp(11px, calc(var(--monitor-board-font-size) * .52), 20px);
  line-height: 1.25;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-minute-chart {
  min-height: 0;
  grid-template-rows: max(20px, calc(var(--monitor-board-font-size) * .8)) minmax(0, 1fr) max(22px, calc(var(--monitor-board-font-size) * .85)) max(28px, calc(var(--monitor-board-font-size) * 1.1));
  --minute-axis-space: clamp(32px, calc(var(--monitor-board-font-size) * 1.7), 58px);
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-minute-units,
#cncDeviceBoard[data-board-adaptive="true"] .cnc-minute-units span,
#cncDeviceBoard[data-board-adaptive="true"] .cnc-minute-detail {
  font-size: clamp(11px, calc(var(--monitor-board-font-size) * .54), 20px);
  line-height: 1.35;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-minute-detail { padding-top: 5px; }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-minute-gridline span {
  top: -.65em;
  width: calc(var(--minute-axis-space) - 6px);
  font-size: clamp(10px, calc(var(--monitor-board-font-size) * .48), 18px);
  line-height: 1.3;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-minute-times span { font-size: clamp(10px, calc(var(--monitor-board-font-size) * .42), 16px); }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-minute-times span:nth-child(odd) { visibility: hidden; }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-minute-empty {
  padding: 8px;
  font-size: clamp(12px, calc(var(--monitor-board-font-size) * .58), 22px);
  line-height: 1.4;
  text-align: center;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-group-production-list,
#cncDeviceBoard[data-board-adaptive="true"] .monitor-activity-list {
  min-height: 0;
  max-height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
  overscroll-behavior: contain;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-group-production-list { gap: 10px 14px; padding-right: 2px; }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-group-production-row span { font-size: clamp(12px, calc(var(--monitor-board-font-size) * .66), 26px); }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-group-production-row strong { font-size: clamp(13px, calc(var(--monitor-board-font-size) * .74), 30px); }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-group-production-row > div { line-height: 1.3; gap: 6px; }
#cncDeviceBoard[data-board-adaptive="true"] .monitor-activity-row { grid-template-columns: 7px minmax(0, 1fr); gap: 5px 9px; padding-block: 8px; }
#cncDeviceBoard[data-board-adaptive="true"] .monitor-activity-row > time { grid-column: 2; }
#cncDeviceBoard[data-board-adaptive="true"] .monitor-activity-row strong { font-size: clamp(13px, calc(var(--monitor-board-font-size) * .7), 28px); line-height: 1.3; }
#cncDeviceBoard[data-board-adaptive="true"] .monitor-activity-row :is(span, small, time) { font-size: clamp(11px, calc(var(--monitor-board-font-size) * .55), 22px); line-height: 1.35; }
#cncDeviceBoard[data-board-adaptive="true"] .monitor-inline-empty { min-height: 0; padding: 8px 0; gap: 5px; }
#cncDeviceBoard[data-board-adaptive="true"] .monitor-inline-empty strong { font-size: clamp(15px, calc(var(--monitor-board-font-size) * .75), 30px); line-height: 1.35; }
#cncDeviceBoard[data-board-adaptive="true"] .monitor-inline-empty span { font-size: clamp(12px, calc(var(--monitor-board-font-size) * .58), 23px); line-height: 1.35; }
#cncDeviceBoard[data-board-adaptive="true"] .monitor-state-overview { min-height: 0; overflow: auto; }

/* Stage controls use the same surface/accent tokens as the existing board. */
#cncDeviceBoard[data-board-adaptive="true"] .cnc-board-stage-controls { min-width: 0; flex-wrap: wrap; gap: 6px 10px; }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-board-filter-controls { min-width: 0; display: flex; flex-wrap: wrap; gap: 6px; }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-board-select-control { display: flex; align-items: center; gap: 6px; color: var(--monitor-muted); font-size: clamp(12px, calc(var(--monitor-board-font-size) * .55), 20px); }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-board-select-control select {
  width: auto;
  min-width: 0;
  min-height: 34px;
  padding: 5px 24px 5px 8px;
  border: 1px solid var(--monitor-border-strong);
  border-radius: 5px;
  color: var(--monitor-ink);
  background-color: var(--monitor-surface-strong);
  font: inherit;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-device-board-settings {
  width: 360px;
  max-width: calc(100vw - 20px);
  max-height: calc(100dvh - 96px);
  box-sizing: border-box;
  overflow-y: auto;
  overscroll-behavior: contain;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-board-view-settings,
#cncDeviceBoard[data-board-adaptive="true"] .cnc-board-view-settings .cnc-board-filter-controls { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-board-view-settings .cnc-board-select-control { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 8px; }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-board-view-settings .cnc-board-select-control > span { display: block; }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-board-view-settings select { width: 100%; min-height: 40px; }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-board-view-settings .cnc-board-rows { position: static; width: 100%; }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-board-view-settings .cnc-board-rows button {
  width: 100%;
  min-height: 40px;
  padding: 6px 10px;
  border: 1px solid var(--monitor-border-strong);
  border-radius: 5px;
  color: var(--monitor-ink);
  background: var(--monitor-surface-strong);
  font-size: inherit;
}
#cncDeviceBoard[data-board-adaptive="true"] .cnc-board-view-settings .cnc-board-rows button:focus-visible { outline: 2px solid var(--monitor-accent); outline-offset: 2px; }
#cncDeviceBoard[data-board-adaptive="true"] #cncDeviceBoardAutoFont {
  min-width: 64px;
  min-height: 36px;
  padding: 6px 8px;
  border: 1px solid var(--monitor-border-strong);
  border-radius: 6px;
  color: var(--monitor-muted);
  background: var(--monitor-surface);
  font-size: 12px;
  white-space: nowrap;
}
#cncDeviceBoard[data-board-adaptive="true"] #cncDeviceBoardAutoFont[aria-pressed="true"] { color: var(--monitor-accent); border-color: var(--monitor-accent); }
#cncDeviceBoard[data-board-adaptive="true"] :is(#cncDeviceBoardAutoFont, .cnc-board-select-control select):focus-visible { outline: 2px solid var(--monitor-accent); outline-offset: 2px; }
#cncDeviceBoard[data-board-adaptive="true"] .cnc-device-board-footer { min-height: 28px; height: auto; padding-block: 4px; gap: 8px; }

/* When a small display or a large manual font cannot hold readable panels,
   only the body scrolls; none of the board content is cut off. */
#cncDeviceBoard[data-board-adaptive="true"][data-board-layout="scroll"] .cnc-monitor-board-body { overflow-y: auto; grid-template-rows: minmax(var(--cnc-board-side-min-height), 1fr); }
#cncDeviceBoard[data-board-adaptive="true"][data-board-layout="stack"] { display: block; overflow-y: auto; }
#cncDeviceBoard[data-board-adaptive="true"][data-board-layout="stack"] .cnc-monitor-board-body {
  overflow: visible;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(480px, 65dvh) auto;
}
#cncDeviceBoard[data-board-adaptive="true"][data-board-layout="stack"] .cnc-monitor-stage { min-height: 0; }
#cncDeviceBoard[data-board-adaptive="true"][data-board-layout="stack"] .cnc-monitor-side { grid-column: 1; grid-row: 2; height: auto; }
#cncDeviceBoard[data-board-adaptive="true"][data-board-layout="stack"][data-board-side-empty="true"] .cnc-monitor-board-body { grid-template-rows: minmax(480px, 65dvh); }

@media (max-width: 1250px) {
  #cncDeviceBoard[data-board-adaptive="true"] .monitor-board-sync { display: none; }
  #cncDeviceBoard[data-board-adaptive="true"] .cnc-monitor-stage > .monitor-panel-heading { grid-template-columns: minmax(0, 1fr) auto !important; }
  #cncDeviceBoard[data-board-adaptive="true"] .cnc-board-stage-controls { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-height: 720px) and (min-width: 960px) {
  #cncDeviceBoard[data-board-adaptive="true"] { --cnc-adaptive-pad: 6px; --cnc-adaptive-gap: 6px; }
}
@media (max-width: 959px) {
  #cncDeviceBoard[data-board-adaptive="true"] .monitor-board-header { flex-wrap: wrap; gap: 8px; }
  #cncDeviceBoard[data-board-adaptive="true"] .monitor-board-brand { flex: 1 1 auto; }
  #cncDeviceBoard[data-board-adaptive="true"] .monitor-board-header-meta { flex: 1 1 auto; justify-content: space-between; }
  #cncDeviceBoard[data-board-adaptive="true"] .monitor-board-clock { min-width: 92px; flex-basis: auto; }
  #cncDeviceBoard[data-board-adaptive="true"] .monitor-board-brand h2 { font-size: clamp(20px, calc(var(--monitor-board-font-size) * .9), 32px); }
}
@media (max-width: 560px) {
  #cncDeviceBoard[data-board-adaptive="true"] { padding-inline: 10px; }
  #cncDeviceBoard[data-board-adaptive="true"] .monitor-board-brand { width: 100%; }
  #cncDeviceBoard[data-board-adaptive="true"] .monitor-board-brand img { width: 28px; height: 34px; }
  #cncDeviceBoard[data-board-adaptive="true"] .monitor-board-header-meta { flex-wrap: wrap; gap: 6px; width: 100%; }
  #cncDeviceBoard[data-board-adaptive="true"] .monitor-board-actions { flex-wrap: wrap; justify-content: flex-end; }
  #cncDeviceBoard[data-board-adaptive="true"] .monitor-board-clock { display: none; }
  #cncDeviceBoard[data-board-adaptive="true"] .cnc-board-font-control { min-width: 56px; }
  #cncDeviceBoard[data-board-adaptive="true"] .cnc-board-font-control input { width: 56px; }
  #cncDeviceBoard[data-board-adaptive="true"] .cnc-device-board-icon-button,
  #cncDeviceBoard[data-board-adaptive="true"] #cncDeviceBoardAutoFont,
  #cncDeviceBoard[data-board-adaptive="true"] .cnc-board-select-control select { min-height: 44px; }
  #cncDeviceBoard[data-board-adaptive="true"] .cnc-device-board-icon-button { min-width: 36px; }
  #cncDeviceBoard[data-board-adaptive="true"] .cnc-board-select-control > span { display: none; }
  #cncDeviceBoard[data-board-adaptive="true"] .cnc-board-filter-controls { flex: 1 1 100%; }
  #cncDeviceBoard[data-board-adaptive="true"] .cnc-board-view-settings :is(select, .cnc-board-rows button) { min-height: 44px; }
  #cncDeviceBoard[data-board-adaptive="true"] .cnc-board-view-settings .cnc-board-select-control > span { display: block; }
  #cncDeviceBoard[data-board-adaptive="true"] .cnc-device-board-footer { flex-wrap: wrap; }
}
