/* VS-005 — Operating Model Builder Surface Pack */

.rv-omb-shell {
  display: grid;
  gap: 12px;
}

.rv-omb-title-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-end;
}

.rv-omb-title h1 {
  margin: 0 0 5px 0;
  font-size: 24px;
  font-weight: 780;
  color: var(--rv-text-primary);
}

.rv-omb-title p {
  margin: 0;
  max-width: 1040px;
  color: var(--rv-text-secondary);
  line-height: 1.45;
}

.rv-omb-path {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  font-family: var(--rv-mono);
  font-size: 11px;
}

.rv-omb-path span {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 7px;
  background: #eef2f5;
  border: 1px solid var(--rv-border-subtle);
}

.rv-omb-command-band {
  display: grid;
  grid-template-columns: 1.1fr .95fr .95fr;
  gap: 10px;
}

.rv-omb-command {
  min-height: 118px;
  background: #fff;
  border: 1px solid var(--rv-border-subtle);
  box-shadow: var(--rv-shadow-panel);
  padding: 12px;
}

.rv-omb-command h3 {
  margin: 0 0 7px 0;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .07em;
}

.rv-omb-command p {
  margin: 0 0 9px 0;
  color: var(--rv-text-secondary);
  line-height: 1.45;
  font-size: 12px;
}

.rv-omb-builder-grid {
  display: grid;
  grid-template-columns: 310px minmax(0, 1fr) 360px;
  gap: 10px;
}

.rv-omb-column {
  background: #fff;
  border: 1px solid var(--rv-border-subtle);
  box-shadow: var(--rv-shadow-panel);
  min-height: 520px;
}

.rv-omb-column-header {
  min-height: 40px;
  padding: 10px 11px;
  border-bottom: 1px solid var(--rv-border-subtle);
  background: #f8fafc;
}

.rv-omb-column-header strong {
  display: block;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .075em;
  color: var(--rv-text-primary);
}

.rv-omb-column-header span {
  display: block;
  margin-top: 3px;
  font-size: 11px;
  color: var(--rv-text-secondary);
}

.rv-omb-search {
  padding: 8px;
  border-bottom: 1px solid var(--rv-border-subtle);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px;
}

.rv-omb-search-box,
.rv-omb-select {
  height: 30px;
  border: 1px solid var(--rv-border-subtle);
  background: #fff;
  padding: 0 8px;
  font-size: 11px;
  color: var(--rv-text-secondary);
}

.rv-omb-tree {
  padding: 8px;
  display: grid;
  gap: 6px;
}

.rv-omb-tree-item {
  border: 1px solid var(--rv-border-subtle);
  background: #fff;
}

.rv-omb-tree-item.selected {
  border-color: #9eb7ca;
  background: #edf4f9;
}

.rv-omb-tree-main {
  padding: 8px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px;
  align-items: center;
}

.rv-omb-tree-main strong {
  font-size: 12px;
}

.rv-omb-tree-main span {
  font-size: 10px;
  color: var(--rv-text-secondary);
}

.rv-omb-tree-meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--rv-border-subtle);
}

.rv-omb-tree-meta div {
  padding: 6px;
  border-right: 1px solid var(--rv-border-subtle);
  font-size: 10px;
  color: var(--rv-text-secondary);
}

.rv-omb-tree-meta div:last-child {
  border-right: 0;
}

.rv-omb-model-canvas {
  padding: 10px;
  display: grid;
  gap: 8px;
}

.rv-omb-model-row {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 120px 110px;
  gap: 8px;
  align-items: center;
  border: 1px solid var(--rv-border-subtle);
  background: #fff;
  padding: 8px;
}

.rv-omb-model-row.blocked {
  border-left: 4px solid var(--rv-state-blocked);
}

.rv-omb-model-row.warning {
  border-left: 4px solid var(--rv-state-warning);
}

.rv-omb-model-row.ready {
  border-left: 4px solid var(--rv-state-ready);
}

.rv-omb-model-index {
  font-family: var(--rv-mono);
  color: var(--rv-text-muted);
  font-size: 11px;
}

.rv-omb-model-name strong {
  display: block;
  font-size: 12px;
}

.rv-omb-model-name span {
  display: block;
  font-size: 11px;
  color: var(--rv-text-secondary);
  margin-top: 2px;
}

.rv-omb-impact-list {
  padding: 8px;
  display: grid;
  gap: 8px;
}

.rv-omb-impact {
  border: 1px solid var(--rv-border-subtle);
  border-left: 4px solid var(--rv-state-warning);
  background: #fff;
  padding: 9px;
}

.rv-omb-impact.blocked {
  border-left-color: var(--rv-state-blocked);
}

.rv-omb-impact.ready {
  border-left-color: var(--rv-state-ready);
}

.rv-omb-impact strong {
  display: block;
  font-size: 12px;
  margin-bottom: 4px;
}

.rv-omb-impact p {
  margin: 0 0 6px 0;
  color: var(--rv-text-secondary);
  font-size: 11px;
  line-height: 1.4;
}

.rv-omb-readiness {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 12px;
}

.rv-omb-readiness-bars {
  display: grid;
  gap: 8px;
  padding: 12px;
}

.rv-omb-mobile-stack {
  display: none;
}

@media (max-width: 1180px) {
  .rv-omb-builder-grid,
  .rv-omb-readiness,
  .rv-omb-command-band {
    grid-template-columns: 1fr;
  }

  .rv-omb-column {
    min-height: auto;
  }
}

@media (max-width: 900px), (hover: none) and (pointer: coarse) {
  .rv-omb-title-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .rv-omb-title h1 {
    font-size: 20px;
  }

  .rv-omb-title p {
    font-size: 11px;
  }

  .rv-omb-path {
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 2px;
  }

  .rv-omb-path span {
    flex: 0 0 auto;
    font-size: 9px;
  }

  .rv-omb-command-band,
  .rv-omb-builder-grid,
  .rv-omb-readiness {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .rv-omb-command {
    min-height: auto;
    padding: 9px;
  }

  .rv-omb-command h3 {
    font-size: 11px;
  }

  .rv-omb-command p {
    font-size: 10.5px;
  }

  .rv-omb-builder-grid {
    display: none;
  }

  .rv-omb-mobile-stack {
    display: grid;
    gap: 8px;
  }

  .rv-omb-mobile-card {
    background: #fff;
    border: 1px solid var(--rv-border-subtle);
    box-shadow: var(--rv-shadow-panel);
    padding: 9px;
  }

  .rv-omb-mobile-card strong {
    display: block;
    font-size: 12px;
    margin-bottom: 4px;
  }

  .rv-omb-mobile-card span {
    display: block;
    font-size: 11px;
    color: var(--rv-text-secondary);
    line-height: 1.4;
    overflow-wrap: anywhere;
  }

  .rv-omb-model-row {
    grid-template-columns: 1fr;
  }

  .rv-omb-readiness-bars {
    padding: 8px;
  }
}

@media (max-width: 430px) {
  .rv-omb-title h1 {
    font-size: 18px;
  }
}
