.standard-workspace,
.device-workspace {
  display: grid;
  min-width: 0;
  gap: 1rem;
  padding: 0 0 1rem;
}

.feature-inventory {
  display: grid;
  gap: 1rem;
}

.feature-group {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(14rem, 0.72fr) minmax(0, 1.6fr);
  gap: 1.6rem;
  padding-top: 1.2rem;
}

.feature-group > header h3 {
  margin: 0.48rem 0 0.45rem;
  color: var(--nodedc-text-primary);
  font-size: 1.08rem;
  font-weight: 710;
  letter-spacing: -0.035em;
}

.feature-group > header p {
  max-width: 25rem;
  margin: 0;
  color: var(--nodedc-text-muted);
  font-size: 0.68rem;
  line-height: 1.48;
}

.feature-list {
  display: grid;
  min-width: 0;
}

.feature-row {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.8rem;
  padding: 0.78rem 0;
}

.feature-row:first-child {
  padding-top: 0;
}

.feature-row__mark {
  width: 0.52rem;
  height: 0.52rem;
  border-radius: 50%;
  background: var(--nodedc-text-muted);
}

.feature-row[data-status="active"] .feature-row__mark {
  background: rgb(var(--nodedc-success-rgb));
}

.feature-row[data-status="ready"] .feature-row__mark {
  background: var(--nodedc-text-primary);
}

.feature-row[data-status="contract"] .feature-row__mark {
  background: rgb(var(--nodedc-warning-rgb));
}

.feature-row strong,
.feature-row p {
  margin: 0;
}

.feature-row strong {
  color: var(--nodedc-text-primary);
  font-size: 0.74rem;
  font-weight: 690;
}

.feature-row p {
  margin-top: 0.18rem;
  color: var(--nodedc-text-muted);
  font-size: 0.64rem;
  line-height: 1.4;
}

.polygon-run-workspace {
  gap: 0.85rem;
}

.polygon-run-message {
  display: grid;
  min-height: 18rem;
  place-items: start;
  align-content: center;
  gap: 0.8rem;
}

.polygon-run-message h2,
.polygon-run-message p,
.polygon-run-panel-heading h3,
.polygon-run-artifacts h3,
.polygon-run-limitations h3 {
  margin: 0;
}

.polygon-run-message h2 {
  color: var(--nodedc-text-primary);
  font-size: 1.35rem;
  letter-spacing: -0.035em;
}

.polygon-run-message p {
  max-width: 38rem;
  color: var(--nodedc-text-muted);
  font-size: 0.72rem;
  line-height: 1.55;
}

.polygon-run-lead-status {
  display: grid;
  justify-items: end;
  gap: 0.45rem;
}

.polygon-run-lead-status > span {
  color: var(--nodedc-text-muted);
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: 0.58rem;
}

.polygon-run-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}

.polygon-run-metrics > div {
  display: grid;
  min-height: 5.5rem;
  align-content: space-between;
  gap: 0.32rem;
  border-radius: 1rem;
  background: var(--station-panel);
  padding: 0.9rem 1rem;
}

.polygon-run-metrics span,
.polygon-run-metrics small,
.polygon-run-panel-heading > span {
  color: var(--nodedc-text-muted);
  font-size: 0.6rem;
}

