/* POV — Profit + Tower panes (profit.js), 1 Oct 2026 */
.pft-root{min-width:0}
.pft-seg{margin-bottom:10px}
.pft-chips{margin-bottom:7px}
.pft-empty{font-size:12px;line-height:1.5;color:var(--mut);background:var(--bg2,#f1f2f4);border-radius:10px;padding:11px 12px;margin:4px 0 8px}
.pft-empty b{color:var(--ink)}
.pft-range{position:relative;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;background:var(--bg2,#f1f2f4);border-radius:12px;padding:10px 11px 20px;margin:2px 0 8px}
.pft-rl span{display:block;font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);font-weight:700}
.pft-rl b{display:block;font-size:15px;line-height:1.25;font-variant-numeric:tabular-nums}
.pft-rl small{display:block;font-size:10.5px;color:var(--mut);font-variant-numeric:tabular-nums}
.pft-rl.mid{text-align:center}.pft-rl.r{text-align:right}
.pft-bar{position:absolute;left:11px;right:11px;bottom:8px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--down),#d8dadd 45%,var(--up))}
.pft-bar i{position:absolute;top:-3px;width:2px;height:10px;border-radius:2px;background:var(--ink,#101418)}
.pft-bar i.z{background:#fff;box-shadow:0 0 0 1px rgba(16,20,24,.35)}
.pft-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:0 0 10px}
.pft-stats div{background:#fff;border:1px solid rgba(16,20,24,.08);border-radius:10px;padding:7px 5px;text-align:center}
.pft-stats b{display:block;font-size:13.5px;font-variant-numeric:tabular-nums}
.pft-stats span{display:block;font-size:9.5px;color:var(--mut)}
.pft-sh{font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;margin:10px 0 5px;display:flex;align-items:center;gap:6px}
.pft-sh span{font:700 9.5px/15px var(--mono,monospace);background:var(--bg2,#f1f2f4);border-radius:999px;padding:0 6px}
.pft-sh.up{color:var(--up)}.pft-sh.dn{color:var(--down)}
.pft-none{font-size:11.5px;color:var(--mut);margin-bottom:6px}
.pft-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;border:1px solid rgba(16,20,24,.08);border-radius:10px}
.pft-t,.pft-g{border-collapse:collapse;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.pft-t{min-width:100%}
.pft-t th{font-size:9.5px;font-weight:700;color:var(--mut);text-align:right;padding:6px 7px;background:var(--bg2,#f1f2f4);line-height:1.2;vertical-align:bottom}
.pft-t td{text-align:right;padding:6px 7px;border-top:1px solid rgba(16,20,24,.06)}
/* 1 Oct (later): sticky Unit column. border-collapse:separate so the sticky
   cell paints its own opaque background + divider (with collapse, Chrome let
   scrolled values show at its edge: "Sell psf ,232"); columns snap to its right
   edge (scroll-padding-left set by profit.js) so nothing rests half under it. */
.pft-t{border-collapse:separate;border-spacing:0}
.pft-tscroll{scroll-snap-type:x mandatory;overscroll-behavior-x:contain}
.pft-t th,.pft-t td{scroll-snap-align:start}
.pft-t th:first-child,.pft-t td:first-child{text-align:left;position:sticky;left:0;background:#fff;background-clip:padding-box;z-index:2;scroll-snap-align:none;
  box-shadow:inset -1px 0 0 rgba(16,20,24,.12),4px 0 6px -4px rgba(16,20,24,.18)}
.pft-t thead th:first-child{background:var(--bg2,#f1f2f4);z-index:3}
.pft-t tbody tr:first-child td{border-top:0}
.pft-bk{font-size:9.5px;font-weight:700;color:var(--mut)}
.pft-apx{color:var(--mut);font-style:normal}
.pft-t th.pft-sk{cursor:pointer;user-select:none;-webkit-user-select:none;white-space:nowrap}
.pft-t th.pft-sk:hover{color:var(--ink,#101418)}
.pft-t th.pft-sk:focus-visible{outline:2px solid var(--ink,#101418);outline-offset:-2px}
.pft-t th.pft-sk.on{color:var(--ink,#101418)}
.pft-t th.pft-gap,.pft-t td.pft-gap{padding:0;width:0;min-width:0;scroll-snap-align:none}
.pft-t th .pft-ar{display:inline-block;min-width:8px;font-style:normal;font-size:8px;margin-left:2px;vertical-align:1px}
.pft-t tr.approx td{color:var(--mut);font-style:italic}
.pft-t td.up{color:var(--up)}.pft-t td.down{color:var(--down)}
.pft-ss{font-style:normal;font-size:8.5px;font-weight:800;background:var(--bg2,#f1f2f4);border-radius:4px;padding:0 3px;color:var(--mut)}
.pft-more{margin:7px 0 2px}
.pft-foot{margin-top:9px}
.pft-tt{font-size:11.5px;font-weight:800;margin:2px 0 7px}
.pft-tt span{font-weight:500;color:var(--mut)}
.pft-tt .pft-assoc{font-weight:800;font-size:9px;letter-spacing:.04em;text-transform:uppercase;background:var(--lime,#c8f24b);color:#101418;border-radius:999px;padding:1px 7px;margin-left:4px}
.pft-adv:not(:empty){margin-bottom:14px;padding-bottom:12px;border-bottom:1px dashed rgba(16,20,24,.15)}
.pft-metric{margin-bottom:8px}
.pft-g th{font-size:9.5px;font-weight:700;color:var(--mut);padding:5px 6px;background:var(--bg2,#f1f2f4);text-align:center;line-height:1.2}
.pft-g th small{font-weight:500}
.pft-g tbody th{position:sticky;left:0;z-index:1;text-align:left}
.pft-g td{min-width:64px;text-align:center;padding:5px 4px;border:2px solid #fff;border-radius:6px}
.pft-g td b{display:block;font-size:11.5px}
.pft-g td small{display:block;font-size:9px;opacity:.75}
.pft-g td.e{color:#c4c7cc;background:#fafafa}
@media(max-width:480px){.pft-chips[data-k="size"]{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}.pft-chips[data-k="size"] .lst-chip{flex:0 0 auto}}
/* 1 Oct — associate stack × floor grid (pov-tower) */
.pft-tv,.pft-um{margin-bottom:8px}
.pft-blk{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;margin-bottom:7px}
.pft-blk .lst-chip{flex:0 0 auto}
.pft-uscroll{max-height:62vh;overflow:auto}
.pft-ug thead th{position:sticky;top:0;z-index:2}
.pft-ug thead th:first-child{left:0;z-index:3}
.pft-ug tbody th{background:var(--bg2,#f1f2f4);font-variant-numeric:tabular-nums;text-align:center;min-width:30px}
.pft-ug td{min-width:58px}
.pft-ug td.u{cursor:pointer;background:#eef0f2}
.pft-ug td.u.np{background:#e9eaec;color:#9aa0a6}
.pft-ug td.u:hover{outline:2px solid rgba(16,20,24,.35);outline-offset:-2px}
.pft-ug td.u.sel{outline:2.5px solid var(--ink,#101418);outline-offset:-2.5px}
.pft-ug td small{white-space:nowrap}
.pft-uhint{font-size:11px;color:var(--mut);margin:7px 0 0}
.pft-udet:not(:empty){margin-top:8px}
.pft-uh{display:flex;align-items:baseline;gap:6px;background:var(--bg2,#f1f2f4);border-radius:10px 10px 0 0;padding:8px 10px}
.pft-uh b{font-size:14px;font-variant-numeric:tabular-nums}
.pft-uh span{font-size:11px;color:var(--mut);flex:1}
.pft-ux{border:0;background:none;font-size:13px;cursor:pointer;color:var(--mut);padding:0 2px}
.pft-uhist{list-style:none;margin:0;padding:0;border:1px solid rgba(16,20,24,.08);border-top:0;border-radius:0 0 10px 10px}
.pft-uhist li{padding:7px 10px;border-top:1px solid rgba(16,20,24,.06);font-size:11.5px;font-variant-numeric:tabular-nums}
.pft-uhist li:first-child{border-top:0}
.pft-uhist .r1{display:flex;gap:8px;align-items:baseline}
.pft-uhist .r1 span{flex:1}
.pft-uhist .r1 i{font-style:normal;color:var(--mut);font-size:10.5px;min-width:72px;text-align:right}
.pft-uhist .r2{font-size:10.5px;margin-top:2px}
.pft-uhist .r2.up{color:var(--up)}.pft-uhist .r2.down{color:var(--down)}
.pft-uhist .r2.approx{color:var(--mut);font-style:italic}
/* 1 Oct (v2) — public "latest" floor-band grid */
.pft-lg td small+small{opacity:.6}
/* 1 Oct (v2) — associate Huttons-style unit cards (stack × floor) */
.pft-hg{border-collapse:separate;border-spacing:4px;font-size:10.5px;font-variant-numeric:tabular-nums}
.pft-hg thead th{position:sticky;top:0;z-index:2;background:var(--bg2,#f1f2f4);font-size:10px;font-weight:800;color:var(--ink,#101418);padding:5px 4px;border-radius:6px;text-align:center}
.pft-hg thead th:first-child{left:0;z-index:3}
.pft-hg tbody th{position:sticky;left:0;z-index:1;background:var(--bg2,#f1f2f4);font-size:11px;font-weight:800;padding:0 5px;border-radius:6px;min-width:28px;text-align:center}
.pft-hg td{padding:0;vertical-align:top}
.pft-hg .hc{width:148px;box-sizing:border-box;background:#fff;border:1px solid rgba(16,20,24,.12);border-radius:8px;padding:6px 8px 7px;text-align:left}
.pft-hg td.u{cursor:pointer}
.pft-hg td.u:hover .hc{border-color:rgba(16,20,24,.45)}
.pft-hg td.u.sel .hc{outline:2.5px solid var(--ink,#101418);outline-offset:-1px}
.pft-hg .hc-h{font-weight:800;font-size:11.5px;margin-bottom:3px;color:var(--ink,#101418)}
.pft-hg dl{display:grid;grid-template-columns:auto 1fr;gap:1px 6px;margin:0}
.pft-hg dt{color:var(--mut);font-weight:500;white-space:nowrap}
.pft-hg dd{margin:0;text-align:right;font-weight:600;white-space:nowrap}
.pft-hg dd i{font-style:normal;font-weight:700}
.pft-hg dd i.ok{color:var(--up,#16a34a)}
.pft-hg dd i.w{color:#b45309}
.pft-hg dd.up{color:var(--up,#16a34a)}.pft-hg dd.down{color:var(--down,#dc2626)}
.pft-hg .hc-e{background:#fafafa;border-style:dashed;color:#9aa0a6;min-height:52px}
.pft-hg .hc-e .hc-h{color:#9aa0a6}
.pft-estl{font-size:11px;color:var(--mut);margin:7px 0 0;line-height:1.4}
/* 1 Oct (v2) — full-screen card on the Profit / Tower tab */
.pft-fsb{position:absolute;top:11px;right:48px;z-index:7;height:30px;padding:0 11px;border:0;border-radius:8px;background:var(--lime,#c8f24b);color:#101418;font:700 12px/30px inherit;cursor:pointer;box-shadow:0 1px 2px rgba(16,20,24,.12)}
.pft-fsb[hidden]{display:none}
#infocard.pft-hasfs .hd h3{padding-right:96px}
#infocard.pft-fs{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:auto!important;max-width:none!important;max-height:none!important;height:auto!important;margin:0!important;border-radius:0!important;z-index:5000!important;animation:none!important;transform:none!important;overflow:auto!important}
#infocard.pft-fs .hd{border-radius:0}
#infocard.pft-fs .pft-uscroll{max-height:calc(100vh - 230px);max-height:calc(100dvh - 230px)}
#infocard.pft-fs .pft-root{max-width:none}
/* 1 Oct (v2) — owner vs tenant estimate (Info tab) */
.pft-ot{margin:12px 0 4px;padding:10px 11px;background:var(--bg2,#f1f2f4);border-radius:12px}
.pft-ot-h{font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;margin-bottom:7px}
.pft-ot-h span{font-weight:600;color:var(--mut);text-transform:none;letter-spacing:0;margin-left:4px}
.pft-ot-bar{display:flex;height:10px;border-radius:6px;overflow:hidden;background:#fff}
.pft-ot-bar i.o{background:#1f6feb}.pft-ot-bar i.t{background:#f59e0b}
.pft-ot-l{font-size:13px;margin-top:6px}
.pft-ot-l b:first-child{color:#1f6feb}.pft-ot-l b+b{color:#b45309}
.pft-ot-s{font-size:11px;color:var(--mut);margin:2px 0 4px}
