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

2363 lines
49 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: 12px;
padding: 2px 0 0 10px;
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 {
margin: 5px 3px 0;
color: #7a8a8a;
font-size: 8px;
line-height: 1.35;
}
.console-v2 .v2-gesture-model-note {
display: block;
margin: 5px 3px 0;
color: #7a8a8a;
font-size: 8px;
line-height: 1.35;
}
.console-v2 .v2-vehicle-field .vehicle-select-control,
.v2-static-select,
.v2-select-shell {
min-height: 46px;
display: grid;
grid-template-columns: 22px minmax(0, 1fr) auto;
align-items: center;
gap: 8px;
padding: 0 13px;
color: #0d2527;
background: color-mix(in srgb, var(--v2-accent-soft) 72%, white);
border: 1px solid color-mix(in srgb, var(--v2-accent) 17%, white);
border-radius: 10px;
}
.console-v2 .v2-vehicle-field .vehicle-select-control > svg,
.v2-static-select > svg,
.v2-select-shell > svg {
width: 17px;
height: 17px;
color: var(--v2-accent);
}
.console-v2 .v2-vehicle-field select,
.v2-select-shell select {
width: 100%;
height: 44px;
padding: 0;
appearance: none;
color: #102224;
background: transparent;
border: 0;
outline: 0;
font-size: 14px;
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;
}
.vehicle-select-control > .v2-dropdown-trigger,
.v2-select-shell > .v2-dropdown-trigger {
width: 100%;
height: 44px;
grid-column: 2 / -1;
font-size: 14px;
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-static-select strong {
min-width: 0;
overflow: hidden;
font-size: 13px;
text-overflow: ellipsis;
white-space: nowrap;
}
.v2-field-state {
padding: 4px 6px;
color: var(--v2-accent-strong);
background: rgba(255, 255, 255, 0.68);
border-radius: 5px;
font: 850 8px "SFMono-Regular", Consolas, monospace;
}
.v2-static-select.unavailable {
color: #9b5f32;
background: #fff1df;
}
.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 {
min-width: 0;
height: 100dvh;
display: grid;
grid-template-rows: clamp(240px, 31.5dvh, 340px) minmax(0, 1fr);
gap: clamp(10px, 1.25vh, 14px);
padding: clamp(12px, 1.5vw, 20px);
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;
display: grid;
grid-template-columns: minmax(0, 1fr);
align-items: center;
gap: 0;
margin: 0;
padding: 0;
background: transparent;
border: 0;
}
.console-v2 .v2-mode-rail .mode-rail-heading {
display: none;
}
.console-v2 .v2-mode-rail .mode-rail-heading > span {
color: #8a9797;
font-size: 9px;
font-weight: 800;
white-space: nowrap;
}
.console-v2 .v2-mode-rail #saveModeToggle {
display: none;
}
.console-v2 .v2-mode-rail .mode-chips {
min-width: 0;
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-cycle-badge {
display: none;
}
.console-v2 .v2-mode-rail .save-mode-composer {
position: absolute;
right: 24px;
bottom: 12px;
z-index: 5;
}
.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(205px, 0.72fr)
minmax(330px, 1.12fr)
minmax(282px, 0.9fr);
grid-template-rows: auto auto minmax(0, 1fr);
gap: 9px 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 {
grid-column: 1;
grid-row: 1 / -1;
height: 100%;
min-height: 0;
margin: 0;
overflow: hidden;
background: linear-gradient(145deg, #263537, #111b1d);
border: 1px solid rgba(43, 103, 102, 0.18);
border-radius: 17px;
box-shadow: 0 12px 32px rgba(25, 48, 50, 0.15);
}
.console-v2 .v2-inline-gesture .v2-camera-toggle {
width: 42px;
height: 42px;
min-height: 42px;
position: absolute;
right: 13px;
bottom: 12px;
z-index: 5;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0;
color: #083a35;
border: 1px solid rgba(255, 255, 255, 0.56);
border-radius: 50%;
background: linear-gradient(135deg, #a8f2e2, #58d2b9);
box-shadow: 0 8px 20px rgba(4, 27, 27, 0.3);
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);
box-shadow: 0 10px 24px rgba(4, 27, 27, 0.38);
}
.console-v2 .v2-inline-gesture .v2-camera-toggle:disabled {
cursor: wait;
opacity: 0.64;
}
.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: #fff4f4;
border-color: rgba(255, 255, 255, 0.34);
background: linear-gradient(135deg, #e26969, #bb3f48);
}
.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 .gesture-status-strip {
grid-column: 2;
grid-row: 1;
min-height: 36px;
margin: 0;
padding: 7px 10px;
background: #f1f5f4;
border: 1px solid #e2eae8;
border-radius: 9px;
}
.console-v2 .v2-inline-gesture .gesture-now {
grid-column: 2;
grid-row: 2;
min-height: 50px;
margin: 0;
padding: 8px 10px;
background: color-mix(in srgb, var(--v2-accent-soft) 44%, white);
border: 1px solid var(--v2-line);
border-radius: 10px;
}
.console-v2 .v2-inline-gesture .gesture-actions {
grid-column: 2;
grid-row: 3;
align-self: end;
margin: 0;
}
.console-v2 .v2-inline-gesture #gestureStopButton,
.console-v2[data-demo-role="user"] .v2-inline-gesture .gesture-actions {
display: none;
}
.console-v2[data-demo-role="admin"] .v2-inline-gesture .gesture-actions {
position: relative;
z-index: 8;
display: flex;
justify-content: flex-end;
}
.console-v2[data-demo-role="admin"] .v2-inline-gesture #gestureArmButton {
width: min(150px, 100%);
}
.console-v2 .v2-inline-gesture .gesture-debug-panel {
width: min(360px, 100%);
position: absolute;
right: 0;
bottom: calc(100% + 7px);
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 {
padding: 5px 9px;
color: white;
background: var(--v2-accent);
}
.console-v2 .v2-inline-gesture .gesture-debug-controls button svg {
width: 12px;
height: 12px;
}
.console-v2 .v2-inline-gesture .gesture-actions button {
min-height: 38px;
border-radius: 9px;
}
.console-v2 .v2-inline-gesture .gesture-footnote,
.console-v2 .v2-inline-gesture .gesture-progress {
display: none;
}
.console-v2 .v2-inline-gesture .gesture-guide-card {
min-width: 0;
min-height: 0;
grid-column: 3;
grid-row: 1 / -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: 38px 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: 4px 10px;
background: 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 {
font-size: 6px;
}
.console-v2 .joint-twin-shell .cabin-heading h3 {
margin: 0;
font-size: 13px;
}
.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: 4px;
padding: 4px;
overflow-x: hidden;
overflow-y: hidden;
}
.console-v2 .joint-twin-shell .domain-panel {
min-width: 0;
min-height: 0;
padding: 6px;
overflow: hidden;
border-radius: 8px;
box-shadow: none;
}
.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 .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: 108px;
}
.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-vehicle-field .vehicle-select-control,
.v2-static-select,
.v2-select-shell {
min-height: 39px;
}
.console-v2 .v2-vehicle-field select,
.v2-select-shell select {
height: 37px;
font-size: 12px;
}
.console-v2 .v2-config-field .provider-note {
display: none;
}
.console-v2 .main-panel {
grid-template-rows: clamp(207px, 29dvh, 236px) minmax(0, 1fr);
gap: 12px;
padding: 9px;
}
.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 {
grid-template-rows: 350px minmax(0, 1fr);
gap: 18px;
padding: 24px;
}
.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;
}
}