/* Phone app (web/mobile.js). Shown only on phones in the client view. */
#mApp{--mb:#8c1d3c;--mbd:#6f1530;--ink:#1d1415;--mut:#6f6866;--ln:#ece7e5;--soft:#f6efef;position:fixed;inset:0;z-index:50;background:#fff;display:flex;flex-direction:column;font-family:'DM Sans',system-ui,sans-serif;color:var(--ink)}
#mApp[hidden]{display:none}body.m-on{overflow:hidden}body.m-on .anh-wa-fab,body.m-on .cw-fab,body.m-on .cw-peek,body.m-on .shortlist-tray{display:none!important}
#mApp svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
:where(#mApp) button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.m-top{flex:none;padding:calc(10px + env(safe-area-inset-top)) 16px 0;background:#fff;border-bottom:1px solid var(--ln)}
.m-head{display:flex;align-items:center;gap:10px;margin:4px 0 10px}.m-head .m-brand{flex:1;font:700 23px/1.2 Manrope,'DM Sans',sans-serif;color:var(--mb);letter-spacing:-.02em}
.m-ic{width:32px;height:32px;display:grid!important;place-items:center;color:var(--ink)}
.m-search{display:flex;align-items:center;gap:8px;border:1px solid var(--ln);border-radius:12px;padding:0 10px;margin:2px 0 10px;background:#faf8f8}.m-search input{flex:1;border:0;background:none;font:16px 'DM Sans';padding:11px 0;outline:none;min-width:0}.m-search span{color:var(--mut);display:grid}
.m-tabs{display:flex;align-items:center;gap:6px;clear:both;padding-bottom:10px}.m-tabs>button:not(.m-ic){padding:8px 16px;border-radius:999px;font-weight:600;font-size:15px;color:#2f2627}.m-tabs>button.on:not(.m-ic){background:#f8e8ec;color:var(--mb)}.m-tabs>span{flex:1;border-right:1px solid var(--ln);height:24px;margin-right:4px}.m-tabs .m-ic{color:var(--mb)}
.m-chips{display:flex;gap:8px;overflow-x:auto;padding:0 0 12px;scrollbar-width:none;border-top:1px solid var(--ln);padding-top:10px;margin:0 -16px;padding-left:16px;padding-right:16px}.m-chips::-webkit-scrollbar{display:none}
.m-chip{flex:none;display:flex!important;align-items:center;gap:4px;border:1px solid #ddd5d3!important;border-radius:10px;padding:7px 10px!important;font-size:14px;white-space:nowrap}.m-chip svg{width:16px;height:16px}.m-chip.on{border-color:var(--mb)!important;background:#fbf0f2;color:var(--mb)}.m-chip-ic{margin-left:auto}
.m-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:10px 10px calc(84px + env(safe-area-inset-bottom));background:#fff}
.m-count{margin:2px 6px 10px;font-size:13px;color:var(--mut)}
.m-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 8px}
.mc{min-width:0;cursor:pointer}.mc-ph{position:relative;aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:#eee}
.mc-track{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.mc-track::-webkit-scrollbar{display:none}.mc-track img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:center}
.mc-dots{position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:center;gap:4px;pointer-events:none}.mc-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55)}.mc-dots i.on{background:#fff}
.mc-heart{position:absolute;top:8px;right:8px;width:34px;height:34px;display:grid!important;place-items:center;color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}.mc-heart svg{width:26px;height:26px;stroke-width:2}.mc-heart.on svg{fill:var(--mb);stroke:#fff}
.mc-tag{position:absolute;left:8px;top:10px;background:rgba(255,255,255,.94);color:#1d1415;font-size:11px;font-weight:700;border-radius:6px;padding:3px 7px}.mc-tag.soon{color:#8a6a12}
.mc-none{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px;text-align:center;font-size:13px;color:#7d7471;background:linear-gradient(160deg,#f3eeec,#e4dcda)}.mc-none span{font-size:26px;color:var(--mb)}
.mc-tx{padding:6px 2px 0;display:grid;gap:1px}.mc-tx b{font-size:16px;letter-spacing:-.01em}.mc-nm{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mc-tx small{font-size:12.5px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m-more{text-align:center;color:var(--mut);font-size:13px;padding:18px}
.m-empty{text-align:center;padding:60px 24px;color:var(--mut)}.m-empty svg{width:40px;height:40px;color:var(--mb)}.m-empty h3{color:var(--ink);font-size:19px;margin:12px 0 6px}.m-empty p{margin:0 0 18px;line-height:1.5}
.m-btn{background:var(--mb)!important;color:#fff!important;border-radius:12px!important;padding:13px 22px!important;font-weight:600!important;font-size:15px}
.m-bar{position:absolute;left:0;right:0;bottom:0;display:flex;background:#fff;border-top:1px solid var(--ln);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.m-bar button{flex:1;display:flex!important;flex-direction:column;align-items:center;gap:2px;font-size:12px;color:#3a3132;position:relative;padding:4px 0!important}.m-bar button.on{color:var(--mb);font-weight:700}.m-bar button.on svg{fill:currentColor;fill-opacity:.12}
.m-bar i{position:absolute;top:0;left:calc(50% + 6px);background:var(--mb);color:#fff;font-style:normal;font-size:10px;font-weight:700;border-radius:999px;padding:0 5px;line-height:16px}
.m-sheet{position:absolute;inset:0;z-index:5}.m-sheet[hidden]{display:none}.m-sheet-bg{position:absolute;inset:0;background:rgba(20,10,12,.45)}
.m-sheet-card{position:absolute;left:0;right:0;bottom:0;max-height:78vh;overflow-y:auto;background:#fff;border-radius:18px 18px 0 0;padding:20px 16px calc(20px + env(safe-area-inset-bottom));animation:mUp .2s ease}@keyframes mUp{from{transform:translateY(40px);opacity:.6}}
.m-sheet-card h3{margin:0 0 12px;font-size:18px}.m-sheet-x{position:absolute;top:14px;right:14px}
.m-opt{display:flex!important;justify-content:space-between;align-items:center;width:100%;padding:13px 4px!important;border-bottom:1px solid var(--ln)!important;font-size:15.5px;text-align:left}.m-opt small{color:var(--mut)}.m-opt.on{color:var(--mb);font-weight:700}
.m-note{font-size:12.5px;color:var(--mut);margin:12px 4px 0}.m-switch{display:flex;gap:10px;align-items:center;font-size:15px;margin:6px 0 18px}.m-switch input{width:20px;height:20px;accent-color:var(--mb)}
#mApp .mc-heart.on svg{fill:var(--mb);stroke:#fff}#mApp .m-bar button.on svg{fill:currentColor;fill-opacity:.12}
/* Stage 2: home details */
.md{position:absolute;inset:0;z-index:4;background:#fff;display:flex;flex-direction:column}.md[hidden]{display:none}
.md-top{flex:none;display:flex;align-items:center;justify-content:space-between;padding:calc(8px + env(safe-area-inset-top)) 10px 8px;border-bottom:1px solid var(--ln)}.md-top b{font-size:17px}
.md-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(30px + env(safe-area-inset-bottom))}
.md-ph{position:relative;aspect-ratio:4/3;background:#eee}.md-track{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.md-track::-webkit-scrollbar{display:none}.md-track img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:center}
.md-count{position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;font-weight:600;border-radius:12px;padding:3px 9px}
.md-thumbs{display:flex;gap:8px;padding:10px 12px 0;overflow-x:auto}#mApp .md-th{flex:0 0 74px;height:58px;border-radius:8px;overflow:hidden;border:2px solid transparent;background:#f3eeee;display:grid;place-items:center}#mApp .md-th.on{border-color:var(--mb)}.md-th img{width:100%;height:100%;object-fit:cover}#mApp .md-th-plan svg{width:30px;height:30px;color:#3a3132}
.md-pad{padding:14px 16px}.md h1{font:700 22px/1.2 Manrope,'DM Sans',sans-serif;margin:2px 0 4px;letter-spacing:-.01em}.md-price{font-size:20px;font-weight:700;margin-bottom:2px}.md-sub{color:var(--mut);font-size:14.5px}
.md-acts{display:flex;margin-top:12px;border-top:1px solid var(--ln);border-bottom:1px solid var(--ln)}#mApp .md-acts button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 0;font-size:15px}#mApp .md-acts button+button{border-left:1px solid var(--ln)}#mApp .md-save.on svg{fill:var(--mb);stroke:var(--mb)}
.md-ask{background:#f7f3f3;padding:14px 16px 16px;margin-top:4px}.md-ask h3,.md-pad h3{font-size:17px;margin:0 0 10px}.md-ask form{display:flex;gap:8px;flex-wrap:wrap}.md-ask input{flex:1;min-width:0;border:1px solid #e3dcda;border-radius:10px;padding:12px;font:15px 'DM Sans';background:#fff}
#mdWho{width:100%;display:grid;gap:8px;margin-top:8px}#mdWho p{margin:0;font-size:13px;color:var(--mut)}#mdWho input{border:1px solid #e3dcda;border-radius:10px;padding:12px;font:15px 'DM Sans';background:#fff}#mdWho[hidden]{display:none}
.md-ok{margin:10px 0 0;font-size:13.5px;color:#15803d}#mApp .md-book{margin-top:12px;width:100%;border:1px solid #dcd3d1;border-radius:10px;padding:11px;font-weight:600;background:#fff}
.md-clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;color:#3f3a39;font-size:15px;line-height:1.55}.md-clamp.open{display:block}.md-clamp p{margin:0 0 10px}#mApp .md-more{color:var(--mb);font-weight:700;margin-top:4px}
.md-acc{border-top:1px solid var(--ln);margin:0 16px}.md-acc summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:15px 0;font-weight:700;font-size:16.5px;cursor:pointer}.md-acc summary::-webkit-details-marker{display:none}.md-acc summary small{color:var(--mut);font-weight:500;margin-left:6px;margin-right:auto}.md-acc[open] summary svg{transform:rotate(180deg)}
.md-acc-b{padding-bottom:14px;font-size:14.5px;color:#3f3a39}.md-acc-b h4{margin:14px 0 6px;font-size:14.5px;color:var(--ink)}.md-acc-b ul{margin:0;padding-left:18px}
.md-facts{margin:0;display:grid;gap:0;border:1px solid var(--ln);border-radius:10px;overflow:hidden}.md-facts>div{padding:9px 12px;border-bottom:1px solid var(--ln)}.md-facts>div:last-child{border-bottom:0}.md-facts dt{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#9d9591}.md-facts dd{margin:2px 0 0}
.md-dep{margin:4px 0}#mApp .md-plan{display:flex;width:100%;justify-content:space-between;align-items:center;text-align:left;padding:11px 0;border-bottom:1px solid var(--ln)}.md-plan span{display:grid}.md-plan small{color:var(--mut)}.md-plan em{font-style:normal;color:var(--mb);font-weight:700}
.md-loc{border-top:1px solid var(--ln);margin-top:0}.md-loc-h{display:flex;justify-content:space-between;align-items:flex-start}.md-loc-h h3{margin:0}.md-loc-h span{color:var(--mut);font-size:14px}.md-loc-h a{color:var(--mb);font-weight:700;font-size:14px}
.md-map{height:190px;border-radius:12px;overflow:hidden;margin:10px 0}.md-map iframe{width:100%;height:100%;border:0}.md-loc p{color:#3f3a39;font-size:14.5px;line-height:1.5;margin:0}
.md-sim{font-size:20px!important;margin:6px 0 2px!important}.md-subtle{display:block;color:var(--mut);font-size:14px;margin-bottom:12px}.md-grid{margin:0 -6px}
.md-fine{font-size:11.5px;color:#9d9591;padding:0 16px}
#mApp .md-note{display:flex;align-items:center;gap:10px;width:calc(100% - 24px);margin:10px 12px;background:#faf3f4;border-radius:12px;padding:10px 12px;text-align:left;font-size:13.5px}.md-note>span:first-child{width:36px;height:36px;border-radius:50%;background:#f3dfe4;display:grid;place-items:center;color:var(--mb);flex:none}.md-note small{color:var(--mut)}.md-note em{margin-left:auto;font-style:normal;color:var(--mb);font-weight:700}
/* Stage 3: account sheet (screen 04) */
.m-acc{text-align:center;padding-top:30px!important}.m-acc-ic{width:64px;height:64px;border-radius:50%;background:#f8e8ec;color:var(--mb);display:grid;place-items:center;margin:0 auto 14px}#mApp .m-acc-ic svg{width:30px;height:30px}
.m-acc h2{font:700 25px/1.2 Manrope,'DM Sans',sans-serif;margin:0 0 10px;letter-spacing:-.01em}.m-acc>p{color:#3f3a39;font-size:15.5px;line-height:1.5;margin:0 auto 18px;max-width:330px}
#mAccForm{display:grid;gap:10px}#mAccForm input{border:1px solid #d9d1cf;border-radius:10px;padding:14px;font:16px 'DM Sans'}#mAccForm .m-btn{width:100%;padding:15px!important;font-size:16px}
.m-acc-msg{margin:4px 0 0;font-size:14px;color:#b91c1c}.m-acc-msg.ok{color:#15803d}.m-acc-msg[hidden]{display:none}
.m-acc-alt{font-size:15px;margin:14px 0 4px}#mApp .m-acc-alt button{color:var(--mb);font-weight:700}
#mApp .m-acc-keep{display:block;width:100%;border-top:1px solid var(--ln);margin-top:14px;padding:16px 0 4px!important;color:var(--mb);font-weight:700;font-size:16px}
.m-acc-note{display:flex;align-items:center;gap:10px;background:#f6f3f3;border-radius:12px;padding:12px 14px;margin-top:12px;font-size:14px;text-align:left}#mApp .m-acc-note svg{width:22px;height:22px;flex:none}
.m-accbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 4px 12px;padding:12px 14px;border-radius:12px;background:#f8f3f3;font-size:13.5px;text-align:left;width:calc(100% - 8px)}#mApp .m-accbar button{color:var(--mb);font-weight:700}#mApp .m-accbar-cta{background:#fbeff2}.m-accbar-cta em{font-style:normal;font-size:22px;color:var(--mb)}
#mMain{position:absolute;inset:0;display:flex;flex-direction:column;min-height:0}
body.m-on #toast{z-index:80;bottom:calc(90px + env(safe-area-inset-bottom))}
/* Marketplace-tight grid (owner request 28 Oct 2026): photos edge to edge, 3px gaps, one line "price · name". */
.m-body{padding:0 0 calc(70px + env(safe-area-inset-bottom))}.m-count{margin:8px 12px 6px}
.m-grid{gap:3px 3px}.mc-ph{border-radius:0;aspect-ratio:1/1}.mc-tx{padding:7px 10px 10px}
.mc-line{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;color:var(--ink)}.mc-line b{font-weight:700}
.mc-tx small{font-size:12px}.mc-tag{font-size:10.5px;padding:2px 6px;top:8px;left:8px}
.m-empty{padding-left:24px;padding-right:24px}#mApp .m-accbar{margin:10px 10px 6px;width:calc(100% - 20px)}
.md-grid{margin:0 -16px}

/* Phone floor plan rows: thumbnail on the left (30 Oct 2026). */
#mApp .md-plan{justify-content:flex-start;gap:12px}#mApp .md-plan>span{flex:1}#mApp .md-thumb{width:64px;height:52px;flex:none;font-style:normal}

/* Photos smaller than the phone gallery: real size on the dark backdrop, not stretched. */
#mApp .md-track img.lowres{object-fit:scale-down;background:#140a0b}

/* Register card after the first photos / floor plans. */
#mApp .md-gate{flex:0 0 100%;scroll-snap-align:center;overflow-y:auto;background:#140a0b;padding:14px;box-sizing:border-box;display:flex;align-items:center}
#mApp .md-gate .reg-gate{margin:0;width:100%;padding:14px}#mApp .md-gate .reg-gate p{font-size:13px}
#mApp .md-acc-b .reg-gate{margin:12px 0 4px}
#mApp .md-gate .reg-gate p{display:none}#mApp .md-gate .reg-gate h3{font-size:16px;margin-bottom:8px}
#mApp .md-gate .reg-form{grid-template-columns:1fr 1fr;gap:6px}#mApp .md-gate .reg-row,#mApp .md-gate .reg-consent,#mApp .md-gate .reg-form .btn,#mApp .md-gate .reg-err{grid-column:1/-1}
#mApp .md-gate .reg-row{gap:6px}#mApp .md-gate .reg-form input:not([type=checkbox]){padding:8px 10px;font-size:14px}#mApp .md-gate .reg-consent{font-size:10.5px}#mApp .md-gate .reg-form .btn{padding:10px}
#mApp li.inc b{display:block;font-weight:800;color:#8c1d3c}#mApp li.inc span{display:block;font-size:13px;color:#666}
#mApp .md-gate .reg-form input[type=password]{grid-column:1/-1}#mApp .md-gate .reg-alt{grid-column:1/-1;font-size:12px}
#mApp .m-disclaimer{padding:18px 16px 90px;font-size:11px;line-height:1.5;color:#8a8380}#mApp .m-disclaimer p{margin:0 0 8px}#mApp .m-bar .m-bar-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:inherit;text-decoration:none;font-size:11px;flex:1}
