Spaces:
Running
Running
Download studio.css from Jaward/d1-simulator: direct link, hf CLI and curl.
- Browser
- Download file 89.4 kB
-
https://huggingface.co/spaces/Jaward/d1-simulator/resolve/main/studio.css
- Command line
-
hf download hf://spaces/Jaward/d1-simulator/studio.css
-
curl -L -o studio.css https://huggingface.co/spaces/Jaward/d1-simulator/resolve/main/studio.css
89.4 kB
| :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) ; | |
| color: #14291f | |
| } | |
| #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 ; | |
| 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 ; | |
| 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 ; | |
| 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 ; | |
| width: auto ; | |
| max-width: none ; | |
| 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 ; | |
| 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 ; | |
| 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 ; | |
| width: 100% ; | |
| padding-left: 64px ; | |
| padding-right: 64px ; | |
| } | |
| 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 ; | |
| padding-right: 14px | |
| } | |
| } | |
| /* ---- v6: exact legacy chat timeline + collapsed-nav centering ---- */ | |
| body.nav-closed>main { | |
| margin-left: 0 ; | |
| width: 100% ; | |
| padding-left: 60px ; | |
| padding-right: 60px ; | |
| } | |
| 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 | |
| } | |
| .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 ; | |
| padding-right: 14px | |
| } | |
| } | |
| /* ---- 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 ; | |
| width: 100% ; | |
| padding-left: 30px ; | |
| padding-right: 30px | |
| } | |
| body.nav-closed .sim-shell { | |
| margin-left: auto ; | |
| margin-right: auto | |
| } | |
| .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 ; | |
| grid-template-columns: minmax(0, 1fr) 34px 52px 34px ; | |
| gap: 5px ; | |
| align-items: center ; | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| padding: 8px ; | |
| margin: 0 | |
| } | |
| .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 ; | |
| 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 ; | |
| padding-right: 14px | |
| } | |
| .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 ; | |
| 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 ; | |
| width: calc(100vw - 74px) ; | |
| padding-left: 30px ; | |
| padding-right: 30px | |
| } | |
| body:not(.nav-closed)>main { | |
| margin-left: 286px ; | |
| width: calc(100vw - 286px) | |
| } | |
| .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 ; | |
| width: calc(100vw - 74px) ; | |
| padding: 20px 14px | |
| } | |
| } | |
| /* 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 ; | |
| width: calc(100vw - 330px) | |
| } | |
| body.nav-closed #studioNav { | |
| width: 74px | |
| } | |
| body.nav-closed>main { | |
| margin-left: 74px ; | |
| width: calc(100vw - 74px) | |
| } | |
| @media(max-width:760px) { | |
| #studioNav { | |
| width: 74px | |
| } | |
| body>main, | |
| body.nav-closed>main, | |
| body:not(.nav-closed)>main { | |
| margin-left: 74px ; | |
| width: calc(100vw - 74px) | |
| } | |
| } | |
| /* ---- Shared Studio page frame ---- */ | |
| main { | |
| max-width: none | |
| } | |
| .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 ; | |
| margin-right: auto | |
| } | |
| /* Telemetry should fit all status fields without hiding important state. */ | |
| .sim-telemetry { | |
| display: grid ; | |
| grid-template-columns: repeat(8, minmax(120px, 1fr)); | |
| gap: 12px ; | |
| 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 | |
| } | |
| /* 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 ; | |
| color: #21694f | |
| } | |
| :root[data-theme="light"] #studioNav nav a.active { | |
| background: #dcebe3 ; | |
| color: #21694f | |
| } | |
| :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 ; | |
| color: var(--text) | |
| } | |
| :root[data-theme="light"] .sim-chat form { | |
| background: #f7faf8 ; | |
| border-color: #cfd9d5 ; | |
| box-shadow: 0 3px 14px rgba(25, 45, 36, .10) | |
| } | |
| :root[data-theme="light"] .sim-chat textarea { | |
| background: transparent ; | |
| color: #18231f | |
| } | |
| :root[data-theme="light"] .sim-chat textarea::placeholder, | |
| :root[data-theme="light"] input::placeholder { | |
| color: #7e8d87 | |
| } | |
| :root[data-theme="light"] .chat-actions select, | |
| :root[data-theme="light"] .sim-chat details select, | |
| :root[data-theme="light"] .sim-telemetry select { | |
| background: #fff ; | |
| color: #172126 ; | |
| border-color: #cbd6d1 | |
| } | |
| :root[data-theme="light"] .chat-tools, | |
| :root[data-theme="light"] .sim-chat summary, | |
| :root[data-theme="light"] .sim-chat>small { | |
| color: #64756f | |
| } | |
| /* 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 ; | |
| border-color: #9fbeb0 ; | |
| box-shadow: 0 4px 12px rgba(24, 44, 35, .16) | |
| } | |
| :root[data-theme="light"] .camera-buttons { | |
| background: rgba(255, 255, 255, .92) ; | |
| border: 1px solid #d0d9d5; | |
| box-shadow: 0 4px 14px rgba(22, 35, 30, .18) | |
| } | |
| :root[data-theme="light"] .camera-buttons button { | |
| background: #fff ; | |
| color: #26342f ; | |
| border: 1px solid #d3ddd8 ; | |
| box-shadow: 0 2px 5px rgba(22, 35, 30, .13) | |
| } | |
| :root[data-theme="light"] .camera-buttons button:hover { | |
| background: #eaf4ef ; | |
| } | |
| :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 ; | |
| color: #1d2925 ; | |
| /* 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 ; | |
| 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 | |
| } | |
| /* Keep the search centered on Home / Examples. */ | |
| .compact-search { | |
| display: block; | |
| width: min(920px, 100%); | |
| margin-left: auto ; | |
| margin-right: auto | |
| } | |
| /* 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) ; | |
| color: #34433e ; | |
| border: 1px solid #d5ddda ; | |
| box-shadow: 0 2px 8px rgba(25, 40, 34, .10) | |
| } | |
| :root[data-theme="light"] .sim-status { | |
| color: #2f6f57 | |
| } | |
| /* 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) ; | |
| color: var(--ink) ; | |
| border-color: #a6e7c5 ; | |
| 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) ; | |
| color: var(--ink) | |
| } | |
| /* 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 ; | |
| 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) ; | |
| border-color: #a6e7c5 ; | |
| color: var(--text) ; | |
| 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) ; | |
| border-color: #9fcbb7 ; | |
| color: #20322b | |
| } | |
| /* 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 ; | |
| color: var(--text); | |
| } | |
| .breadcrumbs { | |
| margin: 0; | |
| } | |
| .breadcrumbs a:hover { | |
| background: transparent ; | |
| color: var(--text) ; | |
| } | |
| .breadcrumbs a:focus-visible { | |
| background: transparent ; | |
| } | |
| .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 | |
| } | |
| .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 ; | |
| \n line-height: 1.72; | |
| \n | |
| } | |
| \n.page-shell--docs .doc-content li { | |
| \n font-size: 22px ; | |
| \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 ; | |
| 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 ; | |
| } | |
| \n .page-shell--docs .doc-content li { | |
| font-size: 20px ; | |
| } | |
| \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 ; | |
| color: #ffb4ad | |
| } | |
| .data-delete:hover { | |
| background: rgba(255, 120, 112, .11) ; | |
| border-color: #8b4d4a | |
| } | |
| .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) ; | |
| max-width: 1280px ; | |
| max-height: 90vh | |
| } | |
| .modal-data-inspect #modalBody { | |
| max-height: calc(90vh - 90px); | |
| overflow: auto | |
| } | |
| .modal-confirm { | |
| width: min(560px, calc(100vw - 32px)) ; | |
| max-width: 560px | |
| } | |
| .data-delete-confirm p { | |
| font-size: 17px ; | |
| 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) | |
| } | |
| @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; | |
| min-height:0; | |
| max-height:none; | |
| overflow:visible | |
| } | |
| .page-shell .integrated-frame{ | |
| display:block; | |
| width:100%; | |
| height:auto; | |
| min-height:420px; | |
| max-height:none; | |
| overflow:hidden; | |
| 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); | |
| background:color-mix(in srgb,var(--card) 86%,transparent); | |
| color:var(--muted) | |
| } | |
| .data-add-card:hover{ | |
| color:var(--accent); | |
| border-color:var(--accent); | |
| background:color-mix(in srgb,var(--accent) 7%,var(--card)) | |
| } | |
| .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)); | |
| } | |
| .bundle-card-actions button{min-width:0} | |
| .modal-data-bundle{ | |
| width:min(1220px,94vw); | |
| max-width:1220px; | |
| 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;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)) ; | |
| align-items: start ; | |
| } | |
| #homeData { display: contents ; } | |
| .home-data-grid > .home-data-card, | |
| .home-data-grid #homeData > .data-bundle-card { | |
| min-height: 330px ; | |
| height: 330px ; | |
| width: 100% ; | |
| align-self: start ; | |
| } | |
| .home-data-grid #homeData > .data-bundle-card .data-card-thumb { | |
| height: 145px ; | |
| aspect-ratio: auto ; | |
| flex: 0 0 145px; | |
| } | |
| .home-data-grid #homeData > .data-bundle-card .data-card-copy { | |
| min-height: 0 ; | |
| height: 185px; | |
| padding: 15px 16px ; | |
| } | |
| .home-data-grid #homeData > .data-bundle-card .data-card-copy h3 { | |
| font-size: 17px ; | |
| margin-bottom: 6px ; | |
| } | |
| .home-data-grid #homeData > .data-bundle-card .data-card-copy p { | |
| font-size: 15px ; | |
| margin-bottom: 10px ; | |
| } | |
| .agent-bundle-actions { grid-template-columns: minmax(0,1fr) 46px ; } | |
| .data-delete-bundle { | |
| width: 46px; | |
| min-width: 46px ; | |
| padding: 10px ; | |
| 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) ; | |
| border-color: #8b4d4a ; | |
| } | |
| @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}.home-data-grid>.home-data-card,.home-data-grid #homeData>.data-bundle-card{height:auto;min-height:300px}} | |
| /* 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) ; | |
| } | |
| .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 ; } | |
| .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;} | |
| } | |