/* RC50 application shell: rails, center scene, timeline, and analysis are
   bounded siblings. No sticky rail can cross into a later full-width row. */
.sim-workbench-topbar {
  position: sticky;
  top: var(--site-header-height, 4rem);
  z-index: 40;
  background: rgba(6, 16, 24, .985);
  border-bottom: 1px solid var(--sim-line);
  backdrop-filter: blur(12px);
}
.sim-workbench-topbar-inner {
  max-width: none;
  width: 100%;
  min-height: 3.85rem;
  padding: .45rem clamp(.65rem, 1.4vw, 1.35rem);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
}
.sim-wb-selector select,
.sim-wb-selector button,
.sim-wb-action,
.sim-wb-tools > summary {
  min-height: var(--sim-control-height);
  padding: .55rem .7rem;
  font: 800 .75rem/1.2 var(--font-mono, var(--mono, ui-monospace, monospace));
  border-radius: var(--sim-radius);
  white-space: nowrap;
}
.sim-wb-selector label,
.sim-wb-run-status,
.sim-wb-run-status span {
  font-size: .7rem;
  line-height: 1.3;
}
.sim-wb-run-status .mono {
  max-width: 16rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sim-wb-actions { align-items: center; flex-wrap: wrap; }
.sim-wb-tools { position: relative; }
.sim-wb-tools > summary { list-style: none; cursor: pointer; }
.sim-wb-tools > summary::-webkit-details-marker { display: none; }
.sim-wb-tools-menu {
  z-index: 70;
  min-width: 15rem;
  color: var(--sim-text);
  background: var(--sim-panel-2);
  border: 1px solid var(--sim-line-strong);
  box-shadow: var(--sim-shadow);
}
.sim-wb-tools-menu :where(a, button) {
  min-height: 2.75rem;
  color: var(--sim-text);
  background: transparent;
}

.sim-wb-region-switcher { display: none; }

.sim-wb-app-shell {
  width: 100%;
  height: clamp(42rem, calc(100dvh - 8rem), 68rem);
  min-height: 42rem;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  overflow: hidden;
  color: var(--sim-text);
  background: var(--sim-bg);
  border-bottom: 1px solid var(--sim-line);
}
.sim-wb-primary-workspace {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-columns: var(--sim-rail-input) minmax(28rem, 1fr) var(--sim-rail-proof);
  grid-template-areas: "inputs center proof";
  overflow: hidden;
  align-items: stretch;
}
.sim-wb-input-rail { grid-area: inputs; }
.sim-wb-center-workspace { grid-area: center; }
.sim-wb-proof-rail { grid-area: proof; }

.sim-wb-input-rail,
.sim-wb-proof-rail {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  z-index: 1;
  min-width: 0;
  min-height: 0;
  max-height: none !important;
  height: auto;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  background: var(--sim-panel);
  border-bottom: 0;
}
.sim-wb-input-rail { border-right: 1px solid var(--sim-line); }
.sim-wb-proof-rail { border-left: 1px solid var(--sim-line); border-right: 0; }

.sim-wb-center-workspace {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  overflow: hidden;
  background: #030b11;
}
.sim-wb-scene-panel {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto auto auto minmax(12rem, 1fr) auto;
  overflow: hidden;
  border: 0;
  background: #041018;
}
.sim-wb-panel-header { padding: .8rem .9rem; }
.sim-wb-panel-header h2,
.sim-wb-panel-header h3 { font-size: 1rem; line-height: 1.08; }
.sim-wb-panel-header .eyebrow { font-size: .72rem; }
.sim-wb-panel-body { padding: .85rem; }

/* Inputs may scroll once, but the preset list never creates a nested vertical trap. */
.sim-wb-preset-browser { margin: .75rem 0; }
.sim-wb-preset-list {
  max-height: none !important;
  overflow: visible !important;
  overscroll-behavior: auto;
}
.sim-wb-preset,
.sim-wb-preset b,
.sim-wb-preset span,
.sim-wb-field label,
.sim-wb-field > span,
.sim-wb-help,
.sim-wb-validation {
  font-size: .78rem;
  line-height: 1.45;
}
.sim-wb-active-preset span,
.sim-wb-input-origin,
.sim-wb-fieldset > legend { font-size: .7rem; }
.sim-wb-field :where(select, input[type="text"], input[type="number"]) { min-height: 2.75rem; }
.sim-wb-form-actions button { min-height: 2.75rem; }

/* Collapsing a rail removes its grid track; no overlay or sticky substitution. */
.sim-workbench-shell.is-inputs-collapsed .sim-wb-primary-workspace {
  grid-template-columns: minmax(28rem, 1fr) var(--sim-rail-proof);
  grid-template-areas: "center proof";
}
.sim-workbench-shell.is-proof-collapsed .sim-wb-primary-workspace {
  grid-template-columns: var(--sim-rail-input) minmax(28rem, 1fr);
  grid-template-areas: "inputs center";
}
.sim-workbench-shell.is-inputs-collapsed.is-proof-collapsed .sim-wb-primary-workspace,
.sim-workbench-shell.is-focus-mode .sim-wb-primary-workspace {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "center";
}
.sim-workbench-shell.is-inputs-collapsed [data-inputs-panel],
.sim-workbench-shell.is-proof-collapsed [data-proof-panel],
.sim-workbench-shell.is-focus-mode [data-inputs-panel],
.sim-workbench-shell.is-focus-mode [data-proof-panel] { display: none !important; }

.sim-workbench-shell.is-presentation {
  position: fixed;
  inset: 0;
  z-index: 9999;
  overflow: hidden;
  background: var(--sim-bg);
}
.sim-workbench-shell.is-presentation .sim-workbench-topbar { top: 0; }
.sim-workbench-shell.is-presentation .sim-wb-app-shell {
  height: calc(100dvh - 4rem);
  max-height: none;
}

/* Neutralize historical named-grid placement now that scene and timeline are
   children of the dedicated center workspace. */
.sim-wb-center-workspace > .sim-wb-scene-panel {
  grid-area: auto !important;
  grid-row: 1;
}
.sim-wb-center-workspace > .sim-wb-timeline {
  grid-area: auto !important;
  grid-row: 2;
}

/* Establish the containing block for the mobile one-region analysis drawer.
   Without this, its absolute inset resolves against the page and can cover the
   command bar even though the drawer belongs to the bounded app shell. */
.sim-wb-app-shell {
  position: relative;
}
