:root {
  color-scheme: dark;
  --bg: #101516;
  --card: #1a2224;
  --line: #2d393c;
  --muted: #99aaad;
  --accent: #c0eb9d;
  --text: #edf3ee
}

* {
  box-sizing: border-box
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font: 14px/1.5 system-ui, -apple-system, sans-serif
}

aside {
  width: 235px;
  position: fixed;
  inset: 0 auto 0 0;
  background: #151c1e;
  border-right: 1px solid var(--line);
  padding: 30px 20px;
  display: flex;
  flex-direction: column
}

a {
  color: inherit;
  text-decoration: none
}

.brand {
  font-size: 18px;
  font-weight: 650;
  display: flex;
  gap: 9px;
  align-items: center;
  flex-wrap: wrap
}

.brand small {
  margin-left: 44px;
  font: 10px monospace;
  letter-spacing: .25em;
  color: var(--muted)
}

.mark {
  border: 1px solid var(--accent);
  color: var(--accent);
  padding: 5px;
  border-radius: 8px;
  font-size: 15px
}

nav {
  display: grid;
  gap: 7px;
  /* margin-top: 50px */
}

nav a {
  padding: 12px;
  border-radius: 8px;
  color: var(--muted);
  display: flex;
  gap: 15px
}

nav a.active,
nav a:hover {
  background: #26322c;
  color: var(--accent)
}

.sidebar-bottom {
  margin-top: auto;
  color: var(--muted);
  font-size: 12px
}

.dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  background: var(--accent);
  border-radius: 50%;
  margin-right: 6px
}

main {
  margin-left: 235px;
  padding: 40px 48px;
  max-width: 1800px
}

.eyebrow {
  font: 11px monospace;
  letter-spacing: .17em;
  color: var(--accent);
  text-transform: uppercase
}

h1 {
  font-size: 38px;
  line-height: 1.15;
  letter-spacing: -1.2px;
  margin: 14px 0
}

h2 {
  font-size: 20px;
  font-weight: 550
}

h3 {
  font-size: 17px;
  font-weight: 550
}

p {
  color: var(--muted)
}

.hero {
  padding: 24px 0 32px
}

.search {
  width: 100%;
  padding: 17px 20px;
  margin-top: 20px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--text);
  font-size: 15px
}

.section-head {
  display: flex;
  align-items: center;
  gap: 20px;
  justify-content: space-between;
  margin: 30px 0 12px
}

.section-head a {
  color: var(--accent);
  font-size: 13px
}

.tabs {
  display: flex;
  gap: 10px;
  margin: 12px 0 20px
}

.tabs button {
  border: 0;
  background: transparent;
  color: var(--muted);
  padding: 8px 18px
}

.tabs button.active {
  background: #29362d;
  color: var(--accent)
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(245px, 1fr));
  gap: 16px
}

.card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 13px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  min-height: 200px
}

.card .tag {
  padding-top: 18px;
  font: 14px monospace;
  color: var(--accent);
  text-transform: uppercase
}

.card p {
  font-size: 13px;
  flex: 1;
  margin: 0 0 20px
}

.card h3 {
  margin: 18px 0 8px
}

.actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap
}

button,
.button,
select,
input {
  font: inherit;
  border-radius: 7px;
  border: 1px solid var(--line);
  padding: 9px 13px;
  background: #253034;
  color: var(--text)
}

button,
.button {
  cursor: pointer
}

button:hover,
.button:hover {
  border-color: var(--accent)
}

button:disabled {
  opacity: .4;
  cursor: not-allowed
}

.primary {
  background: var(--accent);
  border-color: var(--accent);
  color: #1b291b;
  font-weight: 600
}

.danger {
  color: #ffb4ad;
  border-color: #663c3b
}

input[type=range] {
  padding: 0;
  width: 100%;
  accent-color: var(--accent)
}

input:not([type=range]) {
  min-width: 0
}

select {
  min-width: 110px
}

.empty {
  padding: 35px;
  border: 1px dashed var(--line);
  border-radius: 12px;
  color: var(--muted)
}

.stats {
  display: flex;
  gap: 30px;
  padding: 20px 0;
  color: var(--muted);
  flex-wrap: wrap
}

.stats strong {
  color: var(--text);
  font-size: 24px;
  display: block
}

.note {
  border-left: 2px solid var(--accent);
  padding: 12px 18px;
  background: var(--card);
  color: var(--muted);
  margin: 20px 0
}

dialog {
  width: min(900px, 90vw);
  max-height: 88vh;
  background: var(--bg);
  color: var(--text);
  border: 1px solid var(--line);
  border-radius: 15px;
  padding: 25px
}

dialog::backdrop {
  background: #000a
}

dialog header {
  display: flex;
  justify-content: space-between;
  align-items: center
}

pre {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  background: #0c1112;
  padding: 20px;
  border-radius: 8px;
  font: 12px/1.7 ui-monospace, monospace;
  max-height: 65vh;
  overflow: auto
}

label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 13px
}

.form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px
}

.form label input {
  width: 100%
}

.sim-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  flex-wrap: wrap
}

.views {
  height: 65vh;
  min-height: 420px;
  background: var(--card);
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  border: 1px solid var(--line);
  margin: 18px 0
}

.views canvas {
  width: 100%;
  height: 100%;
  display: block
}

.view-label {
  position: absolute;
  top: 15px;
  left: 15px;
  background: #172326cc;
  padding: 5px 9px;
  border-radius: 5px;
  font: 10px monospace;
  pointer-events: none
}

.loading {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  text-align: center;
  background: var(--card);
  gap: 20px
}

.spinner {
  width: 34px;
  height: 34px;
  border: 2px solid var(--line);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin: auto
}

@keyframes spin {
  to {
    transform: rotate(360deg)
  }
}

.controls {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px
}

.joints label {
  grid-template-columns: 140px 1fr 45px;
  align-items: center;
  gap: 12px;
  margin: 12px 0
}

.joints summary {
  cursor: pointer;
  color: var(--accent);
  padding: 12px 0
}

#toast {
  position: fixed;
  right: 30px;
  bottom: 30px;
  background: #314538;
  border: 1px solid var(--accent);
  border-radius: 10px;
  padding: 16px;
  z-index: 50;
  max-width: 500px
}

table {
  width: 100%;
  border-collapse: collapse
}

td,
th {
  text-align: left;
  padding: 12px;
  border-bottom: 1px solid var(--line)
}

td {
  color: var(--muted)
}

.file-list {
  display: flex;
  gap: 10px;
  flex-wrap: wrap
}

.file-list a {
  color: var(--accent);
  border: 1px solid var(--line);
  padding: 7px
}

.recipe {
  margin-top: 20px
}

.muted {
  color: var(--muted)
}

@media(max-width:900px) {
  aside {
    width: 75px;
    padding: 20px 10px
  }

  .brand {
    font-size: 0
  }

  .brand small,
  nav span,
  .sidebar-bottom {
    display: none
  }

  nav a {
    justify-content: center;
    padding: 10px
  }

  main {
    margin-left: 75px;
    padding: 25px 20px
  }

  h1 {
    font-size: 29px
  }

  .views {
    height: 55vh
  }
}

@media(prefers-reduced-motion:reduce) {
  .spinner {
    animation: none
  }
}

/* Match the established D1 workspace rather than introducing a new visual theme. */
:root {
  --bg: #101519;
  --card: #192126;
  --line: #2d383d;
  --muted: #92a6aa;
  --accent: #a3e5c3;
  --text: #edf3f2
}

body {
  font: 14px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif
}

main {
  padding: 24px 30px;
  max-width: none
}

h1 {
  font-size: 23px;
  letter-spacing: 0;
  line-height: 1.4
}

.hero h1 {
  font-size: 30px
}

.eyebrow {
  font: 10px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--muted);
  font-weight: 700;
  letter-spacing: .14em
}

.card {
  border-radius: 12px;
  padding: 20px;
  min-height: 0
}

button,
.button,
select,
input {
  background: #263238;
  border-radius: 9px;
  padding: 11px 15px
}

.primary {
  background: var(--accent);
  color: #14291f
}

.brand-logo {
  width: 150px;
  object-fit: contain
}

.brand small {
  margin-left: 0;
  letter-spacing: 0;
  font: 12px sans-serif
}

.brand-title {
  display: flex;
  gap: 8px;
  align-items: center;
  font-size: 20px
}

.brand-title img {
  width: 160px
}

.brand-title span {
  color: var(--muted);
  font-size: 14px
}

.sim-head {
  margin-bottom: 24px
}

.runtime-pill {
  font: 10px monospace;
  letter-spacing: .06em;
  color: var(--muted)
}

.runtime-pill span {
  margin-left: 14px
}

.task-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 0 20px
}

.task-line h1 {
  font-size: 18px;
  font-weight: 600;
  margin: 6px 0
}

.sim-studio {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 18px;
  align-items: start
}

.sim-workspace {
  min-width: 0
}

.views {
  margin: 0;
  border: 0;
  border-radius: 12px;
  height: clamp(400px, 53vw, 690px);
  min-height: 0
}

.camera-labels {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 69% 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 12px;
  pointer-events: none
}

.camera-pane {
  position: relative;
  min-height: 0;
  border: 1px solid #52606455;
  border-radius: 12px;
  overflow: hidden
}

.pane-0 {
  grid-row: span 2
}

.view-label {
  top: 12px;
  left: 12px;
  background: #182329dd;
  padding: 6px 9px;
  border-radius: 4px;
  font: 10px monospace;
  letter-spacing: .06em
}

.camera-pane small {
  position: absolute;
  right: 12px;
  top: 12px;
  padding: 5px 7px;
  background: #182329bb;
  color: white;
  border-radius: 4px;
  font-size: 10px
}

.camera-buttons {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 3px;
  padding: 5px;
  background: #19262dcc;
  border-radius: 9px;
  pointer-events: auto;
  white-space: nowrap
}

.camera-buttons button {
  padding: 5px 8px;
  border: 0;
  border-radius: 4px;
  font-size: 13px
}

.sim-telemetry {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  align-items: center;
  padding: 16px;
  margin: 14px 0 0;
  border: 1px solid var(--line);
  border-radius: 12px
}

.sim-telemetry label {
  font-size: 10px;
  letter-spacing: .06em
}

.sim-telemetry output {
  display: block;
  font: 12px monospace;
  margin-top: 9px
}

.sim-telemetry select {
  padding: 5px 9px;
  font: 12px monospace
}

.sim-status {
  color: var(--accent);
  font: 12px monospace;
  padding: 15px 0 24px
}

.sim-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 385px;
  gap: 18px
}

.controls {
  display: block
}

.controls .card {
  margin-bottom: 18px
}

.card-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 14px;
  font-weight: 650;
  margin-bottom: 18px
}

.card-title small {
  font-weight: 400;
  color: var(--muted)
}

.controls h3 {
  font-size: 11px;
  letter-spacing: .06em;
  color: var(--muted);
  margin-top: 22px
}

.controls .actions button {
  flex: 1;
  min-width: 85px;
  padding: 16px 12px
}

.controls details {
  border-top: 1px solid var(--line)
}

.controls #reset {
  width: 100%
}

