/* desktop city overview fits into one viewport without redundant controls. */
@media (min-width: 1101px) and (min-height: 700px) {
  .module-city .ref-content-scroll {
    overflow-y: hidden;
  }

  .module-city .view-stage,
  .module-city .ref-city-page,
  .module-city .ref-workspace-grid {
    min-height: 0;
    height: 100%;
  }

  .module-city .view-stage {
    padding: 8px 10px;
  }

  .module-city .ref-workspace-grid {
    grid-template-columns: minmax(0, 1.22fr) minmax(360px, 430px);
    gap: 10px;
  }

  .module-city .ref-city-page .ref-workspace-main {
    min-height: 0;
    grid-template-rows: minmax(0, 1fr) 48px 126px;
    gap: 8px;
  }

  .module-city .ref-city-hero {
    height: auto;
    min-height: 0;
  }

  .module-city .ref-hero-copy {
    left: 18px;
    top: 16px;
    right: 18px;
    max-width: 720px;
  }

  .module-city .ref-hero-copy h1 {
    margin: 6px 0 5px;
    font-size: clamp(42px, 3.4vw, 58px);
  }

  .module-city .ref-hero-copy p {
    font-size: 13px;
    line-height: 1.35;
  }

  .module-city .ref-city-selected-building-label {
    font-size: 13px !important;
  }

  .module-city .ref-inline-tags {
    gap: 7px;
    margin-top: 9px;
  }

  .module-city .ref-inline-tags span {
    padding: 5px 9px;
    font-size: 13px;
  }

  .module-city .ref-queue-banner {
    max-width: 620px;
    min-height: 62px;
    margin-top: 9px;
    padding: 10px 14px;
  }

  .module-city .ref-queue-banner strong { font-size: 17px; }
  .module-city .ref-queue-banner small { font-size: 13px; }
  .module-city .ref-queue-banner em { font-size: 30px; }

  .module-city .ref-city-queue-slots {
    right: 14px;
    bottom: 14px;
    width: min(360px, 42%);
    gap: 8px;
  }

  .module-city .ref-city-queue-slots > div {
    padding: 9px 10px;
  }

  .module-city .ref-city-resource-bar {
    height: 48px;
    min-height: 48px;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 6px;
    margin: 0;
    padding: 0;
  }

  .module-city .ref-city-resource-bar .ref-resource-chip {
    min-height: 48px;
    height: 48px;
    gap: 7px;
    padding: 6px 8px;
    border-radius: 9px;
  }

  .module-city .ref-city-resource-bar .ref-resource-chip .nv-icon {
    width: 14px;
    height: 14px;
    padding: 4px;
    border-radius: 7px;
  }

  .module-city .ref-city-resource-bar .ref-resource-chip > span {
    gap: 2px;
  }

  .module-city .ref-city-resource-bar .ref-resource-chip small {
    font-size: 13px;
    letter-spacing: .06em;
  }

  .module-city .ref-city-resource-bar .ref-resource-inline {
    gap: 5px;
  }

  .module-city .ref-city-resource-bar .ref-resource-chip strong {
    font-size: 17px;
  }

  .module-city .ref-city-resource-bar .ref-resource-chip em {
    font-size: 13px;
  }

  .module-city .ref-building-rail-compact {
    min-height: 0;
    height: 116px;
    overflow: hidden;
    padding: 7px 8px;
  }

  .module-city .ref-building-window {
    height: 100%;
    display: block;
  }

  .module-city .ref-city-page .ref-selection-grid {
    height: 100%;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 7px;
    overflow: hidden;
    padding: 0;
  }

  .module-city .ref-building-selector {
    min-height: 0;
    height: 100%;
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 8px;
    padding: 6px;
  }

  .module-city .ref-building-selector > div {
    height: 70px;
  }

  .module-city .ref-building-selector strong { font-size: 13px; }
  .module-city .ref-building-selector small { font-size: 13px; }
  .module-city .ref-building-selector em { margin-top: 3px; font-size: 13px; }


  .module-city .ref-building-inspector {
    min-height: 0;
    height: 100%;
    gap: 6px;
    padding: 9px;
    overflow: hidden;
  }

  .module-city .ref-city-inspector-art {
    height: 118px;
    flex: 0 0 118px;
  }

  .module-city .ref-city-inspector-art strong { font-size: 18px; }
  .module-city .ref-city-inspector-art small { font-size: 13px; }

  .module-city .ref-building-inspector .ref-inspector-head {
    padding: 2px 2px 6px;
  }

  .module-city .ref-building-inspector .ref-inspector-head h2 {
    margin-top: 3px;
    font-size: 26px;
  }

  .module-city .ref-building-inspector .ref-level-label {
    margin-top: 3px;
    font-size: 13px;
  }

  .module-city .ref-building-inspector .ref-inspector-head p {
    margin-top: 6px;
    font-size: 13px;
    line-height: 1.3;
  }

  .module-city .ref-city-inspector-summary {
    gap: 6px;
  }

  .module-city .ref-city-inspector-summary > div,
  .module-city .ref-building-inspector .ref-inspector-block {
    padding: 7px 8px;
  }

  .module-city .ref-city-inspector-summary span,
  .module-city .ref-building-inspector .ref-inspector-block > span {
    font-size: 13px;
  }

  .module-city .ref-city-inspector-summary strong,
  .module-city .ref-building-inspector .ref-inspector-block > strong {
    margin-top: 3px;
    font-size: 13px;
    line-height: 1.2;
  }

  .module-city .ref-building-inspector .ref-inspector-block > small,
  .module-city .ref-building-inspector .ref-inspector-block ul,
  .module-city .ref-building-inspector .ref-cost-row {
    font-size: 13px;
  }

  .module-city .ref-building-inspector .ref-inspector-block ul {
    line-height: 1.35;
  }

  .module-city .ref-building-inspector .ref-inspector-action {
    padding-top: 4px;
  }

  .module-city .ref-building-inspector .ref-primary-button {
    min-height: 32px;
    padding: 6px 10px;
    font-size: 13px;
  }
}


