/* lodgers.css — the front page (the house of lodgers), a lodger, the application. */

/* ---------- head ---------- */
.lh-head { padding-top: clamp(20px, 3vw, 40px); }
.lh-top { margin-top: 12px; }
.lh-title { font: 500 clamp(40px, 5.2vw, 76px)/.95 var(--sans); letter-spacing: -.05em; margin: 0; }
.lh-title em { font: italic 400 1.02em/1 var(--serif); letter-spacing: -.02em; }
.lh-lede { font: 400 clamp(19px, 1.9vw, 23px)/1.4 var(--serif); color: var(--ink-2); max-width: 46ch; margin: 16px 0 0; }
.lh-lede-short { display: none; }
.lh-head .ca { margin-top: 10px; }
.lh-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 24px; }
.lh-figures { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--rule); border-bottom: 1px solid var(--rule); flex: none; }
.lh-figures > div { background: #fff; padding: 11px 12px; display: grid; gap: 4px; align-content: start; }
.lh-figures .lh-big { grid-column: 1 / -1; padding: 16px 16px 14px; }
.lh-figures dt { font: 500 11px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.lh-figures dt { font-size: 10px; }
.lh-figures dd { margin: 0; font: 500 18px/1.1 var(--sans); letter-spacing: -.03em; white-space: nowrap; }
.lh-figures .lh-big dd { font-size: clamp(44px, 4.4vw, 64px); line-height: .95; letter-spacing: -.055em; }
.lh-figures small { font-size: 12px; color: var(--muted); }
.lh-figures .unit { font-size: .5em; letter-spacing: 0; color: var(--muted); font-weight: 500; }
.lh-head .rc-tag { margin-top: 18px; }

/* ---------- the house and the side column ---------- */
.lh-grid { display: grid; grid-template-columns: minmax(0, 1fr) 400px; grid-template-areas: 'head side' 'scene side' 'crowd side'; column-gap: clamp(20px, 3vw, 40px); align-items: start; }
.lh-a-head { grid-area: head; min-width: 0; }
.lh-a-scene { grid-area: scene; margin-top: clamp(16px, 2.4vw, 28px); }
.lh-a-crowd { grid-area: crowd; }
.lh-side { grid-area: side; align-self: start; }
.lh-world .rc-under { display: none; }
.lh-world { position: relative; min-width: 0; }
.lh-world .rc-stage { margin-top: 0; }
.lh-world .rc-bar .wrap { padding: 0; }
.rc-inline .rc-bar { position: relative; bottom: auto; margin: 10px 0 6px; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); background: #fff; backdrop-filter: none; }
.rc-inline .rc-bar-inner { min-height: 56px; }
.rc-inline .rc-world-note { margin-top: 10px; }
.lh-bubbles { position: absolute; inset: 0; pointer-events: none; z-index: 6; }
.rc-world-note { margin: 4px 0 0; font: 500 12.5px/1.45 var(--sans); color: var(--muted); }
.rc-world-note b { color: var(--ink); font-weight: 600; }
.rc-world-note .rw-red { color: var(--red); font-weight: 600; }

.h-plate { font: 400 12.5px var(--hand); fill: var(--ink-2); }
.h-plate.is-out { fill: var(--graphite); }
/* phones: the rooms carry big numbers only; names and results are in the list beside the drawing */
.h-plate.is-num { font: 400 26px var(--hand); fill: var(--ink); }
.h-plate.is-num.is-out { fill: var(--graphite); }
.h-plate.is-next { font: 400 30px var(--hand); fill: var(--graphite); }
.h-next-n { font: 400 17px var(--hand); fill: var(--ink-2); }
.h-next-t { font: 400 12.5px var(--hand); fill: var(--muted); }
.h-pnl { font: 600 11px var(--sans); fill: var(--ink); font-variant-numeric: tabular-nums; }
.h-pnl.is-down { fill: var(--red); }
.h-tolet { font: 400 14px var(--hand); fill: var(--ink-2); }
.h-room-label { font: 400 13px var(--hand); fill: var(--muted); }
.h-room { cursor: default; }

.bubble {
  position: absolute; transform: translate(-50%, -100%) translateY(4px); max-width: 230px; width: max-content;
  background: #fff; border: 1.5px solid var(--ink); border-radius: 14px; padding: 8px 11px;
  font: italic 400 15px/1.3 var(--serif); color: var(--ink); box-shadow: 0 10px 22px -16px #1b1c1880;
  animation: bubble-in .45s var(--ease-out) both;
}
.bubble::after { content: ''; position: absolute; left: 50%; bottom: -8px; width: 12px; height: 12px; background: #fff; border-right: 1.5px solid var(--ink); border-bottom: 1.5px solid var(--ink); transform: translateX(-50%) rotate(45deg) skew(8deg, 8deg); }
.bubble.is-trade { font-style: normal; font-family: var(--sans); font-size: 13px; font-weight: 500; }
.bubble.is-stop { border-color: var(--red); }
.bubble.is-stop::after { border-color: var(--red); }
.bubble.gone { opacity: 0; transform: translate(-50%, -100%) translateY(-6px); transition: opacity .6s, transform .8s; }
@keyframes bubble-in { from { opacity: 0; transform: translate(-50%, -100%) translateY(14px) scale(.96); } }

.lh-side { position: sticky; top: calc(var(--header) + 14px); margin-top: clamp(20px, 3vw, 40px); display: flex; flex-direction: column; max-height: calc(100vh - var(--header) - 28px); min-height: 520px; border-radius: 18px; box-shadow: inset 0 0 0 1px var(--rule); background: #fff; overflow: hidden; }
.lh-podium { padding: 14px 14px 4px; border-bottom: 1px solid var(--rule); }
.podium-svg { width: 100%; height: auto; overflow: visible; }
.podium-n { font: 600 18px var(--sans); fill: var(--ink); }
.podium-name { font: 400 15px var(--hand); fill: var(--ink); }
.podium-pnl { font: 600 11px var(--sans); fill: var(--ink); }
.podium-pnl.is-down { fill: var(--red); }
.podium-pnl.is-none { font-weight: 500; fill: var(--muted); }
.podium-empty, .podium-wait { margin: 8px 4px 14px; font: 400 16px/1.4 var(--serif); color: var(--muted); }
.podium-wait .link { font: inherit; color: var(--ink); }
.podium-founding { font: 500 9.5px var(--sans); letter-spacing: .08em; text-transform: uppercase; fill: var(--muted); }
.tag-founding { display: inline-block; margin-left: 6px; padding: 2px 5px 1px; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--faint); font: 500 9.5px/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); vertical-align: 1.5px; }
.feed-top .tag-founding { margin-left: 0; }
.lh-tabs { display: flex; gap: 0; padding: 8px 6px 0; border-bottom: 1px solid var(--rule); overflow-x: auto; scrollbar-width: none; flex: none; }
.lh-tabs::-webkit-scrollbar { display: none; }
.lh-tabs button { flex: none; white-space: nowrap; padding: 10px 9px 11px; font: 500 13.5px/1 var(--sans); color: var(--muted); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.lh-tabs button[aria-selected='true'] { color: var(--ink); border-bottom-color: var(--ink); }
.lh-tabs button:hover { color: var(--ink); }
.lh-tab-n { display: inline-grid; place-items: center; min-width: 17px; height: 17px; margin-left: 5px; padding: 0 4px; border-radius: 9px; background: var(--wash); color: var(--ink-2); font: 600 10.5px/1 var(--sans); vertical-align: 1px; }
.lh-tab-n[hidden] { display: none; }
.lh-panel { flex: 1; overflow: auto; overscroll-behavior: contain; }
.lh-feed-more { display: none; }
.lh-boardlink { flex: none; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 12px; padding: 11px 14px 12px; border-top: 1px solid var(--rule); font: 500 12.5px/1.35 var(--sans); color: var(--muted); transition: background-color .15s; }
.lh-boardlink:hover { background: var(--wash); }
.lh-boardlink-go { color: var(--ink); font-weight: 600; white-space: nowrap; }
.lh-boardlink:hover .lh-boardlink-go { text-decoration: underline; text-underline-offset: 3px; }
/* where that link lands: /terminal#board, clear of the sticky header and the specimen bar */
#board { scroll-margin-top: calc(var(--header) + 44px); }

/* ---------- the rent book ---------- */
.rentbook { list-style: none; margin: 0; padding: 0; }
.rb a { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 14px; border-bottom: 1px solid var(--rule); transition: background-color .15s; }
.rb a:hover { background: var(--wash); }
.rb svg { width: 32px; height: 32px; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--rule); }
.rb-name { min-width: 0; }
.rb-name b { display: block; font-weight: 600; font-size: 14px; }
.rb-name small { display: block; color: var(--muted); font-size: 12px; line-height: 1.35; }
.rb-name small .is-down { color: var(--red); }
.rb-rent { font: 600 14px var(--sans); text-align: right; white-space: nowrap; }
.rb-rent small { display: block; color: var(--muted); font-size: 10.5px; font-weight: 500; letter-spacing: .02em; }
.rb.is-out .rb-name b { text-decoration: line-through; text-decoration-color: var(--red); color: var(--muted); }
.rb.is-out .rb-rent { color: var(--muted); font-weight: 500; }
.waiting-side { padding: 10px 12px 14px; }
.waiting-side li { align-items: flex-start; }
.waiting-side li > span:last-child { display: grid; gap: 2px; min-width: 0; }
.waiting-side b { font-weight: 600; font-size: 14px; }
.waiting-side small { font-size: 12px; line-height: 1.35; }

/* ---------- the feed ---------- */
.feed { list-style: none; margin: 0; padding: 0; }
.feed-item { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 11px; padding: 13px 14px; border-bottom: 1px solid var(--rule); }
@keyframes feed-in { from { background: #f5f5f2; } }
.feed-av { width: 36px; height: 36px; display: block; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--rule); overflow: hidden; background: #fff; }
.feed-av svg { width: 36px; height: 36px; }
.feed-main { min-width: 0; }
.feed-top { display: flex; align-items: baseline; gap: 8px; font-size: 13px; }
.feed-top b { font-weight: 600; }
.feed-top a:hover b { text-decoration: underline; text-underline-offset: 3px; }
.feed-top time { margin-left: auto; color: var(--muted); font-size: 12px; white-space: nowrap; }
.feed-tag { font: 600 10px/1 var(--sans); letter-spacing: .07em; text-transform: uppercase; padding: 4px 6px; border-radius: 5px; background: var(--wash); color: var(--ink-2); }
.feed-tag.t-buy { background: var(--ink); color: #fff; }
.feed-tag.t-sell { box-shadow: inset 0 0 0 1px var(--ink); background: #fff; color: var(--ink); }
.feed-tag.t-stop, .feed-tag.t-evicted, .feed-tag.t-eviction-sale { background: #bf3b2814; color: var(--red); }
.feed-tag.t-rent { background: #fff; box-shadow: inset 0 0 0 1px var(--faint); }
.feed-tag.t-rules { background: #fff; box-shadow: inset 0 0 0 1px var(--faint); color: var(--muted); }
.feed-note { margin: 5px 0 0; font: 400 16px/1.42 var(--serif); color: var(--ink); overflow-wrap: anywhere; }
.feed-sys { margin: 5px 0 0; font: 400 14px/1.45 var(--sans); color: var(--ink-2); }
.feed-chip { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: 8px; padding: 8px 10px; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--rule); font: 500 12.5px/1.2 var(--sans); }
.feed-chip b { font-weight: 600; }
.feed-chip span { color: var(--ink-2); font-variant-numeric: tabular-nums; }
.feed-chip .is-down, .is-down { color: var(--red); }
.feed-spec { display: block; margin-top: 6px; font-size: 11px; color: var(--muted); letter-spacing: .02em; }
.feed-empty { padding: 26px 16px; color: var(--muted); font: 400 16px/1.45 var(--serif); list-style: none; }
.feed-house .feed-sys, .feed-phil .feed-note { font-style: italic; }
.feed-house { display: block; padding: 10px 14px 10px 58px; background: var(--wash); }
.feed-house time { font-size: 12px; color: var(--muted); }
.feed-held { margin: 4px 0 0; font: 500 12px/1.3 var(--sans); color: var(--muted); }
.feed-phil .feed-av svg { width: 34px; height: 44px; }

/* ---------- rankings ---------- */
.ranks { list-style: none; margin: 0; padding: 0; }
.rank a { display: grid; grid-template-columns: 22px 32px minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 10px 14px; border-bottom: 1px solid var(--rule); transition: background-color .15s; }
.rank a:hover { background: var(--wash); }
.rank svg { width: 32px; height: 32px; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--rule); }
.rank-n { font: 600 14px var(--sans); color: var(--muted); text-align: right; }
.rank-name b { display: block; font-weight: 600; font-size: 14px; }
.rank-name small { color: var(--muted); font-size: 12px; }
.rank-eq { font: 500 14px var(--sans); text-align: right; }
.rank-eq small { margin-left: 3px; color: var(--muted); font-size: 11px; }
.rank-pnl { font: 600 13.5px var(--sans); min-width: 62px; text-align: right; }
.rank.is-out .rank-name b { text-decoration: line-through; text-decoration-color: var(--red); color: var(--muted); }
.rank.is-out .rank-pnl { color: var(--red); font-weight: 500; font-size: 12px; }
.ranks-full { border-radius: 16px; box-shadow: inset 0 0 0 1px var(--rule); overflow: hidden; }
.waiting { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.waiting li { display: flex; gap: 12px; align-items: baseline; padding: 10px 14px; border-radius: 10px; background: var(--wash); }
.waiting small { color: var(--muted); }

/* ---------- the board ---------- */
.board-note { margin: 0; padding: 12px 14px; font-size: 12.5px; line-height: 1.45; color: var(--muted); border-bottom: 1px solid var(--rule); }
.board { width: 100%; border-collapse: collapse; font-size: 13px; }
.board th { text-align: left; font: 500 10.5px/1 var(--sans); letter-spacing: .07em; text-transform: uppercase; color: var(--muted); padding: 10px 14px; border-bottom: 1px solid var(--rule); }
.board td { padding: 9px 14px; border-bottom: 1px solid var(--rule); vertical-align: middle; }
.board td b { display: block; font-weight: 600; }
.board td small { color: var(--muted); font-size: 11.5px; }
.board th:not(:first-child), .board td:not(:first-child) { text-align: right; }

/* ---------- a lodger ---------- */
.lodger-page { padding-top: clamp(32px, 5vw, 64px); }
.lp-head { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 36px; align-items: end; }
.lp-portrait { position: relative; }
.lp-portrait svg { width: 200px; height: auto; overflow: visible; }
.lp-portrait .card-stamp { right: -10px; top: 0; }
.lp-id .page-title { margin-top: 10px; }
.lp-last { font-style: italic; color: var(--ink); }
.lp-last-sys { color: var(--ink); }
.lp-last-at { font: 400 13px/1 var(--sans); color: var(--muted); white-space: nowrap; }
.lp-stats { margin-top: 36px; }
.lp-stats small { font-size: .45em; color: var(--muted); letter-spacing: 0; }
.lp-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 16px; margin-top: 16px; }
.lp-chart, .lp-limits { padding: 18px; border-radius: 16px; }
.lp-chart-head { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.lp-eviction { font-size: 12px; color: var(--red); }
.lp-curve-box { position: relative; }
.lp-curve { width: 100%; height: auto; }
/* the two lines are labelled in HTML, so the words keep their size when the chart is phone-sized */
.lp-axis { position: absolute; right: 0; transform: translateY(-120%); padding: 0 2px; background: #fff; font: 500 11px/1 var(--sans); color: var(--muted); pointer-events: none; }
.lp-axis.is-down { color: var(--red); transform: translateY(20%); }
.lp-nochart { padding: 40px 10px; text-align: center; }
.lp-nochart p:last-child { color: var(--muted); font: 400 16px/1.4 var(--serif); margin: 4px 0 0; }
.lp-limits dl { margin: 14px 0 0; display: grid; gap: 8px; }
.lp-limits dl div { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--rule); font-size: 14px; }
.lp-limits dt { color: var(--muted); }
.lp-limits dd { margin: 0; font-weight: 500; }
.lp-feed { border-radius: 16px; box-shadow: inset 0 0 0 1px var(--rule); overflow: hidden; }
.lp-table-wrap { overflow-x: auto; border-radius: 16px; box-shadow: inset 0 0 0 1px var(--rule); }
.lp-table { border-radius: 16px; }

/* ---------- design a lodger ---------- */
.apply { padding-top: clamp(32px, 5vw, 64px); }
.apply-head { margin-bottom: 30px; }
.apply-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 36px; align-items: start; }
.apply-steps { display: grid; gap: 14px; }
.step { margin: 0; padding: 20px 22px 22px; border: 0; border-radius: 18px; box-shadow: inset 0 0 0 1px var(--rule); display: grid; gap: 14px; }
.step legend { float: left; width: 100%; padding: 0; margin-bottom: 4px; font: 500 20px/1.2 var(--sans); letter-spacing: -.02em; }
.step legend .num { display: inline-grid; place-items: center; width: 28px; height: 28px; margin-right: 8px; border-radius: 50%; background: var(--ink); color: #fff; font: 600 12px/1 var(--sans); vertical-align: 2px; }
.choice-row { display: flex; flex-wrap: wrap; gap: 8px; }
.choice { position: relative; cursor: pointer; }
.choice input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.choice span { display: grid; gap: 4px; padding: 12px 14px; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--faint); min-width: 180px; max-width: 250px; transition: box-shadow .15s, background-color .15s; }
.choice span b { font-size: 14.5px; font-weight: 600; }
.choice span small { font-size: 12.5px; color: var(--muted); line-height: 1.35; }
.choice.mini span { min-width: 0; padding: 8px 12px; border-radius: 999px; font-size: 13.5px; }
.strat-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; }
.choice.strat span { min-width: 0; max-width: none; height: 100%; align-content: start; }
.choice.strat span small { font-variant-numeric: tabular-nums; }
.strat-note { margin: 4px 0 0; font-size: 12.5px; line-height: 1.45; color: var(--muted); max-width: 70ch; }
.choice input:checked + span { box-shadow: inset 0 0 0 1.6px var(--ink); background: var(--wash); }
.choice input:focus-visible + span { outline: 2px solid var(--focus); outline-offset: 2px; }
.field small { color: var(--muted); font-weight: 400; }
.count { justify-self: end; color: var(--muted); font-size: 12px; }
.sliders { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; }
.slider label { display: flex; justify-content: space-between; font: 500 13px/1.2 var(--sans); color: var(--ink-2); }
.slider output { color: var(--ink); font-weight: 600; }
.slider input { width: 100%; accent-color: var(--ink); margin-top: 8px; }
.apply-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.apply-result { margin: 0; min-height: 1.4em; font-size: 14.5px; }
.apply-preview { position: sticky; top: calc(var(--header) + 20px); padding: 18px; border-radius: 18px; box-shadow: inset 0 0 0 1px var(--rule); }
.apply-preview svg { width: 100%; height: auto; margin-top: 12px; overflow: hidden; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--rule); }
.apply-preview-name { margin: 12px 0 2px; font: 400 26px/1 var(--hand); }

/* ---------- responsive ---------- */
@media (max-width: 1180px) {
  .lh-grid { grid-template-columns: minmax(0, 1fr) 340px; }
}
/* between the one-column layout and a wide screen, the garden bar wraps inside its column
   instead of running under the side column */
@media (min-width: 981px) and (max-width: 1180px) {
  .lh-world .rc-bar-inner { flex-wrap: wrap; row-gap: 8px; }
  .lh-world .rc-find .input { width: 120px; }
  .lh-world .rc-clock small { display: none; }
}
@media (max-width: 980px) {
  .lh-top { grid-template-columns: 1fr; }
  .lh-grid { grid-template-columns: 1fr; grid-template-areas: 'head' 'scene' 'side' 'crowd'; }
  .lh-side { position: relative; top: 0; max-height: none; min-height: 0; margin-top: 18px; }
  /* one column: the panels are part of the page, never a box that scrolls on its own */
  .lh-panel { max-height: none; overflow: visible; overscroll-behavior: auto; }
  #lh-panel-feed:not(.is-all) .feed > li:nth-child(n + 9) { display: none; }
  .lh-feed-more { display: block; width: 100%; padding: 13px 14px; border-top: 1px solid var(--rule); font: 600 13px/1.2 var(--sans); color: var(--ink); text-align: left; }
  .lh-feed-more:hover { background: var(--wash); }
  .lh-feed-more[hidden] { display: none; }
  .apply-grid { grid-template-columns: 1fr; }
  .apply-preview { position: relative; top: 0; order: -1; display: grid; grid-template-columns: 140px 1fr; gap: 0 16px; align-items: center; }
  .apply-preview .kicker { grid-column: 1 / -1; }
  .apply-preview svg { grid-row: span 2; margin-top: 8px; }
  .lp-grid { grid-template-columns: 1fr; }
}
/* the room list that stands in for the names and results the phone drawing leaves out */
.lh-roomkey { display: none; }
.lh-under:empty { display: none; }
@media (max-width: 640px) {
  .lh-figures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lh-figures dd { font-size: 19px; }
  .lp-head { grid-template-columns: 1fr; gap: 12px; }
  .lp-portrait svg { width: 140px; }
  .sliders { grid-template-columns: 1fr; }
  .choice span { min-width: 0; max-width: none; }
  .choice-row > .choice:not(.mini) { flex: 1 1 100%; }
  .rank a { grid-template-columns: 18px 26px minmax(0, 1fr) auto; }
  .rank-eq { display: none; }
  .bubble { max-width: 170px; font-size: 13.5px; }
}
@media (max-width: 560px) {
  /* the first screen: the title, a two-line lede, the figure that matters, then the drawing */
  .lh-head { padding-top: 16px; }
  .lh-title { font-size: clamp(36px, 11vw, 46px); }
  .lh-lede-full { display: none; }
  .lh-lede-short { display: block; font-size: 18px; margin-top: 12px; }
  .lh-figs-slot .lh-figures { margin-top: 16px; border-radius: 14px; box-shadow: inset 0 0 0 1px var(--rule); border-bottom: 0; overflow: hidden; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lh-figs-slot .lh-figures .lh-big { padding: 12px 14px 10px; }
  .lh-figs-slot .lh-figures .lh-big dd { font-size: 40px; }
  .lh-figs-slot .lh-figures > div:not(.lh-big) { padding: 9px 8px 10px; }
  .lh-figs-slot .lh-figures dt { font-size: 9px; letter-spacing: .06em; }
  .lh-figs-slot .lh-figures dd { font-size: 16px; }
  .lh-figs-slot .lh-figures > div:not(.lh-big) dd .unit { display: block; font-size: 10px; margin-top: 2px; }
  .lh-figs-slot .lh-figures .lh-big { grid-template-columns: auto minmax(0, 1fr); align-items: end; column-gap: 12px; }
  .lh-figs-slot .lh-figures .lh-big dt { grid-column: 1 / -1; }
  .lh-figs-slot .lh-figures .lh-big small { padding-bottom: 5px; line-height: 1.25; }
  .lh-a-scene { margin-top: 10px; }
  .lh-roomkey { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; list-style: none; margin: 4px 0 0; padding: 0; }
  .lh-roomkey li, .lh-roomkey li a { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 6px; align-items: baseline; font: 400 13.5px/1.3 var(--sans); }
  .lh-roomkey li { padding: 7px 0; border-bottom: 1px solid var(--rule); }
  .lh-roomkey li a { grid-column: 1 / -1; }
  .lh-roomkey b { font: 400 17px/1 var(--hand); }
  .lh-roomkey span:nth-child(2) { font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .lh-roomkey span:last-child { font-size: 12.5px; font-weight: 600; }
  .lh-roomkey .is-out span, .lh-roomkey .is-next span { color: var(--muted); font-weight: 400; }
  .lh-roomkey .is-next { grid-column: 1 / -1; grid-template-columns: 22px minmax(0, 1fr); }
  .lh-roomkey .is-next span { white-space: normal; }
  .lh-under .lh-actions { margin-top: 18px; }
  .lh-under .rc-tag { margin-top: 14px; }
  .lp-axis { font-size: 11.5px; }
}
@media (max-width: 420px) {
  .lh-k-more, .lh-dt-long { display: none; }
}
@media (max-width: 360px) {
  .lh-tab-long { display: none; }
  .lh-tabs button { padding: 10px 8px 11px; }
  .lp-table th:last-child, .lp-table td:last-child { display: none; }
}
@media (max-width: 360px) {
  .lp-table th, .lp-table td { padding-left: 9px; padding-right: 9px; }
}

/* Round 15: the house is the first screen, and the book starts underneath it. */
.lh-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:'head scene' 'figures scene' 'returns returns' 'side recap' 'crowd crowd';gap:28px 56px;padding-top:36px;max-width:1240px}
.lh-head{padding:0}.lh-top{margin-top:16px}.lh-title{font-size:64px;line-height:1.02;letter-spacing:-.055em}.lh-title em{font-size:1.03em}.lh-lede{font-size:20px;line-height:1.45;max-width:43ch;margin-top:20px}.lh-head .ca{margin-top:20px;font-size:11px}.lh-actions{align-items:center;gap:24px;margin-top:22px}.lh-actions .btn{gap:24px}.lh-head .rc-tag{margin:8px 0 0}.lh-head .lh-k-more{display:none}
.lh-a-scene{align-self:center;margin:0;min-width:0;max-width:100%}.lh-a-scene .rc-stage{width:100%;max-width:580px;margin:auto}.scene-caption{display:block;width:max-content;margin:8px auto;font-family:var(--hand);font-size:18px}.lh-a-figures{grid-area:figures}.lh-figures{grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule);background:none;gap:20px}.lh-figures>div{padding:15px 0}.lh-figures dt{font-size:10px;letter-spacing:.09em}.lh-figures dd{font-size:28px}.lh-figures .lh-big dd{font-size:42px}.lh-figures .lh-big[hidden]{display:none}.lh-figures .lh-big{padding-left:0}.source-age{display:block;margin-top:10px;font-size:11px;color:var(--muted)}
.lh-return{grid-area:returns;border-top:1px solid var(--rule);padding-top:24px;margin-top:10px}.lh-recap{grid-area:recap;border-top:2px solid var(--ink);padding-top:20px}.lh-side{position:static;top:auto;max-height:none;min-height:0;margin:0;border-radius:0;box-shadow:none;overflow:visible;border-top:2px solid var(--ink);padding-top:20px}.lh-panel{max-height:430px;overflow:auto}.lh-tabs{padding-left:0}.lh-side .feed-item{padding-left:0;padding-right:8px}.lh-side .tag-founding{display:none}.lh-boardlink{padding-left:0}.lh-side .section-eyebrow{padding-bottom:12px}.lh-a-crowd{margin-top:20px;border-top:1px solid var(--rule);padding-top:24px}.lh-a-crowd .rc-crowd{max-height:360px;overflow:hidden;mask-image:linear-gradient(#000 78%,transparent)}.lh-a-crowd .rc-counts{flex-wrap:wrap}.garden-all{display:block;text-align:center;padding:12px}.lh-a-crowd .section-eyebrow p{margin:8px 0 0;font-size:14px;color:var(--muted)}
.section-eyebrow{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-eyebrow small{color:var(--muted);font-size:11px}.quiet-note{font-family:var(--serif);font-size:18px;line-height:1.5;color:var(--ink-2);margin:18px 0}.return-events{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;list-style:none;padding:0;margin:20px 0 0}.return-events a{display:grid;gap:8px;padding-left:14px;border-left:2px solid var(--faint)}.return-events a:hover{border-color:var(--ink)}.return-events b{font-size:18px}.return-events span{font:17px/1.4 var(--serif)}.return-events small{color:var(--muted);font-size:11px}.recap-facts{display:grid}.recap-facts p{padding:20px 0;margin:0;border-bottom:1px solid var(--rule)}.recap-facts b{display:block;font-size:26px;letter-spacing:-.03em;font-weight:500}.recap-facts span{display:block;margin-top:6px;font-size:13px;color:var(--muted)}
.follow-btn{min-height:44px;padding:9px 16px;border:1px solid var(--rule);border-radius:100px;font-size:13px;white-space:nowrap}.follow-btn:hover{border-color:var(--ink)}.follow-btn[aria-pressed=true]{background:var(--ink);color:#fff}.room-history{list-style:none;padding:0 0 0 12px}.room-history li{position:relative;display:grid;gap:8px;border-left:1px solid var(--faint);padding:4px 0 28px 24px}.room-history b{font-size:22px}.room-history span:not(.room-book-dot){font-size:14px}.room-history small{color:var(--muted)}.room-book-dot{position:absolute;left:-4px;top:13px;width:7px;height:7px;border-radius:50%;background:var(--ink)}
@media(max-width:900px){.lh-grid{gap:24px 28px}.lh-title{font-size:52px}.lh-lede{font-size:18px}.lh-head .ca{max-width:100%;overflow-wrap:anywhere}.lh-figures{gap:10px}.lh-figures dd{font-size:24px}}
@media(max-width:650px){.lh-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:'head' 'scene' 'figures' 'returns' 'side' 'recap' 'crowd';padding-top:24px;gap:22px}.lh-title{font-size:40px}.lh-title br{display:none}.lh-title em{display:block}.lh-lede{font-size:18px;line-height:1.4;max-width:35ch;margin-top:14px}.lh-actions{gap:18px;margin-top:18px}.lh-actions .btn{min-height:44px;padding:12px 18px}.lh-head .ca{margin-top:14px}.lh-a-scene{margin:0}.lh-a-scene .rc-stage{max-width:340px}.lh-a-scene #rc-scene{max-height:255px}.scene-caption{font-size:16px;margin:4px auto}.lh-roomkey{margin:8px 0}.lh-figures dd{font-size:23px}.lh-figures .unit{font-size:11px}.lh-head .lh-figs-slot:empty{display:none}.lh-a-crowd .rc-crowd{max-height:320px}.return-events{grid-template-columns:minmax(0,1fr);gap:18px}.lh-side .lh-panel{max-height:380px}.section-eyebrow{align-items:flex-start}.lh-a-crowd .section-eyebrow{display:block}.lh-a-crowd .section-eyebrow .btn{margin-top:16px}.lh-a-crowd .rc-bar .wrap{width:100%}.lh-a-crowd .rc-find-open{display:none}}

/* The tenancy page keeps its note, character and result together. */
.lodger-page{padding-top:38px}.lp-head{gap:28px;align-items:center}.lp-portrait{width:130px;max-width:130px}.lp-portrait svg{height:130px;width:120px}.lp-id .page-title{font-size:56px;margin:8px 0}.lp-id .lede{font-size:21px;line-height:1.4;max-width:54ch;margin:8px 0}.lp-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:24px 0}.lp-actions .source-age{margin-left:auto}.note-provenance{display:inline-block;font:11px/1.3 var(--sans);padding:3px 6px;border:1px solid var(--rule);border-radius:4px;margin-right:8px;vertical-align:middle}.lp-stats{margin-top:16px}.lp-stats .kicker{font-size:10px;line-height:1.5}.lp-stats b{font-size:28px}.lp-grid{margin-top:24px}.lp-chart{padding:22px;min-width:0}.lp-curve{width:100%;min-height:190px;overflow:visible}.chart-zoom{min-height:44px;font-size:12px}.lp-room-book{margin-top:42px;padding-top:24px;border-top:1px solid var(--rule)}.tenancy-preview{max-width:360px;margin:20px auto;border:1px solid var(--rule)}.tenancy-preview svg{display:block;width:100%;height:auto}.card-export-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
@media(max-width:650px){.lodger-page{padding-top:24px}.lp-head{display:grid;grid-template-columns:76px minmax(0,1fr);gap:14px}.lp-portrait{width:76px}.lp-portrait svg{width:76px;height:110px}.lp-id .page-title{font-size:40px}.lp-id .kicker{font-size:9px;line-height:1.5}.lp-id .lede{font-size:17px}.lp-actions{gap:10px;margin:18px 0}.lp-actions .source-age{margin-left:0;width:100%}.lp-stats b{font-size:24px}.lp-stats>div{padding:14px}.lp-chart{padding:16px}.lp-chart-head{gap:12px}.lp-curve{min-height:170px}.lp-room-book .section-eyebrow{display:block}}

.tenant-book{padding-top:40px}.tenant-book .page-title{font-size:60px;margin:22px 0 10px}.tenant-book>.lede{font-size:22px}.roster-key{display:flex;justify-content:space-between;gap:20px;margin:38px 0 0;padding-bottom:12px;border-bottom:2px solid var(--ink);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.tenant-list{list-style:none;margin:0;padding:0}.tenant-row{display:grid;grid-template-columns:30px 56px minmax(0,1fr) 130px 122px;gap:16px;align-items:center;min-height:104px;padding:14px 0;border-bottom:1px solid var(--rule)}.tenant-room{font:16px var(--hand);color:var(--muted)}.tenant-figure{width:56px;height:72px}.tenant-name b{font-size:23px;font-weight:500}.tenant-name>a:hover{text-decoration:underline;text-underline-offset:4px}.tenant-name>small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.tenant-name p{margin:9px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:16px var(--serif);max-width:100%}.tenant-numbers{text-align:right;display:grid;gap:5px;font-size:11px;color:var(--muted)}.tenant-numbers>b{font-size:21px;color:var(--ink);font-weight:500}.tenant-numbers small{font-size:11px}.tenant-row.is-out .tenant-name>b{text-decoration:line-through;text-decoration-color:var(--red)}.archive-heading{margin-top:54px}.archive-heading h2{margin-top:10px}.apply-head{max-width:760px}.apply-head .page-title{font-size:56px}.apply-preview{width:240px;max-width:100%}.apply-preview #ap-room{width:240px;max-width:100%;height:205px}.apply-preview #ap-no-trades{display:block;text-align:center;margin-top:0}.apply-grid{grid-template-columns:minmax(0,1fr) 240px;gap:64px}.advanced-limits{margin-top:22px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:14px 0}.advanced-limits summary{cursor:pointer;min-height:32px;font-size:14px}.admission-state{font-size:14px;line-height:1.65;padding:16px;background:var(--wash);border-left:2px solid var(--ink)}.apply-result[data-status=rejected]{color:var(--red)}.apply-result[data-status=admitted],.apply-result[data-status=queued]{border-left:2px solid var(--ink);padding:14px;background:var(--wash)}.choice:has(input:disabled){opacity:.55}.apply-preview{border-radius:0;box-shadow:none;border-top:2px solid var(--ink);padding-top:20px}.step legend{line-height:1.35}.strat small{line-height:1.45}
@media(max-width:650px){.tenant-book{padding-top:24px}.tenant-book .page-title{font-size:40px}.tenant-book>.lede{font-size:19px}.tenant-book .section-eyebrow{align-items:center}.tenant-book .section-eyebrow .btn{font-size:12px;padding:12px}.roster-key{font-size:9px;margin-top:28px;line-height:1.4}.tenant-row{grid-template-columns:18px 44px minmax(0,1fr) 94px;gap:10px;padding:15px 0}.tenant-figure{width:44px;height:64px}.tenant-name b{font-size:21px}.tenant-name>small{font-size:10px;line-height:1.5}.tenant-name p{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px}.tenant-numbers>b{font-size:18px}.tenant-row .follow-btn{grid-column:3/5;justify-self:start;min-height:44px;padding:8px 16px}.tenant-row .note-provenance{font-size:9px}.apply-grid{display:block}.apply-head .page-title{font-size:40px}.apply-preview{position:static;width:240px;margin:24px auto 32px}.apply-preview #ap-room{height:180px}.step{padding:22px 0}.advanced-limits summary{min-height:44px}.choice{min-height:44px}}

.house-event-accent{position:fixed;z-index:20;pointer-events:none;width:48px;height:70px}.house-event-accent.is-rent{font-size:25px;width:24px;height:24px}.house-event-accent svg{width:100%;height:100%}.event-backlog{padding:12px;border-left:2px solid #9a9a93;font-size:13px}.feed-item.is-new{border-left:2px solid #9a9a93}

/* Round 15: identity, then its room preview on a phone. */
@media(max-width:650px){.apply-preview{order:0;display:block;padding:18px 0 12px;margin:10px auto 24px}.apply-preview svg{grid-row:auto;border-radius:0;box-shadow:none}.apply-preview .kicker{font-size:11px}.tenant-name{min-width:0}}

@media(max-width:650px){.lp-head{grid-template-columns:96px minmax(0,1fr);gap:8px 16px;align-items:center}.lp-id{display:contents}.lp-portrait{grid-row:1/3;width:96px}.lp-portrait svg{width:96px;height:110px}.lp-id .kicker{grid-column:2}.lp-id .page-title{grid-column:2;margin:0}.lp-id .lede{grid-column:1/-1;margin:0;font-size:16px;line-height:1.4}.lp-actions{margin:14px 0 10px}.lp-stats{margin-top:10px}.lp-stats>div{padding:12px}.lp-stats b{font-size:23px}}

.holder-room{padding:28px 0;border-top:1px solid var(--rule);margin-top:40px}.holder-room>p{max-width:70ch;font-size:17px;line-height:1.55}.holder-actions{display:flex;gap:16px;align-items:end;flex-wrap:wrap}.holder-actions label{display:grid;gap:8px;font-size:12px}.holder-guests{display:flex;gap:24px;flex-wrap:wrap}.holder-guests>div{display:grid;justify-items:center;gap:5px}.holder-guests svg{height:95px;width:60px}.holder-guests small{font-size:11px;color:var(--muted)}.holder-receipts{margin-top:20px}.holder-receipts code{display:block;font-size:11px;margin-top:10px}.holder-eligibility{padding-left:12px;border-left:2px solid var(--rule)}

/* Round 18: a visit and a ballot are distinct, readable actions. */
.holder-capacity{font-size:13px;margin:22px 0 12px}.holder-capacity span{color:var(--muted);margin-left:18px}.holder-guests{min-height:96px;align-items:center;border-bottom:1px solid var(--rule);padding-bottom:18px}.holder-guests>div{min-width:112px}.holder-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:28px;margin:24px 0}.holder-actions>div{min-width:0;display:grid;gap:12px;align-content:start}.holder-visit-control .btn{justify-self:start}.holder-visit-control small{max-width:26ch;color:var(--muted);line-height:1.5}.holder-decor-control{grid-template-columns:80px minmax(110px,1fr) auto;align-items:end}.holder-decor-control>.kicker{grid-column:1/-1}.holder-decor-control #decor-preview{grid-row:2/4}.holder-decor-control svg{width:80px;height:72px}.holder-decor-control .btn{align-self:end}.holder-receipts summary{min-height:44px;display:flex;align-items:center;cursor:pointer}.holder-receipts summary:before{content:'+';margin-right:10px;color:var(--muted)}.holder-receipts[open] summary:before{content:'−'}.figure-lookup{margin:24px 0;max-width:620px}.figure-lookup>label{display:block;margin-bottom:8px;font-size:12px}.figure-lookup>div{display:flex;gap:12px}.figure-lookup input{flex:1;min-width:0}.payroll-book{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0}.payroll-book dt{font-size:12px;color:var(--muted)}.payroll-book dd{margin:6px 0;font-size:20px;overflow-wrap:anywhere}.payroll-raw{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}
@media(max-width:650px){.holder-actions{grid-template-columns:1fr;gap:24px}.holder-actions>div+div{border-top:1px solid var(--rule);padding-top:22px}.holder-decor-control{grid-template-columns:70px 1fr}.holder-decor-control .btn{grid-column:2;justify-self:start}.holder-capacity span{display:block;margin:5px 0}.holder-room .section-eyebrow{display:block}.holder-room .section-eyebrow .link{margin-top:8px}.figure-lookup>div{flex-direction:column}.payroll-book{grid-template-columns:repeat(2,minmax(0,1fr))}.holder-room .holder-guests>div{max-width:calc(50% - 16px)}}