.saved-panel article {
  border-top: 1px solid var(--line);
  padding: 16px 0
}

.saved-panel article a {
  display: block;
  color: var(--accent);
  margin-top: 9px
}

.sim-chat {
  position: sticky;
  top: 18px;
  height: 800px;
  display: flex;
  flex-direction: column;
  padding: 16px
}

.sim-chat #chat-log {
  flex: 1;
  overflow: auto;
  min-height: 120px
}

.chat-empty {
  height: 100%;
  min-height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 16px
}

.chat-empty img {
  width: 180px
}

.chat-empty small {
  color: var(--muted);
  font-size: 11px
}

.sim-chat form {
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #11191d
}

.sim-chat textarea {
  width: 100%;
  resize: vertical;
  background: transparent;
  border: 0;
  color: var(--text);
  font: 13px/1.5 inherit;
  min-height: 80px;
  outline: none
}

.chat-actions {
  display: flex;
  gap: 8px;
  align-items: center
}

.chat-actions select {
  flex: 1;
  min-width: 0;
  padding: 7px;
  font-size: 12px
}

.chat-actions button {
  padding: 6px 10px
}

.sim-chat summary {
  font-size: 10px;
  color: var(--muted);
  cursor: pointer;
  padding-top: 8px
}

.sim-chat details select {
  max-width: 100%;
  font-size: 12px;
  margin-top: 8px
}

.sim-chat>small {
  font-size: 10px;
  margin-top: 10px
}

.chat-message {
  white-space: pre-wrap;
  line-height: 1.6;
  margin: 12px 0;
  font-size: 13px
}

.chat-message.user {
  background: #263238;
  border-radius: 12px;
  padding: 12px
}

.chat-message.action {
  color: var(--muted);
  border-left: 2px solid var(--accent);
  padding-left: 12px;
  font-size: 12px
}

.agent-active {
  background: var(--accent) !important;
  color: #14291f !important
}

#navToggle {
  position: fixed;
  left: 12px;
  top: 12px;
  z-index: 45;
  padding: 7px 10px
}

#studioNav {
  padding-top: 60px;
  transition: transform .15s
}

body.nav-closed #studioNav {
  transform: translateX(-100%)
}

body.nav-closed>main {
  margin-left: 0;
  padding-left: 60px
}

.example-frame {
  width: 100%;
  height: calc(100vh - 140px);
  border: 0;
  border-radius: 12px
}

.native-views {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px
}

.native-view {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  min-height: 350px;
  background: var(--card)
}

.native-view img {
  width: 100%;
  height: 100%;
  object-fit: contain
}

.native-view span {
  position: absolute;
  top: 15px;
  left: 15px;
  background: #182329dd;
  padding: 8px;
  border-radius: 5px;
  font: 11px monospace
}

.native-view p {
  position: absolute;
  top: 45%;
  width: 100%;
  text-align: center
}

.native-view[hidden] {
  display: none
}

@media(min-width:1900px) {
  .sim-studio {
    grid-template-columns: minmax(0, 1fr) 420px
  }

  .views {
    height: 750px
  }
}

@media(max-width:1250px) {
  .sim-studio {
    grid-template-columns: minmax(0, 1fr) 300px
  }

  .sim-bottom {
    grid-template-columns: 1fr
  }

  .views {
    height: 460px
  }

  .camera-pane small {
    display: none
  }

  .camera-buttons button {
    padding: 5px
  }

  .sim-telemetry {
    gap: 10px
  }
}

@media(max-width:1000px) {
  .sim-studio {
    grid-template-columns: 1fr
  }

  .sim-chat {
    position: relative;
    height: 550px
  }

  .views {
    height: 540px
  }

  .native-views {
    grid-template-columns: 1fr
  }
}

@media(prefers-reduced-motion:reduce) {
  #studioNav {
    transition: none
  }
}

.manual-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px;
  margin: 18px 0
}

.manual-grid button {
  font-size: 12px;
  /* padding: 14px 8px */
}

.manual-grid button small {
  display: block;
  color: var(--muted);
  font: 10px monospace;
  margin-top: 7px
}

.direction-pad {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: repeat(3, 1fr);
  gap: 6px
}

.direction-forward {
  grid-column: 2
}

.direction-left {
  grid-column: 1;
  grid-row: 2
}

.direction-right {
  grid-column: 3;
  grid-row: 2
}

.direction-back {
  grid-column: 2;
  grid-row: 3
}

.hand-pad {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px
}

.hand-pad .wide {
  grid-column: span 2
}

.wrist-pad {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px
}

.wrist-pad>small {
  grid-column: span 2;
  color: var(--muted);
  font-size: 10px
}

.controls #reset {
  padding: 11px
}

.sim-chat textarea {
  font-family: inherit;
  font-size: 13px;
  line-height: 1.5
}

@media(max-width:1600px) {
  .manual-grid {
    grid-template-columns: 1fr 1fr
  }

  .wrist-pad {
    grid-column: span 2;
    grid-template-columns: repeat(6, 1fr)
  }

  .wrist-pad>small {
    grid-column: span 6
  }
}

@media(max-width:900px) {
  .brand-logo {
    width: 45px
  }

  body.nav-closed>main {
    padding-left: 48px
  }

  .camera-buttons {
    gap: 1px
  }

  .camera-buttons button {
    padding: 5px 6px
  }
}

/* ---- 2026-10 layout corrections ---- */
aside {
  width: 272px;
  padding: 26px 18px 22px
}

.brand {
  flex-wrap: nowrap;
  gap: 10px
}

.brand small {
  margin-left: 0;
  white-space: nowrap
}

main {
  margin-left: 272px !important;
  width: calc(100vw - 272px);
  max-width: none;
  padding: 28px 34px 40px
}

.centered-hero {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center
}

.centered-hero p {
  max-width: 760px;
  margin: 0 auto;
  color: var(--muted)
}

.compact-search {
  max-width: 980px;
  width: min(980px, 100%);
  margin: 22px auto 0
}

.section-head {
  margin: 32px 0 14px
}

.example-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch
}

.training-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr))
}

.example-card {
  padding: 0;
  overflow: hidden
}

.card-media {
  aspect-ratio: 16/10;
  background: #0e1417;
  border-bottom: 1px solid var(--line);
  overflow: hidden
}

.card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block
}

.card-body {
  padding: 18px 18px 16px;
  display: flex;
  flex-direction: column;
  min-height: 214px
}

.card-body .tag {
  display: block;
  margin-bottom: 10px
}

.card-body h3 {
  margin: 8px 0 8px
}

.card-body p {
  margin: 0 0 16px;
  flex: 1
}

.grid#homeData {
  grid-template-columns: repeat(3, minmax(0, 1fr))
}

.sim-studio {
  max-width: 1560px;
  margin: 0 auto
}

.sim-head,
.task-line,
.sim-telemetry,
.sim-bottom {
  max-width: 1560px;
  margin-left: auto;
  margin-right: auto
}

.saved-panel {
  min-width: 235px
}

.search {
  font-size: 15px
}

@media (max-width:1700px) {
  .example-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr))
  }
}

@media (max-width:1380px) {
  .example-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr))
  }

  .grid#homeData {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }
}

@media (max-width:1100px) {
  aside {
    width: 86px
  }

  .brand-logo {
    width: 46px
  }

  .brand small,
  nav span,
  .sidebar-bottom {
    display: none
  }

  main {
    margin-left: 86px !important;
    width: calc(100vw - 86px);
    padding: 24px 20px
  }

  .example-grid,
  .training-grid,
  .grid#homeData {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }
}

@media (max-width:760px) {
  main {
    margin-left: 0 !important;
    width: 100vw;
    padding: 72px 14px 24px
  }

  .example-grid,
  .training-grid,
  .grid#homeData {
    grid-template-columns: 1fr
  }

  .compact-search {
    max-width: 100%
  }
}

.chat-tools {
  display: flex;
  /* justify-content: space-between; */
  gap: 10px;
  flex-wrap: wrap;
  padding: 6px 2px 10px;
  color: var(--muted);
  font-size: 12px
}

.chat-tools label {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer
}

.chat-tools input {
  padding: 0
}

.chat-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
  font-size: 11px;
  color: var(--muted)
}

.chat-edit {
  padding: 4px 8px;
  border-radius: 8px;
  font-size: 11px;
  background: #1b2529
}

.chat-message.user>div:last-child {
  color: var(--text)
}


/* ---- 2026-10 follow-up parity / layout pass ---- */

aside {
  width: 296px;
  padding: 26px 20px 22px
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
  flex-wrap: nowrap
}

.brand-logo {
  width: 164px;
  max-width: 100%;
  flex: 0 0 auto
}

.brand small {
  display: block;
  white-space: nowrap
}

main {
  margin-left: 296px !important;
  width: auto !important;
  max-width: none !important;
  padding: 28px 30px 40px
}

.hero,
.section-head,
.tabs,
.example-grid,
#homeData,
.training-grid,
.sim-studio,
.sim-head,
.task-line,
.sim-telemetry,
.sim-bottom,
.native-views {
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto
}

.centered-hero {
  padding-top: 18px
}

.compact-search {
  max-width: 860px;
  width: min(860px, 100%);
  margin: 20px auto 0
}

.example-grid {
  grid-template-columns: repeat(4, minmax(280px, 1fr));
  gap: 20px
}

.example-card .card-body {
  min-height: 160px
}

.grid#homeData {
  grid-template-columns: repeat(3, minmax(0, 1fr))
}

.sim-studio {
  max-width: 1500px
}

.sim-head,
.task-line,
.sim-telemetry,
.sim-bottom {
  max-width: 1500px
}

.sim-chat {
  max-width: 360px
}

@media (max-width:1720px) {
  .example-grid {
    grid-template-columns: repeat(4, minmax(270px, 1fr))
  }
}

@media (max-width:1440px) {
  .example-grid {
    grid-template-columns: repeat(3, minmax(250px, 1fr))
  }

  .grid#homeData {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }
}

@media (max-width:1180px) {
  aside {
    width: 92px
  }

  .brand-logo {
    width: 46px
  }

  main {
    margin-left: 92px !important;
    padding: 24px 18px
  }

  .example-grid,
  .training-grid,
  .grid#homeData {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }
}

@media (max-width:760px) {
  main {
    margin-left: 0 !important;
    padding: 72px 14px 24px
  }

  .example-grid,
  .training-grid,
  .grid#homeData {
    grid-template-columns: 1fr
  }

  .compact-search {
    max-width: 100%
  }
}

/* Restored transcript/trace styling from the established Studio chat flow. */
.trace-entry {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  column-gap: 8px;
  padding: 9px 3px;
  border-bottom: 1px solid #263238;
  color: var(--muted);
  font-size: 12px
}

.trace-icon {
  grid-row: 1 / span 2;
  color: var(--accent);
  font-size: 13px;
  line-height: 1.7;
  text-align: center
}

.trace-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  color: var(--text)
}

.trace-heading time {
  color: var(--muted);
  font-size: 9px;
  white-space: nowrap
}

.trace-entry details {
  grid-column: 2;
  margin-top: 5px
}

.trace-entry summary {
  color: var(--muted);
  font-size: 10px;
  padding: 0;
  cursor: pointer
}