/* city overview readability uplift without changing the information architecture. */
@media (min-width: 1101px) and (min-height: 700px) {
  .module-city .ref-workspace-grid {
    grid-template-columns: minmax(0, 1.18fr) minmax(410px, 500px);
  }

  .module-city .ref-city-page .ref-workspace-main {
    grid-template-rows: minmax(0, 1fr) 58px 136px;
    gap: 10px;
  }

  .module-city .ref-hero-copy {
    left: 20px;
    top: 18px;
    right: 20px;
  }

  .module-city .ref-hero-copy h1 {
    font-size: clamp(46px, 3.4vw, 64px);
  }

  .module-city .ref-hero-copy p {
    font-size: 14px;
    line-height: 1.42;
  }

  .module-city .ref-inline-tags span {
    font-size: 13px;
    padding: 6px 10px;
  }

  .module-city .ref-queue-banner {
    min-height: 72px;
    padding: 12px 16px;
  }

  .module-city .ref-queue-banner strong { font-size: 20px; }
  .module-city .ref-queue-banner small { font-size: 13px; }
  .module-city .ref-queue-banner em { font-size: 34px; }

  .module-city .ref-city-resource-bar {
    height: 58px;
    min-height: 58px;
    gap: 8px;
  }

  .module-city .ref-city-resource-bar .ref-resource-chip {
    min-height: 58px;
    height: 58px;
    padding: 8px 10px;
  }

  .module-city .ref-city-resource-bar .ref-resource-chip .nv-icon {
    width: 16px;
    height: 16px;
    padding: 4px;
  }

  .module-city .ref-city-resource-bar .ref-resource-chip small {
    font-size: 13px;
  }

  .module-city .ref-city-resource-bar .ref-resource-chip strong {
    font-size: 19px;
  }

  .module-city .ref-city-resource-bar .ref-resource-chip em {
    font-size: 13px;
  }

  .module-city .ref-building-rail-compact {
    height: 132px;
    padding: 9px 10px;
  }

  .module-city .ref-city-page .ref-selection-grid {
    gap: 8px;
  }

  .module-city .ref-building-selector {
    grid-template-columns: 90px minmax(0, 1fr);
    gap: 9px;
    padding: 8px;
  }

  .module-city .ref-building-selector > div {
    height: 80px;
  }

  .module-city .ref-building-selector strong { font-size: 13px; }
  .module-city .ref-building-selector small { font-size: 13px; }
  .module-city .ref-building-selector em { font-size: 13px; }

  .module-city .ref-building-inspector {
    gap: 10px;
    padding: 12px;
  }

  .module-city .ref-city-inspector-art {
    height: 142px;
    flex: 0 0 142px;
  }

  .module-city .ref-city-inspector-art span { font-size: 13px; }
  .module-city .ref-city-inspector-art strong { font-size: 24px; }
  .module-city .ref-city-inspector-art small { font-size: 13px; }

  .module-city .ref-building-inspector .ref-inspector-head h2 {
    font-size: 34px;
  }

  .module-city .ref-building-inspector .ref-level-label {
    font-size: 13px;
  }

  .module-city .ref-building-inspector .ref-inspector-head p {
    font-size: 13px;
    line-height: 1.42;
  }

  .module-city .ref-city-inspector-summary {
    gap: 8px;
  }

  .module-city .ref-city-inspector-summary > div,
  .module-city .ref-building-inspector .ref-inspector-block {
    padding: 10px 11px;
    border-radius: 10px;
  }

  .module-city .ref-city-inspector-summary span,
  .module-city .ref-building-inspector .ref-inspector-block > span {
    font-size: 13px;
  }

  .module-city .ref-city-inspector-summary strong,
  .module-city .ref-building-inspector .ref-inspector-block > strong {
    font-size: 15px;
  }

  .module-city .ref-building-inspector .ref-inspector-block > small,
  .module-city .ref-building-inspector .ref-inspector-block ul,
  .module-city .ref-building-inspector .ref-cost-row {
    font-size: 13px;
    line-height: 1.45;
  }

  .module-city .ref-building-inspector .ref-inspector-block ul {
    padding-left: 18px;
  }

  .module-city .ref-building-inspector .ref-primary-button,
  .module-city .ref-building-inspector .ref-secondary-button {
    min-height: 38px;
    padding: 8px 12px;
    font-size: 13px;
  }

  .module-city .ref-build-action-hint {
    font-size: 13px !important;
  }
}

