Files
Cognitive_Agent/apps/web-console/console-v2.css
T

3492 lines
75 KiB
CSS

/* Desktop console refactor --------------------------------------------------
This layer deliberately overrides the original console without changing the
tested control, gesture, hardware-safety, and digital-twin DOM contracts. */
.console-v2 {
--v2-accent: #0e7773;
--v2-accent-strong: #095d5a;
--v2-accent-soft: #d8f4f1;
--v2-sidebar: #d8f4f2;
--v2-sidebar-deep: #c7eeeb;
--v2-ink: #102427;
--v2-muted: #6f8082;
--v2-line: rgba(18, 85, 83, 0.14);
--v2-surface: #ffffff;
--v2-canvas: #f4f7f6;
--v2-shadow: 0 18px 50px rgba(35, 71, 74, 0.1);
min-width: 1180px;
min-height: 620px;
overflow: hidden;
color: var(--v2-ink);
background: #f4f7f6;
font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}
.console-v2[data-demo-role="admin"] {
--v2-accent: #315eaa;
--v2-accent-strong: #234785;
--v2-accent-soft: #e1e9fa;
--v2-sidebar: #e0e8f7;
--v2-sidebar-deep: #cedbf2;
--v2-line: rgba(49, 94, 170, 0.16);
}
.console-v2 * {
scrollbar-color: var(--v2-accent) rgba(133, 151, 151, 0.14);
scrollbar-width: thin;
}
.console-v2 *::-webkit-scrollbar {
width: 8px;
height: 8px;
}
.console-v2 *::-webkit-scrollbar-track {
background: rgba(133, 151, 151, 0.12);
border-radius: 999px;
}
.console-v2 *::-webkit-scrollbar-thumb {
background: color-mix(in srgb, var(--v2-accent) 74%, white);
border: 2px solid transparent;
border-radius: 999px;
background-clip: padding-box;
}
.console-v2 .v2-legacy-hidden,
.console-v2 .topbar,
.console-v2 .example-group,
.console-v2 #safetyStrip,
.console-v2 .gesture-backdrop,
.console-v2 .pipeline {
display: none !important;
}
.console-v2 .workspace {
width: 100vw;
height: 100dvh;
min-height: 620px;
display: grid;
grid-template-columns: clamp(245px, 18.5vw, 310px) minmax(0, 1fr);
overflow: hidden;
opacity: 0;
background: var(--v2-canvas);
transition: opacity 180ms ease, grid-template-columns 180ms ease;
}
.console-v2.v2-ready .workspace {
opacity: 1;
}
.console-v2.v2-sidebar-collapsed .workspace {
grid-template-columns: 72px minmax(0, 1fr);
}
/* Sidebar ----------------------------------------------------------------- */
.console-v2 .v2-sidebar {
min-width: 0;
height: 100dvh;
display: flex;
flex-direction: column;
gap: 0;
padding: clamp(20px, 2.5vh, 30px) clamp(18px, 2vw, 30px) 18px;
overflow: hidden;
color: var(--v2-ink);
background:
radial-gradient(circle at 14% 3%, rgba(255, 255, 255, 0.82), transparent 24%),
linear-gradient(158deg, var(--v2-sidebar) 0%, #e8f8f6 60%, var(--v2-sidebar-deep) 130%);
border-right: 1px solid var(--v2-line);
}
.console-v2[data-demo-role="admin"] .v2-sidebar {
background:
radial-gradient(circle at 14% 3%, rgba(255, 255, 255, 0.8), transparent 24%),
linear-gradient(158deg, var(--v2-sidebar) 0%, #edf2fb 60%, var(--v2-sidebar-deep) 130%);
}
.v2-profile {
display: grid;
grid-template-columns: 56px minmax(0, 1fr) 30px;
align-items: center;
gap: 14px;
min-height: 66px;
}
.v2-avatar {
position: relative;
width: 54px;
height: 54px;
display: grid;
place-items: center;
overflow: hidden;
background:
radial-gradient(circle at 28% 25%, rgba(255, 255, 255, 0.95), transparent 18%),
linear-gradient(135deg, #0b4d4b 3%, #70b7b1 49%, #d1efeb 52%, #276d69 100%);
border: 2px solid color-mix(in srgb, var(--v2-accent) 82%, #051617);
border-radius: 50%;
box-shadow: inset -10px -8px 18px rgba(0, 32, 33, 0.24), 0 8px 18px rgba(19, 74, 74, 0.14);
}
.v2-avatar::after {
content: "";
width: 74px;
height: 13px;
position: absolute;
transform: rotate(-42deg);
background: rgba(255, 255, 255, 0.26);
filter: blur(4px);
}
[data-demo-role="admin"] .v2-avatar {
background:
radial-gradient(circle at 28% 25%, rgba(255, 255, 255, 0.95), transparent 18%),
linear-gradient(135deg, #183c7a 3%, #6688d4 48%, #e5b0c8 55%, #315eaa 100%);
}
.v2-profile-copy {
min-width: 0;
}
.v2-profile-copy > small {
display: block;
margin-bottom: 4px;
color: color-mix(in srgb, var(--v2-accent) 62%, #506366);
font-size: 8px;
font-weight: 900;
letter-spacing: 0.14em;
}
.v2-role-select {
min-width: 0;
display: flex;
align-items: center;
gap: 5px;
cursor: pointer;
}
.v2-role-select > span,
.v2-role-select select,
.v2-role-select .v2-dropdown-trigger {
color: #091c1e;
font-size: clamp(20px, 1.6vw, 26px);
font-weight: 900;
letter-spacing: -0.04em;
}
.v2-role-select select {
max-width: 118px;
padding: 0 17px 0 0;
appearance: none;
background: transparent;
border: 0;
outline: 0;
cursor: pointer;
}
.v2-role-select > svg {
width: 16px;
height: 16px;
margin-left: -20px;
color: var(--v2-accent);
pointer-events: none;
}
.v2-sidebar-toggle {
width: 29px;
height: 29px;
display: grid;
place-items: center;
padding: 0;
color: var(--v2-accent-strong);
background: rgba(255, 255, 255, 0.58);
border: 1px solid rgba(255, 255, 255, 0.82);
border-radius: 8px;
cursor: pointer;
transition: 150ms ease;
}
.v2-sidebar-toggle:hover {
background: rgba(255, 255, 255, 0.92);
box-shadow: 0 6px 16px rgba(35, 85, 85, 0.1);
}
.v2-sidebar-toggle svg {
width: 15px;
height: 15px;
}
.console-v2.v2-sidebar-collapsed .v2-sidebar {
align-items: center;
padding: 15px 9px;
}
.console-v2.v2-sidebar-collapsed .v2-profile {
width: 100%;
min-height: 104px;
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
}
.console-v2.v2-sidebar-collapsed .v2-avatar {
width: 44px;
height: 44px;
}
.console-v2.v2-sidebar-collapsed .v2-profile-copy,
.console-v2.v2-sidebar-collapsed .v2-sidebar-section,
.console-v2.v2-sidebar-collapsed .v2-sidebar-footer {
display: none;
}
.v2-sidebar-section {
min-width: 0;
}
.v2-control-section {
margin-top: clamp(22px, 3.5vh, 42px);
}
.v2-section-heading span,
.v2-operation-heading .section-kicker,
.v2-output-heading small {
color: var(--v2-accent);
font-size: 8px;
font-weight: 900;
letter-spacing: 0.15em;
}
.v2-section-heading h2 {
margin: 3px 0 clamp(18px, 2.3vh, 26px);
color: var(--v2-accent-strong);
font-size: clamp(25px, 2vw, 31px);
font-weight: 900;
letter-spacing: -0.04em;
}
.v2-control-section > .v2-field-caption,
.v2-config-section > .v2-field-caption {
display: block;
margin: 0 0 8px;
color: #788888;
font-size: 13px;
font-weight: 750;
}
.console-v2 .v2-config-field > .field-label,
.console-v2 .v2-config-field > label.field-label {
display: block;
margin: 0 0 6px;
color: #8a9999;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.02em;
}
.v2-control-switch {
display: grid;
grid-template-columns: 1fr;
gap: 7px;
}
.v2-control-switch button {
min-height: 52px;
display: grid;
grid-template-columns: 30px 1fr;
align-items: center;
gap: 8px;
padding: 0 15px;
color: #637677;
background: transparent;
border: 1px solid transparent;
border-radius: 13px;
text-align: left;
font-size: 15px;
font-weight: 700;
cursor: pointer;
transition: 160ms ease;
}
.v2-control-switch button svg {
width: 19px;
height: 19px;
}
.v2-control-switch button:hover {
color: var(--v2-accent-strong);
background: rgba(255, 255, 255, 0.5);
}
.v2-control-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(34, 93, 92, 0.08);
}
.v2-control-switch button.active svg {
color: var(--v2-accent);
}
.v2-config-section {
margin-top: clamp(18px, 2.5vh, 28px);
}
.v2-divider {
height: 1px;
margin-bottom: 15px;
background: linear-gradient(90deg, var(--v2-accent), transparent);
opacity: 0.32;
}
.v2-config-stack {
display: grid;
gap: 8px;
padding: 0 0 0 9px;
border-left: 1px solid color-mix(in srgb, var(--v2-accent) 14%, transparent);
}
.console-v2 .v2-config-field {
min-width: 0;
margin: 0;
}
.console-v2 .v2-config-field > .provider-note,
.console-v2 .v2-config-card > .provider-note,
.console-v2 .v2-config-card > .v2-gesture-model-note {
display: none;
}
.console-v2 .v2-config-card {
min-width: 0;
min-height: 43px;
display: grid;
grid-template-columns: 28px minmax(0, 1fr) auto;
align-items: center;
gap: 8px;
padding: 6px 8px;
background: rgba(255, 255, 255, 0.72);
border: 1px solid rgba(255, 255, 255, 0.78);
border-radius: 10px;
}
.console-v2 .v2-config-card > svg {
width: 17px;
height: 17px;
color: var(--v2-accent);
}
.v2-config-card-copy,
.v2-config-card > div {
min-width: 0;
}
.v2-config-card small,
.v2-config-card strong {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.v2-config-card small {
color: #819091;
font-size: 8px;
}
.v2-config-card strong {
margin-top: 2px;
color: #263d3f;
font-size: 11px;
}
.v2-config-card-select {
min-width: 0;
position: relative;
}
.v2-config-card-select select {
width: 100%;
height: 18px;
padding: 0;
appearance: none;
color: #263d3f;
background: transparent;
border: 0;
outline: 0;
font-size: 11px;
font-weight: 850;
cursor: pointer;
}
/* Custom popover menus keep the original closed-field styling intact. */
.v2-custom-select {
position: relative;
overflow: visible;
}
.v2-custom-select.v2-dropdown-open {
z-index: 80;
}
.v2-native-select {
width: 1px !important;
height: 1px !important;
position: absolute !important;
inset: auto !important;
overflow: hidden !important;
padding: 0 !important;
clip-path: inset(50%) !important;
opacity: 0 !important;
pointer-events: none !important;
}
.v2-dropdown-trigger {
min-width: 0;
display: inline-flex;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 0;
color: inherit;
background: transparent;
border: 0;
outline: 0;
cursor: pointer;
}
.v2-config-card-select > .v2-dropdown-trigger {
width: 100%;
height: 18px;
font-size: 11px;
font-weight: 850;
text-align: left;
}
.v2-role-select > .v2-dropdown-trigger {
width: auto;
max-width: 118px;
}
.v2-role-select > .v2-dropdown-trigger:focus-visible {
box-shadow: none;
}
.v2-dropdown-value {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.v2-dropdown-caret {
width: 0;
height: 0;
flex: 0 0 auto;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
border-top: 6px solid var(--v2-accent-strong);
transition: transform 150ms ease;
}
.v2-dropdown-open .v2-dropdown-caret {
transform: rotate(180deg);
}
.v2-dropdown-trigger:focus-visible {
border-radius: 6px;
box-shadow: 0 0 0 3px color-mix(in srgb, var(--v2-accent) 16%, transparent);
}
.v2-dropdown-menu {
min-width: 100%;
position: absolute;
top: calc(100% + 7px);
right: 0;
left: 0;
z-index: 100;
display: grid;
gap: 3px;
padding: 6px;
overflow: hidden;
background: rgba(255, 255, 255, 0.98);
border: 1px solid color-mix(in srgb, var(--v2-accent) 12%, #eef3f2);
border-radius: 13px;
box-shadow: 0 16px 34px rgba(27, 67, 69, 0.18);
backdrop-filter: blur(14px);
}
.v2-dropdown-menu[hidden] {
display: none;
}
.v2-role-select .v2-dropdown-menu {
width: 126px;
min-width: 126px;
right: auto;
left: 24px;
}
.v2-dropdown-option {
width: 100%;
min-height: 34px;
display: grid;
grid-template-columns: minmax(0, 1fr) 14px;
align-items: center;
gap: 8px;
padding: 7px 10px;
color: #405456;
background: transparent;
border: 0;
border-radius: 8px;
text-align: left;
font-size: 11px;
font-weight: 800;
cursor: pointer;
transition: 130ms ease;
}
.v2-role-select .v2-dropdown-option {
font-size: 13px;
}
.v2-dropdown-option:hover,
.v2-dropdown-option:focus-visible {
color: var(--v2-accent-strong);
background: color-mix(in srgb, var(--v2-accent-soft) 66%, white);
outline: 0;
}
.v2-dropdown-option[aria-selected="true"] {
color: var(--v2-accent-strong);
background: color-mix(in srgb, var(--v2-accent-soft) 78%, white);
}
.v2-dropdown-option[aria-selected="true"]::after {
content: "✓";
justify-self: end;
color: var(--v2-accent);
font-size: 12px;
font-weight: 950;
}
.v2-dropdown-option:disabled {
color: #a9b3b3;
background: transparent;
cursor: not-allowed;
opacity: 0.72;
}
.v2-field-state {
padding: 3px 5px;
color: var(--v2-accent-strong);
background: color-mix(in srgb, var(--v2-accent-soft) 68%, white);
border-radius: 5px;
font: 800 7px "SFMono-Regular", Consolas, monospace;
}
.v2-config-card.unavailable {
color: #9b5f32;
}
.v2-config-card.unavailable > svg,
.v2-config-card.unavailable > .v2-field-state {
color: #9b5f32;
}
.v2-config-card[data-state="offline"] > svg,
.v2-config-card[data-state="offline"] > .v2-field-state {
color: #a85f43;
}
.v2-config-card[data-state="offline"] > .v2-field-state {
background: #fff0e9;
}
.console-v2[data-demo-role="user"] .v2-execution-field {
display: none;
}
.v2-user-target-status {
min-height: 33px;
display: none;
grid-template-columns: 8px minmax(0, 1fr);
align-items: center;
gap: 8px;
padding: 7px 11px;
color: #516f70;
background: rgba(255, 255, 255, 0.48);
border: 1px solid rgba(255, 255, 255, 0.72);
border-radius: 9px;
font-size: 9px;
font-weight: 800;
}
.console-v2[data-demo-role="user"] .v2-user-target-status {
display: grid;
}
.v2-user-target-status > i {
width: 7px;
height: 7px;
background: #d69549;
border-radius: 50%;
box-shadow: 0 0 0 4px rgba(214, 149, 73, 0.12);
}
.v2-user-target-status[data-state="ready"] > i {
background: #18a493;
box-shadow: 0 0 0 4px rgba(24, 164, 147, 0.12);
}
.console-v2 .v2-provider-field,
.console-v2 .v2-native-execution-field {
display: none !important;
}
.v2-advanced-stack {
display: grid;
gap: 8px;
}
.console-v2 .v2-advanced-field:not([hidden]) {
display: block;
padding: 10px;
background: rgba(255, 255, 255, 0.58);
border: 1px solid rgba(255, 255, 255, 0.74);
border-radius: 10px;
}
.console-v2 .v2-advanced-field input,
.console-v2 .v2-advanced-field select {
width: 100%;
min-height: 36px;
margin-top: 4px;
padding: 0 9px;
background: rgba(255, 255, 255, 0.94);
border: 1px solid var(--v2-line);
border-radius: 7px;
font-size: 10px;
}
.console-v2 .v2-advanced-field button {
min-height: 33px;
border-radius: 7px;
}
.v2-sidebar-footer {
min-height: 50px;
display: grid;
grid-template-columns: 10px minmax(0, 1fr) 34px;
align-items: center;
gap: 10px;
margin-top: auto;
padding-top: 12px;
border-top: 1px solid var(--v2-line);
}
.v2-live-dot {
width: 8px;
height: 8px;
background: #18a493;
border: 2px solid rgba(255, 255, 255, 0.9);
border-radius: 50%;
box-shadow: 0 0 0 4px rgba(24, 164, 147, 0.12);
}
.v2-sidebar-footer.offline .v2-live-dot {
background: #dc9343;
box-shadow: 0 0 0 4px rgba(220, 147, 67, 0.12);
}
.v2-sidebar-footer strong,
.v2-sidebar-footer small {
display: block;
}
.v2-sidebar-footer strong {
color: #284244;
font-size: 10px;
}
.v2-sidebar-footer small {
margin-top: 2px;
overflow: hidden;
color: #7b8e8e;
font-size: 8px;
text-overflow: ellipsis;
white-space: nowrap;
}
.v2-sidebar-footer button {
width: 32px;
height: 32px;
display: grid;
place-items: center;
color: #708486;
background: rgba(255, 255, 255, 0.55);
border: 1px solid rgba(255, 255, 255, 0.72);
border-radius: 8px;
cursor: pointer;
}
.v2-sidebar-footer button svg {
width: 14px;
height: 14px;
}
/* Main canvas -------------------------------------------------------------- */
.console-v2 .main-panel {
--v2-main-pad: clamp(12px, 1.5vw, 20px);
min-width: 0;
height: 100dvh;
display: grid;
grid-template-rows: 36px clamp(240px, 31.5dvh, 340px) minmax(0, 1fr);
gap: clamp(10px, 1.25vh, 14px);
padding: 0 var(--v2-main-pad) var(--v2-main-pad);
overflow: hidden;
background:
radial-gradient(circle at 40% -15%, rgba(255, 255, 255, 0.98), transparent 38%),
#f5f7f6;
}
.v2-operation-shell,
.v2-output-shell {
min-width: 0;
min-height: 0;
position: relative;
overflow: hidden;
background: rgba(255, 255, 255, 0.9);
border: 1px solid rgba(117, 145, 145, 0.14);
border-radius: clamp(17px, 1.4vw, 24px);
box-shadow: var(--v2-shadow);
}
.v2-operation-shell {
isolation: isolate;
}
.v2-operation-glow {
width: 280px;
height: 280px;
position: absolute;
top: -190px;
left: 45%;
z-index: -1;
background: var(--v2-accent-soft);
border-radius: 50%;
filter: blur(44px);
opacity: 0.62;
}
.v2-natural-panel,
.v2-gesture-panel {
width: 100%;
height: 100%;
}
.v2-natural-panel {
display: grid;
grid-template-columns: minmax(0, 1fr);
grid-template-rows: auto minmax(118px, 1fr) auto;
gap: 8px;
padding: clamp(18px, 2vh, 24px) clamp(22px, 2.3vw, 34px) 15px;
}
.v2-operation-heading {
align-self: start;
min-width: 0;
margin: 0;
padding: 0;
}
.console-v2 .v2-operation-heading h2 {
max-width: none;
margin: 4px 0 3px;
color: #101f21;
font-size: clamp(23px, 2.05vw, 34px);
font-weight: 950;
line-height: 1.08;
letter-spacing: -0.045em;
}
.console-v2 .v2-operation-heading .panel-intro {
max-width: 560px;
margin: 0;
color: #8b9899;
font-size: clamp(10px, 0.86vw, 13px);
line-height: 1.55;
}
.v2-natural-grid {
min-width: 0;
min-height: 0;
display: grid;
grid-template-columns: minmax(0, 1fr) clamp(170px, 17vw, 230px);
align-items: center;
gap: 14px;
}
.console-v2 .v2-request-form {
min-width: 0;
position: relative;
display: grid;
grid-template-columns: minmax(0, 1fr);
grid-template-rows: auto 1fr;
gap: 0;
align-items: stretch;
margin: 0;
}
.console-v2 .v2-request-form .field-label-row {
grid-column: 1 / -1;
height: 0;
min-height: 0;
margin: 0;
}
.console-v2 .v2-request-form .field-label-row label {
display: none;
}
.console-v2 .v2-request-form .context-reset {
width: 24px;
height: 24px;
position: absolute;
top: 8px;
right: 8px;
z-index: 4;
color: var(--v2-accent);
background: transparent;
border: 0;
}
.console-v2 .v2-request-form .command-composer {
height: 118px;
min-height: 118px;
margin: 0;
overflow: hidden;
background: #fff;
border: 1px solid rgba(104, 136, 136, 0.18);
border-radius: 18px;
box-shadow: 0 12px 35px rgba(40, 76, 77, 0.08);
}
.console-v2 .v2-request-form #utterance {
height: 116px;
min-height: 116px;
padding: 18px 72px 28px 20px;
color: #23383a;
background: transparent;
border: 0;
font-size: clamp(13px, 1.05vw, 16px);
line-height: 1.5;
resize: none;
}
.console-v2 .v2-request-form #utterance:focus {
box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--v2-accent) 34%, white);
}
.console-v2 .v2-request-form .composer-hint {
right: 62px;
bottom: 9px;
color: #a0acad;
font-size: 8px;
}
.console-v2 .v2-request-form .primary-action {
width: 36px;
height: 36px;
min-height: 36px;
position: absolute;
right: 10px;
bottom: 10px;
z-index: 3;
display: grid;
place-items: center;
margin: 0;
padding: 0;
color: #fff;
background: linear-gradient(145deg, var(--v2-accent), var(--v2-accent-strong));
border: 0;
border-radius: 50%;
box-shadow: 0 7px 16px color-mix(in srgb, var(--v2-accent) 21%, transparent);
}
.console-v2 .v2-request-form .primary-action span {
display: none;
}
.console-v2 .v2-request-form .primary-action svg {
width: 17px;
height: 17px;
}
.console-v2 .v2-request-status {
min-width: 0;
height: 118px;
min-height: 118px;
display: grid;
grid-template-columns: minmax(0, 1fr);
align-content: center;
gap: 7px;
margin: 0;
padding: 16px;
color: #526465;
background: #f2f4f3;
border: 1px solid #ebeeee;
border-radius: 17px;
}
.console-v2 .v2-request-status .section-kicker,
.console-v2 .v2-request-status .matrix-stat {
display: none;
}
.console-v2 .v2-request-status .request-title-row {
display: grid;
gap: 7px;
}
.console-v2 .v2-request-status h2 {
margin: 0;
overflow: hidden;
color: #425557;
font-size: 13px;
font-weight: 850;
text-overflow: ellipsis;
white-space: nowrap;
}
.console-v2 .v2-request-status .run-status {
width: fit-content;
margin: 0;
padding: 4px 7px;
font-size: 7px;
}
.console-v2 .v2-request-status #requestMeta {
margin: 0;
overflow: hidden;
color: #899697;
font: 700 8px "SFMono-Regular", Consolas, monospace;
text-overflow: ellipsis;
white-space: nowrap;
}
.console-v2 .v2-mode-rail {
min-width: 0;
position: relative;
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto auto;
align-items: center;
gap: 9px;
margin: 0;
padding: 0;
background: transparent;
border: 0;
}
.console-v2 .v2-mode-rail .mode-rail-heading {
display: contents;
}
.console-v2 .v2-mode-rail .mode-rail-heading > div {
display: block;
grid-column: 1;
grid-row: 1;
}
.console-v2 .v2-mode-rail .mode-rail-heading > div > span {
color: #8a9797;
font-size: 9px;
font-weight: 800;
white-space: nowrap;
}
.console-v2 .v2-mode-rail .mode-rail-heading small {
display: none;
}
.console-v2 .v2-mode-rail #saveModeToggle {
grid-column: 4;
grid-row: 1;
min-height: 30px;
padding: 5px 9px;
color: var(--v2-accent-strong);
background: color-mix(in srgb, var(--v2-accent-soft) 70%, white);
border: 1px solid color-mix(in srgb, var(--v2-accent) 12%, white);
border-radius: 999px;
font-size: 9px;
font-weight: 850;
white-space: nowrap;
}
.console-v2 .v2-mode-rail .mode-rail-controls {
grid-column: 3;
grid-row: 1;
gap: 5px;
margin: 0;
}
.console-v2 .v2-mode-rail .mode-rail-pager {
grid-template-columns: repeat(2, 24px);
gap: 1px;
padding: 2px;
border-color: rgba(70, 104, 105, 0.12);
border-radius: 999px;
}
.console-v2 .v2-mode-rail .mode-rail-page {
width: 24px;
height: 24px;
border-radius: 999px;
}
.console-v2 .v2-mode-rail .mode-gallery-toggle {
min-height: 30px;
padding: 4px 8px;
color: var(--v2-accent-strong);
background: color-mix(in srgb, var(--v2-accent-soft) 56%, white);
border-color: color-mix(in srgb, var(--v2-accent) 12%, white);
border-radius: 999px;
font-size: 9px;
}
.console-v2 .v2-mode-rail .mode-gallery-toggle strong {
min-width: 17px;
height: 17px;
padding: 0 4px;
background: var(--v2-accent);
font-size: 8px;
}
.console-v2 .v2-mode-rail .mode-chips {
min-width: 0;
grid-column: 2;
grid-row: 1;
display: flex;
gap: 8px;
padding: 2px;
overflow-x: auto;
scrollbar-width: none;
}
.console-v2 .v2-mode-rail .mode-chips::-webkit-scrollbar {
display: none;
}
.console-v2 .v2-mode-rail .mode-group-divider {
width: 1px;
height: 24px;
flex: 0 0 1px;
align-self: center;
margin: 0 4px;
background: rgba(21, 54, 56, 0.24);
border-radius: 999px;
}
.console-v2 .v2-mode-rail .mode-chips button {
min-width: clamp(92px, 9.5vw, 145px);
min-height: 34px;
flex: 0 0 auto;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
padding: 6px 13px;
color: #153638;
background: color-mix(in srgb, var(--v2-accent-soft) 80%, white);
border: 1px solid color-mix(in srgb, var(--v2-accent) 10%, white);
border-radius: 999px;
font-size: 11px;
font-weight: 800;
white-space: nowrap;
}
.console-v2 .v2-mode-rail .mode-chips button.v2-edge-fade-left {
-webkit-mask-image: linear-gradient(
90deg,
transparent var(--v2-edge-fade-start),
#000 var(--v2-edge-fade-end)
);
mask-image: linear-gradient(
90deg,
transparent var(--v2-edge-fade-start),
#000 var(--v2-edge-fade-end)
);
}
.console-v2 .v2-mode-rail .mode-chips button.v2-edge-fade-right {
-webkit-mask-image: linear-gradient(
90deg,
#000 var(--v2-edge-fade-start),
transparent var(--v2-edge-fade-end)
);
mask-image: linear-gradient(
90deg,
#000 var(--v2-edge-fade-start),
transparent var(--v2-edge-fade-end)
);
}
.console-v2 .v2-mode-rail .mode-chips button svg {
width: 13px;
height: 13px;
color: var(--v2-accent);
}
.console-v2 .v2-mode-rail .mode-chips button.running {
color: #294e9d;
background: #e5ecff;
border-color: rgba(66, 104, 194, 0.38);
box-shadow: 0 0 0 3px rgba(66, 104, 194, 0.1);
}
.console-v2 .v2-mode-rail .mode-chips button.succeeded {
color: #0d755f;
background: #ddf7ef;
border-color: rgba(18, 148, 115, 0.36);
box-shadow: 0 0 0 3px rgba(18, 148, 115, 0.09);
}
.console-v2 .v2-mode-rail .mode-chips button.failed {
color: #a84039;
background: #fde9e7;
border-color: rgba(201, 72, 62, 0.36);
}
.console-v2 .v2-mode-rail .mode-chips button:disabled {
cursor: wait;
}
.console-v2 .v2-mode-rail .mode-cycle-badge {
display: none;
}
.console-v2 .v2-mode-rail .save-mode-composer {
width: min(420px, 52vw);
position: absolute;
right: 0;
bottom: 40px;
z-index: 8;
grid-template-columns: minmax(0, 1.15fr) minmax(150px, 0.85fr);
padding: 11px;
border-color: rgba(70, 104, 105, 0.14);
box-shadow: 0 18px 42px rgba(31, 67, 69, 0.18);
}
.console-v2 .v2-mode-rail .save-mode-source {
grid-column: 1 / -1;
}
.console-v2 .v2-mode-rail .save-mode-actions {
grid-template-columns: auto minmax(92px, 1fr);
}
.console-v2[data-control-mode="gesture"] .v2-natural-panel,
.console-v2:not([data-control-mode="gesture"]) .v2-gesture-panel,
.console-v2:not([data-control-mode="gesture"]) .v2-gesture-model-field {
display: none;
}
/* Inline gesture control -------------------------------------------------- */
.console-v2 .v2-gesture-panel {
display: grid;
grid-template-rows: auto minmax(0, 1fr);
gap: 8px;
padding: clamp(18px, 2vh, 24px) clamp(22px, 2.3vw, 34px) 15px;
}
.console-v2 .v2-inline-gesture,
.console-v2 .v2-inline-gesture.open {
width: 100%;
height: 100%;
position: static;
display: grid;
grid-template-columns:
minmax(180px, 0.72fr)
44px
minmax(270px, 1.58fr)
minmax(230px, 1fr);
grid-template-rows: minmax(0, 1fr);
gap: 12px;
padding: 0;
overflow: hidden;
visibility: visible;
transform: none;
color: var(--v2-ink);
background: transparent;
border: 0;
box-shadow: none;
}
.console-v2 .v2-inline-gesture .gesture-drawer-header {
display: none;
}
.console-v2 .v2-inline-gesture .gesture-close {
display: none;
}
.console-v2 .v2-inline-gesture .gesture-camera-stage {
width: 100%;
min-width: 0;
grid-column: 1;
grid-row: 1;
height: 100%;
min-height: 0;
margin: 0;
aspect-ratio: auto;
overflow: hidden;
background: linear-gradient(145deg, #263537, #111b1d);
border: 1px solid color-mix(in srgb, var(--v2-accent) 42%, transparent);
border-radius: 17px;
box-shadow: 0 12px 32px color-mix(in srgb, var(--v2-accent) 14%, transparent);
}
.v2-module-switcher {
min-width: 0;
min-height: 36px;
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
align-items: stretch;
margin-inline: calc(0px - var(--v2-main-pad));
padding: 3px var(--v2-main-pad) 0;
overflow: hidden;
background: color-mix(in srgb, var(--v2-accent) 30%, var(--v2-accent-soft));
border: 0;
border-bottom: 1px solid color-mix(in srgb, var(--v2-accent) 28%, transparent);
border-radius: 0;
box-shadow: 0 6px 16px color-mix(in srgb, var(--v2-accent) 10%, transparent);
}
.v2-module-tab {
min-width: 0;
min-height: 32px;
position: relative;
display: grid;
place-items: center;
padding: 5px 10px 7px;
overflow: hidden;
color: color-mix(in srgb, var(--v2-accent-strong) 48%, #7c898a);
background: transparent;
border: 0;
border-radius: 0;
font: 650 clamp(11px, 0.92vw, 14px) Inter, "PingFang SC", "Microsoft YaHei", sans-serif;
text-overflow: ellipsis;
transition: color 160ms ease, font-weight 160ms ease;
white-space: nowrap;
}
.v2-module-tab > span {
overflow: hidden;
text-overflow: ellipsis;
}
.v2-module-tab.active {
color: var(--v2-accent-strong);
background: transparent;
box-shadow: none;
font-weight: 800;
}
.v2-module-tab.active::after {
width: clamp(48px, 45%, 72px);
height: 3px;
position: absolute;
right: auto;
bottom: 0;
left: 50%;
content: "";
background: var(--v2-accent);
border-radius: 999px;
transform: translateX(-50%);
}
.v2-module-tab:disabled {
cursor: default;
opacity: 0.78;
}
.console-v2 .v2-inline-gesture .v2-camera-toggle {
width: 42px;
height: 42px;
min-height: 42px;
grid-row: 3;
position: static;
z-index: 2;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0;
color: white;
border: 0;
border-radius: 50%;
background: var(--v2-accent);
box-shadow: 0 8px 20px color-mix(in srgb, var(--v2-accent) 24%, transparent);
cursor: pointer;
transition: transform 160ms ease, background 160ms ease, box-shadow 160ms ease;
}
.console-v2 .v2-inline-gesture .v2-camera-toggle:hover {
transform: translateY(-1px);
background: var(--v2-accent-strong);
box-shadow: 0 10px 24px color-mix(in srgb, var(--v2-accent) 32%, transparent);
}
.console-v2 .v2-inline-gesture .v2-camera-toggle:disabled {
cursor: not-allowed;
opacity: 1;
}
.console-v2 .v2-inline-gesture .v2-camera-toggle svg {
width: 19px;
height: 19px;
}
.console-v2 .v2-inline-gesture .v2-camera-toggle span {
width: 1px;
height: 1px;
position: absolute;
overflow: hidden;
clip: rect(0 0 0 0);
clip-path: inset(50%);
white-space: nowrap;
}
.console-v2 .v2-inline-gesture .v2-camera-toggle.active {
color: white;
background: var(--v2-accent);
}
.console-v2 .v2-inline-gesture .v2-camera-toggle.active svg {
display: none;
}
.console-v2 .v2-inline-gesture .v2-camera-toggle.active::before {
width: 13px;
height: 13px;
content: "";
border-radius: 3px;
background: currentColor;
}
.console-v2 .v2-inline-gesture .v2-gesture-action-rail {
grid-column: 2;
grid-row: 1;
align-self: stretch;
position: relative;
z-index: 8;
display: grid;
grid-template-rows: 42px 10px 42px;
align-content: end;
place-items: center;
gap: 0;
margin: 0;
}
.console-v2 .v2-inline-gesture #gestureStopButton {
display: none;
}
.console-v2 .v2-inline-gesture #gestureArmButton {
width: 42px;
height: 42px;
min-height: 42px;
grid-row: 1;
display: inline-grid;
place-items: center;
padding: 0;
overflow: hidden;
color: white;
border: 0;
border-radius: 50%;
background: var(--v2-accent);
box-shadow: 0 8px 20px color-mix(in srgb, var(--v2-accent) 24%, transparent);
font-size: 0;
line-height: 0;
}
.console-v2 .v2-inline-gesture #gestureArmButton svg {
width: 17px;
height: 17px;
display: block;
margin: 0;
}
.console-v2 .v2-inline-gesture #gestureArmButton span {
display: none;
}
.console-v2[data-demo-role="user"] .v2-inline-gesture #gestureArmButton {
cursor: default;
opacity: 1;
}
.console-v2[data-demo-role="user"] .v2-inline-gesture #gestureArmButton svg {
display: none;
}
.console-v2 .v2-inline-gesture .gesture-debug-panel {
width: clamp(300px, 28vw, 360px);
max-width: none;
position: absolute;
top: auto;
left: calc(100% + 8px);
right: auto;
bottom: 52px;
display: grid;
gap: 7px;
padding: 9px;
color: var(--v2-ink);
border: 1px solid var(--v2-line);
border-radius: 11px;
background: rgba(255, 255, 255, 0.98);
box-shadow: 0 14px 32px rgba(25, 48, 50, 0.2);
}
.console-v2 .v2-inline-gesture .gesture-debug-panel[hidden] {
display: none;
}
.console-v2 .v2-inline-gesture .gesture-debug-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.console-v2 .v2-inline-gesture .gesture-debug-heading span {
color: var(--v2-accent-strong);
font-size: 11px;
font-weight: 900;
}
.console-v2 .v2-inline-gesture .gesture-debug-heading small {
color: var(--v2-muted);
font-size: 8px;
}
.console-v2 .v2-inline-gesture .gesture-debug-controls {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 7px;
}
.console-v2 .v2-inline-gesture .gesture-debug-controls select,
.console-v2 .v2-inline-gesture .gesture-debug-controls button {
min-height: 32px;
border: 1px solid var(--v2-line);
border-radius: 8px;
font-size: 9px;
}
.console-v2 .v2-inline-gesture .gesture-debug-controls select {
min-width: 0;
padding: 0 8px;
color: var(--v2-ink);
background: #f7f9f9;
}
.console-v2 .v2-inline-gesture .gesture-debug-controls button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 5px;
padding: 5px 9px;
color: white;
background: var(--v2-accent);
white-space: nowrap;
}
.console-v2 .v2-inline-gesture .gesture-debug-controls button svg {
width: 12px;
height: 12px;
}
.console-v2 .v2-inline-gesture .gesture-footnote,
.console-v2 .v2-inline-gesture .gesture-progress {
display: none;
}
.console-v2 .v2-inline-gesture .v2-gesture-result-stack {
min-width: 0;
min-height: 0;
grid-column: 3;
grid-row: 1;
display: grid;
grid-template-rows: minmax(58px, 0.78fr) minmax(72px, 1.22fr);
gap: 9px;
}
.console-v2 .v2-inline-gesture .v2-gesture-recognition-card,
.console-v2 .v2-inline-gesture .v2-gesture-execution-slot {
min-width: 0;
min-height: 0;
display: grid;
grid-template-rows: auto minmax(0, 1fr);
gap: 4px;
padding: 8px 10px;
overflow: hidden;
border: 1px solid var(--v2-line);
border-radius: 11px;
background: color-mix(in srgb, var(--v2-accent-soft) 24%, #f1f3f3);
}
.console-v2 .v2-inline-gesture .v2-gesture-execution-slot {
background: color-mix(in srgb, var(--v2-accent-soft) 16%, #f4f5f5);
}
.console-v2 .v2-inline-gesture .v2-gesture-result-label {
color: color-mix(in srgb, var(--v2-accent-strong) 68%, #5f6d6e);
font-size: 10px;
font-weight: 850;
line-height: 1.2;
}
.console-v2 .v2-inline-gesture .gesture-status-strip {
display: none;
}
.console-v2 .v2-inline-gesture .gesture-now {
min-height: 0;
margin: 0;
padding: 4px 8px;
background: rgba(255, 255, 255, 0.66);
border: 1px solid color-mix(in srgb, var(--v2-accent) 8%, transparent);
border-radius: 8px;
}
.console-v2 .v2-inline-gesture .v2-gesture-execution-slot .v2-request-status {
width: 100%;
height: 100%;
min-height: 0;
align-content: center;
gap: 4px;
padding: 2px 8px 0;
background: transparent;
border: 0;
border-radius: 0;
}
.console-v2 .v2-inline-gesture .v2-gesture-execution-slot .v2-request-status .request-title-row {
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 8px;
}
.console-v2 .v2-inline-gesture .v2-gesture-execution-slot .v2-request-status h2 {
color: var(--v2-ink);
font-size: 11px;
}
.console-v2 .v2-inline-gesture .v2-gesture-execution-slot .v2-request-status #requestMeta {
color: var(--v2-muted);
}
.console-v2 .v2-inline-gesture .gesture-guide-card {
min-width: 0;
min-height: 0;
grid-column: 4;
grid-row: 1;
align-self: stretch;
display: grid;
grid-template-rows: auto minmax(0, 1fr) auto;
padding: 9px 11px;
overflow: auto;
border: 1px solid var(--v2-line);
border-radius: 13px;
background: color-mix(in srgb, var(--v2-accent-soft) 35%, white);
}
.console-v2 .v2-inline-gesture .gesture-card-heading {
min-width: 0;
gap: 8px;
margin: 0 0 6px;
}
.console-v2 .v2-inline-gesture .gesture-card-heading > div {
min-width: 0;
}
.console-v2 .v2-inline-gesture .gesture-card-heading span {
color: #173b3a;
font-size: 12px;
}
.console-v2 .v2-inline-gesture .gesture-card-heading small {
overflow: hidden;
color: #718987;
font-size: 8px;
text-overflow: ellipsis;
white-space: nowrap;
}
.console-v2 .v2-inline-gesture .gesture-card-heading button {
flex: 0 0 auto;
min-height: 26px;
padding: 4px 7px;
color: var(--v2-accent-strong);
border: 1px solid color-mix(in srgb, var(--v2-accent) 18%, transparent);
border-radius: 8px;
background: color-mix(in srgb, var(--v2-accent-soft) 62%, white);
font-size: 8px;
}
.console-v2 .v2-inline-gesture .gesture-card-heading button svg {
width: 11px;
height: 11px;
}
.console-v2 .v2-inline-gesture .gesture-map-grid {
min-height: 0;
grid-template-columns: repeat(2, minmax(0, 1fr));
align-content: stretch;
gap: 4px 6px;
}
.console-v2 .v2-inline-gesture .gesture-map-grid > div {
min-height: 0;
padding: 3px 7px;
color: #637c79;
border: 1px solid rgba(43, 103, 102, 0.08);
border-radius: 7px;
background: rgba(255, 255, 255, 0.72);
font-size: 8px;
}
.console-v2 .v2-inline-gesture .gesture-map-grid i {
color: #8fa6a3;
}
.console-v2 .v2-inline-gesture .gesture-map-grid b {
color: var(--v2-accent-strong);
}
.console-v2 .v2-inline-gesture .gesture-customize {
margin-top: 7px;
padding-top: 7px;
border-color: var(--v2-line);
}
.console-v2 .v2-inline-gesture .gesture-guide-card:has(.gesture-customize:not([hidden])) .gesture-map-grid {
display: none;
}
.console-v2 .v2-inline-gesture .gesture-customize > div span {
color: #718987;
}
.console-v2 .v2-inline-gesture .gesture-customize > div strong {
color: #173b3a;
}
.console-v2 .v2-inline-gesture .gesture-customize select {
color: #173b3a;
border-color: var(--v2-line);
background: white;
}
.console-v2.gesture-open {
overflow: hidden;
}
/* Output pages ------------------------------------------------------------ */
.v2-output-shell {
display: grid;
grid-template-columns: minmax(0, 1fr) clamp(92px, 8vw, 124px);
grid-template-rows: 56px minmax(0, 1fr);
gap: 0;
padding: 0;
}
.console-v2[data-demo-role="user"] .v2-output-shell {
grid-template-columns: minmax(0, 1fr);
}
.v2-output-shell.v2-twin-active {
grid-template-rows: minmax(0, 1fr);
}
.v2-output-shell.v2-twin-active .v2-output-heading {
display: none;
}
.v2-output-shell.v2-twin-active .v2-output-content {
grid-row: 1;
margin-top: 9px;
}
.v2-output-heading {
min-width: 0;
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
padding: 10px 18px 8px 22px;
border-bottom: 1px solid rgba(114, 140, 140, 0.12);
}
.v2-output-heading > div {
min-width: 0;
display: flex;
align-items: center;
gap: 12px;
}
.v2-output-heading > div > div {
min-width: 0;
display: flex;
align-items: center;
}
.v2-page-index {
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--v2-accent);
font: 900 23px/1 "SFMono-Regular", Consolas, monospace;
letter-spacing: -0.08em;
}
.console-v2[data-demo-role="user"] .v2-page-index {
display: none;
}
.v2-output-heading h2 {
margin: 0;
color: var(--v2-accent-strong);
font: 900 clamp(16px, 1.4vw, 21px)/1 Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
letter-spacing: -0.025em;
}
.v2-output-heading small {
display: none;
}
.v2-output-state {
display: inline-flex;
align-items: center;
gap: 7px;
color: #718080;
font: 850 8px "SFMono-Regular", Consolas, monospace;
white-space: nowrap;
}
.v2-output-state i {
width: 7px;
height: 7px;
background: var(--v2-accent);
border-radius: 50%;
box-shadow: 0 0 0 5px color-mix(in srgb, var(--v2-accent) 10%, transparent);
}
.v2-output-content {
min-width: 0;
min-height: 0;
position: relative;
grid-column: 1;
grid-row: 2;
margin: 5px 13px 13px;
overflow: hidden;
background: #f2f4f3;
border: 1px solid #edf0ef;
border-radius: 17px;
}
.console-v2 .v2-output-page {
position: absolute;
inset: 0;
display: none !important;
margin: 0;
overflow: auto;
}
.console-v2 .v2-output-page.v2-active-output {
display: block !important;
}
.console-v2 .result-workspace {
display: contents !important;
}
.console-v2 .result-workspace > .result-workspace-heading,
.console-v2 .result-workspace > .result-nav {
display: none !important;
}
.console-v2 .result-workspace .tab-panel {
min-height: 100%;
padding: clamp(16px, 1.6vw, 24px);
background: #f7f9f8;
border: 0;
border-radius: 0;
box-shadow: none;
}
.console-v2 .result-workspace .tab-panel.v2-scrollable::after {
content: "向下滚动查看更多";
display: block;
width: fit-content;
margin: 18px auto 0;
padding: 5px 9px;
color: #869696;
background: #edf2f1;
border-radius: 999px;
font-size: 8px;
}
.console-v2 .joint-twin-shell.v2-output-page {
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: minmax(0, 1fr);
gap: 10px;
padding: 10px;
overflow: hidden;
background: #eef2f1;
border: 0;
border-radius: 0;
box-shadow: none;
}
.console-v2 .joint-twin-shell.v2-output-page.v2-active-output {
display: grid !important;
}
.console-v2[data-demo-role="user"] .v2-output-shell.v2-twin-active {
overflow: visible;
background: transparent;
border: 0;
border-radius: 0;
box-shadow: none;
}
.console-v2[data-demo-role="user"] .v2-output-shell.v2-twin-active .v2-output-content {
margin: 0;
background: transparent;
border: 0;
border-radius: 0;
}
.console-v2[data-demo-role="user"] .joint-twin-shell.v2-output-page {
gap: 12px;
padding: 0;
background: transparent;
}
.console-v2 .joint-twin-shell > .joint-twin-heading,
.console-v2 .joint-twin-shell > .joint-hardware-boundary {
display: none !important;
}
.console-v2 .joint-twin-shell > .twin-band,
.console-v2 .joint-twin-shell > .cabin-band {
min-width: 0;
height: 100%;
display: grid;
margin: 0;
overflow: hidden;
background: rgba(255, 255, 255, 0.72);
border: 1px solid rgba(113, 141, 140, 0.14);
border-radius: 12px;
}
.console-v2 .joint-twin-shell > .twin-band {
grid-template-rows: 38px minmax(0, 1fr);
}
.console-v2 .joint-twin-shell > .cabin-band {
grid-template-rows: 66px minmax(0, 1fr);
padding: 0;
position: relative;
}
.console-v2 .joint-twin-shell .twin-heading {
min-height: 0;
padding: 4px 8px 4px 10px;
background: rgba(255, 255, 255, 0.6);
border-bottom: 1px solid rgba(113, 141, 140, 0.12);
}
.console-v2 .joint-twin-shell .twin-heading .section-kicker {
display: block;
font-size: 6px;
}
.console-v2 .joint-twin-shell .twin-heading h3 {
display: block;
margin: 0;
font-size: 13px;
}
.console-v2 .joint-twin-shell .twin-toolbar {
width: auto;
justify-content: flex-end;
}
.console-v2 .joint-twin-shell .twin-focus-badge {
min-height: 24px;
padding: 3px 6px;
}
.console-v2 .joint-twin-shell .twin-reset {
width: 27px;
height: 27px;
min-height: 27px;
}
.console-v2 .joint-twin-shell .twin-stage {
width: 100%;
height: 100% !important;
min-height: 0;
background:
radial-gradient(ellipse at 55% 82%, rgba(62, 119, 115, 0.13), transparent 38%),
linear-gradient(165deg, #f0f5f3 0%, #e3ebe8 100%);
}
.console-v2 .joint-twin-shell #seatTwinCanvas {
width: 100% !important;
height: 100% !important;
}
.console-v2 .joint-twin-shell .twin-readout {
display: none;
}
.console-v2 .joint-twin-shell .vehicle-system-hud {
top: 12px;
left: 12px;
transform: scale(0.88);
transform-origin: top left;
}
.console-v2 .joint-twin-shell .cabin-heading {
min-height: 0;
display: flex;
align-items: center;
margin: 0;
padding: 8px 10px;
background:
linear-gradient(105deg, rgba(223, 245, 241, 0.82), rgba(255, 255, 255, 0.74) 58%),
rgba(255, 255, 255, 0.62);
border-bottom: 1px solid rgba(113, 141, 140, 0.12);
}
.console-v2 .joint-twin-shell .cabin-heading .section-kicker {
display: block;
color: var(--v2-accent-strong);
font-size: 6px;
letter-spacing: 0.12em;
}
.console-v2 .joint-twin-shell .cabin-heading h3 {
margin: 1px 0 0;
font-size: 13px;
}
.console-v2 .joint-twin-shell .cabin-title-copy {
min-width: 0;
}
.console-v2 .joint-twin-shell .cabin-title-copy p {
max-width: 420px;
margin: 2px 0 0;
overflow: hidden;
color: #6b7e7e;
font-size: 7px;
line-height: 1.35;
text-overflow: ellipsis;
white-space: nowrap;
}
.console-v2 .joint-twin-shell .cabin-channel-legend {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 4px;
margin-left: auto;
}
.console-v2 .joint-twin-shell .cabin-channel-legend > span:not(.simulation-label) {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 4px 6px;
color: #52696a;
background: rgba(255, 255, 255, 0.76);
border: 1px solid rgba(73, 122, 119, 0.13);
border-radius: 999px;
font-size: 7px;
font-weight: 800;
white-space: nowrap;
}
.console-v2 .joint-twin-shell .cabin-channel-legend i {
color: #fff;
background: var(--v2-accent);
border-radius: 999px;
padding: 2px 4px;
font: 900 6px "SFMono-Regular", Consolas, monospace;
font-style: normal;
}
.console-v2 .joint-twin-shell .cabin-channel-legend [data-channel="ch0"] i {
background: #3677b5;
}
.console-v2 .joint-twin-shell .cabin-heading .simulation-label {
display: none;
}
.console-v2 .joint-twin-shell .domain-grid {
min-height: 0;
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: none;
grid-auto-rows: max-content;
align-content: start;
gap: 6px;
padding: 6px;
overflow-x: hidden;
overflow-y: auto;
scrollbar-width: thin;
scrollbar-color: rgba(28, 111, 104, 0.28) transparent;
}
.console-v2 .joint-twin-shell .domain-panel {
min-width: 0;
min-height: 0;
position: relative;
padding: 6px;
overflow: hidden;
background:
linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(246, 250, 249, 0.92));
border-color: rgba(78, 123, 120, 0.15);
border-radius: 10px;
box-shadow: 0 5px 16px rgba(32, 76, 73, 0.045);
}
.console-v2 .joint-twin-shell .domain-panel::before {
content: "";
width: 3px;
position: absolute;
inset: 8px auto 8px 0;
background: var(--v2-accent);
border-radius: 0 3px 3px 0;
opacity: 0.62;
}
.console-v2 .joint-twin-shell .domain-panel[data-device-channel="ch0"]::before {
background: #3677b5;
}
.console-v2 .joint-twin-shell .domain-panel.active {
border-color: color-mix(in srgb, var(--v2-accent) 32%, #dce7e4);
box-shadow: 0 7px 18px rgba(19, 112, 104, 0.08);
}
.console-v2 .joint-twin-shell .domain-panel header {
grid-template-columns: 24px minmax(0, 1fr) auto;
gap: 4px;
}
.console-v2 .joint-twin-shell .domain-icon {
width: 24px;
height: 24px;
color: var(--v2-accent-strong);
background: var(--v2-accent-soft);
border: 1px solid color-mix(in srgb, var(--v2-accent) 16%, transparent);
}
.console-v2 .joint-twin-shell .domain-icon svg {
width: 13px;
height: 13px;
color: inherit;
stroke-width: 1.9;
}
.console-v2 .joint-twin-shell .domain-panel header strong {
font-size: 12px;
}
.console-v2 .joint-twin-shell .domain-panel header small {
font-size: 7.5px;
}
.console-v2 .joint-twin-shell .device-state {
padding: 3px 5px;
font-size: 9px;
}
.console-v2 .joint-twin-shell .domain-capability-line {
margin: 5px 0 0;
overflow: hidden;
color: #718585;
font-size: 7px;
font-weight: 700;
line-height: 1.35;
text-overflow: ellipsis;
white-space: nowrap;
}
.console-v2 .joint-twin-shell .domain-capability-line span {
margin-right: 5px;
padding: 2px 4px;
color: var(--v2-accent-strong);
background: var(--v2-accent-soft);
border-radius: 4px;
font-size: 6px;
font-weight: 900;
}
.console-v2 .joint-twin-shell .climate-display,
.console-v2 .joint-twin-shell .roof-visual,
.console-v2 .joint-twin-shell .ambient-visual {
min-height: 34px;
margin-top: 4px;
}
.console-v2 .joint-twin-shell .climate-display {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0;
padding: 0;
}
.console-v2 .joint-twin-shell .climate-direction-display {
margin-top: 3px;
}
.console-v2 .joint-twin-shell .climate-direction-display .zone-temperature {
background: rgba(243, 245, 244, 0.7);
border-top: 1px solid rgba(113, 141, 140, 0.13);
}
.console-v2 .joint-twin-shell .zone-temperature {
min-width: 0;
display: flex;
align-items: center;
justify-content: space-between;
gap: 4px;
padding: 5px 7px;
text-align: left;
}
.console-v2 .joint-twin-shell .zone-temperature span {
color: #243d40;
font-size: 12px;
font-weight: 750;
}
.console-v2 .joint-twin-shell .zone-temperature strong {
margin: 0 0 0 auto;
font: 900 13px/1 Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
text-align: right;
}
.console-v2 .joint-twin-shell .airflow-visual {
display: none;
}
.console-v2 .joint-twin-shell .roof-visual {
padding: 3px 7px;
}
.console-v2 .joint-twin-shell .roof-glass {
height: 28px;
}
.console-v2 .joint-twin-shell .ambient-dashboard-sketch {
height: 28px;
top: 3px;
}
.console-v2 .joint-twin-shell .ambient-location-label {
display: none;
}
.console-v2 .joint-twin-shell .domain-readouts {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 5px;
margin-top: 5px;
}
.console-v2 .joint-twin-shell .domain-readouts > div {
min-width: 0;
min-height: 29px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 4px;
padding: 5px 7px;
background: #f3f5f4;
border: 1px solid rgba(113, 141, 140, 0.2);
border-radius: 8px;
font-size: 12px;
line-height: 1;
}
.console-v2 .joint-twin-shell .domain-readouts dt,
.console-v2 .joint-twin-shell .domain-readouts dd {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.console-v2 .joint-twin-shell .domain-readouts dt {
flex: 0 0 auto;
color: #243d40;
font-weight: 750;
text-align: left;
}
.console-v2 .joint-twin-shell .domain-readouts dd {
flex: 0 1 auto;
margin: 0 0 0 auto;
color: var(--v2-ink);
font-family: "SFMono-Regular", Consolas, "Microsoft YaHei", monospace;
font-size: 13px;
font-weight: 900;
line-height: 1;
text-align: right;
}
.console-v2 .joint-twin-shell .domain-readouts .ambient-color-value {
font-size: 12px;
}
.console-v2 .joint-twin-shell .domain-readouts .color-swatch {
display: none;
}
.console-v2 .joint-twin-shell .domain-readouts.single-readout > div {
grid-column: 1 / -1;
}
.console-v2 .joint-twin-shell .window-panel,
.console-v2 .joint-twin-shell .lighting-panel {
min-height: 116px;
}
.console-v2 .joint-seat-panel > .simulation-label {
display: none;
}
.console-v2 .joint-seat-panel .seat-identity {
gap: 6px;
}
.console-v2 .joint-seat-panel .seat-identity > svg {
box-sizing: border-box;
width: 24px;
height: 24px;
padding: 5px;
color: var(--v2-accent-strong);
background: var(--v2-accent-soft);
border: 1px solid color-mix(in srgb, var(--v2-accent) 16%, transparent);
border-radius: 6px;
stroke-width: 1.9;
}
.console-v2 .joint-seat-panel .seat-identity strong {
font-size: 12px;
}
.console-v2 .joint-seat-panel .seat-identity span {
font-size: 7.5px;
}
.console-v2 .joint-seat-panel .dynamic-mode-state {
gap: 4px;
margin: 4px 0;
padding: 3px 5px;
color: #607878;
background: #edf3f1;
border-color: rgba(113, 141, 140, 0.16);
border-radius: 5px;
font-size: 12px;
font-weight: 750;
line-height: 1;
}
.console-v2 .joint-seat-panel .dynamic-mode-state svg {
width: 12px;
height: 12px;
}
.console-v2 .joint-seat-panel .dynamic-mode-state b {
color: var(--v2-ink);
font-family: "SFMono-Regular", Consolas, "Microsoft YaHei", monospace;
font-size: 12px;
font-weight: 900;
line-height: 1;
}
.console-v2 .joint-seat-panel .thermal-states {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 4px;
margin-top: 4px;
}
.console-v2 .joint-seat-panel .thermal-states > span {
grid-template-columns: 10px minmax(0, 1fr) auto;
padding: 2px 5px;
color: #243d40;
font-size: 12px;
font-weight: 750;
line-height: 1;
}
.console-v2 .joint-seat-panel .thermal-states svg {
width: 12px;
height: 12px;
}
.console-v2 .joint-seat-panel .thermal-states b {
color: var(--v2-ink);
font-family: "SFMono-Regular", Consolas, "Microsoft YaHei", monospace;
font-size: 13px;
font-weight: 900;
line-height: 1;
}
.console-v2 .joint-seat-panel .motion-state-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 5px;
margin-top: 5px;
padding-top: 5px;
}
.console-v2 .joint-seat-panel .motion-axis {
min-height: 29px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 4px;
padding: 5px 7px;
color: #243d40;
background: #f3f5f4;
border: 1px solid rgba(113, 141, 140, 0.2);
border-radius: 8px;
font-size: 12px;
font-weight: 750;
line-height: 1;
}
.console-v2 .joint-seat-panel .motion-axis b {
color: var(--v2-ink);
font-family: "SFMono-Regular", Consolas, "Microsoft YaHei", monospace;
font-size: 13px;
font-weight: 900;
line-height: 1;
}
.console-v2 .joint-seat-panel .motion-axis::after,
.console-v2 .joint-seat-panel .motion-axis i {
display: none;
}
.v2-page-rail {
min-width: 0;
grid-column: 2;
grid-row: 1 / -1;
display: flex;
flex-direction: column;
align-items: stretch;
justify-content: center;
gap: 3px;
padding: 13px 10px 13px 5px;
border-left: 1px solid rgba(114, 140, 140, 0.1);
}
.v2-page-rail[hidden] {
display: none !important;
}
.v2-page-button {
min-height: 49px;
display: grid;
grid-template-columns: 18px 12px minmax(0, 1fr);
align-items: center;
gap: 6px;
padding: 7px 6px;
color: #8d9b9c;
background: transparent;
border: 0;
border-radius: 9px;
text-align: left;
cursor: pointer;
transition: 150ms ease;
}
.v2-page-button:hover {
color: var(--v2-accent-strong);
background: color-mix(in srgb, var(--v2-accent-soft) 42%, white);
}
.v2-page-button > span {
font: 750 8px "SFMono-Regular", Consolas, monospace;
}
.v2-page-button > i {
width: 7px;
height: 7px;
justify-self: center;
background: #d7dddd;
border-radius: 50%;
transition: 150ms ease;
}
.v2-page-button > strong {
overflow: hidden;
font-size: 9px;
text-overflow: ellipsis;
white-space: nowrap;
}
.v2-page-button.active {
color: var(--v2-accent-strong);
background: color-mix(in srgb, var(--v2-accent-soft) 66%, white);
}
.v2-page-button.active > i {
width: 12px;
height: 12px;
background: var(--v2-accent);
box-shadow: 0 0 0 5px color-mix(in srgb, var(--v2-accent) 10%, transparent);
}
.console-v2 .toast {
right: 24px;
bottom: 22px;
border-radius: 10px;
}
/* Compact desktop heights ------------------------------------------------ */
@media (max-height: 820px) {
.console-v2 .workspace {
grid-template-columns: clamp(235px, 18vw, 280px) minmax(0, 1fr);
}
.console-v2.v2-sidebar-collapsed .workspace {
grid-template-columns: 66px minmax(0, 1fr);
}
.console-v2 .v2-sidebar {
padding-top: 14px;
padding-bottom: 10px;
}
.v2-profile {
grid-template-columns: 50px minmax(0, 1fr) 28px;
gap: 10px;
min-height: 52px;
}
.v2-role-select > span,
.v2-role-select select,
.v2-role-select .v2-dropdown-trigger {
font-size: 20px;
}
.v2-avatar {
width: 48px;
height: 48px;
}
.v2-profile-copy > small,
.v2-section-heading span {
display: none;
}
.v2-control-section {
margin-top: 14px;
}
.v2-section-heading h2 {
margin: 0 0 10px;
font-size: 22px;
}
.v2-control-section > .v2-field-caption,
.v2-config-section > .v2-field-caption {
margin-bottom: 5px;
font-size: 11px;
}
.console-v2 .v2-config-field > .field-label,
.console-v2 .v2-config-field > label.field-label {
margin-bottom: 4px;
font-size: 9px;
}
.v2-control-switch {
grid-template-columns: 1fr;
}
.v2-control-switch button {
min-height: 41px;
grid-template-columns: 21px minmax(0, 1fr);
padding: 0 9px;
font-size: 10px;
}
.v2-config-section {
margin-top: 12px;
}
.v2-divider {
margin-bottom: 9px;
}
.v2-config-stack {
gap: 8px;
padding-left: 8px;
}
.console-v2 .v2-config-card {
min-height: 38px;
}
.console-v2 .v2-config-field .provider-note {
display: none;
}
.console-v2 .main-panel {
--v2-main-pad: 9px;
grid-template-rows: 34px clamp(207px, 29dvh, 236px) minmax(0, 1fr);
gap: 12px;
padding: 0 var(--v2-main-pad) var(--v2-main-pad);
}
.v2-natural-panel {
grid-template-columns: minmax(0, 1fr);
grid-template-rows: auto minmax(102px, 1fr) auto;
gap: 5px;
padding: 12px 20px 8px;
}
.console-v2 .v2-gesture-panel {
gap: 5px;
padding: 12px 20px 8px;
}
.console-v2 .v2-operation-heading h2 {
font-size: 24px;
}
.console-v2 .v2-operation-heading .panel-intro {
display: none;
}
.console-v2 .v2-request-form .command-composer,
.console-v2 .v2-request-form #utterance {
height: 102px;
min-height: 102px;
}
.console-v2 .v2-request-form #utterance {
height: 100px;
min-height: 100px;
padding: 13px 64px 25px 17px;
}
.console-v2 .v2-request-form .primary-action {
width: 32px;
height: 32px;
min-height: 32px;
right: 9px;
bottom: 9px;
}
.console-v2 .v2-request-form .composer-hint {
right: 48px;
bottom: 8px;
}
.console-v2 .v2-request-status {
height: 102px;
min-height: 102px;
padding: 12px;
}
.console-v2 .v2-mode-rail .mode-chips button {
min-width: 86px;
min-height: 29px;
padding: 4px 10px;
font-size: 9px;
}
.console-v2 .v2-inline-gesture .gesture-footnote {
display: none;
}
.v2-output-shell {
grid-template-rows: 49px minmax(0, 1fr);
}
.v2-output-heading {
padding-top: 6px;
padding-bottom: 5px;
}
.v2-output-content {
margin: 0 9px 9px;
}
.v2-output-shell.v2-twin-active .v2-output-content {
margin: 4px 8px;
}
.console-v2 .joint-twin-shell.v2-output-page {
gap: 8px;
padding: 3px 6px;
}
.v2-sidebar-footer {
min-height: 42px;
padding-top: 7px;
}
.console-v2 .v2-advanced-field:not([hidden]) {
max-height: 92px;
overflow: auto;
}
}
@media (max-width: 1366px) {
.console-v2 {
min-width: 1120px;
}
.console-v2 .workspace {
grid-template-columns: 245px minmax(0, 1fr);
}
.console-v2.v2-sidebar-collapsed .workspace {
grid-template-columns: 66px minmax(0, 1fr);
}
.v2-natural-panel {
grid-template-columns: minmax(0, 1fr);
}
.v2-natural-grid {
grid-template-columns: minmax(0, 1fr) 165px;
}
.v2-page-rail {
padding-right: 6px;
}
.v2-page-button {
grid-template-columns: 12px 10px minmax(0, 1fr);
gap: 4px;
}
}
@media (min-width: 2000px) {
.console-v2 .workspace {
grid-template-columns: 330px minmax(0, 1fr);
}
.console-v2.v2-sidebar-collapsed .workspace {
grid-template-columns: 76px minmax(0, 1fr);
}
.console-v2 .v2-sidebar {
padding-right: 34px;
padding-left: 34px;
}
.console-v2 .main-panel {
--v2-main-pad: 24px;
grid-template-rows: 42px 350px minmax(0, 1fr);
gap: 18px;
padding: 0 var(--v2-main-pad) var(--v2-main-pad);
}
.v2-operation-shell,
.v2-output-shell {
border-radius: 26px;
}
}
@media (prefers-reduced-motion: reduce) {
.console-v2 *,
.console-v2 *::before,
.console-v2 *::after {
scroll-behavior: auto !important;
transition-duration: 0.01ms !important;
}
}
/* Whole-vehicle state board: eight balanced cards in a complete 4 x 2 matrix. */
.console-v2 .joint-twin-shell.v2-output-page {
grid-template-columns: minmax(360px, 0.72fr) minmax(0, 1.28fr);
}
.console-v2 .joint-twin-shell .twin-heading h3,
.console-v2 .joint-twin-shell .twin-seat-button {
white-space: nowrap;
}
.console-v2 .joint-twin-shell > .cabin-band {
grid-template-rows: 58px minmax(0, 1fr);
}
.console-v2 .joint-twin-shell .domain-grid {
grid-template-columns: repeat(8, minmax(0, 1fr));
grid-template-rows: repeat(2, minmax(0, 1fr));
grid-template-areas: none;
grid-auto-rows: minmax(0, 1fr);
align-content: stretch;
overflow: hidden;
}
.console-v2 .joint-twin-shell .domain-grid > .domain-panel {
grid-area: auto;
grid-column: span 2;
height: 100%;
box-sizing: border-box;
}
.console-v2 .joint-twin-shell .window-panel,
.console-v2 .joint-twin-shell .lighting-panel {
min-height: 0;
}
.console-v2 .joint-seat-panel .thermal-states {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.console-v2 .joint-seat-panel .motion-state-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.console-v2 .joint-seat-panel .thermal-states > span,
.console-v2 .joint-seat-panel .motion-axis {
min-width: 0;
}
.console-v2 .joint-seat-panel .motion-axis span {
line-height: 1.2;
}
.console-v2 .joint-seat-panel {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
grid-template-rows: auto auto auto minmax(0, 1fr);
align-content: start;
position: relative;
}
.console-v2 .joint-seat-panel .seat-identity {
min-width: 0;
grid-column: 1;
grid-row: 1;
}
.console-v2 .joint-seat-panel .seat-identity strong {
white-space: nowrap;
}
.console-v2 .joint-seat-panel .seat-channel-badge {
grid-column: 2;
grid-row: 1;
align-self: center;
white-space: nowrap;
}
.console-v2 .joint-seat-panel .dynamic-mode-state,
.console-v2 .joint-seat-panel .thermal-states,
.console-v2 .joint-seat-panel .motion-state-grid {
grid-column: 1 / -1;
}
.console-v2 .joint-seat-panel .seat-channel-badge {
width: fit-content;
max-width: 100%;
position: static;
margin: 0;
padding: 2px 5px;
overflow: hidden;
font-size: 8px;
text-overflow: ellipsis;
white-space: nowrap;
}
.console-v2 .joint-seat-panel .seat-identity {
max-width: 100%;
}
.console-v2 .joint-twin-shell .roof-panel .domain-readouts,
.console-v2 .joint-twin-shell .ambient-panel .domain-readouts,
.console-v2 .joint-twin-shell .window-panel .domain-readouts,
.console-v2 .joint-twin-shell .lighting-panel .domain-readouts {
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: repeat(2, minmax(0, 1fr));
}
.console-v2 .joint-twin-shell .roof-panel .domain-readouts > div,
.console-v2 .joint-twin-shell .ambient-panel .domain-readouts > div,
.console-v2 .joint-twin-shell .window-panel .domain-readouts > div,
.console-v2 .joint-twin-shell .lighting-panel .domain-readouts > div {
flex-direction: column;
align-items: flex-start;
justify-content: center;
gap: 2px;
}
.console-v2 .joint-twin-shell .roof-panel .domain-readouts dd,
.console-v2 .joint-twin-shell .ambient-panel .domain-readouts dd,
.console-v2 .joint-twin-shell .window-panel .domain-readouts dd,
.console-v2 .joint-twin-shell .lighting-panel .domain-readouts dd {
max-width: 100%;
margin-left: 0;
text-align: left;
}
.console-v2 .joint-twin-shell .domain-readouts dt,
.console-v2 .joint-twin-shell .domain-readouts dd {
line-height: 1.2;
}
.console-v2 .joint-twin-shell .zone-temperature span,
.console-v2 .joint-twin-shell .zone-temperature strong {
line-height: 1.2;
}
.console-v2 .joint-twin-shell .climate-panel .climate-display {
min-height: 50px;
}
.console-v2 .joint-twin-shell .climate-panel .zone-temperature {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-content: center;
gap: 2px 4px;
}
.console-v2 .joint-twin-shell .climate-panel .zone-temperature small {
min-width: 0;
grid-column: 1 / -1;
display: flex;
align-items: center;
justify-content: space-between;
gap: 4px;
color: #718384;
font-size: 8px;
font-weight: 750;
line-height: 1;
}
.console-v2 .joint-twin-shell .climate-panel .zone-temperature small b {
overflow: hidden;
color: #354f51;
font-size: 9px;
text-overflow: ellipsis;
white-space: nowrap;
}
.console-v2 .joint-twin-shell .domain-summary-visual {
min-width: 0;
height: 40px;
box-sizing: border-box;
display: flex;
align-items: center;
gap: 5px;
margin-top: 5px;
padding: 4px 6px;
overflow: hidden;
color: #748485;
background: linear-gradient(145deg, #f6f9f8, #edf3f1);
border: 1px solid rgba(93, 132, 129, 0.16);
border-radius: 7px;
font-size: 8px;
font-weight: 800;
line-height: 1;
}
.console-v2 .joint-twin-shell .shade-summary-visual > i {
min-width: 0;
height: 8px;
flex: 1;
position: relative;
overflow: hidden;
background: #dce7e4;
border-radius: 999px;
}
.console-v2 .joint-twin-shell .shade-summary-visual > i > b {
width: 0;
position: absolute;
inset: 0 auto 0 0;
background: linear-gradient(90deg, #74b6ae, var(--v2-accent));
border-radius: inherit;
transition: width 220ms ease;
}
.console-v2 .joint-twin-shell .ambient-summary-visual {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.console-v2 .joint-twin-shell .ambient-summary-visual > span {
min-width: 0;
display: grid;
grid-template-columns: 13px minmax(0, 1fr);
align-items: center;
gap: 5px;
}
.console-v2 .joint-twin-shell .ambient-summary-visual i {
width: 13px;
height: 13px;
display: block;
background: #b9c5c3;
border-radius: 50%;
box-shadow: 0 0 0 3px rgba(116, 217, 255, 0.08);
}
.console-v2 .joint-twin-shell .ambient-summary-visual b,
.console-v2 .joint-twin-shell .window-summary-visual b,
.console-v2 .joint-twin-shell .lighting-summary-visual b {
overflow: hidden;
color: #52696a;
font-size: 8px;
text-overflow: ellipsis;
white-space: nowrap;
}
.console-v2 .joint-twin-shell .window-summary-visual,
.console-v2 .joint-twin-shell .lighting-summary-visual {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 4px;
padding-inline: 5px;
}
.console-v2 .joint-twin-shell .window-summary-visual > span,
.console-v2 .joint-twin-shell .lighting-summary-visual > span {
min-width: 0;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 3px;
}
.console-v2 .joint-twin-shell .window-summary-visual i {
width: 15px;
height: 10px;
position: relative;
overflow: hidden;
background: #dbe6e4;
border: 1px solid #9db2af;
border-radius: 2px 2px 4px 4px;
}
.console-v2 .joint-twin-shell .window-summary-visual i::after {
content: "";
height: var(--window-open, 0%);
position: absolute;
inset: auto 0 0;
background: linear-gradient(#8dcac4, var(--v2-accent));
transition: height 220ms ease;
}
.console-v2 .joint-twin-shell .lighting-summary-visual i {
width: 8px;
height: 8px;
background: #b9c5c3;
border-radius: 50%;
transition: 180ms ease;
}
.console-v2 .joint-twin-shell .lighting-summary-visual [data-state="on"] i {
background: #f0b84a;
box-shadow: 0 0 7px rgba(240, 184, 74, 0.8);
}
.console-v2 .joint-twin-shell .vehicle-status-panel {
display: grid;
grid-template-rows: auto auto auto minmax(0, 1fr);
align-content: start;
}
.console-v2 .joint-twin-shell .vehicle-status-panel .readonly-state,
.console-v2 .joint-twin-shell .vehicle-status-panel.active .readonly-state {
color: #315f5b;
background: #e2efec;
}
.console-v2 .joint-twin-shell .readonly-capability span {
color: #526f71;
background: #edf2f1;
}
.console-v2 .joint-twin-shell .vehicle-primary-readout {
min-width: 0;
display: grid;
grid-template-columns: 0.72fr 1.28fr;
gap: 4px;
margin-top: 5px;
}
.console-v2 .joint-twin-shell .vehicle-primary-readout > div {
min-width: 0;
min-height: 46px;
display: flex;
flex-direction: column;
justify-content: center;
padding: 4px 6px;
background: linear-gradient(145deg, #eef5f3, #f8faf9);
border: 1px solid rgba(74, 119, 116, 0.16);
border-radius: 7px;
}
.console-v2 .joint-twin-shell .vehicle-primary-readout span {
color: #708282;
font-size: 8px;
font-weight: 750;
line-height: 1;
}
.console-v2 .joint-twin-shell .vehicle-primary-readout strong {
margin-top: 3px;
overflow: hidden;
color: #193d3b;
font: 900 13px/1.15 "SFMono-Regular", Consolas, "Microsoft YaHei", monospace;
text-overflow: ellipsis;
white-space: nowrap;
}
.console-v2 .joint-twin-shell .vehicle-primary-readout > div:first-child strong {
color: var(--v2-accent-strong);
font-size: 18px;
}
.console-v2 .joint-twin-shell .door-state-grid {
min-width: 0;
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: repeat(2, minmax(0, 1fr));
gap: 3px;
margin-top: 4px;
}
.console-v2 .joint-twin-shell .door-state-grid > span {
min-width: 0;
min-height: 29px;
display: grid;
grid-template-columns: 6px minmax(0, 1fr);
grid-template-rows: repeat(2, auto);
align-items: center;
gap: 4px;
padding: 2px 5px;
color: #52696a;
background: #f3f5f4;
border: 1px solid rgba(113, 141, 140, 0.16);
border-radius: 5px;
font-size: 9px;
font-weight: 750;
line-height: 1;
}
.console-v2 .joint-twin-shell .door-state-grid i {
width: 6px;
height: 6px;
background: #aab6b5;
border-radius: 50%;
}
.console-v2 .joint-twin-shell .door-state-grid b {
grid-column: 2;
color: #607474;
font-size: 8px;
white-space: nowrap;
}
.console-v2 .joint-twin-shell .door-state-grid [data-state="lock"] i {
background: var(--v2-accent);
}
.console-v2 .joint-twin-shell .door-state-grid [data-state="lock"] b {
color: var(--v2-accent-strong);
}
.console-v2 .joint-twin-shell .door-state-grid [data-state="unlock"] i {
background: #d99a36;
}
.console-v2 .joint-twin-shell .door-state-grid [data-state="unlock"] b {
color: #9a6818;
}
@media (max-height: 820px) {
.console-v2 .joint-twin-shell > .cabin-band {
grid-template-rows: 50px minmax(0, 1fr);
}
.console-v2 .joint-twin-shell .cabin-heading {
padding: 5px 8px;
}
.console-v2 .joint-twin-shell .cabin-title-copy p {
display: none;
}
.console-v2 .joint-twin-shell .domain-grid {
gap: 6px;
padding: 6px;
}
.console-v2 .joint-twin-shell .domain-panel {
padding: 6px;
}
.console-v2 .joint-twin-shell .domain-panel header {
grid-template-columns: 24px minmax(0, 1fr) auto;
}
.console-v2 .joint-twin-shell .domain-icon,
.console-v2 .joint-seat-panel .seat-identity > svg {
width: 24px;
height: 24px;
padding: 5px;
}
.console-v2 .joint-twin-shell .domain-panel header strong,
.console-v2 .joint-seat-panel .seat-identity strong {
font-size: 11px;
}
.console-v2 .joint-twin-shell .domain-panel header small,
.console-v2 .joint-seat-panel .seat-identity span {
display: none;
}
.console-v2 .joint-twin-shell .domain-capability-line {
font-size: 8px;
}
.console-v2 .joint-twin-shell .domain-capability-line {
margin-top: 5px;
}
.console-v2 .joint-twin-shell .climate-display,
.console-v2 .joint-twin-shell .roof-visual,
.console-v2 .joint-twin-shell .ambient-visual {
min-height: 22px;
margin-top: 3px;
}
.console-v2 .joint-twin-shell .climate-direction-display {
margin-top: 3px;
}
.console-v2 .joint-twin-shell .zone-temperature,
.console-v2 .joint-twin-shell .domain-readouts > div {
min-height: 22px;
padding: 3px 5px;
}
.console-v2 .joint-twin-shell .zone-temperature span,
.console-v2 .joint-twin-shell .zone-temperature strong,
.console-v2 .joint-twin-shell .domain-readouts > div,
.console-v2 .joint-twin-shell .domain-readouts dd {
font-size: 10px;
}
.console-v2 .joint-twin-shell .domain-readouts {
gap: 4px;
margin-top: 4px;
}
.console-v2 .joint-twin-shell .roof-panel .domain-readouts > div,
.console-v2 .joint-twin-shell .ambient-panel .domain-readouts > div,
.console-v2 .joint-twin-shell .window-panel .domain-readouts > div,
.console-v2 .joint-twin-shell .lighting-panel .domain-readouts > div {
min-height: 30px;
}
.console-v2 .joint-twin-shell .climate-panel .zone-temperature,
.console-v2 .joint-twin-shell .climate-panel .domain-readouts > div {
min-height: 32px;
}
.console-v2 .joint-twin-shell .climate-panel .zone-temperature {
padding: 4px 5px;
}
.console-v2 .joint-seat-panel .dynamic-mode-state {
margin: 4px 0;
padding: 3px 4px;
font-size: 9px;
}
.console-v2 .joint-seat-panel .dynamic-mode-state b,
.console-v2 .joint-seat-panel .thermal-states b,
.console-v2 .joint-seat-panel .motion-axis b {
font-size: 10px;
}
.console-v2 .joint-seat-panel .thermal-states,
.console-v2 .joint-seat-panel .motion-state-grid {
gap: 4px;
margin-top: 4px;
}
.console-v2 .joint-seat-panel .thermal-states > span,
.console-v2 .joint-seat-panel .motion-axis {
min-height: 24px;
padding: 3px 4px;
font-size: 10px;
}
.console-v2 .joint-seat-panel .motion-state-grid {
padding-top: 4px;
}
.console-v2 .joint-seat-panel .thermal-states > span {
grid-template-columns: minmax(0, 1fr);
grid-template-rows: repeat(2, auto);
justify-items: center;
gap: 0;
text-align: center;
}
.console-v2 .joint-seat-panel .thermal-states svg {
display: none;
}
.console-v2 .joint-seat-panel .motion-axis {
flex-direction: column;
justify-content: center;
gap: 1px;
text-align: center;
}
.console-v2 .joint-seat-panel .thermal-states b,
.console-v2 .joint-seat-panel .motion-axis b {
font-size: 10px;
}
}
.reasoning-segmented {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.reasoning-option > span > strong {
font: inherit;
}
.reasoning-option > span > small,
.reasoning-option > .reasoning-check {
display: none;
}
.reasoning-option:disabled {
cursor: not-allowed;
opacity: 0.45;
}
/* Market-style model intelligence picker: a compact composer pill expands
into an overlay only when the user needs to change the reasoning level. */
.console-v2 .v2-reasoning-field {
width: 320px;
min-width: 250px;
position: fixed;
z-index: 120;
margin: 0;
padding: 12px;
background: rgba(255, 255, 255, 0.98);
border: 1px solid color-mix(in srgb, var(--v2-accent) 18%, #e6eceb);
border-radius: 14px;
box-shadow: 0 16px 38px rgba(28, 61, 62, 0.2);
}
.console-v2 .v2-reasoning-field[hidden] {
display: none !important;
}
.console-v2 .v2-reasoning-field > .field-label {
margin: 0 0 8px;
color: #263b3d;
font-size: 11px;
font-weight: 850;
}
.console-v2 .v2-reasoning-field .reasoning-segmented {
width: 100%;
min-width: 0;
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 5px;
padding: 0;
background: transparent;
border: 0;
}
.console-v2 .v2-reasoning-field .reasoning-option {
width: 100%;
min-width: 0;
min-height: 42px;
display: grid;
grid-template-columns: 24px minmax(0, 1fr) 18px;
align-items: center;
justify-content: initial;
gap: 8px;
padding: 6px 9px;
color: #536466;
border: 1px solid transparent;
border-radius: 9px;
text-align: left;
}
.console-v2 .v2-reasoning-field .reasoning-option:hover {
color: var(--v2-accent-strong);
background: color-mix(in srgb, var(--v2-accent-soft) 38%, white);
}
.console-v2 .v2-reasoning-field .reasoning-option.active {
color: var(--v2-accent-strong);
background: color-mix(in srgb, var(--v2-accent-soft) 58%, white);
border-color: color-mix(in srgb, var(--v2-accent) 16%, transparent);
box-shadow: none;
}
.console-v2 .v2-reasoning-field .reasoning-option > svg:first-child {
width: 16px;
height: 16px;
justify-self: center;
}
.console-v2 .v2-reasoning-field .reasoning-option > span {
min-width: 0;
display: grid;
gap: 1px;
}
.console-v2 .v2-reasoning-field .reasoning-option > span > strong,
.console-v2 .v2-reasoning-field .reasoning-option > span > small {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.console-v2 .v2-reasoning-field .reasoning-option > span > strong {
color: inherit;
font-size: 10px;
font-weight: 850;
}
.console-v2 .v2-reasoning-field .reasoning-option > span > small {
color: #899697;
font-size: 8px;
font-weight: 600;
}
.console-v2 .v2-reasoning-field .reasoning-option > .reasoning-check {
width: 14px;
height: 14px;
display: block;
opacity: 0;
}
.console-v2 .v2-reasoning-field .reasoning-option.active > .reasoning-check {
opacity: 1;
}
.console-v2 .v2-reasoning-field > .provider-note {
min-height: 0;
margin: 8px 2px 0;
color: #829091;
font-size: 8px;
line-height: 1.45;
}
.console-v2 .v2-request-form .command-composer {
overflow: visible;
}
.console-v2 .v2-request-form #utterance {
padding-bottom: 42px;
border-radius: inherit;
}
.console-v2 .v2-reasoning-trigger {
max-width: 180px;
min-height: 26px;
position: absolute;
left: 14px;
bottom: 9px;
z-index: 12;
display: inline-grid;
grid-template-columns: 14px auto auto 12px;
align-items: center;
gap: 5px;
padding: 0 9px;
color: #526264;
background: rgba(241, 244, 243, 0.96);
border: 1px solid rgba(98, 127, 126, 0.11);
border-radius: 999px;
font-size: 9px;
font-weight: 700;
line-height: 1;
cursor: pointer;
}
.console-v2 .v2-reasoning-trigger:hover,
.console-v2 .v2-reasoning-trigger.open {
color: var(--v2-accent-strong);
background: color-mix(in srgb, var(--v2-accent-soft) 52%, white);
border-color: color-mix(in srgb, var(--v2-accent) 18%, transparent);
}
.console-v2 .v2-reasoning-trigger.unavailable {
opacity: 0.62;
}
.console-v2 .v2-reasoning-trigger > svg {
width: 12px;
height: 12px;
}
.console-v2 .v2-reasoning-trigger > strong {
color: var(--v2-accent-strong);
font-size: 9px;
}
.console-v2 .v2-reasoning-trigger > .v2-reasoning-caret {
transition: transform 150ms ease;
}
.console-v2 .v2-reasoning-trigger.open > .v2-reasoning-caret {
transform: rotate(180deg);
}
.console-v2 .v2-request-form .composer-hint {
max-width: 150px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
@media (max-height: 820px) {
.console-v2 .v2-reasoning-trigger {
bottom: 7px;
}
}