.trace-details {
  white-space: pre-wrap;
  font: 10px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace;
  color: var(--muted);
  padding: 6px 0 0
}

.chat-copy.collapsed {
  max-height: 8.5em;
  overflow: hidden;
  position: relative
}

.chat-expand {
  padding: 3px 7px;
  margin-top: 5px;
  font-size: 10px;
  background: transparent
}

.chat-message.assistant {
  padding: 5px 2px;
  color: var(--text)
}

.chat-tools .disabled-option {
  opacity: .45;
  cursor: not-allowed
}

/* ---- v5: original Studio activity timeline + collapsed-nav centering ---- */
body.nav-closed>main {
  margin-left: 0 !important;
  width: 100% !important;
  padding-left: 64px !important;
  padding-right: 64px !important;
}

body.nav-closed .hero,
body.nav-closed .section-head,
body.nav-closed .tabs,
body.nav-closed .example-grid,
body.nav-closed #homeData,
body.nav-closed .training-grid,
body.nav-closed .sim-studio,
body.nav-closed .sim-head,
body.nav-closed .task-line,
body.nav-closed .sim-telemetry,
body.nav-closed .sim-bottom,
body.nav-closed .native-views {
  margin-left: auto;
  margin-right: auto
}

.sim-chat #chat-log {
  gap: 0;
  padding: 12px 0 22px
}

.chat-entry {
  position: relative;
  background: none;
  margin: 12px 0;
  padding: 10px 4px;
  white-space: normal;
  font-size: 13px;
  line-height: 1.6
}

.chat-entry.user {
  background: #293237;
  border: 1px solid #39454b;
  border-radius: 14px;
  margin: 8px 0 22px 20px;
  padding: 14px 40px 14px 14px
}

.chat-entry.assistant {
  padding: 10px 4px;
  color: var(--text)
}

.chat-copy {
  white-space: pre-wrap;
  overflow-wrap: anywhere
}

.chat-copy.collapsed {
  max-height: 130px;
  overflow: hidden;
  mask-image: linear-gradient(#000 70%, transparent)
}

.chat-expand {
  border: 0;
  background: none;
  padding: 8px 0 0;
  font-size: 11px;
  color: var(--accent)
}

.chat-edit {
  position: absolute;
  right: 8px;
  top: 8px;
  width: 28px;
  height: 28px;
  padding: 5px;
  border: 0;
  background: transparent;
  color: var(--muted)
}

.chat-edit:hover {
  color: var(--accent)
}

.chat-edit svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round
}

.trace-entry {
  position: relative;
  display: block;
  margin: 0 0 0 8px;
  padding: 10px 0 13px 25px;
  border: 0;
  border-left: 1px solid #3b4a50;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6
}

.trace-icon {
  position: absolute;
  left: -10px;
  top: 10px;
  width: 19px;
  text-align: center;
  background: var(--card);
  color: #a9c2c1;
  font-size: 14px;
  line-height: 1.4
}

.trace-heading {
  display: flex;
  align-items: baseline;
  gap: 8px;
  color: var(--muted)
}

.trace-heading span {
  flex: 1;
  white-space: pre-wrap;
  overflow-wrap: anywhere
}

.trace-heading time {
  font-size: 9px;
  white-space: nowrap;
  color: #71888e
}

.trace-entry details {
  margin: 6px 0 0
}

.trace-entry summary {
  margin: 0;
  font-size: 10px;
  font-weight: 500;
  color: var(--accent);
  padding: 0
}

.trace-details {
  margin-top: 7px;
  padding: 8px;
  border-radius: 7px;
  background: #111a1f;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: 10px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace
}

.trace-entry[data-stage=verified] .trace-icon {
  color: var(--accent)
}

.trace-entry[data-stage=stopped] .trace-icon {
  color: #ff9c96
}

.chat-live-progress {
  position: relative;
  margin: 0 0 12px 8px;
  padding: 10px 0 10px 25px;
  border-left: 1px solid #3b4a50;
  color: var(--accent);
  font-size: 11px;
  line-height: 1.5;
  white-space: pre-wrap
}

.chat-live-progress::before {
  content: '';
  position: absolute;
  left: -7px;
  top: 11px;
  width: 12px;
  height: 12px;
  border: 2px solid #3b4a50;
  border-top-color: var(--accent);
  border-radius: 50%;
  background: var(--card);
  box-shadow: 0 0 0 4px var(--card);
  animation: spin 1s linear infinite
}

.readme-rendered {
  max-width: 820px;
  color: var(--text);
  line-height: 1.7
}

.readme-rendered h1,
.readme-rendered h2,
.readme-rendered h3 {
  margin: 1.3em 0 .55em;
  color: var(--text)
}

.readme-rendered h1 {
  font-size: 28px
}

.readme-rendered h2 {
  font-size: 21px
}

.readme-rendered h3 {
  font-size: 17px
}

.readme-rendered p,
.readme-rendered li {
  color: var(--muted)
}

.readme-rendered ul,
.readme-rendered ol {
  padding-left: 24px
}

.readme-rendered code {
  font: 12px ui-monospace, SFMono-Regular, Menlo, monospace;
  background: #11191d;
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 2px 5px
}

.readme-rendered pre {
  max-height: none;
  margin: 14px 0;
  overflow: auto
}

.readme-rendered pre code {
  display: block;
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit
}

.readme-rendered a {
  color: var(--accent);
  text-decoration: underline
}

.readme-rendered blockquote {
  margin: 14px 0;
  border-left: 2px solid var(--accent);
  padding: 4px 14px;
  color: var(--muted)
}

@media(max-width:760px) {
  body.nav-closed>main {
    padding-left: 14px !important;
    padding-right: 14px !important
  }
}

/* ---- v6: exact legacy chat timeline + collapsed-nav centering ---- */
body.nav-closed>main {
  margin-left: 0 !important;
  width: 100% !important;
  padding-left: 60px !important;
  padding-right: 60px !important;
}

body.nav-closed .hero,
body.nav-closed .section-head,
body.nav-closed .tabs,
body.nav-closed .example-grid,
body.nav-closed #homeData,
body.nav-closed .training-grid,
body.nav-closed .sim-studio,
body.nav-closed .sim-head,
body.nav-closed .task-line,
body.nav-closed .sim-telemetry,
body.nav-closed .sim-bottom,
body.nav-closed .native-views {
  margin-left: auto !important;
  margin-right: auto !important
}

.trace-entry {
  position: relative;
  display: block;
  margin: 0 0 0 8px;
  padding: 10px 0 13px 25px;
  border-left: 1px solid #3b4a50;
  border-bottom: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6;
}

.trace-icon {
  position: absolute;
  left: -10px;
  top: 10px;
  width: 19px;
  text-align: center;
  background: var(--card);
  color: #a9c2c1;
  font-size: 14px;
  line-height: 1.5;
}

.trace-heading {
  display: flex;
  align-items: baseline;
  gap: 8px;
  color: var(--muted)
}

.trace-heading span {
  flex: 1;
  white-space: pre-wrap;
  overflow-wrap: anywhere
}

.trace-heading time {
  font-size: 9px;
  white-space: nowrap;
  color: #71888e
}

.trace-entry details {
  margin: 6px 0 0;
  grid-column: auto
}

.trace-entry summary {
  margin: 0;
  font-size: 10px;
  font-weight: 500;
  color: var(--accent);
  padding: 0
}

.trace-details {
  margin-top: 7px;
  padding: 8px;
  border-radius: 7px;
  background: #111a1f;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: 10px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace
}

.trace-entry[data-stage="verified"] .trace-icon {
  color: var(--accent)
}

.trace-entry[data-stage="stopped"] .trace-icon {
  color: #ff9b93
}

.chat-live-progress {
  position: relative;
  margin: 0 0 12px 8px;
  padding: 10px 0 10px 25px;
  border-left: 1px solid #3b4a50;
  color: var(--accent);
  font-size: 11px;
  line-height: 1.5;
  white-space: pre-wrap;
}

.chat-live-progress::before {
  content: '';
  position: absolute;
  left: -7px;
  top: 11px;
  width: 12px;
  height: 12px;
  border: 2px solid #3b4a50;
  border-top-color: var(--accent);
  border-radius: 50%;
  background: var(--card);
  box-shadow: 0 0 0 4px var(--card);
  animation: spin 1s linear infinite;
}

.chat-entry.user {
  background: #263238;
  border-radius: 12px;
  padding: 12px;
  margin: 12px 0;
  position: relative
}

.chat-entry.assistant {
  padding: 8px 2px 12px;
  margin: 0;
  color: var(--text)
}

.chat-entry .chat-edit {
  position: absolute;
  right: 8px;
  bottom: 8px;
  width: 28px;
  height: 28px;
  padding: 5px;
  display: grid;
  place-items: center
}

.chat-entry .chat-edit svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6
}

.readme-rendered {
  color: var(--text);
  line-height: 1.65
}

.readme-rendered h1,
.readme-rendered h2,
.readme-rendered h3,
.readme-rendered h4 {
  margin: 1.15em 0 .45em;
  line-height: 1.3
}

.readme-rendered h1 {
  font-size: 28px
}

.readme-rendered h2 {
  font-size: 21px
}

.readme-rendered h3 {
  font-size: 17px
}

.readme-rendered p {
  color: var(--muted);
  margin: .65em 0 1em
}

.readme-rendered ul,
.readme-rendered ol {
  padding-left: 1.5rem;
  color: var(--muted)
}

.readme-rendered li {
  margin: .3em 0
}

.readme-rendered code {
  font: 12px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace;
  background: #11191d;
  border: 1px solid var(--line);
  padding: 2px 5px;
  border-radius: 5px;
  color: #d7e7e4
}

.readme-rendered pre {
  max-height: none;
  margin: 12px 0 18px
}

.readme-rendered pre code {
  background: transparent;
  border: 0;
  padding: 0;
  color: inherit
}

.readme-rendered blockquote {
  border-left: 2px solid var(--accent);
  margin: 12px 0;
  padding: 3px 14px;
  color: var(--muted)
}

.readme-rendered a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 2px
}

.readme-rendered hr {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 22px 0
}

.readme-rendered table {
  margin: 14px 0 20px
}

@media(max-width:760px) {
  body.nav-closed>main {
    padding-left: 14px !important;
    padding-right: 14px !important
  }
}

/* ---- v7 parity fixes: joint housing, shell alignment, softer actions ---- */
.sim-shell {
  max-width: 1500px;
  margin: 0 auto;
  width: 100%
}

.sim-shell>.sim-head,
.sim-shell>.task-line,
.sim-shell>.sim-studio {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0
}

body.nav-closed>main {
  margin-left: 0 !important;
  width: 100% !important;
  padding-left: 30px !important;
  padding-right: 30px !important
}

body.nav-closed .sim-shell {
  margin-left: auto !important;
  margin-right: auto !important
}

.example-card .primary {
  background: #8fcfb0;
  border-color: #8fcfb0;
  color: #15251d
}

.example-card .primary:hover {
  background: #9ad9ba;
  border-color: #9ad9ba
}

.joints details {
  border-top: 1px solid var(--line);
  margin-top: 14px
}