@media (min-width: 1600px) and (min-height: 900px) {
  .module-city .view-stage {
    padding: 10px 12px;
  }

  .module-city .ref-workspace-grid {
    grid-template-columns: minmax(0, 1.16fr) minmax(460px, 570px);
    gap: 12px;
  }

  .module-city .ref-city-page .ref-workspace-main {
    grid-template-rows: minmax(0, 1fr) 62px 144px;
  }

  .module-city .ref-city-resource-bar {
    height: 62px;
    min-height: 62px;
  }

  .module-city .ref-city-resource-bar .ref-resource-chip {
    min-height: 62px;
    height: 62px;
  }

  .module-city .ref-city-resource-bar .ref-resource-chip strong { font-size: 20px; }
  .module-city .ref-city-resource-bar .ref-resource-chip em { font-size: 13px; }

  .module-city .ref-building-rail-compact {
    height: 144px;
  }

  .module-city .ref-building-selector {
    grid-template-columns: 100px minmax(0, 1fr);
    padding: 9px;
  }

  .module-city .ref-building-selector > div {
    height: 88px;
  }

  .module-city .ref-building-selector strong { font-size: 14px; }
  .module-city .ref-building-selector small { font-size: 13px; }
  .module-city .ref-building-inspector {
    padding: 14px;
    gap: 11px;
  }

  .module-city .ref-city-inspector-art {
    height: 158px;
    flex-basis: 158px;
  }

  .module-city .ref-building-inspector .ref-inspector-head h2 {
    font-size: 38px;
  }

  .module-city .ref-building-inspector .ref-inspector-head p {
    font-size: 13px;
  }

  .module-city .ref-city-inspector-summary span,
  .module-city .ref-building-inspector .ref-inspector-block > span {
    font-size: 13px;
  }

  .module-city .ref-city-inspector-summary strong,
  .module-city .ref-building-inspector .ref-inspector-block > strong {
    font-size: 16px;
  }

  .module-city .ref-building-inspector .ref-inspector-block > small,
  .module-city .ref-building-inspector .ref-inspector-block ul,
  .module-city .ref-building-inspector .ref-cost-row {
    font-size: 13px;
  }

  .module-city .ref-building-inspector .ref-primary-button,
  .module-city .ref-building-inspector .ref-secondary-button {
    min-height: 42px;
    font-size: 13px;
  }
}

