Capture the current unreleased K1 connection, recovery, lifecycle, viewer, and test work as a single known-bad baseline for subsequent fixes.
665 lines
13 KiB
CSS
665 lines
13 KiB
CSS
@media (max-width: 1480px) {
|
|
.metrics-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.landing-stage__copy {
|
|
width: min(35rem, 54%);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1280px) {
|
|
.overview-grid,
|
|
.mission-layout,
|
|
.polygon-live-layout,
|
|
.polygon-run-layout,
|
|
.polygon-run-evidence-grid,
|
|
.lidar-quality-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.lidar-field-review__source {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.lidar-field-window-list {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
|
|
.lidar-field-stage {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.lidar-local-surface__summary {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.lidar-local-surface__stage {
|
|
grid-template-columns: minmax(0, 1fr) minmax(13rem, 0.32fr);
|
|
}
|
|
|
|
.lidar-field-cloud {
|
|
grid-column: 1;
|
|
grid-row: 1;
|
|
}
|
|
|
|
.lidar-field-camera {
|
|
grid-column: 1;
|
|
grid-row: 2;
|
|
}
|
|
|
|
.lidar-field-camera img {
|
|
min-height: 0;
|
|
aspect-ratio: 4 / 3;
|
|
}
|
|
|
|
.polygon-run-providers {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.lidar-ground-metrics {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.pipeline-strip {
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
}
|
|
|
|
.pipeline-strip > svg {
|
|
display: none;
|
|
}
|
|
|
|
.map-layout {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.map-inspector {
|
|
display: grid;
|
|
grid-template-columns: minmax(12rem, 0.55fr) minmax(0, 1.45fr);
|
|
gap: 0.5rem 1rem;
|
|
}
|
|
|
|
.map-inspector > .section-eyebrow,
|
|
.map-inspector > h3 {
|
|
grid-column: 1;
|
|
}
|
|
|
|
.map-inspector .layer-summary-list {
|
|
grid-row: 1 / 4;
|
|
grid-column: 2;
|
|
}
|
|
|
|
.map-inspector > .nodedc-button {
|
|
grid-column: 1;
|
|
}
|
|
|
|
.camera-grid {
|
|
grid-template-columns: 1fr 1fr;
|
|
grid-template-rows: minmax(20rem, 1fr) repeat(2, minmax(10rem, 0.55fr));
|
|
}
|
|
|
|
.camera-slot[data-primary="true"] {
|
|
grid-row: 1;
|
|
grid-column: 1 / -1;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1040px) {
|
|
.dataset-sequence-review__truth {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.polygon-review-summary > div:last-child,
|
|
.polygon-review-analysis__content,
|
|
.polygon-run-technical__content {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.polygon-review-frame-metrics {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.polygon-qualification__grid,
|
|
.polygon-qualification__failures {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.polygon-qualification__providers dl {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.feature-group {
|
|
grid-template-columns: 1fr;
|
|
gap: 0.9rem;
|
|
}
|
|
|
|
.capability-summary {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.polygon-run-metrics {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.workspace-lead {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
gap: 0.7rem;
|
|
}
|
|
|
|
.lidar-device-context,
|
|
.dataset-purpose,
|
|
.dataset-entry {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.dataset-preview > header {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.dataset-preview__metrics {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.lidar-device-context__verdict {
|
|
border-top: 1px solid var(--station-hairline);
|
|
border-left: 0;
|
|
padding-top: 0.75rem;
|
|
padding-left: 0;
|
|
}
|
|
|
|
.dataset-purpose {
|
|
align-items: start;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.polygon-live-heading {
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.polygon-live-heading > div:last-child {
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.workspace-lead__note,
|
|
.workspace-lead__status {
|
|
max-width: none;
|
|
justify-items: start;
|
|
text-align: left;
|
|
}
|
|
|
|
.landing-stage__status {
|
|
width: 20rem;
|
|
max-width: 36vw;
|
|
}
|
|
|
|
.landing-stage__copy h1 {
|
|
font-size: clamp(2.7rem, 7vw, 5.6rem);
|
|
}
|
|
|
|
.scene-metrics {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
/* The shared shell switches to its compact overlay at 760 px, but Mission
|
|
Core's 20.75 rem navigation leaves less than the plugin's usable 32 rem
|
|
workspace before that point. Bridge the structural breakpoint locally so
|
|
761--929 px never renders a full sidebar beside a sub-32-rem device UI. */
|
|
@media (min-width: 761px) and (max-width: 929px) {
|
|
.nodedc-header-shell {
|
|
width: 100%;
|
|
padding: 0.85rem 1rem 0.65rem;
|
|
background: var(--nodedc-canvas);
|
|
}
|
|
|
|
.nodedc-header {
|
|
min-height: 8.6rem;
|
|
}
|
|
|
|
.nodedc-header__row {
|
|
min-height: 8.6rem;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-content: start;
|
|
row-gap: 0.65rem;
|
|
}
|
|
|
|
.nodedc-header__center {
|
|
order: 3;
|
|
grid-column: 1 / -1;
|
|
justify-content: stretch;
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.nodedc-header__center .nodedc-segmented,
|
|
.nodedc-header__center .nodedc-header-navigation {
|
|
min-width: max-content;
|
|
}
|
|
|
|
.nodedc-app-shell {
|
|
--nodedc-app-header-height: 10.25rem;
|
|
--nodedc-app-page-pad: 0.7rem;
|
|
--nodedc-app-panel-gap: 0.7rem;
|
|
}
|
|
|
|
.nodedc-app-shell__stage {
|
|
padding: 0 var(--nodedc-app-page-pad) var(--nodedc-app-page-pad);
|
|
}
|
|
|
|
.nodedc-app-shell__navigation,
|
|
.nodedc-app-shell__content {
|
|
right: var(--nodedc-app-page-pad);
|
|
bottom: var(--nodedc-app-page-pad);
|
|
left: var(--nodedc-app-page-pad);
|
|
width: auto;
|
|
}
|
|
|
|
.nodedc-app-shell[data-navigation-open="true"] .nodedc-app-shell__stage,
|
|
.nodedc-app-shell[data-content-open="true"] .nodedc-app-shell__stage {
|
|
padding-left: var(--nodedc-app-page-pad);
|
|
pointer-events: none;
|
|
transform: translateX(calc(100vw + var(--nodedc-app-page-pad)));
|
|
}
|
|
|
|
.nodedc-app-shell[data-content-open="true"] .nodedc-app-shell__navigation {
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.nodedc-application-panel,
|
|
.nodedc-admin-panel {
|
|
width: 100%;
|
|
max-width: none;
|
|
}
|
|
|
|
.nodedc-application-panel {
|
|
padding: 0.75rem;
|
|
}
|
|
|
|
.nodedc-application-panel__titles p {
|
|
display: none;
|
|
}
|
|
|
|
.nodedc-application-panel__action:first-child {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 760px) {
|
|
/* The shared application panel is a grid. Its header has three fixed-size
|
|
controls, so the grid item's automatic min-content width can widen the
|
|
body past the panel padding on narrow phones. Keep both grid rows owned
|
|
by the panel's content box; long plugin content must wrap inside it. */
|
|
.nodedc-application-panel__head,
|
|
.nodedc-application-panel__body {
|
|
width: auto;
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.nodedc-application-panel__head {
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
}
|
|
|
|
.polygon-review-lead,
|
|
.polygon-review-player__header,
|
|
.polygon-review-order,
|
|
.polygon-review-summary > header,
|
|
.dataset-fragment-analysis > header {
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.polygon-review-lead > div:last-child {
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.polygon-review-mode {
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.polygon-review-frame-metrics {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.dataset-fragment-analysis__verdict {
|
|
min-width: 0;
|
|
justify-items: start;
|
|
}
|
|
|
|
.dataset-fragment-comparison,
|
|
.dataset-fragment-risks,
|
|
.rellis-review__metrics,
|
|
.rellis-review__policy > div {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.polygon-run-picker,
|
|
.dataset-result-select,
|
|
.dataset-sequence-select,
|
|
.polygon-run-input {
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.polygon-run-picker select,
|
|
.dataset-result-select select,
|
|
.dataset-sequence-select select {
|
|
width: 100%;
|
|
}
|
|
|
|
.polygon-review-controls {
|
|
grid-template-columns: auto auto auto minmax(0, 1fr);
|
|
}
|
|
|
|
.polygon-review-controls > span {
|
|
display: none;
|
|
}
|
|
|
|
.polygon-review-summary article {
|
|
grid-template-columns: minmax(0, 1fr) auto auto;
|
|
}
|
|
|
|
.polygon-review-summary article small {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.polygon-qualification__heading,
|
|
.polygon-qualification__viewer > header {
|
|
display: grid;
|
|
}
|
|
|
|
.polygon-qualification__providers {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.polygon-qualification__degradations p {
|
|
grid-template-columns: 1fr 1fr;
|
|
}
|
|
|
|
.dataset-purpose ol {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
width: 100%;
|
|
}
|
|
|
|
.dataset-entry dl {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.dataset-entry dl div + div {
|
|
border-left: 0;
|
|
}
|
|
|
|
.dataset-entry dl div:nth-child(even) {
|
|
border-left: 1px solid var(--station-hairline);
|
|
}
|
|
|
|
.dataset-entry dl div:nth-child(n + 3) {
|
|
border-top: 1px solid var(--station-hairline);
|
|
}
|
|
|
|
.dataset-entry footer {
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.dataset-contract__content {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.dataset-contract summary small,
|
|
.lidar-technical-details > summary small {
|
|
display: none;
|
|
}
|
|
|
|
.lidar-device-context__verdict {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.control-station .nodedc-header__profile-button {
|
|
display: none;
|
|
}
|
|
|
|
.landing-stage__copy {
|
|
top: 42%;
|
|
right: 1.2rem;
|
|
left: 1.2rem;
|
|
width: auto;
|
|
}
|
|
|
|
.landing-stage__copy h1 {
|
|
font-size: clamp(2.8rem, 14vw, 5rem);
|
|
}
|
|
|
|
.landing-stage__status {
|
|
top: auto;
|
|
right: 1rem;
|
|
bottom: 3.3rem;
|
|
left: 1rem;
|
|
width: auto;
|
|
max-width: none;
|
|
}
|
|
|
|
.landing-stage__footer {
|
|
right: 1rem;
|
|
bottom: 1.1rem;
|
|
left: 1rem;
|
|
}
|
|
|
|
.landing-stage__footer span:first-child {
|
|
display: none;
|
|
}
|
|
|
|
.metrics-grid,
|
|
.capability-summary,
|
|
.camera-grid,
|
|
.polygon-run-metrics,
|
|
.polygon-run-providers {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.lidar-quality-facts {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.lidar-ground-metrics,
|
|
.lidar-ground-gates {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.lidar-ground-review > header,
|
|
.lidar-ground-review__controls,
|
|
.lidar-fallback-review > header {
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.lidar-ground-frame-status {
|
|
justify-items: start;
|
|
text-align: left;
|
|
}
|
|
|
|
.lidar-ground-modes {
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.lidar-ground-frame-control input {
|
|
width: 100%;
|
|
}
|
|
|
|
.lidar-ground-frame-control {
|
|
width: 100%;
|
|
}
|
|
|
|
.lidar-ground-scene {
|
|
min-height: 22rem;
|
|
}
|
|
|
|
.lidar-ground-scene__toolbar span {
|
|
display: none;
|
|
}
|
|
|
|
.lidar-field-review__source,
|
|
.lidar-field-window-list {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.lidar-field-cloud > header,
|
|
.lidar-field-review__explanation {
|
|
align-items: stretch;
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.lidar-field-cloud > header {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.lidar-local-surface__heading {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.lidar-local-surface__summary,
|
|
.lidar-local-surface__stage {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.lidar-local-surface__stage .lidar-ground-scene,
|
|
.lidar-local-surface__stage .lidar-ground-scene-placeholder {
|
|
min-height: 22rem;
|
|
}
|
|
|
|
.polygon-run-identity dl {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.polygon-live-heading > div:last-child {
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.polygon-rover-scene {
|
|
min-height: 19rem;
|
|
}
|
|
|
|
.polygon-rover-scene__frames small,
|
|
.polygon-rover-scene__help {
|
|
display: none;
|
|
}
|
|
|
|
.polygon-run-event-list article {
|
|
grid-template-columns: 2.3rem minmax(0, 1fr);
|
|
}
|
|
|
|
.polygon-run-event-list article > span:last-child {
|
|
grid-column: 2;
|
|
}
|
|
|
|
.camera-grid {
|
|
grid-template-rows: repeat(4, minmax(14rem, 1fr));
|
|
}
|
|
|
|
.camera-slot[data-primary="true"] {
|
|
grid-row: auto;
|
|
grid-column: auto;
|
|
}
|
|
|
|
.spatial-workspace {
|
|
min-height: 38rem;
|
|
}
|
|
|
|
.spatial-toolbar,
|
|
.spatial-toolbar__actions {
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.spatial-toolbar__actions {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
|
|
.spatial-toolbar__actions .nodedc-button {
|
|
justify-content: center;
|
|
}
|
|
|
|
.scene-status--top-left {
|
|
top: 0.6rem;
|
|
left: 0.6rem;
|
|
}
|
|
|
|
.scene-device-controls {
|
|
top: 0.6rem;
|
|
max-width: calc(100% - 8rem);
|
|
}
|
|
|
|
.scene-adapter-note {
|
|
right: 0.75rem;
|
|
left: 0.75rem;
|
|
width: auto;
|
|
transform: translateY(4.8rem);
|
|
}
|
|
|
|
.scene-timeline {
|
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
}
|
|
|
|
.scene-timeline > .nodedc-button:first-child,
|
|
.scene-timeline > code {
|
|
display: none;
|
|
}
|
|
|
|
.map-inspector {
|
|
display: block;
|
|
}
|
|
|
|
.timeline-ruler {
|
|
margin-left: 0;
|
|
}
|
|
|
|
.timeline-lane {
|
|
grid-template-columns: 5.5rem minmax(0, 1fr);
|
|
}
|
|
|
|
.timeline-lane small {
|
|
display: none;
|
|
}
|
|
|
|
.source-format-list > div {
|
|
align-items: stretch;
|
|
grid-template-columns: 1fr;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.feature-row {
|
|
grid-template-columns: auto minmax(0, 1fr);
|
|
}
|
|
|
|
.feature-row > .nodedc-status {
|
|
grid-column: 2;
|
|
justify-self: start;
|
|
}
|
|
}
|
|
|
|
@media (max-height: 720px) and (min-width: 761px) {
|
|
.landing-stage__copy h1 {
|
|
font-size: clamp(2.7rem, 6vw, 5rem);
|
|
}
|
|
|
|
.landing-stage__copy p {
|
|
font-size: 0.76rem;
|
|
}
|
|
|
|
.landing-stage__actions {
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.landing-stage__status {
|
|
top: 1.2rem;
|
|
right: 1.2rem;
|
|
}
|
|
}
|