.joints summary {
  cursor: pointer;
  color: var(--accent);
  padding: 14px 0 10px;
  font-weight: 600
}

.joint-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding-bottom: 8px
}

.joint-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 34px 52px 34px !important;
  gap: 5px !important;
  align-items: center !important;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px !important;
  margin: 0 !important
}

.joint-name {
  font-size: 11px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap
}

.joint-name small {
  display: block;
  color: var(--muted);
  font-size: 9px;
  margin-top: 3px
}

.joint-key {
  min-height: 32px;
  padding: 4px !important;
  font-size: 17px
}

.joint-angle {
  text-align: center;
  font: 11px ui-monospace, SFMono-Regular, Menlo, monospace;
  color: var(--text)
}

@media(max-width:1300px) {
  .joint-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }
}

@media(max-width:760px) {
  body.nav-closed>main {
    padding-left: 14px !important;
    padding-right: 14px !important
  }

  .joint-grid {
    grid-template-columns: 1fr
  }
}

/* ---- 2026-10 grasp/camera follow-up ---- */
.sim-shell {
  max-width: 1680px
}

.sim-studio {
  max-width: none;
  grid-template-columns: minmax(0, 1fr) 330px
}

.views {
  height: clamp(440px, 55vw, 780px)
}

@media(min-width:1900px) {
  .sim-shell {
    max-width: 1870px
  }

  .sim-studio {
    grid-template-columns: minmax(0, 1fr) 420px
  }

  .views {
    height: 600px
  }
}

@media(max-width:1250px) {
  .sim-studio {
    grid-template-columns: minmax(0, 1fr) 295px
  }
}

/* Pick-place MuJoCo example: operator drag hint + one-click authored task. */
.pick-place-web-hint {
  position: absolute;
  left: 14px;
  bottom: 58px;
  z-index: 8;
  padding: 7px 10px;
  border-radius: 7px;
  background: #182329dd;
  color: #dfe9e5;
  font-size: 11px;
  pointer-events: none
}

.pick-place-web-run {
  position: absolute;
  right: 14px;
  bottom: 14px;
  z-index: 9;
  pointer-events: auto;
  box-shadow: 0 8px 22px #0006
}


/* ---- Studio navigation + catalog cleanup ---- */
#studioNav {
  width: 286px;
  padding: 18px 16px 22px;
  transform: none !important;
  transition: width .16s ease;
  padding .16s ease
}

.nav-head {
  height: 54px;
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0
}

#navToggle {
  position: static;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  padding: 0;
  display: grid;
  place-items: center;
  font-size: 18px;
  border-radius: 12px
}

.nav-head .brand {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex-wrap: nowrap;
  overflow: hidden
}

.nav-head .brand-logo {
  width: 184px;
  max-width: 184px;
  flex: 0 0 184px
}

.nav-head .brand small {
  margin: 0;
  white-space: nowrap;
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 13px
}

#studioNav nav {
  margin-top: 38px
}

#studioNav nav a {
  height: 52px;
  align-items: center;
  gap: 16px;
  font-size: 22px;
  padding: 0 15px;
  white-space: nowrap;
  overflow: hidden
}

#studioNav nav a>span {
  transition: opacity .12s ease
}

body.nav-closed #studioNav {
  width: 74px;
  padding-left: 10px;
  padding-right: 10px
}

body.nav-closed .nav-head {
  justify-content: center
}

body.nav-closed .nav-head .brand {
  display: none
}

body.nav-closed #studioNav nav a {
  justify-content: center;
  padding: 0;
  font-size: 20px
}

body.nav-closed #studioNav nav a>span {
  display: none
}

body.nav-closed>main {
  margin-left: 74px !important;
  width: calc(100vw - 74px) !important;
  padding-left: 30px !important;
  padding-right: 30px !important
}

body:not(.nav-closed)>main {
  margin-left: 286px !important;
  width: calc(100vw - 286px) !important
}

.tool-grid {
  grid-template-columns: repeat(auto-fill, minmax(280px, 360px));
  margin: 16px 0 28px
}

@media(max-width:760px) {
  #studioNav {
    width: 74px;
    padding-left: 10px;
    padding-right: 10px
  }

  .nav-head .brand,
  #studioNav nav a>span {
    display: none
  }

  #studioNav nav a {
    justify-content: center;
    padding: 0;
    font-size: 20px
  }

  body>main,
  body.nav-closed>main,
  body:not(.nav-closed)>main {
    margin-left: 74px !important;
    width: calc(100vw - 74px) !important;
    padding: 20px 14px !important
  }
}

/* Final sidebar sizing: toggle + BeingBeyond + / D1 Studio stay on one row. */
#studioNav {
  width: 330px
}

.nav-head .brand-logo {
  width: 166px;
  max-width: 166px;
  flex-basis: 166px
}

body:not(.nav-closed)>main {
  margin-left: 330px !important;
  width: calc(100vw - 330px) !important
}

body.nav-closed #studioNav {
  width: 74px
}

body.nav-closed>main {
  margin-left: 74px !important;
  width: calc(100vw - 74px) !important
}

@media(max-width:760px) {
  #studioNav {
    width: 74px
  }

  body>main,
  body.nav-closed>main,
  body:not(.nav-closed)>main {
    margin-left: 74px !important;
    width: calc(100vw - 74px) !important
  }
}


/* ---- Shared Studio page frame ---- */
main {
  max-width: none !important
}

.page-shell {
  width: min(1700px, 100%);
  margin: 0 auto;
  min-width: 0
}

.page-shell>.hero,
.page-shell>.section-head,
.page-shell>.tabs,
.page-shell>.example-grid,
.page-shell>.training-grid,
.page-shell>.sim-studio,
.page-shell>.sim-head,
.page-shell>.task-line,
.page-shell>.sim-telemetry,
.page-shell>.sim-bottom,
.page-shell>.native-views {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0
}

.page-shell--sim {
  width: min(1900px, 100%)
}

.page-search {
  margin: 22px 0 8px;
  width: 100%
}

.home-data-grid {
  display: grid;
  grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
  gap: 18px;
  align-items: stretch
}

.home-data-card {
  min-height: 190px
}

#homeData {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 18px;
  min-width: 0
}

#dataGrid {
  margin-top: 0
}

@media(max-width:900px) {
  .home-data-grid {
    grid-template-columns: 1fr
  }
}

/* ---- execution-category tags + VLM example details ---- */
.tag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-bottom: 2px
}

.tag-row .tag {
  margin: 0
}

.tag-required {}

.example-detail {
  padding-top: 10px
}

.back-link {
  display: inline-block;
  margin-bottom: 20px;
  color: var(--muted)
}

.detail-grid {
  display: grid;
  grid-template-columns: minmax(280px, 520px) minmax(0, 1fr);
  gap: 42px;
  align-items: start
}

.detail-image {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #d8dcdd
}

.detail-grid h1 {
  margin: 14px 0 8px;
  font-size: 34px
}

.detail-grid>div>p {
  max-width: 760px;
  color: var(--muted);
  line-height: 1.6
}

.detail-prompt {
  margin: 24px 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--card)
}

.detail-prompt p {
  margin: 6px 0 0;
  color: var(--text);
  font-size: 16px;
  line-height: 1.55
}

.script-option {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 18px 0 22px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #141e22;
  cursor: pointer
}

.script-option input {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: var(--accent)
}

.script-option span {
  display: grid;
  gap: 4px
}

.script-option small {
  color: var(--muted);
  line-height: 1.45
}

.detail-requirements {
  margin: 20px 0
}

.detail-requirements ul {
  color: var(--muted)
}

@media(max-width:900px) {
  .detail-grid {
    grid-template-columns: 1fr;
    gap: 22px
  }

  .detail-image {
    max-height: 330px
  }
}

/* ---- Studio content pages: section rail + inline documentation ---- */
.page-intro {
  /* max-width: 900px; */
  color: var(--muted);
  line-height: 1.65;
  margin: 6px 0 28px
}

.doc-layout {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 38px;
  align-items: start;
  margin-top: 50px;
}

.section-nav {
  position: sticky;
  top: 24px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 2px 0
}

.section-nav a {
  color: var(--muted);
  text-decoration: none;
  padding: 7px 0;
  border: 0;
  background: none;
  font-size: 13px
}

.section-nav a.active {
  color: var(--text);
  font-weight: 650
}

.doc-content {
  min-width: 0;
  /* max-width: 1100px */
}

.doc-content>section {
  scroll-margin-top: 24px;
  padding: 0 0 42px;
  margin: 0 0 30px;
  border-bottom: 1px solid var(--line)
}

.doc-content>section:last-child {
  border-bottom: 0
}

.doc-content h2 {
  font-size: 25px;
  margin: 0 0 13px
}

.doc-content h3 {
  margin: 15px 0 7px
}

.doc-content p,
.doc-content li {
  color: var(--muted);
  line-height: 1.7
}

.doc-content pre {
  max-height: none;
  white-space: pre-wrap
}

.doc-content .example-grid {
  grid-template-columns: repeat(auto-fill, minmax(280px, 340px))
}

.studio-overview {
  max-width: 1100px;
  margin: 20px 0 38px
}

.studio-overview h2 {
  font-size: 28px;
  margin: 8px 0 14px
}

.studio-overview p {
  font-size: 15px;
  line-height: 1.75;
  color: var(--muted);
  max-width: 1050px
}

.studio-overview b {
  color: var(--text)
}

.text-button {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-weight: 650
}

.text-button:hover {
  background: transparent;
  color: var(--text)
}

#overviewExtra {
  margin-top: 12px
}

@media(max-width:900px) {
  .doc-layout {
    grid-template-columns: 1fr;
    gap: 14px
  }

  .section-nav {
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px;
    border-bottom: 1px solid var(--line);
    padding-bottom: 10px
  }

  .section-nav a {
    padding: 4px 0
  }
}


/* ---- Accessibility / navigation refinement ---- */
:root[data-theme="light"] {
  color-scheme: light;
  --bg: #f2f2f2;
  --card: #ffffff;
  --line: #d4dedb;
  --muted: #667a7e;
  --accent: #28795b;
  --text: #172126
}

:root[data-theme="light"] body {
  background: var(--bg);
  color: var(--text)
}

:root[data-theme="light"] #studioNav {
  background: #f4f6f5;
  border-color: var(--line)
}

:root[data-theme="light"] button,
:root[data-theme="light"] .button,
:root[data-theme="light"] select,
:root[data-theme="light"] input,
:root[data-theme="light"] textarea {
  background: #fff;
  color: var(--text);
  border-color: var(--line)
}

:root[data-theme="light"] button:hover,
:root[data-theme="light"] .button:hover {
  background: #e0f3ea
}

:root[data-theme="light"] .primary {
  background: #8fd7b6;
  border-color: #8fd7b6;
  color: #123326
}

:root[data-theme="light"] .card,
:root[data-theme="light"] .sim-telemetry,
:root[data-theme="light"] dialog {
  background: #fff
}

:root[data-theme="light"] pre,
:root[data-theme="light"] .trace-details {
  background: #f1f4f3;
  color: #23302e
}

:root[data-theme="light"] .chat-entry.user {
  background: #eef3f1
}

