/* Buildings on the website (owner, 2026-10-20): the Apartments / Buildings switch, the breadcrumb and the
   bedroom groups of a building's page. Liquid Glass tokens (web/css/lg-core.css): the switch is a segmented
   control, the availability table a card. */

.bv-switch { display: inline-flex; gap: 2px; padding: 4px; border-radius: var(--lg-r-pill); background: var(--lg-nav-track); }
.bv-switch-opt { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 18px; border-radius: var(--lg-r-pill); font-size: var(--lg-t-label); color: var(--lg-text-secondary); transition: background-color var(--lg-dur) var(--lg-ease), color var(--lg-dur) var(--lg-ease); }
.bv-switch-opt:hover { color: var(--lg-text); }
.bv-switch-opt[aria-current="page"] { background: var(--lg-glass-solid); color: var(--lg-text); font-weight: 600; box-shadow: var(--lg-indicator-shadow); }
.bv-switch-opt:focus-visible { outline: 2px solid var(--lg-focus-ring); outline-offset: 3px; }
@media (pointer: coarse) { .bv-switch-opt { min-height: var(--lg-hit); } }

.bv-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: var(--lg-t-secondary); color: var(--lg-text-secondary); }
.bv-crumbs a:hover { color: var(--lg-text); }
.bv-crumbs [aria-current] { color: var(--lg-text); font-weight: 600; max-width: 32ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.bv-units { scroll-margin-top: 112px; }
/* The availability table of a building's page (owner-approved sketch, 2026-10-20; web/js/building-units.js). */
.bv-units-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.bv-units-count { font-size: var(--lg-t-secondary); color: var(--lg-text-secondary); }
.bv-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px 16px; flex-wrap: wrap; margin: 24px 0 16px; }
.bv-toolbar[hidden] { display: none; }
.bv-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.bv-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 14px; border-radius: var(--lg-r-pill); border: 0; background: var(--lg-fill); color: var(--lg-text); font: inherit; font-size: var(--lg-t-secondary); font-weight: 600; cursor: pointer; transition: background-color var(--lg-dur) var(--lg-ease), color var(--lg-dur) var(--lg-ease), transform var(--lg-dur-fast) var(--lg-ease); }
.bv-chip:hover { background: var(--lg-fill-strong); }
.bv-chip:active { transform: scale(.95); }
.bv-chip:focus-visible { outline: 2px solid var(--lg-focus-ring); outline-offset: 3px; }
.bv-chip span { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: var(--lg-r-pill); background: var(--lg-fill-ink); color: var(--lg-text); font-size: var(--lg-t-caption); font-variant-numeric: tabular-nums; }
.bv-chip[aria-pressed="true"] { background: var(--lg-accent-fill); color: var(--lg-on-accent); }
.bv-chip[aria-pressed="true"] span { background: color-mix(in srgb, var(--lg-on-accent) 22%, transparent); color: var(--lg-on-accent); }
@media (pointer: coarse) { .bv-chip { min-height: var(--lg-hit); } }
.bv-sort { display: inline-flex; align-items: center; gap: 8px; font-size: var(--lg-t-secondary); color: var(--lg-text-secondary); }
.sky-public .bv-sort select { min-height: 36px; padding: 0 34px 0 12px; border-radius: var(--lg-r-sm); font-size: var(--lg-t-label); }

