9856 lines
259 KiB
CSS
9856 lines
259 KiB
CSS
/* N7 web console ------------------------------------------------------------
|
|
Only the active remote-control layout lives here. */
|
|
|
|
.console-v2 {
|
|
--v2-accent: var(--primary);
|
|
--v2-accent-strong: color-mix(in oklch, var(--primary) 80%, var(--foreground));
|
|
--v2-accent-soft: color-mix(in oklch, var(--primary) 10%, var(--background));
|
|
--v2-sidebar: var(--sidebar);
|
|
--v2-sidebar-deep: var(--sidebar-accent);
|
|
--v2-ink: var(--foreground);
|
|
--v2-muted: var(--muted-foreground);
|
|
--v2-line: var(--border);
|
|
--v2-surface: var(--card);
|
|
--v2-canvas: var(--background);
|
|
--v2-shadow: 0 18px 50px oklch(0.145 0.008 326 / 10%);
|
|
--v2-module-title-block: clamp(12px, 2vh, 22px);
|
|
--v2-module-title-inline: clamp(20px, 2.3vw, 34px);
|
|
min-width: 1180px;
|
|
min-height: 620px;
|
|
overflow: hidden;
|
|
color: var(--v2-ink);
|
|
background: var(--v2-canvas);
|
|
font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
|
|
}
|
|
|
|
.console-v2 .v2-boot-screen {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 10000;
|
|
display: grid;
|
|
place-content: center;
|
|
justify-items: center;
|
|
gap: 10px;
|
|
color: var(--foreground);
|
|
background:
|
|
radial-gradient(circle at 50% 42%, color-mix(in oklch, var(--primary) 18%, transparent), transparent 18rem),
|
|
var(--background);
|
|
opacity: 1;
|
|
visibility: visible;
|
|
transition: opacity 160ms ease, visibility 160ms ease;
|
|
}
|
|
|
|
.console-v2.v2-ready .v2-boot-screen {
|
|
pointer-events: none;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
}
|
|
|
|
.console-v2 .v2-boot-screen strong {
|
|
font-size: 20px;
|
|
font-weight: 900;
|
|
letter-spacing: -0.03em;
|
|
}
|
|
|
|
.console-v2 .v2-boot-screen small {
|
|
color: var(--muted-foreground);
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.console-v2 .v2-boot-mark {
|
|
width: 48px;
|
|
height: 48px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 4px;
|
|
margin-bottom: 4px;
|
|
border-radius: 15px;
|
|
background: linear-gradient(145deg, var(--v2-accent), var(--v2-accent-strong));
|
|
box-shadow: 0 12px 28px color-mix(in oklch, var(--primary) 20%, transparent);
|
|
}
|
|
|
|
.console-v2 .v2-boot-mark i {
|
|
width: 4px;
|
|
height: 4px;
|
|
border-radius: 999px;
|
|
background: var(--primary-foreground);
|
|
animation: v2-boot-pulse 900ms ease-in-out infinite alternate;
|
|
}
|
|
|
|
.console-v2 .v2-boot-mark i:nth-child(2) {
|
|
animation-delay: 150ms;
|
|
}
|
|
|
|
.console-v2 .v2-boot-mark i:nth-child(3) {
|
|
animation-delay: 300ms;
|
|
}
|
|
|
|
@keyframes v2-boot-pulse {
|
|
to {
|
|
height: 18px;
|
|
border-radius: 4px;
|
|
}
|
|
}
|
|
|
|
.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 .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;
|
|
visibility: hidden;
|
|
}
|
|
|
|
.console-v2.v2-ready .workspace {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
}
|
|
|
|
.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%, color-mix(in oklch, var(--card) 82%, transparent), transparent 24%),
|
|
linear-gradient(158deg, var(--v2-sidebar) 0%, var(--sidebar-accent) 60%, var(--v2-sidebar-deep) 130%);
|
|
border-right: 1px solid var(--v2-line);
|
|
}
|
|
|
|
.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-sidebar-section,
|
|
.console-v2.v2-sidebar-collapsed .v2-sidebar-footer {
|
|
display: none;
|
|
}
|
|
|
|
.v2-sidebar-section {
|
|
min-width: 0;
|
|
}
|
|
|
|
.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-divider {
|
|
height: 1px;
|
|
margin-bottom: 15px;
|
|
background: linear-gradient(90deg, var(--v2-accent), transparent);
|
|
opacity: 0.32;
|
|
}
|
|
|
|
.console-v2 .v2-transport-field {
|
|
width: 100%;
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
margin: 0;
|
|
overflow: hidden;
|
|
box-sizing: border-box;
|
|
padding: 8px;
|
|
background: rgba(255, 255, 255, 0.72);
|
|
border: 1px solid rgba(255, 255, 255, 0.78);
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.console-v2 .v2-transport-field > .field-label {
|
|
display: block;
|
|
margin-top: 0;
|
|
margin-bottom: 6px;
|
|
color: #8a9999;
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.02em;
|
|
}
|
|
|
|
.console-v2 .v2-transport-field .vehicle-transport-options {
|
|
width: 100%;
|
|
min-width: 0;
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 5px;
|
|
}
|
|
|
|
.console-v2 .v2-transport-field .mode-option {
|
|
min-width: 0;
|
|
min-height: 32px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 5px;
|
|
padding: 5px 7px;
|
|
color: #657879;
|
|
background: rgba(246, 249, 248, 0.92);
|
|
border: 1px solid rgba(105, 137, 137, 0.16);
|
|
border-radius: 8px;
|
|
font-size: 10px;
|
|
font-weight: 850;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.console-v2 .v2-transport-field .mode-option svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.console-v2 .v2-transport-field .mode-option.active {
|
|
color: #fff;
|
|
background: linear-gradient(145deg, var(--v2-accent), var(--v2-accent-strong));
|
|
border-color: transparent;
|
|
box-shadow: 0 5px 13px color-mix(in srgb, var(--v2-accent) 20%, transparent);
|
|
}
|
|
|
|
.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: var(--v2-module-title-block) var(--v2-module-title-inline) 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;
|
|
}
|
|
|
|
/* Shared title system for all five top-level capability modules. */
|
|
.console-v2 .v2-module-heading.v2-module-heading .section-kicker {
|
|
display: block;
|
|
margin: 0 0 5px;
|
|
color: var(--v2-accent-strong);
|
|
font: 850 9px/1.2 "SFMono-Regular", Consolas, "Microsoft YaHei", monospace;
|
|
letter-spacing: 0.16em;
|
|
}
|
|
|
|
.console-v2 .v2-module-heading.v2-module-heading h1,
|
|
.console-v2 .v2-module-heading.v2-module-heading h2 {
|
|
max-width: none;
|
|
margin: 0 0 4px;
|
|
color: var(--v2-ink);
|
|
font-size: clamp(24px, 2vw, 31px);
|
|
font-weight: 900;
|
|
line-height: 1.08;
|
|
letter-spacing: -0.04em;
|
|
}
|
|
|
|
.console-v2 .v2-module-heading.v2-module-heading > p,
|
|
.console-v2 .v2-module-heading.v2-module-heading .panel-intro {
|
|
display: block;
|
|
max-width: 660px;
|
|
margin: 0;
|
|
color: var(--v2-muted);
|
|
font-size: 11px;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.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 {
|
|
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(2, 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 .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 .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 .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 .v2-output-shell.v2-twin-active {
|
|
overflow: visible;
|
|
background: transparent;
|
|
border: 0;
|
|
border-radius: 0;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.console-v2 .v2-output-shell.v2-twin-active .v2-output-content {
|
|
margin: 0;
|
|
background: transparent;
|
|
border: 0;
|
|
border-radius: 0;
|
|
}
|
|
|
|
.console-v2 .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: color-mix(in srgb, var(--v2-accent-soft) 8%, white);
|
|
border: 1px solid color-mix(in srgb, var(--v2-accent) 14%, transparent);
|
|
border-radius: 12px;
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell > .twin-band {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
grid-template-rows: 62px minmax(0, 1fr);
|
|
container-type: inline-size;
|
|
}
|
|
|
|
.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 {
|
|
width: 100%;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
padding: 9px 12px;
|
|
background:
|
|
linear-gradient(
|
|
105deg,
|
|
color-mix(in srgb, var(--v2-accent-soft) 86%, white),
|
|
color-mix(in srgb, var(--v2-accent-soft) 18%, white) 58%
|
|
),
|
|
white;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--v2-accent) 14%, transparent);
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell .twin-heading .section-kicker {
|
|
display: block;
|
|
color: var(--v2-accent-strong);
|
|
font-size: 7px;
|
|
letter-spacing: 0.12em;
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell .twin-heading h3 {
|
|
display: block;
|
|
margin: 2px 0 0;
|
|
color: var(--v2-ink);
|
|
font-size: 16px;
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell .twin-title-copy {
|
|
min-width: 0;
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell .twin-toolbar {
|
|
width: auto;
|
|
min-width: 0;
|
|
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%;
|
|
max-width: 100%;
|
|
min-width: 0;
|
|
height: 100% !important;
|
|
min-height: 0;
|
|
background:
|
|
radial-gradient(ellipse at 50% 82%, rgba(47, 128, 237, 0.14), transparent 40%),
|
|
linear-gradient(165deg, #f4f9ff 0%, #e5f1ff 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,
|
|
color-mix(in srgb, var(--v2-accent-soft) 86%, white),
|
|
color-mix(in srgb, var(--v2-accent-soft) 18%, white) 58%
|
|
),
|
|
white;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--v2-accent) 14%, transparent);
|
|
}
|
|
|
|
.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;
|
|
color: var(--v2-ink);
|
|
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: var(--v2-muted);
|
|
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: color-mix(in srgb, var(--v2-ink) 74%, var(--v2-muted));
|
|
background: color-mix(in srgb, var(--v2-accent-soft) 24%, white);
|
|
border: 1px solid color-mix(in srgb, var(--v2-accent) 14%, transparent);
|
|
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-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: color-mix(in srgb, var(--v2-accent) 34%, transparent) 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: var(--v2-accent);
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell .domain-panel.active {
|
|
border-color: color-mix(in srgb, var(--v2-accent) 32%, #dce7e4);
|
|
box-shadow: 0 7px 18px color-mix(in srgb, var(--v2-accent) 9%, transparent);
|
|
}
|
|
|
|
.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-section-heading span {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2[data-module="self-extension"] .v2-extension-sidebar {
|
|
margin-top: 14px;
|
|
}
|
|
|
|
.v2-section-heading h2 {
|
|
margin: 0 0 10px;
|
|
font-size: 22px;
|
|
}
|
|
|
|
.v2-extension-sidebar > .v2-field-caption {
|
|
margin-bottom: 5px;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.v2-extension-mode-switch button {
|
|
min-height: 41px;
|
|
grid-template-columns: 21px minmax(0, 1fr);
|
|
padding: 0 9px;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.v2-extension-mode-switch button svg {
|
|
width: 17px;
|
|
height: 17px;
|
|
}
|
|
|
|
.v2-divider {
|
|
margin-bottom: 9px;
|
|
}
|
|
|
|
.v2-extension-config-card,
|
|
.v2-extension-metrics > div {
|
|
min-height: 38px;
|
|
}
|
|
|
|
.console-v2 .main-panel {
|
|
--v2-main-pad: 9px;
|
|
grid-template-rows: 36px clamp(236px, 33dvh, 246px) 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: var(--v2-module-title-block) var(--v2-module-title-inline) 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;
|
|
}
|
|
|
|
}
|
|
|
|
/* Interactive vehicle sync control layout -------------------------------- */
|
|
|
|
.console-v2.v2-interactive-sync .workspace {
|
|
grid-template-columns: clamp(250px, 19vw, 292px) minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .main-panel {
|
|
grid-template-rows: 56px clamp(224px, 29dvh, 254px) minmax(0, 1fr);
|
|
gap: 10px;
|
|
padding-bottom: 10px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-module-switcher {
|
|
min-height: 56px;
|
|
grid-template-columns: minmax(0, 1fr) auto auto;
|
|
gap: 18px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-unified-brand-mark {
|
|
width: 34px;
|
|
height: 34px;
|
|
border-radius: 11px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-unified-brand h1 {
|
|
margin-top: 2px;
|
|
font-size: clamp(15px, 1.3vw, 20px);
|
|
}
|
|
|
|
.console-v2 .v2-remote-control-state {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
padding: 7px 10px;
|
|
color: #52716f;
|
|
background: rgba(255, 255, 255, 0.72);
|
|
border: 1px solid rgba(15, 121, 115, 0.1);
|
|
border-radius: 999px;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.console-v2 .v2-remote-control-state svg {
|
|
width: 13px;
|
|
color: var(--v2-accent);
|
|
}
|
|
|
|
.console-v2 .v2-remote-control-state strong {
|
|
color: #12806f;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-natural-panel {
|
|
grid-template-columns: minmax(390px, 0.95fr) minmax(390px, 1.05fr);
|
|
grid-template-rows: auto minmax(76px, 1fr) auto;
|
|
column-gap: 14px;
|
|
row-gap: 7px;
|
|
padding: 13px 16px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-operation-heading h2 {
|
|
font-size: clamp(19px, 1.6vw, 25px);
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-operation-heading .panel-intro {
|
|
max-width: 540px;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-natural-grid {
|
|
display: grid;
|
|
grid-column: 1;
|
|
grid-row: 2;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-request-form {
|
|
display: grid;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-request-status {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-request-form .command-composer,
|
|
.console-v2.v2-interactive-sync .v2-request-form #utterance {
|
|
height: 76px;
|
|
min-height: 76px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-request-form #utterance {
|
|
padding: 11px 60px 34px 14px;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-request-form .primary-action {
|
|
width: 32px;
|
|
height: 32px;
|
|
min-height: 32px;
|
|
right: 8px;
|
|
bottom: 8px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-request-form .context-reset {
|
|
top: 5px;
|
|
right: 7px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-request-form .composer-hint {
|
|
right: 49px;
|
|
bottom: 8px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-reasoning-trigger {
|
|
left: 10px;
|
|
bottom: 7px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-mode-rail {
|
|
grid-column: 1;
|
|
grid-row: 3;
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr);
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 0;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-mode-rail .mode-rail-heading {
|
|
display: flex !important;
|
|
align-items: center;
|
|
margin: 0;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-mode-rail .mode-rail-heading > div {
|
|
display: grid;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-mode-rail .mode-rail-heading span {
|
|
color: #466664;
|
|
font-size: 10px;
|
|
font-weight: 850;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-mode-rail .mode-rail-heading small,
|
|
.console-v2.v2-interactive-sync .v2-mode-rail #saveModeToggle,
|
|
.console-v2.v2-interactive-sync .v2-mode-rail .mode-rail-controls {
|
|
display: none !important;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-mode-rail .mode-chips {
|
|
gap: 6px;
|
|
padding: 0;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-mode-rail .mode-chips button {
|
|
min-height: 29px;
|
|
padding: 4px 10px;
|
|
cursor: pointer;
|
|
pointer-events: auto;
|
|
opacity: 1;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-mode-rail .mode-chips button:hover {
|
|
color: #fff;
|
|
background: linear-gradient(135deg, #0a6d68, #15988f);
|
|
border-color: transparent;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-task-overview {
|
|
grid-column: 2;
|
|
grid-row: 1 / 4;
|
|
gap: 9px;
|
|
padding: 13px 14px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-task-copy strong {
|
|
font-size: clamp(12px, 1vw, 15px);
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-task-timeline {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 5px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-task-timeline span {
|
|
min-height: 35px;
|
|
padding: 5px 6px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-sidebar {
|
|
padding: 18px 14px 12px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-sync-sidebar {
|
|
gap: 10px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-sync-sidebar-heading h2 {
|
|
margin: 4px 0 4px;
|
|
font-size: 21px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-sync-sidebar-heading p {
|
|
font-size: 9px;
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.console-v2 .v2-sync-log {
|
|
min-height: 0;
|
|
display: grid;
|
|
flex: 1;
|
|
grid-template-rows: auto minmax(0, 1fr);
|
|
overflow: hidden;
|
|
background: rgba(255, 255, 255, 0.78);
|
|
border: 1px solid rgba(15, 112, 106, 0.11);
|
|
border-radius: 15px;
|
|
box-shadow: 0 10px 26px rgba(31, 87, 84, 0.06);
|
|
}
|
|
|
|
.console-v2 .v2-sync-log > header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
padding: 10px 10px 8px;
|
|
border-bottom: 1px solid rgba(30, 104, 100, 0.08);
|
|
}
|
|
|
|
.console-v2 .v2-sync-log header small {
|
|
color: #27827d;
|
|
font: 800 7px/1.2 "SFMono-Regular", Consolas, monospace;
|
|
letter-spacing: 0.1em;
|
|
}
|
|
|
|
.console-v2 .v2-sync-log h3 {
|
|
margin: 3px 0 0;
|
|
color: #173637;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.console-v2 .v2-sync-log select {
|
|
height: 26px;
|
|
padding: 0 6px;
|
|
color: #55706f;
|
|
background: #f3f7f6;
|
|
border: 1px solid rgba(58, 107, 104, 0.1);
|
|
border-radius: 8px;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.console-v2 .v2-sync-log ol {
|
|
min-height: 0;
|
|
margin: 0;
|
|
padding: 8px 9px 12px;
|
|
overflow: auto;
|
|
list-style: none;
|
|
scrollbar-width: thin;
|
|
}
|
|
|
|
.console-v2 .v2-sync-log li {
|
|
position: relative;
|
|
display: grid;
|
|
grid-template-columns: 38px 20px minmax(0, 1fr);
|
|
gap: 5px;
|
|
padding: 7px 0;
|
|
}
|
|
|
|
.console-v2 .v2-sync-log li:not(:last-child)::after {
|
|
width: 1px;
|
|
position: absolute;
|
|
top: 30px;
|
|
bottom: -6px;
|
|
left: 48px;
|
|
content: "";
|
|
background: rgba(55, 124, 119, 0.13);
|
|
}
|
|
|
|
.console-v2 .v2-sync-log time {
|
|
padding-top: 4px;
|
|
color: #8a9b9a;
|
|
font: 700 7px/1 "SFMono-Regular", Consolas, monospace;
|
|
}
|
|
|
|
.console-v2 .v2-sync-log li > span {
|
|
width: 19px;
|
|
height: 19px;
|
|
display: grid;
|
|
z-index: 1;
|
|
place-items: center;
|
|
color: #fff;
|
|
background: #4b91d9;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.console-v2 .v2-sync-log li[data-log-status="success"] > span {
|
|
background: #19a66f;
|
|
}
|
|
|
|
.console-v2 .v2-sync-log li[data-log-status="error"] > span {
|
|
background: #dc6f65;
|
|
}
|
|
|
|
.console-v2 .v2-sync-log li > span svg {
|
|
width: 10px;
|
|
}
|
|
|
|
.console-v2 .v2-sync-log li > div {
|
|
min-width: 0;
|
|
display: grid;
|
|
gap: 3px;
|
|
}
|
|
|
|
.console-v2 .v2-sync-log li strong {
|
|
overflow: hidden;
|
|
color: #263f40;
|
|
font-size: 9px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .v2-sync-log li small {
|
|
display: -webkit-box;
|
|
overflow: hidden;
|
|
color: #738887;
|
|
font-size: 8px;
|
|
line-height: 1.45;
|
|
-webkit-box-orient: vertical;
|
|
-webkit-line-clamp: 2;
|
|
}
|
|
|
|
.console-v2 .v2-sync-log-empty {
|
|
grid-template-columns: 1fr !important;
|
|
text-align: center;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-sidebar-footer {
|
|
min-height: 34px;
|
|
margin-top: 7px;
|
|
padding-top: 7px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .joint-twin-shell.v2-output-page {
|
|
grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
|
|
grid-template-rows: minmax(0, 1fr);
|
|
gap: 10px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] .v2-unified-right-rail {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .joint-twin-shell > .twin-band {
|
|
width: 100%;
|
|
max-width: 980px;
|
|
justify-self: center;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-unified-right-rail {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.console-v2 .v2-side-status-panel {
|
|
min-height: 0;
|
|
flex: 1 1 0;
|
|
}
|
|
|
|
.console-v2 .v2-side-status-panel[hidden] {
|
|
display: none !important;
|
|
}
|
|
|
|
.console-v2 .v2-device-sync-board {
|
|
grid-template-rows: auto minmax(0, 1fr);
|
|
padding: 9px;
|
|
}
|
|
|
|
.console-v2 .v2-device-sync-board > header {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto 27px;
|
|
gap: 7px;
|
|
}
|
|
|
|
.console-v2 .v2-device-sync-board > header > button,
|
|
.console-v2 .v2-extension-sync-heading > button {
|
|
width: 26px;
|
|
height: 26px;
|
|
display: grid;
|
|
place-items: center;
|
|
color: #66817f;
|
|
background: #f1f6f5;
|
|
border: 0;
|
|
border-radius: 8px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.console-v2 .v2-device-sync-board > header > button svg,
|
|
.console-v2 .v2-extension-sync-heading > button svg {
|
|
width: 13px;
|
|
}
|
|
|
|
.console-v2 .v2-device-sync-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
grid-template-rows: none;
|
|
grid-auto-rows: minmax(76px, auto);
|
|
gap: 6px;
|
|
padding-right: 2px;
|
|
overflow: auto;
|
|
scrollbar-width: thin;
|
|
}
|
|
|
|
.console-v2 .v2-synced-device {
|
|
min-height: 76px;
|
|
display: grid;
|
|
grid-template-columns: 27px minmax(0, 1fr) 6px;
|
|
grid-template-rows: auto auto;
|
|
align-content: start;
|
|
text-align: left;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.console-v2 .v2-synced-device:hover,
|
|
.console-v2 .v2-synced-device.active {
|
|
background: linear-gradient(145deg, #e9f7f4, #f5fbfa);
|
|
border-color: rgba(13, 126, 117, 0.22);
|
|
box-shadow: 0 8px 18px rgba(26, 99, 94, 0.09);
|
|
}
|
|
|
|
.console-v2 .v2-synced-device dl {
|
|
min-width: 0;
|
|
display: grid;
|
|
grid-column: 1 / -1;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 3px 6px;
|
|
margin: 5px 0 0;
|
|
padding-top: 5px;
|
|
border-top: 1px solid rgba(60, 113, 109, 0.08);
|
|
}
|
|
|
|
.console-v2 .v2-synced-device dl div {
|
|
min-width: 0;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 4px;
|
|
}
|
|
|
|
.console-v2 .v2-synced-device dt,
|
|
.console-v2 .v2-synced-device dd {
|
|
overflow: hidden;
|
|
margin: 0;
|
|
font-size: 7px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .v2-synced-device dt {
|
|
color: #8a9a99;
|
|
}
|
|
|
|
.console-v2 .v2-synced-device dd {
|
|
color: #385a58;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.console-v2 .v2-extension-panel,
|
|
.console-v2 .v2-extension-sync-mount {
|
|
min-height: 0;
|
|
}
|
|
|
|
.console-v2 .v2-extension-panel {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.console-v2 .v2-extension-sync-mount {
|
|
height: 100%;
|
|
overflow: auto;
|
|
scrollbar-width: thin;
|
|
}
|
|
|
|
.console-v2 .v2-extension-sync-heading {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto 27px;
|
|
align-items: center;
|
|
gap: 7px;
|
|
}
|
|
|
|
.console-v2 .v2-panel-visibility-controls {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
}
|
|
|
|
.console-v2 .v2-panel-visibility-controls button {
|
|
min-height: 27px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
padding: 0 8px;
|
|
color: #6c7f7e;
|
|
background: #f0f4f3;
|
|
border: 1px solid rgba(79, 110, 108, 0.09);
|
|
border-radius: 9px;
|
|
font-size: 8px;
|
|
font-weight: 800;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.console-v2 .v2-panel-visibility-controls button.active {
|
|
color: #0a736d;
|
|
background: #def3ef;
|
|
border-color: rgba(15, 123, 115, 0.17);
|
|
}
|
|
|
|
.console-v2 .v2-panel-visibility-controls svg {
|
|
width: 12px;
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspots {
|
|
position: absolute;
|
|
inset: 0;
|
|
z-index: 14;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspots button {
|
|
--v2-hotspot-label-x: 0px;
|
|
--v2-hotspot-label-y: -52px;
|
|
--v2-hotspot-line-length: 52px;
|
|
--v2-hotspot-line-angle: -90deg;
|
|
--v2-hotspot-label-scale: 1;
|
|
width: 14px;
|
|
height: 14px;
|
|
position: absolute;
|
|
display: block;
|
|
padding: 0;
|
|
color: #ffffff;
|
|
background: transparent;
|
|
border: 0;
|
|
border-radius: 50%;
|
|
box-shadow: none;
|
|
cursor: pointer;
|
|
pointer-events: auto;
|
|
transform: translate(-50%, -50%);
|
|
overflow: visible;
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspots button::before {
|
|
content: "";
|
|
width: var(--v2-hotspot-line-length);
|
|
height: 1.5px;
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
z-index: 0;
|
|
background: linear-gradient(90deg, #12a69b, rgba(18, 166, 155, 0.55));
|
|
box-shadow: 0 0 7px rgba(18, 166, 155, 0.24);
|
|
transform: rotate(var(--v2-hotspot-line-angle));
|
|
transform-origin: 0 50%;
|
|
pointer-events: auto;
|
|
transition: height 120ms ease, background 120ms ease, box-shadow 120ms ease;
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspots button::after {
|
|
content: "";
|
|
width: 8px;
|
|
height: 8px;
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
z-index: 3;
|
|
background: #11b5aa;
|
|
border: 2px solid rgba(255, 255, 255, 0.94);
|
|
border-radius: 50%;
|
|
box-shadow: 0 0 0 3px rgba(17, 181, 170, 0.17), 0 2px 8px rgba(17, 105, 99, 0.28);
|
|
transform: translate(-50%, -50%);
|
|
transition: transform 120ms ease, background 120ms ease, box-shadow 120ms ease;
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspot-label {
|
|
width: 94px;
|
|
min-width: 94px;
|
|
max-width: 94px;
|
|
box-sizing: border-box;
|
|
min-height: 34px;
|
|
position: absolute;
|
|
top: calc(50% + var(--v2-hotspot-label-y));
|
|
left: calc(50% + var(--v2-hotspot-label-x));
|
|
z-index: 2;
|
|
display: grid;
|
|
grid-template-columns: 22px minmax(0, 1fr);
|
|
grid-template-rows: auto auto;
|
|
align-items: center;
|
|
gap: 1px 6px;
|
|
padding: 6px 8px;
|
|
color: #f4fffd;
|
|
background: linear-gradient(145deg, rgba(19, 66, 72, 0.96), rgba(12, 48, 54, 0.94));
|
|
border: 1px solid rgba(151, 232, 222, 0.24);
|
|
border-radius: 9px;
|
|
box-shadow: 0 8px 20px rgba(21, 70, 69, 0.2);
|
|
overflow: hidden;
|
|
text-align: left;
|
|
white-space: normal;
|
|
transform: translate(-50%, -50%) scale(var(--v2-hotspot-label-scale));
|
|
transform-origin: center;
|
|
backdrop-filter: blur(8px);
|
|
transition: transform 120ms ease, background 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspot-label svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
grid-column: 1;
|
|
grid-row: 1 / 3;
|
|
color: #77e1d6;
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspot-label b {
|
|
min-width: 0;
|
|
grid-column: 2;
|
|
grid-row: 1;
|
|
overflow: hidden;
|
|
font-size: 9px;
|
|
line-height: 1.15;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
@container (max-width: 420px) {
|
|
.console-v2 .joint-twin-shell .twin-title-copy {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell .twin-toolbar {
|
|
width: 100%;
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell .twin-selector {
|
|
min-width: 0;
|
|
flex: 1;
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell .twin-seat-button {
|
|
min-width: 0;
|
|
flex: 1;
|
|
padding-inline: 5px;
|
|
overflow: hidden;
|
|
font-size: 9px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspot-label {
|
|
width: 84px;
|
|
min-width: 84px;
|
|
max-width: 84px;
|
|
grid-template-columns: 18px minmax(0, 1fr);
|
|
gap: 1px 4px;
|
|
padding: 5px 6px;
|
|
}
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspot-label small {
|
|
min-width: 0;
|
|
grid-column: 2;
|
|
grid-row: 2;
|
|
overflow: hidden;
|
|
color: rgba(221, 246, 242, 0.7);
|
|
font-size: 7px;
|
|
font-weight: 700;
|
|
line-height: 1.1;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspots button:hover,
|
|
.console-v2 .v2-twin-hotspots button:focus-visible,
|
|
.console-v2 .v2-twin-hotspots button.active {
|
|
z-index: 2;
|
|
outline: none;
|
|
--v2-hotspot-label-scale: 1.05;
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspots button:hover::before,
|
|
.console-v2 .v2-twin-hotspots button:focus-visible::before,
|
|
.console-v2 .v2-twin-hotspots button.active::before {
|
|
height: 2px;
|
|
background: #0d968d;
|
|
box-shadow: 0 0 9px rgba(13, 150, 141, 0.42);
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspots button:hover::after,
|
|
.console-v2 .v2-twin-hotspots button:focus-visible::after,
|
|
.console-v2 .v2-twin-hotspots button.active::after {
|
|
background: #087a73;
|
|
box-shadow: 0 0 0 5px rgba(8, 122, 115, 0.18), 0 2px 9px rgba(8, 93, 88, 0.34);
|
|
transform: translate(-50%, -50%) scale(1.18);
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspots button:hover .v2-twin-hotspot-label,
|
|
.console-v2 .v2-twin-hotspots button:focus-visible .v2-twin-hotspot-label,
|
|
.console-v2 .v2-twin-hotspots button.active .v2-twin-hotspot-label {
|
|
background: linear-gradient(145deg, #0c8b83, #08716b);
|
|
border-color: rgba(196, 255, 246, 0.48);
|
|
box-shadow: 0 11px 24px rgba(8, 103, 96, 0.28);
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover {
|
|
width: min(360px, calc(100% - 34px));
|
|
max-height: min(190px, calc(100% - 78px));
|
|
position: absolute;
|
|
top: 12px;
|
|
left: 12px;
|
|
z-index: 25;
|
|
padding: 10px;
|
|
overflow: auto;
|
|
color: #243f40;
|
|
background: rgba(255, 255, 255, 0.97);
|
|
border: 1px solid rgba(10, 115, 108, 0.18);
|
|
border-radius: 14px;
|
|
box-shadow: 0 18px 42px rgba(27, 74, 72, 0.2);
|
|
transform: none;
|
|
transform-origin: center;
|
|
backdrop-filter: blur(14px);
|
|
will-change: left, top;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover[hidden] {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover[data-pinned="false"] {
|
|
width: min(280px, calc(100% - 24px));
|
|
pointer-events: none;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover[data-pinned="false"] dl {
|
|
grid-template-columns: repeat(auto-fit, minmax(44px, 1fr));
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover[data-pinned="false"] header {
|
|
grid-template-columns: 30px minmax(0, 1fr) auto;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover[data-pinned="false"] .v2-twin-popover-close {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover header {
|
|
display: grid;
|
|
grid-template-columns: 30px minmax(0, 1fr) auto 28px;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover header > span {
|
|
width: 30px;
|
|
height: 30px;
|
|
display: grid;
|
|
place-items: center;
|
|
color: #fff;
|
|
background: #0b807a;
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover header svg {
|
|
width: 15px;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover header div {
|
|
display: grid;
|
|
gap: 2px;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover header small {
|
|
color: #4c8c88;
|
|
font: 800 7px/1 "SFMono-Regular", Consolas, monospace;
|
|
letter-spacing: 0.08em;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover header strong {
|
|
font-size: 13px;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover header > b {
|
|
color: #718583;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.console-v2 .v2-twin-popover-close {
|
|
width: 28px;
|
|
height: 28px;
|
|
display: inline-grid;
|
|
place-items: center;
|
|
padding: 0;
|
|
color: #557471;
|
|
background: #f1f7f6;
|
|
border: 1px solid rgba(16, 111, 104, 0.12);
|
|
border-radius: 9px;
|
|
cursor: pointer;
|
|
transition: color 150ms ease, background 150ms ease, border-color 150ms ease, transform 150ms ease;
|
|
}
|
|
|
|
.console-v2 .v2-twin-popover-close:hover,
|
|
.console-v2 .v2-twin-popover-close:focus-visible {
|
|
color: #ffffff;
|
|
background: #118078;
|
|
border-color: #118078;
|
|
outline: none;
|
|
transform: scale(1.04);
|
|
}
|
|
|
|
.console-v2 .v2-twin-popover-close svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover dl {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 5px;
|
|
margin: 9px 0 0;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover dl div {
|
|
min-width: 0;
|
|
display: grid;
|
|
gap: 2px;
|
|
padding: 6px;
|
|
background: #f2f7f6;
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover dt,
|
|
.console-v2 .v2-twin-device-popover dd {
|
|
overflow: hidden;
|
|
margin: 0;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover dt {
|
|
color: #819290;
|
|
font-size: 7px;
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover dd {
|
|
color: #2c5351;
|
|
font-size: 9px;
|
|
font-weight: 850;
|
|
}
|
|
|
|
@media (max-width: 1366px) {
|
|
.console-v2.v2-interactive-sync .workspace {
|
|
grid-template-columns: 250px minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-natural-panel {
|
|
grid-template-columns: minmax(360px, 0.9fr) minmax(370px, 1.1fr);
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .joint-twin-shell.v2-output-page {
|
|
grid-template-columns: minmax(0, 1fr) minmax(310px, 0.72fr);
|
|
}
|
|
|
|
.console-v2 .v2-synced-device dl {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
}
|
|
|
|
@media (max-height: 760px) {
|
|
.console-v2.v2-interactive-sync .main-panel {
|
|
grid-template-rows: 52px 216px minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-module-switcher {
|
|
min-height: 52px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-natural-panel {
|
|
padding-block: 10px;
|
|
}
|
|
|
|
.console-v2.v2-interactive-sync .v2-task-timeline span {
|
|
min-height: 31px;
|
|
}
|
|
}
|
|
|
|
/* Unified cockpit sync foundation ---------------------------------------- */
|
|
|
|
.console-v2.v2-passive-display {
|
|
--v2-accent: var(--primary);
|
|
--v2-accent-strong: color-mix(in oklch, var(--primary) 80%, var(--foreground));
|
|
--v2-accent-soft: color-mix(in oklch, var(--primary) 10%, var(--background));
|
|
--v2-sidebar: var(--sidebar);
|
|
--v2-sidebar-deep: var(--sidebar-accent);
|
|
background: var(--background);
|
|
}
|
|
|
|
.console-v2.v2-passive-display .workspace {
|
|
grid-template-columns: clamp(236px, 17vw, 278px) minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display .main-panel {
|
|
grid-template-rows: 68px clamp(210px, 25dvh, 252px) minmax(0, 1fr);
|
|
gap: 12px;
|
|
padding-bottom: 12px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-sidebar {
|
|
padding: 26px 20px 18px;
|
|
background:
|
|
radial-gradient(circle at 20% 2%, color-mix(in oklch, var(--card) 96%, transparent), transparent 25%),
|
|
linear-gradient(160deg, var(--sidebar) 0%, var(--sidebar-accent) 64%, color-mix(in oklch, var(--sidebar-primary) 10%, var(--sidebar)) 145%);
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-sidebar-toggle,
|
|
.console-v2.v2-passive-display .v2-sidebar-footer button {
|
|
display: none !important;
|
|
}
|
|
|
|
.console-v2 .v2-sync-sidebar {
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
min-height: 0;
|
|
display: flex;
|
|
flex: 1;
|
|
flex-direction: column;
|
|
gap: 18px;
|
|
}
|
|
|
|
.console-v2 .v2-sync-sidebar-heading small,
|
|
.console-v2 .v2-unified-brand small,
|
|
.console-v2 .v2-device-sync-board header small,
|
|
.console-v2 .v2-sync-scope small {
|
|
color: #24847f;
|
|
font: 850 9px/1.2 "SFMono-Regular", Consolas, monospace;
|
|
letter-spacing: 0.14em;
|
|
}
|
|
|
|
.console-v2 .v2-sync-sidebar-heading h2 {
|
|
margin: 7px 0 8px;
|
|
color: #0b292a;
|
|
font-size: clamp(22px, 1.8vw, 28px);
|
|
font-weight: 950;
|
|
letter-spacing: -0.045em;
|
|
}
|
|
|
|
.console-v2 .v2-sync-sidebar-heading p {
|
|
margin: 0;
|
|
color: #688080;
|
|
font-size: 11px;
|
|
line-height: 1.75;
|
|
}
|
|
|
|
.console-v2 .v2-sync-scope {
|
|
padding: 15px;
|
|
background: linear-gradient(135deg, rgba(4, 89, 87, 0.92), rgba(17, 125, 117, 0.9));
|
|
border-radius: 16px;
|
|
box-shadow: 0 15px 32px rgba(10, 91, 88, 0.14);
|
|
}
|
|
|
|
.console-v2 .v2-sync-scope small {
|
|
color: #a9e9e1;
|
|
}
|
|
|
|
.console-v2 .v2-sync-scope p {
|
|
margin: 8px 0 0;
|
|
color: #f2fffd;
|
|
font-size: 11px;
|
|
font-weight: 650;
|
|
line-height: 1.8;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-sidebar-footer {
|
|
min-height: 45px;
|
|
margin-top: 16px;
|
|
padding: 10px 11px 0;
|
|
border-top: 1px solid rgba(27, 105, 101, 0.12);
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-module-switcher {
|
|
min-height: 68px;
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto auto;
|
|
align-items: center;
|
|
gap: 24px;
|
|
margin-inline: calc(0px - var(--v2-main-pad));
|
|
padding: 0 var(--v2-main-pad);
|
|
overflow: visible;
|
|
background: linear-gradient(90deg, #f9fbfa, #edf7f5 70%, #def1ed);
|
|
border-bottom: 1px solid rgba(14, 112, 107, 0.12);
|
|
box-shadow: 0 8px 22px rgba(33, 83, 81, 0.05);
|
|
}
|
|
|
|
.console-v2 .v2-unified-brand {
|
|
min-width: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
}
|
|
|
|
.console-v2 .v2-unified-brand-mark {
|
|
width: 40px;
|
|
height: 40px;
|
|
display: grid;
|
|
flex: 0 0 auto;
|
|
place-items: center;
|
|
color: white;
|
|
background: linear-gradient(135deg, #064b4b, #13978e);
|
|
border-radius: 13px;
|
|
box-shadow: 0 10px 22px rgba(10, 100, 96, 0.18);
|
|
}
|
|
|
|
.console-v2 .v2-unified-brand-mark svg {
|
|
width: 21px;
|
|
}
|
|
|
|
.console-v2 .v2-unified-brand h1 {
|
|
overflow: hidden;
|
|
margin: 4px 0 0;
|
|
color: #102d2e;
|
|
font-size: clamp(17px, 1.5vw, 23px);
|
|
font-weight: 950;
|
|
letter-spacing: -0.04em;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .v2-unified-capabilities {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
}
|
|
|
|
.console-v2 .v2-unified-capabilities span {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 6px 10px;
|
|
color: #2f6562;
|
|
background: rgba(255, 255, 255, 0.72);
|
|
border: 1px solid rgba(15, 121, 115, 0.1);
|
|
border-radius: 999px;
|
|
font-size: 10px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.console-v2 .v2-unified-capabilities i,
|
|
.console-v2 .v2-unified-live > i {
|
|
width: 6px;
|
|
height: 6px;
|
|
background: #19a886;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.console-v2 .v2-unified-live {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
color: #4b6e6c;
|
|
font: 800 9px/1 "SFMono-Regular", Consolas, monospace;
|
|
}
|
|
|
|
.console-v2 .v2-unified-live b {
|
|
min-width: 65px;
|
|
color: #173f3e;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-natural-panel {
|
|
grid-template-columns: minmax(310px, 0.78fr) minmax(430px, 1.22fr);
|
|
grid-template-rows: auto 1fr auto;
|
|
column-gap: 18px;
|
|
padding: 18px 22px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-operation-heading {
|
|
grid-column: 1;
|
|
grid-row: 1;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-operation-heading h2 {
|
|
font-size: clamp(21px, 1.8vw, 29px);
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-natural-grid {
|
|
grid-column: 1;
|
|
grid-row: 2;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
align-items: stretch;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-request-form {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-request-status {
|
|
min-height: 0;
|
|
padding: 10px 0 0;
|
|
background: transparent;
|
|
border: 0;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-request-status .matrix-stat {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-request-status h2 {
|
|
font-size: 15px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-mode-rail {
|
|
min-width: 0;
|
|
grid-column: 1;
|
|
grid-row: 3;
|
|
align-self: end;
|
|
padding: 8px 0 0;
|
|
background: transparent;
|
|
border: 0;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-mode-rail .mode-rail-heading,
|
|
.console-v2.v2-passive-display .v2-mode-rail .mode-rail-controls,
|
|
.console-v2.v2-passive-display .v2-mode-rail .save-mode-composer {
|
|
display: none !important;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-mode-rail .mode-chips {
|
|
gap: 6px;
|
|
padding: 0;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-mode-rail .mode-chips button {
|
|
min-height: 31px;
|
|
padding: 5px 10px;
|
|
cursor: default;
|
|
pointer-events: none;
|
|
opacity: 0.68;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-mode-rail .mode-chips button.v2-sync-active {
|
|
color: #fff;
|
|
background: linear-gradient(135deg, #0a6d68, #15988f);
|
|
border-color: transparent;
|
|
box-shadow: 0 8px 18px rgba(11, 119, 113, 0.2);
|
|
opacity: 1;
|
|
}
|
|
|
|
.console-v2 .v2-task-overview {
|
|
min-width: 0;
|
|
min-height: 0;
|
|
display: grid;
|
|
grid-column: 2;
|
|
grid-row: 1 / 4;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
grid-template-rows: auto minmax(0, 1fr);
|
|
gap: 13px;
|
|
padding: 16px 17px;
|
|
overflow: hidden;
|
|
background:
|
|
radial-gradient(circle at 88% 10%, rgba(57, 187, 169, 0.15), transparent 32%),
|
|
linear-gradient(145deg, #f5fbfa, #e9f5f2);
|
|
border: 1px solid rgba(15, 122, 115, 0.12);
|
|
border-radius: 17px;
|
|
}
|
|
|
|
.console-v2 .v2-task-copy {
|
|
min-width: 0;
|
|
display: grid;
|
|
gap: 5px;
|
|
}
|
|
|
|
.console-v2 .v2-task-copy span {
|
|
color: #31817c;
|
|
font-size: 9px;
|
|
font-weight: 900;
|
|
letter-spacing: 0.08em;
|
|
}
|
|
|
|
.console-v2 .v2-task-copy strong {
|
|
overflow: hidden;
|
|
color: #153435;
|
|
font-size: clamp(13px, 1.15vw, 17px);
|
|
line-height: 1.45;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .v2-task-state {
|
|
align-self: start;
|
|
padding: 6px 9px;
|
|
color: #6d8280;
|
|
background: white;
|
|
border: 1px solid rgba(72, 116, 113, 0.13);
|
|
border-radius: 999px;
|
|
font-size: 9px;
|
|
font-weight: 850;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .v2-task-state[data-state="running"] {
|
|
color: #076f69;
|
|
background: #dff6f2;
|
|
}
|
|
|
|
.console-v2 .v2-task-state[data-state="succeeded"] {
|
|
color: #1d7b5f;
|
|
background: #e1f7ec;
|
|
}
|
|
|
|
.console-v2 .v2-task-state[data-state="partial"] {
|
|
color: #9b6b18;
|
|
background: #fff5dd;
|
|
}
|
|
|
|
.console-v2 .v2-task-state[data-state="failed"] {
|
|
color: #af504a;
|
|
background: #fff0ee;
|
|
}
|
|
|
|
.console-v2 .v2-task-timeline {
|
|
min-width: 0;
|
|
display: grid;
|
|
grid-column: 1 / -1;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
align-self: end;
|
|
gap: 7px;
|
|
}
|
|
|
|
.console-v2 .v2-task-timeline span {
|
|
min-width: 0;
|
|
display: grid;
|
|
grid-template-columns: 25px minmax(0, 1fr);
|
|
align-items: center;
|
|
gap: 7px;
|
|
padding: 8px;
|
|
color: #557271;
|
|
background: rgba(255, 255, 255, 0.78);
|
|
border: 1px solid rgba(15, 115, 109, 0.09);
|
|
border-radius: 11px;
|
|
}
|
|
|
|
.console-v2 .v2-task-timeline i {
|
|
width: 25px;
|
|
height: 25px;
|
|
display: grid;
|
|
place-items: center;
|
|
color: #fff;
|
|
background: #80a9a5;
|
|
border-radius: 8px;
|
|
font: 800 8px "SFMono-Regular", Consolas, monospace;
|
|
}
|
|
|
|
.console-v2 .v2-task-timeline .done i,
|
|
.console-v2 .v2-task-timeline .active i {
|
|
background: var(--v2-accent);
|
|
}
|
|
|
|
.console-v2 .v2-task-timeline .active i {
|
|
box-shadow: 0 0 0 5px rgba(14, 128, 122, 0.1);
|
|
}
|
|
|
|
.console-v2 .v2-task-timeline b {
|
|
overflow: hidden;
|
|
font-size: 9px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-output-shell,
|
|
.console-v2.v2-passive-display .v2-output-content {
|
|
min-height: 0;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .joint-twin-shell.v2-output-page {
|
|
grid-template-columns: minmax(480px, 1.16fr) minmax(360px, 0.84fr);
|
|
grid-template-rows: minmax(0, 1fr);
|
|
gap: 12px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .joint-twin-shell > .twin-band {
|
|
min-width: 0;
|
|
min-height: 0;
|
|
grid-column: 1;
|
|
grid-row: 1;
|
|
}
|
|
|
|
.console-v2 .v2-unified-right-rail {
|
|
min-width: 0;
|
|
min-height: 0;
|
|
display: grid;
|
|
grid-column: 2;
|
|
grid-row: 1;
|
|
grid-template-rows: minmax(240px, 1.25fr) minmax(160px, 0.75fr);
|
|
gap: 10px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.console-v2 .v2-source-state-only,
|
|
.console-v2.v2-passive-display .state-band {
|
|
display: none !important;
|
|
}
|
|
|
|
.console-v2 .v2-device-sync-board {
|
|
min-width: 0;
|
|
min-height: 0;
|
|
display: grid;
|
|
grid-template-rows: auto minmax(0, 1fr);
|
|
padding: 10px;
|
|
overflow: hidden;
|
|
background: #fff;
|
|
border: 1px solid rgba(71, 112, 110, 0.12);
|
|
border-radius: 18px;
|
|
box-shadow: 0 13px 34px rgba(41, 74, 75, 0.07);
|
|
}
|
|
|
|
.console-v2 .v2-device-sync-board > header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
padding: 1px 2px 7px;
|
|
}
|
|
|
|
.console-v2 .v2-device-sync-board h3 {
|
|
margin: 3px 0 0;
|
|
color: #183435;
|
|
font-size: 15px;
|
|
}
|
|
|
|
.console-v2 .v2-device-sync-board > header > span {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
color: #5a7a78;
|
|
font-size: 8px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.console-v2 .v2-device-sync-board > header > span i {
|
|
width: 6px;
|
|
height: 6px;
|
|
background: #18a783;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.console-v2 .v2-device-sync-grid {
|
|
min-height: 0;
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
grid-template-rows: repeat(4, minmax(38px, 1fr));
|
|
gap: 5px 7px;
|
|
}
|
|
|
|
.console-v2 .v2-synced-device {
|
|
min-width: 0;
|
|
display: grid;
|
|
grid-template-columns: 27px minmax(0, 1fr) 6px;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 4px 7px;
|
|
background: linear-gradient(145deg, #f7faf9, #eff5f4);
|
|
border: 1px solid rgba(75, 119, 116, 0.08);
|
|
border-radius: 12px;
|
|
}
|
|
|
|
.console-v2 .v2-synced-device > span {
|
|
width: 27px;
|
|
height: 27px;
|
|
display: grid;
|
|
place-items: center;
|
|
color: #236f6b;
|
|
background: #dff2ef;
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.console-v2 .v2-synced-device > span svg {
|
|
width: 13px;
|
|
}
|
|
|
|
.console-v2 .v2-synced-device > div {
|
|
min-width: 0;
|
|
display: grid;
|
|
gap: 3px;
|
|
}
|
|
|
|
.console-v2 .v2-synced-device strong {
|
|
color: #1d3a3b;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2 .v2-synced-device small {
|
|
overflow: hidden;
|
|
color: #7e908f;
|
|
font-size: 8px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .v2-device-signal {
|
|
width: 6px;
|
|
height: 6px;
|
|
background: #becac9;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.console-v2 .v2-synced-device[data-ready="true"] .v2-device-signal {
|
|
background: #18a783;
|
|
}
|
|
|
|
.console-v2 .v2-extension-sync-mount {
|
|
min-width: 0;
|
|
}
|
|
|
|
@media (max-height: 760px) {
|
|
.console-v2.v2-passive-display .main-panel {
|
|
grid-template-rows: 60px 198px minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-module-switcher {
|
|
min-height: 60px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-natural-panel {
|
|
padding-block: 13px;
|
|
}
|
|
|
|
.console-v2 .v2-task-timeline span {
|
|
padding: 6px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1280px) {
|
|
.console-v2.v2-passive-display .workspace {
|
|
grid-template-columns: 220px minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-sidebar {
|
|
padding-inline: 15px;
|
|
}
|
|
|
|
.console-v2 .v2-unified-capabilities {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display .v2-natural-panel {
|
|
grid-template-columns: minmax(280px, 0.7fr) minmax(390px, 1.3fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display .joint-twin-shell.v2-output-page {
|
|
grid-template-columns: minmax(440px, 1.1fr) minmax(330px, 0.9fr);
|
|
}
|
|
}
|
|
|
|
@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;
|
|
}
|
|
}
|
|
|
|
/* Keep the digital twin and device state board equally weighted. */
|
|
.console-v2 .joint-twin-shell.v2-output-page {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.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 .window-summary-visual [data-state="closed"] i {
|
|
border-color: color-mix(in srgb, var(--v2-accent) 55%, #9db2af);
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell .window-summary-visual [data-state="open"] i {
|
|
border-color: #d29a42;
|
|
box-shadow: 0 0 0 2px rgba(210, 154, 66, 0.12);
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell .window-summary-visual [data-state="unknown"] i {
|
|
opacity: 0.48;
|
|
}
|
|
|
|
.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;
|
|
}
|
|
|
|
/* Compact vehicle state board ------------------------------------------- */
|
|
.console-v2 .joint-twin-shell > .cabin-band.cabin-compact-board {
|
|
grid-template-rows: 62px 80px minmax(0, 1fr);
|
|
background: color-mix(in srgb, var(--v2-accent-soft) 7%, white);
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .cabin-heading {
|
|
padding: 9px 12px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .cabin-title-copy p,
|
|
.console-v2 .cabin-compact-board .cabin-channel-legend {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .cabin-heading .section-kicker {
|
|
font-size: 7px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .cabin-heading h3 {
|
|
margin-top: 2px;
|
|
font-size: 16px;
|
|
}
|
|
|
|
.console-v2 .cabin-heading-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
margin-left: auto;
|
|
}
|
|
|
|
.console-v2 .cabin-live-status {
|
|
min-width: 0;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
color: var(--v2-accent-strong);
|
|
font-size: 12px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .cabin-live-status > b {
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.console-v2 .cabin-live-status > i {
|
|
width: 7px;
|
|
height: 7px;
|
|
flex: 0 0 7px;
|
|
background: var(--v2-accent);
|
|
border-radius: 50%;
|
|
box-shadow: 0 0 0 4px color-mix(in srgb, var(--v2-accent) 12%, transparent);
|
|
}
|
|
|
|
.console-v2 .cabin-live-status[data-state="connecting"] {
|
|
color: var(--v2-muted);
|
|
}
|
|
|
|
.console-v2 .cabin-live-status[data-state="connecting"] > i {
|
|
background: #d19836;
|
|
box-shadow: 0 0 0 4px rgba(209, 152, 54, 0.12);
|
|
}
|
|
|
|
.console-v2 .cabin-live-status[data-state="offline"] {
|
|
color: #a06455;
|
|
}
|
|
|
|
.console-v2 .cabin-live-status[data-state="offline"] > i {
|
|
background: #c67a68;
|
|
box-shadow: 0 0 0 4px rgba(198, 122, 104, 0.12);
|
|
}
|
|
|
|
.console-v2 .cabin-expand-button {
|
|
min-height: 34px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 0 11px;
|
|
color: var(--v2-accent-strong);
|
|
background: rgba(255, 255, 255, 0.82);
|
|
border: 1px solid color-mix(in srgb, var(--v2-accent) 27%, transparent);
|
|
border-radius: 9px;
|
|
font: 750 12px/1 Inter, "PingFang SC", "Microsoft YaHei", sans-serif;
|
|
cursor: pointer;
|
|
transition: 160ms ease;
|
|
}
|
|
|
|
.console-v2 .cabin-expand-button:hover {
|
|
background: color-mix(in srgb, var(--v2-accent-soft) 55%, white);
|
|
border-color: color-mix(in srgb, var(--v2-accent) 45%, transparent);
|
|
}
|
|
|
|
.console-v2 .cabin-expand-button svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.console-v2 .cabin-board-toolbar {
|
|
min-width: 0;
|
|
display: grid;
|
|
grid-template-rows: 40px 32px;
|
|
gap: 4px;
|
|
padding: 8px 10px 0;
|
|
background: rgba(255, 255, 255, 0.78);
|
|
border-bottom: 1px solid var(--v2-line);
|
|
}
|
|
|
|
.console-v2 .cabin-vehicle-summary {
|
|
min-width: 0;
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
margin: 0;
|
|
overflow: hidden;
|
|
background: color-mix(in srgb, var(--v2-accent-soft) 24%, #f3f6f5);
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.console-v2 .cabin-vehicle-summary > div {
|
|
min-width: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 8px;
|
|
padding: 0 10px;
|
|
border-left: 1px solid var(--v2-line);
|
|
}
|
|
|
|
.console-v2 .cabin-vehicle-summary > div:first-child {
|
|
border-left: 0;
|
|
}
|
|
|
|
.console-v2 .cabin-vehicle-summary dt {
|
|
overflow: hidden;
|
|
color: var(--v2-muted);
|
|
font-size: 10px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .cabin-vehicle-summary dd {
|
|
margin: 0;
|
|
overflow: hidden;
|
|
color: var(--v2-ink);
|
|
font-size: 13px;
|
|
font-weight: 850;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .cabin-vehicle-summary dd[data-state="healthy"] {
|
|
color: var(--v2-accent-strong);
|
|
}
|
|
|
|
.console-v2 .cabin-vehicle-summary dd[data-state="warning"] {
|
|
color: #a36a1b;
|
|
}
|
|
|
|
.console-v2 .cabin-carousel-controls {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 10px;
|
|
}
|
|
|
|
.console-v2 .cabin-carousel-count {
|
|
display: inline-flex;
|
|
align-items: baseline;
|
|
color: var(--v2-muted);
|
|
font-size: 11px;
|
|
font-style: normal;
|
|
}
|
|
|
|
.console-v2 .cabin-carousel-count b {
|
|
color: var(--v2-accent-strong);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.console-v2 .cabin-carousel-count i {
|
|
margin-left: 3px;
|
|
font-style: normal;
|
|
}
|
|
|
|
.console-v2 .cabin-carousel-controls > div {
|
|
display: inline-flex;
|
|
overflow: hidden;
|
|
background: rgba(255, 255, 255, 0.82);
|
|
border: 1px solid color-mix(in srgb, var(--v2-accent) 22%, var(--v2-line));
|
|
border-radius: 9px;
|
|
}
|
|
|
|
.console-v2 .cabin-carousel-controls button {
|
|
width: 36px;
|
|
min-height: 29px;
|
|
display: inline-grid;
|
|
place-items: center;
|
|
padding: 0;
|
|
color: var(--v2-accent-strong);
|
|
background: transparent;
|
|
border: 0;
|
|
border-left: 1px solid var(--v2-line);
|
|
cursor: pointer;
|
|
transition: 160ms ease;
|
|
}
|
|
|
|
.console-v2 .cabin-carousel-controls button:first-child {
|
|
border-left: 0;
|
|
}
|
|
|
|
.console-v2 .cabin-carousel-controls button:hover:not(:disabled) {
|
|
background: color-mix(in srgb, var(--v2-accent-soft) 72%, white);
|
|
}
|
|
|
|
.console-v2 .cabin-carousel-controls button:disabled {
|
|
color: color-mix(in srgb, var(--v2-muted) 48%, white);
|
|
cursor: default;
|
|
}
|
|
|
|
.console-v2 .cabin-carousel-controls button svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-grid {
|
|
--cabin-cards-per-view: 2;
|
|
--cabin-card-gap: 10px;
|
|
min-width: 0;
|
|
display: flex;
|
|
align-items: stretch;
|
|
gap: var(--cabin-card-gap);
|
|
margin-inline: 10px;
|
|
padding: 10px 0;
|
|
overflow-x: auto;
|
|
overflow-y: hidden;
|
|
scroll-behavior: smooth;
|
|
scroll-snap-type: x mandatory;
|
|
scrollbar-width: none;
|
|
overscroll-behavior-inline: contain;
|
|
touch-action: pan-x;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-grid::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-grid > .domain-panel {
|
|
min-width: 0;
|
|
flex: 0 0 calc((100% - (var(--cabin-cards-per-view) - 1) * var(--cabin-card-gap)) / var(--cabin-cards-per-view));
|
|
scroll-snap-align: start;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-panel {
|
|
height: 100%;
|
|
padding: 13px 14px 52px;
|
|
background: rgba(255, 255, 255, 0.96);
|
|
border-color: color-mix(in srgb, var(--v2-accent) 13%, #dfe8e6);
|
|
border-radius: 11px;
|
|
box-shadow: 0 3px 10px rgba(31, 66, 67, 0.035);
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .device-power-entry {
|
|
min-width: 0;
|
|
height: 36px;
|
|
position: absolute;
|
|
inset: auto 14px 10px;
|
|
z-index: 2;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
padding: 0 10px;
|
|
color: var(--v2-ink);
|
|
background: color-mix(in srgb, var(--v2-accent-soft) 34%, #f7f9f8);
|
|
border: 1px solid color-mix(in srgb, var(--v2-accent) 15%, var(--v2-line));
|
|
border-radius: 8px;
|
|
font-family: Inter, "PingFang SC", "Microsoft YaHei", sans-serif;
|
|
text-align: left;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board button.device-power-entry {
|
|
cursor: pointer;
|
|
transition: 160ms ease;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board button.device-power-entry:hover {
|
|
background: color-mix(in srgb, var(--v2-accent-soft) 65%, white);
|
|
border-color: color-mix(in srgb, var(--v2-accent) 36%, var(--v2-line));
|
|
box-shadow: 0 3px 10px color-mix(in srgb, var(--v2-accent) 9%, transparent);
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board button.device-power-entry:focus-visible {
|
|
outline: 2px solid color-mix(in srgb, var(--v2-accent) 48%, transparent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .device-power-copy {
|
|
min-width: 0;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .device-power-copy > svg {
|
|
width: 15px;
|
|
height: 15px;
|
|
flex: 0 0 15px;
|
|
color: var(--v2-accent);
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .device-power-copy > span {
|
|
min-width: 0;
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 7px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .device-power-copy small {
|
|
color: var(--v2-muted);
|
|
font-size: 10px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .device-power-copy b {
|
|
color: var(--v2-accent-strong);
|
|
font: 850 13px/1 "SFMono-Regular", Consolas, "Microsoft YaHei", monospace;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .device-power-action {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 2px;
|
|
color: var(--v2-accent-strong);
|
|
font-size: 10px;
|
|
font-weight: 750;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .device-power-action svg {
|
|
width: 13px;
|
|
height: 13px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .device-power-entry.unavailable {
|
|
color: var(--v2-muted);
|
|
background: #f4f6f5;
|
|
border-color: var(--v2-line);
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .device-power-entry.unavailable .device-power-copy > svg,
|
|
.console-v2 .cabin-compact-board .device-power-entry.unavailable .device-power-copy b {
|
|
color: color-mix(in srgb, var(--v2-muted) 78%, white);
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .device-power-unavailable {
|
|
overflow: hidden;
|
|
color: color-mix(in srgb, var(--v2-muted) 78%, white);
|
|
font-size: 9px;
|
|
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;
|
|
}
|
|
|
|
body.device-power-drawer-open {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.console-v2 .device-power-backdrop {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 1200;
|
|
background: rgba(21, 42, 45, 0.32);
|
|
backdrop-filter: blur(1.5px);
|
|
}
|
|
|
|
.console-v2 .device-power-drawer {
|
|
width: min(470px, calc(100vw - 24px));
|
|
position: fixed;
|
|
inset: 10px 10px 10px auto;
|
|
z-index: 1210;
|
|
display: grid;
|
|
grid-template-rows: auto minmax(0, 1fr);
|
|
overflow: hidden;
|
|
color: var(--v2-ink);
|
|
background: rgba(255, 255, 255, 0.985);
|
|
border: 1px solid color-mix(in srgb, var(--v2-accent) 17%, var(--v2-line));
|
|
border-radius: 16px;
|
|
box-shadow: -18px 0 48px rgba(24, 55, 58, 0.17);
|
|
}
|
|
|
|
.console-v2 .device-power-backdrop[hidden],
|
|
.console-v2 .device-power-drawer[hidden] {
|
|
display: none !important;
|
|
}
|
|
|
|
.console-v2 .device-power-drawer-heading {
|
|
min-width: 0;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
padding: 18px 18px 13px;
|
|
border-bottom: 1px solid var(--v2-line);
|
|
}
|
|
|
|
.console-v2 .device-power-drawer-heading .section-kicker {
|
|
color: var(--v2-accent-strong);
|
|
font-size: 8px;
|
|
}
|
|
|
|
.console-v2 .device-power-drawer-heading h2 {
|
|
margin: 4px 0 5px;
|
|
color: var(--v2-ink);
|
|
font-size: 20px;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.console-v2 .device-power-drawer-heading p {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
margin: 0;
|
|
color: var(--v2-muted);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2 .device-power-drawer-heading p i {
|
|
width: 6px;
|
|
height: 6px;
|
|
flex: 0 0 6px;
|
|
background: var(--v2-accent);
|
|
border-radius: 50%;
|
|
box-shadow: 0 0 0 4px color-mix(in srgb, var(--v2-accent) 10%, transparent);
|
|
}
|
|
|
|
.console-v2 .device-power-drawer-heading > button {
|
|
width: 32px;
|
|
height: 32px;
|
|
flex: 0 0 32px;
|
|
display: inline-grid;
|
|
place-items: center;
|
|
padding: 0;
|
|
color: var(--v2-muted);
|
|
background: #f5f8f7;
|
|
border: 1px solid var(--v2-line);
|
|
border-radius: 9px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.console-v2 .device-power-drawer-heading > button:hover {
|
|
color: var(--v2-accent-strong);
|
|
background: var(--v2-accent-soft);
|
|
}
|
|
|
|
.console-v2 .device-power-drawer-heading > button svg {
|
|
width: 15px;
|
|
height: 15px;
|
|
}
|
|
|
|
.console-v2 .device-power-drawer-body {
|
|
min-height: 0;
|
|
display: grid;
|
|
align-content: start;
|
|
gap: 16px;
|
|
padding: 16px 18px 18px;
|
|
overflow-y: auto;
|
|
scrollbar-width: thin;
|
|
scrollbar-color: color-mix(in srgb, var(--v2-accent) 28%, transparent) transparent;
|
|
}
|
|
|
|
.console-v2 .device-power-overview {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1.55fr) minmax(126px, 0.9fr);
|
|
gap: 10px;
|
|
}
|
|
|
|
.console-v2 .device-power-total {
|
|
min-height: 116px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
padding: 16px 18px;
|
|
color: #fff;
|
|
background: linear-gradient(135deg, var(--v2-accent), color-mix(in srgb, var(--v2-accent) 78%, #25aaa2));
|
|
border-radius: 13px;
|
|
box-shadow: 0 8px 20px color-mix(in srgb, var(--v2-accent) 17%, transparent);
|
|
}
|
|
|
|
.console-v2 .device-power-total small {
|
|
font-size: 11px;
|
|
font-weight: 650;
|
|
opacity: 0.86;
|
|
}
|
|
|
|
.console-v2 .device-power-total strong {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 6px;
|
|
margin-top: 6px;
|
|
font-family: "SFMono-Regular", Consolas, "Microsoft YaHei", monospace;
|
|
}
|
|
|
|
.console-v2 .device-power-total strong b {
|
|
font-size: 31px;
|
|
line-height: 1;
|
|
}
|
|
|
|
.console-v2 .device-power-total strong span {
|
|
font-size: 14px;
|
|
}
|
|
|
|
.console-v2 .device-power-total em {
|
|
margin-top: 10px;
|
|
font-size: 9px;
|
|
font-style: normal;
|
|
opacity: 0.72;
|
|
}
|
|
|
|
.console-v2 .device-power-energy-summary {
|
|
min-width: 0;
|
|
display: grid;
|
|
grid-template-rows: repeat(2, minmax(0, 1fr));
|
|
gap: 8px;
|
|
margin: 0;
|
|
}
|
|
|
|
.console-v2 .device-power-energy-summary > div {
|
|
min-width: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
padding: 10px 12px;
|
|
background: #f6f9f8;
|
|
border: 1px solid var(--v2-line);
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.console-v2 .device-power-energy-summary dt {
|
|
color: var(--v2-muted);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2 .device-power-energy-summary dd {
|
|
margin: 4px 0 0;
|
|
overflow: hidden;
|
|
color: var(--v2-ink);
|
|
font: 850 15px/1.15 "SFMono-Regular", Consolas, "Microsoft YaHei", monospace;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
@media (max-height: 820px) {
|
|
.console-v2 .v2-reasoning-trigger {
|
|
bottom: 7px;
|
|
}
|
|
}
|
|
|
|
.console-v2 .device-power-components,
|
|
.console-v2 .device-power-trend {
|
|
min-width: 0;
|
|
}
|
|
|
|
.console-v2 .device-power-components > header,
|
|
.console-v2 .device-power-trend > header {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.console-v2 .device-power-components h3,
|
|
.console-v2 .device-power-trend h3 {
|
|
margin: 2px 0 0;
|
|
color: var(--v2-ink);
|
|
font-size: 14px;
|
|
}
|
|
|
|
.console-v2 .device-power-components .section-kicker,
|
|
.console-v2 .device-power-trend .section-kicker {
|
|
color: var(--v2-accent-strong);
|
|
font-size: 7px;
|
|
}
|
|
|
|
.console-v2 #devicePowerComponentTotal {
|
|
color: var(--v2-muted);
|
|
font-size: 10px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .device-power-component-list {
|
|
overflow: hidden;
|
|
background: #fff;
|
|
border: 1px solid var(--v2-line);
|
|
border-radius: 11px;
|
|
}
|
|
|
|
.console-v2 .device-power-component-row {
|
|
min-width: 0;
|
|
min-height: 42px;
|
|
display: grid;
|
|
grid-template-columns: minmax(106px, 0.9fr) minmax(90px, 1.4fr) minmax(62px, auto);
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 7px 12px;
|
|
border-top: 1px solid var(--v2-line);
|
|
}
|
|
|
|
.console-v2 .device-power-component-row:first-child {
|
|
border-top: 0;
|
|
}
|
|
|
|
.console-v2 .device-power-component-row > span {
|
|
overflow: hidden;
|
|
color: var(--v2-ink);
|
|
font-size: 11px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .device-power-component-row > i {
|
|
height: 5px;
|
|
position: relative;
|
|
overflow: hidden;
|
|
background: #e7efed;
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.console-v2 .device-power-component-row > i b {
|
|
width: var(--power-share, 0%);
|
|
position: absolute;
|
|
inset: 0 auto 0 0;
|
|
background: var(--v2-accent);
|
|
border-radius: inherit;
|
|
transition: width 220ms ease;
|
|
}
|
|
|
|
.console-v2 .device-power-component-row > strong {
|
|
color: var(--v2-ink);
|
|
font: 850 11px/1 "SFMono-Regular", Consolas, "Microsoft YaHei", monospace;
|
|
text-align: right;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .device-power-components-empty {
|
|
min-height: 108px;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 13px;
|
|
padding: 18px;
|
|
background: color-mix(in srgb, var(--v2-accent-soft) 18%, #f7f9f8);
|
|
}
|
|
|
|
.console-v2 .device-power-components-empty > span {
|
|
width: 40px;
|
|
height: 40px;
|
|
flex: 0 0 40px;
|
|
display: grid;
|
|
place-items: center;
|
|
color: var(--v2-accent-strong);
|
|
background: color-mix(in srgb, var(--v2-accent-soft) 68%, white);
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.console-v2 .device-power-components-empty svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
|
|
.console-v2 .device-power-components-empty strong {
|
|
font-size: 13px;
|
|
}
|
|
|
|
.console-v2 .device-power-components-empty p {
|
|
margin: 5px 0 0;
|
|
color: var(--v2-muted);
|
|
font-size: 10px;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.console-v2 .device-power-trend-tabs {
|
|
display: inline-flex;
|
|
padding: 2px;
|
|
background: #f3f6f5;
|
|
border: 1px solid var(--v2-line);
|
|
border-radius: 9px;
|
|
}
|
|
|
|
.console-v2 .device-power-trend-tabs button {
|
|
min-height: 24px;
|
|
padding: 0 8px;
|
|
color: var(--v2-muted);
|
|
background: transparent;
|
|
border: 0;
|
|
border-radius: 6px;
|
|
font: 650 9px/1 Inter, "PingFang SC", "Microsoft YaHei", sans-serif;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.console-v2 .device-power-trend-tabs button.active {
|
|
color: var(--v2-accent-strong);
|
|
background: #fff;
|
|
box-shadow: 0 1px 5px rgba(34, 70, 72, 0.08);
|
|
}
|
|
|
|
.console-v2 .device-power-chart {
|
|
height: 190px;
|
|
position: relative;
|
|
padding: 8px 8px 24px;
|
|
overflow: hidden;
|
|
background: linear-gradient(180deg, color-mix(in srgb, var(--v2-accent-soft) 12%, white), #fff);
|
|
border: 1px solid var(--v2-line);
|
|
border-radius: 11px;
|
|
}
|
|
|
|
.console-v2 .device-power-chart svg {
|
|
width: 100%;
|
|
height: 154px;
|
|
display: block;
|
|
}
|
|
|
|
.console-v2 .device-power-chart-grid line {
|
|
stroke: #e5ecea;
|
|
stroke-width: 1;
|
|
}
|
|
|
|
.console-v2 .device-power-chart-area {
|
|
fill: color-mix(in srgb, var(--v2-accent) 12%, transparent);
|
|
}
|
|
|
|
.console-v2 .device-power-chart-line {
|
|
fill: none;
|
|
stroke: var(--v2-accent);
|
|
stroke-width: 3;
|
|
stroke-linecap: round;
|
|
stroke-linejoin: round;
|
|
}
|
|
|
|
.console-v2 .device-power-chart-y {
|
|
position: absolute;
|
|
left: 10px;
|
|
color: var(--v2-muted);
|
|
font-size: 8px;
|
|
}
|
|
|
|
.console-v2 .device-power-chart-y.top {
|
|
top: 15px;
|
|
}
|
|
|
|
.console-v2 .device-power-chart-y.bottom {
|
|
bottom: 25px;
|
|
}
|
|
|
|
.console-v2 .device-power-chart-empty {
|
|
position: absolute;
|
|
inset: 36px 18px 37px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 7px;
|
|
color: var(--v2-muted);
|
|
background: rgba(255, 255, 255, 0.74);
|
|
border: 1px dashed color-mix(in srgb, var(--v2-accent) 20%, var(--v2-line));
|
|
border-radius: 9px;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2 .device-power-chart-empty[hidden] {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2 .device-power-chart-empty svg {
|
|
width: 21px;
|
|
height: 21px;
|
|
color: var(--v2-accent);
|
|
}
|
|
|
|
.console-v2 .device-power-chart-axis {
|
|
position: absolute;
|
|
inset: auto 12px 7px 36px;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
color: var(--v2-muted);
|
|
font-size: 8px;
|
|
}
|
|
|
|
.console-v2 .device-power-note {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 7px;
|
|
padding-top: 2px;
|
|
color: var(--v2-muted);
|
|
font-size: 9px;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.console-v2 .device-power-note svg {
|
|
width: 13px;
|
|
height: 13px;
|
|
flex: 0 0 13px;
|
|
margin-top: 1px;
|
|
color: var(--v2-accent);
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.console-v2 .device-power-drawer {
|
|
width: calc(100vw - 16px);
|
|
inset: 8px;
|
|
}
|
|
|
|
.console-v2 .device-power-overview {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2 .device-power-energy-summary {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
grid-template-rows: none;
|
|
}
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-panel::before {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-panel header {
|
|
grid-template-columns: 34px minmax(0, 1fr) auto;
|
|
gap: 9px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-icon,
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .seat-identity > svg {
|
|
width: 34px;
|
|
height: 34px;
|
|
padding: 8px;
|
|
border: 0;
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-panel header strong,
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .seat-identity strong {
|
|
font-size: 15px;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-panel header small,
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .seat-identity span {
|
|
color: var(--v2-muted);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .device-state,
|
|
.console-v2 .cabin-compact-board .seat-channel-badge {
|
|
padding: 5px 8px;
|
|
color: var(--v2-accent-strong);
|
|
background: color-mix(in srgb, var(--v2-accent-soft) 67%, white);
|
|
border-radius: 12px;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-capability-line {
|
|
min-height: 32px;
|
|
display: flex;
|
|
align-items: center;
|
|
margin: 4px 0 0;
|
|
padding-bottom: 4px;
|
|
color: var(--v2-muted);
|
|
border-bottom: 1px solid var(--v2-line);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-capability-line span {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-readouts {
|
|
gap: 0 18px;
|
|
margin-top: 3px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-readouts > div,
|
|
.console-v2 .cabin-compact-board .roof-panel .domain-readouts > div,
|
|
.console-v2 .cabin-compact-board .ambient-panel .domain-readouts > div,
|
|
.console-v2 .cabin-compact-board .window-panel .domain-readouts > div,
|
|
.console-v2 .cabin-compact-board .lighting-panel .domain-readouts > div {
|
|
min-height: 40px;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
padding: 5px 0;
|
|
background: transparent;
|
|
border: 0;
|
|
border-bottom: 1px solid var(--v2-line);
|
|
border-radius: 0;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-readouts dt {
|
|
color: var(--v2-muted);
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-readouts dd,
|
|
.console-v2 .cabin-compact-board .roof-panel .domain-readouts dd,
|
|
.console-v2 .cabin-compact-board .ambient-panel .domain-readouts dd,
|
|
.console-v2 .cabin-compact-board .window-panel .domain-readouts dd,
|
|
.console-v2 .cabin-compact-board .lighting-panel .domain-readouts dd {
|
|
margin-left: auto;
|
|
color: var(--v2-ink);
|
|
font-family: Inter, "PingFang SC", "Microsoft YaHei", sans-serif;
|
|
font-size: 13px;
|
|
font-weight: 800;
|
|
text-align: right;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .climate-display {
|
|
min-height: 68px;
|
|
margin-top: 3px;
|
|
border-bottom: 1px solid var(--v2-line);
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .climate-panel .zone-temperature {
|
|
min-height: 68px;
|
|
padding: 9px 10px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .climate-panel .zone-temperature:first-child {
|
|
border-right: 1px solid var(--v2-line);
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .climate-panel .zone-temperature span {
|
|
color: var(--v2-muted);
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .climate-panel .zone-temperature strong {
|
|
color: color-mix(in srgb, var(--v2-accent) 72%, #2a86b7);
|
|
font-size: 18px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .climate-panel .zone-temperature small,
|
|
.console-v2 .cabin-compact-board .climate-panel .zone-temperature small b {
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-summary-visual {
|
|
height: 38px;
|
|
margin-top: 5px;
|
|
padding: 4px 0;
|
|
background: transparent;
|
|
border: 0;
|
|
border-bottom: 1px solid var(--v2-line);
|
|
border-radius: 0;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .joint-seat-panel {
|
|
grid-template-rows: 34px 34px 62px minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .dynamic-mode-state {
|
|
min-height: 34px;
|
|
margin: 2px 0 0;
|
|
padding: 5px 0;
|
|
color: var(--v2-muted);
|
|
background: transparent;
|
|
border: 0;
|
|
border-bottom: 1px solid var(--v2-line);
|
|
border-radius: 0;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .dynamic-mode-state b {
|
|
font-family: Inter, "PingFang SC", "Microsoft YaHei", sans-serif;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .thermal-states {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 0;
|
|
margin: 0;
|
|
border-bottom: 1px solid var(--v2-line);
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .thermal-states > span {
|
|
min-height: 31px;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
grid-template-rows: auto auto;
|
|
justify-items: center;
|
|
gap: 4px;
|
|
padding: 5px;
|
|
color: var(--v2-muted);
|
|
background: transparent;
|
|
border: 0;
|
|
border-left: 1px solid var(--v2-line);
|
|
font-size: 11px;
|
|
text-align: center;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .thermal-states > span:first-child {
|
|
border-left: 0;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .thermal-states svg {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .thermal-states b {
|
|
font-family: Inter, "PingFang SC", "Microsoft YaHei", sans-serif;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .motion-state-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 0 14px;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .motion-axis {
|
|
min-height: 31px;
|
|
padding: 3px 0;
|
|
color: var(--v2-muted);
|
|
background: transparent;
|
|
border: 0;
|
|
border-bottom: 1px solid var(--v2-line);
|
|
border-radius: 0;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .motion-axis b {
|
|
font-family: Inter, "PingFang SC", "Microsoft YaHei", sans-serif;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.console-v2 .cabin-telemetry-source[hidden] {
|
|
display: none !important;
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell.cabin-expanded {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell.cabin-expanded > .twin-band {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell.cabin-expanded > .cabin-band {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
@media (max-height: 820px) {
|
|
.console-v2 .joint-twin-shell > .twin-band {
|
|
grid-template-rows: 54px minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell > .cabin-band.cabin-compact-board {
|
|
grid-template-rows: 54px 74px minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell .twin-heading,
|
|
.console-v2 .cabin-compact-board .cabin-heading {
|
|
padding: 7px 10px;
|
|
}
|
|
|
|
.console-v2 .joint-twin-shell .twin-heading h3,
|
|
.console-v2 .cabin-compact-board .cabin-heading h3 {
|
|
font-size: 15px;
|
|
}
|
|
|
|
.console-v2 .cabin-board-toolbar {
|
|
grid-template-rows: 36px 29px;
|
|
padding: 7px 8px 0;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-grid {
|
|
--cabin-card-gap: 8px;
|
|
margin-inline: 8px;
|
|
padding: 8px 0;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-panel {
|
|
padding: 10px 12px 46px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .device-power-entry {
|
|
height: 32px;
|
|
inset: auto 12px 8px;
|
|
padding: 0 8px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .device-power-copy small,
|
|
.console-v2 .cabin-compact-board .device-power-action {
|
|
font-size: 9px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .device-power-copy b {
|
|
font-size: 12px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-capability-line {
|
|
min-height: 26px;
|
|
margin-top: 2px;
|
|
padding-bottom: 2px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-summary-visual {
|
|
height: 30px;
|
|
margin-top: 2px;
|
|
padding: 2px 0;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-readouts {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-readouts > div,
|
|
.console-v2 .cabin-compact-board .roof-panel .domain-readouts > div,
|
|
.console-v2 .cabin-compact-board .ambient-panel .domain-readouts > div,
|
|
.console-v2 .cabin-compact-board .window-panel .domain-readouts > div,
|
|
.console-v2 .cabin-compact-board .lighting-panel .domain-readouts > div {
|
|
min-height: 34px;
|
|
padding: 3px 0;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .climate-display,
|
|
.console-v2 .cabin-compact-board .climate-panel .zone-temperature {
|
|
min-height: 58px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .climate-panel .zone-temperature {
|
|
padding-block: 6px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-panel header strong,
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .seat-identity strong {
|
|
font-size: 14px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-panel header small,
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .seat-identity span {
|
|
display: block;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-capability-line,
|
|
.console-v2 .cabin-compact-board .domain-readouts dt,
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .thermal-states > span,
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .motion-axis {
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2 .cabin-compact-board .domain-readouts dd,
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .thermal-states b,
|
|
.console-v2 .cabin-compact-board .joint-seat-panel .motion-axis b {
|
|
font-size: 11px;
|
|
}
|
|
}
|
|
|
|
/* Final cascade for the interactive sync workspace. */
|
|
.console-v2.v2-passive-display.v2-interactive-sync .workspace {
|
|
grid-template-columns: clamp(250px, 19vw, 292px) minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel {
|
|
grid-template-rows: 56px clamp(224px, 29dvh, 254px) minmax(0, 1fr);
|
|
gap: 10px;
|
|
padding-bottom: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-module-switcher {
|
|
min-height: 56px;
|
|
grid-template-columns: minmax(0, 1fr) auto auto;
|
|
gap: 18px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-natural-panel {
|
|
grid-template-columns: minmax(390px, 0.95fr) minmax(390px, 1.05fr);
|
|
grid-template-rows: auto minmax(76px, 1fr) auto;
|
|
column-gap: 14px;
|
|
row-gap: 7px;
|
|
padding: 13px 16px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-natural-grid {
|
|
display: grid;
|
|
grid-column: 1;
|
|
grid-row: 2;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-request-form {
|
|
display: grid;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-request-status {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail {
|
|
grid-column: 1;
|
|
grid-row: 3;
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr);
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 0;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-rail-heading {
|
|
display: flex !important;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-chips button {
|
|
min-height: 29px;
|
|
padding: 4px 10px;
|
|
cursor: pointer;
|
|
pointer-events: auto;
|
|
opacity: 1;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-task-overview {
|
|
grid-column: 2;
|
|
grid-row: 1 / 4;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell.v2-output-page {
|
|
grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
|
|
grid-template-rows: minmax(0, 1fr);
|
|
gap: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell > .twin-band {
|
|
width: 100%;
|
|
max-width: 980px;
|
|
grid-column: 1;
|
|
grid-row: 1;
|
|
justify-self: center;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-sync-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
grid-template-rows: none;
|
|
grid-auto-rows: minmax(76px, auto);
|
|
overflow: auto;
|
|
}
|
|
|
|
@media (max-width: 1366px) {
|
|
.console-v2.v2-passive-display.v2-interactive-sync .workspace {
|
|
grid-template-columns: 250px minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-natural-panel {
|
|
grid-template-columns: minmax(360px, 0.9fr) minmax(370px, 1.1fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell.v2-output-page {
|
|
grid-template-columns: minmax(0, 1fr) minmax(310px, 0.72fr);
|
|
}
|
|
}
|
|
|
|
@media (max-height: 760px) {
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel {
|
|
grid-template-rows: 52px 216px minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-module-switcher {
|
|
min-height: 52px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-natural-panel {
|
|
padding-block: 10px;
|
|
}
|
|
}
|
|
|
|
/* Symmetric three-column twin workspace --------------------------------- */
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail {
|
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
gap: 8px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-chips {
|
|
min-width: 0;
|
|
grid-column: 2;
|
|
display: flex;
|
|
padding: 1px;
|
|
overflow-x: auto;
|
|
scroll-behavior: smooth;
|
|
overscroll-behavior-x: contain;
|
|
touch-action: pan-x;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-chips button {
|
|
min-width: 94px;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-rail-controls {
|
|
display: flex !important;
|
|
grid-column: 3;
|
|
grid-row: 1;
|
|
align-items: center;
|
|
gap: 5px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-rail-pager {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, 26px);
|
|
padding: 2px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-rail-page {
|
|
width: 26px;
|
|
height: 26px;
|
|
display: grid;
|
|
place-items: center;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-gallery-toggle {
|
|
min-height: 30px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
padding: 4px 8px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell.v2-output-page,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] {
|
|
grid-template-columns: minmax(198px, 0.52fr) minmax(420px, 1.25fr) minmax(198px, 0.52fr);
|
|
grid-template-rows: minmax(0, 1fr);
|
|
gap: 8px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="devices"] {
|
|
grid-template-columns: minmax(210px, 0.58fr) minmax(460px, 1.42fr) 42px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="extensions"] {
|
|
grid-template-columns: 42px minmax(460px, 1.42fr) minmax(210px, 0.58fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] {
|
|
grid-template-columns: 42px minmax(520px, 1fr) 42px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-unified-right-rail,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] .v2-unified-right-rail {
|
|
display: contents !important;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell > .twin-band {
|
|
width: 100%;
|
|
max-width: none;
|
|
grid-column: 2;
|
|
grid-row: 1;
|
|
justify-self: stretch;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel {
|
|
grid-column: 1;
|
|
grid-row: 1;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel {
|
|
grid-column: 3;
|
|
grid-row: 1;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-status-panel {
|
|
width: 100%;
|
|
height: 100%;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-sync-board > header {
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-sync-board > header > span {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-sync-board > header > button,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-extension-sync-heading > button {
|
|
width: auto;
|
|
min-width: 52px;
|
|
height: 28px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 4px;
|
|
padding: 0 7px;
|
|
font-size: 8px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-sync-grid {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
grid-template-rows: none;
|
|
grid-auto-rows: minmax(82px, auto);
|
|
gap: 6px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device dl {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-extension-sync-heading {
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-extension-sync-heading > span {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-status-panel.is-collapsed {
|
|
display: grid !important;
|
|
grid-template-rows: minmax(0, 1fr) !important;
|
|
place-items: stretch;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
background: linear-gradient(180deg, rgba(229, 245, 242, 0.96), rgba(203, 233, 228, 0.96));
|
|
border: 1px solid rgba(15, 116, 109, 0.15);
|
|
border-radius: 14px;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed > header {
|
|
width: 100%;
|
|
height: 100%;
|
|
display: grid;
|
|
padding: 0;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed > header > div,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed > header > span,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed > .v2-device-sync-grid {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed > header > button,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-heading > button {
|
|
width: 100%;
|
|
min-width: 0;
|
|
height: 100%;
|
|
min-height: 120px;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
padding: 10px 0;
|
|
color: #0b756f;
|
|
background: transparent;
|
|
border-radius: 13px;
|
|
writing-mode: vertical-rl;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed > header > button:hover,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-heading > button:hover {
|
|
color: #fff;
|
|
background: #0b807a;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed > header > button svg,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-heading > button svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-mount {
|
|
height: 100%;
|
|
display: grid;
|
|
grid-template-rows: minmax(0, 1fr);
|
|
padding: 0;
|
|
overflow: hidden;
|
|
background: linear-gradient(180deg, #143b3c, #0e2d2f);
|
|
border: 0;
|
|
border-radius: 13px;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-heading {
|
|
height: 100%;
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-heading > div,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-heading > span,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-gateway,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-device-list,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-linkage {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2 .v2-panel-visibility-controls button {
|
|
min-height: 30px;
|
|
}
|
|
|
|
.console-v2 .v2-panel-visibility-controls button b {
|
|
padding-left: 5px;
|
|
color: #74918e;
|
|
border-left: 1px solid rgba(46, 105, 101, 0.12);
|
|
font-size: 7px;
|
|
}
|
|
|
|
.console-v2 .v2-panel-visibility-controls button:not(.active) b {
|
|
color: #a07942;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-panel-visibility-controls {
|
|
display: none !important;
|
|
}
|
|
|
|
/* Boot-time fallbacks; WebGL projection replaces these values every frame. */
|
|
.console-v2 .v2-twin-hotspots [data-twin-device="windows"] { top: 50%; left: 42%; --v2-hotspot-label-x: -115px; --v2-hotspot-label-y: 0px; --v2-hotspot-line-length: 115px; --v2-hotspot-line-angle: 180deg; }
|
|
.console-v2 .v2-twin-hotspots [data-twin-device="shade"] { top: 25%; left: 53%; --v2-hotspot-label-x: 0px; --v2-hotspot-label-y: -65px; --v2-hotspot-line-length: 65px; --v2-hotspot-line-angle: -90deg; }
|
|
.console-v2 .v2-twin-hotspots [data-twin-device="driver"] { top: 45%; left: 62%; --v2-hotspot-label-x: 110px; --v2-hotspot-label-y: -70px; --v2-hotspot-line-length: 130px; --v2-hotspot-line-angle: -32deg; }
|
|
.console-v2 .v2-twin-hotspots [data-twin-device="passenger"] { top: 57%; left: 52%; --v2-hotspot-label-x: -105px; --v2-hotspot-label-y: 55px; --v2-hotspot-line-length: 119px; --v2-hotspot-line-angle: 152deg; }
|
|
.console-v2 .v2-twin-hotspots [data-twin-device="reading"] { top: 36%; left: 55%; --v2-hotspot-label-x: -120px; --v2-hotspot-label-y: -70px; --v2-hotspot-line-length: 139px; --v2-hotspot-line-angle: -150deg; }
|
|
.console-v2 .v2-twin-hotspots [data-twin-device="ambient"] { top: 62%; left: 66%; --v2-hotspot-label-x: -30px; --v2-hotspot-label-y: 85px; --v2-hotspot-line-length: 90px; --v2-hotspot-line-angle: 109deg; }
|
|
.console-v2 .v2-twin-hotspots [data-twin-device="headlight"] { top: 66%; left: 86%; --v2-hotspot-label-x: 15px; --v2-hotspot-label-y: 70px; --v2-hotspot-line-length: 72px; --v2-hotspot-line-angle: 78deg; }
|
|
.console-v2 .v2-twin-hotspots [data-twin-device="climate"] { top: 48%; left: 73%; --v2-hotspot-label-x: 94px; --v2-hotspot-label-y: 5px; --v2-hotspot-line-length: 94px; --v2-hotspot-line-angle: 3deg; }
|
|
|
|
@media (max-width: 1200px) {
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell.v2-output-page {
|
|
grid-template-columns: minmax(180px, 0.48fr) minmax(390px, 1.3fr) minmax(180px, 0.48fr);
|
|
}
|
|
|
|
.console-v2 .v2-panel-visibility-controls button b {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
/* Cohesive light cockpit visual refresh --------------------------------- */
|
|
.console-v2.v2-passive-display.v2-interactive-sync {
|
|
--v2-canvas: var(--background);
|
|
--v2-line: var(--border);
|
|
--v2-shadow: 0 16px 40px oklch(0.145 0.008 326 / 9%);
|
|
background:
|
|
radial-gradient(circle at 76% -8%, color-mix(in oklch, var(--primary) 14%, transparent), transparent 34%),
|
|
linear-gradient(145deg, var(--background) 0%, var(--secondary) 56%, var(--muted) 100%);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .workspace {
|
|
background:
|
|
radial-gradient(circle at 73% -10%, color-mix(in oklch, var(--primary) 12%, transparent), transparent 34%),
|
|
linear-gradient(145deg, var(--background) 0%, var(--secondary) 58%, var(--muted) 100%);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .command-panel.v2-sidebar {
|
|
background:
|
|
radial-gradient(circle at 12% 2%, color-mix(in oklch, var(--card) 92%, transparent), transparent 24%),
|
|
linear-gradient(158deg, var(--sidebar) 0%, var(--sidebar-accent) 58%, color-mix(in oklch, var(--sidebar-primary) 9%, var(--sidebar)) 132%);
|
|
border-right-color: var(--sidebar-border);
|
|
box-shadow: inset -1px 0 0 color-mix(in oklch, var(--card) 60%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-module-switcher {
|
|
background: color-mix(in oklch, var(--card) 90%, transparent);
|
|
border-bottom: 1px solid var(--border);
|
|
box-shadow: 0 5px 20px oklch(0.145 0.008 326 / 5%);
|
|
backdrop-filter: blur(14px);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-natural-panel {
|
|
background:
|
|
radial-gradient(circle at 88% 12%, color-mix(in oklch, var(--primary) 14%, transparent), transparent 28%),
|
|
linear-gradient(145deg, color-mix(in oklch, var(--card) 98%, transparent), color-mix(in oklch, var(--secondary) 96%, transparent));
|
|
border: 1px solid var(--border);
|
|
border-radius: 19px;
|
|
box-shadow: 0 12px 34px oklch(0.145 0.008 326 / 8%);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-task-overview {
|
|
background: linear-gradient(145deg, color-mix(in oklch, var(--card) 96%, transparent), color-mix(in oklch, var(--primary) 8%, var(--muted)));
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-log {
|
|
background: color-mix(in oklch, var(--card) 80%, transparent);
|
|
border-color: var(--border);
|
|
box-shadow: 0 12px 28px oklch(0.145 0.008 326 / 6%);
|
|
backdrop-filter: blur(10px);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-chips button {
|
|
color: var(--secondary-foreground);
|
|
background: color-mix(in oklch, var(--secondary) 94%, transparent);
|
|
border: 1px solid var(--border);
|
|
box-shadow: inset 0 1px 0 color-mix(in oklch, var(--card) 84%, transparent);
|
|
transition: color 160ms ease, background 160ms ease, border-color 160ms ease, transform 160ms ease;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-chips button:hover,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-chips button:focus-visible {
|
|
color: var(--primary);
|
|
background: color-mix(in oklch, var(--primary) 9%, var(--background));
|
|
border-color: color-mix(in oklch, var(--primary) 24%, var(--border));
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-chips button.active,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-chips button[aria-pressed="true"] {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-color: transparent;
|
|
box-shadow: 0 7px 16px color-mix(in oklch, var(--primary) 20%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell.v2-output-page,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] {
|
|
gap: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell > .twin-band,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-sync-mount {
|
|
border: 1px solid var(--border);
|
|
border-radius: 18px;
|
|
box-shadow:
|
|
0 14px 32px oklch(0.145 0.008 326 / 8%),
|
|
inset 0 1px 0 color-mix(in oklch, var(--card) 78%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell > .twin-band {
|
|
overflow: hidden;
|
|
background: linear-gradient(180deg, var(--card), var(--secondary));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-heading {
|
|
background:
|
|
linear-gradient(90deg, color-mix(in oklch, var(--secondary) 98%, transparent), color-mix(in oklch, var(--card) 98%, transparent));
|
|
border-bottom-color: var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-stage {
|
|
background:
|
|
radial-gradient(ellipse at 53% 57%, color-mix(in oklch, var(--primary) 12%, transparent), transparent 41%),
|
|
linear-gradient(165deg, var(--background) 0%, var(--muted) 100%);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel {
|
|
background: linear-gradient(180deg, color-mix(in oklch, var(--card) 98%, transparent), color-mix(in oklch, var(--secondary) 97%, transparent));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-sync-board > header,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-extension-sync-heading {
|
|
min-height: 39px;
|
|
padding: 2px 2px 8px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-sync-board > header > button,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-extension-sync-heading > button {
|
|
color: var(--muted-foreground);
|
|
background: color-mix(in oklch, var(--card) 78%, transparent);
|
|
border: 1px solid var(--border);
|
|
box-shadow: 0 3px 9px oklch(0.145 0.008 326 / 6%);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-sync-board > header > button:hover,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-extension-sync-heading > button:hover {
|
|
color: var(--primary);
|
|
background: color-mix(in oklch, var(--primary) 9%, var(--background));
|
|
border-color: color-mix(in oklch, var(--primary) 24%, var(--border));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device {
|
|
background: color-mix(in oklch, var(--card) 76%, transparent);
|
|
border: 1px solid var(--border);
|
|
box-shadow: 0 4px 12px oklch(0.145 0.008 326 / 5%);
|
|
transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device:hover,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device.active {
|
|
background: linear-gradient(145deg, color-mix(in oklch, var(--primary) 8%, var(--background)), var(--card));
|
|
border-color: color-mix(in oklch, var(--primary) 24%, var(--border));
|
|
box-shadow: 0 8px 19px color-mix(in oklch, var(--primary) 9%, transparent);
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
/* The extension area now shares the same light surface hierarchy. */
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-sync-mount {
|
|
background:
|
|
radial-gradient(circle at 84% 8%, color-mix(in oklch, var(--primary) 13%, transparent), transparent 30%),
|
|
linear-gradient(180deg, color-mix(in oklch, var(--card) 99%, transparent), color-mix(in oklch, var(--secondary) 98%, transparent));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-sync-heading small {
|
|
color: var(--primary);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-sync-heading h3 {
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-gateway {
|
|
background: color-mix(in oklch, var(--card) 74%, transparent);
|
|
border: 1px solid var(--border);
|
|
box-shadow: 0 5px 14px oklch(0.145 0.008 326 / 5%);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-gateway > span {
|
|
color: var(--primary);
|
|
background: linear-gradient(145deg, color-mix(in oklch, var(--primary) 8%, var(--background)), var(--accent));
|
|
box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--primary) 8%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-gateway strong {
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-gateway small {
|
|
color: var(--muted-foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-gateway > b {
|
|
color: var(--primary);
|
|
background: var(--accent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-synced-device {
|
|
background: color-mix(in oklch, var(--card) 78%, transparent);
|
|
border: 1px solid var(--border);
|
|
box-shadow: 0 5px 14px oklch(0.145 0.008 326 / 5%);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-synced-device header > span {
|
|
color: var(--primary);
|
|
background: var(--accent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-synced-device header strong {
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-synced-device header small,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-synced-device header b {
|
|
color: var(--muted-foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-synced-device > div span {
|
|
color: var(--accent-foreground);
|
|
background: var(--accent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-empty {
|
|
min-height: 92px;
|
|
color: var(--muted-foreground);
|
|
background: color-mix(in oklch, var(--card) 52%, transparent);
|
|
border: 1px dashed var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-empty > svg {
|
|
color: var(--primary);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-empty strong {
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-empty span {
|
|
color: var(--muted-foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-linkage {
|
|
border-top-color: var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-linkage > svg {
|
|
color: var(--primary);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-linkage small {
|
|
color: var(--muted-foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-linkage strong {
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-linkage > span {
|
|
color: var(--primary);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-mount {
|
|
background: linear-gradient(180deg, color-mix(in oklch, var(--secondary) 98%, transparent), color-mix(in oklch, var(--accent) 98%, transparent));
|
|
border: 0;
|
|
border-radius: 13px;
|
|
box-shadow: none;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-chips button,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device {
|
|
transition: none;
|
|
}
|
|
}
|
|
|
|
/* Actionable vehicle device status cards -------------------------------- */
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-sync-grid {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-content: start;
|
|
padding-right: 3px;
|
|
overflow-x: hidden;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device {
|
|
flex: 0 0 auto;
|
|
min-height: 0;
|
|
display: block;
|
|
padding: 8px;
|
|
text-align: left;
|
|
cursor: default;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device:hover,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device.active {
|
|
transform: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device[data-control-open="true"] {
|
|
background: linear-gradient(155deg, color-mix(in oklch, var(--primary) 8%, var(--background)), var(--card));
|
|
border-color: color-mix(in oklch, var(--primary) 26%, var(--border));
|
|
box-shadow: 0 9px 22px color-mix(in oklch, var(--primary) 10%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device[data-has-draft="true"] {
|
|
border-color: color-mix(in oklch, var(--chart-1) 34%, var(--border));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-header {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 5px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-focus {
|
|
min-width: 0;
|
|
display: grid;
|
|
grid-template-columns: 28px minmax(0, 1fr) 6px;
|
|
align-items: center;
|
|
gap: 7px;
|
|
padding: 0;
|
|
color: inherit;
|
|
background: transparent;
|
|
border: 0;
|
|
text-align: left;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-focus > span:first-child {
|
|
width: 28px;
|
|
height: 28px;
|
|
display: grid;
|
|
place-items: center;
|
|
color: var(--primary);
|
|
background: var(--accent);
|
|
border-radius: 9px;
|
|
transition: color 150ms ease, background 150ms ease;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-focus:hover > span:first-child,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-focus:focus-visible > span:first-child {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-focus svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-focus > span:nth-child(2) {
|
|
min-width: 0;
|
|
display: grid;
|
|
gap: 2px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-focus strong {
|
|
color: var(--foreground);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-focus small {
|
|
overflow: hidden;
|
|
color: var(--muted-foreground);
|
|
font-size: 7px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device[data-has-draft="true"] .v2-device-card-focus small {
|
|
color: color-mix(in oklch, var(--chart-1) 70%, var(--foreground));
|
|
font-weight: 800;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-focus .v2-device-signal {
|
|
width: 6px;
|
|
height: 6px;
|
|
background: var(--muted-foreground);
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device[data-ready="true"] .v2-device-card-focus .v2-device-signal {
|
|
background: var(--primary);
|
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--primary) 10%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-adjust-toggle {
|
|
min-width: 43px;
|
|
height: 25px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 3px;
|
|
padding: 0 6px;
|
|
color: var(--muted-foreground);
|
|
background: var(--secondary);
|
|
border: 1px solid var(--border);
|
|
border-radius: 8px;
|
|
font-size: 7px;
|
|
font-weight: 850;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-adjust-toggle:hover,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-adjust-toggle[aria-expanded="true"] {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-color: var(--primary);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-adjust-toggle svg {
|
|
width: 11px;
|
|
height: 11px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device dl {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 4px;
|
|
margin: 7px 0 0;
|
|
padding: 7px 0 0;
|
|
border-top: 1px solid var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device dl div {
|
|
min-width: 0;
|
|
display: grid;
|
|
gap: 2px;
|
|
padding: 5px 6px;
|
|
background: color-mix(in oklch, var(--muted) 72%, transparent);
|
|
border-radius: 7px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device dl div:only-child {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device dt,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device dd {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
margin: 0;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device dt {
|
|
color: var(--muted-foreground);
|
|
font-size: 6.5px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device dd {
|
|
color: var(--foreground);
|
|
font-size: 8px;
|
|
font-weight: 850;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-controls {
|
|
display: grid;
|
|
gap: 7px;
|
|
margin-top: 8px;
|
|
padding: 8px;
|
|
background: linear-gradient(155deg, color-mix(in oklch, var(--primary) 7%, var(--muted)), color-mix(in oklch, var(--secondary) 96%, transparent));
|
|
border: 1px solid var(--border);
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-controls[hidden] {
|
|
display: none !important;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-controls-intro {
|
|
display: grid;
|
|
gap: 2px;
|
|
padding-bottom: 6px;
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-controls-intro span {
|
|
color: var(--primary);
|
|
font-size: 8px;
|
|
font-weight: 900;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-controls-intro small {
|
|
color: var(--muted-foreground);
|
|
font-size: 6.5px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-control-row {
|
|
min-width: 0;
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 4px 7px;
|
|
color: var(--foreground);
|
|
font-size: 7px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-control-row output {
|
|
color: var(--primary);
|
|
font: 850 7px/1 "SFMono-Regular", Consolas, monospace;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-control-row input[type="range"] {
|
|
width: 100%;
|
|
height: 15px;
|
|
grid-column: 1 / -1;
|
|
margin: 0;
|
|
accent-color: var(--primary);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-control-row > small {
|
|
grid-column: 1 / -1;
|
|
color: var(--muted-foreground);
|
|
font-size: 6px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-control-select select {
|
|
width: 82px;
|
|
height: 25px;
|
|
padding: 0 5px;
|
|
color: var(--foreground);
|
|
background: color-mix(in oklch, var(--background) 80%, transparent);
|
|
border: 1px solid var(--input);
|
|
border-radius: 7px;
|
|
outline: none;
|
|
font-size: 7px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-control-select select:focus {
|
|
border-color: var(--ring);
|
|
box-shadow: 0 0 0 2px color-mix(in oklch, var(--ring) 14%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-control-apply {
|
|
width: 100%;
|
|
min-height: 29px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 5px;
|
|
margin-top: 1px;
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border: 0;
|
|
border-radius: 8px;
|
|
box-shadow: 0 6px 14px color-mix(in oklch, var(--primary) 18%, transparent);
|
|
font-size: 8px;
|
|
font-weight: 900;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-control-apply:hover:not(:disabled) {
|
|
background: color-mix(in oklch, var(--primary) 86%, var(--foreground));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-control-apply:disabled {
|
|
color: var(--muted-foreground);
|
|
background: var(--muted);
|
|
box-shadow: none;
|
|
cursor: wait;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-control-apply svg {
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
/* Readability and final layout alignment -------------------------------- */
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-request-form .command-composer {
|
|
height: 88px;
|
|
min-height: 88px;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-request-form #utterance {
|
|
height: 88px;
|
|
min-height: 88px;
|
|
padding: 11px 72px 36px 14px;
|
|
font-size: 13px;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-request-form .primary-action {
|
|
width: 36px;
|
|
height: 36px;
|
|
min-height: 36px;
|
|
top: 50%;
|
|
right: 10px;
|
|
bottom: auto;
|
|
transform: translateY(-50%);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-request-form .primary-action:hover:not(:disabled),
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-request-form .primary-action:focus-visible {
|
|
transform: translateY(-50%) scale(1.04);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-request-form .context-reset {
|
|
top: 7px;
|
|
right: 52px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-request-form .composer-hint {
|
|
right: 56px;
|
|
bottom: 8px;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-reasoning-trigger {
|
|
min-height: 28px;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-reasoning-trigger > strong {
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-natural-panel {
|
|
grid-template-rows: auto minmax(88px, 1fr) auto;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-log header small,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-log time {
|
|
font-size: 8.5px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-log select {
|
|
font-size: 9px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-log li strong {
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-log li small {
|
|
font-size: 9px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-heading .section-kicker,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .twin-orientation,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .twin-seat-switch button {
|
|
font-size: 9px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell.v2-output-page,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="devices extensions"] {
|
|
grid-template-columns: minmax(234px, 0.56fr) minmax(460px, 1.5fr) minmax(234px, 0.56fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="devices"] {
|
|
grid-template-columns: minmax(224px, 0.58fr) minmax(460px, 1.42fr) 48px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="extensions"] {
|
|
grid-template-columns: 48px minmax(460px, 1.42fr) minmax(224px, 0.58fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] {
|
|
grid-template-columns: 48px minmax(520px, 1fr) 48px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device {
|
|
padding: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-header {
|
|
gap: 7px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-focus {
|
|
grid-template-columns: 30px minmax(0, 1fr) 6px;
|
|
gap: 8px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-focus > span:first-child {
|
|
width: 30px;
|
|
height: 30px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-focus strong {
|
|
font-size: 11px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-focus small {
|
|
font-size: 9px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-adjust-toggle {
|
|
min-width: 48px;
|
|
height: 29px;
|
|
padding: 0 7px;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-adjust-toggle svg {
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device dl {
|
|
gap: 6px;
|
|
margin-top: 9px;
|
|
padding-top: 9px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device dl div {
|
|
gap: 3px;
|
|
min-height: 38px;
|
|
padding: 7px 8px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device dt {
|
|
font-size: 9px;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device dd {
|
|
font-size: 10px;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-controls {
|
|
gap: 9px;
|
|
margin-top: 10px;
|
|
padding: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-controls-intro span {
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-controls-intro small,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-control-row,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-control-row output {
|
|
font-size: 9px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-control-row > small {
|
|
font-size: 8.5px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-control-select select {
|
|
width: 92px;
|
|
height: 30px;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-control-apply {
|
|
min-height: 34px;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-sync-heading small,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-gateway > b,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-synced-device header small,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-synced-device header b,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-synced-device > div span,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-linkage small,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-linkage > span {
|
|
font-size: 9px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-gateway strong,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-synced-device header strong {
|
|
font-size: 11px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-gateway small,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-empty span {
|
|
font-size: 9px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-empty strong,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-linkage strong {
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-status-panel.is-collapsed {
|
|
padding: 0;
|
|
overflow: hidden;
|
|
background: rgba(250, 253, 252, 0.96);
|
|
border: 1px solid rgba(17, 112, 105, 0.14);
|
|
border-radius: 16px;
|
|
box-shadow: 0 8px 20px rgba(35, 78, 75, 0.06);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed {
|
|
border-radius: 16px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed > header,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-mount,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-heading {
|
|
width: 100%;
|
|
height: 100%;
|
|
min-height: 0;
|
|
margin: 0;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
background: transparent;
|
|
border: 0;
|
|
border-radius: 15px;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed > header {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
grid-template-rows: minmax(0, 1fr);
|
|
place-items: stretch;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed > header > button,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-heading > button {
|
|
width: 100%;
|
|
height: 100%;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 10px;
|
|
margin: 0;
|
|
padding: 12px 0;
|
|
color: #216f6a;
|
|
background: transparent;
|
|
border: 0;
|
|
border-radius: 15px;
|
|
writing-mode: horizontal-tb;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed > header > button {
|
|
grid-column: 1;
|
|
grid-row: 1;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed > header > button span,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-heading > button span {
|
|
font-size: 10px;
|
|
font-weight: 850;
|
|
letter-spacing: 0.16em;
|
|
writing-mode: vertical-rl;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed > header > button:hover,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-heading > button:hover {
|
|
color: #0b756f;
|
|
background: #e6f5f2;
|
|
}
|
|
|
|
@media (max-width: 1120px) {
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell.v2-output-page,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="devices extensions"] {
|
|
grid-template-columns: minmax(210px, 0.58fr) minmax(420px, 1.35fr) minmax(210px, 0.58fr);
|
|
}
|
|
}
|
|
|
|
/* Expanded function-mode grid and reusable natural-language mode creator. */
|
|
.console-v2 .v2-mode-rail > .mode-rail-bar {
|
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions {
|
|
min-width: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > button {
|
|
min-height: 38px;
|
|
display: inline-flex !important;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 7px;
|
|
padding: 7px 11px;
|
|
color: var(--primary);
|
|
background: var(--card);
|
|
border: 1px solid color-mix(in oklch, var(--primary) 24%, var(--border));
|
|
border-radius: var(--radius);
|
|
box-shadow: 0 5px 14px color-mix(in oklch, var(--foreground) 6%, transparent);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > button:hover,
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > button:focus-visible {
|
|
color: var(--accent-foreground);
|
|
background: var(--accent);
|
|
border-color: var(--ring);
|
|
outline: none;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > button svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > .mode-gallery-toggle strong {
|
|
min-width: 20px;
|
|
min-height: 20px;
|
|
display: inline-grid;
|
|
place-items: center;
|
|
padding: 0 5px;
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail > .mode-rail-content {
|
|
display: block;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail > .mode-rail-content .mode-chips {
|
|
width: 100%;
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
|
|
gap: 8px;
|
|
padding: 0;
|
|
overflow: visible;
|
|
scroll-behavior: auto;
|
|
overscroll-behavior: auto;
|
|
touch-action: auto;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail > .mode-rail-content .mode-chips > button {
|
|
width: 100%;
|
|
min-width: 0;
|
|
min-height: 38px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail > .mode-rail-content .mode-group-divider {
|
|
width: auto;
|
|
height: 1px;
|
|
grid-column: 1 / -1;
|
|
margin: 1px 0;
|
|
}
|
|
|
|
/* AI assistant light-blue semantic layer -------------------------------- */
|
|
.console-v2 {
|
|
--v2-accent: var(--primary);
|
|
--v2-accent-strong: color-mix(in oklch, var(--primary) 78%, var(--heading-foreground));
|
|
--v2-accent-soft: var(--status-info-soft);
|
|
--v2-ink: var(--body-foreground);
|
|
--v2-muted: var(--subtle-foreground);
|
|
--v2-shadow: 0 16px 42px color-mix(in oklch, var(--foreground) 10%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .workspace {
|
|
color: var(--body-foreground);
|
|
background:
|
|
radial-gradient(circle at 76% -10%, color-mix(in oklch, var(--primary) 13%, transparent), transparent 32%),
|
|
linear-gradient(145deg, var(--background), var(--secondary));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel {
|
|
color: var(--body-foreground);
|
|
background:
|
|
radial-gradient(circle at 42% -12%, color-mix(in oklch, var(--card) 92%, transparent), transparent 37%),
|
|
linear-gradient(150deg, var(--background), color-mix(in oklch, var(--secondary) 78%, var(--background)));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .command-panel.v2-sidebar {
|
|
color: var(--body-foreground);
|
|
background:
|
|
radial-gradient(circle at 12% 2%, color-mix(in oklch, var(--card) 88%, transparent), transparent 24%),
|
|
linear-gradient(158deg, var(--sidebar), var(--sidebar-accent));
|
|
border-right-color: var(--sidebar-border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-module-switcher,
|
|
.console-v2 .main-panel > .v2-mode-rail > .mode-rail-bar {
|
|
color: var(--body-foreground);
|
|
background: color-mix(in oklch, var(--card) 88%, var(--accent));
|
|
border-color: var(--border);
|
|
box-shadow: 0 6px 20px color-mix(in oklch, var(--foreground) 7%, transparent);
|
|
}
|
|
|
|
.console-v2 .v2-unified-title,
|
|
.console-v2 .v2-sidebar-title,
|
|
.console-v2 .v2-operation-heading h2,
|
|
.console-v2 .v2-output-heading h2,
|
|
.console-v2 .joint-twin-shell .twin-heading h3,
|
|
.console-v2 .v2-device-sync-board > header h3,
|
|
.console-v2 .v2-extension-sync-heading h3,
|
|
.console-v2 .workspace-panel-title h3,
|
|
.console-v2 .config-panel-heading h3 {
|
|
color: var(--heading-foreground);
|
|
}
|
|
|
|
.console-v2 .v2-unified-subtitle,
|
|
.console-v2 .v2-operation-heading p,
|
|
.console-v2 .v2-output-heading p,
|
|
.console-v2 .provider-note,
|
|
.console-v2 .v2-task-timeline,
|
|
.console-v2 .v2-device-sync-board > header small,
|
|
.console-v2 .v2-extension-sync-heading small {
|
|
color: var(--subtle-foreground);
|
|
}
|
|
|
|
.console-v2 .v2-module-tab {
|
|
color: var(--subtle-foreground);
|
|
background: transparent;
|
|
border-color: transparent;
|
|
}
|
|
|
|
.console-v2 .v2-module-tab:hover,
|
|
.console-v2 .v2-module-tab:focus-visible {
|
|
color: var(--accent-foreground);
|
|
background: var(--accent);
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2 .v2-module-tab.active,
|
|
.console-v2 .v2-module-tab[aria-selected="true"] {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-color: var(--primary);
|
|
box-shadow: 0 5px 14px color-mix(in oklch, var(--primary) 20%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button {
|
|
color: var(--body-foreground);
|
|
background: color-mix(in oklch, var(--card) 88%, var(--secondary));
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button:hover,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button:focus-visible {
|
|
color: var(--accent-foreground);
|
|
background: var(--accent);
|
|
border-color: var(--ring);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button.active,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button[aria-pressed="true"],
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button.running {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-color: var(--primary);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button.succeeded {
|
|
color: var(--status-success-foreground);
|
|
background: var(--status-success-soft);
|
|
border-color: color-mix(in oklch, var(--status-success) 38%, var(--border));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button.failed {
|
|
color: var(--status-error-foreground);
|
|
background: var(--status-error-soft);
|
|
border-color: color-mix(in oklch, var(--status-error) 38%, var(--border));
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chip-icon {
|
|
color: var(--primary);
|
|
background: var(--status-info-soft);
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chip-summary,
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chip-run,
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-group-label {
|
|
color: var(--subtle-foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell > .twin-band,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-sync-mount {
|
|
color: var(--body-foreground);
|
|
background:
|
|
radial-gradient(circle at 82% 0%, color-mix(in oklch, var(--primary) 8%, transparent), transparent 18rem),
|
|
var(--card);
|
|
border-color: var(--border);
|
|
box-shadow: 0 14px 32px color-mix(in oklch, var(--foreground) 8%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-heading,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-sync-board > header,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-extension-sync-heading {
|
|
background: linear-gradient(90deg, var(--secondary), color-mix(in oklch, var(--card) 92%, var(--accent)));
|
|
border-bottom-color: var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-stage {
|
|
background:
|
|
radial-gradient(ellipse at 53% 57%, color-mix(in oklch, var(--primary) 13%, transparent), transparent 41%),
|
|
linear-gradient(165deg, var(--card), var(--secondary));
|
|
}
|
|
|
|
/* Body-level portal: the horizontal mode rail clips its own overflow. */
|
|
.mode-chip-action-popover {
|
|
width: min(430px, calc(100vw - 24px));
|
|
max-height: min(68vh, 520px);
|
|
position: fixed;
|
|
z-index: 1900;
|
|
display: grid;
|
|
grid-template-rows: auto minmax(0, 1fr);
|
|
gap: 9px;
|
|
padding: 11px;
|
|
overflow: hidden;
|
|
color: var(--popover-foreground);
|
|
background: color-mix(in oklch, var(--popover) 96%, var(--primary));
|
|
border: 1px solid color-mix(in oklch, var(--primary) 24%, var(--border));
|
|
border-radius: 14px;
|
|
box-shadow:
|
|
0 16px 42px color-mix(in oklch, var(--foreground) 18%, transparent),
|
|
0 0 0 1px color-mix(in oklch, var(--card) 65%, transparent) inset;
|
|
backdrop-filter: blur(16px);
|
|
transform-origin: top center;
|
|
animation: mode-action-popover-in 140ms ease-out;
|
|
}
|
|
|
|
.mode-chip-action-popover[hidden] {
|
|
display: none !important;
|
|
}
|
|
|
|
.mode-chip-action-popover.is-above {
|
|
transform-origin: bottom center;
|
|
}
|
|
|
|
.mode-chip-action-popover > header,
|
|
.mode-chip-action-popover > header > span {
|
|
min-width: 0;
|
|
display: flex;
|
|
}
|
|
|
|
.mode-chip-action-popover > header {
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
padding: 0 2px;
|
|
}
|
|
|
|
.mode-chip-action-popover > header > span {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
gap: 1px;
|
|
}
|
|
|
|
.mode-chip-action-popover > header small {
|
|
color: var(--muted-foreground);
|
|
font-size: 8px;
|
|
font-weight: 760;
|
|
letter-spacing: 0.08em;
|
|
}
|
|
|
|
.mode-chip-action-popover > header strong {
|
|
max-width: 330px;
|
|
overflow: hidden;
|
|
color: var(--heading-foreground);
|
|
font-size: 13px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.mode-chip-action-popover > header b {
|
|
min-width: 38px;
|
|
min-height: 22px;
|
|
display: inline-grid;
|
|
place-items: center;
|
|
padding: 3px 7px;
|
|
color: var(--primary);
|
|
background: color-mix(in oklch, var(--primary) 10%, var(--card));
|
|
border-radius: 999px;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.mode-chip-action-popover ol {
|
|
min-height: 0;
|
|
display: grid;
|
|
gap: 5px;
|
|
margin: 0;
|
|
padding: 0 3px 0 0;
|
|
overflow-y: auto;
|
|
overscroll-behavior: contain;
|
|
scrollbar-width: thin;
|
|
list-style: none;
|
|
}
|
|
|
|
.mode-chip-action-popover li {
|
|
min-width: 0;
|
|
display: grid;
|
|
grid-template-columns: 24px minmax(0, 1fr);
|
|
align-items: start;
|
|
gap: 8px;
|
|
padding: 7px 8px;
|
|
color: var(--body-foreground);
|
|
background: color-mix(in oklch, var(--secondary) 66%, var(--card));
|
|
border: 1px solid var(--border);
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.mode-chip-action-step {
|
|
width: 22px;
|
|
height: 22px;
|
|
display: inline-grid;
|
|
place-items: center;
|
|
color: var(--primary);
|
|
background: color-mix(in oklch, var(--primary) 9%, var(--card));
|
|
border-radius: 7px;
|
|
font-size: 8px;
|
|
font-weight: 850;
|
|
}
|
|
|
|
.mode-chip-action-copy {
|
|
min-width: 0;
|
|
display: grid;
|
|
gap: 4px;
|
|
}
|
|
|
|
.mode-chip-action-copy > strong {
|
|
overflow: hidden;
|
|
color: var(--heading-foreground);
|
|
font-size: 10px;
|
|
line-height: 1.3;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.mode-chip-action-copy > small {
|
|
min-width: 0;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 3px 10px;
|
|
color: var(--muted-foreground);
|
|
font-size: 8px;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.mode-chip-action-copy > small > span {
|
|
min-width: 0;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.mode-chip-action-copy > small b {
|
|
margin-right: 3px;
|
|
color: var(--primary);
|
|
font-size: 7px;
|
|
font-weight: 850;
|
|
}
|
|
|
|
.mode-chip-action-empty {
|
|
display: block !important;
|
|
padding: 13px !important;
|
|
color: var(--muted-foreground) !important;
|
|
font-size: 9px;
|
|
text-align: center;
|
|
}
|
|
|
|
@keyframes mode-action-popover-in {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(-3px) scale(0.985);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0) scale(1);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 560px) {
|
|
.mode-chip-action-popover {
|
|
max-height: min(58vh, 430px);
|
|
padding: 9px;
|
|
}
|
|
|
|
.mode-chip-action-copy > small {
|
|
display: grid;
|
|
gap: 2px;
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.mode-chip-action-popover {
|
|
animation: none;
|
|
}
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-gateway,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-synced-device {
|
|
color: var(--body-foreground);
|
|
background: color-mix(in oklch, var(--card) 82%, var(--secondary));
|
|
border-color: var(--border);
|
|
box-shadow: 0 5px 14px color-mix(in oklch, var(--foreground) 6%, transparent);
|
|
}
|
|
|
|
/* Unified top-right panel controls ---------------------------------------
|
|
All four workspace panels share one stable icon dock. */
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-module-switcher {
|
|
position: relative;
|
|
z-index: 150;
|
|
grid-template-columns: minmax(0, 1fr) auto auto auto;
|
|
gap: 10px;
|
|
}
|
|
|
|
.console-v2 .v2-panel-control-dock {
|
|
min-width: 0;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 6px;
|
|
padding: 3px;
|
|
background: color-mix(in oklch, var(--card) 74%, var(--secondary));
|
|
border: 1px solid color-mix(in oklch, var(--primary) 12%, var(--border));
|
|
border-radius: 14px;
|
|
box-shadow: inset 0 1px 0 color-mix(in oklch, var(--card) 82%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2PanelControlDock > .v2-panel-control-button,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2PanelControlDock > #v2SidebarToggle.v2-panel-control-button {
|
|
width: 38px !important;
|
|
height: 38px !important;
|
|
min-width: 38px !important;
|
|
min-height: 38px !important;
|
|
position: relative !important;
|
|
inset: auto !important;
|
|
display: inline-grid !important;
|
|
grid-column: auto !important;
|
|
grid-row: auto !important;
|
|
place-items: center;
|
|
flex-direction: row !important;
|
|
gap: 0 !important;
|
|
margin: 0 !important;
|
|
padding: 0 !important;
|
|
color: var(--muted-foreground);
|
|
background: color-mix(in oklch, var(--card) 92%, var(--secondary));
|
|
border: 1px solid transparent;
|
|
border-radius: 11px !important;
|
|
box-shadow: none;
|
|
opacity: 1 !important;
|
|
visibility: visible !important;
|
|
pointer-events: auto !important;
|
|
transform: none !important;
|
|
cursor: pointer;
|
|
transition: color 150ms ease, background 150ms ease, border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease !important;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2PanelControlDock > .v2-panel-control-button:hover,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2PanelControlDock > .v2-panel-control-button:focus-visible {
|
|
color: var(--primary);
|
|
background: var(--accent);
|
|
border-color: color-mix(in oklch, var(--primary) 24%, var(--border));
|
|
box-shadow: 0 5px 14px color-mix(in oklch, var(--primary) 14%, transparent);
|
|
outline: 3px solid color-mix(in oklch, var(--ring) 14%, transparent);
|
|
outline-offset: 1px;
|
|
transform: translateY(-1px) !important;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2PanelControlDock > .v2-panel-control-button.active,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2PanelControlDock > .v2-panel-control-button[aria-pressed="true"] {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-color: var(--primary);
|
|
box-shadow: 0 7px 17px color-mix(in oklch, var(--primary) 24%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2PanelControlDock > .v2-panel-control-button svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2PanelControlDock > .v2-panel-control-button > span {
|
|
width: 1px !important;
|
|
height: 1px !important;
|
|
position: absolute !important;
|
|
overflow: hidden !important;
|
|
clip: rect(0 0 0 0) !important;
|
|
clip-path: inset(50%) !important;
|
|
white-space: nowrap !important;
|
|
}
|
|
|
|
/* A collapsed left panel and empty right rail must consume no canvas width. */
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .workspace {
|
|
grid-template-columns: 0 minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .command-panel.v2-sidebar {
|
|
width: 0;
|
|
min-width: 0;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
border: 0;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels] {
|
|
grid-template-columns: minmax(360px, 1fr) clamp(320px, 27vw, 402px);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 0;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-unified-right-rail,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels] .v2-unified-right-rail {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 0;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-unified-right-rail[hidden],
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-unified-right-rail.is-collapsed,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] .v2-unified-right-rail {
|
|
display: none !important;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-panel-dock {
|
|
display: none !important;
|
|
}
|
|
|
|
@media (max-width: 1180px) {
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-module-switcher {
|
|
grid-template-columns: minmax(0, 1fr) auto auto;
|
|
gap: 8px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-remote-control-state {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels] {
|
|
grid-template-columns: minmax(300px, 1fr) clamp(288px, 35vw, 342px);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-module-switcher {
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 6px;
|
|
padding-inline: 8px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-unified-live {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2 .v2-panel-control-dock {
|
|
gap: 3px;
|
|
padding: 2px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2PanelControlDock > .v2-panel-control-button,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2PanelControlDock > #v2SidebarToggle.v2-panel-control-button {
|
|
width: 36px !important;
|
|
height: 36px !important;
|
|
min-width: 36px !important;
|
|
min-height: 36px !important;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 460px) {
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-unified-brand h1 {
|
|
max-width: 108px;
|
|
overflow: hidden;
|
|
font-size: 12px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-unified-brand-mark {
|
|
width: 30px;
|
|
height: 30px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2PanelControlDock > .v2-panel-control-button,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2PanelControlDock > #v2SidebarToggle.v2-panel-control-button {
|
|
width: 32px !important;
|
|
height: 32px !important;
|
|
min-width: 32px !important;
|
|
min-height: 32px !important;
|
|
}
|
|
}
|
|
|
|
.console-v2 .workspace-panel-state.succeeded,
|
|
.console-v2 .execution-summary.succeeded,
|
|
.console-v2 .v2-sync-log li[data-log-status="success"] > span {
|
|
color: var(--status-success-foreground);
|
|
background: var(--status-success-soft);
|
|
border-color: color-mix(in oklch, var(--status-success) 34%, var(--border));
|
|
}
|
|
|
|
.console-v2 .workspace-panel-state.partial,
|
|
.console-v2 .execution-summary.partial,
|
|
.console-v2 .validation-item:not(.error) {
|
|
color: var(--status-warning-foreground);
|
|
background: var(--status-warning-soft);
|
|
border-color: color-mix(in oklch, var(--status-warning) 34%, var(--border));
|
|
}
|
|
|
|
.console-v2 .workspace-panel-state.failed,
|
|
.console-v2 .execution-summary.failed,
|
|
.console-v2 .validation-item.error,
|
|
.console-v2 .v2-sync-log li[data-log-status="error"] > span {
|
|
color: var(--status-error-foreground);
|
|
background: var(--status-error-soft);
|
|
border-color: color-mix(in oklch, var(--status-error) 34%, var(--border));
|
|
}
|
|
|
|
/* Compact function-mode strip ------------------------------------------- */
|
|
.visually-hidden {
|
|
width: 1px !important;
|
|
height: 1px !important;
|
|
position: absolute !important;
|
|
margin: -1px !important;
|
|
padding: 0 !important;
|
|
overflow: hidden !important;
|
|
clip: rect(0 0 0 0) !important;
|
|
clip-path: inset(50%) !important;
|
|
white-space: nowrap !important;
|
|
border: 0 !important;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail {
|
|
min-width: 0;
|
|
min-height: 54px;
|
|
position: relative;
|
|
z-index: 16;
|
|
display: block;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail > .mode-rail-bar {
|
|
width: 100%;
|
|
min-height: 54px;
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 5px 7px;
|
|
overflow: hidden;
|
|
color: var(--card-foreground);
|
|
background:
|
|
linear-gradient(100deg, color-mix(in oklch, var(--primary) 5%, var(--card)), var(--card) 34%),
|
|
var(--card);
|
|
border: 1px solid var(--border);
|
|
border-radius: 14px;
|
|
box-shadow: 0 8px 22px color-mix(in oklch, var(--foreground) 6%, transparent);
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-identity {
|
|
min-width: 122px;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 0 5px 0 2px;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-mark {
|
|
width: 32px;
|
|
height: 32px;
|
|
flex: 0 0 32px;
|
|
display: grid;
|
|
place-items: center;
|
|
color: var(--primary);
|
|
background: color-mix(in oklch, var(--primary) 10%, var(--card));
|
|
border: 1px solid color-mix(in oklch, var(--primary) 15%, var(--border));
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-mark svg {
|
|
width: 15px;
|
|
height: 15px;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-identity > span:last-child {
|
|
min-width: 0;
|
|
display: grid;
|
|
gap: 2px;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-title {
|
|
color: var(--foreground);
|
|
font-size: 11px;
|
|
font-weight: 850;
|
|
line-height: 1.05;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-identity small {
|
|
color: var(--muted-foreground);
|
|
font-size: 8px;
|
|
font-weight: 650;
|
|
line-height: 1.1;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail > .mode-rail-bar > .mode-rail-content {
|
|
width: auto;
|
|
min-width: 0;
|
|
max-height: none;
|
|
position: static;
|
|
inset: auto;
|
|
display: block;
|
|
margin: 0;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
color: inherit;
|
|
background: transparent;
|
|
border: 0;
|
|
border-radius: 0;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail > .mode-rail-bar > .mode-rail-content[hidden] {
|
|
display: none !important;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips {
|
|
width: 100%;
|
|
min-width: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 1px 2px;
|
|
overflow-x: auto;
|
|
overflow-y: hidden;
|
|
scrollbar-width: none;
|
|
scroll-behavior: smooth;
|
|
overscroll-behavior-x: contain;
|
|
touch-action: pan-x;
|
|
cursor: grab;
|
|
outline: none;
|
|
transition: box-shadow 150ms ease;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips:focus-visible {
|
|
box-shadow: inset 0 0 0 2px color-mix(in oklch, var(--primary) 34%, transparent);
|
|
border-radius: 12px;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips.is-overflowing.can-scroll-right {
|
|
box-shadow: inset -14px 0 12px -14px color-mix(in oklch, var(--foreground) 48%, transparent);
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips.is-overflowing.can-scroll-left {
|
|
box-shadow: inset 14px 0 12px -14px color-mix(in oklch, var(--foreground) 48%, transparent);
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips.is-overflowing.can-scroll-left.can-scroll-right {
|
|
box-shadow:
|
|
inset 14px 0 12px -14px color-mix(in oklch, var(--foreground) 48%, transparent),
|
|
inset -14px 0 12px -14px color-mix(in oklch, var(--foreground) 48%, transparent);
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips.is-dragging {
|
|
cursor: grabbing;
|
|
scroll-behavior: auto;
|
|
user-select: none;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips.is-dragging > * {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-group-label {
|
|
flex: 0 0 auto;
|
|
padding: 0 1px 0 3px;
|
|
color: var(--muted-foreground);
|
|
font-size: 8px;
|
|
font-weight: 800;
|
|
letter-spacing: 0.04em;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-group-divider {
|
|
width: 1px;
|
|
height: 26px;
|
|
flex: 0 0 1px;
|
|
align-self: center;
|
|
margin: 0 2px;
|
|
background: var(--border);
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button {
|
|
width: auto;
|
|
min-width: 116px;
|
|
max-width: 154px;
|
|
min-height: 40px;
|
|
height: 40px;
|
|
flex: 0 0 auto;
|
|
display: grid;
|
|
grid-template-columns: 25px minmax(55px, 1fr) 13px;
|
|
grid-template-rows: 1fr 1fr;
|
|
align-items: center;
|
|
justify-content: stretch;
|
|
column-gap: 6px;
|
|
row-gap: 0;
|
|
padding: 4px 8px 4px 5px;
|
|
overflow: hidden;
|
|
text-align: left;
|
|
white-space: nowrap;
|
|
border-radius: 11px;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chip-icon {
|
|
width: 25px;
|
|
height: 25px;
|
|
grid-column: 1;
|
|
grid-row: 1 / 3;
|
|
align-self: center;
|
|
padding: 6px;
|
|
color: var(--primary);
|
|
background: color-mix(in oklch, var(--primary) 10%, var(--card));
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chip-label {
|
|
min-width: 0;
|
|
grid-column: 2;
|
|
grid-row: 1;
|
|
align-self: end;
|
|
overflow: hidden;
|
|
font-size: 10px;
|
|
font-weight: 820;
|
|
line-height: 1.15;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chip-summary {
|
|
min-width: 0;
|
|
grid-column: 2;
|
|
grid-row: 2;
|
|
align-self: start;
|
|
overflow: hidden;
|
|
color: var(--muted-foreground);
|
|
font-size: 7.5px;
|
|
font-weight: 650;
|
|
line-height: 1.15;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chip-run {
|
|
width: 12px;
|
|
height: 12px;
|
|
grid-column: 3;
|
|
grid-row: 1 / 3;
|
|
align-self: center;
|
|
color: var(--muted-foreground);
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips > button:hover .mode-chip-run,
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips > button:focus-visible .mode-chip-run {
|
|
color: var(--primary);
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips > button.active .mode-chip-icon,
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips > button[aria-pressed="true"] .mode-chip-icon,
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips > button.active .mode-chip-summary,
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips > button[aria-pressed="true"] .mode-chip-summary,
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips > button.active .mode-chip-run,
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips > button[aria-pressed="true"] .mode-chip-run {
|
|
color: currentColor;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-cycle-badge {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions {
|
|
min-width: max-content;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > button,
|
|
.console-v2 .v2-mode-rail #saveModeToggle {
|
|
min-width: 0;
|
|
min-height: 34px;
|
|
height: 34px;
|
|
display: inline-flex !important;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 5px;
|
|
grid-column: auto;
|
|
grid-row: auto;
|
|
padding: 5px 9px;
|
|
color: var(--foreground);
|
|
background: color-mix(in oklch, var(--secondary) 86%, var(--card));
|
|
border: 1px solid var(--border);
|
|
border-radius: 10px;
|
|
box-shadow: none;
|
|
font-size: 9px;
|
|
font-weight: 800;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > .mode-create-toggle,
|
|
.console-v2 .v2-mode-rail #saveModeToggle {
|
|
color: var(--primary);
|
|
background: color-mix(in oklch, var(--primary) 8%, var(--card));
|
|
border-color: color-mix(in oklch, var(--primary) 20%, var(--border));
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > button:hover,
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > button:focus-visible {
|
|
color: var(--primary);
|
|
background: color-mix(in oklch, var(--primary) 11%, var(--card));
|
|
border-color: color-mix(in oklch, var(--primary) 30%, var(--border));
|
|
outline: none;
|
|
transform: none;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > button svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > .mode-gallery-toggle strong {
|
|
min-width: 17px;
|
|
min-height: 17px;
|
|
height: 17px;
|
|
padding: 0 4px;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > .mode-rail-toggle {
|
|
width: 32px;
|
|
padding: 0;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > .mode-rail-toggle svg,
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > .mode-rail-toggle[aria-expanded="true"] svg:last-child {
|
|
transform: none !important;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail.is-collapsed > .mode-rail-bar {
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail.is-collapsed .mode-rail-identity {
|
|
min-width: 0;
|
|
}
|
|
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips > button.just-created {
|
|
border-color: color-mix(in oklch, var(--primary) 58%, var(--border));
|
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--primary) 13%, transparent),
|
|
0 8px 18px color-mix(in oklch, var(--primary) 12%, transparent);
|
|
animation: v2-mode-created-pulse 900ms ease-out 2;
|
|
}
|
|
|
|
@keyframes v2-mode-created-pulse {
|
|
0%, 100% { transform: translateY(0); }
|
|
45% { transform: translateY(-2px); }
|
|
}
|
|
|
|
@media (max-width: 1180px) {
|
|
.console-v2 .v2-mode-rail .mode-rail-identity {
|
|
min-width: 36px;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-identity > span:last-child {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button {
|
|
min-width: 108px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
.console-v2 .main-panel > .v2-mode-rail > .mode-rail-bar {
|
|
gap: 6px;
|
|
padding-inline: 5px;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-mark {
|
|
width: 30px;
|
|
height: 30px;
|
|
flex-basis: 30px;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > button span,
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > .mode-gallery-toggle strong {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions > button {
|
|
width: 32px;
|
|
padding: 0;
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.console-v2 .main-panel > .v2-mode-rail .mode-chips > button.just-created {
|
|
animation: none;
|
|
}
|
|
}
|
|
|
|
/* Fixed side-panel dock: buttons never move while panel content expands. */
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell.v2-output-page,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels] {
|
|
grid-template-columns: minmax(420px, 1fr) clamp(330px, 27vw, 402px);
|
|
grid-template-rows: minmax(0, 1fr);
|
|
gap: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] {
|
|
grid-template-columns: minmax(420px, 1fr) 52px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell > .twin-band {
|
|
min-width: 0;
|
|
grid-column: 1;
|
|
grid-row: 1;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-unified-right-rail,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels] .v2-unified-right-rail {
|
|
min-width: 0;
|
|
min-height: 0;
|
|
display: grid !important;
|
|
grid-column: 2;
|
|
grid-row: 1;
|
|
grid-template-columns: minmax(0, 1fr) 52px;
|
|
grid-template-rows: minmax(0, 1fr) !important;
|
|
gap: 8px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] .v2-unified-right-rail {
|
|
grid-template-columns: 52px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-status-stack {
|
|
min-width: 0;
|
|
min-height: 0;
|
|
display: grid;
|
|
grid-column: 1;
|
|
grid-row: 1;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
grid-template-rows: minmax(0, 1fr);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="devices extensions"] .v2-side-status-stack {
|
|
grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
|
|
gap: 8px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] .v2-side-status-stack {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-status-stack #v2DevicePanel,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-status-stack #v2ExtensionPanel {
|
|
width: 100%;
|
|
height: 100%;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
grid-column: 1;
|
|
align-self: stretch;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-status-stack #v2DevicePanel {
|
|
grid-row: 1;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-status-stack #v2ExtensionPanel {
|
|
grid-row: 2;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="extensions"] .v2-side-status-stack #v2ExtensionPanel {
|
|
grid-row: 1;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-status-stack .v2-side-status-panel.is-collapsed {
|
|
display: none !important;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-panel-dock {
|
|
min-width: 0;
|
|
min-height: 0;
|
|
display: grid;
|
|
grid-column: 2;
|
|
grid-row: 1;
|
|
grid-auto-rows: 52px;
|
|
align-content: start;
|
|
gap: 8px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] .v2-side-panel-dock {
|
|
grid-column: 1;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-panel-dock button {
|
|
width: 52px;
|
|
height: 52px;
|
|
min-width: 52px;
|
|
min-height: 52px;
|
|
display: grid;
|
|
place-items: center;
|
|
padding: 0;
|
|
color: var(--muted-foreground);
|
|
background: color-mix(in oklch, var(--card) 94%, transparent);
|
|
border: 1px solid var(--border);
|
|
border-radius: 15px;
|
|
box-shadow: 0 8px 20px color-mix(in oklch, var(--foreground) 7%, transparent);
|
|
cursor: pointer;
|
|
transition: color 160ms ease, background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-panel-dock button:hover,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-panel-dock button:focus-visible {
|
|
color: var(--primary);
|
|
background: var(--accent);
|
|
border-color: color-mix(in oklch, var(--primary) 26%, var(--border));
|
|
outline: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-panel-dock button.active {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-color: var(--primary);
|
|
box-shadow: 0 10px 24px color-mix(in oklch, var(--primary) 24%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-panel-dock button svg {
|
|
width: 20px;
|
|
height: 20px;
|
|
}
|
|
|
|
@media (max-width: 1180px) {
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell.v2-output-page,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels] {
|
|
grid-template-columns: minmax(320px, 1fr) clamp(292px, 36vw, 342px);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] {
|
|
grid-template-columns: minmax(320px, 1fr) 52px;
|
|
}
|
|
}
|
|
|
|
.console-v2 .mode-gallery-add-card {
|
|
padding-right: 9px;
|
|
border-style: dashed;
|
|
border-color: color-mix(in oklch, var(--primary) 42%, var(--border));
|
|
color: var(--card-foreground);
|
|
background: color-mix(in oklch, var(--primary) 5%, var(--card));
|
|
}
|
|
|
|
.console-v2 .mode-gallery-add-card .mode-gallery-card-icon {
|
|
color: var(--primary);
|
|
background: color-mix(in oklch, var(--primary) 12%, var(--card));
|
|
}
|
|
|
|
.console-v2 .mode-gallery-add-card:hover,
|
|
.console-v2 .mode-gallery-add-card:focus-visible {
|
|
border-color: var(--primary);
|
|
background: var(--accent);
|
|
}
|
|
|
|
@media (max-width: 980px) {
|
|
.console-v2 .v2-mode-rail > .mode-rail-bar {
|
|
grid-template-columns: auto minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-actions {
|
|
grid-column: 1 / -1;
|
|
justify-content: flex-end;
|
|
}
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-gallery-toggle strong,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-task-timeline i,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-seat-label small,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-callout span,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-callout small,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-twin-hotspots button,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-twin-device-popover header > b,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-twin-device-popover dt {
|
|
font-size: 9px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-twin-device-popover header small {
|
|
font-size: 8.5px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-twin-device-popover dd {
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sidebar-footer small,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-sync-board > header > button,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-extension-sync-heading > button {
|
|
font-size: 9px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-gateway small {
|
|
overflow: visible;
|
|
text-overflow: clip;
|
|
white-space: normal;
|
|
}
|
|
|
|
/* Collapsible left sync rail aligned with the lower workspace ------------ */
|
|
.console-v2.v2-passive-display.v2-interactive-sync .workspace {
|
|
transition: grid-template-columns 180ms ease;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .command-panel.v2-sidebar {
|
|
--v2-sync-log-top: 291px;
|
|
position: relative;
|
|
display: block;
|
|
padding: 0 15px 13px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-sidebar {
|
|
width: 100%;
|
|
height: 100%;
|
|
display: grid;
|
|
grid-template-rows: calc(var(--v2-sync-log-top) - 10px) minmax(0, 1fr);
|
|
gap: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-sidebar-overview {
|
|
width: 100%;
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
min-height: 0;
|
|
display: grid;
|
|
grid-auto-rows: max-content;
|
|
align-content: start;
|
|
gap: 10px;
|
|
padding-top: 26px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-transport-field {
|
|
width: 100%;
|
|
min-width: 0;
|
|
min-height: max-content;
|
|
max-width: 100%;
|
|
align-self: start;
|
|
overflow: visible;
|
|
padding: 7px;
|
|
background: rgba(255, 255, 255, 0.86);
|
|
border-color: rgba(19, 105, 99, 0.14);
|
|
box-shadow: 0 5px 14px rgba(37, 84, 80, 0.06);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-execution-field,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-simulation-fault-field {
|
|
width: 100%;
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
margin: 0;
|
|
padding: 7px;
|
|
overflow: visible;
|
|
align-self: start;
|
|
background: rgba(255, 255, 255, 0.86);
|
|
border: 1px solid rgba(19, 105, 99, 0.14);
|
|
border-radius: 10px;
|
|
box-shadow: 0 5px 14px rgba(37, 84, 80, 0.06);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-execution-field > .field-label,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-simulation-fault-field > .field-label {
|
|
display: block;
|
|
margin: 0 0 6px;
|
|
color: #466664;
|
|
font-size: 10px;
|
|
font-weight: 850;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-execution-field .execution-mode-options {
|
|
width: 100%;
|
|
min-width: 0;
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 4px;
|
|
padding: 3px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-execution-field .mode-option {
|
|
min-width: 0;
|
|
min-height: 34px;
|
|
display: grid;
|
|
grid-template-columns: 13px minmax(0, auto);
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 3px;
|
|
padding: 4px;
|
|
overflow: hidden;
|
|
font-size: 9px;
|
|
line-height: 1.15;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-execution-field .mode-option svg {
|
|
width: 13px;
|
|
height: 13px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-execution-field .mode-option.active {
|
|
color: #fff;
|
|
background: linear-gradient(145deg, var(--v2-accent), var(--v2-accent-strong));
|
|
border-color: transparent;
|
|
box-shadow: 0 4px 11px color-mix(in srgb, var(--v2-accent) 18%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-execution-field .mode-option:disabled {
|
|
color: #7c8d8d;
|
|
background: rgba(235, 240, 239, 0.92);
|
|
opacity: 0.72;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-simulation-fault-field select {
|
|
min-height: 34px;
|
|
padding: 0 8px;
|
|
border-radius: 8px;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-panel {
|
|
width: 100%;
|
|
min-width: 0;
|
|
align-self: start;
|
|
overflow: hidden;
|
|
background: rgba(255, 255, 255, 0.86);
|
|
border: 1px solid rgba(19, 105, 99, 0.14);
|
|
border-radius: 10px;
|
|
box-shadow: 0 5px 14px rgba(37, 84, 80, 0.06);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-panel summary {
|
|
min-height: 38px;
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto 14px;
|
|
align-items: center;
|
|
gap: 7px;
|
|
padding: 7px 9px;
|
|
color: #315e5b;
|
|
cursor: pointer;
|
|
list-style: none;
|
|
user-select: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-panel summary::-webkit-details-marker {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-panel summary > span {
|
|
min-width: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-panel summary > span svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
color: var(--v2-accent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-panel summary b {
|
|
overflow: hidden;
|
|
font-size: 10px;
|
|
font-weight: 850;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-panel summary > strong {
|
|
min-width: 22px;
|
|
padding: 2px 6px;
|
|
color: #687f7d;
|
|
background: #edf4f3;
|
|
border-radius: 999px;
|
|
font: 850 9px/1.5 "SFMono-Regular", Consolas, monospace;
|
|
text-align: center;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-panel[data-state="ready"] summary > strong {
|
|
color: #08766f;
|
|
background: #d9f3ef;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-panel summary > svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
transition: transform 160ms ease;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-panel[open] summary > svg {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-command-timing {
|
|
display: grid;
|
|
gap: 6px;
|
|
padding: 7px 9px;
|
|
color: #557270;
|
|
background: rgba(232, 244, 242, 0.7);
|
|
border-top: 1px solid rgba(19, 105, 99, 0.1);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-command-timing[hidden] {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-command-timing > p {
|
|
margin: 0;
|
|
font-size: 8px;
|
|
font-weight: 750;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-command-timing > header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-command-timing > header strong {
|
|
font-size: 9px;
|
|
font-weight: 900;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-command-timing > header span {
|
|
padding: 1px 5px;
|
|
color: #2366a1;
|
|
background: #e4f0fb;
|
|
border-radius: 999px;
|
|
font-size: 7px;
|
|
font-weight: 850;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-command-timing > header b {
|
|
margin-left: auto;
|
|
color: #08766f;
|
|
font: 850 8px/1.4 "SFMono-Regular", Consolas, monospace;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-command-timing ol {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 3px 9px;
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-command-timing li {
|
|
min-width: 0;
|
|
display: flex;
|
|
align-items: baseline;
|
|
justify-content: space-between;
|
|
gap: 5px;
|
|
font-size: 7px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-command-timing li span {
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-command-timing li b {
|
|
flex: 0 0 auto;
|
|
color: #315e5b;
|
|
font: 800 7px/1.4 "SFMono-Regular", Consolas, monospace;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list {
|
|
max-height: min(34dvh, 280px);
|
|
padding: 7px;
|
|
overflow: auto;
|
|
border-top: 1px solid rgba(19, 105, 99, 0.1);
|
|
scrollbar-width: thin;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list p {
|
|
margin: 0;
|
|
padding: 8px 6px;
|
|
color: #819190;
|
|
font-size: 9px;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list ol {
|
|
display: grid;
|
|
gap: 6px;
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li {
|
|
min-width: 0;
|
|
display: grid;
|
|
gap: 3px;
|
|
padding: 6px 7px;
|
|
background: #f3f8f7;
|
|
border-radius: 7px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li > span {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
color: #718684;
|
|
font-size: 8px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-channel {
|
|
flex: 0 0 auto;
|
|
min-width: 33px;
|
|
padding: 1px 5px;
|
|
color: #0b6f68;
|
|
background: #d9f1ed;
|
|
border: 1px solid rgba(11, 111, 104, 0.12);
|
|
border-radius: 999px;
|
|
font: 850 7px/1.5 "SFMono-Regular", Consolas, monospace;
|
|
letter-spacing: 0.02em;
|
|
text-align: center;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-source {
|
|
flex: 0 0 auto;
|
|
padding: 1px 5px;
|
|
color: #2366a1;
|
|
background: #e4f0fb;
|
|
border: 1px solid rgba(35, 102, 161, 0.14);
|
|
border-radius: 999px;
|
|
font-size: 7px;
|
|
font-weight: 850;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-source[data-parse-source="local_rule"] {
|
|
color: #08766f;
|
|
background: #d9f3ef;
|
|
border-color: rgba(8, 118, 111, 0.14);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-source[data-parse-source="direct_control"] {
|
|
color: #7a4b00;
|
|
background: #fff0c7;
|
|
border-color: rgba(122, 75, 0, 0.16);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-delivery {
|
|
flex: 0 0 auto;
|
|
padding: 1px 5px;
|
|
color: #687776;
|
|
background: #e8eceb;
|
|
border: 1px solid rgba(91, 107, 105, 0.14);
|
|
border-radius: 999px;
|
|
font-size: 7px;
|
|
font-weight: 900;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-delivery[data-delivery-state="submitted"] {
|
|
color: #087048;
|
|
background: #d9f3e5;
|
|
border-color: rgba(8, 112, 72, 0.16);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-category {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
font-style: normal;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel="CAN0"] {
|
|
background: #f7f4ec;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel="CAN0"] .v2-can-command-channel {
|
|
color: #8a5a10;
|
|
background: #f8e9c9;
|
|
border-color: rgba(138, 90, 16, 0.13);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel="IR"] {
|
|
background: #f5f1fb;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel="IR"] .v2-can-command-channel {
|
|
color: #6c3aa1;
|
|
background: #eadcf8;
|
|
border-color: rgba(108, 58, 161, 0.14);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel="IR"] code,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel="IR"] .v2-can-command-frame {
|
|
color: #664086;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li code {
|
|
color: #075f5a;
|
|
font: 750 9px/1.45 "SFMono-Regular", Consolas, monospace;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-layer {
|
|
min-width: 0;
|
|
display: grid;
|
|
gap: 1px;
|
|
padding: 4px 5px;
|
|
border-radius: 5px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-layer > small {
|
|
color: #758886;
|
|
font-size: 7px;
|
|
font-weight: 900;
|
|
letter-spacing: 0.04em;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-semantic {
|
|
background: rgba(35, 102, 161, 0.07);
|
|
border-left: 2px solid rgba(35, 102, 161, 0.38);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-semantic code {
|
|
color: #245c8d;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-actual {
|
|
background: rgba(8, 118, 111, 0.07);
|
|
border-left: 2px solid rgba(8, 118, 111, 0.42);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-frame {
|
|
display: block;
|
|
color: #8a6b36;
|
|
font: 700 7px/1.45 "SFMono-Regular", Consolas, monospace;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-frame > b {
|
|
font-weight: 900;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-transport-field > .field-label {
|
|
color: #466664;
|
|
font-size: 10px;
|
|
font-weight: 850;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-transport-field .mode-option {
|
|
min-height: 34px;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-sidebar-heading {
|
|
min-width: 0;
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) 32px;
|
|
grid-template-rows: auto auto auto;
|
|
column-gap: 7px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-sidebar-heading > small,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-sidebar-heading > h2 {
|
|
min-width: 0;
|
|
grid-column: 1;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-sidebar-heading > p {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-sidebar-heading h2 {
|
|
font-size: 19px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2SidebarToggle {
|
|
width: 32px;
|
|
height: 28px;
|
|
min-width: 32px;
|
|
grid-column: 2;
|
|
grid-row: 1 / 3;
|
|
align-self: start;
|
|
display: inline-flex !important;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 3px;
|
|
padding: 0;
|
|
color: #3d716e;
|
|
background: rgba(255, 255, 255, 0.78);
|
|
border: 1px solid rgba(19, 105, 99, 0.12);
|
|
border-radius: 9px;
|
|
box-shadow: 0 3px 9px rgba(37, 84, 80, 0.055);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2SidebarToggle:hover,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2SidebarToggle:focus-visible {
|
|
color: #0b756f;
|
|
background: #e3f4f1;
|
|
border-color: rgba(13, 126, 117, 0.21);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2SidebarToggle svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2SidebarToggle span {
|
|
display: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-sidebar-overview > .v2-sidebar-footer {
|
|
width: 100%;
|
|
margin: 0;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-sidebar > .v2-sync-log {
|
|
min-height: 0;
|
|
grid-row: 2;
|
|
flex: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .workspace {
|
|
grid-template-columns: 64px minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .command-panel.v2-sidebar {
|
|
padding: 3px 8px 13px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .v2-sync-sidebar,
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .v2-sync-sidebar-overview,
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .v2-sync-sidebar-heading {
|
|
width: 100%;
|
|
height: 100%;
|
|
display: block;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .v2-sync-sidebar-heading > small,
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .v2-sync-sidebar-heading > h2,
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .v2-sync-sidebar-heading > p,
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .v2-sync-transport-field,
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .v2-sync-execution-field,
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .v2-sync-simulation-fault-field,
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .v2-can-command-panel,
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .v2-sidebar-footer,
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .v2-sync-log {
|
|
display: none !important;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed #v2SidebarToggle {
|
|
width: 100%;
|
|
height: 100%;
|
|
min-width: 0;
|
|
display: flex !important;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
color: #216f6a;
|
|
background: rgba(250, 253, 252, 0.92);
|
|
border-radius: 16px;
|
|
box-shadow: 0 8px 20px rgba(35, 78, 75, 0.06);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed #v2SidebarToggle span {
|
|
display: block;
|
|
font-size: 10px;
|
|
font-weight: 850;
|
|
letter-spacing: 0.16em;
|
|
writing-mode: vertical-rl;
|
|
}
|
|
|
|
/* Final semantic theme cascade -------------------------------------------
|
|
This must remain last: older delivery-state layers contain fixed teal
|
|
values for the twin, icon tiles and nested control surfaces. */
|
|
.console-v2 .v2-unified-brand-mark,
|
|
.console-v2 .v2-sidebar-brand-mark,
|
|
.console-v2 .v2-boot-mark {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-color: color-mix(in oklch, var(--primary) 32%, var(--border));
|
|
box-shadow: 0 10px 24px color-mix(in oklch, var(--primary) 20%, transparent);
|
|
}
|
|
|
|
.console-v2 .v2-remote-control-state,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-transport-field,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-execution-field,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-simulation-fault-field,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-panel {
|
|
color: var(--card-foreground);
|
|
background: color-mix(in oklch, var(--card) 88%, transparent);
|
|
border-color: var(--border);
|
|
box-shadow: 0 5px 14px color-mix(in oklch, var(--foreground) 6%, transparent);
|
|
}
|
|
|
|
.console-v2 .v2-remote-control-state,
|
|
.console-v2 .v2-remote-control-state strong,
|
|
.console-v2 .v2-remote-control-state svg {
|
|
color: var(--primary);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-execution-field > .field-label,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-simulation-fault-field > .field-label,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-transport-field > .field-label,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-panel summary {
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-execution-field .provider-note,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list p,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li > span {
|
|
color: var(--muted-foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-execution-field .mode-option.active,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-transport-field .mode-option.active {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-color: var(--primary);
|
|
box-shadow: 0 4px 11px color-mix(in oklch, var(--primary) 20%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-execution-field .mode-option:disabled {
|
|
color: var(--muted-foreground);
|
|
background: var(--muted);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list {
|
|
border-top-color: var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel="CAN0"],
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel="IR"] {
|
|
color: var(--foreground);
|
|
background: var(--muted);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-panel summary > strong,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-panel[data-state="ready"] summary > strong,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-channel,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-source,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-source[data-parse-source="local_rule"],
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-source[data-parse-source="direct_control"],
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-delivery,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-delivery[data-delivery-state="submitted"] {
|
|
color: var(--primary);
|
|
background: var(--accent);
|
|
border-color: color-mix(in oklch, var(--primary) 18%, var(--border));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel="CAN0"] .v2-can-command-channel,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel="IR"] .v2-can-command-channel,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel="IR"] code,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel="IR"] .v2-can-command-frame,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li code,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-frame {
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2SidebarToggle,
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed #v2SidebarToggle {
|
|
color: var(--primary);
|
|
background: color-mix(in oklch, var(--card) 86%, transparent);
|
|
border-color: var(--sidebar-border);
|
|
box-shadow: 0 5px 14px color-mix(in oklch, var(--foreground) 6%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2SidebarToggle:hover,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2SidebarToggle:focus-visible {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-color: var(--primary);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell.v2-output-page,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels] {
|
|
color: var(--foreground);
|
|
background: transparent;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell > .twin-band,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-sync-mount,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-status-panel.is-collapsed {
|
|
color: var(--card-foreground);
|
|
background:
|
|
radial-gradient(circle at 78% 0%, color-mix(in oklch, var(--primary) 8%, transparent), transparent 18rem),
|
|
var(--card);
|
|
border-color: var(--border);
|
|
box-shadow: 0 14px 32px color-mix(in oklch, var(--foreground) 8%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-heading,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-sync-board > header,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-extension-sync-heading {
|
|
color: var(--foreground);
|
|
background: linear-gradient(90deg, var(--secondary), var(--card));
|
|
border-bottom-color: var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-heading .section-kicker,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-sync-board > header h3,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-extension-sync-heading h3 {
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-focus-badge,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-reset,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-seat-switch,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-seat-switch button {
|
|
color: var(--primary);
|
|
background: var(--accent);
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-seat-switch button.active,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-reset:hover,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-reset:focus-visible {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-color: var(--primary);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-stage {
|
|
background:
|
|
radial-gradient(ellipse at 53% 57%, color-mix(in oklch, var(--primary) 12%, transparent), transparent 41%),
|
|
linear-gradient(165deg, var(--background), var(--muted));
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspots button::before {
|
|
background: color-mix(in oklch, var(--primary) 72%, var(--border));
|
|
box-shadow: 0 0 7px color-mix(in oklch, var(--primary) 28%, transparent);
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspots button::after {
|
|
background: var(--primary);
|
|
border-color: var(--primary-foreground);
|
|
box-shadow:
|
|
0 0 0 3px color-mix(in oklch, var(--primary) 17%, transparent),
|
|
0 2px 8px color-mix(in oklch, var(--primary) 28%, transparent);
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspot-label {
|
|
color: var(--popover-foreground);
|
|
background: color-mix(in oklch, var(--popover) 94%, transparent);
|
|
border-color: color-mix(in oklch, var(--primary) 24%, var(--border));
|
|
box-shadow: 0 8px 20px color-mix(in oklch, var(--foreground) 18%, transparent);
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspot-label svg,
|
|
.console-v2 .v2-twin-hotspot-label small {
|
|
color: var(--primary);
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspots button:hover::before,
|
|
.console-v2 .v2-twin-hotspots button:focus-visible::before,
|
|
.console-v2 .v2-twin-hotspots button.active::before,
|
|
.console-v2 .v2-twin-hotspots button:hover::after,
|
|
.console-v2 .v2-twin-hotspots button:focus-visible::after,
|
|
.console-v2 .v2-twin-hotspots button.active::after {
|
|
background: var(--primary);
|
|
box-shadow: 0 0 0 5px color-mix(in oklch, var(--primary) 18%, transparent);
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspots button:hover .v2-twin-hotspot-label,
|
|
.console-v2 .v2-twin-hotspots button:focus-visible .v2-twin-hotspot-label,
|
|
.console-v2 .v2-twin-hotspots button.active .v2-twin-hotspot-label {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-color: color-mix(in oklch, var(--primary-foreground) 36%, transparent);
|
|
box-shadow: 0 11px 24px color-mix(in oklch, var(--primary) 28%, transparent);
|
|
}
|
|
|
|
.console-v2 .v2-twin-hotspots button:hover .v2-twin-hotspot-label svg,
|
|
.console-v2 .v2-twin-hotspots button:hover .v2-twin-hotspot-label small,
|
|
.console-v2 .v2-twin-hotspots button:focus-visible .v2-twin-hotspot-label svg,
|
|
.console-v2 .v2-twin-hotspots button:focus-visible .v2-twin-hotspot-label small,
|
|
.console-v2 .v2-twin-hotspots button.active .v2-twin-hotspot-label svg,
|
|
.console-v2 .v2-twin-hotspots button.active .v2-twin-hotspot-label small {
|
|
color: var(--primary-foreground);
|
|
}
|
|
|
|
.console-v2 .twin-callout {
|
|
color: var(--popover-foreground);
|
|
background: color-mix(in oklch, var(--popover) 94%, transparent);
|
|
border-color: var(--primary);
|
|
box-shadow: 0 6px 18px color-mix(in oklch, var(--foreground) 18%, transparent);
|
|
}
|
|
|
|
.console-v2 .twin-callout b,
|
|
.console-v2 .twin-callout small,
|
|
.console-v2 .twin-orientation,
|
|
.console-v2 .twin-seat-label,
|
|
.console-v2 .twin-seat-label small {
|
|
color: var(--primary);
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover {
|
|
color: var(--popover-foreground);
|
|
background: color-mix(in oklch, var(--popover) 96%, transparent);
|
|
border-color: color-mix(in oklch, var(--primary) 24%, var(--border));
|
|
box-shadow: 0 18px 42px color-mix(in oklch, var(--foreground) 20%, transparent);
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover header > span {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover header small,
|
|
.console-v2 .v2-twin-device-popover header > b,
|
|
.console-v2 .v2-twin-device-popover dt {
|
|
color: var(--muted-foreground);
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover dl div,
|
|
.console-v2 .v2-twin-popover-close {
|
|
color: var(--foreground);
|
|
background: var(--muted);
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2 .v2-twin-device-popover dd {
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.console-v2 .v2-twin-popover-close:hover,
|
|
.console-v2 .v2-twin-popover-close:focus-visible {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-color: var(--primary);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-card-focus > span:first-child,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-gateway > span,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-synced-device header > span {
|
|
color: var(--primary);
|
|
background: var(--accent);
|
|
border-color: color-mix(in oklch, var(--primary) 18%, var(--border));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-side-status-panel.is-collapsed,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-mount {
|
|
background: linear-gradient(180deg, var(--secondary), var(--accent));
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed > header > button,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-heading > button {
|
|
color: var(--primary);
|
|
background: transparent;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel.is-collapsed > header > button:hover,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel.is-collapsed .v2-extension-sync-heading > button:hover {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
}
|
|
|
|
.console-v2 .v2-reasoning-field {
|
|
color: var(--popover-foreground);
|
|
background: color-mix(in oklch, var(--popover) 98%, transparent);
|
|
border-color: var(--border);
|
|
box-shadow: 0 16px 38px color-mix(in oklch, var(--foreground) 20%, transparent);
|
|
}
|
|
|
|
.console-v2 .v2-reasoning-field > .field-label {
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.console-v2 .v2-reasoning-field .reasoning-option {
|
|
color: var(--muted-foreground);
|
|
}
|
|
|
|
.console-v2 .v2-reasoning-field .reasoning-option:hover,
|
|
.console-v2 .v2-reasoning-field .reasoning-option.active {
|
|
color: var(--accent-foreground);
|
|
background: var(--accent);
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2 .v2-reasoning-trigger {
|
|
color: var(--muted-foreground);
|
|
background: color-mix(in oklch, var(--muted) 96%, transparent);
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2 .v2-reasoning-trigger:hover,
|
|
.console-v2 .v2-reasoning-trigger.open {
|
|
color: var(--primary);
|
|
background: var(--accent);
|
|
border-color: color-mix(in oklch, var(--primary) 22%, var(--border));
|
|
}
|
|
|
|
.console-v2 .device-power-backdrop {
|
|
background: color-mix(in oklch, var(--foreground) 38%, transparent);
|
|
}
|
|
|
|
.console-v2 .device-power-drawer {
|
|
color: var(--popover-foreground);
|
|
background: color-mix(in oklch, var(--popover) 98%, transparent);
|
|
border-color: var(--border);
|
|
box-shadow: -18px 0 48px color-mix(in oklch, var(--foreground) 18%, transparent);
|
|
}
|
|
|
|
.console-v2 .device-power-drawer-heading {
|
|
background: var(--popover);
|
|
border-bottom-color: var(--border);
|
|
}
|
|
|
|
.console-v2 .device-power-drawer-heading > button,
|
|
.console-v2 .device-power-energy-summary > div,
|
|
.console-v2 .device-power-components,
|
|
.console-v2 .device-power-chart,
|
|
.console-v2 .device-power-unavailable {
|
|
color: var(--foreground);
|
|
background: var(--muted);
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2 .device-power-drawer-heading > button:hover {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
}
|
|
|
|
.console-v2 .device-power-total {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
box-shadow: 0 8px 20px color-mix(in oklch, var(--primary) 20%, transparent);
|
|
}
|
|
|
|
.console-v2 .toast {
|
|
color: var(--popover-foreground);
|
|
background: var(--popover);
|
|
border: 1px solid var(--border);
|
|
box-shadow: 0 14px 36px color-mix(in oklch, var(--foreground) 16%, transparent);
|
|
}
|
|
|
|
.console-v2 .v2-transport-field .mode-option {
|
|
color: var(--muted-foreground);
|
|
background: var(--secondary);
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2 .v2-transport-field .mode-option.active,
|
|
.console-v2 .v2-request-form .primary-action {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-color: var(--primary);
|
|
}
|
|
|
|
.console-v2 .v2-sync-log > header,
|
|
.console-v2.v2-interactive-sync .v2-sidebar-footer {
|
|
background: color-mix(in oklch, var(--card) 88%, transparent);
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2 .v2-sync-log header small {
|
|
color: var(--primary);
|
|
}
|
|
|
|
.console-v2 .v2-sync-log h3,
|
|
.console-v2 .v2-sync-log li strong {
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.console-v2 .v2-sync-log select {
|
|
color: var(--foreground);
|
|
background: var(--background);
|
|
border-color: var(--input);
|
|
}
|
|
|
|
.console-v2 .v2-sync-log time,
|
|
.console-v2 .v2-sync-log li small {
|
|
color: var(--muted-foreground);
|
|
}
|
|
|
|
.console-v2 .v2-sync-log li:not(:last-child)::after {
|
|
background: var(--border);
|
|
}
|
|
|
|
.console-v2 .v2-sync-log li > span {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
}
|
|
|
|
.console-v2 .v2-sync-log li[data-log-status="success"] > span {
|
|
color: var(--primary-foreground);
|
|
background: var(--chart-3);
|
|
}
|
|
|
|
.console-v2 .v2-sync-log li[data-log-status="error"] > span {
|
|
color: var(--primary-foreground);
|
|
background: var(--destructive);
|
|
}
|
|
|
|
/* Result modules: trace, configuration, CAN plan and execution feedback. */
|
|
.console-v2 .result-workspace .tab-panel,
|
|
.console-v2 .result-workspace .tab-panel[hidden] {
|
|
color: var(--card-foreground);
|
|
background: var(--card);
|
|
border-color: var(--border);
|
|
box-shadow: 0 6px 18px color-mix(in oklch, var(--foreground) 6%, transparent);
|
|
}
|
|
|
|
.console-v2 .result-workspace #panel-config.config-panel {
|
|
background: var(--muted);
|
|
}
|
|
|
|
.console-v2 .workspace-panel-title,
|
|
.console-v2 .result-workspace .config-panel-heading,
|
|
.console-v2 .decision-list li,
|
|
.console-v2 .config-card-header,
|
|
.console-v2 .config-object-block,
|
|
.console-v2 .config-parameters-block,
|
|
.console-v2 .config-hardware-block {
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2 .workspace-panel-state,
|
|
.console-v2 .result-workspace .tab-panel.v2-scrollable::after,
|
|
.console-v2 .config-domain-badge,
|
|
.console-v2 .config-signal-list code,
|
|
.console-v2 .result-item code {
|
|
color: var(--primary);
|
|
background: var(--accent);
|
|
}
|
|
|
|
.console-v2 .workspace-panel-state.succeeded {
|
|
color: color-mix(in oklch, var(--chart-3) 76%, var(--foreground));
|
|
background: color-mix(in oklch, var(--chart-1) 16%, var(--card));
|
|
}
|
|
|
|
.console-v2 .workspace-panel-state.partial,
|
|
.console-v2 .validation-item {
|
|
color: color-mix(in oklch, var(--chart-4) 76%, var(--foreground));
|
|
background: color-mix(in oklch, var(--chart-1) 12%, var(--card));
|
|
border-color: var(--chart-4);
|
|
}
|
|
|
|
.console-v2 .workspace-panel-state.failed,
|
|
.console-v2 .validation-item.error {
|
|
color: var(--destructive);
|
|
background: color-mix(in oklch, var(--destructive) 9%, var(--card));
|
|
border-color: var(--destructive);
|
|
}
|
|
|
|
.console-v2 .decision-list li,
|
|
.console-v2 .trace-event span,
|
|
.console-v2 .validation-item code,
|
|
.console-v2 .config-empty strong,
|
|
.console-v2 .config-object-name,
|
|
.console-v2 .config-route-node strong {
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.console-v2 .detail-heading span,
|
|
.console-v2 .trace-event small,
|
|
.console-v2 .empty-line,
|
|
.console-v2 .config-panel-heading p,
|
|
.console-v2 .config-card-identity small,
|
|
.console-v2 .config-block-label,
|
|
.console-v2 .config-object-path,
|
|
.console-v2 .config-parameter > span,
|
|
.console-v2 .config-route-node small,
|
|
.console-v2 .config-card-footer {
|
|
color: var(--muted-foreground);
|
|
}
|
|
|
|
.console-v2 .decision-list li::before,
|
|
.console-v2 .trace-event code,
|
|
.console-v2 .result-item > svg,
|
|
.console-v2 .config-route-arrow,
|
|
.console-v2 .config-signal-list .config-signal-more {
|
|
color: var(--primary);
|
|
}
|
|
|
|
.console-v2 .trace-list {
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2 .trace-event::before {
|
|
background: var(--primary);
|
|
border-color: var(--card);
|
|
}
|
|
|
|
.console-v2 .trace-event.failed::before {
|
|
background: var(--destructive);
|
|
}
|
|
|
|
.console-v2 .validation-block,
|
|
.console-v2 .result-item {
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2 .config-action,
|
|
.console-v2 .config-empty,
|
|
.console-v2 .config-card,
|
|
.console-v2 .config-parameter,
|
|
.console-v2 .config-route-node {
|
|
color: var(--foreground);
|
|
background: var(--card);
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2 .config-action:hover,
|
|
.console-v2 .config-action:focus-visible {
|
|
color: var(--accent-foreground);
|
|
background: var(--accent);
|
|
border-color: var(--ring);
|
|
}
|
|
|
|
.console-v2 .config-empty svg,
|
|
.console-v2 .config-card-icon,
|
|
.console-v2 .config-scene-icon {
|
|
color: var(--primary);
|
|
}
|
|
|
|
.console-v2 .config-scene-summary {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
}
|
|
|
|
.console-v2 .config-scene-icon {
|
|
background: color-mix(in oklch, var(--primary-foreground) 12%, transparent);
|
|
border-color: color-mix(in oklch, var(--primary-foreground) 20%, transparent);
|
|
}
|
|
|
|
.console-v2 .config-scene-copy span,
|
|
.console-v2 .config-scene-stats small,
|
|
.console-v2 .config-scene-stats b {
|
|
color: var(--primary-foreground);
|
|
}
|
|
|
|
.console-v2 .config-card.config-seat { --config-accent: var(--primary); }
|
|
.console-v2 .config-card.config-climate { --config-accent: var(--chart-2); }
|
|
.console-v2 .config-card.config-ambient { --config-accent: var(--chart-3); }
|
|
.console-v2 .config-card.config-roof { --config-accent: var(--chart-4); }
|
|
|
|
.console-v2 .config-card-icon,
|
|
.console-v2 .config-domain-badge {
|
|
background: color-mix(in oklch, var(--config-accent) 10%, var(--card));
|
|
}
|
|
|
|
.console-v2 .config-parameter,
|
|
.console-v2 .config-card-footer,
|
|
.console-v2 .config-hardware-block {
|
|
background: var(--muted);
|
|
}
|
|
|
|
.console-v2 .config-source-details,
|
|
.console-v2 .code-panel,
|
|
.console-v2 pre,
|
|
.console-v2 .plan-panel .frame-summary,
|
|
.console-v2 .frame-summary {
|
|
color: var(--primary-foreground);
|
|
background: color-mix(in oklch, var(--foreground) 90%, var(--background));
|
|
border-color: color-mix(in oklch, var(--primary) 24%, transparent);
|
|
}
|
|
|
|
.console-v2 .config-source-details summary,
|
|
.console-v2 .code-toolbar {
|
|
color: var(--primary-foreground);
|
|
background: color-mix(in oklch, var(--foreground) 82%, var(--background));
|
|
border-color: color-mix(in oklch, var(--primary) 20%, transparent);
|
|
}
|
|
|
|
.console-v2 .config-source-details summary svg,
|
|
.console-v2 .frame-summary code {
|
|
color: var(--chart-1);
|
|
}
|
|
|
|
.console-v2 .config-source-details summary small,
|
|
.console-v2 .frame-summary span {
|
|
color: color-mix(in oklch, var(--primary-foreground) 68%, transparent);
|
|
}
|
|
|
|
.console-v2 .execution-summary {
|
|
color: var(--foreground);
|
|
background: var(--muted);
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2 .execution-summary.succeeded {
|
|
background: color-mix(in oklch, var(--chart-1) 14%, var(--card));
|
|
border-color: var(--chart-3);
|
|
}
|
|
|
|
.console-v2 .execution-summary.partial {
|
|
background: color-mix(in oklch, var(--chart-2) 12%, var(--card));
|
|
border-color: var(--chart-4);
|
|
}
|
|
|
|
.console-v2 .execution-summary.failed {
|
|
background: color-mix(in oklch, var(--destructive) 9%, var(--card));
|
|
border-color: var(--destructive);
|
|
}
|
|
|
|
/* Control clarity and collapsible function modes ------------------------ */
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-operation-shell {
|
|
z-index: 20;
|
|
overflow: visible;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail {
|
|
min-width: 0;
|
|
position: relative;
|
|
display: block;
|
|
grid-column: 1;
|
|
grid-row: 3;
|
|
padding: 0;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-rail-heading {
|
|
min-width: 0;
|
|
display: flex !important;
|
|
grid-column: 1 / -1;
|
|
grid-row: 1;
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail #saveModeToggle {
|
|
display: inline-flex !important;
|
|
min-height: 36px;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 7px 10px;
|
|
color: var(--primary);
|
|
background: var(--accent);
|
|
border-color: color-mix(in oklch, var(--primary) 22%, var(--border));
|
|
border-radius: var(--radius);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-chips {
|
|
min-width: 0;
|
|
display: flex;
|
|
grid-column: 1;
|
|
grid-row: 2;
|
|
gap: 7px;
|
|
padding: 1px;
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-chips button {
|
|
min-width: 98px;
|
|
min-height: 36px;
|
|
padding: 7px 11px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-rail-controls {
|
|
min-width: max-content;
|
|
display: flex !important;
|
|
grid-column: 2;
|
|
grid-row: 2;
|
|
align-items: center;
|
|
gap: 6px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .mode-gallery-toggle {
|
|
min-height: 36px;
|
|
padding: 6px 10px;
|
|
color: var(--primary);
|
|
background: var(--accent);
|
|
border-color: color-mix(in oklch, var(--primary) 22%, var(--border));
|
|
border-radius: var(--radius);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail .save-mode-composer {
|
|
grid-column: 1 / -1;
|
|
grid-row: 3;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-execution-field .execution-mode-options {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-transport-field .mode-option,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-sync-execution-field .mode-option {
|
|
min-height: 38px;
|
|
font-size: var(--text-control);
|
|
}
|
|
|
|
.console-v2 button,
|
|
.console-v2 button span,
|
|
.console-v2 button strong,
|
|
.console-v2 button small,
|
|
.console-v2 button b {
|
|
font-size: var(--text-control) !important;
|
|
}
|
|
|
|
.console-v2 input,
|
|
.console-v2 textarea,
|
|
.console-v2 select {
|
|
font-size: var(--text-input) !important;
|
|
}
|
|
|
|
.console-v2 label,
|
|
.console-v2 .field-label,
|
|
.console-v2 dt {
|
|
font-size: var(--text-label) !important;
|
|
}
|
|
|
|
.console-v2 .provider-note,
|
|
.console-v2 .composer-hint,
|
|
.console-v2 .v2-sidebar-footer small,
|
|
.console-v2 .v2-task-timeline i {
|
|
font-size: var(--text-caption) !important;
|
|
}
|
|
|
|
.console-v2 .device-state,
|
|
.console-v2 .workspace-panel-state,
|
|
.console-v2 .v2-task-state,
|
|
.console-v2 .simulation-label,
|
|
.console-v2 .seat-channel-badge {
|
|
font-size: var(--text-caption);
|
|
}
|
|
|
|
/* Inline function-mode collapsible and semantic command fields ---------- */
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail {
|
|
min-width: 0;
|
|
position: relative;
|
|
display: block;
|
|
grid-column: 1;
|
|
grid-row: 3;
|
|
padding: 0;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail > .mode-rail-bar {
|
|
width: 100%;
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 9px;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-title {
|
|
color: var(--foreground);
|
|
font-size: var(--text-label);
|
|
font-weight: 850;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-toggle,
|
|
.console-v2 .v2-mode-rail > .mode-rail-bar > .mode-gallery-toggle {
|
|
min-width: 0;
|
|
min-height: 38px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
padding: 7px 11px;
|
|
color: var(--foreground);
|
|
background: var(--card);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius);
|
|
box-shadow: 0 5px 14px color-mix(in oklch, var(--foreground) 6%, transparent);
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-toggle {
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-toggle:hover,
|
|
.console-v2 .v2-mode-rail .mode-rail-toggle:focus-visible,
|
|
.console-v2 .v2-mode-rail > .mode-rail-bar > .mode-gallery-toggle:hover,
|
|
.console-v2 .v2-mode-rail > .mode-rail-bar > .mode-gallery-toggle:focus-visible {
|
|
color: var(--accent-foreground);
|
|
background: var(--accent);
|
|
border-color: var(--ring);
|
|
outline: none;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-toggle svg,
|
|
.console-v2 .v2-mode-rail > .mode-rail-bar > .mode-gallery-toggle svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-toggle svg:last-child {
|
|
transition: transform 160ms ease;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail .mode-rail-toggle[aria-expanded="true"] svg:last-child {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail > .mode-rail-bar > .mode-gallery-toggle {
|
|
color: var(--primary);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail > .mode-rail-bar > .mode-gallery-toggle strong {
|
|
min-width: 20px;
|
|
min-height: 20px;
|
|
display: inline-grid;
|
|
place-items: center;
|
|
padding: 0 5px;
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail > .mode-rail-content[hidden] {
|
|
display: none !important;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail > .mode-rail-content {
|
|
min-width: 0;
|
|
position: static;
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 9px;
|
|
margin-top: 8px;
|
|
padding: 10px;
|
|
color: var(--card-foreground);
|
|
background: var(--card);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius);
|
|
box-shadow: 0 12px 28px color-mix(in oklch, var(--foreground) 10%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail > .mode-rail-content .mode-rail-heading {
|
|
min-width: 0;
|
|
display: flex !important;
|
|
grid-column: 1 / -1;
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail > .mode-rail-content .mode-chips {
|
|
min-width: 0;
|
|
display: flex;
|
|
grid-column: 1;
|
|
grid-row: auto;
|
|
gap: 7px;
|
|
padding: 1px;
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail > .mode-rail-content .mode-rail-controls {
|
|
min-width: max-content;
|
|
display: flex !important;
|
|
grid-column: 2;
|
|
grid-row: auto;
|
|
align-items: center;
|
|
gap: 6px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail > .mode-rail-content .save-mode-composer {
|
|
width: auto;
|
|
position: static;
|
|
grid-column: 1 / -1;
|
|
grid-row: auto;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel] .v2-can-command-channel {
|
|
color: var(--command-channel);
|
|
background: color-mix(in oklch, var(--command-channel) 12%, var(--card));
|
|
border-color: color-mix(in oklch, var(--command-channel) 30%, var(--border));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel] .v2-can-command-source {
|
|
color: var(--command-source);
|
|
background: color-mix(in oklch, var(--command-source) 12%, var(--card));
|
|
border-color: color-mix(in oklch, var(--command-source) 30%, var(--border));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel] .v2-can-command-delivery {
|
|
color: var(--command-pending);
|
|
background: var(--muted);
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel] .v2-can-command-delivery[data-delivery-state="submitted"] {
|
|
color: var(--command-delivered);
|
|
background: color-mix(in oklch, var(--command-delivered) 12%, var(--card));
|
|
border-color: color-mix(in oklch, var(--command-delivered) 30%, var(--border));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel] .v2-can-command-category {
|
|
color: var(--command-category);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel] code {
|
|
color: var(--command-control);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel] .v2-can-command-frame {
|
|
color: var(--command-frame);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-command-timing {
|
|
color: var(--muted-foreground);
|
|
background: color-mix(in oklch, var(--accent) 55%, transparent);
|
|
border-top-color: var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-command-timing > header span {
|
|
color: var(--command-source);
|
|
background: color-mix(in oklch, var(--command-source) 12%, var(--card));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-command-timing > header b,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-command-timing li b {
|
|
color: var(--primary);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel] .v2-can-command-layer > small {
|
|
color: var(--muted-foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel] .v2-can-command-semantic {
|
|
background: color-mix(in oklch, var(--command-source) 8%, var(--card));
|
|
border-left-color: color-mix(in oklch, var(--command-source) 52%, var(--border));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel] .v2-can-command-semantic code {
|
|
color: var(--command-source);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-can-command-list li[data-can-channel] .v2-can-command-actual {
|
|
background: color-mix(in oklch, var(--primary) 8%, var(--card));
|
|
border-left-color: color-mix(in oklch, var(--primary) 52%, var(--border));
|
|
}
|
|
|
|
@media (max-width: 1120px) {
|
|
.console-v2 .v2-mode-rail > .mode-rail-bar {
|
|
grid-template-columns: auto minmax(150px, 1fr) auto;
|
|
}
|
|
|
|
.console-v2 .v2-mode-rail > .mode-rail-content {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail > .mode-rail-content .mode-chips,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail > .mode-rail-content .mode-rail-controls {
|
|
grid-column: 1;
|
|
}
|
|
}
|
|
|
|
/* Final cascade: show every mode in a floating, vertically scrollable grid. */
|
|
.console-v2 .v2-mode-rail > .mode-rail-content {
|
|
width: 100%;
|
|
max-height: clamp(180px, calc(100dvh - 210px), 420px);
|
|
position: absolute;
|
|
top: calc(100% + 8px);
|
|
right: 0;
|
|
left: 0;
|
|
display: block;
|
|
grid-template-columns: none;
|
|
margin-top: 0;
|
|
overflow-x: hidden;
|
|
overflow-y: auto;
|
|
overscroll-behavior: contain;
|
|
scrollbar-gutter: stable;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail > .mode-rail-content .mode-chips {
|
|
width: 100%;
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
|
|
grid-column: auto;
|
|
gap: 8px;
|
|
padding: 0;
|
|
overflow: visible;
|
|
scroll-behavior: auto;
|
|
overscroll-behavior: auto;
|
|
touch-action: auto;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail > .mode-rail-content .mode-chips > button {
|
|
width: 100%;
|
|
min-width: 0;
|
|
min-height: 38px;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-mode-rail > .mode-rail-content .mode-group-divider {
|
|
width: auto;
|
|
height: 1px;
|
|
grid-column: 1 / -1;
|
|
margin: 1px 0;
|
|
}
|
|
|
|
/* AI assistant light-blue final override --------------------------------
|
|
This is the actual final color layer; layout rules above remain intact. */
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .workspace {
|
|
grid-template-columns: 0 minmax(0, 1fr);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync.v2-sidebar-collapsed .command-panel.v2-sidebar {
|
|
width: 0;
|
|
min-width: 0;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
border: 0;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 0;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels] .v2-unified-right-rail {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
gap: 0;
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels="none"] .v2-unified-right-rail,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels] .v2-unified-right-rail[hidden],
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell[data-open-panels] .v2-unified-right-rail.is-collapsed {
|
|
display: none !important;
|
|
}
|
|
|
|
@media (max-width: 1180px) {
|
|
.console-v2.v2-passive-display.v2-interactive-sync {
|
|
min-width: 0;
|
|
}
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .workspace {
|
|
color: var(--body-foreground);
|
|
background:
|
|
radial-gradient(circle at 76% -10%, color-mix(in oklch, var(--primary) 13%, transparent), transparent 32%),
|
|
linear-gradient(145deg, var(--background), var(--secondary));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel {
|
|
color: var(--body-foreground);
|
|
background:
|
|
radial-gradient(circle at 42% -12%, color-mix(in oklch, var(--card) 92%, transparent), transparent 37%),
|
|
linear-gradient(150deg, var(--background), color-mix(in oklch, var(--secondary) 78%, var(--background)));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .command-panel.v2-sidebar {
|
|
color: var(--body-foreground);
|
|
background:
|
|
radial-gradient(circle at 12% 2%, color-mix(in oklch, var(--card) 88%, transparent), transparent 24%),
|
|
linear-gradient(158deg, var(--sidebar), var(--sidebar-accent));
|
|
border-right-color: var(--sidebar-border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-module-switcher,
|
|
.console-v2 .main-panel > .v2-mode-rail > .mode-rail-bar {
|
|
color: var(--body-foreground);
|
|
background: color-mix(in oklch, var(--card) 88%, var(--accent));
|
|
border-color: var(--border);
|
|
box-shadow: 0 6px 20px color-mix(in oklch, var(--foreground) 7%, transparent);
|
|
}
|
|
|
|
.console-v2 .v2-unified-title,
|
|
.console-v2 .v2-sidebar-title,
|
|
.console-v2 .v2-operation-heading h2,
|
|
.console-v2 .v2-output-heading h2,
|
|
.console-v2 .joint-twin-shell .twin-heading h3,
|
|
.console-v2 .v2-device-sync-board > header h3,
|
|
.console-v2 .v2-extension-sync-heading h3,
|
|
.console-v2 .workspace-panel-title h3,
|
|
.console-v2 .config-panel-heading h3 {
|
|
color: var(--heading-foreground);
|
|
}
|
|
|
|
.console-v2 .v2-unified-subtitle,
|
|
.console-v2 .v2-operation-heading p,
|
|
.console-v2 .v2-output-heading p,
|
|
.console-v2 .provider-note,
|
|
.console-v2 .v2-task-timeline,
|
|
.console-v2 .v2-device-sync-board > header small,
|
|
.console-v2 .v2-extension-sync-heading small {
|
|
color: var(--subtle-foreground);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button {
|
|
color: var(--body-foreground);
|
|
background: color-mix(in oklch, var(--card) 88%, var(--secondary));
|
|
border-color: var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button:hover,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button:focus-visible {
|
|
color: var(--accent-foreground);
|
|
background: var(--accent);
|
|
border-color: var(--ring);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button.active,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button[aria-pressed="true"],
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button.running {
|
|
color: var(--primary-foreground);
|
|
background: var(--primary);
|
|
border-color: var(--primary);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button.succeeded {
|
|
color: var(--status-success-foreground);
|
|
background: var(--status-success-soft);
|
|
border-color: color-mix(in oklch, var(--status-success) 38%, var(--border));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .main-panel > .v2-mode-rail .mode-chips > button.failed {
|
|
color: var(--status-error-foreground);
|
|
background: var(--status-error-soft);
|
|
border-color: color-mix(in oklch, var(--status-error) 38%, var(--border));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell > .twin-band,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2DevicePanel,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-sync-mount {
|
|
color: var(--body-foreground);
|
|
background:
|
|
radial-gradient(circle at 82% 0%, color-mix(in oklch, var(--primary) 8%, transparent), transparent 18rem),
|
|
var(--card);
|
|
border-color: var(--border);
|
|
box-shadow: 0 14px 32px color-mix(in oklch, var(--foreground) 8%, transparent);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-heading,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-device-sync-board > header,
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-extension-sync-heading {
|
|
color: var(--heading-foreground);
|
|
background: linear-gradient(90deg, var(--secondary), color-mix(in oklch, var(--card) 92%, var(--accent)));
|
|
border-bottom-color: var(--border);
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .joint-twin-shell .twin-stage {
|
|
background:
|
|
radial-gradient(ellipse at 53% 57%, color-mix(in oklch, var(--primary) 13%, transparent), transparent 41%),
|
|
linear-gradient(165deg, var(--card), var(--secondary));
|
|
}
|
|
|
|
.console-v2.v2-passive-display.v2-interactive-sync .v2-synced-device,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-gateway,
|
|
.console-v2.v2-passive-display.v2-interactive-sync #v2ExtensionPanel .v2-extension-synced-device {
|
|
color: var(--body-foreground);
|
|
background: color-mix(in oklch, var(--card) 82%, var(--secondary));
|
|
border-color: var(--border);
|
|
box-shadow: 0 5px 14px color-mix(in oklch, var(--foreground) 6%, transparent);
|
|
}
|