:root[data-theme="light"] .tabs button.active,
:root[data-theme="light"] #studioNav nav a.active {
  background: #dcebe3;
  color: #23684f
}

:root[data-theme="light"] .empty {
  background: #f6f8f7
}

#studioNav {
  display: flex;
  flex-direction: column
}

#studioNav nav {
  flex: 0 0 auto
}

.nav-theme-toggle {
  margin-top: auto;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 13px;
  justify-content: flex-start;
  padding: 11px 14px;
  background: transparent;
  border-color: transparent;
  color: var(--muted)
}

.nav-theme-toggle:hover {
  color: var(--accent);
  background: #26322c
}

.theme-icon {
  font-size: 18px;
  width: 20px;
  text-align: center
}

.theme-label {
  white-space: nowrap
}

body.nav-closed .nav-theme-toggle {
  justify-content: center;
  padding: 11px 0
}

.nav-closed .theme-label {
  display: none
}

:root[data-theme="light"] .nav-theme-toggle:hover {
  background: #dcebe3
}

.breadcrumbs {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 20px;
  min-height: 24px
}

.breadcrumbs a {
  color: var(--muted)
}

.breadcrumbs a:hover {
  color: var(--accent)
}

.breadcrumbs b {
  font-weight: 400;
  color: var(--line)
}

.breadcrumbs span {
  color: var(--text)
}

/* Documentation section rail is in-page navigation only. */
.section-nav button {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--muted);
  text-align: left;
  padding: 7px 0;
  border-radius: 0;
  font-size: 20px;
  line-height: 1.35
}

.section-nav button:hover {
  background: transparent;
  color: var(--text)
}

.section-nav button.active {
  color: var(--text);
  font-weight: 700
}

:root[data-theme="light"] .section-nav button,
:root[data-theme="light"] .section-nav button:hover {
  background: transparent
}

/* Readable content typography. */
.page-shell p,
.page-shell li {
  font-size: 16px;
  line-height: 1.75
}

.doc-content p,
.doc-content li,
.studio-overview p {
  font-size: 17px;
  line-height: 1.8
}

.card p {
  font-size: 15px;
  line-height: 1.6
}

.readme-rendered p,
.readme-rendered li {
  font-size: 16px;
  line-height: 1.75
}

.studio-overview {
  width: 100%;
  max-width: none;
  margin: 20px 0 38px
}

.studio-overview p {
  max-width: none
}

.compact-search {
  display: block;
  width: min(900px, 100%);
  margin-left: auto !important;
  margin-right: auto !important
}

/* Telemetry should fit all status fields without hiding important state. */
.sim-telemetry {
  display: grid !important;
  grid-template-columns: repeat(8, minmax(120px, 1fr));
  gap: 12px !important;
  align-items: end
}

.sim-telemetry>div,
.sim-telemetry>label {
  min-width: 0
}

.sim-telemetry label {
  display: block
}

.sim-telemetry output {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis
}

.sim-telemetry select {
  width: 100%;
  min-width: 0
}

@media(max-width:1500px) {
  .sim-telemetry {
    grid-template-columns: repeat(4, minmax(150px, 1fr))
  }
}

@media(max-width:850px) {
  .sim-telemetry {
    grid-template-columns: repeat(2, minmax(130px, 1fr))
  }

  .page-shell p,
  .page-shell li,
  .doc-content p,
  .doc-content li,
  .studio-overview p {
    font-size: 16px
  }
}

/* Only the selected three-camera observation is mounted in the chat stack. */
#snapshot-stack {
  flex: none;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
  margin-bottom: 10px
}

#snapshot-stack[hidden] {
  display: none
}

#snapshot-step {
  width: 100%;
  min-width: 0;
  font-size: 11px;
  padding: 6px
}

#snapshot-images {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  margin-top: 8px
}

#snapshot-images figure {
  margin: 0;
  min-width: 0
}

#snapshot-images img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: contain;
  border-radius: 6px;
  background: var(--bg)
}

#snapshot-images figcaption {
  font-size: 10px;
  color: var(--muted);
  text-align: center
}


/* ---- Final UI polish: complete light theme, larger copy, cleaner controls ---- */
/* Eyebrow/kicker labels are intentionally removed from Studio content. */
.eyebrow {
  display: none !important
}

/* Larger readable copy across content and cards. */
.page-shell p,
.page-shell li {
  font-size: 18px;
  line-height: 1.78
}

.page-intro,
.doc-content p,
.doc-content li {
  font-size: 18px;
  line-height: 1.8
}

.card p,
.readme-rendered p,
.readme-rendered li {
  font-size: 17px;
  line-height: 1.72
}

.hero>p {
  font-size: 18px;
  line-height: 1.7
}

.sim-chat,
.controls,
.sim-telemetry {
  font-size: 15px
}

/* Search belongs only on searchable catalog views and uses a softer pill shape. */
.search {
  border-radius: 20px
}

.compact-search {
  border-radius: 22px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .08)
}

/* Light theme must not inherit dark component surfaces. */
:root[data-theme="light"] #studioNav nav a:hover {
  background: #e6efe9 !important;
  color: #21694f !important
}

:root[data-theme="light"] #studioNav nav a.active {
  background: #dcebe3 !important;
  color: #21694f !important
}

:root[data-theme="light"] .sim-chat,
:root[data-theme="light"] .controls,
:root[data-theme="light"] .saved-panel,
:root[data-theme="light"] .sim-telemetry,
:root[data-theme="light"] .sim-bottom .card {
  background: #fff !important;
  color: var(--text)
}

:root[data-theme="light"] .sim-chat form {
  background: #f7faf8 !important;
  border-color: #cfd9d5 !important;
  box-shadow: 0 3px 14px rgba(25, 45, 36, .10)
}

:root[data-theme="light"] .sim-chat textarea {
  background: transparent !important;
  color: #18231f !important
}

:root[data-theme="light"] .sim-chat textarea::placeholder,
:root[data-theme="light"] input::placeholder {
  color: #7e8d87 !important
}

:root[data-theme="light"] .chat-actions select,
:root[data-theme="light"] .sim-chat details select,
:root[data-theme="light"] .sim-telemetry select {
  background: #fff !important;
  color: #172126 !important;
  border-color: #cbd6d1 !important
}

:root[data-theme="light"] .chat-tools,
:root[data-theme="light"] .sim-chat summary,
:root[data-theme="light"] .sim-chat>small {
  color: #64756f !important
}

/* Controls need tactile separation from white surfaces. */
:root[data-theme="light"] button,
:root[data-theme="light"] .button,
:root[data-theme="light"] select,
:root[data-theme="light"] input:not([type="checkbox"]):not([type="radio"]) {
  box-shadow: 0 2px 7px rgba(24, 44, 35, .10)
}

:root[data-theme="light"] button:hover,
:root[data-theme="light"] .button:hover {
  background: #edf6f1 !important;
  border-color: #9fbeb0 !important;
  box-shadow: 0 4px 12px rgba(24, 44, 35, .16)
}

:root[data-theme="light"] .camera-buttons {
  background: rgba(255, 255, 255, .92) !important;
  border: 1px solid #d0d9d5;
  box-shadow: 0 4px 14px rgba(22, 35, 30, .18)
}

:root[data-theme="light"] .camera-buttons button {
  background: #fff !important;
  color: #26342f !important;
  border: 1px solid #d3ddd8 !important;
  box-shadow: 0 2px 5px rgba(22, 35, 30, .13)
}

:root[data-theme="light"] .camera-buttons button:hover {
  background: #eaf4ef !important;
}

:root[data-theme="light"] .manual-grid button,
:root[data-theme="light"] .direction-pad button,
:root[data-theme="light"] .controls button,
:root[data-theme="light"] .saved-panel button {
  background: #f2f2f2 !important;
  color: #1d2925 !important;
  /* border-color:#cbd6d1!important; */
  /* box-shadow:0 3px 10px rgba(20,38,30,.12) */
}

:root[data-theme="light"] .manual-grid button:hover,
:root[data-theme="light"] .direction-pad button:hover,
:root[data-theme="light"] .controls button:hover,
:root[data-theme="light"] .saved-panel button:hover {
  background: #edf6f1 !important;
  box-shadow: 0 5px 14px rgba(20, 38, 30, .17)
}

:root[data-theme="light"] .chat-entry.assistant,
:root[data-theme="light"] .chat-message.assistant {
  color: #1d2925 !important
}

/* Keep the search centered on Home / Examples. */
.compact-search {
  display: block;
  width: min(920px, 100%);
  margin-left: auto !important;
  margin-right: auto !important
}

/* Finish simulator light surfaces: camera chrome and status overlays. */
:root[data-theme="light"] .view-label,
:root[data-theme="light"] .camera-pane small,
:root[data-theme="light"] .runtime-pill {
  background: rgba(255, 255, 255, .90) !important;
  color: #34433e !important;
  border: 1px solid #d5ddda !important;
  box-shadow: 0 2px 8px rgba(25, 40, 34, .10)
}

:root[data-theme="light"] .sim-status {
  color: #2f6f57 !important
}


/* semantic sidebar icons */
#studioNav nav a {
  display: flex;
  align-items: center;
  gap: 13px
}

.nav-icon {
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round
}

body.nav-collapsed #studioNav nav a {
  justify-content: center;
  gap: 0
}

body.nav-collapsed .nav-icon {
  width: 20px;
  height: 20px
}

/* VLM observation carousel */
#snapshot-stack {
  overflow: visible
}

.snapshot-carousel {
  position: relative;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 34px;
  align-items: center;
  gap: 6px;
  margin-top: 8px
}

.snapshot-image-open {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  min-width: 0;
  cursor: zoom-in;
  border-radius: 9px;
  overflow: hidden
}

.snapshot-image-open:hover {
  background: transparent;
  transform: none;
  box-shadow: none
}

#snapshot-image {
  display: block;
  width: 100%;
  max-height: 220px;
  aspect-ratio: 4/3;
  object-fit: contain;
  background: var(--bg);
  border-radius: 9px;
  border: 1px solid var(--line)
}

.snapshot-image-nav {
  width: 32px;
  height: 52px;
  padding: 0;
  border-radius: 9px;
  font-size: 25px;
  display: grid;
  place-items: center;
  box-shadow: 0 3px 12px #0002
}

.snapshot-image-nav:disabled {
  visibility: hidden
}

.snapshot-image-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 5px 40px 0;
  color: var(--muted);
  font-size: 11px
}

#snapshot-image-position {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  white-space: nowrap
}

.sim-observation-dialog {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  margin: 0;
  padding: 46px 58px 38px;
  width: min(1180px, 94vw);
  max-width: 94vw;
  max-height: 94vh;
  overflow: hidden;
  background: var(--panel);
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 28px 80px #0008
}

.sim-observation-dialog::backdrop {
  background: #05090cb8;
  backdrop-filter: blur(3px)
}

.sim-observation-dialog img {
  display: block;
  margin: 0 auto;
  max-width: 84vw;
  max-height: 78vh;
  object-fit: contain;
  border-radius: 10px;
  background: var(--bg)
}

.sim-observation-close {
  position: absolute;
  right: 12px;
  top: 10px;
  width: 34px;
  height: 34px;
  padding: 0;
  border-radius: 9px;
  font-size: 22px
}