.polygon-run-metrics strong {
  overflow: hidden;
  color: var(--nodedc-text-primary);
  font-size: 1.05rem;
  font-weight: 680;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.polygon-run-metrics small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.polygon-run-layout,
.polygon-run-evidence-grid {
  display: grid;
  grid-template-columns: minmax(17rem, 0.72fr) minmax(0, 1.28fr);
  gap: 0.75rem;
}

.polygon-run-panel-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.polygon-run-panel-heading h3,
.polygon-run-artifacts h3,
.polygon-run-limitations h3 {
  margin-top: 0.4rem;
  color: var(--nodedc-text-primary);
  font-size: 0.94rem;
  letter-spacing: -0.025em;
}

.polygon-run-list {
  display: grid;
  gap: 0.35rem;
}

.polygon-run-list button {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.65rem;
  border: 0;
  border-radius: 0.8rem;
  background: rgb(255 255 255 / 0.025);
  padding: 0.65rem 0.7rem;
  text-align: left;
  cursor: pointer;
}

.polygon-run-list button:hover,
.polygon-run-list button:focus-visible,
.polygon-run-list button[data-active="true"] {
  outline: 0;
  background: rgb(255 255 255 / 0.07);
}

.polygon-run-list button > i,
.polygon-run-providers i {
  width: 0.48rem;
  height: 0.48rem;
  border-radius: 50%;
  background: var(--nodedc-text-muted);
}

.polygon-run-list button > i[data-state="completed"],
.polygon-run-providers i {
  background: rgb(var(--nodedc-success-rgb));
}

.polygon-run-list button > i[data-state="failed"],
.polygon-run-list button > i[data-state="aborted"] {
  background: rgb(var(--nodedc-danger-rgb));
}

.polygon-run-list button > i[data-state="running"] {
  background: var(--nodedc-text-primary);
}

.polygon-run-list button > span {
  display: grid;
  min-width: 0;
  gap: 0.18rem;
}

.polygon-run-list strong,
.polygon-run-list small,
.polygon-run-list em {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.polygon-run-list strong {
  color: var(--nodedc-text-primary);
  font-size: 0.66rem;
}

.polygon-run-list small,
.polygon-run-list em {
  color: var(--nodedc-text-muted);
  font-size: 0.56rem;
}

.polygon-run-list em {
  font-style: normal;
}

.polygon-run-identity dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.3rem 1rem;
  margin: 0.9rem 0 0;
}

.polygon-run-identity dl > div {
  display: grid;
  min-width: 0;
  grid-template-columns: 7rem minmax(0, 1fr);
  gap: 0.7rem;
  border-bottom: 1px solid var(--station-hairline);
  padding: 0.48rem 0;
}

.polygon-run-identity dt,
.polygon-run-identity dd {
  overflow: hidden;
  margin: 0;
  font-size: 0.61rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.polygon-run-identity dt {
  color: var(--nodedc-text-muted);
}

.polygon-run-identity dd {
  color: var(--nodedc-text-primary);
}

.polygon-run-safety-boundary {
  display: grid;
  gap: 0.45rem;
  margin-top: 1rem;
  border-radius: 0.8rem;
  background: rgb(255 255 255 / 0.035);
  padding: 0.75rem;
}

.polygon-run-safety-boundary p {
  margin: 0;
  color: var(--nodedc-text-muted);
  font-size: 0.59rem;
  line-height: 1.5;
}

.polygon-run-providers {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
}

.polygon-run-providers > div {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.22rem 0.55rem;
  border-radius: 0.85rem;
  background: var(--station-panel);
  padding: 0.72rem;
}

.polygon-run-providers i {
  grid-row: 1 / 3;
  align-self: center;
}

.polygon-run-providers span {
  display: grid;
  min-width: 0;
  gap: 0.15rem;
}

.polygon-run-providers strong,
.polygon-run-providers small,
.polygon-run-providers code {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.polygon-run-providers strong {
  color: var(--nodedc-text-primary);
  font-size: 0.64rem;
}

.polygon-run-providers small,
.polygon-run-providers code {
  color: var(--nodedc-text-muted);
  font-size: 0.54rem;
}

.polygon-run-providers code {
  grid-column: 2;
}

.polygon-run-event-list {
  display: grid;
}

.polygon-run-event-list article {
  display: grid;
  min-width: 0;
  grid-template-columns: 2.3rem minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.8rem;
  border-top: 1px solid var(--station-hairline);
  padding: 0.75rem 0;
}

.polygon-run-event-list article:first-child {
  border-top: 0;
}

.polygon-run-event-list article > div {
  display: grid;
  min-width: 0;
  gap: 0.2rem;
}

.polygon-run-event-list strong {
  color: var(--nodedc-text-primary);
  font-size: 0.66rem;
}

.polygon-run-event-list small,
.polygon-run-event-list article > span:last-child,
.polygon-run-event-sequence {
  color: var(--nodedc-text-muted);
  font-size: 0.55rem;
}

.polygon-run-event-list code {
  overflow: hidden;
  color: var(--nodedc-text-secondary);
  font-size: 0.56rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.polygon-run-event-sequence {
  border-radius: 0.4rem;
  background: rgb(255 255 255 / 0.04);
  padding: 0.2rem 0.3rem;
  text-align: center;
}

.polygon-run-artifacts > div {
  display: grid;
  gap: 0.35rem;
  margin-top: 0.85rem;
}

.polygon-run-artifacts article {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  border-radius: 0.75rem;
  background: rgb(255 255 255 / 0.025);
  padding: 0.65rem;
}

.polygon-run-artifacts article > span {
  display: grid;
  min-width: 0;
  gap: 0.18rem;
}

.polygon-run-artifacts strong,
.polygon-run-artifacts small,
.polygon-run-artifacts code {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.polygon-run-artifacts strong {
  color: var(--nodedc-text-primary);
  font-size: 0.62rem;
}

.polygon-run-artifacts small,
.polygon-run-artifacts code,
.polygon-run-artifacts p,
.polygon-run-limitations li {
  color: var(--nodedc-text-muted);
  font-size: 0.56rem;
}

.polygon-run-artifacts p {
  margin: 0.9rem 0 0;
}

.polygon-run-limitations ul {
  display: grid;
  gap: 0.55rem;
  margin: 0.85rem 0 0;
  padding-left: 1rem;
}

.polygon-run-limitations li {
  line-height: 1.5;
}

.capability-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}

.capability-summary > div {
  display: flex;
  min-height: 4.4rem;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-radius: 1rem;
  background: var(--station-panel);
  padding: 0.85rem 1rem;
}

.capability-summary span {
  color: var(--nodedc-text-muted);
  font-size: 0.66rem;
}

.capability-summary strong {
  color: var(--nodedc-text-primary);
  font-size: 1.25rem;
  font-weight: 650;
}

.overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(19rem, 0.75fr);
  gap: 0.85rem;
}

.contour-panel,
.next-actions-panel,
.timeline-panel,
.mission-sequence,
.mission-summary,
.map-inspector {
  background: var(--station-panel);
}

.pipeline-strip {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(7, auto);
  align-items: center;
  justify-content: stretch;
  gap: 0.5rem;
  margin-top: 1.3rem;
}

.pipeline-strip > div {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 6rem;
  align-content: center;
  gap: 0.35rem;
  border-radius: 1rem;
  background: rgb(255 255 255 / 0.034);
  padding: 0.8rem;
}

.pipeline-strip > div::before {
  position: absolute;
  top: 0.7rem;
  right: 0.7rem;
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: var(--nodedc-text-muted);
  content: "";
}

.pipeline-strip > div[data-state="ready"]::before {
  background: rgb(var(--nodedc-success-rgb));
}

.pipeline-strip > div[data-state="contract"]::before {
  background: rgb(var(--nodedc-warning-rgb));
}

.pipeline-strip > svg {
  color: var(--nodedc-text-muted);
}

.pipeline-strip span,
.pipeline-strip small {
  overflow: hidden;
  color: var(--nodedc-text-muted);
  font-size: 0.58rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pipeline-strip strong {
  overflow: hidden;
  color: var(--nodedc-text-primary);
  font-size: 0.72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.action-list {
  display: grid;
  gap: 0.46rem;
  margin-top: 1rem;
}

.action-list > button {
  display: grid;
  width: 100%;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  border: 0;
  border-radius: 1rem;
  outline: 0;
  background: rgb(255 255 255 / 0.035);
  padding: 0.65rem;
  text-align: left;
  cursor: pointer;
}

.action-list > button:hover,
.action-list > button:focus-visible {
  background: rgb(255 255 255 / 0.07);
}

.action-list > button > span {
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  border-radius: 50%;
  background: rgb(255 255 255 / 0.055);
  color: var(--nodedc-text-secondary);
}

.action-list strong,
.action-list small {
  display: block;
}

.action-list strong {
  color: var(--nodedc-text-primary);
  font-size: 0.7rem;
}

.action-list small {
  margin-top: 0.18rem;
  color: var(--nodedc-text-muted);
  font-size: 0.6rem;
}

.action-list > button > svg {
  color: var(--nodedc-text-muted);
}

.camera-grid {
  display: grid;
  min-height: 33rem;
  grid-template-columns: minmax(0, 1.55fr) minmax(18rem, 0.72fr);
  grid-template-rows: repeat(3, minmax(9rem, 1fr));
  gap: 0.75rem;
}

.camera-slot {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
  border-radius: 1rem;
  background: #090a0c;
  box-shadow: none;
}

.camera-slot[data-primary="true"] {
  grid-row: 1 / 4;
}

.camera-slot__grid {
  position: absolute;
  inset: 0;
  background: rgb(255 255 255 / 0.012);
}

.camera-slot header,
.camera-slot footer,
.camera-slot__empty {
  position: relative;
  z-index: 1;
}

.camera-slot header,
.camera-slot footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.75rem;
}

.camera-slot header > span {
  color: var(--nodedc-text-primary);
  font-size: 0.68rem;
  font-weight: 720;
}

.camera-slot__empty {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 0.6rem;
  color: var(--nodedc-text-muted);
}

.camera-slot__empty span {
  font-size: 0.64rem;
}

.camera-slot footer {
  color: var(--nodedc-text-muted);
  font-size: 0.58rem;
}

.camera-slot footer button {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgb(255 255 255 / 0.04);
  color: var(--nodedc-text-muted);
}

.map-layout {
  display: grid;
  min-height: 34rem;
  grid-template-columns: minmax(0, 1fr) 18rem;
  gap: 0.75rem;
}

.map-canvas {
  position: relative;
  min-width: 0;
  min-height: 30rem;
  overflow: hidden;
  border-radius: 1rem;
  background: #0a0b0d;
  box-shadow: none;
}

.map-canvas__grid,
.map-canvas__contours {
  position: absolute;
  inset: 0;
}

.map-canvas__grid {
  background: rgb(255 255 255 / 0.012);
}

.map-canvas__contours span {
  position: absolute;
  border: 1px solid rgb(255 255 255 / 0.055);
  border-radius: 48% 52% 62% 38%;
  transform: rotate(-12deg);
}

.map-canvas__contours span:nth-child(1) { inset: 16% 14% 20% 19%; }
.map-canvas__contours span:nth-child(2) { inset: 23% 21% 27% 27%; }
.map-canvas__contours span:nth-child(3) { inset: 31% 29% 35% 34%; }
.map-canvas__contours span:nth-child(4) { inset: 39% 37% 43% 42%; }

.map-canvas svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.map-canvas svg path {
  fill: none;
  stroke: var(--nodedc-text-secondary);
  stroke-linecap: round;
  stroke-width: 3;
}

.map-canvas svg circle {
  fill: #0a0b0d;
  stroke: var(--nodedc-text-secondary);
  stroke-width: 4;
}

.map-point-label {
  position: absolute;
  z-index: 2;
  border-radius: var(--nodedc-radius-circle);
  background: rgb(8 9 11 / 0.86);
  color: var(--nodedc-text-secondary);
  padding: 0.34rem 0.55rem;
  font-size: 0.58rem;
  backdrop-filter: blur(10px);
}

.map-canvas__notice {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  left: 1rem;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  color: var(--nodedc-text-muted);
  font-size: 0.62rem;
}

.map-inspector h3 {
  margin: 0.52rem 0 1rem;
  font-size: 1.05rem;
}

.layer-summary-list {
  display: grid;
  gap: 0.42rem;
  margin-bottom: 1rem;
}

.layer-summary-list > div {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.15rem 0.55rem;
  border-radius: 0.8rem;
  background: rgb(255 255 255 / 0.035);
  padding: 0.7rem;
}

.layer-summary-list > div > span {
  width: 0.55rem;
  height: 0.55rem;
  grid-row: 1 / 3;
  align-self: center;
  border-radius: 50%;
  background: var(--nodedc-text-muted);
}

.layer-summary-list > div > span[data-tone="cyan"] { background: #35d7c1; }
.layer-summary-list > div > span[data-tone="violet"] { background: var(--nodedc-text-primary); }
.layer-summary-list > div > span[data-tone="green"] { background: #a6dc74; }
.layer-summary-list > div > span[data-tone="orange"] { background: #f2af4c; }

.layer-summary-list strong { font-size: 0.68rem; }
.layer-summary-list small { color: var(--nodedc-text-muted); font-size: 0.58rem; }

.timeline-panel__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.timeline-panel__head h3 {
  margin: 0.48rem 0 0;
  font-size: 1.05rem;
}

.timeline-panel__controls {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.timeline-panel__controls code {
  color: var(--nodedc-text-muted);
  font-size: 0.62rem;
}

.timeline-ruler {
  display: grid;
  grid-template-columns: repeat(11, minmax(0, 1fr));
  margin: 1.4rem 0 0.55rem 8.5rem;
  color: var(--nodedc-text-muted);
  font-size: 0.54rem;
}

.timeline-ruler span {
  padding-left: 0.2rem;
}

.timeline-lanes {
  display: grid;
}

.timeline-lane {
  display: grid;
  min-width: 0;
  grid-template-columns: 7.5rem minmax(0, 1fr) 10rem;
  align-items: center;
  gap: 1rem;
  padding: 0.82rem 0;
}

.timeline-lane strong,
.timeline-lane small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.timeline-lane strong { font-size: 0.67rem; }
.timeline-lane small { color: var(--nodedc-text-muted); font-size: 0.59rem; text-align: right; }

.timeline-lane > div {
  position: relative;
  height: 0.28rem;
  border-radius: 999px;
  background: rgb(255 255 255 / 0.045);
}

.timeline-lane > div > span {
  position: absolute;
  top: 50%;
  display: none;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background: var(--nodedc-text-primary);
  transform: translate(-50%, -50%);
}

.timeline-lane[data-active="true"] > div > span { display: block; }

.mission-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(19rem, 0.65fr);
  gap: 0.85rem;
}

.mission-steps {
  display: grid;
  gap: 0.45rem;
  margin-top: 1.1rem;
}

.mission-steps button {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  border: 0;
  border-radius: 1rem;
  background: rgb(255 255 255 / 0.035);
  padding: 0.65rem;
  text-align: left;
  opacity: 1;
}

.mission-steps button > span {
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  border-radius: 50%;
  background: rgb(255 255 255 / 0.05);
  color: var(--nodedc-text-muted);
  font-size: 0.58rem;
}

.mission-steps strong,
.mission-steps small { display: block; }
.mission-steps strong { color: var(--nodedc-text-primary); font-size: 0.7rem; }
.mission-steps small { margin-top: 0.18rem; color: var(--nodedc-text-muted); font-size: 0.6rem; }
.mission-steps svg { color: var(--nodedc-text-muted); }

.mission-summary {
  align-self: stretch;
}

.mission-readiness {
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
  margin-top: 1rem;
}

.mission-readiness strong {
  font-size: 4rem;
  font-weight: 580;
  letter-spacing: -0.08em;
  line-height: 1;
}

.mission-readiness span,
.mission-summary p {
  color: var(--nodedc-text-muted);
  font-size: 0.66rem;
}

.mission-summary p {
  line-height: 1.5;
}

.mission-summary__checks {
  display: grid;
  gap: 0.45rem;
  margin: 1rem 0;
}

.mission-summary__checks span {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--nodedc-text-secondary);
  font-size: 0.67rem;
}

.mission-summary__checks i {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--nodedc-text-muted);
}
