/* v906: selection chip replaces the "N units selected" text; Request Viewing gets its own full row on phones. Roll back: remove this link + js/442. */
.selection-action-bar .sab2-summary{display:none}
.sab2-chip{flex:none;position:relative;display:inline-flex;align-items:center;gap:6px;height:46px;padding:0 12px 0 6px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.07);color:#fff;font-family:inherit;cursor:pointer;margin-right:auto;transition:background .15s,border-color .15s}
.sab2-chip:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.4)}
.sab2-chip:active{transform:scale(.96)}
.sab2-chip:focus-visible{outline:2px solid #CEA577;outline-offset:2px}
.sab2-ring{width:36px;height:36px;transform:rotate(-90deg)}
.sab2-ring circle{fill:none;stroke-width:3.4}
.sab2-ring .t{stroke:rgba(255,255,255,.18)}
.sab2-ring .p{stroke:#CEA577;stroke-linecap:round;stroke-dasharray:var(--to) var(--c);animation:sab2-ring .5s ease-out}
.sab2-dial{position:relative;display:inline-flex;width:36px;height:36px}
.sab2-chip-n{position:absolute;left:0;top:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:900;line-height:1;color:#fff}
.sab2-chip-x{font-size:12px;color:#C9D6E4;margin-left:2px}
.sab2-chip:hover .sab2-chip-x{color:#fff}
.sab2-chip.pop .sab2-chip-n{animation:sab2-pop .32s cubic-bezier(.3,1.6,.5,1)}
.sab2-chip.over .sab2-ring .p{stroke:#FFB454}
.sab2-chip.over .sab2-chip-n{color:#FFD58A}
.sab2-chip.over{border-color:rgba(255,180,84,.6);background:rgba(255,180,84,.12)}
@keyframes sab2-ring{from{stroke-dasharray:var(--from) var(--c)}to{stroke-dasharray:var(--to) var(--c)}}
@keyframes sab2-pop{0%{transform:scale(.5)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.sab2-ring .p,.sab2-chip.pop .sab2-chip-n{animation:none}}
@media(max-width:700px){
  /* v907: row 1 = Request Viewing (fills the row) + selection chip on the right, both 48px; row 2 = the actions */
  .sab2-inner{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"cta chip" "tools tools";gap:8px}
  .sab2-chip{grid-area:chip;margin:0;height:48px;min-width:76px;justify-content:center;padding:0 10px 0 6px;border-radius:14px}
  .sab2-btn.sab2-primary{grid-area:cta;height:48px;width:100%;font-size:15px;border-radius:14px}
  .sab2-tools{grid-area:tools}
}

/* v908: chip is larger (ring + "Selected" + chevron) and opens the selected-units popover; Request Viewing is narrower. */
.sab2-chip{gap:8px;padding:0 12px 0 6px}
.sab2-chip-t{font-size:13px;font-weight:800;letter-spacing:.01em;color:#fff}
.sab2-chip-x{font-size:11px;transition:transform .2s}
.sab2-chip.open .sab2-chip-x{transform:rotate(180deg)}
.sab2-chip.open{background:rgba(206,165,119,.2);border-color:#CEA577}
.sab2-pop{position:absolute;bottom:calc(100% + 10px);left:18px;width:min(400px,calc(100vw - 20px));max-height:min(60vh,360px);display:flex;flex-direction:column;background:#fff;border:1px solid #E3D6C2;border-radius:16px;box-shadow:0 -10px 34px rgba(22,45,76,.28);overflow:hidden;color:#162D4C;z-index:2}
.sab2-pop.enter{animation:sab2-pop-in .2s ease-out;transform-origin:bottom left}
@keyframes sab2-pop-in{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
.sab2-ph{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px 10px 14px;background:#162D4C;color:#fff}
.sab2-ph b{font-size:13px;font-weight:800}
.sab2-ph b span{display:inline-block;min-width:20px;padding:1px 6px;margin-left:4px;border-radius:999px;background:#CEA577;color:#162D4C;font-size:12px;text-align:center}
.sab2-pall{border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;font:inherit;font-size:12px;font-weight:700;height:32px;padding:0 12px;border-radius:999px;cursor:pointer}
.sab2-pall:hover{background:rgba(255,255,255,.14)}
.sab2-pl{overflow:auto;-webkit-overflow-scrolling:touch}
.sab2-pr{display:grid;grid-template-columns:26px minmax(0,1.1fr) minmax(0,1fr) 30px auto;align-items:center;gap:8px;min-height:50px;padding:0 14px 0 12px;border-bottom:1px solid #F0E9DC;cursor:pointer;position:relative}
.sab2-pr:last-child{border-bottom:0}
.sab2-pr input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.sab2-pk{width:22px;height:22px;border-radius:7px;border:2px solid #CEA577;background:#CEA577;color:#162D4C;display:inline-flex;align-items:center;justify-content:center;font-size:11px;transition:background .15s}
.sab2-pr input:not(:checked)+.sab2-pk{background:#fff;color:transparent}
.sab2-pr input:focus-visible+.sab2-pk{outline:2px solid #162D4C;outline-offset:2px}
.sab2-pc{font-size:14px;font-weight:800;letter-spacing:.02em;white-space:nowrap}
.sab2-pb{font-size:12.5px;color:#5B6B80;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sab2-pf{font-style:normal;font-size:10.5px;font-weight:800;color:#8A6A3C;border:1px solid #CEA577;border-radius:6px;padding:1px 5px;text-align:center}
.sab2-pf:empty{border:0}
.sab2-pp{font-size:14px;font-weight:800;text-align:right;white-space:nowrap}
.sab2-pw{padding:8px 14px;background:#FFF1D6;color:#8A5A00;font-size:12px;font-weight:700}
@media(prefers-reduced-motion:reduce){.sab2-pop.enter,.sab2-chip-x{animation:none;transition:none}}
@media(max-width:700px){
  .sab2-inner{grid-template-columns:minmax(0,1fr) 138px}
  .sab2-chip{min-width:0;width:100%;padding:0 10px 0 6px;gap:6px}
  .sab2-chip-t{font-size:12.5px}
  .sab2-pop{left:10px;right:10px;width:auto}
}

/* v909: two-line rows - line 1 code / beds / FF / price; line 2 tiny facts (view, size, balcony, offer, status, days vacant) */
.sab2-pr{display:grid;grid-template-columns:26px minmax(0,1fr);min-height:58px;padding:7px 14px 7px 12px;gap:10px}
.sab2-pm{display:flex;flex-direction:column;gap:3px;min-width:0}
.sab2-p1{display:flex;align-items:center;gap:8px;min-width:0}
.sab2-p1 .sab2-pp{margin-left:auto}
.sab2-p1 .sab2-pb{overflow:visible;flex:none}
.sab2-p2{display:flex;flex-wrap:wrap;align-items:center;gap:3px 10px;font-size:11.5px;font-weight:600;color:#5B6B80;line-height:1.3}
.sab2-p2 span{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
.sab2-p2 i{font-size:10px;color:#CEA577}
.sab2-p2 small{font-size:9px;margin-left:1px}
.sab2-p2 .ok{color:#2F7D57}.sab2-p2 .ok i{color:#2F7D57}
.sab2-p2 .of{color:#8A5A00;background:#FFF1D6;border-radius:6px;padding:0 6px;font-weight:800}
.sab2-p2 .st{font-weight:800;font-size:10.5px;letter-spacing:.03em;text-transform:uppercase;padding:0 7px;border-radius:999px;border:1px solid #D5DCE5}
.sab2-p2 .st.bk{color:#8A5A00;background:#FFF1D6;border-color:#E8C77E}
.sab2-p2 .st.vc{color:#2F7D57;border-color:#B9DCC9}

/* v910 audit fix: the selection bar (z 2200) sat ABOVE the unit sheet host (1450) and the settings picker (1000), so it stayed tappable over their scrim and covered the sheet's bottom edge. While either is open the bar drops beneath them. */
body:has(#bhSheetHost.has-panel) .selection-action-bar,
body:has(.sp-picker-overlay:not([hidden])) .selection-action-bar{z-index:900}

/* v911 audit: scroll containment so touches inside a modal/sheet never scroll the page behind (iOS rubber-band / chaining). No visual change. */
.sp-picker-overlay,#nqcOverlay,.lightbox-overlay,.vc-change-overlay,.ofl-modal,.ohx-modal,.bhp-modal,.bsp-modal,.bh-dt-backdrop,#bhSheetHost,.vrm-dialog-backdrop,.vrm-reception-modal,.vcx-cfg-scrim,.pdfp-backdrop,.vsm-overlay,.cu-overlay{overscroll-behavior:contain}
.sab2-pall{height:36px}
.sab2-pl{overscroll-behavior:contain;touch-action:pan-y}