.sim-observation-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 60px;
  padding: 0;
  display: grid;
  place-items: center;
  font-size: 30px;
  border-radius: 10px;
  box-shadow: 0 4px 18px #0004
}

.sim-observation-nav.prev {
  left: 10px
}

.sim-observation-nav.next {
  right: 10px
}

.sim-observation-nav:disabled {
  visibility: hidden
}

.sim-observation-position {
  position: absolute;
  left: 50%;
  top: 15px;
  transform: translateX(-50%);
  font: 12px ui-monospace, SFMono-Regular, Menlo, monospace;
  color: var(--muted)
}

.sim-observation-caption {
  text-align: center;
  color: var(--muted);
  font-size: 13px;
  padding-top: 9px
}

:root[data-theme="light"] .snapshot-image-nav,
:root[data-theme="light"] .sim-observation-nav,
:root[data-theme="light"] .sim-observation-close {
  background: #fff;
  color: #243138;
  border-color: #cad5d8;
  box-shadow: 0 3px 12px #26383f1a
}

:root[data-theme="light"] .sim-observation-dialog {
  background: #fff;
  border-color: #cbd4d6;
  box-shadow: 0 28px 80px #34444b33
}

/* Chat observation strip: keep all camera thumbnails visible, matching the earlier Studio viewer. */
.snapshot-toolbar {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 34px;
  gap: 6px;
  align-items: center;
  margin-bottom: 8px
}

.snapshot-toolbar #snapshot-step {
  width: 100%;
  min-width: 0;
  margin: 0
}

.snapshot-step-nav {
  width: 34px;
  height: 34px;
  padding: 0;
  display: grid;
  place-items: center;
  border-radius: 9px;
  font-size: 22px;
  line-height: 1
}

.snapshot-step-nav:disabled {
  opacity: .35;
  cursor: default
}

#snapshot-images.snapshot-images {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin-top: 0
}

.snapshot-thumb {
  position: relative;
  display: block;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg);
  cursor: zoom-in;
  box-shadow: none
}

.snapshot-thumb:hover {
  transform: none;
  box-shadow: 0 3px 10px rgba(0, 0, 0, .12)
}

.snapshot-thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  background: var(--bg)
}

.snapshot-thumb span {
  display: block;
  padding: 4px 5px;
  font-size: 10px;
  line-height: 1.2;
  color: var(--muted);
  text-align: center;
  background: var(--panel)
}

:root[data-theme="light"] .snapshot-thumb {
  background: #fff;
  border-color: #d4ddda
}

:root[data-theme="light"] .snapshot-thumb span {
  background: #fff;
  color: #61716b
}

:root[data-theme="light"] .snapshot-step-nav {
  background: #fff;
  color: #243138;
  border-color: #cad5d8;
  box-shadow: 0 2px 8px rgba(38, 56, 63, .12)
}

@media(max-width:1100px) {
  #snapshot-images.snapshot-images {
    grid-template-columns: repeat(3, minmax(76px, 1fr))
  }

  .snapshot-thumb span {
    font-size: 9px
  }
}


/* Example-card width cleanup: at most four cards per row. */
.page-shell>.example-grid,
.doc-content .example-grid,
#exampleGrid.example-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px
}

@media(max-width:1400px) {

  .page-shell>.example-grid,
  .doc-content .example-grid,
  #exampleGrid.example-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr))
  }
}

@media(max-width:1040px) {

  .page-shell>.example-grid,
  .doc-content .example-grid,
  #exampleGrid.example-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }
}

@media(max-width:700px) {

  .page-shell>.example-grid,
  .doc-content .example-grid,
  #exampleGrid.example-grid {
    grid-template-columns: 1fr
  }
}

.sim-shell button.control-active {
  background: rgba(166, 231, 197, .22) !important;
  color: var(--ink) !important;
  border-color: #a6e7c5 !important;
  box-shadow: 0 0 0 2px #a6e7c533
}

#chess-winner {
  position: absolute;
  top: 48px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
  padding: 10px 20px;
  border-radius: 10px;
  background: #a6e7c5;
  color: #10291f;
  font-weight: 700;
  white-space: nowrap;
  pointer-events: none
}

#chess-winner[hidden] {
  display: none
}

.sim-shell [data-joint-step]:active,
.sim-shell [data-rotate]:active {
  background: rgba(166, 231, 197, .22) !important;
  color: var(--ink) !important
}

/* Size grids against their available workspace, including the open navigation. */
.sim-workspace,
.sim-bottom,
.sim-bottom>*,
.sim-chat,
.controls {
  min-width: 0;
  max-width: 100%
}

.sim-telemetry {
  grid-template-columns: repeat(auto-fit, minmax(min(130px, 100%), 1fr))
}

.sim-telemetry output {
  display: block
}

.sim-chat select {
  min-width: 0;
  max-width: 100%
}

.sim-status,
.trace-details,
.chat-message {
  overflow-wrap: anywhere
}

#chess-winner {
  max-width: 90%;
  white-space: normal;
  text-align: center
}

@media(max-width:1000px) {
  .sim-studio {
    grid-template-columns: minmax(0, 1fr)
  }

  .sim-bottom {
    grid-template-columns: minmax(0, 1fr)
  }
}

@media(max-width:600px) {
  .camera-buttons {
    gap: 1px
  }

  .camera-buttons button {
    min-width: 0;
    width: 25px;
    padding: 3px
  }

  .sim-head {
    flex-wrap: wrap
  }
}

.camera-labels {
  grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr)
}

@media(max-width:600px) {
  .manual-grid {
    grid-template-columns: minmax(0, 1fr)
  }

  .manual-grid>* {
    min-width: 0
  }

  .camera-labels {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 2fr 1fr 1fr
  }

  .pane-0 {
    grid-row: auto
  }

  .views {
    height: 760px
  }

  .camera-buttons {
    max-width: 100%
  }
}


/* Native hardware sessions live inside the main Studio shell. */
.session-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin: 8px 0 18px
}

.session-toolbar h1 {
  margin: 0 0 5px
}

.session-state {
  margin: 0;
  font-size: 15px
}

.hardware-view-shell {
  position: relative;
  min-height: 420px;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  background: var(--card);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .08)
}

.integrated-frame {
  display: block;
  height: calc(100vh - 205px);
  min-height: 650px;
  border-radius: 0;
  background: transparent
}

.hardware-loading {
  min-height: 360px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 12px
}

.hardware-loading-overlay {
  position: absolute;
  z-index: 20;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: var(--bg);
  color: var(--text)
}

.hardware-loading-overlay[hidden] {
  display: none
}

.view-spinner {
  width: 28px;
  height: 28px;
  border: 3px solid var(--line);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: viewSpin .75s linear infinite
}

@keyframes viewSpin {
  to {
    transform: rotate(360deg)
  }
}

.native-web-controls {
  margin-top: 18px
}

.native-web-controls h2 {
  margin-bottom: 10px
}

.native-control-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px
}

.native-control {
  min-height: 42px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, .08)
}

.session-output {
  margin-top: 16px
}

.native-view p {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  font-size: 16px
}

@media(max-width:1000px) {
  .native-control-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr))
  }

  .integrated-frame {
    min-height: 760px
  }
}

/* Prevent layout rounding/embedded hardware surfaces from creating a horizontal page scrollbar. */
html,
body {
  max-width: 100%;
  overflow-x: hidden
}

main,
.page-shell,
.hardware-view-shell,
.integrated-frame {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box
}


/* Readability and card action alignment. */
body {
  font-size: 20px
}

p,
.page-intro,
.doc-content p,
.doc-content li,
.markdown-body p,
.markdown-body li {
  font-size: 22px !important;
  line-height: 1.65
}

.example-card {
  display: flex;
  flex-direction: column
}

.example-card .card-body {
  flex: 1;
  min-height: 190px;
  padding-bottom: 18px
}

.example-card .card-body h3 {
  font-size: 21px;
  line-height: 1.3
}

.example-card .actions {
  margin-top: auto;
  padding-top: 18px;
  display: flex;
  align-items: flex-end;
  gap: 8px
}

.example-card .actions button {
  background: #253034;
  color: var(--text);
  border-color: var(--line);
  box-shadow: none
}

.example-card .actions button:hover {
  background: #487461af
}

:root[data-theme="light"] .example-card .actions button {
  background: #fff;
  color: #243138;
  border-color: #cad5d8
}

:root[data-theme="light"] .example-card .actions button:hover {
  background: #edf6f1;
  border-color: #9fcbb7
}


/* ---- saved-demo auto recording + replay ---- */
.saved-panel {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.saved-demo-row {
  display: flex;
  flex-direction: column;
  gap: 10px;
  border-top: 1px solid var(--line);
  padding: 14px 0
}

.saved-demo-row:first-child {
  border-top: 0
}

.saved-demo-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap
}

.saved-demo-actions button {
  padding: 8px 11px
}

.saved-demo-actions a {
  color: var(--accent);
  font-size: 14px
}

.demo-replay {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px;
  background: var(--panel, var(--card))
}

.demo-replay-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px
}

.demo-replay-head b {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap
}

.demo-replay-controls {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 76px;
  gap: 8px;
  align-items: center
}

.demo-replay-controls button {
  width: 42px;
  height: 38px;
  padding: 0
}

.demo-replay-controls input[type=range] {
  min-width: 0
}

.demo-replay-controls select {
  min-width: 0;
  padding: 7px 8px
}

.demo-replay>small {
  display: block;
  margin-top: 7px;
  color: var(--muted);
  font-variant-numeric: tabular-nums
}

/* Manual/simulator controls use the same translucent green hover in both themes. */
.sim-shell .manual-grid button:hover,
.sim-shell [data-joint-step]:hover,
.sim-shell [data-rotate]:hover,
.sim-shell .camera-buttons button:hover {
  background: rgba(166, 231, 197, .18) !important;
  border-color: #a6e7c5 !important;
  color: var(--text) !important;
  box-shadow: 0 2px 8px rgba(61, 116, 89, .12)
}

:root[data-theme="light"] .sim-shell .manual-grid button:hover,
:root[data-theme="light"] .sim-shell [data-joint-step]:hover,
:root[data-theme="light"] .sim-shell [data-rotate]:hover,
:root[data-theme="light"] .sim-shell .camera-buttons button:hover {
  background: rgba(154, 217, 186, .24) !important;
  border-color: #9fcbb7 !important;
  color: #20322b !important
}

/* Documentation pages are deliberately narrower without changing the shared shell. */
.page-shell--docs {
  width: min(1320px, 100%)
}

.page-shell--docs .page-intro {
  max-width: 960px
}

.page-shell--docs .doc-layout {
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 34px;
  width: 100%;
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto
}

.page-shell--docs .doc-content {
  max-width: 960px
}

@media(max-width:900px) {
  .page-shell--docs {
    width: 100%
  }

  .page-shell--docs .doc-layout {
    grid-template-columns: 1fr
  }

  .page-shell--docs .doc-content {
    max-width: none
  }
}

/* ---- docs/detail header alignment ---- */
.page-shell--docs {
  width: min(1450px, 100%);
  padding-top: 24px;
}

.page-shell--docs .doc-layout {
  width: 100%;
  max-width: 1450px;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 38px;
  margin-left: auto;
  margin-right: auto;
}

