/* Seat self-repair workspace --------------------------------------------- */ .console-v2[data-module="self-repair"] { --repair-deep-blue: var(--v2-accent-strong); --repair-active-blue: color-mix(in srgb, var(--v2-accent) 58%, white); --repair-pending: #a7b0b4; --repair-warn: #d69738; --repair-danger: #c45656; --repair-heading: color-mix(in srgb, var(--v2-accent-strong) 78%, #1f2c33); --repair-ink: color-mix(in srgb, var(--v2-accent-strong) 24%, #34434b); --repair-muted: color-mix(in srgb, var(--v2-accent) 18%, #748185); --repair-soft: color-mix(in srgb, var(--v2-accent-soft) 42%, white); --repair-soft-strong: color-mix(in srgb, var(--v2-accent-soft) 72%, white); --repair-surface: rgba(255, 255, 255, 0.9); --repair-line: color-mix(in srgb, var(--v2-accent) 15%, transparent); } .console-v2[data-module="self-repair"] .section-kicker { color: var(--v2-accent); } .console-v2 .v2-repair-sidebar, .console-v2 .v2-repair-footer, .console-v2 .v2-self-repair { display: none; } .console-v2[data-module="self-repair"] .v2-control-section, .console-v2[data-module="self-repair"] .v2-config-section, .console-v2[data-module="self-repair"] .v2-sidebar > .v2-sidebar-footer:not(.v2-repair-footer), .console-v2[data-module="self-repair"] .v2-operation-shell, .console-v2[data-module="self-repair"] .v2-output-shell { display: none; } .console-v2[data-module="self-repair"] .v2-role-select .v2-dropdown-trigger { pointer-events: none; } .console-v2[data-module="self-repair"] .v2-role-select .v2-dropdown-caret { display: none; } .console-v2[data-module="self-repair"] .v2-repair-sidebar { min-height: 0; display: flex; flex: 1; flex-direction: column; margin-top: clamp(20px, 3vh, 36px); overflow: hidden; } .console-v2[data-module="self-repair"] .v2-repair-footer { display: grid; } .console-v2.v2-sidebar-collapsed[data-module="self-repair"] .v2-repair-sidebar, .console-v2.v2-sidebar-collapsed[data-module="self-repair"] .v2-repair-footer { display: none; } .console-v2[data-module="self-repair"] .main-panel { grid-template-rows: 36px minmax(0, 1fr); } .console-v2[data-module="self-repair"] .v2-self-repair { min-width: 0; min-height: 0; display: grid; grid-row: 2; grid-template-rows: auto minmax(0, 1fr); gap: 11px; padding: clamp(12px, 1.35vw, 20px) 0 0; overflow: hidden; } .v2-repair-sidebar > .v2-field-caption { display: block; margin: 0 0 8px; color: var(--repair-muted); font-size: 13px; font-weight: 750; } .v2-repair-view-switch { display: grid; gap: 7px; } .v2-repair-view-switch button { min-height: 58px; display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 10px; padding: 8px 13px; color: color-mix(in srgb, var(--v2-accent-strong) 56%, #65787a); background: transparent; border: 1px solid transparent; border-radius: 13px; text-align: left; cursor: pointer; transition: 160ms ease; } .v2-repair-view-switch button:hover { color: var(--v2-accent-strong); background: color-mix(in srgb, var(--v2-accent-soft) 68%, white); border-color: color-mix(in srgb, var(--v2-accent) 14%, white); } .v2-repair-view-switch button.active { color: var(--v2-accent-strong); background: color-mix(in srgb, var(--v2-accent-soft) 82%, white); border-color: color-mix(in srgb, var(--v2-accent) 24%, white); box-shadow: 0 10px 28px color-mix(in srgb, var(--v2-accent) 14%, transparent); } .v2-repair-view-switch button > svg { width: 19px; height: 19px; justify-self: center; color: color-mix(in srgb, var(--v2-accent) 76%, #718486); } .v2-repair-view-switch button.active > svg { color: var(--v2-accent-strong); } .v2-repair-view-switch button > span { min-width: 0; display: grid; gap: 2px; } .v2-repair-view-switch strong, .v2-repair-view-switch small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .v2-repair-view-switch strong { font-size: 15px; } .v2-repair-view-switch small { color: color-mix(in srgb, var(--v2-accent) 34%, #829092); font-size: 10px; font-weight: 600; } .v2-repair-view-switch button.active small { color: color-mix(in srgb, var(--v2-accent-strong) 62%, #829092); } .v2-repair-config-stack { display: grid; gap: 7px; } .v2-repair-config-card { min-width: 0; min-height: 50px; display: grid; grid-template-columns: 27px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 8px 10px; color: var(--repair-ink); background: rgba(255, 255, 255, 0.52); border: 1px solid var(--repair-line); border-radius: 13px; } .v2-repair-config-card > svg { width: 17px; height: 17px; color: var(--v2-accent); } .v2-repair-config-card > div { min-width: 0; display: grid; gap: 1px; } .v2-repair-config-card small { color: var(--repair-muted); font-size: 10px; font-weight: 650; } .v2-repair-config-card strong { overflow: hidden; color: var(--repair-heading); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; } .v2-repair-config-card > span { color: var(--v2-accent-strong); font: 800 9px/1.1 "IBM Plex Mono", Consolas, monospace; } .repair-execution-card .v2-config-card-select, .repair-execution-card .v2-custom-select { min-width: 0; } .repair-execution-card .v2-dropdown-trigger { min-height: 21px; padding: 0; color: var(--repair-heading); background: transparent; border: 0; font-size: 13px; font-weight: 800; box-shadow: none; } .v2-repair-config-note { margin: 8px 2px 0; color: var(--repair-muted); font-size: 10px; line-height: 1.45; } .v2-repair-heading { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 16px; padding: 0 2px; } .v2-repair-heading h1 { margin: 2px 0 2px; color: var(--v2-accent-strong); font-size: clamp(21px, 2vw, 30px); line-height: 1; letter-spacing: -0.045em; } .v2-repair-heading p { margin: 0; color: var(--repair-muted); font-size: 11px; } .v2-repair-status-grid { display: grid; grid-template-columns: repeat(3, minmax(105px, 1fr)); gap: 7px; } .v2-repair-status-grid > div { min-width: 0; min-height: 43px; display: grid; grid-template-columns: 8px minmax(0, 1fr); align-items: center; gap: 7px; padding: 7px 10px; background: rgba(255, 255, 255, 0.7); border: 1px solid var(--repair-line); border-radius: 12px; } .v2-repair-status-grid i { width: 7px; height: 7px; border-radius: 50%; background: #a8b3b3; box-shadow: 0 0 0 3px rgba(132, 150, 150, 0.09); } .v2-repair-status-grid i[data-state="online"] { background: #2aa694; box-shadow: 0 0 0 3px rgba(42, 166, 148, 0.12); } .v2-repair-status-grid i[data-state="working"] { background: var(--repair-active-blue); box-shadow: 0 0 0 3px rgba(115, 166, 232, 0.15); } .v2-repair-status-grid span { min-width: 0; display: grid; } .v2-repair-status-grid small { color: var(--repair-muted); font-size: 8px; } .v2-repair-status-grid strong { overflow: hidden; color: var(--repair-ink); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; } .v2-repair-view { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 9px; overflow: hidden; } .v2-repair-view[hidden] { display: none; } .v2-repair-toolbar { min-width: 0; min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 11px; background: rgba(255, 255, 255, 0.66); border: 1px solid var(--repair-line); border-radius: 14px; } .v2-repair-toolbar > div:first-child { min-width: 0; display: flex; align-items: center; gap: 10px; } .v2-repair-toolbar > div:first-child > span { color: var(--v2-accent); font: 800 11px "IBM Plex Mono", Consolas, monospace; } .v2-repair-toolbar h2, .v2-repair-toolbar p { margin: 0; } .v2-repair-toolbar h2 { color: var(--repair-heading); font-size: 16px; } .v2-repair-toolbar p { overflow: hidden; color: var(--repair-muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; } .v2-repair-toolbar > div:last-child { display: flex; align-items: center; justify-content: flex-end; gap: 6px; } .v2-repair-toolbar button { min-height: 32px; display: inline-flex; align-items: center; gap: 5px; padding: 0 10px; color: var(--repair-ink); background: rgba(255, 255, 255, 0.86); border: 1px solid var(--repair-line); border-radius: 10px; font-size: 10px; font-weight: 750; cursor: pointer; transition: color 160ms ease, background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; } .v2-repair-toolbar button svg { width: 13px; height: 13px; } .v2-repair-toolbar button:hover:not(:disabled) { color: var(--v2-accent-strong); border-color: color-mix(in srgb, var(--v2-accent) 30%, white); transform: translateY(-1px); } .v2-repair-toolbar button.primary { color: #fff; background: linear-gradient(145deg, var(--v2-accent), var(--v2-accent-strong)); border-color: color-mix(in srgb, var(--v2-accent-strong) 74%, transparent); box-shadow: 0 7px 16px color-mix(in srgb, var(--v2-accent) 21%, transparent); } .v2-repair-toolbar button.primary:hover:not(:disabled) { color: #fff; background: linear-gradient(145deg, color-mix(in srgb, var(--v2-accent) 86%, white), var(--v2-accent-strong)); border-color: var(--v2-accent-strong); box-shadow: 0 10px 22px color-mix(in srgb, var(--v2-accent) 30%, transparent); } .v2-repair-toolbar button.primary:active:not(:disabled) { color: #fff; background: var(--v2-accent-strong); box-shadow: 0 3px 9px color-mix(in srgb, var(--v2-accent) 24%, transparent); transform: translateY(0); } .v2-repair-toolbar button:focus-visible { outline: 2px solid color-mix(in srgb, var(--v2-accent) 42%, white); outline-offset: 2px; } .v2-repair-toolbar button:disabled { cursor: not-allowed; opacity: 0.48; } .v2-repair-toolbar button.primary:disabled { color: color-mix(in srgb, var(--v2-accent-strong) 42%, white); background: var(--v2-accent-soft); border-color: color-mix(in srgb, var(--v2-accent) 16%, white); box-shadow: none; opacity: 1; } .v2-repair-software-grid { min-width: 0; min-height: 0; display: grid; grid-template-areas: "twin cases timeline"; grid-template-columns: minmax(280px, 1.18fr) minmax(185px, 0.66fr) minmax(330px, 1.32fr); gap: 9px; overflow: hidden; } .v2-repair-panel { min-width: 0; min-height: 0; overflow: hidden; background: var(--repair-surface); border: 1px solid var(--repair-line); border-radius: 16px; box-shadow: 0 12px 32px color-mix(in srgb, var(--v2-accent) 7%, transparent); } .v2-repair-panel > header { min-height: 49px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 12px; border-bottom: 1px solid var(--repair-line); } .v2-repair-panel > header h2, .v2-repair-panel > header p { margin: 0; } .v2-repair-panel > header h2 { color: var(--repair-heading); font-size: 14px; } .v2-repair-panel > header b { color: var(--v2-accent-strong); font: 800 10px "IBM Plex Mono", Consolas, monospace; } .v2-repair-cases-panel { grid-area: cases; display: grid; grid-template-rows: auto auto auto minmax(0, 1fr); } .v2-repair-overall-progress { height: 8px; margin: 10px 12px 5px; overflow: hidden; background: #fff; border: 1px solid var(--repair-line); border-radius: 999px; } .v2-repair-overall-progress span { width: 0; height: 100%; display: block; background: linear-gradient(90deg, var(--repair-active-blue), var(--repair-deep-blue)); border-radius: inherit; transition: width 260ms ease; } #repairBatchSummary { margin: 0 12px 7px; overflow: hidden; color: var(--repair-muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; } .v2-repair-case-list { min-height: 0; display: grid; align-content: start; gap: 6px; padding: 0 10px 10px; overflow: auto; } .v2-repair-case-list button { min-width: 0; min-height: 51px; display: grid; grid-template-columns: 29px minmax(0, 1fr) 7px; align-items: center; gap: 8px; padding: 7px 9px; color: var(--repair-ink); background: var(--repair-soft); border: 1px solid transparent; border-radius: 12px; text-align: left; cursor: pointer; } .v2-repair-case-list button.selected { background: #fff; border-color: color-mix(in srgb, var(--v2-accent) 22%, white); box-shadow: 0 7px 20px color-mix(in srgb, var(--v2-accent) 10%, transparent); } .v2-repair-case-list button > span { color: var(--v2-accent-strong); font: 800 12px "IBM Plex Mono", Consolas, monospace; } .v2-repair-case-list button > div { min-width: 0; display: grid; gap: 2px; } .v2-repair-case-list strong, .v2-repair-case-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .v2-repair-case-list strong { font-size: 11px; } .v2-repair-case-list small { color: var(--repair-muted); font-size: 8px; } .v2-repair-case-list button > i { width: 7px; height: 7px; border-radius: 50%; background: var(--repair-pending); } .v2-repair-case-list button[data-state="active"] > i { background: var(--repair-active-blue); } .v2-repair-case-list button[data-state="complete"] > i { background: var(--repair-deep-blue); } .v2-repair-case-list button[data-state="failed"] > i { background: var(--repair-danger); } .v2-repair-twin-panel, .v2-repair-timeline-panel { display: grid; grid-template-rows: auto minmax(0, 1fr); } .v2-repair-twin-panel { grid-area: twin; } .v2-repair-timeline-panel { grid-area: timeline; } .v2-repair-seat-viewer { min-height: 0; position: relative; overflow: hidden; cursor: grab; touch-action: none; user-select: none; background: radial-gradient(circle at 52% 38%, rgba(255, 255, 255, 0.95), transparent 34%), linear-gradient(150deg, color-mix(in srgb, var(--v2-accent-soft) 42%, white), color-mix(in srgb, var(--v2-accent-soft) 76%, #dfe7ef)); } .v2-repair-seat-viewer.dragging { cursor: grabbing; } #repairSeatCanvas { width: 100%; height: 100%; display: block; pointer-events: none; } .v2-repair-orbit-hint, .v2-repair-twin-live { pointer-events: none; } .v2-repair-seat-viewer.fallback #repairSeatCanvas { visibility: hidden; } .v2-repair-seat-fallback { --repair-slide: 2px; --repair-lift: -1px; --repair-back: -20deg; --repair-leg: 7deg; position: absolute; inset: 5px 8px 72px; display: grid; place-items: center; perspective: 680px; } .repair-css-seat { width: 164px; height: 250px; position: relative; filter: drop-shadow(20px 24px 18px color-mix(in srgb, var(--v2-accent-strong) 22%, transparent)); transform: translate3d(0, var(--repair-lift), 0) rotateX(4deg) rotateY(-23deg); transform-style: preserve-3d; transition: transform 360ms ease; } .repair-css-seat > div { position: absolute; border: 1px solid color-mix(in srgb, var(--v2-accent-strong) 22%, transparent); box-shadow: inset -9px -8px 14px color-mix(in srgb, var(--v2-accent-strong) 16%, transparent), inset 8px 6px 15px rgba(255, 255, 255, 0.55); transform-style: preserve-3d; } .repair-css-back { width: 104px; height: 128px; top: 38px; left: 31px; z-index: 3; overflow: hidden; background: linear-gradient(145deg, color-mix(in srgb, var(--v2-accent-soft) 76%, white), color-mix(in srgb, var(--v2-accent) 58%, white)); border-radius: 34px 34px 23px 23px; transform: rotateX(var(--repair-back)); transform-origin: 50% 100%; transition: transform 360ms ease; } .repair-css-back::before, .repair-css-cushion::before { position: absolute; inset: 13px 19px; content: ""; background: repeating-linear-gradient(105deg, color-mix(in srgb, var(--v2-accent) 22%, transparent) 0 2px, transparent 2px 10px); border: 1px solid rgba(255, 255, 255, 0.25); border-radius: 24px; } .repair-css-back i, .repair-css-cushion i { position: absolute; inset: 0; background: radial-gradient(circle at 48% 44%, color-mix(in srgb, var(--v2-accent) 34%, transparent), transparent 43%); opacity: 0; transition: opacity 260ms ease; } .repair-css-headrest { width: 68px; height: 45px; top: 0; left: 49px; z-index: 4; background: linear-gradient(145deg, color-mix(in srgb, var(--v2-accent-soft) 72%, white), color-mix(in srgb, var(--v2-accent) 54%, white)); border-radius: 25px 25px 18px 18px; } .repair-css-headrest::before, .repair-css-headrest::after { width: 4px; height: 20px; position: absolute; bottom: -16px; content: ""; background: color-mix(in srgb, var(--v2-accent-strong) 64%, #83909b); } .repair-css-headrest::before { left: 20px; } .repair-css-headrest::after { right: 20px; } .repair-css-cushion { width: 126px; height: 75px; top: 152px; left: 20px; z-index: 4; overflow: hidden; background: linear-gradient(150deg, color-mix(in srgb, var(--v2-accent-soft) 74%, white), color-mix(in srgb, var(--v2-accent) 56%, white)); border-radius: 25px 25px 31px 31px; transform: translateZ(23px) translateY(var(--repair-lift)) rotateX(65deg) translateZ(10px); transition: transform 360ms ease; } .repair-css-cushion::before { inset: 10px 20px; } .repair-css-legrest { width: 85px; height: 63px; top: 202px; left: 40px; z-index: 2; background: linear-gradient(160deg, color-mix(in srgb, var(--v2-accent-soft) 68%, white), color-mix(in srgb, var(--v2-accent-strong) 58%, white)); border-radius: 17px 17px 25px 25px; transform: rotateX(var(--repair-leg)) translateZ(8px); transform-origin: 50% 0; transition: transform 360ms ease; } .repair-css-base { width: 103px; height: 30px; top: 207px; left: 31px; z-index: 1; background: var(--v2-accent-strong); border-radius: 8px 8px 17px 17px; transform: translate3d(0, 17px, -28px); } .repair-css-rails { width: 130px; height: 38px; top: 233px; left: 17px; border: 0 !important; box-shadow: none !important; transform: translateX(var(--repair-slide)); transition: transform 360ms ease; } .repair-css-rails i { width: 9px; height: 78px; position: absolute; top: -25px; background: linear-gradient(color-mix(in srgb, var(--v2-accent) 36%, #a6afb7), var(--v2-accent-strong)); border-radius: 5px; transform: rotateX(70deg); } .repair-css-rails i:first-child { left: 26px; } .repair-css-rails i:last-child { right: 26px; } .repair-css-halo { width: 225px; height: 75px; position: absolute; bottom: 2px; border: 2px solid color-mix(in srgb, var(--v2-accent) 30%, transparent); border-radius: 50%; box-shadow: 0 0 25px color-mix(in srgb, var(--v2-accent) 16%, transparent); } .v2-repair-seat-fallback.active .repair-css-halo { animation: repair-halo 1.4s ease-in-out infinite; } .v2-repair-seat-fallback.failed .repair-css-halo { border-color: rgba(201, 77, 81, 0.7); } .v2-repair-seat-fallback.heating .repair-css-back i, .v2-repair-seat-fallback.heating .repair-css-cushion i { background: radial-gradient(circle, rgba(241, 131, 69, 0.52), transparent 55%); opacity: 1; } .v2-repair-seat-fallback.ventilating .repair-css-back i, .v2-repair-seat-fallback.ventilating .repair-css-cushion i { opacity: 1; } @keyframes repair-halo { 50% { opacity: 0.46; transform: scale(1.08); } } .v2-repair-model-loading { position: absolute; inset: 0; z-index: 2; display: grid; place-content: center; place-items: center; gap: 5px; color: var(--repair-heading); background: color-mix(in srgb, var(--v2-accent-soft) 76%, rgba(255, 255, 255, 0.9)); transition: opacity 240ms ease, visibility 240ms ease; } .v2-repair-seat-viewer.ready .v2-repair-model-loading { visibility: hidden; opacity: 0; } .v2-repair-model-loading > span { width: 24px; height: 24px; border: 2px solid color-mix(in srgb, var(--v2-accent) 20%, transparent); border-top-color: var(--v2-accent); border-radius: 50%; animation: repair-spin 800ms linear infinite; } .v2-repair-model-loading strong { font-size: 12px; } .v2-repair-model-loading small { color: var(--repair-muted); font-size: 8px; } @keyframes repair-spin { to { transform: rotate(360deg); } } .v2-repair-orbit-hint { position: absolute; top: 9px; left: 50%; padding: 5px 8px; color: #fff; background: color-mix(in srgb, var(--v2-accent-strong) 76%, transparent); border-radius: 7px; font-size: 8px; transform: translateX(-50%); white-space: nowrap; } .v2-repair-twin-live { position: absolute; right: 8px; bottom: 8px; left: 8px; padding: 8px; color: #f2f6ff; background: color-mix(in srgb, var(--v2-accent-strong) 88%, rgba(13, 28, 49, 0.9)); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 12px; backdrop-filter: blur(8px); } .v2-repair-twin-live > div:first-child { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 7px; } .v2-repair-twin-live small, .v2-repair-twin-live b { padding: 3px 5px; border-radius: 6px; font-size: 7px; white-space: nowrap; } .v2-repair-twin-live small { background: color-mix(in srgb, var(--v2-accent) 32%, transparent); } .v2-repair-twin-live strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; } .v2-repair-twin-live b { color: #ffe4a9; background: rgba(196, 137, 45, 0.22); } #repairAxisStrip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; margin-top: 7px; } #repairAxisStrip > span { min-width: 0; display: grid; grid-template-columns: auto minmax(10px, 1fr) auto; align-items: center; gap: 3px; font-size: 7px; } #repairAxisStrip i { height: 3px; position: relative; overflow: hidden; background: rgba(255, 255, 255, 0.18); border-radius: 999px; } #repairAxisStrip i::after { width: var(--position); height: 100%; display: block; content: ""; background: var(--repair-active-blue); } #repairAxisStrip > span.active i::after { background: #a9c8ff; } #repairAxisStrip em { font-style: normal; } #repairTwinReaction { margin: 6px 0 0; overflow: hidden; color: #c9d8ef; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; } .v2-repair-timeline { min-height: 0; padding: 9px 11px 10px; overflow: auto; } .v2-repair-timeline article { min-height: 70px; position: relative; display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 8px; } .v2-repair-timeline article:not(:last-child)::before { width: 2px; position: absolute; top: 13px; bottom: -2px; left: 7px; content: ""; background: #c8ced0; } .v2-repair-timeline article > i { width: 15px; height: 15px; z-index: 1; display: block; margin-top: 4px; background: var(--repair-pending); border: 2px solid rgba(255, 255, 255, 0.94); border-radius: 50%; box-shadow: 0 0 0 1px var(--repair-line); } .v2-repair-timeline article[data-state="complete"] > i { background: var(--repair-deep-blue); } .v2-repair-timeline article[data-state="active"] > i { background: var(--repair-active-blue); box-shadow: 0 0 0 4px rgba(115, 166, 232, 0.14); } .v2-repair-timeline article[data-state="failed"] > i { background: var(--repair-danger); } .v2-repair-timeline article[data-state="complete"]::before { background: var(--repair-deep-blue); } .v2-repair-timeline article > div { min-width: 0; padding-bottom: 8px; } .v2-repair-timeline article header { min-height: 24px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 3px; } .v2-repair-timeline article header strong { color: var(--repair-ink); font-size: 12px; } .v2-repair-timeline article[data-state="complete"] header strong { color: var(--repair-deep-blue); } .v2-repair-timeline article[data-state="active"] header strong { color: var(--v2-accent); } .v2-repair-timeline article[data-state="failed"] header strong { color: var(--repair-danger); } .v2-repair-timeline article header span { color: #909b9d; font-size: 8px; font-weight: 750; } .v2-repair-timeline article p { min-height: 38px; margin: 0; padding: 8px 9px; overflow: hidden; color: var(--repair-muted); background: var(--repair-soft); border: 1px solid var(--repair-line); border-radius: 9px; font-size: 9px; line-height: 1.45; } .v2-repair-view[data-repair-page="hardware"] { overflow: auto; grid-template-rows: auto minmax(120px, auto) minmax(360px, 1fr); } .v2-repair-link-panel > header p { max-width: 45%; overflow: hidden; color: var(--repair-muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; } .v2-repair-link-layers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; padding: 8px 10px 4px; } .v2-repair-link-layers > div { min-width: 0; position: relative; display: grid; gap: 3px; padding: 7px 10px; background: var(--repair-soft); } .v2-repair-link-layers > div:not(:last-child)::after { position: absolute; top: 50%; right: -4px; z-index: 1; content: "→"; color: #879495; transform: translateY(-50%); } .v2-repair-link-layers small { color: var(--repair-muted); font-size: 8px; } .v2-repair-link-layers strong { overflow: hidden; color: var(--repair-ink); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; } .v2-repair-link-layers [data-state="OK"] strong { color: #238879; } .v2-repair-link-layers [data-state="WARN"] strong { color: #b1782d; } #repairLinkDetail { margin: 1px 11px 8px; color: var(--repair-muted); font-size: 8px; } .v2-repair-hardware-grid { min-width: 0; min-height: 0; display: grid; grid-template-columns: minmax(190px, 0.66fr) minmax(500px, 1.58fr) minmax(210px, 0.72fr); gap: 9px; } .v2-repair-groups-panel, .v2-repair-connectors-panel, .v2-repair-pin-panel { display: grid; grid-template-rows: auto minmax(0, 1fr); } #repairHardwareGroups { min-height: 0; display: grid; align-content: start; gap: 6px; padding: 9px; overflow: auto; } #repairHardwareGroups button { min-width: 0; display: grid; grid-template-columns: 3px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 8px; color: var(--repair-ink); background: var(--repair-soft); border: 0; border-radius: 10px; text-align: left; } #repairHardwareGroups button > i { width: 3px; height: 100%; min-height: 28px; background: #a7b2b2; border-radius: 999px; } #repairHardwareGroups button[data-state="OK"] > i { background: #2b9e8d; } #repairHardwareGroups button[data-state="WARN"] > i { background: var(--repair-warn); } #repairHardwareGroups button[data-state="FAULT"] > i { background: var(--repair-danger); } #repairHardwareGroups button > div { min-width: 0; display: grid; gap: 2px; } #repairHardwareGroups strong, #repairHardwareGroups small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } #repairHardwareGroups strong { font-size: 9px; } #repairHardwareGroups small { color: var(--repair-muted); font-size: 7px; } #repairHardwareGroups span { color: var(--repair-muted); font-size: 7px; } .v2-repair-connectors-panel > header { min-height: 58px; } .v2-repair-pin-legend { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 3px 5px; color: var(--repair-muted); font-size: 7px; } .v2-repair-pin-legend span { width: 7px; height: 7px; display: inline-block; border-radius: 2px; background: #aeb8b9; } .v2-repair-pin-legend span[data-state="OK"] { background: #2b9e8d; } .v2-repair-pin-legend span[data-state="IDLE"] { background: var(--repair-active-blue); } .v2-repair-pin-legend span[data-state="WARN"] { background: var(--repair-warn); } .v2-repair-pin-legend span[data-state="FAULT"] { background: var(--repair-danger); } #repairConnectors { min-height: 0; display: grid; grid-template-columns: 0.82fr 0.88fr 1.15fr; gap: 8px; padding: 9px; overflow: auto; } .v2-repair-connector { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); padding: 7px; background: var(--repair-soft); border: 1px solid var(--repair-line); border-radius: 11px; } .v2-repair-connector > header { display: flex; align-items: center; justify-content: space-between; gap: 5px; margin-bottom: 5px; } .v2-repair-connector > header strong { color: var(--repair-heading); font-size: 10px; } .v2-repair-connector > header span { color: var(--repair-muted); font-size: 6px; } .v2-repair-connector-body { min-height: 0; position: relative; padding: 4px; border: 1px solid color-mix(in srgb, var(--v2-accent) 18%, #aeb9ba); border-radius: 3px; } .v2-repair-connector-body > div { height: 100%; display: grid; align-content: space-between; gap: 2px; } .v2-repair-connector-body > div > span { min-width: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 3px; } .v2-repair-connector-body button { min-width: 0; min-height: 18px; display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: center; gap: 2px; padding: 1px 3px; overflow: hidden; color: var(--repair-ink); background: var(--repair-soft-strong); border: 1px solid transparent; border-radius: 4px; cursor: pointer; } .v2-repair-connector-body button b { font: 800 7px "IBM Plex Mono", Consolas, monospace; } .v2-repair-connector-body button small { overflow: hidden; font-size: 5.5px; text-overflow: ellipsis; white-space: nowrap; } .v2-repair-connector-body button[data-state="OK"] { color: #176f64; background: #ddf2ee; } .v2-repair-connector-body button[data-state="IDLE"] { color: #315e94; background: #dfebfa; } .v2-repair-connector-body button[data-state="WARN"] { color: #8d5d20; background: #fbedd6; } .v2-repair-connector-body button[data-state="FAULT"] { color: #963f3f; background: #f8dddd; } .v2-repair-connector-body button[data-state="NOT_USED"] { color: #abb3b4; background: #f2f4f4; } .v2-repair-connector-body button.selected { border-color: var(--v2-accent); box-shadow: 0 0 0 1px color-mix(in srgb, var(--v2-accent) 16%, transparent); } .v2-repair-connector-body .keying { width: 5px; height: 18px; position: absolute; left: -6px; background: #f8faf9; border: 1px solid #9da9aa; } .v2-repair-connector-body .k1 { top: 9%; } .v2-repair-connector-body .k2 { top: 27%; } .v2-repair-connector-body .k3 { top: 50%; } .v2-repair-connector-body .k4 { top: 72%; } #repairPinDetail { min-height: 0; padding: 9px 10px; overflow: auto; } #repairPinDetail dl { margin: 0; } #repairPinDetail dl > div { padding: 7px 0; border-bottom: 1px solid var(--repair-line); } #repairPinDetail dt { color: var(--repair-muted); font-size: 7px; } #repairPinDetail dd { margin: 2px 0 0; color: var(--repair-ink); font-size: 9px; font-weight: 750; line-height: 1.35; } #repairPinDetail section { margin-top: 11px; } #repairPinDetail h3 { margin: 0 0 5px; color: var(--repair-heading); font-size: 10px; } #repairPinDetail ul, #repairPinDetail ol { display: grid; gap: 4px; margin: 0; padding-left: 15px; color: #6f8183; font-size: 8px; line-height: 1.4; } .v2-repair-pin-panel > header b[data-state="OK"] { color: #258a7b; } .v2-repair-pin-panel > header b[data-state="WARN"] { color: var(--repair-warn); } .v2-repair-pin-panel > header b[data-state="FAULT"] { color: var(--repair-danger); } .v2-repair-dialog { width: min(820px, calc(100vw - 40px)); max-height: min(680px, calc(100vh - 50px)); padding: 0; overflow: hidden; color: var(--repair-ink); background: color-mix(in srgb, var(--v2-accent-soft) 24%, white); border: 1px solid var(--repair-line); border-radius: 17px; box-shadow: 0 28px 80px rgba(16, 45, 48, 0.24); } .v2-repair-dialog::backdrop { background: rgba(15, 38, 41, 0.42); backdrop-filter: blur(4px); } .v2-repair-dialog > header { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid var(--repair-line); } .v2-repair-dialog > header > div { display: grid; gap: 2px; } .v2-repair-dialog > header strong { font-size: 15px; } .v2-repair-dialog > header small { color: #819092; font-size: 9px; } .v2-repair-dialog > header button { width: 29px; height: 29px; padding: 0; color: var(--repair-ink); background: var(--repair-soft-strong); border: 0; border-radius: 9px; font-size: 18px; cursor: pointer; } .v2-repair-dialog > div { max-height: 570px; padding: 13px 16px 18px; overflow: auto; } .v2-repair-dialog table { width: 100%; border-collapse: collapse; font-size: 9px; } .v2-repair-dialog th, .v2-repair-dialog td { padding: 7px; border-bottom: 1px solid var(--repair-line); text-align: left; } .v2-repair-dialog th { color: var(--repair-muted); background: var(--repair-soft-strong); } .v2-repair-report-path { padding: 7px 9px; overflow-wrap: anywhere; color: var(--repair-muted); background: var(--repair-soft-strong); border-radius: 8px; font: 8px "IBM Plex Mono", Consolas, monospace; } .v2-repair-event-list { display: grid; gap: 5px; margin-top: 10px; } .v2-repair-event-list article { display: grid; gap: 2px; padding: 7px 9px; background: var(--repair-soft); border-radius: 8px; } .v2-repair-event-list strong { font-size: 9px; } .v2-repair-event-list span { color: #758587; font-size: 8px; } @media (max-width: 1220px) { .v2-repair-heading { grid-template-columns: minmax(0, 1fr); } .v2-repair-status-grid { display: none; } .v2-repair-software-grid { grid-template-columns: minmax(260px, 1fr) minmax(175px, 0.65fr) minmax(310px, 1.2fr); } .v2-repair-toolbar button { padding-inline: 8px; } .v2-repair-toolbar button svg { display: none; } .v2-repair-hardware-grid { grid-template-columns: minmax(180px, 0.62fr) minmax(450px, 1.5fr) minmax(190px, 0.68fr); } } @media (max-width: 960px) { .console-v2[data-module="self-repair"] .v2-self-repair { overflow: auto; } .v2-repair-view { min-height: 900px; overflow: visible; } .v2-repair-software-grid { grid-template-areas: "twin cases" "timeline timeline"; grid-template-columns: minmax(330px, 1fr) 210px; grid-template-rows: 410px 390px; } .v2-repair-hardware-grid { min-width: 920px; } .v2-repair-toolbar { align-items: flex-start; flex-direction: column; } .v2-repair-toolbar > div:last-child { width: 100%; justify-content: flex-start; flex-wrap: wrap; } }