/* Evulgare Assurance Simulation Workbench v2.0
   Authoritative state remains server-derived. This stylesheet contains no
   operational data or external asset dependency. */
:root {
  --sim-bg: #071017;
  --sim-panel: #0b1720;
  --sim-panel-2: #0e1d27;
  --sim-line: rgba(149, 188, 207, .22);
  --sim-line-strong: rgba(111, 223, 235, .5);
  --sim-text: #eaf5f7;
  --sim-muted: #9ab0ba;
  --sim-cyan: #6fdfea;
  --sim-teal: #5fc7b9;
  --sim-amber: #efbc68;
  --sim-red: #f17872;
  --sim-green: #85d3a3;
  --sim-focus: #f6d58d;
  --sim-shadow: 0 24px 70px rgba(0, 0, 0, .32);
}

.simulation-explorer-page,
.simulation-workbench-page { background: var(--sim-bg); color: var(--sim-text); }

/* Explorer hero */
.sim-explorer-hero {
  position: relative;
  overflow: hidden;
  min-height: clamp(640px, 80vh, 900px);
  display: grid;
  align-items: center;
  background:
    linear-gradient(90deg, rgba(7,16,23,.98) 0%, rgba(7,16,23,.94) 42%, rgba(7,16,23,.66) 100%),
    radial-gradient(circle at 78% 40%, rgba(56, 166, 187, .14), transparent 42%),
    var(--sim-bg);
  border-bottom: 1px solid var(--sim-line);
}
.sim-explorer-hero::before,
.sim-explorer-hero::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.sim-explorer-hero::before {
  inset: 0;
  opacity: .42;
  background-image:
    linear-gradient(rgba(111, 223, 235, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(111, 223, 235, .045) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(90deg, transparent 0%, #000 42%, #000 100%);
}
.sim-explorer-hero::after {
  width: 26rem;
  height: 26rem;
  right: -8rem;
  top: -11rem;
  border: 1px solid rgba(111,223,235,.15);
  transform: rotate(35deg);
}
.sim-explorer-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(480px, 1.08fr);
  gap: clamp(2rem, 6vw, 7rem);
  align-items: center;
  position: relative;
  z-index: 1;
  padding-top: clamp(5rem, 10vw, 8rem);
  padding-bottom: clamp(5rem, 10vw, 8rem);
}
.sim-explorer-copy h1 {
  max-width: 11ch;
  font-size: clamp(3.8rem, 7vw, 8.4rem);
  line-height: .86;
  letter-spacing: -.065em;
  margin: .35rem 0 1.6rem;
}
.sim-explorer-copy .hero-lede { max-width: 68ch; color: #c5d7dc; }
.sim-hero-statline {
  margin-top: 2rem;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--sim-line);
  border-bottom: 1px solid var(--sim-line);
}
.sim-hero-statline span { padding: 1rem .9rem; border-right: 1px solid var(--sim-line); color: var(--sim-muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.sim-hero-statline span:last-child { border-right: 0; }
.sim-hero-statline b { display: block; color: var(--sim-text); font-family: var(--font-mono, ui-monospace, monospace); font-size: 1rem; margin-bottom: .25rem; }
.sim-explorer-hero-visual { position: relative; min-height: 480px; display: grid; place-items: center; }
.sim-explorer-hero-visual svg { width: 100%; color: var(--sim-cyan); filter: drop-shadow(0 24px 50px rgba(0,0,0,.4)); }
.sim-hero-grid-bg { color: var(--sim-cyan); }
.sim-hero-links path { fill: none; stroke: rgba(111,223,234,.42); stroke-width: 2; stroke-dasharray: 7 8; }
.sim-hero-links .sim-hero-link-warning { stroke: var(--sim-amber); }
.sim-hero-node circle { fill: #0b1922; stroke: var(--sim-cyan); stroke-width: 2; }
.sim-hero-node text { fill: var(--sim-text); text-anchor: middle; font: 700 12px/1 ui-monospace, monospace; letter-spacing: .08em; }
.sim-hero-node .sim-hero-node-state { fill: var(--sim-cyan); font-size: 9px; }
.sim-hero-node-unknown circle { stroke: var(--sim-amber); stroke-dasharray: 5 4; }
.sim-hero-node-unknown .sim-hero-node-state { fill: var(--sim-amber); }
.sim-hero-node-proof circle { stroke: var(--sim-green); }
.sim-hero-node-proof .sim-hero-node-state { fill: var(--sim-green); }
.sim-hero-pulse circle { fill: none; stroke: var(--sim-cyan); animation: sim-pulse 3.2s ease-out infinite; transform-box: fill-box; transform-origin: center; }
.sim-hero-pulse circle:nth-child(2) { animation-delay: .85s; }
.sim-hero-pulse circle:nth-child(3) { animation-delay: 1.7s; }
@keyframes sim-pulse { 0% { opacity:.9; transform:scale(.4); } 70%,100% { opacity:0; transform:scale(3.7); } }
.sim-hero-proof-readout { position: absolute; right: 1rem; bottom: 1rem; width: min(24rem, 82%); padding: .9rem 1rem; border-left: 3px solid var(--sim-cyan); background: rgba(5,13,18,.86); backdrop-filter: blur(12px); box-shadow: var(--sim-shadow); }
.sim-hero-proof-readout span,.sim-hero-proof-readout b { display:block; font-family: var(--font-mono, ui-monospace, monospace); }
.sim-hero-proof-readout span { font-size:.68rem; color:var(--sim-muted); letter-spacing:.08em; }
.sim-hero-proof-readout b { margin:.3rem 0; font-size:.82rem; color:var(--sim-text); }

/* Explorer */
.sim-explorer-section { padding: clamp(4rem, 8vw, 8rem) 0; background: #f3f1ea; color: #101820; }
.sim-explorer-heading-row { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:2rem; }
.sim-explorer-heading-row h2 { max-width: 18ch; margin:.3rem 0 0; font-size:clamp(2.3rem,4.5vw,4.8rem); line-height:.95; letter-spacing:-.045em; }
.sim-explorer-count { display:flex; align-items:baseline; gap:.7rem; border-left:3px solid #197e8c; padding-left:1rem; min-width:13rem; }
.sim-explorer-count strong { font:700 2.1rem/1 ui-monospace, monospace; }
.sim-explorer-count span { color:#53636a; font-size:.78rem; text-transform:uppercase; letter-spacing:.07em; }
.sim-filter-bar { display:grid; grid-template-columns: repeat(6, minmax(130px, 1fr)) auto; gap:1px; background:#aab9bd; border:1px solid #aab9bd; position:sticky; top:4.4rem; z-index:12; box-shadow:0 15px 35px rgba(10,25,32,.12); }
.sim-filter-bar label { background:#fff; padding:.7rem .75rem; display:grid; gap:.32rem; }
.sim-filter-bar label span { font:700 .66rem/1 ui-monospace, monospace; letter-spacing:.08em; text-transform:uppercase; color:#52646b; }
.sim-filter-bar select { width:100%; border:0; background:transparent; color:#101820; font-weight:700; min-height:2rem; }
.sim-filter-reset { border:0; border-radius:0; background:#101820; color:#fff; min-width:8rem; padding:.75rem 1rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.sim-filter-summary { margin:1rem 0; padding:.75rem 1rem; background:#e3edf0; border-left:3px solid #197e8c; font-size:.86rem; }
.sim-explorer-empty { margin-top:2rem; border:1px dashed #819399; padding:3rem; text-align:center; }
.sim-explorer-grid { margin-top:2.2rem; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.sim-explorer-card { background:#fff; border:1px solid #bac6c8; box-shadow:0 10px 28px rgba(16,24,32,.08); display:grid; grid-template-columns:minmax(270px,.88fr) minmax(0,1.12fr); min-height:360px; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.sim-explorer-card:hover,.sim-explorer-card:focus-within { transform:translateY(-3px); box-shadow:0 20px 44px rgba(16,24,32,.14); border-color:#4e929b; }
.sim-explorer-card[hidden] { display:none; }
.sim-card-preview { position:relative; overflow:hidden; background:#07131a; min-height:100%; }
.sim-card-preview::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(5,13,18,.75)); pointer-events:none; }
.sim-card-preview svg { width:100%; height:100%; min-height:360px; color:#6fdfea; }
.sim-preview-edges line { stroke:rgba(111,223,234,.34); stroke-width:1.4; stroke-dasharray:5 6; }
.sim-preview-nodes circle { fill:#0d202a; stroke:#6fdfea; stroke-width:1.7; }
.sim-preview-nodes g[data-state="qualified"] circle,.sim-preview-nodes g[data-state="unknown"] circle { stroke:#efbc68; stroke-dasharray:3 3; }
.sim-preview-nodes g[data-state="invalidated"] circle,.sim-preview-nodes g[data-state="withdrawn"] circle { stroke:#f17872; }
.sim-preview-nodes text { fill:#c7d8dc; text-anchor:middle; font:8px ui-monospace,monospace; }
.sim-preview-code { fill:#7fa0a9; font:9px ui-monospace,monospace; letter-spacing:.07em; }
.sim-quick-preview { position:absolute; z-index:2; left:1rem; bottom:1rem; border:1px solid rgba(111,223,234,.5); background:rgba(5,13,18,.82); color:#fff; padding:.55rem .7rem; font:700 .68rem ui-monospace,monospace; text-transform:uppercase; letter-spacing:.07em; }
.sim-card-body { padding:1.5rem; display:flex; flex-direction:column; }
.sim-card-meta { display:flex; flex-wrap:wrap; gap:.35rem; }
.sim-card-meta span { padding:.3rem .45rem; background:#e6eef0; color:#30464f; font:700 .63rem ui-monospace,monospace; text-transform:uppercase; letter-spacing:.06em; }
.sim-card-body h3 { margin:.9rem 0 .55rem; font-size:clamp(1.45rem,2vw,2.1rem); line-height:1; letter-spacing:-.025em; }
.sim-card-body h3 a { color:inherit; text-decoration:none; }
.sim-card-purpose { color:#4e5f65; flex:1; }
.sim-capability-badges { display:flex; flex-wrap:wrap; gap:.35rem; margin:1rem 0; }
.sim-capability-badges span { border:1px solid #91a7ad; padding:.25rem .4rem; font:700 .62rem ui-monospace,monospace; text-transform:uppercase; letter-spacing:.04em; }
.sim-card-facts { display:grid; grid-template-columns:repeat(3,1fr); margin:0 0 1rem; border-top:1px solid #d5dddf; border-bottom:1px solid #d5dddf; }
.sim-card-facts div { padding:.7rem .5rem; border-right:1px solid #d5dddf; }
.sim-card-facts div:last-child { border-right:0; }
.sim-card-facts dt { color:#617177; font-size:.65rem; text-transform:uppercase; letter-spacing:.05em; }
.sim-card-facts dd { margin:.25rem 0 0; font-weight:800; font-size:.8rem; }
.sim-card-actions { display:flex; gap:.6rem; flex-wrap:wrap; }
.sim-card-actions .button { font-size:.72rem; }

/* Learning paths */
.sim-learning-paths { padding:clamp(4rem,7vw,7rem) 0; background:#0b171f; color:var(--sim-text); border-top:1px solid var(--sim-line); }
.sim-learning-paths .section-intro { color:var(--sim-muted); }
.sim-path-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:2rem; }
.sim-path-card { border:1px solid var(--sim-line); background:linear-gradient(135deg,rgba(15,31,41,.94),rgba(8,20,28,.96)); padding:1.6rem; }
.sim-path-number { color:var(--sim-cyan); font-size:.68rem; letter-spacing:.09em; }
.sim-path-card h3 { font-size:1.9rem; margin:.5rem 0; }
.sim-path-card > p { color:var(--sim-muted); }
.sim-path-card ol { list-style:none; margin:1.3rem 0; padding:0; border-top:1px solid var(--sim-line); }
.sim-path-card li { display:grid; grid-template-columns:auto 1fr auto; gap:.8rem; align-items:center; padding:.7rem 0; border-bottom:1px solid var(--sim-line); }
.sim-path-card li > span { color:var(--sim-cyan); font:700 .7rem ui-monospace,monospace; }
.sim-path-card li a { color:var(--sim-text); font-weight:700; text-decoration:none; }
.sim-path-card li button { border:0; background:transparent; color:var(--sim-muted); font-size:.68rem; text-decoration:underline; }
.sim-path-card li button[aria-pressed="true"] { color:var(--sim-green); text-decoration:none; }
.sim-path-progress { display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:center; font:700 .7rem ui-monospace,monospace; text-transform:uppercase; }
.sim-path-progress progress { width:100%; accent-color:var(--sim-cyan); }
.sim-contract-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(3rem,7vw,8rem); }
.sim-contract-flow { list-style:none; padding:0; margin:0; display:grid; }
.sim-contract-flow li { display:grid; grid-template-columns:8rem 1fr; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--sim-line); }
.sim-contract-flow b { color:var(--sim-cyan); font:700 .75rem ui-monospace,monospace; }
.sim-contract-flow span { color:var(--sim-muted); }

/* Dialog */
.sim-preview-dialog { width:min(920px,calc(100% - 2rem)); max-height:calc(100vh - 2rem); border:1px solid var(--sim-line-strong); background:#09151d; color:var(--sim-text); padding:0; box-shadow:var(--sim-shadow); }
.sim-preview-dialog::backdrop { background:rgba(0,0,0,.78); backdrop-filter:blur(5px); }
.sim-dialog-close { position:absolute; right:1rem; top:1rem; z-index:3; width:2.6rem; height:2.6rem; border:1px solid var(--sim-line); background:#0d202a; color:#fff; font-size:1.6rem; }
.sim-preview-content { display:grid; grid-template-columns:1fr 1fr; }
.sim-preview-content figure { margin:0; min-height:390px; background:#061017; display:grid; place-items:center; }
.sim-preview-content figure svg { width:100%; height:100%; }
.sim-preview-copy { padding:3rem 2rem 2rem; }
.sim-preview-copy h2 { font-size:2.5rem; line-height:1; margin:.5rem 0 1rem; }
.sim-preview-copy ul { padding-left:1.2rem; color:var(--sim-muted); }

/* Unified workbench */
.sim-workbench-titlebar { background:#071017; border-bottom:1px solid var(--sim-line); padding:1.1rem 0; position:relative; }
.sim-workbench-titlebar-grid { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2rem; align-items:center; }
.sim-workbench-titlebar h1 { margin:.25rem 0 0; font-size:clamp(1.7rem,3.2vw,3.2rem); line-height:.95; }
.sim-workbench-route { display:flex; gap:.5rem; align-items:center; color:var(--sim-muted); font:700 .68rem ui-monospace,monospace; text-transform:uppercase; }
.sim-workbench-route a { color:var(--sim-cyan); }
.sim-workbench-identifiers { display:grid; grid-template-columns:repeat(3,auto); gap:1px; background:var(--sim-line); border:1px solid var(--sim-line); }
.sim-workbench-identifiers div { background:#0b1820; padding:.65rem .85rem; }
.sim-workbench-identifiers dt { color:var(--sim-muted); font:600 .59rem ui-monospace,monospace; text-transform:uppercase; letter-spacing:.07em; }
.sim-workbench-identifiers dd { margin:.22rem 0 0; font:700 .72rem ui-monospace,monospace; color:var(--sim-text); }

.sim-workbench-shell { background:#061018; min-height:calc(100vh - 7rem); }
.sim-workbench-topbar { position:sticky; top:4.35rem; z-index:22; border-bottom:1px solid var(--sim-line); background:rgba(7,16,23,.96); backdrop-filter:blur(14px); }
.sim-workbench-topbar-inner { display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; min-height:3.8rem; }
.sim-wb-selector { display:flex; align-items:center; gap:.45rem; }
.sim-wb-selector label { color:var(--sim-muted); font:700 .59rem ui-monospace,monospace; text-transform:uppercase; }
.sim-wb-selector select,.sim-wb-selector button,.sim-wb-action { min-height:2.25rem; border:1px solid var(--sim-line); background:#0c1a23; color:var(--sim-text); border-radius:0; padding:.45rem .65rem; font:700 .68rem ui-monospace,monospace; }
.sim-wb-mode-group { display:flex; }
.sim-wb-mode-group button { border-right:0; }
.sim-wb-mode-group button:last-child { border-right:1px solid var(--sim-line); }
.sim-wb-mode-group button[aria-pressed="true"] { background:var(--sim-cyan); color:#061018; }
.sim-wb-run-status { margin-left:auto; display:flex; align-items:center; gap:.6rem; color:var(--sim-muted); font:700 .68rem ui-monospace,monospace; }
.sim-wb-run-status strong { color:var(--sim-green); }
.sim-wb-actions { display:flex; gap:.4rem; }
.sim-wb-action:hover { border-color:var(--sim-cyan); }

.sim-workbench-grid { display:grid; grid-template-columns:minmax(230px,290px) minmax(440px,1fr) minmax(260px,340px); grid-template-areas:"scenario scene proof" "timeline timeline timeline" "representations representations representations"; align-items:start; max-width:1920px; margin:0 auto; }
.sim-wb-panel { border-right:1px solid var(--sim-line); border-bottom:1px solid var(--sim-line); min-width:0; background:#09151d; }
.sim-wb-scenario-panel { grid-area:scenario; max-height:calc(100vh - 8.2rem); overflow:auto; position:sticky; top:8.15rem; }
.sim-wb-scene-panel { grid-area:scene; background:#041018; min-width:0; }
.sim-wb-proof-panel { grid-area:proof; border-right:0; max-height:calc(100vh - 8.2rem); overflow:auto; position:sticky; top:8.15rem; }
.sim-wb-panel-header { padding:1rem; border-bottom:1px solid var(--sim-line); display:flex; align-items:start; justify-content:space-between; gap:1rem; }
.sim-wb-panel-header h2,.sim-wb-panel-header h3 { margin:.2rem 0 0; font-size:1.05rem; text-transform:uppercase; letter-spacing:.03em; }
.sim-wb-panel-header .eyebrow { margin:0; font-size:.6rem; }
.sim-wb-panel-body { padding:1rem; }
.sim-wb-help { color:var(--sim-muted); font-size:.78rem; }

.sim-wb-guided { margin:0 0 1rem; border:1px solid rgba(239,188,104,.35); background:rgba(239,188,104,.06); padding:.8rem; }
.sim-wb-guided strong { color:var(--sim-amber); display:block; font:700 .68rem ui-monospace,monospace; text-transform:uppercase; }
.sim-wb-guided h3 { font-size:1rem; margin:.45rem 0; }
.sim-wb-guided p { color:var(--sim-muted); font-size:.78rem; }
.sim-wb-guided-actions { display:flex; gap:.4rem; }
.sim-wb-guided button { border:1px solid rgba(239,188,104,.45); background:transparent; color:var(--sim-text); padding:.4rem .55rem; font-size:.7rem; }

.sim-wb-preset-list { display:grid; gap:.35rem; margin-bottom:1rem; }
.sim-wb-preset { text-align:left; border:1px solid var(--sim-line); background:#0b1a22; color:var(--sim-text); padding:.65rem; }
.sim-wb-preset b { display:block; font-size:.78rem; }
.sim-wb-preset span { display:block; margin-top:.25rem; color:var(--sim-muted); font-size:.68rem; }
.sim-wb-preset[aria-pressed="true"] { border-color:var(--sim-cyan); box-shadow:inset 3px 0 0 var(--sim-cyan); }
.sim-wb-fieldset { border:0; margin:0; padding:0; display:grid; gap:.9rem; }
.sim-wb-fieldset > legend { width:100%; padding:.7rem 0; border-top:1px solid var(--sim-line); color:var(--sim-cyan); font:700 .65rem ui-monospace,monospace; text-transform:uppercase; letter-spacing:.07em; }
.sim-wb-field { display:grid; gap:.35rem; }
.sim-wb-field label,.sim-wb-field > span { display:flex; justify-content:space-between; gap:.5rem; color:#d3e0e3; font-size:.75rem; font-weight:700; }
.sim-wb-field output { color:var(--sim-cyan); font:700 .7rem ui-monospace,monospace; }
.sim-wb-field input[type="range"] { width:100%; accent-color:var(--sim-cyan); }
.sim-wb-field select,.sim-wb-field input[type="text"],.sim-wb-field input[type="number"] { width:100%; border:1px solid var(--sim-line); background:#071219; color:var(--sim-text); padding:.55rem; border-radius:0; }
.sim-wb-checkbox { grid-template-columns:auto 1fr; align-items:start; }
.sim-wb-checkbox input { margin-top:.2rem; accent-color:var(--sim-cyan); }
.sim-wb-input-origin { color:var(--sim-muted); font:600 .58rem ui-monospace,monospace; text-transform:uppercase; }
.sim-wb-form-actions { display:grid; grid-template-columns:1fr auto; gap:.5rem; margin-top:1rem; }
.sim-wb-form-actions button { border:1px solid var(--sim-cyan); background:var(--sim-cyan); color:#061018; padding:.75rem; font-weight:900; text-transform:uppercase; }
.sim-wb-form-actions button[type="reset"] { background:transparent; color:var(--sim-text); border-color:var(--sim-line); }
.sim-wb-validation { margin-top:.7rem; min-height:1.2rem; color:var(--sim-amber); font-size:.72rem; }

.sim-wb-scene-header { border-bottom:1px solid var(--sim-line); display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.65rem .8rem; }
.sim-wb-state-strip { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-bottom:1px solid var(--sim-line); background:#07141b; }
.sim-wb-state-strip div { padding:.65rem .75rem; border-right:1px solid var(--sim-line); min-width:0; }
.sim-wb-state-strip div:last-child { border-right:0; }
.sim-wb-state-strip span { display:block; color:var(--sim-muted); font:600 .58rem ui-monospace,monospace; text-transform:uppercase; }
.sim-wb-state-strip strong { display:block; margin-top:.25rem; color:var(--sim-text); font:700 .72rem ui-monospace,monospace; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sim-wb-scene-toolbar { display:flex; flex-wrap:wrap; gap:.35rem; }
.sim-wb-scene-toolbar button { border:1px solid var(--sim-line); background:#0b1a22; color:var(--sim-text); padding:.42rem .55rem; font:700 .62rem ui-monospace,monospace; }
.sim-wb-scene-toolbar button[aria-pressed="true"] { border-color:var(--sim-cyan); color:var(--sim-cyan); }
.sim-wb-canvas-shell { position:relative; aspect-ratio:16/9; min-height:420px; background:#02090e; overflow:hidden; }
.sim-wb-canvas-shell canvas { width:100%; height:100%; display:block; }
.sim-wb-canvas-overlay { position:absolute; left:.75rem; top:.75rem; right:.75rem; display:flex; justify-content:space-between; gap:1rem; pointer-events:none; color:var(--sim-muted); font:700 .61rem ui-monospace,monospace; }
.sim-wb-canvas-overlay span { background:rgba(3,10,15,.82); border:1px solid var(--sim-line); padding:.38rem .5rem; }
.sim-wb-scene-fallback { position:absolute; inset:0; display:grid; place-items:center; padding:2rem; text-align:center; background:#061018; }
.sim-wb-scene-fallback[hidden] { display:none; }
.sim-wb-scene-fallback div { max-width:42rem; }
.sim-wb-scene-fallback h3 { font-size:2rem; }
.sim-wb-performance { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:1px solid var(--sim-line); }
.sim-wb-performance div { padding:.55rem .65rem; border-right:1px solid var(--sim-line); }
.sim-wb-performance div:last-child { border-right:0; }
.sim-wb-performance span { display:block; color:var(--sim-muted); font:600 .55rem ui-monospace,monospace; text-transform:uppercase; }
.sim-wb-performance strong { display:block; font:700 .69rem ui-monospace,monospace; margin-top:.2rem; }

.sim-wb-proof-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--sim-line); margin-bottom:1rem; }
.sim-wb-proof-summary div { background:#071219; padding:.65rem; text-align:center; }
.sim-wb-proof-summary strong { display:block; font:700 1.35rem ui-monospace,monospace; }
.sim-wb-proof-summary span { color:var(--sim-muted); font:600 .55rem ui-monospace,monospace; text-transform:uppercase; }
.sim-wb-proof-list { display:grid; gap:.5rem; }
.sim-wb-proof-item { border:1px solid var(--sim-line); background:#071219; }
.sim-wb-proof-item summary { list-style:none; cursor:pointer; padding:.7rem; display:grid; grid-template-columns:auto 1fr auto; gap:.6rem; align-items:start; }
.sim-wb-proof-item summary::-webkit-details-marker { display:none; }
.sim-wb-proof-item .sim-proof-id { color:var(--sim-muted); font:700 .6rem ui-monospace,monospace; }
.sim-wb-proof-item .sim-proof-name { font-weight:800; font-size:.77rem; }
.sim-wb-proof-status { padding:.22rem .35rem; border:1px solid currentColor; font:700 .57rem ui-monospace,monospace; white-space:nowrap; }
.sim-wb-proof-item[data-status="PASS"] .sim-wb-proof-status { color:var(--sim-green); }
.sim-wb-proof-item[data-status="FAIL"] .sim-wb-proof-status { color:var(--sim-red); }
.sim-wb-proof-item[data-status="UNKNOWN"] .sim-wb-proof-status { color:var(--sim-amber); }
.sim-wb-proof-item[data-status="NOT EVALUATED"] .sim-wb-proof-status,.sim-wb-proof-item[data-status="NOT APPLICABLE"] .sim-wb-proof-status { color:var(--sim-muted); }
.sim-wb-proof-detail { padding:0 .7rem .8rem; color:var(--sim-muted); font-size:.72rem; }
.sim-wb-proof-detail dl { margin:.6rem 0; }
.sim-wb-proof-detail dt { color:var(--sim-text); font-weight:700; }
.sim-wb-proof-detail dd { margin:.2rem 0 .6rem; }
.sim-wb-proof-actions { display:flex; flex-wrap:wrap; gap:.35rem; }
.sim-wb-proof-actions button { border:1px solid var(--sim-line); background:transparent; color:var(--sim-text); padding:.35rem .45rem; font-size:.62rem; }
.sim-wb-causal-path { margin-top:1rem; border-top:1px solid var(--sim-line); padding-top:1rem; }
.sim-wb-causal-path h3 { font-size:.9rem; text-transform:uppercase; }
.sim-wb-causal-path ol { list-style:none; padding:0; display:grid; gap:.35rem; }
.sim-wb-causal-path li { position:relative; padding:.5rem .55rem .5rem 1.55rem; background:#0b1a22; font-size:.7rem; }
.sim-wb-causal-path li::before { content:attr(data-step); position:absolute; left:.5rem; color:var(--sim-cyan); font:700 .6rem ui-monospace,monospace; }
.sim-wb-causal-path button { width:100%; text-align:left; border:0; background:transparent; color:inherit; }
.sim-wb-entity-inspector { margin-top:1rem; border-top:1px solid var(--sim-line); padding-top:1rem; }
.sim-wb-entity-inspector pre { max-height:16rem; overflow:auto; padding:.65rem; background:#031018; color:#c3dce1; font-size:.63rem; white-space:pre-wrap; }

.sim-wb-timeline { grid-area:timeline; border-bottom:1px solid var(--sim-line); background:#07141b; padding:.75rem 1rem; }
.sim-wb-timeline-controls { display:flex; align-items:center; gap:.35rem; }
.sim-wb-timeline-controls button,.sim-wb-timeline-controls select { border:1px solid var(--sim-line); background:#0b1a22; color:var(--sim-text); min-height:2rem; padding:.35rem .5rem; border-radius:0; }
.sim-wb-timeline-readout { margin-left:auto; color:var(--sim-muted); font:700 .65rem ui-monospace,monospace; }
.sim-wb-timeline-track { position:relative; margin-top:.65rem; padding:0 .25rem; }
.sim-wb-timeline-track input[type="range"] { width:100%; accent-color:var(--sim-cyan); }
.sim-wb-event-markers { position:absolute; left:.45rem; right:.45rem; top:.45rem; height:.5rem; pointer-events:none; }
.sim-wb-event-marker { position:absolute; width:.42rem; height:.42rem; transform:translateX(-50%) rotate(45deg); background:var(--sim-cyan); border:1px solid #021016; }
.sim-wb-event-marker[data-type="proof-change"],.sim-wb-event-marker[data-type="warning"] { background:var(--sim-amber); }
.sim-wb-event-marker[data-type="failure"] { background:var(--sim-red); }
.sim-wb-event-marker[data-type="recovery"] { background:var(--sim-green); }
.sim-wb-timeline-event { display:grid; grid-template-columns:auto 1fr auto; gap:.8rem; padding:.55rem 0 0; font-size:.7rem; }
.sim-wb-timeline-event time { color:var(--sim-cyan); font-family:ui-monospace,monospace; }
.sim-wb-timeline-event strong { color:var(--sim-text); }
.sim-wb-timeline-event span { color:var(--sim-muted); }

.sim-wb-representations { grid-area:representations; background:#f4f2ea; color:#101820; }
.sim-wb-tabs { display:flex; flex-wrap:wrap; border-bottom:1px solid #aebcc0; background:#e3e8e7; }
.sim-wb-tabs button { border:0; border-right:1px solid #aebcc0; background:transparent; padding:.85rem 1rem; font:800 .68rem ui-monospace,monospace; text-transform:uppercase; letter-spacing:.05em; }
.sim-wb-tabs button[aria-selected="true"] { background:#fff; box-shadow:inset 0 3px 0 #187f8b; }
.sim-wb-tabpanel { padding:1.5rem; min-height:320px; }
.sim-wb-tabpanel[hidden] { display:none; }
.sim-wb-table-wrap { overflow:auto; border:1px solid #b8c5c7; }
.sim-wb-table-wrap table { min-width:760px; width:100%; border-collapse:collapse; font-size:.76rem; }
.sim-wb-table-wrap th,.sim-wb-table-wrap td { border:1px solid #cad3d4; padding:.55rem; text-align:left; vertical-align:top; }
.sim-wb-table-wrap thead th { background:#12232c; color:#fff; position:sticky; top:0; }
.sim-wb-narrative { max-width:70ch; }
.sim-wb-metrics-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; }
.sim-wb-metric { border:1px solid #b8c5c7; background:#fff; padding:1rem; }
.sim-wb-metric span { color:#596a70; font-size:.66rem; text-transform:uppercase; letter-spacing:.06em; }
.sim-wb-metric strong { display:block; margin-top:.35rem; font:800 1.4rem ui-monospace,monospace; }
.sim-wb-raw { max-height:36rem; overflow:auto; background:#071017; color:#d4e7ea; padding:1rem; white-space:pre-wrap; font: .68rem/1.55 ui-monospace,monospace; }
.sim-wb-event-log { list-style:none; padding:0; }
.sim-wb-event-log li { display:grid; grid-template-columns:7rem 1fr auto; gap:1rem; padding:.7rem 0; border-bottom:1px solid #c9d2d3; }
.sim-wb-event-log button { border:0; background:transparent; text-align:left; font-weight:800; }
.sim-wb-comparison-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.sim-wb-compare-column { border:1px solid #b8c5c7; background:#fff; padding:1rem; }
.sim-wb-difference { border-left:3px solid #d69534; background:#fff8e9; padding:.7rem; margin:.45rem 0; }
.sim-wb-branch-tree { font-family:ui-monospace,monospace; }

.sim-wb-loading { position:fixed; inset:0; z-index:100; display:grid; place-items:center; background:rgba(3,10,15,.82); backdrop-filter:blur(5px); }
.sim-wb-loading[hidden] { display:none; }
.sim-wb-loading-box { border:1px solid var(--sim-cyan); background:#07141b; padding:1.4rem; min-width:18rem; }
.sim-wb-spinner { width:2rem; height:2rem; border:2px solid var(--sim-line); border-top-color:var(--sim-cyan); border-radius:50%; animation:sim-spin .8s linear infinite; margin-bottom:.8rem; }
@keyframes sim-spin { to { transform:rotate(360deg); } }
.sim-wb-error { border-left:3px solid var(--sim-red); background:rgba(241,120,114,.08); color:#ffd9d6; padding:.8rem; margin:.75rem; }
.sim-wb-error[hidden] { display:none; }
.sim-wb-toast { position:fixed; right:1rem; bottom:1rem; z-index:110; width:min(24rem,calc(100% - 2rem)); border-left:3px solid var(--sim-cyan); background:#09151d; color:var(--sim-text); padding:.9rem 1rem; box-shadow:var(--sim-shadow); }
.sim-wb-toast[hidden] { display:none; }

/* Capability preflight */
.sim-capability-list { display:grid; gap:.35rem; }
.sim-capability-item { display:grid; grid-template-columns:1fr auto; gap:.8rem; padding:.5rem .6rem; background:#071219; border:1px solid var(--sim-line); font-size:.68rem; }
.sim-capability-item strong { font-family:ui-monospace,monospace; }
.sim-capability-item[data-state="supported"] strong { color:var(--sim-green); }
.sim-capability-item[data-state="limited"] strong { color:var(--sim-amber); }
.sim-capability-item[data-state="unsupported"] strong { color:var(--sim-red); }

@media (max-width: 1500px) {
  .sim-explorer-card { grid-template-columns:1fr; }
  .sim-card-preview svg { min-height:240px; }
  .sim-workbench-grid { grid-template-columns:minmax(220px,260px) minmax(400px,1fr) minmax(240px,300px); }
}
@media (max-width: 1180px) {
  .sim-explorer-hero-grid { grid-template-columns:1fr; }
  .sim-explorer-copy h1 { max-width:13ch; }
  .sim-explorer-hero-visual { min-height:380px; }
  .sim-filter-bar { grid-template-columns:repeat(3,1fr); position:relative; top:auto; }
  .sim-explorer-grid { grid-template-columns:1fr; }
  .sim-workbench-grid { grid-template-columns:minmax(220px,280px) minmax(0,1fr); grid-template-areas:"scenario scene" "proof scene" "timeline timeline" "representations representations"; }
  .sim-wb-proof-panel { position:relative; top:auto; max-height:none; }
  .sim-wb-scenario-panel { max-height:calc(100vh - 8.2rem); }
  .sim-wb-state-strip { grid-template-columns:repeat(3,1fr); }
  .sim-wb-state-strip div:nth-child(n+4) { border-top:1px solid var(--sim-line); }
}
@media (max-width: 820px) {
  .sim-explorer-hero { min-height:auto; }
  .sim-explorer-copy h1 { font-size:clamp(3.1rem,16vw,5.2rem); }
  .sim-hero-statline { grid-template-columns:repeat(2,1fr); }
  .sim-hero-statline span:nth-child(2) { border-right:0; }
  .sim-hero-statline span:nth-child(-n+2) { border-bottom:1px solid var(--sim-line); }
  .sim-explorer-hero-visual { min-height:290px; }
  .sim-explorer-heading-row { align-items:start; flex-direction:column; }
  .sim-filter-bar { grid-template-columns:1fr 1fr; }
  .sim-filter-reset { grid-column:1/-1; }
  .sim-path-grid,.sim-contract-grid,.sim-preview-content { grid-template-columns:1fr; }
  .sim-preview-content figure { min-height:260px; }
  .sim-workbench-titlebar-grid { grid-template-columns:1fr; }
  .sim-workbench-identifiers { grid-template-columns:1fr; }
  .sim-workbench-topbar { top:3.9rem; }
  .sim-workbench-grid { display:block; }
  .sim-wb-scenario-panel,.sim-wb-proof-panel { position:relative; top:auto; max-height:none; }
  .sim-wb-panel { border-right:0; }
  .sim-wb-canvas-shell { min-height:320px; }
  .sim-wb-state-strip,.sim-wb-performance { grid-template-columns:repeat(2,1fr); }
  .sim-wb-state-strip div,.sim-wb-performance div { border-top:1px solid var(--sim-line); }
  .sim-wb-timeline-controls { flex-wrap:wrap; }
  .sim-wb-timeline-readout { width:100%; margin:0; }
  .sim-wb-metrics-grid,.sim-wb-comparison-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 520px) {
  .sim-filter-bar { grid-template-columns:1fr; }
  .sim-filter-reset { grid-column:auto; }
  .sim-card-facts { grid-template-columns:1fr; }
  .sim-card-facts div { border-right:0; border-bottom:1px solid #d5dddf; }
  .sim-card-facts div:last-child { border-bottom:0; }
  .sim-workbench-topbar-inner { padding:.45rem 0; }
  .sim-wb-selector { width:100%; justify-content:space-between; }
  .sim-wb-selector select { flex:1; }
  .sim-wb-actions { width:100%; overflow:auto; }
  .sim-wb-state-strip,.sim-wb-performance,.sim-wb-metrics-grid,.sim-wb-comparison-grid { grid-template-columns:1fr; }
  .sim-wb-canvas-shell { min-height:260px; aspect-ratio:auto; width:100%; max-width:100%; }
  .sim-wb-canvas-shell canvas { width:100%; height:260px; max-width:100%; }
  .sim-wb-canvas-overlay { flex-wrap:wrap; gap:.35rem; }
  .sim-wb-canvas-overlay span { min-width:0; max-width:100%; overflow-wrap:anywhere; }
  .sim-wb-scene-fallback { max-width:100%; }
  .sim-wb-tabs { overflow:auto; flex-wrap:nowrap; }
  .sim-wb-tabs button { flex:0 0 auto; }
  .sim-wb-event-log li { grid-template-columns:1fr; gap:.3rem; }
}
@media (prefers-reduced-motion: reduce) {
  .sim-hero-pulse circle,.sim-wb-spinner { animation:none !important; }
  .sim-explorer-card { transition:none; }
}
@media (forced-colors: active) {
  .sim-explorer-card,.sim-path-card,.sim-wb-panel,.sim-wb-proof-item,.sim-wb-preset { border:1px solid CanvasText; }
  .sim-wb-mode-group button[aria-pressed="true"] { outline:3px solid Highlight; }
}

/* Workbench presentation, dynamic quality, and timeline evidence states. */
.sim-wb-performance { grid-template-columns:repeat(6,minmax(0,1fr)); }
.sim-wb-event-marker[data-bookmarked="true"] { box-shadow:0 0 0 3px rgba(239,188,104,.32); background:var(--sim-amber); }
.sim-workbench-shell.is-presentation { position:fixed; inset:0; z-index:9999; overflow:auto; background:var(--sim-bg); }
.sim-workbench-shell.is-presentation .sim-workbench-topbar { position:sticky; top:0; z-index:30; }
.sim-workbench-shell.is-presentation .sim-workbench-grid { max-width:none; min-height:calc(100vh - 4rem); grid-template-columns:minmax(210px,260px) minmax(0,1fr) minmax(240px,310px); }
.sim-workbench-shell.is-presentation .sim-wb-canvas-shell { min-height:min(66vh,760px); }
.sim-workbench-shell[data-quality="reduced"] .sim-hero-pulse circle,
.sim-workbench-shell[data-quality="reduced"] .sim-wb-spinner { animation:none !important; }
.sim-workbench-shell[data-quality="reduced"] .sim-wb-canvas-shell { min-height:360px; }
@media (max-width: 1180px) {
  .sim-wb-performance { grid-template-columns:repeat(3,1fr); }
  .sim-workbench-shell.is-presentation .sim-workbench-grid { grid-template-columns:minmax(210px,270px) minmax(0,1fr); grid-template-areas:"scenario scene" "proof scene" "timeline timeline" "representations representations"; }
}
@media (max-width: 720px) {
  .sim-wb-performance { grid-template-columns:repeat(2,1fr); }
  .sim-workbench-shell.is-presentation { position:relative; inset:auto; z-index:auto; }
}

/* 2.0 completion workbench enhancements */
.sim-wb-toolbar-select { display:inline-flex; align-items:center; gap:.4rem; color:var(--muted); font:600 .68rem/1.2 var(--font-mono); text-transform:uppercase; letter-spacing:.06em; }
.sim-wb-toolbar-select select { min-height:2rem; border:1px solid var(--line); background:#071319; color:var(--ink); padding:.28rem .5rem; }
.sim-wb-canvas-overlay { flex-wrap:wrap; gap:.45rem 1rem; }
[data-renderer-parity-digest] { color:var(--cyan); }
.sim-wb-chart-controls { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.7rem; align-items:center; margin-bottom:.75rem; color:var(--muted); }
.sim-wb-chart-controls label { display:flex; align-items:center; gap:.55rem; font-weight:700; }
.sim-wb-chart-controls select { min-height:2.25rem; border:1px solid var(--line); background:#071319; color:var(--ink); padding:.35rem .6rem; }
.sim-wb-chart-shell { width:100%; max-width:100%; min-height:210px; border:1px solid var(--line); background:#061015; overflow:hidden; }
.sim-wb-chart-shell canvas { display:block; width:100%; height:260px; max-width:100%; touch-action:manipulation; }
.sim-wb-autonomy-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem; margin-bottom:1rem; }
.sim-wb-autonomy-grid > section { border:1px solid var(--line); background:#071319; padding:.85rem; min-width:0; }
.sim-wb-definition-grid { display:grid; gap:.45rem; margin:0; }
.sim-wb-definition-grid > div { display:grid; grid-template-columns:minmax(7rem,.8fr) minmax(0,1.2fr); gap:.5rem; border-bottom:1px solid rgba(128,165,180,.16); padding-bottom:.35rem; }
.sim-wb-definition-grid dt { color:var(--muted); font-size:.76rem; }
.sim-wb-definition-grid dd { margin:0; overflow-wrap:anywhere; }
.sim-wb-divergence-controls { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:.65rem; margin:1rem 0; border:1px solid var(--line); padding:.65rem; background:#071319; }
.sim-wb-divergence-controls button,.sim-wb-branch-compare-controls button { border:1px solid var(--line); background:#0a1b22; color:var(--ink); padding:.48rem .65rem; }
.sim-wb-divergence-controls strong { color:var(--cyan); font-family:var(--font-mono); }
.sim-wb-dual-scenes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; margin:1rem 0; }
.sim-wb-dual-scenes figure { margin:0; min-width:0; border:1px solid var(--line); background:#061015; }
.sim-wb-dual-scenes figcaption { padding:.5rem .7rem; border-bottom:1px solid var(--line); color:var(--muted); font:700 .72rem/1.2 var(--font-mono); text-transform:uppercase; letter-spacing:.07em; }
.sim-wb-dual-scenes canvas { display:block; width:100%; height:360px; max-width:100%; touch-action:none; }
.sim-wb-branch-compare-controls { display:grid; gap:.55rem; }
.sim-wb-branch-compare-controls label { display:grid; gap:.25rem; color:var(--muted); font-size:.78rem; }
.sim-wb-branch-compare-controls select { width:100%; border:1px solid var(--line); background:#071319; color:var(--ink); padding:.45rem; }
.sim-wb-branch-visual { display:grid; grid-template-columns:minmax(0,2fr) minmax(14rem,1fr); gap:.8rem; align-items:start; margin:1rem 0; }
[data-branch-tree-svg] { width:100%; min-height:260px; border:1px solid var(--line); background:#061015; }
.branch-node { fill:#0b2029; stroke:#39c5cf; stroke-width:2; }
.branch-counterfactual { fill:#171427; stroke:#9c76d8; }
.branch-edge { fill:none; stroke:#657982; stroke-width:2; }
[data-branch-tree-svg] text { fill:#d9e3e7; font:700 13px var(--font-mono); }
[data-branch-tree-svg] .branch-id { fill:#9aabb3; font-size:10px; }
.sim-wb-branch-tree { white-space:pre-wrap; overflow:auto; min-height:260px; border:1px solid var(--line); background:#071319; padding:.85rem; font-family:var(--font-mono); font-size:.75rem; }
.sim-wb-tabpanel [aria-current="true"] { outline:2px solid var(--cyan); outline-offset:-2px; }

@media (max-width: 1100px) {
  .sim-wb-autonomy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sim-wb-dual-scenes { grid-template-columns:1fr; }
  .sim-wb-dual-scenes canvas { height:300px; }
  .sim-wb-branch-visual { grid-template-columns:1fr; }
}
@media (max-width: 620px) {
  .sim-wb-autonomy-grid { grid-template-columns:1fr; }
  .sim-wb-definition-grid > div { grid-template-columns:1fr; gap:.1rem; }
  .sim-wb-dual-scenes canvas { height:250px; }
  .sim-wb-chart-shell canvas { height:220px; }
}

/* Reflow hardening for 200%/400% zoom-equivalent viewports. Wide analytical
   controls scroll or wrap inside their own regions and never widen the page. */
.sim-workbench-topbar-inner,
.sim-wb-actions,
.sim-wb-scene-header,
.sim-wb-scene-toolbar,
.sim-wb-tabs {
  min-width: 0;
  max-width: 100%;
}
.sim-wb-tabs {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
}
@media (max-width: 520px) {
  .sim-wb-actions {
    overflow: visible;
    flex-wrap: wrap;
  }
  .sim-wb-actions .sim-wb-action {
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
  }
  .sim-wb-scene-header {
    align-items: stretch;
    flex-direction: column;
  }
  .sim-wb-scene-toolbar {
    width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
  }
  .sim-wb-toolbar-select {
    min-width: 0;
    max-width: 100%;
  }
  .sim-wb-toolbar-select select {
    min-width: 0;
    max-width: 100%;
  }
}

/* RC8 bounded Simulation Explorer recovery state. */
.sim-explorer-qualification {
  border-block: 1px solid rgba(233, 179, 78, .55);
  background: rgba(96, 67, 10, .22);
  padding: 1.2rem 0;
}
.sim-explorer-qualification h2 { margin: .2rem 0 .45rem; font-size: clamp(1.15rem, 2.2vw, 1.65rem); }
.sim-explorer-qualification p { max-width: 82ch; }
.sim-explorer-qualification code { overflow-wrap: anywhere; }

/* RC11 progressive replay delivery. The first authoritative analytical frame
   remains server-rendered while the complete 131-frame drone replay is
   re-derived through the same-origin API. */
.sim-wb-bootstrap-banner {
  display: grid;
  grid-template-columns: auto minmax(14rem, .9fr) minmax(18rem, 1.5fr);
  align-items: center;
  gap: .7rem 1rem;
  padding: .78rem clamp(.8rem, 2vw, 1.35rem);
  border-block: 1px solid rgba(239, 188, 104, .45);
  background:
    linear-gradient(90deg, rgba(239, 188, 104, .10), transparent 48%),
    #071319;
  color: var(--muted);
  font-size: .78rem;
}
.sim-wb-bootstrap-banner strong {
  color: var(--ink);
  font: 700 .78rem/1.35 var(--font-mono);
  letter-spacing: .025em;
}
.sim-workbench-shell[data-workbench-hydration="loading"] .sim-wb-bootstrap-banner {
  border-color: rgba(57, 197, 207, .52);
  background:
    linear-gradient(90deg, rgba(57, 197, 207, .12), transparent 55%),
    #071319;
}
.sim-workbench-shell[data-workbench-hydration="ready"] .sim-wb-bootstrap-banner {
  border-color: rgba(61, 190, 137, .48);
  background:
    linear-gradient(90deg, rgba(61, 190, 137, .11), transparent 55%),
    #071319;
}
.sim-workbench-shell[data-workbench-hydration="failed"] .sim-wb-bootstrap-banner {
  border-color: rgba(239, 188, 104, .68);
}
.sim-workbench-shell[data-workbench-hydration="loading"] button:disabled,
.sim-workbench-shell[data-workbench-hydration="loading"] input:disabled,
.sim-workbench-shell[data-workbench-hydration="loading"] select:disabled,
.sim-workbench-shell[data-workbench-hydration="failed"] [data-jump-event]:disabled,
.sim-workbench-shell[data-workbench-hydration="failed"] [data-timeline-range]:disabled {
  cursor: progress;
  opacity: .55;
}
@media (max-width: 900px) {
  .sim-wb-bootstrap-banner { grid-template-columns: 1fr; align-items: start; }
}
@media (forced-colors: active) {
  .sim-wb-bootstrap-banner { border: 2px solid CanvasText; background: Canvas; color: CanvasText; }
}

/* RC11 bounded hydration retry, Save-Data deferral, and accessible fallback. */
.sim-wb-bootstrap-attempt {
  justify-self: start;
  padding: .2rem .42rem;
  border: 1px solid rgba(57, 197, 207, .32);
  color: var(--muted);
  font: 700 .68rem/1.2 var(--font-mono);
  letter-spacing: .05em;
  text-transform: uppercase;
}
.sim-wb-bootstrap-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}
.sim-wb-bootstrap-actions .button {
  min-height: 2.15rem;
  padding: .42rem .68rem;
  font-size: .72rem;
}
.sim-wb-bootstrap-banner small {
  grid-column: 2 / -1;
  max-width: 100ch;
  color: var(--muted);
  line-height: 1.45;
}
.sim-workbench-shell[data-workbench-hydration="retrying"] .sim-wb-bootstrap-banner,
.sim-workbench-shell[data-workbench-hydration="deferred"] .sim-wb-bootstrap-banner,
.sim-workbench-shell[data-workbench-hydration="fallback"] .sim-wb-bootstrap-banner {
  border-color: rgba(239, 188, 104, .62);
  background:
    linear-gradient(90deg, rgba(239, 188, 104, .10), transparent 55%),
    #071319;
}
.sim-workbench-shell[data-workbench-hydration="ready"] .sim-wb-bootstrap-attempt {
  border-color: rgba(61, 190, 137, .52);
  color: var(--ink);
}
.sim-workbench-shell[data-workbench-hydration="failed"] .sim-wb-bootstrap-attempt {
  border-color: rgba(239, 188, 104, .68);
  color: var(--ink);
}
@media (max-width: 900px) {
  .sim-wb-bootstrap-banner small { grid-column: 1; }
  .sim-wb-bootstrap-actions { width: 100%; }
}
@media (forced-colors: active) {
  .sim-wb-bootstrap-attempt { border: 1px solid CanvasText; color: CanvasText; }
}

/* RC21 command hierarchy, autonomy decision focus, and short-height desktop
   hardening. These controls reorganize the workbench without changing the
   authoritative deterministic state or the analytical representations. */
.sim-wb-command-primary {
  align-items:center;
  flex-wrap:nowrap;
  max-width:100%;
}
.sim-wb-command-primary > .sim-wb-action[aria-pressed="true"] {
  border-color:var(--sim-cyan);
  color:var(--sim-cyan);
  box-shadow:inset 0 -2px 0 var(--sim-cyan);
}
.sim-wb-tools,
.sim-wb-scene-tools { position:relative; }
.sim-wb-tools > summary,
.sim-wb-scene-tools > summary {
  list-style:none;
  cursor:pointer;
  user-select:none;
}
.sim-wb-tools > summary::-webkit-details-marker,
.sim-wb-scene-tools > summary::-webkit-details-marker { display:none; }
.sim-wb-tools[open] > summary,
.sim-wb-scene-tools[open] > summary { border-color:var(--sim-cyan); color:var(--sim-cyan); }
.sim-wb-tools-menu,
.sim-wb-scene-tools > div {
  position:absolute;
  z-index:45;
  right:0;
  top:calc(100% + .35rem);
  width:min(21rem,80vw);
  display:grid;
  gap:1px;
  border:1px solid var(--sim-line-strong);
  background:var(--sim-line);
  box-shadow:0 18px 44px rgba(0,0,0,.55);
}
.sim-wb-tools-menu a,
.sim-wb-tools-menu button,
.sim-wb-scene-tools > div > button,
.sim-wb-scene-tools > div > label {
  width:100%;
  min-height:2.45rem;
  margin:0;
  border:0;
  background:#091820;
  color:var(--sim-text);
  padding:.58rem .72rem;
  text-align:left;
  font:700 .67rem/1.3 ui-monospace,monospace;
}
.sim-wb-tools-menu a:hover,
.sim-wb-tools-menu button:hover,
.sim-wb-scene-tools > div > button:hover { background:#0d2630; color:var(--sim-cyan); }
.sim-wb-scene-tools > summary {
  display:inline-flex;
  align-items:center;
  min-height:2rem;
  border:1px solid var(--sim-line);
  background:#0b1a22;
  color:var(--sim-text);
  padding:.42rem .55rem;
  font:700 .62rem ui-monospace,monospace;
}
.sim-wb-scene-tools > div { left:auto; right:0; width:18rem; }
.sim-wb-toolbar-select select { margin-left:.35rem; }

.sim-wb-active-preset {
  display:grid;
  gap:.18rem;
  margin:0 0 .55rem;
  border-left:3px solid var(--sim-cyan);
  background:#071b23;
  padding:.65rem .72rem;
}
.sim-wb-active-preset > span { color:var(--sim-muted); font:700 .57rem ui-monospace,monospace; letter-spacing:.08em; }
.sim-wb-active-preset > strong { color:var(--sim-text); font-size:.78rem; }
.sim-wb-active-preset > small { color:var(--sim-muted); font-size:.66rem; line-height:1.35; }
.sim-wb-preset-browser { margin-bottom:1rem; border:1px solid var(--sim-line); }
.sim-wb-preset-browser > summary { cursor:pointer; padding:.55rem .65rem; color:var(--sim-cyan); font:700 .64rem ui-monospace,monospace; text-transform:uppercase; }
.sim-wb-preset-browser .sim-wb-preset-list { max-height:28rem; overflow:auto; margin:0; padding:.4rem; border-top:1px solid var(--sim-line); }

.sim-wb-decision-focus {
  border-color:rgba(239,188,104,.72) !important;
  color:var(--sim-amber) !important;
  box-shadow:inset 0 -2px 0 rgba(239,188,104,.55);
}
.sim-wb-layer-toolbar { padding:.45rem .7rem; border-bottom:1px solid var(--sim-line); }
.sim-wb-mission-hud {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  border-bottom:1px solid var(--sim-line);
  background:#031016;
}
.sim-wb-mission-hud > div { min-width:0; padding:.58rem .7rem; border-right:1px solid var(--sim-line); }
.sim-wb-mission-hud > div:last-child { border-right:0; }
.sim-wb-mission-hud span { display:block; color:var(--sim-muted); font:700 .53rem ui-monospace,monospace; letter-spacing:.06em; }
.sim-wb-mission-hud strong { display:block; margin-top:.2rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--sim-text); font:800 .73rem ui-monospace,monospace; }
.sim-wb-mission-hud[data-state="attention"] { box-shadow:inset 0 2px 0 var(--sim-amber); }
.sim-wb-mission-hud[data-state="critical"] { box-shadow:inset 0 2px 0 var(--sim-red); }
.sim-wb-mission-hud[data-state="recovering"] { box-shadow:inset 0 2px 0 var(--sim-green); }
.sim-wb-mission-hud[data-state="attention"] strong { color:var(--sim-amber); }
.sim-wb-mission-hud[data-state="critical"] strong { color:#ffd1cd; }
.sim-wb-mission-hud[data-state="recovering"] strong { color:var(--sim-green); }
.sim-wb-semantic-legend {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.35rem 1rem;
  padding:.38rem .72rem;
  border-bottom:1px solid var(--sim-line);
  background:#07141b;
}
.sim-wb-semantic-legend > span { display:grid; grid-template-columns:auto auto; grid-template-rows:auto auto; column-gap:.42rem; align-items:center; min-width:0; }
.sim-wb-semantic-legend i { grid-row:1 / 3; width:1.5rem; height:.55rem; display:block; }
.sim-wb-semantic-legend b { color:var(--sim-text); font:800 .57rem ui-monospace,monospace; letter-spacing:.04em; }
.sim-wb-semantic-legend small { color:var(--sim-muted); font-size:.58rem; }
.sim-wb-semantic-legend [data-legend="truth"] i { border:1px solid #d9e3e6; background:rgba(217,227,230,.2); }
.sim-wb-semantic-legend [data-legend="belief"] i { border:1px dashed var(--sim-cyan); background:repeating-linear-gradient(90deg,transparent 0 3px,rgba(57,197,207,.25) 3px 5px); }
.sim-wb-semantic-legend [data-legend="intent"] i { border-top:3px solid var(--sim-amber); clip-path:polygon(0 30%,72% 30%,72% 0,100% 50%,72% 100%,72% 70%,0 70%); background:var(--sim-amber); }

.sim-wb-proof-filter { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:.5rem; margin:0 0 .75rem; }
.sim-wb-proof-filter label { color:var(--sim-muted); font:700 .58rem ui-monospace,monospace; text-transform:uppercase; }
.sim-wb-proof-filter select { min-width:0; width:100%; border:1px solid var(--sim-line); background:#071219; color:var(--sim-text); padding:.46rem .52rem; border-radius:0; font:700 .65rem ui-monospace,monospace; }
.sim-wb-proof-empty { margin:.5rem 0; padding:.75rem; border:1px dashed var(--sim-line); color:var(--sim-muted); font-size:.72rem; }
.sim-wb-proof-item summary { grid-template-columns:minmax(0,1fr) auto; }
.sim-wb-proof-item .sim-proof-id { grid-column:1 / -1; overflow-wrap:anywhere; line-height:1.25; }
.sim-wb-proof-item .sim-proof-name { min-width:0; line-height:1.35; overflow-wrap:break-word; }
.sim-wb-proof-status { align-self:start; }

/* Independent rail controls preserve the full analytical capability while
   allowing the central scene to dominate when the task requires spatial focus. */
.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; }
.sim-workbench-shell.is-inputs-collapsed .sim-workbench-grid {
  grid-template-columns:minmax(0,1fr) minmax(300px,340px);
  grid-template-areas:"scene proof" "timeline timeline" "representations representations";
}
.sim-workbench-shell.is-proof-collapsed .sim-workbench-grid {
  grid-template-columns:minmax(230px,290px) minmax(0,1fr);
  grid-template-areas:"scenario scene" "timeline timeline" "representations representations";
}
.sim-workbench-shell.is-inputs-collapsed.is-proof-collapsed .sim-workbench-grid,
.sim-workbench-shell.is-focus-mode .sim-workbench-grid {
  grid-template-columns:minmax(0,1fr);
  grid-template-areas:"scene" "timeline" "representations";
}
.sim-workbench-shell.is-focus-mode .sim-wb-canvas-shell { min-height:min(68vh,760px); }

/* Verified replay delivery should remain visible without permanently consuming
   a full information row after all 131 authoritative frames are synchronized. */
.sim-workbench-shell[data-workbench-hydration="ready"] .sim-wb-bootstrap-banner {
  grid-template-columns:auto minmax(0,1fr) auto;
  min-height:2.4rem;
  padding:.38rem .75rem;
  font-size:.68rem;
}
.sim-workbench-shell[data-workbench-hydration="ready"] .sim-wb-bootstrap-banner [data-bootstrap-detail] { display:none; }
.sim-workbench-shell[data-workbench-hydration="ready"] .sim-wb-bootstrap-banner strong { font-size:.69rem; }

@media (max-width:1180px) {
  .sim-wb-command-primary { flex-wrap:wrap; }
  .sim-workbench-shell.is-inputs-collapsed .sim-workbench-grid,
  .sim-workbench-shell.is-proof-collapsed .sim-workbench-grid {
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"scene" "scenario" "proof" "timeline" "representations";
  }
  .sim-workbench-shell.is-inputs-collapsed [data-proof-panel],
  .sim-workbench-shell.is-proof-collapsed [data-inputs-panel] { display:block; }
}

@media (max-width:820px) {
  .sim-wb-command-primary { width:100%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
  .sim-wb-command-primary .sim-wb-action,
  .sim-wb-command-primary .sim-wb-tools > summary { width:100%; min-width:0; text-align:center; }
  .sim-wb-tools-menu { position:fixed; left:.75rem; right:.75rem; top:auto; width:auto; }
  .sim-wb-mission-hud { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sim-wb-mission-hud > div { border-top:1px solid var(--sim-line); }
  .sim-wb-mission-hud > div:last-child { grid-column:1 / -1; }
  .sim-wb-semantic-legend { align-items:flex-start; flex-direction:column; }
  .sim-workbench-shell.is-inputs-collapsed [data-inputs-panel],
  .sim-workbench-shell.is-proof-collapsed [data-proof-panel] { display:none; }
}

/* Explicit short-height desktop mode for common 1366×600-class workspaces. */
@media (min-width:821px) and (max-height:720px) {
  .simulation-workbench-page .sim-workbench-titlebar { display:none; }
  .sim-workbench-topbar { top:4rem; }
  .sim-workbench-topbar-inner { min-height:3.35rem; gap:.35rem; padding:.25rem 0; }
  .sim-wb-selector select,.sim-wb-selector button,.sim-wb-action { min-height:2rem; padding:.35rem .5rem; font-size:.61rem; }
  .sim-wb-run-status { font-size:.6rem; gap:.42rem; }
  .sim-workbench-grid { grid-template-columns:240px minmax(0,1fr) 320px; }
  .sim-wb-scenario-panel,.sim-wb-proof-panel { top:7.35rem; max-height:calc(100vh - 7.35rem); }
  .sim-wb-panel-header { padding:.55rem .65rem; }
  .sim-wb-panel-body { padding:.62rem; }
  .sim-wb-guided { padding:.55rem; margin-bottom:.55rem; }
  .sim-wb-preset-browser .sim-wb-preset-list { max-height:18rem; }
  .sim-wb-scene-header { padding:.42rem .62rem; }
  .sim-wb-scene-header h2 { font-size:.88rem; margin:.12rem 0 0; }
  .sim-wb-scene-toolbar { flex-wrap:nowrap; }
  .sim-wb-state-strip div { padding:.42rem .55rem; }
  .sim-wb-mission-hud > div { padding:.42rem .55rem; }
  .sim-wb-layer-toolbar { max-height:2.2rem; overflow-x:auto; flex-wrap:nowrap; padding:.28rem .55rem; }
  .sim-wb-semantic-legend { padding:.28rem .55rem; }
  .sim-wb-canvas-shell { min-height:300px; aspect-ratio:auto; height:calc(100vh - 20.6rem); }
  .sim-wb-performance div { padding:.35rem .5rem; }
  .sim-wb-timeline { padding:.42rem .7rem; }
  .sim-wb-timeline-track { margin-top:.35rem; }
  .sim-wb-timeline-event { padding-top:.3rem; }
  .sim-wb-proof-summary { margin-bottom:.55rem; }
  .sim-wb-proof-summary div { padding:.4rem; }
  .sim-wb-proof-summary strong { font-size:1rem; }
}

@media (forced-colors:active) {
  .sim-wb-mission-hud,
  .sim-wb-semantic-legend,
  .sim-wb-tools-menu,
  .sim-wb-active-preset { border:1px solid CanvasText; }
  .sim-wb-semantic-legend i { forced-color-adjust:none; }
}

/* --------------------------------------------------------------------------
   RC27 final Simulation Explorer: distinct image dossiers + liquid geometry
   -------------------------------------------------------------------------- */
:root {
  --sim-preview-cyan: #6fdfea;
  --sim-preview-blue: #82b7ff;
  --sim-preview-green: #85d3a3;
  --sim-preview-amber: #efbc68;
  --sim-preview-red: #f17872;
}

.sim-explorer-hero {
  min-height: 0;
  padding-block: clamp(3.5rem, 7vw, 7rem);
}
.sim-explorer-hero-grid {
  grid-template-columns: minmax(0, 1.02fr) minmax(min(100%, 30rem), .98fr);
  gap: clamp(2rem, 5vw, 6rem);
  padding-block: 0;
}
.sim-explorer-copy h1 {
  max-width: 13ch;
  font-size: clamp(3rem, 6.2vw, 6.8rem);
  line-height: .9;
}
.sim-explorer-copy .hero-lede { font-size: clamp(1rem, 1.45vw, 1.25rem); }
.sim-explorer-hero-visual { min-height: clamp(21rem, 36vw, 32rem); }
.sim-hero-statline { grid-template-columns: repeat(auto-fit, minmax(8.75rem, 1fr)); }
.sim-hero-statline span { min-width: 0; }

.sim-explorer-section { padding-block: clamp(3.5rem, 6vw, 6.5rem); }
.sim-explorer-heading-row { align-items: end; margin-bottom: 1rem; }
.sim-explorer-heading-row h2 { max-width: 23ch; font-size: clamp(2.2rem, 4vw, 4.35rem); }
.sim-explorer-intro { max-width: 88ch; }
.sim-filter-bar {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.5rem), 1fr));
  position: sticky;
  top: calc(var(--header-h, 4.8rem) + .5rem);
  z-index: 12;
}
.sim-filter-bar label,
.sim-filter-reset { min-width: 0; }
.sim-filter-reset { min-height: 3.9rem; }

.sim-explorer-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
  gap: clamp(.9rem, 1.5vw, 1.5rem);
  align-items: stretch;
}
@media (min-width: 80rem) and (max-width: 103.99rem) {
  .sim-explorer-card { display: flex; grid-template-columns: none; }
}
.sim-explorer-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 100%;
  overflow: clip;
  border-color: #aebdc1;
}
@media (min-width: 80rem) and (max-width: 103.99rem) {
  .sim-card-preview { aspect-ratio: 8 / 5; min-height: 0; border-right: 0; }
}
.sim-card-preview {
  flex: 0 0 auto;
  min-height: 0;
  aspect-ratio: 8 / 5;
  border-right: 0;
  border-bottom: 1px solid #9fb0b5;
}
.sim-card-preview-link {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  text-decoration: none;
}
.sim-card-preview-link:focus-visible { outline-offset: -5px; }
.sim-card-preview .sim-preview-art {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .24s ease, filter .24s ease;
}
.sim-explorer-card:hover .sim-preview-art,
.sim-explorer-card:focus-within .sim-preview-art { transform: scale(1.018); filter: saturate(1.08) contrast(1.04); }
.sim-card-visual-index { z-index: 3; }
.sim-card-body { min-height: 22rem; flex: 1 1 auto; }
.sim-card-body h3 { max-width: 24ch; }
.sim-card-purpose { flex: 0 0 auto; }
.sim-capability-badges { min-height: 2.2rem; }
.sim-card-facts { margin-top: auto; }
.sim-card-actions { margin-top: 0; }
.sim-card-actions .button { flex: 1 1 10rem; justify-content: center; }

.sim-learning-paths { padding-block: clamp(3.5rem, 6vw, 6.5rem); }
.sim-path-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }

.sim-featured-workbenches {
  padding-block: clamp(3.5rem, 6vw, 6.5rem);
  color: var(--sim-text);
  background: #0e1b24;
  border-top: 1px solid var(--sim-line);
  border-bottom: 1px solid var(--sim-line);
}
.sim-featured-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr));
  gap: 1px;
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
  background: var(--sim-line);
  border: 1px solid var(--sim-line);
}
.sim-featured-grid article {
  min-width: 0;
  min-height: 18rem;
  display: flex;
  flex-direction: column;
  padding: clamp(1.2rem, 2vw, 1.7rem);
  background: #0a161e;
}
.sim-featured-grid article > span { color: var(--sim-cyan); font-size: .68rem; letter-spacing: .09em; }
.sim-featured-grid h3 { margin-top: 1rem; font-size: clamp(1.3rem, 1.8vw, 1.75rem); }
.sim-featured-grid p { color: var(--sim-muted); }
.sim-featured-grid a { margin-top: auto; color: var(--sim-cyan); font-weight: 800; text-decoration: none; }
.sim-featured-grid a:hover { text-decoration: underline; }

.sim-preview-dialog { width: min(calc(100% - 2rem), 72rem); max-height: min(88vh, 54rem); }
.sim-preview-content { grid-template-columns: minmax(0, 1.25fr) minmax(min(100%, 22rem), .75fr); }
.sim-preview-content figure { min-width: 0; aspect-ratio: 8 / 5; overflow: hidden; background: #061018; }
.sim-preview-content figure .sim-preview-art { width: 100%; height: 100%; object-fit: cover; }

@media (min-width: 112rem) {
  .sim-explorer-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 82rem) {
  .sim-filter-bar { position: relative; top: auto; }
  .sim-explorer-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(min(100%, 27rem), .75fr); }
}
@media (max-width: 64rem) {
  .sim-explorer-hero-grid { grid-template-columns: 1fr; }
  .sim-explorer-hero-visual { min-height: 20rem; max-width: 44rem; width: 100%; margin-inline: auto; }
  .sim-preview-content { grid-template-columns: 1fr; }
}
@media (max-width: 46rem) {
  .sim-explorer-hero { padding-block: 3rem; }
  .sim-explorer-copy h1 { font-size: clamp(2.7rem, 14vw, 4.75rem); }
  .sim-hero-statline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sim-hero-statline span:nth-child(2n) { border-right: 0; }
  .sim-explorer-heading-row { align-items: start; flex-direction: column; }
  .sim-explorer-count { min-width: 0; }
  .sim-filter-bar { grid-template-columns: 1fr; }
  .sim-filter-reset { grid-column: auto; }
  .sim-card-body { min-height: 0; }
  .sim-card-facts { grid-template-columns: 1fr 1fr; }
  .sim-card-facts div { border-bottom: 1px solid #d5dddf; }
  .sim-card-facts div:nth-child(2) { border-right: 0; }
  .sim-card-facts div:last-child { grid-column: 1 / -1; border-bottom: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .sim-card-preview .sim-preview-art { transition: none; }
  .sim-explorer-card:hover .sim-preview-art,
  .sim-explorer-card:focus-within .sim-preview-art { transform: none; }
}

/* Keep incomplete final rows visually open instead of exposing the grid's
   separator color as a large false card. */
.sim-featured-grid { gap: clamp(.75rem, 1.25vw, 1.1rem); background: transparent; border: 0; }
.sim-featured-grid article { border: 1px solid var(--sim-line); }