.page-shell--docs .doc-content {
  max-width: 1120px;
}

.page-shell--docs .page-intro {
  max-width: 1120px;
}

.detail-page-head {
  width: 100%;
  margin: 6px 0 20px;
}

.page-shell--docs .detail-page-head {
  margin-top: 0;
}

.content-brand {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--text);
  margin: 0 0 18px;
  text-decoration: none;
}

.content-brand img {
  width: 150px;
  height: auto;
  display: block;
}

.content-brand span {
  color: var(--muted);
  font-size: 14px;
  white-space: nowrap;
}

.content-brand:hover {
  background: transparent !important;
  color: var(--text);
}

.breadcrumbs {
  margin: 0;
}

.breadcrumbs a:hover {
  background: transparent !important;
  color: var(--text) !important;
}

.breadcrumbs a:focus-visible {
  background: transparent !important;
}

.sim-head-runtime-only {
  justify-content: flex-end;
}

@media(max-width:900px) {
  .page-shell--docs {
    width: 100%;
    padding-top: 14px
  }

  .page-shell--docs .doc-layout {
    grid-template-columns: 1fr;
    max-width: none
  }

  .page-shell--docs .doc-content {
    max-width: none
  }

  .content-brand img {
    width: 132px
  }
}

\n\n

/* ---- header scale, inline runtime, and simulator control readability ---- */
.content-brand {
  gap: 12px;
  margin-bottom: 20px
}

.content-brand img {
  width: 195px
}

.content-brand span {
  font-size: 19px;
  font-weight: 500
}

.breadcrumbs {
  font-size: 20px;
  line-height: 1.35
}

.breadcrumbs .runtime-pill-inline {
  margin-left: auto;
  font: inherit;
  font-size: 20px;
  letter-spacing: 0;
  color: var(--muted);
  white-space: nowrap;
}

.breadcrumbs .runtime-pill-inline #runState {
  margin-left: 8px;
  color: var(--text);
  font: inherit
}

.sim-shell .controls button,
.sim-shell .manual-grid button,
.sim-shell .joints button,
.sim-shell .camera-buttons button,
.sim-shell .pick-place-web-run {
  font-size: 12px
}

.sim-shell .manual-grid button small {
  font-size: 14px
}

.sim-shell .joint-row button {
  font-size: 17px
}

@media(max-width:900px) {
  .content-brand img {
    width: 165px
  }

  .content-brand span {
    font-size: 17px
  }

  .breadcrumbs .runtime-pill-inline {
    font-size: 17px
  }
}

/* ---- Saved MuJoCo episodes: PyBullet-style cards + replay transport ---- */
.saved-panel {
  gap: 14px
}

.saved-panel .card-title {
  display: flex;
  align-items: center;
  justify-content: space-between
}

.saved-demo-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px
}

.saved-demo-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--bg);
  padding: 0 !important
}

.saved-demo-card>img {
  display: block;
  width: 100%;
  aspect-ratio: 1.95/1;
  object-fit: cover;
  background: #263238
}

.saved-demo-copy {
  padding: 15px
}

.saved-demo-card h3 {
  font-size: 18px;
  margin: 0 0 7px;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis
}

.saved-demo-card p {
  font-size: 16px;
  line-height: 1.45;
  margin: 0 0 14px;
  color: var(--muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden
}

.saved-demo-actions {
  display: flex;
  gap: 8px;
  align-items: stretch
}

.saved-demo-actions .saved-demo-play {
  flex: 1;
  width: auto;
  min-height: 48px;
  font-size: 17px
}

.saved-demo-actions .saved-demo-delete {
  flex: 0 0 48px;
  width: 48px;
  min-height: 48px;
  padding: 10px;
  display: grid;
  place-items: center;
  color: var(--muted)
}

.saved-demo-delete svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round
}

.saved-demo-delete:hover {
  color: #ffb4ad;
  border-color: #85564d
}

.replay-under-views {
  margin: 12px 0 0;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px 18px;
  background: var(--card);
  text-align: center
}

.replay-under-views .demo-replay-head {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  margin: 0 0 10px
}

.replay-under-views .demo-replay-head b {
  font-size: 14px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis
}

.demo-replay-timeline {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 10px
}

.demo-replay-timeline input[type=range] {
  flex: 1;
  min-width: 80px
}

.demo-replay-timeline small {
  min-width: 86px;
  text-align: right;
  color: var(--muted);
  font-variant-numeric: tabular-nums
}

.replay-under-views .demo-replay-controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px
}

.replay-under-views .demo-replay-controls button {
  width: 42px;
  height: 38px;
  padding: 0;
  display: grid;
  place-items: center
}

.replay-under-views .demo-replay-controls label {
  display: flex;
  grid-template-columns: none;
  align-items: center;
  gap: 8px;
  margin-left: 8px;
  font-size: 13px
}

.replay-under-views .demo-replay-controls select {
  min-width: 74px;
  padding: 7px 8px
}

:root[data-theme="light"] .saved-demo-card {
  background: #fff
}

:root[data-theme="light"] .replay-under-views {
  background: #fff
}

/* Saved episode thumbnails must come from the recorded task, never generic scene art. */
.saved-demo-image-missing {
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 1.95/1;
  background: var(--card);
  color: var(--muted);
  font-size: 14px;
}

\n\n

/* ---- docs readability + saved demos bounded column + custom delete modal ---- */
\n.page-shell--docs .page-intro,
\n.page-shell--docs .doc-content p {
  \n font-size: 24px !important;
  \n line-height: 1.72;
  \n
}

\n.page-shell--docs .doc-content li {
  \n font-size: 22px !important;
  \n line-height: 1.68;
  \n
}

\n.saved-demo-list {
  \n max-height: 690px;
  \n overflow-y: auto;
  \n overflow-x: hidden;
  \n padding-right: 6px;
  \n scrollbar-gutter: stable;
  \n
}

\n.saved-demo-list::-webkit-scrollbar {
  width: 8px;
}

\n.saved-demo-list::-webkit-scrollbar-thumb {
  background: var(--line);
  border-radius: 999px;
}

\n.saved-demo-list::-webkit-scrollbar-track {
  background: transparent;
}

\n.saved-demo-confirm {
  \n width: min(520px, calc(100vw - 32px));
  \n max-width: 520px;
  \n padding: 0;
  \n border: 1px solid var(--line);
  \n border-radius: 16px;
  \n background: var(--card);
  \n color: var(--text);
  \n box-shadow: 0 22px 70px rgba(0, 0, 0, .38);
  \n
}

\n.saved-demo-confirm::backdrop {
  background: rgba(3, 9, 11, .68);
  backdrop-filter: blur(3px);
}

\n.saved-demo-confirm-copy {
  padding: 24px 24px 14px;
}

\n.saved-demo-confirm h3 {
  margin: 0 0 10px;
  font-size: 22px;
}

\n.saved-demo-confirm p {
  margin: 0 0 8px;
  font-size: 17px !important;
  line-height: 1.5;
}

\n.saved-demo-confirm #saved-demo-confirm-name {
  color: var(--text);
  font-weight: 650;
}

\n.saved-demo-confirm-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 14px 24px 22px;
}

\n.saved-demo-confirm-actions button {
  min-width: 96px;
  font-size: 16px;
}

\n:root[data-theme="light"] .saved-demo-confirm {
  background: #fff;
}

\n@media(max-width:900px) {

  \n .page-shell--docs .page-intro,
  \n .page-shell--docs .doc-content p {
    font-size: 21px !important;
  }

  \n .page-shell--docs .doc-content li {
    font-size: 20px !important;
  }

  \n .saved-demo-list {
    max-height: 620px;
  }

  \n
}

\n

/* ---- data cards: 4-column home fit, title-first hierarchy, wider inspector ---- */
.home-data-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  width: 100%;
  max-width: 100%;
  align-items: stretch;
}

#homeData {
  display: contents
}

.home-data-grid>.card,
.home-data-grid #homeData>.card {
  min-width: 0;
  width: 100%
}

.data-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden
}

.data-card h3 {
  margin: 0 0 10px;
  font-size: 20px;
  line-height: 1.28;
  overflow-wrap: anywhere
}

.data-card .tag {
  display: block;
  margin: 0 0 14px;
  padding-top: 0;
  color: var(--text);
  overflow-wrap: anywhere
}

.data-card p {
  margin: 0 0 18px;
  flex: 1
}

.data-card-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 48px;
  gap: 10px;
  margin-top: auto
}

.data-card-actions button {
  min-width: 0;
  font-size: 16px
}

.data-delete {
  padding: 10px !important;
  color: #ffb4ad
}

.data-delete:hover {
  background: rgba(255, 120, 112, .11) !important;
  border-color: #8b4d4a !important
}

.example-card .card-body h3 {
  order: 0;
  margin: 8px 0 10px
}

.example-card .tag-row {
  order: 1;
  margin: 0 0 14px
}

.example-card .actions {
  order: 2
}

.modal-data-inspect {
  width: min(1280px, 94vw) !important;
  max-width: 1280px !important;
  max-height: 90vh
}

.modal-data-inspect #modalBody {
  max-height: calc(90vh - 90px);
  overflow: auto
}

.modal-confirm {
  width: min(560px, calc(100vw - 32px)) !important;
  max-width: 560px !important
}

.data-delete-confirm p {
  font-size: 17px !important;
  margin: 0 0 12px
}

.data-delete-confirm strong {
  display: block;
  font-size: 18px;
  overflow-wrap: anywhere
}

.data-delete-confirm-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 24px
}

:root[data-theme="light"] .data-card .tag {
  color: var(--text) !important
}

@media(max-width:1450px) {
  .home-data-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr))
  }
}

@media(max-width:1050px) {
  .home-data-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }
}

@media(max-width:700px) {
  .home-data-grid {
    grid-template-columns: 1fr
  }
}

/* Native app scale. This does not override browser-controlled site zoom. */
html,
body {
  zoom: 100%
}
/* ---- vNEXT: hardware surface follows the parent page; Data categories ---- */
.page-shell .hardware-view-shell{
  width:100%;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important
}
.page-shell .integrated-frame{
  display:block;
  width:100%;
  height:auto;
  min-height:420px;
  max-height:none!important;
  overflow:hidden!important;
  border:0;
  border-radius:0
}
@media(max-width:1000px){
  .page-shell .integrated-frame{min-height:420px}
}
.dataset-tabs{
  display:flex;
  align-items:center;
  gap:8px;
  margin:18px 0 18px;
  padding-bottom:10px;
  border-bottom:1px solid var(--line)
}
.dataset-tabs button{
  border:0;
  background:transparent;
  color:var(--muted);
  padding:9px 16px;
  border-radius:9px
}
.dataset-tabs button.active{
  background:color-mix(in srgb,var(--accent) 14%,var(--card));
  color:var(--text)
}
.data-dataset-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch
}
.data-card{overflow:hidden;padding:0}
.data-card-thumb{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--card);border-bottom:1px solid var(--line)}
.data-card-copy{padding:18px;display:flex;flex-direction:column;min-height:190px}
.data-card-copy p{flex:1}
.data-add-card{
  min-height:260px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:1px dashed var(--line)!important;
  background:color-mix(in srgb,var(--card) 86%,transparent)!important;
  color:var(--muted)!important
}
.data-add-card:hover{
  color:var(--accent)!important;
  border-color:var(--accent)!important;
  background:color-mix(in srgb,var(--accent) 7%,var(--card))!important
}
.data-add-plus{font-size:52px;line-height:1;font-weight:300}
@media(max-width:1200px){.data-dataset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.data-dataset-grid{grid-template-columns:1fr}}

