/* Self-calibration workspace ---------------------------------------------- */ .console-v2[data-module="self-calibration"] { --v2-accent: #4f73b2; --v2-accent-strong: #1e386b; --v2-accent-soft: #e7ecf8; --v2-sidebar: #dae3f5; --v2-sidebar-deep: #b6c7ea; --v2-line: rgba(30, 56, 107, 0.14); } .console-v2 .v2-calibration-sidebar, .console-v2 .v2-calibration-footer, .console-v2 .v2-self-calibration { display: none; } .console-v2[data-module="self-calibration"] .v2-control-section, .console-v2[data-module="self-calibration"] .v2-config-section, .console-v2[data-module="self-calibration"] .v2-sidebar > .v2-sidebar-footer:not(.v2-calibration-footer), .console-v2[data-module="self-calibration"] .v2-operation-shell, .console-v2[data-module="self-calibration"] .v2-output-shell { display: none; } .console-v2[data-module="self-calibration"] .v2-sidebar { background: radial-gradient(circle at 14% 3%, rgba(255, 255, 255, 0.84), transparent 24%), linear-gradient(158deg, var(--v2-sidebar) 0%, #eef2fa 61%, var(--v2-sidebar-deep) 132%); } .console-v2[data-module="self-calibration"] .v2-avatar { width: 46px; height: 46px; background: radial-gradient(circle at 28% 25%, rgba(255, 255, 255, 0.96), transparent 18%), linear-gradient(135deg, #183c7a 3%, #6688d4 48%, #e5b0c8 55%, #315eaa 100%); } .console-v2[data-module="self-calibration"] .v2-profile { grid-template-columns: 46px minmax(0, 1fr) 28px; gap: 8px; } .console-v2[data-module="self-calibration"] .v2-role-select > span, .console-v2[data-module="self-calibration"] .v2-role-select .v2-dropdown-trigger { font-size: 18px; } .console-v2[data-module="self-calibration"] .v2-role-select > .v2-dropdown-trigger { max-width: none; gap: 5px; } .console-v2[data-module="self-calibration"] .v2-calibration-sidebar { min-height: 0; display: flex; flex: 1; flex-direction: column; margin-top: clamp(22px, 3.4vh, 40px); } .console-v2[data-module="self-calibration"] .v2-calibration-footer { display: grid; } .console-v2.v2-sidebar-collapsed[data-module="self-calibration"] .v2-calibration-sidebar, .console-v2.v2-sidebar-collapsed[data-module="self-calibration"] .v2-calibration-footer { display: none; } .console-v2[data-module="self-calibration"] .main-panel { grid-template-rows: 36px minmax(0, 1fr); } .console-v2[data-module="self-calibration"] .v2-self-calibration { min-width: 0; min-height: 0; display: grid; grid-row: 2; grid-template-rows: auto minmax(0, 1fr); gap: 15px; padding: clamp(14px, 1.55vw, 24px) 0 0; overflow: hidden; } .v2-calibration-sidebar > .v2-field-caption { display: block; margin: 0 0 8px; color: #617193; font-size: 13px; font-weight: 750; } .v2-calibration-mode-switch { display: grid; gap: 7px; } .v2-calibration-mode-switch button { min-height: 52px; display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 8px; padding: 0 15px; color: #637677; background: transparent; border: 1px solid transparent; border-radius: 13px; font-size: 15px; font-weight: 700; text-align: left; cursor: pointer; transition: 160ms ease; } .v2-calibration-mode-switch button svg { width: 19px; height: 19px; justify-self: center; } .v2-calibration-mode-switch button:hover { color: var(--v2-accent-strong); background: rgba(255, 255, 255, 0.52); } .v2-calibration-mode-switch button.active { color: #111f20; background: rgba(255, 255, 255, 0.94); border-color: rgba(255, 255, 255, 0.86); box-shadow: 0 10px 28px rgba(30, 56, 107, 0.08); } .v2-calibration-mode-switch button.active svg { color: var(--v2-accent); } .v2-calibration-config-stack { display: grid; gap: 7px; } .v2-calibration-config-card { min-width: 0; min-height: 52px; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 11px; color: #314565; background: rgba(255, 255, 255, 0.52); border: 1px solid rgba(49, 94, 170, 0.11); border-radius: 13px; } .v2-calibration-config-card > svg { width: 18px; height: 18px; justify-self: center; color: #5f7fb7; } .v2-calibration-config-card > div { min-width: 0; display: grid; } .v2-calibration-config-card small { color: #7786a2; font-size: 9px; font-weight: 700; } .v2-calibration-config-card strong { overflow: hidden; color: #1e386b; font-size: 12px; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; } .v2-calibration-config-card > span { padding: 3px 5px; color: #345f9d; background: rgba(255, 255, 255, 0.68); border-radius: 5px; font: 800 7px "SFMono-Regular", Consolas, monospace; } .v2-calibration-config-card[data-state="online"] > span { color: #17745d; } .v2-calibration-config-card[data-state="error"] > span { color: #b43d38; } .v2-calibration-config-card .v2-config-card-select { width: 100%; } .v2-calibration-config-card .v2-dropdown-trigger { width: 100%; height: 18px; color: #1e386b; font-size: 12px; font-weight: 850; text-align: left; } .v2-calibration-target-note { min-height: 28px; margin: 7px 4px 8px; color: #6f7d97; font-size: 9px; line-height: 1.45; } .v2-calibration-connect, .v2-calibration-settings-link { width: 100%; min-height: 42px; display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: center; gap: 9px; padding: 9px 12px; border-radius: 12px; font-size: 11px; font-weight: 850; cursor: pointer; } .v2-calibration-connect { color: white; background: linear-gradient(135deg, #5d82c2, #315eaa); border: 0; box-shadow: 0 10px 22px rgba(35, 71, 133, 0.2); } .v2-calibration-connect svg, .v2-calibration-settings-link svg { width: 16px; height: 16px; } .v2-calibration-settings-link { grid-template-columns: 20px minmax(0, 1fr) 16px; margin-top: auto; color: #536684; background: rgba(255, 255, 255, 0.35); border: 1px solid rgba(49, 94, 170, 0.11); text-align: left; } .v2-calibration-settings-link.active, .v2-calibration-settings-link:hover { color: #1e386b; background: rgba(255, 255, 255, 0.72); } .v2-calibration-footer > button { color: #315eaa !important; background: rgba(255, 255, 255, 0.72) !important; } .v2-calibration-heading { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 18px; } .v2-calibration-heading > div:first-child { min-width: 0; } .v2-calibration-heading .section-kicker, .v2-calibration-panel .section-kicker, .v2-calibration-axis-section .section-kicker { display: block; color: #5b77aa; font: 800 8px "SFMono-Regular", Consolas, monospace; letter-spacing: 0.16em; } .v2-calibration-heading h1 { margin: 4px 0 2px; color: #1f2d30; font-size: clamp(22px, 2vw, 31px); line-height: 1; letter-spacing: -0.045em; } .v2-calibration-heading p { margin: 0; color: #839092; font-size: 11px; } .v2-calibration-statuses { display: flex; align-items: center; gap: 8px; } .v2-calibration-statuses > div { min-width: 112px; min-height: 43px; display: grid; grid-template-columns: 9px minmax(0, 1fr); align-items: center; gap: 8px; padding: 7px 10px; background: rgba(255, 255, 255, 0.82); border: 1px solid rgba(42, 72, 74, 0.08); border-radius: 12px; box-shadow: 0 8px 20px rgba(37, 70, 72, 0.06); } .v2-calibration-statuses > div > i { width: 7px; height: 7px; border-radius: 50%; background: #a9b3b3; box-shadow: 0 0 0 4px rgba(126, 145, 145, 0.1); } .v2-calibration-statuses > div > i.online { background: #3ea884; box-shadow: 0 0 0 4px rgba(62, 168, 132, 0.12); } .v2-calibration-statuses > div > i.wait { background: #d9a34c; box-shadow: 0 0 0 4px rgba(217, 163, 76, 0.12); } .v2-calibration-statuses > div > i.error { background: #d95d55; box-shadow: 0 0 0 4px rgba(217, 93, 85, 0.12); } .v2-calibration-statuses span { min-width: 0; display: grid; } .v2-calibration-statuses small { color: #9aa4a5; font: 700 7px "SFMono-Regular", Consolas, monospace; } .v2-calibration-statuses strong { overflow: hidden; color: #425356; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; } .v2-calibration-view { min-width: 0; min-height: 0; padding: 1px 3px 22px 1px; overflow: auto; scrollbar-color: rgba(49, 94, 170, 0.3) transparent; scrollbar-width: thin; } .v2-calibration-view[hidden] { display: none !important; } .v2-calibration-panel, .v2-calibration-axis-card { background: linear-gradient(152deg, rgba(255, 255, 255, 0.98), rgba(250, 252, 251, 0.91)); border: 1px solid rgba(48, 78, 80, 0.08); border-radius: 18px; box-shadow: 0 13px 34px rgba(39, 70, 72, 0.07); } .v2-calibration-panel > header, .v2-calibration-axis-section > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; } .v2-calibration-panel h2, .v2-calibration-axis-section h2 { margin: 3px 0 0; color: #2c3d40; font-size: clamp(15px, 1.25vw, 20px); letter-spacing: -0.03em; } .v2-calibration-hero-grid { min-width: 0; display: grid; grid-template-columns: minmax(0, 1.72fr) minmax(270px, 0.72fr); gap: 14px; } .v2-calibration-stage { min-height: clamp(390px, 51vh, 565px); display: grid; grid-template-rows: auto minmax(250px, 1fr) auto; padding: 16px; } .v2-calibration-badge { padding: 5px 8px; color: #18745e; background: #e1f5ee; border-radius: 7px; font-size: 9px; font-weight: 850; } .v2-calibration-badge.wait { color: #98713a; background: #fff4df; } .v2-calibration-badge.error { color: #a84039; background: #fce7e5; } .v2-calibration-seat-scene { min-height: 0; position: relative; overflow: hidden; background: radial-gradient(circle at 50% 44%, rgba(218, 227, 245, 0.95), transparent 44%), linear-gradient(180deg, #fafbfe, #edf2fa); border: 1px solid rgba(49, 83, 84, 0.07); border-radius: 15px; } .v2-calibration-floor-grid { position: absolute; inset: 58% -20% -18%; z-index: 0; opacity: 0.34; background-image: linear-gradient(rgba(68, 99, 151, 0.17) 1px, transparent 1px), linear-gradient(90deg, rgba(68, 99, 151, 0.17) 1px, transparent 1px); background-size: 34px 34px; transform: perspective(360px) rotateX(58deg); transform-origin: center top; } .v2-calibration-seat-scene .seat-model-host { position: absolute; inset: 0; z-index: 1; overflow: hidden; } .v2-calibration-seat-scene .seat-model-host canvas { width: 100%; height: 100%; display: block; outline: 0; cursor: grab; touch-action: none; } .v2-calibration-seat-scene .seat-model-host canvas:active { cursor: grabbing; } .v2-calibration-seat-scene .model-loading { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 8px; color: #6b7890; background: radial-gradient(circle at 50% 48%, rgba(205, 217, 241, 0.72), transparent 52%); transition: opacity 280ms ease, visibility 280ms ease; } .v2-calibration-seat-scene .model-loading strong { color: #344867; font-size: 11px; } .v2-calibration-seat-scene .model-loading small { color: #8794aa; font: 8px Consolas, monospace; letter-spacing: 0.12em; } .v2-calibration-seat-scene .model-loading.error strong { color: #b5413a; } .v2-calibration-seat-scene .model-spinner { width: 27px; height: 27px; border: 2px solid rgba(79, 115, 178, 0.16); border-top-color: var(--v2-accent); border-radius: 50%; animation: calibration-spin 0.8s linear infinite; } @keyframes calibration-spin { to { transform: rotate(360deg); } } .v2-calibration-seat-scene .seat-model-host.is-ready .model-loading { visibility: hidden; opacity: 0; pointer-events: none; } .v2-calibration-seat-scene .orbit-hint { position: absolute; bottom: 10px; left: 50%; z-index: 4; padding: 5px 9px; color: #7a898b; background: rgba(255, 255, 255, 0.74); border: 1px solid rgba(57, 91, 92, 0.1); border-radius: 999px; font: 8px Consolas, monospace; opacity: 0; transform: translateX(-50%); transition: opacity 180ms ease; pointer-events: none; white-space: nowrap; } .v2-calibration-seat-scene .seat-model-host.is-ready:hover .orbit-hint { opacity: 1; } .v2-axis-tag { position: absolute; z-index: 3; display: flex; gap: 5px; padding: 5px 8px; color: #6d7c7e; background: rgba(255, 255, 255, 0.84); border: 1px solid rgba(56, 92, 94, 0.1); border-radius: 8px; box-shadow: 0 7px 18px rgba(46, 78, 80, 0.07); font-size: 8px; pointer-events: none; backdrop-filter: blur(8px); } .v2-axis-tag b { color: #315eaa; } .v2-axis-tag.tag-back { top: 17%; right: 13%; } .v2-axis-tag.tag-base { right: 11%; bottom: 19%; } .v2-axis-tag.tag-leg { bottom: 24%; left: 14%; } .v2-axis-tag.tag-height { top: 52%; left: 11%; } .v2-calibration-operation { min-width: 0; min-height: 44px; display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; align-items: center; gap: 10px; margin-top: 10px; padding: 7px 10px; background: #f6f9f8; border-radius: 11px; } .v2-calibration-operation > i { width: 7px; height: 7px; border-radius: 50%; background: var(--v2-accent); box-shadow: 0 0 0 5px rgba(79, 115, 178, 0.12); } .v2-calibration-operation > div { min-width: 0; display: grid; } .v2-calibration-operation small { color: #97a1a2; font-size: 8px; } .v2-calibration-operation strong { overflow: hidden; color: #46575a; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; } .v2-calibration-operation > span { color: #95a0a1; font: 700 8px Consolas, monospace; } .v2-calibration-operation > span b { color: #315eaa; } .v2-calibration-workflow { min-height: 390px; display: flex; flex-direction: column; padding: 17px; } .v2-calibration-workflow > p { margin: 13px 0 16px; color: #849193; font-size: 10px; line-height: 1.55; } .v2-calibration-flow { display: grid; gap: 0; } .v2-calibration-flow > div { min-height: 58px; display: grid; grid-template-columns: 35px minmax(0, 1fr); align-items: center; gap: 10px; padding: 8px 9px; color: #718083; background: #f7f9f9; border: 1px solid rgba(50, 80, 81, 0.06); border-radius: 12px; transition: 150ms ease; } .v2-calibration-flow > div > span { color: #9ca7a8; font: 800 10px Consolas, monospace; } .v2-calibration-flow > div > div { display: grid; } .v2-calibration-flow strong { color: #526266; font-size: 10px; } .v2-calibration-flow small { color: #9ba5a6; font-size: 8px; } .v2-calibration-flow > div.active { background: #eef3fb; border-color: rgba(49, 94, 170, 0.2); box-shadow: inset 3px 0 var(--v2-accent); } .v2-calibration-flow > div.active > span, .v2-calibration-flow > div.active strong { color: #315eaa; } .v2-calibration-flow > div.done { background: #edf7f3; } .v2-calibration-flow > i { width: 1px; height: 10px; margin-left: 26px; background: rgba(85, 112, 113, 0.18); } .v2-calibration-primary { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 9px 13px; color: white; background: linear-gradient(135deg, #5d82c2, #315eaa); border: 0; border-radius: 11px; box-shadow: 0 10px 24px rgba(35, 71, 133, 0.2); font-size: 10px; font-weight: 850; cursor: pointer; } .v2-calibration-primary:disabled { color: #9ba4a4; background: #e9eeee; box-shadow: none; cursor: not-allowed; } .v2-calibration-primary svg { width: 15px; height: 15px; } .v2-calibration-workflow > .v2-calibration-primary { width: 100%; margin-top: auto; } .v2-calibration-safety { display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 8px; margin-top: 10px; padding: 9px; color: #55736d; background: #eef7f4; border-radius: 10px; } .v2-calibration-safety svg { width: 17px; height: 17px; justify-self: center; color: #3f907c; } .v2-calibration-safety p { margin: 0; font-size: 8px; line-height: 1.5; } .v2-calibration-axis-section { margin-top: 15px; } .v2-calibration-axis-section > header { align-items: flex-end; margin: 0 3px 9px; } .v2-calibration-axis-section > header p { margin: 0; color: #929d9e; font-size: 9px; } .v2-calibration-axis-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; } .v2-calibration-axis-card { min-width: 0; padding: 12px; } .v2-calibration-axis-card > header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 7px; } .v2-calibration-axis-card > header > span { color: #7084a8; font: 800 7px Consolas, monospace; } .v2-calibration-axis-card > header > strong { overflow: hidden; color: #435457; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; } .v2-calibration-axis-card > header > b { color: #408974; font-size: 8px; } .v2-calibration-axis-card > header > b.moving { color: #315eaa; } .v2-calibration-axis-reading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin: 13px 0 8px; } .v2-calibration-axis-reading strong { color: #26383b; font-size: clamp(15px, 1.35vw, 21px); } .v2-calibration-axis-reading span { color: #9ba5a6; font: 700 7px Consolas, monospace; } .v2-calibration-axis-card input[type="range"] { width: 100%; height: 4px; accent-color: var(--v2-accent); cursor: pointer; } .v2-calibration-range-labels { display: flex; justify-content: space-between; margin-top: 4px; color: #a1aaaa; font-size: 7px; } .v2-calibration-axis-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; margin-top: 10px; } .v2-calibration-axis-actions button, .v2-calibration-actions button, .v2-calibration-settings-card > button:not(.v2-calibration-primary) { min-height: 30px; padding: 6px 7px; color: #6b7779; background: #f3f6f5; border: 1px solid rgba(53, 84, 85, 0.08); border-radius: 8px; font-size: 8px; font-weight: 800; cursor: pointer; } .v2-calibration-axis-actions button:nth-child(2), .v2-calibration-actions button:first-child { color: #315eaa; background: #eef3fb; } .v2-calibration-axis-actions button:disabled { cursor: not-allowed; opacity: 0.48; } .v2-calibration-stereo-grid { display: grid; grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr); gap: 14px; } .v2-calibration-mqtt-panel, .v2-calibration-video-panel, .v2-calibration-mapping-panel { padding: 16px; } .v2-calibration-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin: 15px 0 9px; } .v2-calibration-metrics > div { min-width: 0; display: grid; gap: 3px; padding: 10px; background: #f6f9f8; border-radius: 10px; } .v2-calibration-metrics small { color: #98a3a4; font-size: 8px; } .v2-calibration-metrics strong { color: #3c5053; font-size: 17px; } .v2-calibration-detail, .v2-calibration-form-note { margin: 8px 0; color: #8e999a; font-size: 8px; line-height: 1.45; } .v2-calibration-pose-areas { min-height: 182px; display: grid; align-content: start; gap: 7px; } .v2-calibration-empty { align-self: center; margin: 38px auto; color: #98a3a4; font-size: 9px; text-align: center; } .v2-calibration-pose-row { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; padding: 9px 10px; background: #f6f9f8; border-radius: 10px; } .v2-calibration-pose-row strong { overflow: hidden; color: #425457; font-size: 9px; text-overflow: ellipsis; } .v2-calibration-pose-row span { color: #315eaa; font: 800 8px Consolas, monospace; } .v2-calibration-pose-row small { grid-column: 1 / -1; color: #93a0a1; font: 7px Consolas, monospace; } .v2-calibration-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; } .v2-calibration-actions button { padding-inline: 12px; } .v2-calibration-video-frame { min-height: clamp(260px, 41vh, 440px); position: relative; margin-top: 14px; overflow: hidden; background: radial-gradient(circle at 50% 45%, rgba(89, 121, 178, 0.18), transparent 45%), #17233b; border-radius: 13px; } .v2-calibration-video-frame img { width: 100%; height: 100%; position: absolute; inset: 0; z-index: 2; display: none; object-fit: contain; } .v2-calibration-video-frame img.playing { display: block; } #calibrationVideoPlaceholder { height: 100%; position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 7px; color: #a8bcbc; } #calibrationVideoPlaceholder svg { width: 33px; height: 33px; color: #8da8d8; } #calibrationVideoPlaceholder strong { font-size: 11px; } #calibrationVideoPlaceholder small { color: #718487; font-size: 8px; } .v2-calibration-mapping-panel { margin-top: 14px; } .v2-calibration-mapping-rows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 13px; } .v2-calibration-mapping-row { min-width: 0; display: grid; grid-template-columns: 42px 72px minmax(80px, 1fr) 72px; align-items: center; gap: 8px; padding: 9px 10px; background: #f6f9f8; border-radius: 10px; font-size: 8px; } .v2-calibration-mapping-row strong { color: #46595b; } .v2-calibration-mapping-row span, .v2-calibration-mapping-row b { color: #839193; font: 700 7px Consolas, monospace; } .v2-calibration-mapping-row b { text-align: right; } .v2-calibration-mapping-row > div { height: 5px; overflow: hidden; background: #e1e9e7; border-radius: 999px; } .v2-calibration-mapping-row i { height: 100%; display: block; background: linear-gradient(90deg, #9ab2dd, #315eaa); border-radius: inherit; } .v2-calibration-settings-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; } .v2-calibration-settings-card { min-width: 0; display: flex; flex-direction: column; gap: 10px; padding: 17px; } .v2-calibration-settings-card > header { display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; justify-content: start; gap: 10px; } .v2-calibration-settings-card > header > span { width: 36px; height: 36px; display: grid; place-items: center; color: white; background: linear-gradient(135deg, #5d82c2, #315eaa); border-radius: 10px; font: 850 9px Consolas, monospace; } .v2-calibration-settings-card > header small { color: #657da8; font: 750 7px Consolas, monospace; letter-spacing: 0.1em; } .v2-calibration-settings-card > header h2 { margin-top: 1px; } .v2-calibration-settings-card label { display: grid; gap: 5px; color: #718083; font-size: 8px; font-weight: 750; } .v2-calibration-settings-card input { width: 100%; min-width: 0; height: 36px; padding: 7px 9px; color: #415356; background: #f5f8f7; border: 1px solid rgba(54, 85, 86, 0.09); border-radius: 9px; outline: 0; font-size: 9px; } .v2-calibration-settings-card input:focus { border-color: rgba(49, 94, 170, 0.42); box-shadow: 0 0 0 3px rgba(79, 115, 178, 0.12); } .v2-calibration-two-col { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .v2-calibration-settings-card > button { margin-top: auto; } @media (max-width: 1180px) { .v2-calibration-hero-grid { grid-template-columns: minmax(0, 1.5fr) minmax(245px, 0.75fr); } .v2-calibration-statuses > div { min-width: 94px; } .v2-calibration-axis-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .v2-calibration-settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 900px) { .console-v2[data-module="self-calibration"] .v2-self-calibration { overflow: auto; } .v2-calibration-heading { align-items: flex-start; flex-direction: column; } .v2-calibration-statuses { width: 100%; } .v2-calibration-statuses > div { min-width: 0; flex: 1; } .v2-calibration-view { overflow: visible; } .v2-calibration-hero-grid, .v2-calibration-stereo-grid { grid-template-columns: 1fr; } .v2-calibration-workflow { min-height: 360px; } } @media (max-width: 680px) { .v2-calibration-statuses { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); } .v2-calibration-axis-grid, .v2-calibration-mapping-rows, .v2-calibration-settings-grid { grid-template-columns: 1fr; } .v2-calibration-mapping-row { grid-template-columns: 38px 64px minmax(60px, 1fr) 64px; } } @media (prefers-reduced-motion: reduce) { .v2-calibration-seat-scene .model-spinner { animation-duration: 2.4s; } }