/* All selectors below are scoped to the XGRIDS frontend contribution. */ .xgrids-k1-plugin { container: xgrids-k1 / inline-size; width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; *, *::before, *::after { box-sizing: border-box; } > * { min-width: 0; max-width: 100%; } .device-workspace__grid { display: grid; min-width: 0; max-width: 100%; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 0.85rem; } .device-workspace__side { display: grid; min-width: 0; max-width: 100%; gap: 0.85rem; } .connection-panel, .status-panel, .latency-panel, .session-panel { min-width: 0; max-width: 100%; background: var(--station-panel); } /* Every layout hop between the plugin root and the canonical controls must be shrinkable. A single auto min-size in this chain lets topology/status text establish a wider intrinsic track and paint the provisioning job over the acquisition job even though the outer grid itself uses minmax(0, 1fr). */ .workspace-lead, .metrics-grid, .error-banner, .wizard-list, .wizard-step, .field-stack, .session-form, .scan-configuration-grid, .device-list, .device-row, .diagnostics-grid, .detail-list { min-width: 0; max-width: 100%; } .metrics-grid > *, .device-workspace__grid > *, .device-workspace__side > *, .scan-configuration-grid > *, .diagnostics-grid > * { min-width: 0; max-width: 100%; } .error-banner > div { min-width: 0; } .error-banner__copy { display: grid; gap: 0.2rem; } .error-banner--compact { align-items: start; padding-block: 0.7rem; } .error-banner__recovery-actions { display: grid; gap: 0.45rem; margin-top: 0.55rem; } .error-banner__details { margin-top: 0.35rem; color: var(--nodedc-text-secondary); font-size: 0.66rem; } .error-banner__details summary { width: fit-content; color: var(--nodedc-text-tertiary); cursor: pointer; } .workspace-lead__status, .workspace-lead__status > span, .panel-heading > div, .panel-heading h2, .wizard-step__content, .wizard-step__content > header, .wizard-step__content > header h3, .connection-summary span, .nodedc-field__description, .empty-device-list, .retained-recovery-target small, .session-footer p { min-width: 0; } .workspace-lead__status > span, .panel-heading h2, .wizard-step__content > header h3, .connection-summary span, .nodedc-field__description, .empty-device-list, .retained-recovery-target small, .session-footer p { overflow-wrap: anywhere; } .workspace-lead p, .error-banner p, .step-copy, .safety-note, .live-instruction { overflow-wrap: anywhere; } .connection-panel { container: k1-connection-panel / inline-size; } .session-panel { container: k1-session-panel / inline-size; } .error-banner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0.9rem; border-radius: 1rem; background: rgb(255 255 255 / 0.045); color: var(--nodedc-text-primary); padding: 0.85rem 1rem; } .error-banner__dot { width: 0.46rem; height: 0.46rem; align-self: start; margin-top: 0.28rem; border-radius: 50%; background: rgb(var(--nodedc-danger-rgb)); } .error-banner strong, .error-banner p { margin: 0; } .error-banner strong { color: var(--nodedc-text-primary); font-size: 0.76rem; } .error-banner p { margin-top: 0.2rem; color: var(--nodedc-text-secondary); font-size: 0.68rem; line-height: 1.45; } .error-banner__diagnostic { display: grid; min-width: 0; max-width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; margin: 0.45rem 0 0; } .error-banner__diagnostic > div { min-width: 0; } .error-banner__diagnostic dt, .error-banner__diagnostic dd { margin: 0; overflow-wrap: anywhere; } .error-banner__diagnostic dt { color: var(--nodedc-text-tertiary); font-size: 0.58rem; letter-spacing: 0.06em; text-transform: uppercase; } .error-banner__diagnostic dd { margin-top: 0.12rem; color: var(--nodedc-text-secondary); font-size: 0.66rem; line-height: 1.4; } .error-banner__actions { display: flex; min-width: 0; max-width: 100%; align-items: center; flex-wrap: wrap; gap: 0.35rem; } .error-banner__actions > .nodedc-button { min-width: 0; max-width: 100%; overflow-wrap: anywhere; } .wizard-list { display: grid; margin-top: 1.4rem; } .configuration-anchor { display: grid; min-width: 0; max-width: 100%; gap: 0.55rem; margin-top: 1.2rem; border-radius: 0.95rem; background: rgb(255 255 255 / 0.028); padding: 0.8rem; } .configuration-anchor .nodedc-select-anchor, .configuration-field .nodedc-select-anchor { width: 100%; min-width: 0; max-width: 100%; } .connection-topology-summary { display: grid; min-width: 0; max-width: 100%; gap: 0.42rem; } .connection-topology-summary .connection-summary { min-width: 0; max-width: 100%; margin: 0; } .connection-summary__value { display: flex; min-width: 0; max-width: 100%; align-items: center; justify-content: flex-end; gap: 0.5rem; } .connection-summary__value strong { min-width: 0; max-width: 100%; } .wizard-step { display: grid; grid-template-columns: 2.2rem minmax(0, 1fr); gap: 0.75rem; } .wizard-step__rail { position: relative; display: flex; justify-content: center; } .wizard-step__rail::after { position: absolute; top: 2rem; bottom: 0; left: 50%; width: 1px; background: var(--station-hairline); content: ""; } .wizard-step:last-child .wizard-step__rail::after { display: none; } .wizard-step__rail span { position: relative; z-index: 1; display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: #27272a; color: var(--nodedc-text-secondary); font-size: 0.59rem; font-weight: 800; } .wizard-step__content { min-width: 0; padding: 0.08rem 0 1.5rem; } .wizard-step:last-child .wizard-step__content { padding-bottom: 0; } .wizard-step__content > header { display: flex; min-height: 2rem; align-items: center; justify-content: space-between; gap: 0.7rem; margin-bottom: 0.75rem; } .wizard-step__content h3 { margin: 0; font-size: 0.8rem; font-weight: 710; } .step-copy, .safety-note, .live-instruction { margin: 0 0 0.72rem; color: var(--nodedc-text-muted); font-size: 0.65rem; line-height: 1.48; } .safety-note, .live-instruction { margin: 0.7rem 0 0; } .device-list { display: grid; max-height: 20rem; gap: 0.48rem; margin-top: 0.72rem; overflow-y: auto; padding-right: 0.2rem; } .device-row { display: grid; gap: 0.62rem; border-radius: 0.95rem; background: rgb(255 255 255 / 0.035); padding: 0.72rem; } .device-row[data-selected="true"] { background: rgb(255 255 255 / 0.065); box-shadow: none; } .device-row__identity, .device-row__action { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 0.65rem; } .device-row__identity { justify-content: flex-start; } .device-row__identity > div { display: grid; min-width: 0; gap: 0.2rem; } .device-row__name { display: flex; min-width: 0; align-items: center; gap: 0.42rem; } .device-row__name small { flex: 0 0 auto; color: var(--nodedc-text-muted); font-size: 0.47rem; font-weight: 750; letter-spacing: 0.04em; text-transform: uppercase; } .device-row__identity strong { min-width: 0; max-width: 100%; overflow: visible; overflow-wrap: anywhere; font-size: 0.69rem; text-overflow: clip; white-space: normal; } .device-row code, .detail-row code { display: block; min-width: 0; max-width: 100%; overflow: visible; overflow-wrap: anywhere; color: var(--nodedc-text-muted); font-size: 0.58rem; text-overflow: clip; white-space: normal; } .device-row__signal { width: 0.58rem; height: 0.58rem; flex: 0 0 0.58rem; border-radius: 50%; background: var(--nodedc-text-muted); } .device-row[data-likely-k1="true"] .device-row__signal { background: rgb(var(--nodedc-success-rgb)); } .device-row__action > span { color: var(--nodedc-text-muted); font-size: 0.62rem; } .empty-device-list { border-radius: 0.95rem; background: rgb(255 255 255 / 0.025); color: var(--nodedc-text-muted); padding: 0.9rem; font-size: 0.65rem; line-height: 1.45; } .retained-recovery-target { display: grid; min-width: 0; gap: 0.42rem; margin-top: 0.62rem; border-radius: 0.95rem; background: rgb(255 255 255 / 0.025); padding: 0.78rem; } .retained-recovery-target > div { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 0.55rem; } .retained-recovery-target span, .retained-recovery-target small { color: var(--nodedc-text-muted); font-size: 0.58rem; line-height: 1.45; } .retained-recovery-target code { min-width: 0; overflow-wrap: anywhere; color: var(--nodedc-text-secondary); font-size: 0.58rem; } .field-stack, .session-form { display: grid; gap: 0.85rem; } .password-field-row { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 0.55rem; } .connection-recovery-choice { display: grid; min-width: 0; max-width: 100%; gap: 0.65rem; border: 1px solid rgb(255 255 255 / 0.08); border-radius: 0.95rem; background: rgb(255 255 255 / 0.025); padding: 0.85rem; } .connection-recovery-choice > strong { color: var(--nodedc-text-primary); font-size: 0.72rem; line-height: 1.4; } .connection-recovery-choice > .safety-note { margin: 0; } .connection-recovery-choice--retirement { border-color: rgb(var(--nodedc-danger-rgb) / 0.24); } .connection-summary { display: flex; min-width: 0; max-width: 100%; align-items: center; justify-content: space-between; gap: 1rem; margin: 0.72rem 0; border-radius: 0.85rem; background: rgb(255 255 255 / 0.03); padding: 0.62rem 0.75rem; font-size: 0.65rem; } .connection-summary span { color: var(--nodedc-text-muted); } .connection-summary strong { min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .session-panel > .nodedc-segmented { margin-top: 1.2rem; } .session-form { margin-top: 1rem; } .active-stream-recovery { display: grid; gap: 1rem; margin-top: 1rem; } .active-stream-recovery__state { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 0.75rem; border-radius: 0.85rem; background: rgb(255 255 255 / 0.03); padding: 0.85rem; } .active-stream-recovery__state--static { grid-template-columns: minmax(0, 1fr); } .active-stream-recovery__state > .nodedc-activity-indicator { margin-top: 0.12rem; } .active-stream-recovery__copy { display: grid; min-width: 0; gap: 0.28rem; } .active-stream-recovery__copy strong { color: var(--nodedc-text-primary); font-size: 0.72rem; line-height: 1.4; } .active-stream-recovery__copy span, .active-stream-recovery__copy small, .active-stream-recovery__actions p { margin: 0; color: var(--nodedc-text-muted); font-size: 0.62rem; line-height: 1.5; overflow-wrap: anywhere; } .active-stream-recovery__copy small { color: var(--nodedc-text-secondary); } .active-stream-recovery__actions { display: grid; gap: 0.55rem; } .scan-configuration-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; } .configuration-field { display: grid; min-width: 0; gap: 0.45rem; } .start-confirmation-note { margin: -0.25rem 0 0; color: var(--nodedc-text-muted); font-size: 0.6rem; line-height: 1.45; } .session-form--replay { grid-template-columns: minmax(0, 1.55fr) minmax(8rem, 0.45fr); } .session-form--replay > :first-child { grid-column: 1 / -1; } .session-form--replay > .nodedc-button { align-self: end; } .session-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding-top: 0.9rem; } .session-footer p { max-width: 30rem; margin: 0; color: var(--nodedc-text-muted); font-size: 0.62rem; line-height: 1.45; } .diagnostics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.85rem; } .detail-list { display: grid; margin: 0.9rem 0 0; } .detail-row { display: grid; min-width: 0; grid-template-columns: minmax(7rem, 0.72fr) minmax(0, 1.28fr); gap: 1rem; padding: 0.7rem 0; } .detail-row dt, .detail-row dd { min-width: 0; margin: 0; font-size: 0.65rem; } .detail-row dt { color: var(--nodedc-text-muted); } .detail-row dd { overflow: visible; overflow-wrap: anywhere; color: var(--nodedc-text-secondary); text-align: right; text-overflow: clip; white-space: normal; } .inline-state { display: inline-flex; align-items: center; gap: 0.35rem; } .inline-state::before { width: 0.4rem; height: 0.4rem; border-radius: 50%; background: var(--nodedc-text-muted); content: ""; } .inline-state[data-state="open"]::before { background: rgb(var(--nodedc-success-rgb)); } .inline-state[data-state="error"]::before, .inline-state[data-state="closed"]::before { background: rgb(var(--nodedc-danger-rgb)); } .latency-now { color: var(--nodedc-text-primary); font-size: 1.2rem; font-weight: 660; letter-spacing: -0.04em; } .latency-now span { color: var(--nodedc-text-muted); font-size: 0.61rem; letter-spacing: 0; } .latency-trace { display: flex; height: 7rem; align-items: end; gap: 0.2rem; margin-top: 1rem; border-radius: 0.85rem; background: rgb(255 255 255 / 0.018); padding: 0.7rem; } .latency-trace span { min-width: 0.16rem; flex: 1 1 0; border-radius: 999px 999px 0.12rem 0.12rem; background: var(--nodedc-text-primary); } .latency-trace p { align-self: center; margin: auto; color: var(--nodedc-text-muted); font-size: 0.62rem; line-height: 1.45; text-align: center; } .latency-legend { display: flex; justify-content: space-between; margin-top: 0.38rem; color: var(--nodedc-text-muted); font-size: 0.54rem; } } /* Keep both jobs usable before admitting the split composition: the provisioning column retains 32 rem and the acquisition column 38 rem. Below their combined working width the panels stack instead of squeezing and letting intrinsic text paint into the neighbouring surface. */ @container xgrids-k1 (min-width: 78rem) { .xgrids-k1-plugin .device-workspace__grid { grid-template-columns: minmax(32rem, 0.8fr) minmax(38rem, 1.2fr); } } @container k1-connection-panel (max-width: 48rem) { .xgrids-k1-plugin .panel-heading, .xgrids-k1-plugin .wizard-step__content > header { min-width: 0; align-items: flex-start; flex-wrap: wrap; } .xgrids-k1-plugin .panel-heading > div, .xgrids-k1-plugin .wizard-step__content > header h3 { min-width: 0; max-width: 100%; overflow-wrap: anywhere; } .xgrids-k1-plugin .panel-heading > .nodedc-status, .xgrids-k1-plugin .wizard-step__content > header > .nodedc-status, .xgrids-k1-plugin .connection-summary__value > .nodedc-status, .xgrids-k1-plugin .retained-recovery-target .nodedc-status { max-width: 100%; flex: 0 1 auto; line-height: 1.35; text-align: left; white-space: normal; } .xgrids-k1-plugin .connection-summary, .xgrids-k1-plugin .connection-summary--topology, .xgrids-k1-plugin .connection-summary__value { align-items: stretch; flex-direction: column; } .xgrids-k1-plugin .connection-summary__value { justify-content: flex-start; } .xgrids-k1-plugin .connection-summary strong { overflow-wrap: anywhere; text-overflow: clip; white-space: normal; } .xgrids-k1-plugin .device-row__action { align-items: stretch; flex-direction: column; } .xgrids-k1-plugin .device-row__name { flex-wrap: wrap; } .xgrids-k1-plugin .device-row__name small { flex: 1 1 100%; } .xgrids-k1-plugin .retained-recovery-target > div { align-items: flex-start; flex-direction: column; } } @container xgrids-k1 (max-width: 65rem) { .xgrids-k1-plugin .diagnostics-grid { grid-template-columns: 1fr; } } @container k1-session-panel (max-width: 48rem) { .xgrids-k1-plugin .panel-heading { min-width: 0; align-items: flex-start; flex-wrap: wrap; } .xgrids-k1-plugin .panel-heading > div { min-width: 0; max-width: 100%; overflow-wrap: anywhere; } .xgrids-k1-plugin .panel-heading > .nodedc-status { max-width: 100%; flex: 0 1 auto; line-height: 1.35; text-align: left; white-space: normal; } .xgrids-k1-plugin .scan-configuration-grid { grid-template-columns: 1fr; } .xgrids-k1-plugin .session-form--replay { grid-template-columns: 1fr; } .xgrids-k1-plugin .session-form--replay > :first-child { grid-column: auto; } .xgrids-k1-plugin .session-footer { align-items: stretch; flex-direction: column; } } @container xgrids-k1 (max-width: 48rem) { .xgrids-k1-plugin .workspace-lead, .xgrids-k1-plugin .panel-heading, .xgrids-k1-plugin .wizard-step__content > header { min-width: 0; align-items: flex-start; flex-wrap: wrap; } .xgrids-k1-plugin .workspace-lead > div, .xgrids-k1-plugin .workspace-lead__status, .xgrids-k1-plugin .panel-heading > div, .xgrids-k1-plugin .wizard-step__content > header h3 { min-width: 0; max-width: 100%; } .xgrids-k1-plugin .workspace-lead__status { align-items: flex-start; text-align: left; } .xgrids-k1-plugin .error-banner { grid-template-columns: auto minmax(0, 1fr); } .xgrids-k1-plugin .error-banner__actions { grid-column: 2; min-width: 0; flex-wrap: wrap; justify-content: flex-end; } .xgrids-k1-plugin .error-banner__diagnostic { grid-template-columns: 1fr; gap: 0.4rem; } .xgrids-k1-plugin .retained-recovery-target > div { align-items: flex-start; flex-direction: column; } } @container xgrids-k1 (max-width: 32rem) { .xgrids-k1-plugin .wizard-step { grid-template-columns: 1.75rem minmax(0, 1fr); gap: 0.55rem; } .xgrids-k1-plugin .wizard-step__rail span { width: 1.75rem; height: 1.75rem; } .xgrids-k1-plugin .detail-row { grid-template-columns: 1fr; gap: 0.25rem; } .xgrids-k1-plugin .detail-row dd { overflow-wrap: anywhere; text-align: left; white-space: normal; } .xgrids-k1-plugin .error-banner { grid-template-columns: 1fr; } .xgrids-k1-plugin .error-banner__dot { display: none; } .xgrids-k1-plugin .error-banner__actions { grid-column: 1; align-items: stretch; flex-direction: column; justify-content: flex-start; } } .xgrids-k1-spatial-controls { display: flex; min-width: min(42rem, 100%); max-width: 100%; align-items: center; gap: 0.85rem; border: 1px solid rgb(255 255 255 / 0.1); border-radius: 1rem; background: rgb(9 10 13 / 0.88); padding: 0.55rem 0.65rem 0.55rem 0.75rem; color: var(--nodedc-text-primary); box-shadow: 0 0.9rem 2.4rem rgb(0 0 0 / 0.3); backdrop-filter: blur(20px); } .xgrids-k1-spatial-controls--recovery { display: grid; min-width: min(46rem, 100%); grid-template-columns: minmax(0, 1fr); gap: 0.45rem; padding: 0.65rem 0.75rem; } .active-stream-recovery__compact-heading { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 0.75rem; } .active-stream-recovery__compact-heading > span:first-child { overflow: hidden; color: var(--nodedc-text-muted); font-size: 0.5rem; font-weight: 650; letter-spacing: 0.14em; text-overflow: ellipsis; white-space: nowrap; } .active-stream-recovery--compact { min-width: 0; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0.65rem; margin-top: 0; } .active-stream-recovery--compact .active-stream-recovery__state { min-width: 0; background: transparent; padding: 0; } .active-stream-recovery--compact .active-stream-recovery__actions { max-width: 15rem; grid-template-columns: auto; gap: 0.25rem; } .active-stream-recovery--compact .active-stream-recovery__actions p { font-size: 0.5rem; line-height: 1.35; } .xgrids-k1-spatial-controls__phase { display: flex; min-width: 11rem; flex: 1 1 15rem; align-items: center; gap: 0.58rem; } .xgrids-k1-spatial-controls__phase > span:last-child { display: grid; min-width: 0; gap: 0.15rem; } .xgrids-k1-spatial-controls__phase strong, .xgrids-k1-spatial-controls__phase small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .xgrids-k1-spatial-controls__phase strong { font-size: 0.66rem; } .xgrids-k1-spatial-controls__phase small { color: var(--nodedc-text-muted); font-size: 0.53rem; } .xgrids-k1-spatial-controls__telemetry { display: flex; flex: 0 1 auto; align-items: center; gap: 0.65rem; } .xgrids-k1-spatial-controls__telemetry > span { display: grid; gap: 0.12rem; white-space: nowrap; } .xgrids-k1-spatial-controls__telemetry small { color: var(--nodedc-text-muted); font-size: 0.48rem; } .xgrids-k1-spatial-controls__telemetry strong { font-size: 0.61rem; } .xgrids-k1-spatial-controls__error { display: grid; max-width: 17rem; gap: 0.12rem; color: rgb(var(--nodedc-danger-rgb)); } .xgrids-k1-spatial-controls__error strong { font-size: 0.61rem; } .xgrids-k1-spatial-controls__error small { overflow: hidden; color: var(--nodedc-text-secondary); font-size: 0.51rem; text-overflow: ellipsis; white-space: nowrap; } .xgrids-k1-spatial-controls__action-label { display: block; width: 9.75rem; font-size: 0.66rem; line-height: 1.08; text-align: center; white-space: normal; } .xgrids-k1-spatial-controls__action-label--local { width: 8.75rem; } .connection-action-progress { display: flex; min-height: 2.75rem; width: 100%; align-items: center; justify-content: center; gap: 0.65rem; color: var(--nodedc-text-secondary); } .connection-action-progress strong { font-size: 0.78rem; font-weight: 600; } @media (max-width: 960px) { .xgrids-k1-spatial-controls { min-width: 0; } .xgrids-k1-spatial-controls__phase small, .xgrids-k1-spatial-controls__telemetry, .xgrids-k1-spatial-controls__error small { display: none; } .active-stream-recovery--compact { grid-template-columns: minmax(0, 1fr); } .active-stream-recovery--compact .active-stream-recovery__actions { max-width: none; } .active-stream-recovery--compact .active-stream-recovery__actions p { display: none; } }