@charset "UTF-8";
:root{--icon-stroke:2;--rating-star:#ffc400;--control-surface:#e2e6ecb3;--blue:#3044ea;--blue-dark:#2535bd;--navy:#243858;--text:var(--navy);--muted:#718097;--placeholder:#8793a5;--line:#e7ebf2;--bg:#ffffff;--tint:#eef1ff;--radius:20px;--safe-bottom:env(safe-area-inset-bottom,0px);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}a{color:inherit;text-decoration:none}button{color:inherit}button,input,select{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8895ff}button{border:0;background:none}input{min-width:0}input[type=checkbox],input[type=radio]{accent-color:var(--blue)}[hidden]{display:none!important}.symbols{position:absolute;width:0;height:0;overflow:hidden}.icon,.tiny,.brand-mark svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:var(--icon-stroke);stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.tiny{width:16px;height:16px}.chevron-down{transform:rotate(90deg)}
.topbar{height:86px;padding:0 max(28px,calc((100vw - 1160px)/2));background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:flex;align-items:center;gap:10px;color:var(--navy);font-size:27px;font-weight:850;letter-spacing:-1.2px}.brand-mark{width:37px;height:37px;background:var(--blue);color:white;border-radius:12px;display:grid;place-items:center}.brand-mark svg{width:24px;height:24px;stroke-width:var(--icon-stroke)}.desktop-nav{display:flex;align-items:center;gap:32px;height:100%;margin-left:auto;margin-right:54px}.desktop-nav button{height:100%;font-size:15px;font-weight:650;position:relative;color:var(--muted);white-space:nowrap}.desktop-nav button.active{color:var(--blue)}.desktop-nav button.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--blue);border-radius:3px 3px 0 0}
.app{max-width:1160px;margin:0 auto;padding:38px 0 104px}.page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:16px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:1.7px;color:var(--blue)}h1{font-size:34px;letter-spacing:-1.2px;line-height:1.17;margin:10px 0 9px;font-weight:780}.page-title p{font-size:16px;color:var(--muted);margin:0;line-height:1.5}.save-search{display:flex;align-items:center;justify-content:center;gap:9px;background:white;border:1px solid var(--line);border-radius:13px;padding:13px 17px;font-size:14px;font-weight:650;white-space:nowrap}.save-search svg{width:19px;height:19px}.save-search:hover{border-color:var(--blue);color:var(--blue)}
.filter-button{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--navy);color:white;border-radius:15px;padding:0 22px;font-size:15px;font-weight:600}.filter-button:hover{background:#2f4367}.filter-button b{display:grid;place-items:center;font-size:12px;border-radius:6px;background:var(--blue);min-width:19px;height:19px}.results-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:19px}.sort-label{display:flex;align-items:center;gap:4px;position:relative}.sort-label select{font-size:14px;appearance:none;border:0;padding:8px 20px 8px 0;background:transparent;color:#57667e;max-width:210px;cursor:pointer}.sort-label .tiny{position:absolute;right:0;pointer-events:none}.active-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.active-filters:empty{display:none}.active-filters button{font-size:13px;background:#eaf0ff;color:var(--blue);padding:6px 9px;border-radius:8px;display:flex;align-items:center;gap:5px}.active-filters svg{width:14px;height:14px}
.listing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.listing-card{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;position:relative;min-width:0}.card-link{display:block;width:100%;padding:0;text-align:left}.card-image{height:235px;position:relative;overflow:hidden;background:#edf0f6}.card-image img{width:100%;height:100%;object-fit:cover;display:block}.card-no-photo{width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#97a3b8;background:linear-gradient(130deg,#ecf0f8,#f3f5fa)}.card-no-photo .icon{width:32px;height:32px;stroke-width:var(--icon-stroke)}.card-no-photo span{font-size:13px}.photo-count{position:absolute;bottom:13px;right:13px;border-radius:7px;padding:5px 8px;background:#172037b3;backdrop-filter:blur(8px);color:white;font-size:12px;display:flex;align-items:center;gap:5px}.photo-count svg{width:13px;height:13px}.favorite-button{position:absolute;right:13px;top:13px;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#fffef7eF;box-shadow:0 2px 8px #00000008;color:#33415e;z-index:2}.favorite-button .icon{width:20px;height:20px;stroke-width:var(--icon-stroke)}.favorite-button.selected{background:var(--photo-control-bg);color:#fff}.favorite-button.selected svg{fill:#fff;stroke:#fff;stroke-width:var(--icon-stroke)}.card-body{padding:17px 19px 15px}.price-line{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;margin-bottom:9px}.price{font-size:25px;line-height:1.1;font-weight:780;letter-spacing:-.6px}.price-period{font-size:13px;color:var(--muted)}.card-title{font-size:15px;line-height:1.45;font-weight:650;margin:0 0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-location{color:var(--muted);font-size:14px;line-height:1.4;margin:0 0 15px;min-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-params{display:flex;align-items:center;gap:10px;font-size:14px;margin-bottom:14px;flex-wrap:wrap}.card-params span+span:before{content:"";display:inline-block;vertical-align:middle;width:3px;height:3px;background:#a8b2c3;border-radius:50%;margin-right:10px}.card-conditions{display:flex;gap:5px;flex-wrap:wrap;min-height:25px;margin-bottom:13px}.condition{font-size:12px;line-height:1.3;border-radius:6px;padding:5px 7px;background:#f1f4f8;color:#667489}.condition.warn{background:#fcf4e7;color:#8e6b32}.card-meta{border-top:1px solid #f0f2f6;padding-top:11px;display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#8c98ab}.card-meta span:last-child{max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bottom-nav{display:none}.empty{grid-column:1/-1;text-align:center;padding:72px 24px;border:1px dashed #d9e0ee;border-radius:20px;background:#ffffff70}.empty .big-icon{margin:0 auto 22px}.empty h2{font-size:22px;margin:0 0 10px;letter-spacing:-.4px}.empty p{color:var(--muted);font-size:15px;line-height:1.65;max-width:370px;margin:0 auto 22px}.primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--blue);color:white;font-size:15px;font-weight:650;padding:14px 22px;min-height:48px;border-radius:13px;border:0;text-align:center;line-height:1.3}.primary:hover{background:var(--blue-dark)}.primary .icon{width:19px;height:19px}.secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:13px 19px;min-height:47px;border:1px solid var(--line);border-radius:13px;font-size:14px;font-weight:600;background:white}.skeleton{height:460px;background:linear-gradient(100deg,#e9edf4 20%,#f0f3f8 40%,#e9edf4 60%);background-size:200% 100%;border-radius:20px;animation:shimmer 1.5s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}.local-note{color:var(--muted);font-size:13px;margin-top:28px}
.sheet{border:0;padding:0;border-radius:23px;box-shadow:0 22px 100px #0d193442;background:white;color:var(--text);max-width:min(560px,calc(100vw - 32px));width:100%;max-height:calc(100dvh - 70px);overflow:hidden}.sheet::backdrop{background:#13203965;backdrop-filter:blur(5px)}.sheet-header{display:flex;justify-content:space-between;align-items:center;padding:23px 25px 18px;border-bottom:1px solid var(--line);background:white;gap:16px}.sheet h2{font-size:23px;letter-spacing:-.7px;line-height:1.25;margin:0;font-weight:750}.icon-button{display:grid;place-items:center;width:37px;height:37px;background:#f2f4f8;border-radius:50%;flex-shrink:0}.icon-button svg{width:19px;height:19px}.filter-sheet form{display:flex;flex-direction:column;max-height:calc(100dvh - 70px)}.sheet-scroll{padding:25px;overflow:auto;overscroll-behavior:contain;min-height:0}.sheet-scroll fieldset{padding:0;margin:0 0 28px;border:0}.sheet-scroll fieldset:last-child{margin-bottom:4px}legend{font-size:16px;font-weight:700;margin-bottom:14px}legend small{font-weight:500;font-size:14px;color:var(--muted);margin-left:4px}.district-options{display:flex;flex-wrap:wrap;gap:7px}.district-options label input{position:absolute;opacity:0}.district-options label span{display:block;padding:9px 11px;border:1px solid var(--line);border-radius:9px;font-size:13px;cursor:pointer}.district-options label input:checked+span{background:var(--tint);border-color:#c1c9fb;color:var(--blue)}.district-options label input:focus-visible+span{outline:3px solid #8895ff;outline-offset:2px}.two-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px}.two-inputs label{display:flex;align-items:center;border:1px solid #dfe5ef;border-radius:11px;padding:0 13px;min-height:48px;font-size:14px;color:var(--muted)}.two-inputs input{border:0;width:100%;padding:12px 8px;background:transparent;color:var(--text);font-size:16px;outline:none}.two-inputs label:focus-within{border-color:var(--blue)}.check-row{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;margin-top:13px;cursor:pointer}.check-row input{width:18px;height:18px;margin:1px 0 0;flex-shrink:0}.field-hint{font-size:13px;line-height:1.6;color:var(--muted);margin:10px 0}.room-options{display:flex;gap:7px}.room-options label{flex:1}.room-options input{position:absolute;opacity:0}.room-options span{display:block;text-align:center;padding:12px;border:1px solid var(--line);border-radius:9px;font-size:14px;cursor:pointer}.room-options input:checked+span{background:var(--tint);border-color:#b8c3ff;color:var(--blue)}.room-options input:focus-visible+span{outline:3px solid #8895ff}.full-select{width:100%;background:white;border:1px solid var(--line);border-radius:10px;padding:12px;color:var(--text);font-size:14px}.sheet-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 25px;border-top:1px solid var(--line);background:white;flex-shrink:0}.sheet-actions .primary{flex:1}.text-button{font-size:14px;color:var(--muted);padding:10px 0}.small-sheet{max-width:460px}.save-body{padding:25px}.big-icon{width:66px;height:66px;border-radius:20px;background:var(--tint);color:var(--blue);display:grid;place-items:center}.big-icon .icon{width:29px;height:29px;stroke-width:var(--icon-stroke)}.save-body>p{font-size:15px;line-height:1.6}.name-field{font-size:14px;font-weight:600;display:block;margin:20px 0 10px}.name-field input{width:100%;border:1px solid var(--line);border-radius:10px;padding:14px;margin-top:9px;font-size:16px}.save-body .field-hint{font-size:13px}.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--navy);color:white;border-radius:13px;box-shadow:0 6px 30px #15264125;padding:14px 20px;font-size:14px;z-index:20;text-align:center;max-width:calc(100vw - 32px);width:max-content;line-height:1.4}
.detail-sheet{max-width:800px;overflow:auto;overscroll-behavior:contain}.detail-top{position:absolute;top:16px;left:16px;right:16px;display:flex;justify-content:space-between;z-index:3}.detail-top .icon-button{width:var(--photo-control-size);height:var(--photo-control-size);border:0;border-radius:50%;padding:0;background:var(--photo-control-bg);color:#fff;box-shadow:none;backdrop-filter:blur(4px)}.detail-top .favorite-button{position:static}.gallery{background:#edf0f6;position:relative}.gallery-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;aspect-ratio:16/10}.gallery-track img,.gallery-track .card-no-photo{width:100%;height:100%;object-fit:cover;flex:0 0 100%;scroll-snap-align:center}.gallery-caption{position:absolute;bottom:16px;right:17px;color:white;background:#172037b3;border-radius:8px;padding:7px 9px;font-size:12px;display:flex;gap:8px;align-items:center}.gallery-prev,.gallery-next{position:absolute;top:50%;transform:translateY(-50%);background:#ffffffda}.gallery-prev{left:16px}.gallery-prev svg{transform:rotate(180deg)}.gallery-next{right:16px}.gallery-dots{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:5px}.gallery-dots button{width:6px;height:6px;border-radius:50%;background:#ffffff80;padding:0}.gallery-dots button.active{background:#fff}.detail-body{padding:27px 32px 28px}.detail-body .price{font-size:33px}.detail-title{font-size:23px;font-weight:740;letter-spacing:-.6px;line-height:1.3;margin:14px 0 9px}.detail-location{display:flex;gap:6px;color:var(--muted);font-size:15px;line-height:1.5}.detail-location .icon{width:18px;height:18px;position:relative;top:1px}.detail-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:24px 0 25px;padding:19px 0;border-block:1px solid var(--line)}.detail-stats>div+div{border-left:1px solid var(--line);padding-left:22px}.detail-stats strong{display:block;font-size:20px;font-weight:720}.detail-stats span{display:block;font-size:13px;color:var(--muted);margin-top:5px}.detail-section{margin-top:28px}.detail-section h3{font-size:17px;font-weight:730;margin:0 0 15px;letter-spacing:-.25px}.terms-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.term{background:#f7f8fb;padding:15px;border-radius:12px;min-width:0}.term dt{font-size:13px;color:var(--muted);margin-bottom:6px}.term dd{margin:0;font-size:15px;font-weight:620;line-height:1.45}.term dd.unknown{color:#8c764d;font-weight:500}.term small{display:block;font-size:12px;color:#8b97a9;margin-top:5px;line-height:1.4}.clarify{margin-top:13px;display:flex;gap:9px;align-items:flex-start;background:#fff7eb;border:1px solid #f4e8d0;border-radius:12px;padding:13px;font-size:13px;color:#8c734b;line-height:1.6}.clarify .icon{width:17px;height:17px;position:relative;top:2px}.amenities{display:flex;flex-wrap:wrap;gap:8px}.amenity{display:flex;align-items:center;gap:5px;font-size:13px;border:1px solid var(--line);border-radius:8px;padding:8px 10px}.amenity svg{color:var(--blue);width:14px;height:14px}.raw-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin-top:24px}.raw-details summary{font-size:14px;font-weight:600;cursor:pointer}.raw-text{white-space:pre-wrap;word-break:break-word;font-size:14px;line-height:1.7;color:#68748a;margin-top:16px}.agent-box{display:flex;justify-content:space-between;align-items:center;padding:18px 0;gap:15px}.agent-identity{display:flex;align-items:center;gap:11px;min-width:0}.agent-avatar{width:42px;height:42px;border-radius:12px;background:var(--tint);color:var(--blue);display:grid;place-items:center;flex-shrink:0;font-weight:750;font-size:16px}.agent-identity strong{font-size:14px;display:block;max-width:340px;overflow-wrap:anywhere}.agent-identity small{font-size:12px;color:var(--muted);display:block;margin-top:5px}.source-link{font-size:13px;font-weight:650;color:var(--blue);white-space:nowrap}.source-date{font-size:12px;color:var(--muted);margin:0 0 20px;line-height:1.6}.detail-actions{position:sticky;bottom:0;background:white;border-top:1px solid var(--line);padding:16px 32px;display:flex;gap:10px;z-index:4}.detail-actions .primary{flex:1}.detail-actions .secondary{flex:1}.detail-actions a:only-child{flex:1}.contact-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.contact-list a{font-size:14px;color:var(--blue);border:1px solid #dce2fb;border-radius:8px;padding:8px 10px}.report-button{font-size:13px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.prototype-note{max-width:600px;display:flex;gap:12px;align-items:flex-start;padding:19px;background:var(--tint);border-radius:15px;margin-top:25px;color:#697799}.prototype-note strong{font-size:14px;color:var(--navy)}.prototype-note p{font-size:13px;line-height:1.65;margin:6px 0 0}.prototype-note>.icon{width:20px;height:20px;color:var(--blue)}
@media(max-width:1220px){.app{margin:0 28px}.topbar{padding:0 28px}.card-image{height:auto;aspect-ratio:1.55}.desktop-nav{margin-right:25px;gap:23px}}
@media(max-width:950px){.listing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.desktop-nav{margin-right:0;gap:19px}.topbar{gap:20px}h1{font-size:30px}}
@media(min-width:0px){.topbar{height:66px;padding:0 20px;border-bottom:0;position:sticky;top:0;z-index:20;padding-top:env(safe-area-inset-top,0px)}.brand{font-size:23px;gap:8px;letter-spacing:-1px}.brand-mark{height:31px;width:31px;border-radius:10px}.brand-mark svg{width:20px;height:20px}.desktop-nav{display:none}.app{margin:0;padding:14px 18px calc(95px + var(--safe-bottom))}.page-title{margin-bottom:21px}.eyebrow{display:none}h1{font-size:26px;letter-spacing:-.8px;margin:0 0 7px}.page-title p{font-size:14px;line-height:1.5}.desktop-save{display:none}.filter-button{padding:0 14px;border-radius:12px;gap:0;position:relative}.filter-button span{display:none}.filter-button svg{width:21px;height:21px}.filter-button b{position:absolute;top:-5px;right:-4px;min-width:17px;height:17px;border:2px solid var(--bg);font-size:10px;border-radius:6px}.results-head{margin-bottom:15px}.sort-label select{font-size:12px;max-width:176px;padding-right:18px}.listing-grid{grid-template-columns:minmax(0,1fr);gap:20px}.listing-card{border-radius:18px}.card-image{aspect-ratio:1.5}.card-body{padding:16px 18px 15px}.price{font-size:26px}.card-title{font-size:16px}.card-location{font-size:14px;margin-bottom:13px}.card-params{font-size:14px;margin-bottom:13px}.card-meta{font-size:12px;padding-top:12px}.condition{font-size:12px;padding:5px 7px}.card-conditions{margin-bottom:12px}.favorite-button{width:38px;height:38px;top:12px;right:12px}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;padding:8px 12px calc(9px + var(--safe-bottom));background:#ffffff;border-top:0;z-index:10;justify-content:space-around}.bottom-nav button{display:flex;align-items:center;flex-direction:column;gap:4px;color:#94a0b2;padding:4px 15px;min-width:91px;font-size:12px;font-weight:550;min-height:49px;position:relative}.bottom-nav button.active .icon{color:var(--blue)}.bottom-nav .icon{width:23px;height:23px;stroke-width:var(--icon-stroke)}.toast{bottom:calc(85px + var(--safe-bottom));font-size:13px;padding:13px 16px}.sheet{max-width:100vw;max-height:92dvh;border-radius:22px 22px 0 0;position:fixed;top:auto;bottom:0;margin:0;width:100vw;animation:sheet-in .2s ease-out}.sheet::backdrop{backdrop-filter:blur(3px)}.sheet-header{padding:20px 21px 17px}.sheet h2{font-size:23px}.filter-sheet form{max-height:92dvh}.sheet-scroll{padding:22px 21px}.sheet-actions{padding:15px 21px calc(15px + var(--safe-bottom));gap:20px}.detail-sheet{max-height:100dvh;height:100dvh;border-radius:0;top:0;bottom:auto}.detail-body{padding:23px 21px 26px}.detail-body .price{font-size:31px}.detail-title{font-size:23px}.detail-stats{margin-top:22px}.detail-stats>div+div{padding-left:15px}.detail-stats strong{font-size:19px}.detail-stats span{font-size:12px}.detail-actions{padding:14px 20px calc(15px + var(--safe-bottom))}.detail-actions .primary,.detail-actions .secondary{font-size:14px;padding:13px 12px}.gallery-track{aspect-ratio:1.16}.gallery-caption{font-size:11px;bottom:13px;right:13px}.gallery-dots{bottom:17px}.gallery-next,.gallery-prev{display:none}.agent-identity strong{max-width:230px;font-size:13px}.agent-box{flex-wrap:wrap}.save-body{padding:23px 21px}.small-sheet{max-width:100vw}.terms-grid{gap:9px}.term{padding:13px}.term dd{font-size:14px}.empty{padding:53px 20px}.empty p{font-size:14px}.prototype-note{padding:16px}.skeleton{height:450px}.source-date{font-size:12px}.raw-text{font-size:14px;line-height:1.65}@keyframes sheet-in{from{transform:translateY(40px);opacity:.6}to{transform:translateY(0);opacity:1}}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.mobile-save{display:none}@media(min-width:0px){.mobile-save{display:grid;background:white;border:1px solid var(--line);width:38px;height:38px}.page-title{gap:8px}.page-title>div{min-width:0}.page-title h1{font-size:25px}}

/* The design target is a single mobile Mini App, including when opened on desktop. */
.topbar,.app{width:100%;max-width:430px;margin-left:auto;margin-right:auto}
.bottom-nav{left:50%;right:auto;transform:translateX(-50%);width:100%;max-width:430px}
.sheet{left:50%;right:auto;transform:translateX(-50%);width:min(100vw,430px);max-width:430px}
@keyframes sheet-in{from{transform:translate(-50%,40px);opacity:.6}to{transform:translate(-50%,0);opacity:1}}

.list-end{height:1px;pointer-events:none}.results-head{gap:9px}.results-head .sort-label select{max-width:155px}

/* Supplied RentCore logo: unchanged source image, with its symbol and wordmark displayed side by side. */
.brand{gap:8px;letter-spacing:normal}
.brand-symbol{position:relative;display:block;flex:0 0 34px;width:34px;height:34px;overflow:hidden}
.brand-symbol img{position:absolute;display:block;width:64.4px;max-width:none;left:-15.05px;top:-9.50px}
.brand-wordmark{position:relative;display:block;flex:0 0 104px;width:104px;height:20px;overflow:hidden}
.brand-wordmark img{position:absolute;display:block;width:129.25px;max-width:none;left:-13.19px;top:-97.30px}

/* Header controls for the Mini App. */
.topbar .filter-button{width:40px;min-width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center;gap:7px;background:var(--tint);color:var(--blue);border-radius:10px;flex-shrink:0}.topbar .filter-button b{border-color:#fff;color:#fff}.app{padding-top:10px}

.header-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0}.header-actions .mobile-save{width:40px;height:40px;padding:0;border:0;border-radius:10px;background:var(--tint);color:var(--blue)}.header-actions .mobile-save .icon{width:21px;height:21px}.results-head{justify-content:flex-end}

/* Compact actions and anchored sorting menu. */
.topbar{gap:12px}.header-actions .sort-button{width:40px;height:40px;padding:0;border:0;border-radius:10px;background:var(--tint);color:var(--blue)}.header-actions .sort-button .icon{width:21px;height:21px}.sort-menu{position:fixed;inset:62px max(20px,calc((100vw - 430px)/2 + 20px)) auto auto;margin:0;width:200px;max-width:calc(100vw - 40px);padding:8px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--navy);box-shadow:0 12px 36px #20304c20}.sort-menu::backdrop{background:transparent}.sort-menu button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:10px;border-radius:9px;text-align:left;font-size:13px}.sort-menu button:hover{background:#f4f6fb}.sort-menu button[aria-checked=true]{background:var(--tint);color:var(--blue);font-weight:650}.sort-menu button .icon{width:18px;height:18px;visibility:hidden}.sort-menu button[aria-checked=true] .icon{visibility:visible}

/* Return to the top after a long scroll, above the bottom navigation. */
.back-to-top{position:fixed;right:max(18px,calc((100vw - 430px)/2 + 18px));bottom:calc(88px + var(--safe-bottom));z-index:9;width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid #ffffffb3;border-radius:14px;background:#edf0f4;color:#53617a;box-shadow:0 3px 12px #1e2e4e12;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease,visibility .18s}.back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.back-to-top .icon{width:21px;height:21px}@media(prefers-reduced-motion:reduce){.back-to-top{transition:none;transform:none}}

/* Swipeable photo galleries on both screens. */
.card-photo-track{position:absolute;inset:0;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none}.card-photo-track .photo-slide{flex:0 0 100%;width:100%;height:100%;padding:0;scroll-snap-align:center;scroll-snap-stop:always;text-align:left}.card-photo-track .card-no-photo{flex:0 0 100%}.photo-gallery [data-photo-track]{overscroll-behavior-x:contain;touch-action:pan-x pan-y pinch-zoom;cursor:grab}.photo-gallery [data-photo-track]::-webkit-scrollbar{display:none}.photo-gallery [data-photo-track] img{user-select:none;-webkit-user-drag:none}.card-photo-track img{pointer-events:none}.photo-gallery .photo-slide{cursor:inherit}.photo-gallery [data-photo-track].is-dragging{scroll-snap-type:none;cursor:grabbing;user-select:none}.gallery-track img{scroll-snap-stop:always}.photo-gallery:has(.gallery-dots):after{content:"";position:absolute;bottom:0;left:0;right:0;height:50px;pointer-events:none;background:linear-gradient(transparent,#0c14282b)}.photo-gallery .gallery-dots{bottom:9px;gap:0;z-index:1}.photo-gallery .gallery-dots button{position:relative;width:12px;height:24px;padding:0;border-radius:0;background:none;display:grid;place-items:center}.photo-gallery .gallery-dots button:after{content:"";width:6px;height:6px;border-radius:50%;background:#ffffff85;box-shadow:0 1px 3px #0004}.photo-gallery .gallery-dots button.active:after{background:#fff;width:7px;height:7px}.photo-gallery .photo-count,.photo-gallery .gallery-caption{z-index:1;pointer-events:none}.photo-gallery .photo-count{font-size:11px;gap:3px}

/* White feed surfaces and consistent floating controls. */
:root{--photo-control-size:32px;--photo-control-inset:12px;--photo-control-bg:#22262b99}
.favorite-button{width:var(--photo-control-size);height:var(--photo-control-size);right:var(--photo-control-inset);background:var(--photo-control-bg);color:#fff;box-shadow:none;backdrop-filter:blur(4px)}.favorite-button.selected{background:var(--photo-control-bg);color:#fff}.favorite-button.selected svg{fill:#fff;stroke:#fff;stroke-width:var(--icon-stroke)}
.back-to-top{width:var(--photo-control-size);height:var(--photo-control-size);right:max(calc(18px + 1px + var(--photo-control-inset)),calc((100vw - 430px)/2 + 18px + 1px + var(--photo-control-inset)));border:0;border-radius:50%;background:var(--photo-control-bg);color:#fff;box-shadow:none;backdrop-filter:blur(4px)}

/* Center the two empty-state messages inside the available Mini App screen. */
#favorites:has(> .empty),#saved-searches:has(> .empty){display:grid;align-items:center;min-height:calc(100dvh - 171px - var(--safe-bottom))}

/* Primary text matches the dark blue in the original RentCore wordmark. */
input,select{color:var(--text)}

/* Saved searches show their actual criteria with consistent inner alignment. */
.search-card{width:100%;padding:18px;background:#fff;border:1px solid var(--line);border-radius:17px;margin-bottom:14px}.search-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.search-card h2{flex:1;min-width:0;font-size:17px;line-height:1.35;margin:4px 0 0;overflow-wrap:anywhere}.search-card .search-card-delete{flex:0 0 32px;width:32px;height:32px;padding:0;color:var(--muted)}.search-card-delete .icon{width:19px;height:19px}.saved-search-filters{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}.saved-search-chip{max-width:100%;padding:6px 9px;border-radius:8px;background:#f1f4f8;color:var(--text);font-size:13px;line-height:1.35;overflow-wrap:anywhere}.saved-search-all,.saved-search-sorting{margin:0 0 14px;color:var(--muted);font-size:13px;line-height:1.45}.search-card-created{display:block;margin:0 0 16px;font-size:12px;color:var(--muted);line-height:1.4}.search-card-open{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px}

@media(max-width:340px){#saved-searches .empty h2{font-size:20px}}

/* Compact save dialog with aligned content and actions. */
#save-dialog .sheet-header{padding:16px 20px 12px;border-bottom:0}#save-dialog .save-body{padding:16px 20px 14px}#save-dialog .name-field{margin:0}#save-dialog .field-hint{margin:10px 0 0;line-height:1.45}#save-dialog .sheet-actions{padding:12px 20px calc(12px + var(--safe-bottom));border-top:0}

#save-dialog .name-field input{border:0;outline:none;background:#f2f4f8}#save-dialog .name-field input:focus-visible{outline:none}

/* Full-screen details slide horizontally; the list stays visible underneath. */
#detail-dialog{animation:none;box-shadow:none}#detail-dialog::backdrop{background:transparent;backdrop-filter:none}

#favorites > .empty,#saved-searches > .empty{border:0}

/* Pressing a listing gives a restrained tactile response. */
.listing-card{transition:transform 70ms ease-out}.listing-card.is-pressed{transform:scale(.992)}
@media(prefers-reduced-motion:reduce){.listing-card{transition:none}.listing-card.is-pressed{transform:none}}

/* Previously opened listings carry a quiet marker over the photograph. */
.viewed-badge{position:absolute;left:var(--photo-control-inset);top:var(--photo-control-inset);z-index:2;display:flex;align-items:center;gap:5px;max-width:calc(100% - 76px);height:var(--photo-control-size);padding:0 9px;border-radius:18px;background:var(--photo-control-bg);color:#fff;font-size:13px;line-height:18px;font-weight:500;backdrop-filter:blur(4px);pointer-events:none}.viewed-badge .icon{width:15px;height:15px;flex-shrink:0}

/* Known property details and complete payments in the filled example. */
.location-extra{margin:12px 0 0;color:var(--muted);font-size:14px;line-height:1.55}.location-extra p{display:flex;align-items:flex-start;gap:6px;margin:7px 0}.location-extra .icon{width:17px;height:17px;flex-shrink:0;margin-top:2px}.location-extra .location-landmarks{display:block;font-size:13px}.property-info{margin:0}.property-info>div{display:flex;justify-content:space-between;gap:20px;padding:9px 0}.property-info dt{font-size:14px;color:var(--muted);flex-shrink:0}.property-info dd{margin:0;text-align:right;font-size:14px;line-height:1.4;overflow-wrap:anywhere}.move-in-total{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:8px 12px;margin:14px 0 0;padding:16px;background:var(--tint);border-radius:12px}.move-in-total>span{font-size:14px}.move-in-total strong{font-size:22px;letter-spacing:-.4px}.move-in-total small{grid-column:1/-1;color:var(--muted);font-size:12px;line-height:1.55}

/* Four equal destinations; the heart is optically centered in its circular control. */
.bottom-nav button{flex:1;min-width:0;padding:4px 0}.favorite-button{padding:0;place-items:center}.favorite-button .icon{display:block;width:19px;height:19px;transform:none}

/* Realtor feedback: a compact sliding selector, one focused form at a time. */
.realtor-segments{position:relative;display:flex;gap:0;padding:4px;background:#f2f4f8;border-radius:12px;margin:4px 0 26px;isolation:isolate}.realtor-segments:before{content:"";position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px)/3);border-radius:9px;background:#fff;box-shadow:0 1px 4px #24385812;transform:translateX(calc(var(--segment,0)*100%));transition:transform .18s ease;z-index:-1}.realtor-segments button{flex:1;min-width:0;min-height:39px;padding:8px 3px;font-size:13px;font-weight:550;color:var(--muted)}.realtor-segments button[aria-selected=true]{color:var(--text);font-weight:650}.realtor-panel h2{font-size:23px;letter-spacing:-.6px;line-height:1.25;margin:0 0 8px}.realtor-intro{font-size:14px;color:var(--muted);line-height:1.5;margin:0 0 24px}.realtor-form{display:flex;flex-direction:column;gap:19px}.realtor-field{display:block;min-width:0;font-size:14px;font-weight:600;line-height:1.45}.realtor-field>span{display:block;margin:0 0 8px}.realtor-field small{color:var(--muted);font-weight:400;margin-left:5px;font-size:12px}.realtor-field input,.realtor-field textarea,.realtor-field select{display:block;width:100%;border:0;border-radius:11px;background:#f2f4f8;color:var(--text);padding:13px 14px;font-size:15px;font-weight:400;line-height:1.5;outline-offset:2px}.realtor-field input::placeholder,.realtor-field textarea::placeholder{color:var(--placeholder)}.realtor-field textarea{resize:vertical;min-height:100px}.realtor-field textarea.short-textarea{min-height:78px}.realtor-submit{width:100%;margin-top:3px}.realtor-rating{border:0;padding:0;margin:0}.realtor-rating legend{font-size:14px;font-weight:600;margin-bottom:8px}.rating-stars{display:flex;gap:7px}.rating-stars label{position:relative;display:grid;place-items:center;width:42px;height:42px;cursor:pointer;color:#adb7c7}.rating-stars input{position:absolute;opacity:0;width:1px;height:1px}.rating-stars .icon{width:30px;height:30px}.rating-stars label.is-rated{color:var(--rating-star)}.rating-stars label.is-rated .icon{fill:var(--rating-star)}.rating-stars label:has(input:focus-visible){outline:3px solid #8895ff;border-radius:8px}.attachment-picker{display:flex;align-items:center;justify-content:center;gap:8px;min-height:45px;background:#f2f4f8;border-radius:11px;font-size:14px;font-weight:500;cursor:pointer}.attachment-picker .icon{width:18px;height:18px}.attachment-picker input{position:absolute;opacity:0;width:1px;height:1px}.attachment-picker:has(input:focus-visible){outline:3px solid #8895ff;outline-offset:2px}.attachment-hint{font-size:12px;color:var(--muted);margin:8px 0 0;line-height:1.4}.attachment-files{display:flex;flex-direction:column;gap:6px;margin-top:8px}.attachment-file{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px;border-radius:8px;background:#f2f4f8;font-size:12px}.attachment-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-file button{display:grid;place-items:center;width:28px;height:28px;padding:0;flex-shrink:0}.attachment-file .icon{width:16px;height:16px}.realtor-form-error{font-size:13px;color:#b34343;line-height:1.5;margin:0}.realtor-success{text-align:center;padding:55px 12px}.realtor-success-icon{width:56px;height:56px;display:grid;place-items:center;margin:0 auto 20px;background:var(--tint);color:var(--blue);border-radius:50%}.realtor-success-icon .icon{width:26px;height:26px}.realtor-success h2{font-size:22px;margin:0 0 10px}.realtor-success p{font-size:14px;color:var(--muted);line-height:1.55;margin:0 0 25px}.realtor-success .primary{width:100%;margin-bottom:8px}.realtor-success .text-button{color:var(--blue)}

.realtor-field textarea{font-family:inherit}.realtor-field textarea:focus-visible{outline:3px solid #8895ff;outline-offset:2px}.realtor-form{padding-bottom:65px}.realtor-actions{position:fixed;bottom:calc(66px + var(--safe-bottom));left:50%;transform:translateX(-50%);width:100%;max-width:430px;padding:12px 18px;background:#fff;z-index:9}.realtor-actions .realtor-submit{margin:0}

/* Saving the current search stays available above the bottom navigation. */
.saved-search-actions{position:fixed;bottom:calc(66px + var(--safe-bottom));left:50%;transform:translateX(-50%);width:100%;max-width:430px;padding:12px 18px;background:#fff;z-index:9}.saved-search-actions .primary{width:100%}#saved-searches:not(:has(> .empty)){padding-bottom:65px}#saved-searches:has(> .empty){min-height:calc(100dvh - 214px - var(--safe-bottom))}#saved-searches>.empty p{margin-bottom:0}

/* Shared dropdown surfaces use the same type, corners and selection style as sorting. */
.choice-control{position:relative;width:100%;min-width:0}.choice-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;height:50px;padding:0 14px;border:0;border-radius:11px;background:#f2f4f8;color:var(--text);font-size:15px;font-weight:400;line-height:22px;text-align:left}.choice-value{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.choice-trigger>.icon,.choice-toggle>.icon{width:18px;height:18px;transform:rotate(90deg);color:var(--muted)}.choice-trigger[aria-expanded=true]>.icon,.choice-toggle[aria-expanded=true]>.icon{transform:rotate(-90deg)}.choice-trigger.is-placeholder{color:var(--placeholder)}.choice-trigger[aria-invalid=true]{outline:2px solid #b34343;outline-offset:2px}.choice-menu{position:fixed;inset:auto;margin:0;padding:6px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--text);box-shadow:0 10px 30px #2438581a;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.choice-menu::backdrop{background:transparent}.choice-menu button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;padding:10px;border-radius:8px;text-align:left;font-size:14px;font-weight:400;line-height:20px}.choice-menu button>span{min-width:0;overflow-wrap:anywhere}.choice-menu button>.icon{width:17px;height:17px;color:var(--blue);visibility:hidden}.choice-menu button[aria-selected=true]{color:var(--blue);background:var(--tint);font-weight:550}.choice-menu button[aria-selected=true]>.icon{visibility:visible}.choice-menu button:hover{background:#f2f4f8}.choice-menu button:focus-visible{outline:0;background:var(--tint)}.choice-combobox>input{padding-right:48px}.choice-toggle{position:absolute;right:4px;top:4px;display:grid;place-items:center;width:42px;height:42px;padding:0;border-radius:8px}

/* Stable form dimensions across review and complaint modes, including while scrolling. */
.realtor-form{gap:19px}.realtor-field>span,.realtor-rating legend{line-height:20px;margin-bottom:8px}.realtor-field input{height:50px;line-height:22px;padding-top:14px;padding-bottom:14px}.realtor-field textarea{height:112px;min-height:112px;resize:none;line-height:22px;overflow-y:auto}.realtor-field textarea.short-textarea{height:88px;min-height:88px}.rating-stars{height:50px;align-items:center}.attachment-picker{height:50px;min-height:50px}.realtor-field .choice-combobox>input{padding-right:48px}

/* Required fields use a compact marker; optional fields need no extra caption. */
.required-mark{display:inline;color:#d94b55;font-size:14px;font-weight:650;line-height:inherit;margin-left:4px}

/* Missing required values are explained briefly in place, without browser tooltips. */
.has-field-prompt::placeholder{color:#c64a54!important;opacity:1}.choice-trigger.has-field-prompt,.realtor-rating legend.has-field-prompt{color:#c64a54}.choice-trigger.has-field-prompt{outline:none}

/* A quiet direct-message action sits beside the apartment parameters. */
.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:9px}.card-bottom .card-params{font-weight:650;flex:1;min-width:0;min-height:40px;margin:0;padding:0;text-align:left;line-height:20px;gap:8px;align-content:center}.card-bottom .card-params span+span:before{margin-right:8px}.card-contact{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border-radius:10px;background:var(--tint);color:var(--blue)}.card-contact .icon{width:21px;height:21px}.card-meta{border:0;padding:0;margin-top:7px}.card-meta span:last-child{max-width:none}@media(max-width:340px){.card-bottom{gap:7px}.card-bottom .card-params{font-size:13px;gap:6px}.card-bottom .card-params span+span:before{margin-right:6px}}

.card-contact-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.card-contact:disabled{background:#f2f4f8;color:#aab4c4;opacity:1;cursor:default}

.back-to-top .icon{width:19px;height:19px}

/* Price first, its commission on the right, then financial terms and location. */
.listing-overview .card-price-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:12px;margin-bottom:0}.card-price-row .price{min-width:0}.card-price-row .price-wide{font-size:22px}.card-commission{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0;line-height:1.2;color:var(--text)}.card-commission small{font-size:11px;font-weight:400;color:var(--muted)}.card-commission>span{font-size:13px;font-weight:600}.card-commission.is-unknown>span{font-size:12px;font-weight:400;color:var(--muted)}.listing-overview .card-conditions{margin:10px 0 0;min-height:0;gap:5px}.card-address{display:grid;gap:4px;margin:12px 0 12px;min-width:0}.card-address .card-title{margin:0}.card-address .card-location{margin:0;min-height:0;line-height:20px}.card-metro{display:flex;align-items:center;gap:5px;min-width:0}.card-metro .icon{width:15px;height:15px}.card-metro>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}

/* One concise location reference per listing card. */
.card-address .card-place{max-width:calc(100% - 12px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-metro .icon{color:var(--blue);width:16px;height:16px;flex-shrink:0}

/* Parameters and date share the contact buttons’ vertical space. */
.card-info{flex:1;min-width:0}.card-info .card-params{width:100%;min-height:20px;row-gap:0}.card-info .card-params span{white-space:nowrap}.card-info .card-meta{margin-top:2px;line-height:16px}

/* The expanded listing starts with the same overview as its feed card. */
.detail-body{padding:16px 18px 26px}.detail-body .listing-overview .price{font-size:26px}.detail-body .listing-overview .price-wide{font-size:22px}.listing-overview .card-title{font-size:16px;line-height:1.45;font-weight:650;letter-spacing:normal}

/* Detail contact actions use the same compact icons as the feed. */
.detail-body .raw-details{border:0}.detail-body{padding-bottom:calc(26px + var(--safe-bottom))}

/* Entry cost and payments stay below the apartment overview. */
.entry-cost-card{margin-top:24px;padding:16px;border-radius:12px;background:#f7f8fb}.entry-cost-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.entry-cost-header h3{margin:0;font-size:15px;font-weight:650}.entry-cost-header strong{font-size:22px;font-weight:700;line-height:1.2;white-space:nowrap}.entry-cost-card .card-conditions{margin:12px 0 0;min-height:0}.entry-cost-card .condition{background:white;color:var(--text)}.entry-cost-breakdown,.entry-cost-hint{margin:10px 0 0;font-size:12px;line-height:18px;color:var(--muted)}.detail-actions{border-top:0}.detail-actions .card-contact{flex:1;width:auto;height:44px}.detail-actions .card-contact .icon{width:21px;height:21px}

/* Hide the detail scrollbar while retaining touch and wheel scrolling. */
#detail-dialog{scrollbar-width:none}#detail-dialog::-webkit-scrollbar{display:none;width:0;height:0}

/* All financial information belongs to the entry-cost block in details. */
.detail-body>.listing-overview .card-address{margin-top:0}.entry-cost-card .card-price-row{align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:12px;margin:14px 0 0}.entry-cost-rent{display:flex;flex-direction:column;gap:3px;min-width:0}.entry-cost-rent small{font-size:11px;color:var(--muted)}.detail-body .entry-cost-card .price{font-size:26px}.detail-body .entry-cost-card .price-wide{font-size:22px}

#search-name::placeholder{color:var(--placeholder);opacity:1}

/* Keep all realtor modes available beneath the fixed header. */
.realtor-segment-bar{position:sticky;top:66px;z-index:15;height:75px;padding:18px 0 10px;margin-bottom:16px;background:#fff}.realtor-segment-bar .realtor-segments{height:47px;margin:0}

/* Price, negotiation and the entry formula come first below the photos. */
.entry-cost-card{margin:0 0 20px}.entry-cost-card .card-price-row{margin-top:0}.entry-cost-breakdown{line-height:22px}.entry-cost-total{color:var(--text);white-space:nowrap}.entry-cost-total strong{font-size:17px;font-weight:700}

/* Source reputation replaces duplicate contacts; the original post stays within reach. */
.detail-body .agent-box{flex-wrap:nowrap;gap:12px}.detail-body .agent-identity{flex:1;min-width:0}.detail-body .agent-identity strong{max-width:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.source-reviews{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.source-reviews small{font-size:12px;color:var(--muted)}.source-rating{display:flex;align-items:center;gap:4px;color:var(--text);font-size:14px;line-height:18px}.source-rating .icon{width:15px;height:15px;color:var(--rating-star);fill:currentColor}.source-rating.is-empty{color:var(--muted)}.source-rating.is-empty .icon{color:var(--muted);fill:none}.detail-actions{flex-direction:column;gap:10px}.detail-contact-row{display:flex;gap:10px;width:100%}

/* One row of expense columns: label above value, operators on the value baseline. */
.entry-cost-breakdown{display:flex;align-items:flex-end;gap:5px;margin-top:14px;line-height:18px;overflow-x:auto;scrollbar-width:none}.entry-cost-breakdown::-webkit-scrollbar{display:none}.entry-cost-part{display:flex;flex:1 0 auto;flex-direction:column;align-items:center;gap:4px;min-width:max-content;white-space:nowrap}.entry-cost-part small{font-size:11px;font-weight:400;line-height:14px;color:var(--muted)}.entry-cost-value{font-size:13px;font-weight:550;color:var(--text);line-height:18px}.entry-cost-total strong{font-size:14px;line-height:18px}.entry-cost-operator{flex-shrink:0;font-size:13px;line-height:18px;color:var(--muted)}@media(max-width:360px){.entry-cost-part small{font-size:10px}.entry-cost-value{font-size:12px}.entry-cost-total strong{font-size:13px}.entry-cost-breakdown{gap:4px}}

/* Both financial rows share the same visible left and right edges. */
.entry-cost-card .card-price-row,.entry-cost-breakdown{width:100%}.entry-cost-breakdown>.entry-cost-part:first-child{align-items:flex-start}.entry-cost-breakdown>.entry-cost-total{align-items:flex-end}

/* Start the sticky switcher at its pinned position, without a scrolling top gap. */
.app:has(#realtors-page:not([hidden])){padding-top:0}

/* The default recommendation fits the miniapp; short viewports still scroll. */
.realtor-inline-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.realtor-intro{margin-bottom:12px}#realtor-panel[data-mode="suggest"] .realtor-form{padding-bottom:0}#realtor-panel[data-mode="suggest"] .attachment-files:empty{display:none}.app:has(#realtors-page:not([hidden]) #realtor-panel[data-mode="suggest"]){padding-bottom:calc(146px + var(--safe-bottom))}

/* Five payment columns also fit narrow mobile screens. */
.entry-cost-breakdown{gap:2px}
@media(max-width:360px){.entry-cost-card{padding:16px 8px}.entry-cost-part small{font-size:9px}.entry-cost-breakdown{gap:1px}}

/* Apartment overview first; the entry formula is a separate block below it. */
.detail-body>.listing-overview .card-address{margin-top:12px}.detail-body>.entry-cost-card{margin:20px 0}.entry-cost-card .entry-cost-breakdown{margin-top:0}

.entry-cost-title{margin:0 0 12px;font-size:15px;line-height:20px;font-weight:650;color:var(--text)}

/* Label the Telegram source; listing conditions use the same shared feed styles. */
.detail-body .agent-identity{flex-direction:column;align-items:flex-start;gap:5px}.detail-body .agent-identity small{margin:0;font-size:12px;line-height:16px;color:var(--muted)}

/* Keep the Telegram source and its rating aligned. */
.detail-body .agent-source{flex:1;min-width:0}.detail-body .agent-box{align-items:flex-start}.detail-body .source-reviews{padding-top:2px}

/* A consistent stack of supplemental detail blocks. */
.detail-body>.entry-cost-card{margin:20px 0 16px}
.detail-body .agent-box{padding:16px;margin:0;background:#f7f8fb;border-radius:12px}
.detail-body .raw-details{padding:16px;margin:16px 0 0;background:#f7f8fb;border-radius:12px}
.raw-details summary{display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none;font-size:15px;font-weight:650;line-height:20px}
.raw-details summary::-webkit-details-marker{display:none}
.raw-details summary>.icon{width:16px;height:16px;flex-shrink:0;color:var(--muted);transform:rotate(90deg)}
.raw-details[open] summary>.icon{transform:rotate(-90deg)}
.raw-details .raw-text{margin-top:14px;font-size:14px;line-height:1.65;color:var(--muted);overflow-wrap:anywhere}

/* Match the form start across modes, including a two-line title on narrow screens. */
@media(max-width:340px){.realtor-panel h2{min-height:2.5em}}

.commission-options{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}.commission-options label{grid-column:span 2}.commission-options label:nth-child(-n+2){grid-column:span 3}.commission-options span{padding:11px 8px;white-space:nowrap;font-size:13px;line-height:20px}

/* Three clear apartment facts; publication date follows the original text. */
.detail-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:18px 0 0;padding:6px 0;gap:0}
.detail-facts>div{display:flex;flex-direction:column;gap:5px;min-width:0;padding:0 16px}
.detail-facts>div:first-child{padding-left:0}
.detail-facts>div+div{border-left:1px solid var(--line)}
.detail-facts dt{order:2;font-size:12px;line-height:17px;color:var(--muted)}
.detail-facts dd{margin:0;font-size:20px;line-height:25px;font-weight:650;color:var(--text);overflow-wrap:anywhere}
.detail-date{margin:12px 0 0;font-size:12px;line-height:17px;color:var(--muted)}
@media(max-width:360px){.detail-facts>div{padding:0 12px}.detail-facts dd{font-size:18px}}

/* Fit the closed detail into the standard 390 × 844 miniapp viewport. */
#detail-content{display:flex;flex-direction:column;min-height:100%}
#detail-content>.gallery,#detail-content>.detail-actions{flex-shrink:0}
.detail-sheet .gallery-track{width:100%;max-height:240px}
.detail-body{flex:1 0 auto;padding-top:14px;padding-bottom:calc(12px + var(--safe-bottom))}
.detail-facts{margin-top:10px;padding:4px 0}
.detail-facts>div{gap:3px}
.detail-facts dd{font-size:19px;line-height:23px}
.detail-body>.entry-cost-card{margin:14px 0 12px;padding-top:14px;padding-bottom:14px}
.entry-cost-title{margin-bottom:8px}
.detail-body .agent-box{padding:14px 16px}
.detail-body .raw-details{margin-top:12px;padding:14px 16px}
.detail-date{margin-top:8px}

/* Separate compact fact tiles replace vertical dividers. */
.detail-facts{gap:8px;padding:0}.detail-facts>div,.detail-facts>div:first-child{padding:8px 12px;background:#f7f8fb;border-radius:10px}.detail-facts>div+div{border:0}

/* Filters: consistent fields, searchable district multi-select and range calendar. */
#filters-form .two-inputs label,#filters-form .number-field{display:flex;align-items:center;gap:8px;height:50px;min-height:50px;border:0;border-radius:11px;padding:0 14px;background:#f2f4f8;color:var(--muted);font-size:15px;line-height:22px}
#filters-form .two-inputs input,#filters-form .number-field input{flex:1;min-width:0;width:100%;height:50px;padding:0;border:0;background:transparent;color:var(--text);font-size:15px;line-height:22px;outline:none}
#filters-form input::placeholder{color:var(--placeholder);opacity:1}
#filters-form input[type=number]{appearance:textfield;-moz-appearance:textfield}
#filters-form input::-webkit-inner-spin-button,#filters-form input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
#filters-form .two-inputs label:focus-within,#filters-form .number-field:focus-within{outline:2px solid #8895ff;outline-offset:2px}
#filters-form .field-hint{font-size:13px;line-height:19px;color:var(--muted);margin:10px 0 0}
.currency-options input:disabled+span{background:#f7f8fb;border-color:#edf0f5;color:#b2bbc9;cursor:default}
.rooms-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.rooms-grid label:first-child{grid-column:1/-1}.rooms-grid span{padding:11px 8px;line-height:20px}
.district-dropdown,.publication-picker{position:fixed;inset:auto;margin:0;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--text);box-shadow:0 10px 30px #2438581a;overflow:auto;overscroll-behavior:contain;scrollbar-width:none}
.district-dropdown{padding:10px}.district-dropdown::backdrop,.publication-picker::backdrop{background:transparent}
.district-search{display:flex;align-items:center;gap:8px;height:44px;padding:0 10px;background:#f2f4f8;border-radius:9px;color:var(--muted)}
.district-search .icon{width:17px;height:17px}.district-search input{width:100%;min-width:0;height:44px;padding:0;border:0;background:transparent;font-size:14px;color:var(--text);outline:none}
#district-options{display:flex;flex-direction:column;flex-wrap:nowrap;gap:2px;max-height:none;overflow:auto;margin-top:8px;scrollbar-width:none}
#district-options label{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:42px;padding:9px 10px;border-radius:8px;cursor:pointer;font-size:14px}
#district-options label span{padding:0;border:0;border-radius:0;text-align:left;background:none;color:inherit;font-size:14px;line-height:20px}
#district-options label>.icon{display:none}
#district-options label:has(input:checked){color:var(--blue);background:var(--tint)}
#district-options input:checked~.icon{visibility:visible}#district-options input:focus-visible+span{outline:none}#district-options label:has(input:focus-visible){outline:2px solid #8895ff;outline-offset:-2px}
.publication-content{padding:12px;background:#fff}
.date-presets{display:flex;flex-wrap:wrap;gap:6px;padding:0 0 12px}.date-presets button{padding:8px 10px;border-radius:8px;background:#f2f4f8;color:var(--muted);font-size:12px;line-height:16px}.date-presets button[aria-pressed=true]{background:var(--blue);color:#fff}
.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 8px}.calendar-header strong{font-size:14px;font-weight:600;text-transform:capitalize}.calendar-header button{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#f2f4f8;color:var(--muted)}.calendar-header .icon{width:17px;height:17px}.calendar-header [data-calendar-month="-1"] .icon{transform:rotate(180deg)}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-weekdays span{padding:6px 0;text-align:center;color:var(--muted);font-size:11px}.calendar-days button,.calendar-blank{height:36px}.calendar-days button{border-radius:8px;font-size:13px;color:var(--text)}.calendar-days button.is-today{box-shadow:inset 0 0 0 1px #b8c3ff}.calendar-days button.is-range{background:var(--tint);color:var(--blue)}.calendar-days button.is-edge{background:var(--blue);color:#fff}.calendar-days button:disabled{color:#b7bfcc;opacity:1}.calendar-days button:not(:disabled):hover{background:var(--tint);color:var(--blue)}

/* Balance the new symbol with the wordmark. */
.brand-symbol{flex-basis:30px;width:30px;height:30px}.brand-symbol img{width:56.82px;left:-13.28px;top:-8.38px}
.brand-wordmark{flex-basis:114.4px;width:114.4px;height:22px}.brand-wordmark img{width:142.18px;left:-14.51px;top:-107.03px}
@media(max-width:360px){.brand{gap:7px}.brand-symbol{flex-basis:28px;width:28px;height:28px}.brand-symbol img{width:53.03px;left:-12.39px;top:-7.82px}.brand-wordmark{flex-basis:96px;width:96px;height:18.46px}.brand-wordmark img{width:119.31px;left:-12.18px;top:-89.82px}}
.contact-preview{padding:20px;display:grid;gap:20px}.contact-preview strong{font-size:20px;font-weight:650;overflow-wrap:anywhere}.contact-preview .primary{width:100%}

/* Applied filters stay on a single horizontally scrollable row. */
.active-filters{display:flex;flex-wrap:nowrap;align-items:center;gap:7px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;padding:0 0 2px;margin:0 0 14px;min-width:0;touch-action:pan-x pan-y}
.active-filters:empty{display:none}.active-filters::-webkit-scrollbar{display:none}.active-filters button{display:flex;align-items:center;gap:5px;flex:0 0 auto;white-space:nowrap;min-height:30px;padding:7px 9px;border:0;border-radius:8px;background:#f2f4f8;color:var(--muted);font-size:12px;line-height:16px}.active-filters button .icon{width:13px;height:13px;flex-shrink:0;color:var(--muted)}
.topbar .filter-button b{display:grid;place-items:center;position:absolute;right:-5px;top:-5px;min-width:20px;width:20px;height:20px;padding:0;border:2px solid #fff;border-radius:50%;background:var(--blue);color:white;font-size:10px;line-height:16px;font-weight:650}

.district-dropdown:popover-open{display:flex;flex-direction:column}.district-dropdown .district-search{flex-shrink:0}.district-dropdown #district-options{flex:1 1 auto;min-height:0}.district-actions{flex-shrink:0;padding-top:10px}.district-actions .primary{width:100%;height:38px;padding:8px 12px;font-size:13px;line-height:20px;border-radius:9px}

/* Keep a compact filter slot below the header, including an empty selection. */
.app:has(#search-page:not([hidden])){padding-top:4px}.active-filters,.active-filters:empty{display:flex;height:30px;min-height:30px;padding:0;margin-bottom:10px}

/* Applied filters stay attached to the header while the feed scrolls. */
.active-filter-bar{position:sticky;top:66px;z-index:19;margin:-4px -18px 0;padding:4px 18px 10px;background:#fff}.active-filter-bar .active-filters{margin:0}.topbar .filter-button b{background:var(--navy);color:#fff}

/* The filter form stays within the screen even with many selected districts. */
#filters-dialog .sheet-scroll{overflow-x:hidden;overflow-y:auto}
#filters-form fieldset{min-width:0}
#filters-form .two-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}
#filters-form .two-inputs label,#filters-form .number-field{min-width:0}
#district-toggle{min-width:0;max-width:100%}#district-value{flex:1;min-width:0}#district-toggle>.icon{flex-shrink:0}
.district-dropdown,#district-options,.publication-picker{overflow-x:hidden}
/* Publication date sits above the floor tile at the right. */
.detail-date{margin:10px 0 4px;text-align:right;font-size:12px;line-height:17px}
.detail-date+.detail-facts{margin-top:0}

#filters-form .floor-presets{margin-top:10px;gap:10px}
#filters-form .floor-presets label{min-width:0}
#filters-form .floor-presets span{padding:10px 8px;line-height:20px;border:0;background:#f2f4f8;color:var(--muted)}
#filters-form .floor-presets input:checked+span{background:var(--tint);color:var(--blue)}
#filters-form .two-inputs label>span{flex-shrink:0}

/* Match the first favorite card with the feed below its reserved filter row. */
.app:has(#favorites-page:not([hidden])){padding-top:44px}

.detail-facts>div{align-items:center;text-align:center}
.detail-address-footer{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0}
.detail-address-footer .card-place{flex:1;min-width:0;max-width:none}
.detail-place-empty{flex:1}
.detail-address-footer .detail-date{flex-shrink:0;margin:0;line-height:20px;white-space:nowrap;text-align:right}

/* Keep native checkbox focus inside its visible preset instead of scrolling the dialog. */
#filters-form .room-options label{position:relative;min-width:0}
#filters-form .room-options input,#district-options input{position:absolute;top:50%;left:50%;width:1px;height:1px;margin:0;clip-path:inset(50%);opacity:0}
#filters-dialog .sheet-header{flex-shrink:0}

/* Shared content start across all four tabs, with filters closer to the logo. */
:root{--header-height:76px;--tab-start-gap:40px}
.topbar{height:var(--header-height)}
.app:has(#search-page:not([hidden])){padding-top:0}
.active-filter-bar{top:var(--header-height);margin:0 -18px;padding:0 18px 10px}
.app:has(#favorites-page:not([hidden])),.app:has(#searches-page:not([hidden])){padding-top:var(--tab-start-gap)}
.realtor-segment-bar{top:var(--header-height);height:87px;padding:var(--tab-start-gap) 0 0;margin-bottom:10px}

/* Local layout names with a smaller euro-layout explanation. */
#filters-form .rooms-grid label>span{display:flex;flex-direction:column;align-items:center;justify-content:center;height:54px;padding:8px;gap:2px}
#filters-form .rooms-grid label:first-child>span{height:42px}
.room-layout b{font-size:14px;line-height:20px;font-weight:400}
.room-layout small{font-size:11px;line-height:14px;font-weight:400;opacity:.75}

/* Personal tabs keep their compact spacing below the header. */
.app:has(#favorites-page:not([hidden])),.app:has(#searches-page:not([hidden])){padding-top:10px}
.realtor-segment-bar{height:75px;padding:18px 0 10px;margin-bottom:16px}

#filters-form .floor-presets span{text-align:left;padding-left:14px;padding-right:14px}
.date-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;flex-wrap:nowrap}
.date-presets button{min-width:0;padding:8px 3px;font-size:11px;line-height:16px;white-space:nowrap}
.publication-picker:popover-open{display:flex;flex-direction:column}
.publication-content{min-height:0;overflow-y:auto;overflow-x:hidden}
.calendar-actions{flex-shrink:0;padding:0 12px 12px}
.calendar-actions .date-presets{padding:0}

/* Date shares the last available location row, including district-only listings. */
.detail-address-footer>.card-location,.detail-address-footer>.card-title{flex:1;min-width:0;max-width:none}

/* Rooms use the same overlay multi-select as districts, without a search field. */
.rooms-dropdown{position:fixed;inset:auto;margin:0;padding:10px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--text);box-shadow:0 10px 30px #2438581a;overflow:hidden;overscroll-behavior:contain;scrollbar-width:none}
.rooms-dropdown::backdrop{background:transparent}
.rooms-dropdown:popover-open{display:flex;flex-direction:column}
.multiselect-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;padding:4px 2px 8px}
.district-dropdown .multiselect-tools{padding-top:10px}
.multiselect-tools button{padding:6px 8px;font-size:12px;line-height:18px;color:var(--blue)}
.multiselect-tools button:last-child{color:var(--muted)}
.multiselect-options{display:flex;flex-direction:column;gap:2px;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}
.multiselect-options label{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:14px}
.multiselect-options input{position:absolute;top:50%;left:50%;width:1px;height:1px;margin:0;opacity:0;clip-path:inset(50%)}
.room-option-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.room-option-text b{font-size:14px;line-height:20px;font-weight:400}
.room-option-text small{font-size:11px;line-height:14px;opacity:.75}
.multiselect-options label>.icon{width:17px;height:17px;color:var(--blue);visibility:hidden}
.multiselect-options label:has(input:checked){color:var(--blue);background:var(--tint)}
.multiselect-options input:checked~.icon{visibility:visible}
.multiselect-options label:has(input:focus-visible){outline:2px solid #8895ff;outline-offset:-2px}
#rooms-toggle{min-width:0;max-width:100%}#rooms-value{flex:1;min-width:0}#rooms-toggle>.icon{flex-shrink:0}

/* Center an empty result in the available screen area without a border. */
#results:has(> .empty){align-items:center;min-height:calc(100dvh - var(--header-height) - 40px - 95px - var(--safe-bottom))}
#results>.empty{border:0;background:transparent;border-radius:0}

/* Overlay menus always open below their fields; the parent can scroll to reveal them. */
#filters-dialog .sheet-scroll:has(:popover-open)::after{content:"";display:block;height:760px;flex-shrink:0}
.app:has(.choice-menu:popover-open)::after{content:"";display:block;height:320px}
.district-dropdown,.rooms-dropdown,.publication-picker,.choice-menu{overscroll-behavior:auto}

/* Detail controls sit above an inset photo instead of covering its top corners. */
.detail-top{position:relative;top:auto;left:auto;right:auto;align-items:center;height:56px;flex:0 0 56px;padding:12px 18px;background:#fff}
#detail-content>.gallery{margin:0 18px;border-radius:16px;overflow:hidden}
.detail-sheet .gallery-track{max-height:230px}

/* A compact glass control stays centered above the bottom navigation. */
.back-to-top{left:50%;right:auto;bottom:calc(82px + var(--safe-bottom));width:44px;height:44px;border:1px solid #ffffffcc;border-radius:50%;background:linear-gradient(145deg,#ffffffbd,#edf2f94d);color:var(--navy);box-shadow:0 4px 18px #24385820,inset 0 1px 0 #ffffffcc,inset 0 -1px 0 #ffffff66;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);transform:translate(-50%,6px)}
.back-to-top.is-visible{transform:translate(-50%,0)}
.back-to-top .icon{width:22px;height:22px;opacity:.9}
body:has(#searches-page:not([hidden])) .back-to-top{bottom:calc(158px + var(--safe-bottom))}
@media(prefers-reduced-motion:reduce){.back-to-top,.back-to-top.is-visible{transform:translateX(-50%);transition:none}}

/* Keep the glass button visible, with no bright rim. */
.back-to-top{width:44px;height:44px;border:0;box-shadow:0 3px 12px #24385818}
.back-to-top .icon{width:22px;height:22px}

#filters-form .floor-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
#filters-form .floor-presets .check-row{align-items:center;gap:8px;margin:0;padding:0;font-size:14px;line-height:20px}
#filters-form .floor-presets input{position:static;opacity:1;clip-path:none;width:18px;height:18px;margin:0;flex-shrink:0}
#filters-form .floor-presets span{padding:0;background:none;color:var(--text)}

/* Telegram-inspired floating glass navigation, with no blue selection fill. */
.bottom-nav{bottom:calc(10px + var(--safe-bottom));width:calc(100% - 28px);max-width:402px;height:64px;padding:5px;border:0;border-radius:34px;isolation:isolate;background:linear-gradient(145deg,#ffffffc4,#f5f7fc80);backdrop-filter:blur(24px) saturate(175%);-webkit-backdrop-filter:blur(24px) saturate(175%);box-shadow:0 5px 24px #24385816,inset 0 1px 0 #ffffff80;touch-action:none}
.bottom-nav button{z-index:1;justify-content:center;min-height:54px;height:54px;gap:3px;padding:5px 2px 4px;border-radius:28px;background:transparent;color:var(--navy);font-size:10.5px;line-height:14px;font-weight:550}
.bottom-nav button.active{background:transparent;color:var(--blue)}
.bottom-nav .icon{width:24px;height:24px;transition:color .16s ease;transform-origin:center}
.bottom-nav button span{transition:color .16s ease}
.bottom-nav .nav-lens{position:absolute;left:5px;top:5px;height:54px;width:calc((100% - 10px)/4);border-radius:28px;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 35% 10%,#ffffffb3,#ffffff38 70%);box-shadow:inset 0 1px 0 #ffffff70,0 2px 8px #2438580a;will-change:transform,opacity}
.bottom-nav.is-pressing .nav-lens{opacity:.7}
.bottom-nav button:focus-visible{outline-offset:-3px;border-radius:28px}
.back-to-top{bottom:calc(88px + var(--safe-bottom))}
@media(prefers-reduced-motion:reduce){.bottom-nav .icon,.bottom-nav button span{transition:none}}
#filters-form .floor-presets input:checked+span{color:var(--text);background:none}

/* Shared glass surfaces follow the Telegram reference across fixed controls. */
:root{--glass-surface:linear-gradient(145deg,#ffffffc4,#f5f7fc80);--glass-filter:blur(24px) saturate(175%)}
.topbar,.active-filter-bar{background:var(--glass-surface);backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter)}
.brand-symbol img,.brand-wordmark img{mix-blend-mode:multiply}
.header-actions .mobile-save,.header-actions .sort-button,.topbar .filter-button{background:linear-gradient(145deg,#ffffff8c,#ffffff38);backdrop-filter:blur(12px) saturate(160%);-webkit-backdrop-filter:blur(12px) saturate(160%);box-shadow:0 2px 9px #2438580a,inset 0 1px 0 #ffffff66;border:0}
.detail-top{position:sticky;top:0;z-index:6;background:var(--glass-surface);backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter)}
.detail-top .icon-button,.detail-top .favorite-button{background:linear-gradient(145deg,#ffffffb3,#edf2f94d);color:var(--navy);border:0;box-shadow:0 2px 10px #24385816;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}
.detail-top .favorite-button.selected{background:linear-gradient(145deg,#2438589c,#24385875);color:#fff}
.detail-top .favorite-button.selected svg{fill:#fff;stroke:#fff}
/* A soft gray oval marks the selected tab without a visible rim. */
.bottom-nav .nav-lens{opacity:1;background:var(--control-surface);border:0;box-shadow:none}
.bottom-nav.is-pressing .nav-lens{opacity:1}
/* All filter checkboxes align with the left edge of the fields. */
#filters-form .floor-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#filters-form .check-row{align-items:center;margin-left:0;margin-right:0;gap:10px}
#filters-form .check-row input[type=checkbox]{appearance:none;position:relative;display:block;flex:0 0 18px;width:18px;height:18px;margin:0;border:1.5px solid #a6b0c0;border-radius:4px;background:#fff;opacity:1;clip-path:none}
#filters-form .check-row input[type=checkbox]:checked{border-color:var(--blue);background:var(--blue)}
#filters-form .check-row input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg)}
/* Content scrolls behind the glass header and footer of the filter sheet. */
#filters-form{display:block;position:relative;height:92dvh;max-height:92dvh}
#filters-dialog .sheet-header{position:absolute;left:21px;right:21px;top:10px;height:55px;padding:0 14px;z-index:2;border:0;border-radius:28px;background:linear-gradient(145deg,#ffffffd9,#e9edf4b3);box-shadow:0 2px 9px #2438580d;backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter)}
#filters-dialog .sheet-header .icon-button{background:transparent;color:var(--text)}
#filters-dialog .sheet-header .icon-button .icon{width:20px;height:20px;stroke-width:2.3}
#filters-dialog .sheet-actions{position:absolute;left:0;right:0;bottom:0;height:calc(78px + var(--safe-bottom));padding:15px 33px calc(15px + var(--safe-bottom));gap:14px;z-index:2;isolation:isolate;border:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
#filters-dialog .sheet-actions:before{content:"";position:absolute;inset:8px 21px calc(8px + var(--safe-bottom));z-index:-1;border-radius:32px;background:linear-gradient(145deg,#ffffffd9,#e9edf4b3);box-shadow:0 2px 9px #2438580d;backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter)}
#filters-dialog .sheet-actions .primary{min-width:0;padding:10px 12px;font-size:14px;white-space:nowrap;border-radius:24px}
#filters-dialog .sheet-scroll{height:100%;padding:97px 21px calc(100px + var(--safe-bottom));scroll-padding:97px 0 calc(100px + var(--safe-bottom));overflow-y:auto;overflow-x:hidden}
@media(prefers-reduced-motion:reduce){.realtor-segments:before{transition:none}}
.detail-actions{background:var(--glass-surface);backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter)}
.detail-actions .card-contact{background:linear-gradient(145deg,#ffffffb3,#edf2f970);color:var(--blue);border:0;box-shadow:0 2px 10px #2438580d,inset 0 1px 0 #ffffff80;backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%)}
.detail-actions .card-contact:disabled{color:#a9b3c2;opacity:.65}

/* Keep scrolling available without visible scrollbars on any app surface. */
html,body,*{scrollbar-width:none;-ms-overflow-style:none}
*::-webkit-scrollbar{display:none;width:0;height:0}

/* The first header row shares one glass capsule; filter chips stay separate. */
.app-header{position:sticky;top:0;z-index:20;max-width:430px;margin:0 auto;background:transparent}
.app-header .topbar{position:relative;top:auto;padding-left:30px;padding-right:30px;isolation:isolate;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.app-header .topbar:before{content:"";position:absolute;inset:6px 18px;z-index:-1;border-radius:32px;background:linear-gradient(145deg,#ffffffd9,#e9edf4b3);box-shadow:0 2px 9px #2438580d;backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter)}
.app-header .active-filter-bar{position:relative;top:auto;margin:0;padding:0 18px 10px;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0 0 20px 20px}
body:not(:has(#search-page:not([hidden]))) .app-header .active-filter-bar{display:none}
.app-header .brand{position:relative;isolation:isolate}
.app-header .brand:before{content:none}
.app-header .header-actions .mobile-save,.app-header .header-actions .sort-button,.app-header .filter-button{background:var(--control-surface);box-shadow:0 1px 5px #24385810;backdrop-filter:none;-webkit-backdrop-filter:none}
.app-header .active-filters button{background:linear-gradient(145deg,#f2f4f8d9,#e6ebf3b3);color:#253859;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);box-shadow:0 2px 6px #24385808}
.app-header .active-filters button .icon{color:inherit}
/* Luminance masks remove the white raster backgrounds without changing the marks. */
.brand-symbol,.brand-wordmark{background:var(--navy);mask-image:var(--brand-image);mask-mode:luminance;mask-repeat:no-repeat;mask-size:var(--brand-image-width) auto;mask-position:var(--brand-image-left) var(--brand-image-top)}
.brand-symbol{background:#12315d;--brand-image:url('assets/rentcore-logo-new-mask.svg');--brand-image-width:56.82px;--brand-image-left:-13.28px;--brand-image-top:-8.38px}
.brand-wordmark{background:#253859;--brand-image:url('assets/rentcore-logo-mask.svg');--brand-image-width:142.18px;--brand-image-left:-14.51px;--brand-image-top:-107.03px}
.brand-symbol img,.brand-wordmark img{visibility:hidden}
@media(max-width:360px){.brand-symbol{--brand-image-width:53.03px;--brand-image-left:-12.39px;--brand-image-top:-7.82px}.brand-wordmark{--brand-image-width:119.31px;--brand-image-left:-12.18px;--brand-image-top:-89.82px}}

/* Glass panels share the same horizontal edges as their screen content. */
.bottom-nav{width:calc(100% - 36px);max-width:394px}
.detail-top{margin:0 18px;padding:12px 0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.detail-actions{margin:0 18px 8px;padding:10px 0 calc(10px + var(--safe-bottom));background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.detail-actions .card-contact{background:linear-gradient(145deg,#e4e9f1e6,#d8e0ebbf);box-shadow:0 2px 8px #24385814;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}
@media(max-width:360px){.app-header .topbar{gap:8px}.app-header .header-actions{gap:6px}.app-header .header-actions .mobile-save,.app-header .header-actions .sort-button,.app-header .filter-button{width:36px;height:36px}}

/* Contact buttons float over scrolling content without a footer surface. */
#detail-dialog{overflow:hidden}
#detail-content{position:relative;height:100%;min-height:0}
.detail-scroll{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.detail-scroll>.gallery{margin:0 18px;border-radius:16px;overflow:hidden;flex-shrink:0}
.detail-actions{position:absolute;left:18px;right:18px;bottom:calc(8px + var(--safe-bottom));margin:0;padding:10px 0;pointer-events:none}
.detail-contact-row{pointer-events:auto}
.detail-body{padding-bottom:calc(84px + var(--safe-bottom))}
.detail-top .icon-button,.detail-top .favorite-button{background:linear-gradient(145deg,#e4e9f1e6,#d8e0ebbf);box-shadow:0 2px 8px #24385820}
.detail-scroll>.detail-top{position:relative;top:auto;flex:0 0 56px}
.detail-scroll>.detail-top{justify-content:space-between}

#reset-filters,[data-multiselect-reset]{color:var(--navy)}

#save-dialog .sheet-header .icon-button{background:transparent;border:0;box-shadow:none;color:var(--navy)}

/* Room options are compact project-style tiles inside the multi-select overlay. */
#rooms-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#rooms-options label{height:62px;min-height:62px;padding:8px;justify-content:center;text-align:center;border-radius:11px;background:#f2f4f8;color:var(--navy)}
#rooms-options .room-option-text{align-items:center;justify-content:center}
#rooms-options .room-option-text b{font-size:15px;font-weight:600;line-height:20px}
#rooms-options .room-option-text small{color:var(--muted);opacity:1}
#rooms-options label>.icon{display:none}
#rooms-options label:has(input:checked){background:var(--tint);color:var(--blue);box-shadow:inset 0 0 0 1px #c1c9fb}
#rooms-options label:has(input:checked) small{color:var(--blue)}
/* Publication calendar is always visible in the filter form. */
#publication-picker.publication-inline{position:static;display:flex;flex-direction:column;width:100%;max-height:none;margin:0;border:0;border-radius:13px;box-shadow:none;background:#f7f8fb;overflow:hidden}
.publication-inline .publication-content{background:transparent;overflow:visible}
.publication-inline .calendar-header{margin-top:0}
.publication-inline .calendar-header button{background:#e9edf4;color:var(--navy)}
.publication-inline .date-presets{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.publication-inline .date-presets button{background:#e9edf4;color:var(--navy)}
.publication-inline .date-presets button[aria-pressed=true]{background:var(--blue);color:#fff}

.saved-search-actions [data-action="save-search"]:focus,.saved-search-actions [data-action="save-search"]:focus-visible{outline:none}

/* Compact, always-visible room selection. */
.rooms-inline .multiselect-tools{padding:0 0 8px}
.rooms-inline .multiselect-tools button{padding:4px 0}
.rooms-inline #rooms-options{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;overflow:visible}
.rooms-inline #rooms-options label{height:44px;min-height:44px;padding:4px 2px;border-radius:9px}
.rooms-inline #rooms-options .room-option-text{gap:0;white-space:nowrap}
.rooms-inline #rooms-options .room-option-text b{font-size:14px;line-height:18px}
.rooms-inline #rooms-options .room-option-text small{font-size:10px;line-height:12px}
@media(max-width:360px){.rooms-inline #rooms-options{gap:4px}.rooms-inline #rooms-options .room-option-text small{font-size:9px}}

/* Project validation messages replace native browser bubbles. */
.validation-hint{position:fixed;inset:auto;margin:0;padding:11px 14px;border:1px solid var(--navy);border-radius:13px;background:#fff;color:var(--navy);font-size:13px;line-height:19px;box-shadow:0 4px 16px #24385816;pointer-events:none}
.validation-hint::backdrop{background:transparent;pointer-events:none}
.has-validation-error{outline:none!important;box-shadow:inset 0 0 0 1.5px var(--navy)!important;border-radius:11px}
.has-field-prompt::placeholder{color:var(--navy)!important}
.choice-trigger.has-field-prompt,.realtor-rating legend.has-field-prompt{color:var(--navy)}
input.has-field-prompt,textarea.has-field-prompt,.choice-trigger[aria-invalid=true]{outline:none;box-shadow:inset 0 0 0 1.5px var(--navy);border-radius:11px}

/* Contacts follow the listing content instead of floating over it. */
.detail-body .detail-actions{position:static;inset:auto;margin:12px 0 0;padding:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:auto}
.detail-body .detail-actions .card-contact{height:48px;border:0;border-radius:12px;background:#f7f8fb;color:var(--navy);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.detail-body .detail-actions .card-contact:disabled{color:#a9b3c2;opacity:.65}
.detail-body{padding-bottom:calc(18px + var(--safe-bottom))}


/* Saved-search delete control shares the photo heart's inset and size. */
.search-card{position:relative}
.search-card-header{padding-right:38px;min-height:32px}
.search-card .search-card-delete{position:absolute;top:var(--photo-control-inset);right:var(--photo-control-inset);width:var(--photo-control-size);height:var(--photo-control-size)}

/* Saved searches show named filter groups in a consistent order. */
.saved-search-groups{display:grid;gap:12px;margin-bottom:16px;min-width:0}
.saved-search-group{min-width:0}
.saved-search-label{margin-bottom:6px;font-size:12px;font-weight:600;line-height:16px;color:var(--muted)}
.saved-search-row{display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;max-width:100%;scrollbar-width:none;overscroll-behavior-x:contain}
.saved-search-row .saved-search-chip{flex:0 0 auto;max-width:none;white-space:nowrap;overflow-wrap:normal}
.saved-search-note{display:block;margin-top:5px;font-size:12px;line-height:17px;color:var(--muted)}

/* Center room counts in each tile, with euro captions beneath the tile. */
.rooms-inline #rooms-options .room-option-text{display:flex;align-items:center;justify-content:center;gap:0}
.rooms-inline #rooms-options .room-option-text small{position:absolute;left:0;right:0;top:calc(100% + 4px);bottom:auto;line-height:12px;text-align:center}
.rooms-inline #rooms-options{padding-bottom:16px}

.detail-body .detail-actions .card-contact:not(:disabled) .icon{color:var(--blue)}

/* Filter sheet fills every phone viewport, including widths above 430px. */
@media(max-width:600px){#filters-dialog,#save-dialog{width:100vw;max-width:100vw}}

/* Both detail navigation controls stay above the scrolling listing. */
#detail-content>.detail-top{position:absolute;top:0;left:0;right:0;z-index:7;justify-content:space-between;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none}
#detail-content>.detail-top button{pointer-events:auto}
.detail-scroll:before{content:"";flex:0 0 56px}

/* Personal empty states share the same height and text/action slots. */
#favorites:has(> .empty),#saved-searches:has(> .empty){min-height:calc(100dvh - var(--header-height) - 105px - var(--safe-bottom));align-items:center}
#favorites>.empty,#saved-searches>.empty{padding:32px 12px}
#favorites>.empty .big-icon,#saved-searches>.empty .big-icon{margin-bottom:10px}
#favorites>.empty h2,#saved-searches>.empty h2{display:flex;align-items:center;justify-content:center;min-height:2.5em;line-height:1.25;font-size:22px;margin:0 0 6px}
#favorites>.empty p,#saved-searches>.empty p{display:flex;align-items:center;justify-content:center;min-height:1.65em;margin:0 auto 16px}
#favorites>.empty .primary,#saved-searches>.empty .primary{width:auto;max-width:100%}
#searches-page:has(#saved-searches>.empty)>.saved-search-actions{display:none}
#saved-searches>.empty [data-action="save-search"]:focus,#saved-searches>.empty [data-action="save-search"]:focus-visible{outline:none}
@media(max-width:340px){#favorites>.empty h2,#saved-searches>.empty h2{font-size:20px}}

/* Detail contact actions stay available above scrolling content. */
#detail-content>.detail-actions{position:absolute;left:18px;right:18px;bottom:calc(8px + var(--safe-bottom));z-index:8;margin:0;padding:10px 0;border:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none}
#detail-content>.detail-actions .detail-contact-row{pointer-events:auto}
#detail-content>.detail-actions .card-contact{height:48px;border:0;border-radius:12px;background:linear-gradient(145deg,#e4e9f1e6,#d8e0ebbf);color:var(--blue);box-shadow:0 2px 8px #24385814;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}
#detail-content>.detail-actions .card-contact:disabled{color:#a9b3c2;opacity:.65}
.detail-body{padding-bottom:calc(86px + var(--safe-bottom))}

.multiselect-tools [data-multiselect-all]{color:var(--blue)}
.multiselect-tools [data-multiselect-reset]{color:var(--navy)}

/* Editable publication dates share the calendar panel. */
.publication-range{margin:12px 12px 0;gap:10px}
#filters-form .publication-range label{min-width:0;background:#fff;padding:0 10px}
#filters-form .publication-range input{min-width:0;padding:12px 6px;font-size:13px;line-height:20px}
.publication-range input::placeholder{color:var(--placeholder)}

.publication-heading{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px}
.publication-heading button{padding:4px 0;font-size:12px;line-height:18px;font-weight:400;color:var(--navy)}

.rooms-heading{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px}
.rooms-heading .multiselect-tools{padding:0;gap:12px}
.rooms-heading .multiselect-tools button{padding:4px 0;font-weight:400;white-space:nowrap}

.search-card-actions{display:grid;grid-template-columns:1.35fr 1fr;gap:8px}
.search-card-actions button{min-width:0;min-height:44px;padding:10px 8px;border-radius:11px;font-size:12px;line-height:18px}
.search-card-actions .search-card-open{background:#f2f4f8;border:0;color:var(--navy)}
.search-card-subscribe[aria-pressed=true]{background:var(--tint);color:var(--blue)}


/* Full-screen photo viewer with independent pinch, pan and paging. */
.gallery-track .detail-photo{display:block;flex:0 0 100%;width:100%;height:100%;padding:0;border:0;background:transparent;scroll-snap-align:center;scroll-snap-stop:always;cursor:zoom-in}
.gallery-track .detail-photo img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
#photo-viewer{position:fixed;inset:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;padding:0;border:0;border-radius:0;background:#101a2b;color:#fff;overflow:hidden;transform:none;animation:none}
#photo-viewer::backdrop{background:#101a2b}
.photo-viewer-toolbar{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));left:18px;right:18px;display:flex;align-items:center;justify-content:space-between;z-index:2}
.photo-viewer-count{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.photo-viewer-close,.photo-viewer-controls button{display:flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 14px;border:0;border-radius:21px;background:#ffffff24;backdrop-filter:blur(16px);color:#fff}
.photo-viewer-close{width:42px;padding:0}
.photo-viewer-stage{position:absolute;top:calc(66px + env(safe-area-inset-top,0px));bottom:calc(76px + env(safe-area-inset-bottom,0px));left:0;right:0;display:flex;align-items:center;justify-content:center;touch-action:none;overflow:hidden;user-select:none;cursor:zoom-in}
.photo-viewer-stage.is-zoomed{cursor:grab}
.photo-viewer-stage.is-zoomed:active{cursor:grabbing}
.photo-viewer-stage img{width:100%;height:100%;object-fit:contain;transform-origin:center;will-change:transform;user-select:none;-webkit-user-drag:none}
.photo-viewer-controls{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:18px;right:18px;display:flex;justify-content:center;align-items:center;gap:16px;z-index:2}
.photo-viewer-controls button{font-size:13px;line-height:18px}
.photo-viewer-controls button:disabled{opacity:.3}
.photo-viewer-controls [data-viewer-step="-1"] .icon{transform:rotate(180deg)}

.photo-viewer-rail{position:absolute;inset:0;will-change:transform}
.photo-viewer-page{position:absolute;top:0;bottom:0;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:center}
.photo-viewer-page img{flex:0 0 100%;touch-action:none}
.photo-viewer-stage.is-settling .photo-viewer-rail{transition:transform .24s cubic-bezier(.22,.75,.25,1)}
.photo-viewer-stage.is-settling .photo-viewer-page img{transition:transform .2s cubic-bezier(.22,.75,.25,1)}
@media(prefers-reduced-motion:reduce){.photo-viewer-stage.is-settling .photo-viewer-rail,.photo-viewer-stage.is-settling .photo-viewer-page img{transition:none}}

#filters-form .two-inputs label:has(input[name="minFloor"]:disabled){background:#e9edf4}
#filters-form input[name="minFloor"]:disabled{color:var(--muted);-webkit-text-fill-color:var(--muted);opacity:1;cursor:default}

/* Telegram fullscreen keeps app controls clear of system and Telegram controls. */
html.telegram-app{--app-safe-top:calc(var(--tg-safe-area-inset-top,0px) + var(--tg-content-safe-area-inset-top,0px));--safe-bottom:max(env(safe-area-inset-bottom,0px),calc(var(--tg-safe-area-inset-bottom,0px) + var(--tg-content-safe-area-inset-bottom,0px)))}
.telegram-app .app-header{padding-top:var(--app-safe-top)}
.telegram-app .app-header .topbar{padding-top:0}
.telegram-app .realtor-segment-bar{top:calc(var(--header-height) + var(--app-safe-top))}
.telegram-app .sort-menu{top:calc(62px + var(--app-safe-top))}
.telegram-app #detail-content>.detail-top{top:var(--app-safe-top)}
.telegram-app .detail-scroll:before{flex-basis:calc(56px + var(--app-safe-top))}
.telegram-app #filters-dialog,.telegram-app #filters-form,.telegram-app #save-dialog{max-height:calc(100dvh - var(--app-safe-top))}
.telegram-app .photo-viewer-toolbar{top:calc(12px + var(--app-safe-top))}
.telegram-app .photo-viewer-stage{top:calc(66px + var(--app-safe-top));bottom:calc(76px + var(--safe-bottom))}
.telegram-app .photo-viewer-controls{bottom:calc(16px + var(--safe-bottom))}