.bv-table-wrap { container-type: inline-size; border-radius: var(--lg-r-xl); overflow-x: auto; background: var(--lg-surface); box-shadow: var(--lg-elev-2); }
.bv-table { width: 100%; border-collapse: collapse; font-size: var(--lg-t-label); }
.bv-table thead th { padding: 12px 16px; text-align: left; white-space: nowrap; font-size: var(--lg-t-caption); font-weight: 600; color: var(--lg-text-tertiary); border-bottom: 1px solid var(--lg-separator); }
.bv-row { position: relative; transition: background-color var(--lg-dur-fast) var(--lg-ease); }
.bv-row + .bv-row td { border-top: 1px solid var(--lg-separator); }
.bv-row:hover { background: var(--lg-fill-ink); }
.bv-row[hidden] { display: none !important; }
.bv-row:focus-within { box-shadow: inset 0 0 0 2px var(--lg-focus-ring); }
.bv-table td { padding: 12px 16px; vertical-align: middle; white-space: nowrap; color: var(--lg-text-secondary); font-variant-numeric: tabular-nums; }
.bv-col-photo { width: 112px; min-width: 112px; }
.bv-col-photo img, .bv-nophoto { display: block; width: 96px; height: 72px; max-width: none; border-radius: var(--lg-r-xs); object-fit: cover; background: var(--lg-fill-ink); }
.bv-nophoto { display: grid; place-items: center; color: var(--lg-text-tertiary); }
.bv-link { color: var(--lg-text); font-weight: 600; }
.bv-link::after { content: ""; position: absolute; inset: 0; }
.bv-link:focus-visible { outline: none; }
.bv-col-rent strong { font-size: var(--lg-t-body); font-weight: 600; color: var(--lg-text); }
.bv-per { margin-left: 1px; font-size: var(--lg-t-caption); color: var(--lg-text-tertiary); }
.bv-avail { display: inline-flex; align-items: center; gap: 8px; font-size: var(--lg-t-secondary); color: var(--lg-text); }
.bv-avail::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--lg-success); box-shadow: 0 0 0 3px var(--lg-success-soft); }
.bv-avail.is-later::before { background: var(--lg-orange); box-shadow: 0 0 0 3px var(--lg-warning-soft); }
.bv-col-go { width: 40px; text-align: right; color: var(--lg-text-tertiary); }
.bv-col-go svg { transition: transform var(--lg-dur) var(--lg-ease), color var(--lg-dur) var(--lg-ease); }
.bv-row:hover .bv-col-go svg { transform: translateX(3px); color: var(--lg-accent-text); }
.bv-table-empty { margin: 0; padding: 28px 16px; text-align: center; color: var(--lg-text-secondary); }
.bv-table-empty[hidden] { display: none; }

/* A narrow table (a phone, or the page's main column on a small laptop): each row is a compact card -
   photo, rent and availability, the unit, the facts. The table's own width decides (container query). */
@container (max-width: 640px) {
  .bv-table, .bv-table tbody { display: block; }
  .bv-table thead { display: none; }
  .bv-row { display: grid; grid-template-columns: 84px auto auto 1fr auto; grid-template-areas: "photo rent rent rent avail" "photo unit unit unit unit" "photo beds baths size size"; column-gap: 12px; row-gap: 3px; align-items: center; padding: 14px; }
  .bv-row + .bv-row { border-top: 1px solid var(--lg-separator); }
  .bv-row + .bv-row td { border-top: 0; }
  .bv-table td { padding: 0; white-space: normal; }
  .bv-col-photo { grid-area: photo; width: auto; align-self: start; }
  .bv-col-photo img, .bv-nophoto { width: 84px; height: 66px; }
  .bv-col-rent { grid-area: rent; }
  .bv-col-avail { grid-area: avail; justify-self: end; }
  .bv-col-unit { grid-area: unit; }
  .bv-col-beds { grid-area: beds; font-size: var(--lg-t-secondary); }
  .bv-col-baths { grid-area: baths; font-size: var(--lg-t-secondary); }
  .bv-col-size { grid-area: size; font-size: var(--lg-t-secondary); }
  .bv-col-beds::after, .bv-col-baths::after { content: "·"; margin-left: 8px; color: var(--lg-text-tertiary); }
  .bv-col-go { display: none; }
}

@media (max-width: 720px) {
  .bv-chips { flex-wrap: nowrap; overflow-x: auto; margin: 0 -24px; padding: 2px 24px; scrollbar-width: none; }
  .bv-chips::-webkit-scrollbar { display: none; }
  .bv-chip { flex: none; }
}

.bv-building-link { display: flex; align-items: center; gap: 16px; margin-top: 28px; padding: 16px 18px; border-radius: var(--lg-r-xl); background: var(--lg-surface); box-shadow: var(--lg-elev-2); transition: box-shadow var(--lg-dur) var(--lg-ease), transform var(--lg-dur-fast) var(--lg-ease); }
.bv-building-link:hover { box-shadow: var(--lg-elev-3); }
.bv-building-link:active { transform: scale(.98); }
.bv-building-link-ic { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--lg-accent-soft); color: var(--lg-accent-text); }
.bv-building-link-words { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.bv-building-link-words strong { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bv-building-link-words span { font-size: var(--lg-t-secondary); color: var(--lg-text-secondary); }

@media (max-width: 640px) {
  .bv-switch { display: flex; width: 100%; }
  .bv-switch-opt { flex: 1 1 0; justify-content: center; padding: 0 10px; }
}