/* ---- task-bundle data browser + full-width hardware parent ---- */
.page-shell--hardware{
  width:min(1950px,100%);
}
.bundle-card-actions{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.bundle-card-actions button{min-width:0}
.modal-data-bundle{
  width:min(1220px,94vw)!important;
  max-width:1220px!important;
  max-height:90vh;
}
.modal-data-bundle #modalBody{
  max-height:calc(90vh - 92px);
  overflow:auto;
}
.bundle-view-head{
  margin-bottom:18px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line)
}
.bundle-view-head .tag{
  position:static;
  display:inline-block;
  margin-bottom:8px;
  color:var(--text);
  background:transparent;
  border:0;
  padding:0;
}
.bundle-view-head p{margin:0}
.bundle-demo-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.bundle-demo-card{
  min-width:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--card)
}
.bundle-demo-thumb{
  display:block;
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  border-bottom:1px solid var(--line)
}
.bundle-demo-card>div{padding:14px}
.bundle-demo-card h3{margin:0 0 7px;font-size:17px}
.bundle-demo-card p{font-size:15px!important;margin:0 0 12px}
.bundle-demo-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(max-width:1000px){.bundle-demo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.bundle-demo-grid{grid-template-columns:1fr}}


/* ---- 2026-10-21 compact Home data bundles + Agent delete action ---- */
.home-data-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  align-items: start !important;
}
#homeData { display: contents !important; }
.home-data-grid > .home-data-card,
.home-data-grid #homeData > .data-bundle-card {
  min-height: 330px !important;
  height: 330px !important;
  width: 100% !important;
  align-self: start !important;
}
.home-data-grid #homeData > .data-bundle-card .data-card-thumb {
  height: 145px !important;
  aspect-ratio: auto !important;
  flex: 0 0 145px;
}
.home-data-grid #homeData > .data-bundle-card .data-card-copy {
  min-height: 0 !important;
  height: 185px;
  padding: 15px 16px !important;
}
.home-data-grid #homeData > .data-bundle-card .data-card-copy h3 {
  font-size: 17px !important;
  margin-bottom: 6px !important;
}
.home-data-grid #homeData > .data-bundle-card .data-card-copy p {
  font-size: 15px !important;
  margin-bottom: 10px !important;
}
.agent-bundle-actions { grid-template-columns: minmax(0,1fr) 46px !important; }
.data-delete-bundle {
  width: 46px;
  min-width: 46px !important;
  padding: 10px !important;
  color: #ffb4ad;
  display: grid;
  place-items: center;
}
.data-delete-bundle svg { width: 19px; height: 19px; }
.data-delete-bundle:hover {
  background: rgba(255,120,112,.11) !important;
  border-color: #8b4d4a !important;
}
@media(max-width:1450px){.home-data-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:1050px){.home-data-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){.home-data-grid{grid-template-columns:1fr!important}.home-data-grid>.home-data-card,.home-data-grid #homeData>.data-bundle-card{height:auto!important;min-height:300px!important}}

/* Hardware launch preflight: Linux support and a real D1 connection are distinct. */
.hardware-preflight{
  margin:14px 0 6px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:9px;
  background:color-mix(in srgb,var(--panel) 92%,var(--bg));
  font-size:13px;
  line-height:1.45;
}
.hardware-preflight.is-ready{font-weight:600}
.hardware-preflight.is-waiting{color:var(--muted)}
.hardware-missing{margin:0 0 12px;color:var(--muted);font-size:11px;line-height:1.4}

/* ACT real-policy launcher */
.act-launch-config{
  margin:14px 0 6px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:color-mix(in srgb,var(--panel) 94%,var(--bg));
}
.act-launch-config h3{margin:0 0 12px}
.act-launch-config .form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.act-launch-config input,.act-launch-config select{width:100%}
.act-reset-ready{display:flex;align-items:center;gap:8px;margin-top:12px}
.act-reset-ready input{width:auto}
.act-launch-note{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
@media(max-width:700px){.act-launch-config .form{grid-template-columns:1fr}}

/* ---- 2026-10-22 data modal media/navigation + docs top-row breadcrumbs ---- */
.modal-data-inspect,
.modal-data-bundle {
  background: var(--card) !important;
}
.modal-data-inspect > header,
.modal-data-bundle > header {
  display: grid;
  grid-template-columns: minmax(90px, 1fr) auto minmax(90px, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 44px;
}
.modal-data-inspect > header #modalTitle,
.modal-data-bundle > header #modalTitle {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  text-align: center;
  justify-self: center;
}
.modal-data-inspect > header #closeModal,
.modal-data-bundle > header #closeModal {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
}
.modal-back-button {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  padding: 8px 10px;
  border-color: transparent;
  background: transparent;
  color: var(--muted);
}
.modal-back-button:hover {
  background: color-mix(in srgb, var(--line) 35%, transparent);
  color: var(--text);
}
.modal-data-inspect #modalBody,
.modal-data-bundle #modalBody {
  scrollbar-width: thin;
  scrollbar-color: var(--line) var(--card);
}
.modal-data-inspect #modalBody::-webkit-scrollbar,
.modal-data-bundle #modalBody::-webkit-scrollbar {
  width: 5px;
}
.modal-data-inspect #modalBody::-webkit-scrollbar-track,
.modal-data-bundle #modalBody::-webkit-scrollbar-track {
  background: var(--card);
}
.modal-data-inspect #modalBody::-webkit-scrollbar-thumb,
.modal-data-bundle #modalBody::-webkit-scrollbar-thumb {
  background: var(--line);
  border-radius: 999px;
}
.data-recording-video {
  display: block;
  width: calc(100% + 50px);
  max-width: none;
  max-height: 58vh;
  margin: 14px -25px 24px;
  object-fit: contain;
  background: #000;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.data-recording-fallback {
  aspect-ratio: 16 / 9;
  object-fit: contain;
}
.modal-data-inspect #modalBody > h3,
.modal-data-bundle .bundle-view-head,
.modal-data-bundle .bundle-demo-card h3 {
  text-align: center;
}
.modal-data-bundle .bundle-view-head .tag {
  display: block;
  width: max-content;
  margin-left: auto;
  margin-right: auto;
}

/* Documentation pages: logo left, breadcrumb trail on the same top row right. */
.page-shell--docs .detail-page-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  margin-bottom: 22px;
}
.page-shell--docs .detail-page-head .content-brand {
  margin: 0;
  flex: 0 0 auto;
}
.page-shell--docs .detail-page-head .breadcrumbs {
  margin: 0 0 0 auto;
  justify-content: flex-end;
  text-align: right;
  min-width: 0;
}
@media(max-width:760px) {
  .page-shell--docs .detail-page-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }
  .page-shell--docs .detail-page-head .breadcrumbs {
    margin-left: 0;
    justify-content: flex-start;
    text-align: left;
  }
  .data-recording-video {
    width: calc(100% + 32px);
    margin-left: -16px;
    margin-right: -16px;
  }
}


/* ---- 2026-10-22 reliable Data recording playback ---- */
.data-video-host,
.data-frame-player {
  width: calc(100% + 50px);
  margin: 14px -25px 24px;
  background: #000;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  overflow: hidden;
}
.data-video-host .data-recording-video {
  width: 100%;
  margin: 0;
  border: 0;
}
.data-video-frame-fallback[hidden] { display: none !important; }
.data-video-frame-fallback .data-frame-player { width: 100%; margin: 0; border: 0; }
.data-frame-stage {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 260px;
  max-height: 58vh;
  aspect-ratio: 16 / 9;
  background: #000;
}
.data-frame-stage img {
  width: 100%;
  height: 100%;
  max-height: 58vh;
  object-fit: contain;
  background: #000;
}
.data-replay-timeline {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 10px 14px 6px;
  background: var(--card);
}
.data-replay-timeline input { width: 100%; }
.data-replay-timeline small { color: var(--muted); white-space: nowrap; }
.data-replay-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 6px 14px 12px;
  background: var(--card);
}
.data-replay-controls button { min-width: 42px; }
.data-replay-controls label { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); }
.data-replay-controls select { min-width: 82px; }

@media(max-width:760px) {
  .data-video-host,
  .data-frame-player { width: calc(100% + 32px); margin-left: -16px; margin-right: -16px; }
  .data-replay-controls { flex-wrap: wrap; }
}

/* ---- 2026-10-22 docs content refresh ---- */
.page-shell--docs .doc-summary-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin:18px 0 22px;
}
.page-shell--docs .doc-summary-card {
  border:1px solid var(--line);
  background:var(--card);
  border-radius:14px;
  padding:18px;
  min-width:0;
}
.page-shell--docs .doc-summary-card h3 {
  margin:8px 0 8px;
  font-size:18px;
}
.page-shell--docs .doc-summary-card p {
  margin:0;
  font-size:15px;
  line-height:1.6;
}
.page-shell--docs .doc-summary-card a {
  display:inline-block;
  margin-top:12px;
}
.page-shell--docs .doc-contract {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  overflow:hidden;
  margin:18px 0 22px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--line);
}
.page-shell--docs .doc-contract > div {
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
  padding:15px 16px;
  background:var(--card);
}
.page-shell--docs .doc-contract b {
  font-size:12px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--text);
}
.page-shell--docs .doc-contract span {
  color:var(--muted);
  font-size:14px;
  line-height:1.45;
}
.page-shell--docs .doc-step-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin:18px 0 22px;
}
.page-shell--docs .doc-step-grid > div {
  position:relative;
  border:1px solid var(--line);
  background:var(--card);
  border-radius:14px;
  padding:18px 18px 18px 58px;
  min-height:112px;
}
.page-shell--docs .doc-step-grid > div > span:first-child {
  position:absolute;
  left:17px;
  top:18px;
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  border-radius:50%;
  border:1px solid var(--line);
  font-weight:700;
  font-size:12px;
  color:var(--text);
  background:var(--bg);
}
.page-shell--docs .doc-step-grid h3 {
  margin:0 0 6px;
  font-size:17px;
}
.page-shell--docs .doc-step-grid p {
  margin:0;
  font-size:15px;
  line-height:1.6;
}
.page-shell--docs .doc-checklist {
  display:grid;
  gap:8px;
  margin:16px 0 0;
  padding-left:22px;
}
.page-shell--docs .doc-real-grid {
  margin-top:14px;
}
@media(max-width:1100px){
  .page-shell--docs .doc-summary-grid {grid-template-columns:1fr 1fr;}
  .page-shell--docs .doc-contract {grid-template-columns:1fr 1fr;}
}
@media(max-width:700px){
  .page-shell--docs .doc-summary-grid,
  .page-shell--docs .doc-contract,
  .page-shell--docs .doc-step-grid {grid-template-columns:1fr;}
}
