:root{--mib-blue:#0a58ca;--mib-green:#149954;--mib-yellow:#ffc107;--mib-dark:#13233a}body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:#182235;background:#fff}.hero{background:linear-gradient(135deg,rgba(10,88,202,.96),rgba(20,153,84,.92)),url('../img/property-placeholder.svg');background-size:cover;background-position:center;color:#fff}.hero .search-panel{background:#fff;color:#182235;border-radius:1.5rem;box-shadow:0 20px 55px rgba(0,0,0,.18)}.navbar-brand span{letter-spacing:-.02em}.btn-primary{background:var(--mib-blue);border-color:var(--mib-blue)}.btn-success{background:var(--mib-green);border-color:var(--mib-green)}.rounded-4{border-radius:1rem!important}.property-card{border-radius:1rem;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.property-card:hover{transform:translateY(-3px);box-shadow:0 1rem 2.2rem rgba(13,24,45,.13)!important}.property-img-wrap{display:block;position:relative;background:#f2f5f9;overflow:hidden}.property-img-wrap img{height:220px;object-fit:cover;width:100%;transition:transform .22s ease}.property-card:hover img{transform:scale(1.03)}.property-purpose{position:absolute;left:1rem;top:1rem}.property-description{color:#5c6878}.price{font-size:1.1rem;color:var(--mib-green)}.ad-box{border:1px dashed #b8c1cf;border-radius:1rem;min-height:96px;display:flex;align-items:center;justify-content:center;background:#f8fafc;color:#7c8898;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.ad-sidebar{min-height:250px}.footer-link{display:block;color:rgba(255,255,255,.72);text-decoration:none;margin:.35rem 0}.footer-link:hover{color:#fff}.map-page{height:calc(100vh - 74px);min-height:680px}.map-panel{height:100%;overflow:auto;background:#fff;border-right:1px solid #e5e9f0}.map-canvas{height:100%;min-height:520px}.leaflet-container{font-family:inherit}.mini-map,#propertyMap,#addressPickerMap{height:360px;border-radius:1rem;border:1px solid #dce3ec;overflow:hidden;background:#eef3f7}.dashboard-stat{border-radius:1rem;background:#fff}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}.photo-admin-card{border:1px solid #e0e6ef;border-radius:1rem;overflow:hidden;background:#fff}.photo-admin-card img{height:130px;width:100%;object-fit:cover;background:#f4f7fb}.photo-actions{padding:.75rem}.main-photo-badge{position:absolute;left:.5rem;top:.5rem}.gallery-main img{height:480px;width:100%;object-fit:cover;border-radius:1rem;background:#f3f6fa}.thumb-gallery img{height:92px;width:120px;object-fit:cover;border-radius:.75rem;cursor:pointer;border:2px solid transparent}.thumb-gallery img.active{border-color:var(--mib-blue)}.store-logo{height:96px;width:96px;border-radius:1rem;object-fit:contain;background:#fff;border:1px solid #e5e9f0}.required:after{content:' *';color:#dc3545}.cep-status{font-size:.85rem}.form-help{font-size:.85rem;color:#6c757d}.chat-box{height:520px;overflow:auto;background:#f7f9fc;border-radius:1rem;padding:1rem}.chat-bubble{max-width:75%;padding:.85rem 1rem;border-radius:1rem;margin-bottom:.75rem}.chat-bubble.me{background:#0d6efd;color:#fff;margin-left:auto}.chat-bubble.other{background:#fff;border:1px solid #e1e7ef}.table>:not(caption)>*>*{vertical-align:middle}@media(max-width:991.98px){.map-page{height:auto}.map-panel{height:auto}.map-canvas{height:520px}.gallery-main img{height:310px}}


/* Álbum de fotos e modal de imagem */
.gallery-album{background:#fff;border:1px solid #e5e9f0;border-radius:1.25rem;padding:1rem;box-shadow:0 .75rem 1.8rem rgba(13,24,45,.08)}
.gallery-main{position:relative;display:block;width:100%;border:0;padding:0;background:#f3f6fa;border-radius:1rem;overflow:hidden;cursor:zoom-in;aspect-ratio:16/10;min-height:360px}
.gallery-main img{display:block;width:100%;height:100%;object-fit:cover;border-radius:0;background:#f3f6fa}
.gallery-zoom-hint{position:absolute;right:1rem;bottom:1rem;background:rgba(0,0,0,.68);color:#fff;border-radius:999px;padding:.4rem .75rem;font-size:.82rem;backdrop-filter:blur(6px)}
.thumb-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:.75rem;margin-top:1rem}
.gallery-thumb{height:88px;border:2px solid transparent;border-radius:.85rem;padding:0;background:#f3f6fa;overflow:hidden;cursor:pointer;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}
.gallery-thumb:hover{transform:translateY(-1px);box-shadow:0 .4rem 1rem rgba(13,24,45,.12)}
.gallery-thumb.active{border-color:var(--mib-blue)}
.gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.image-preview-modal-img{display:block;width:100%;max-height:82vh;object-fit:contain;background:#111}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:1rem}
.photo-admin-card{border:1px solid #e0e6ef;border-radius:1rem;overflow:hidden;background:#fff;box-shadow:0 .35rem 1rem rgba(13,24,45,.06)}
.photo-admin-card .photo-open-btn{display:block;width:100%;border:0;padding:0;background:#f4f7fb;cursor:zoom-in;position:relative}
.photo-admin-card img{height:124px;width:100%;object-fit:cover;background:#f4f7fb;display:block}
.photo-admin-card .photo-open-btn:after{content:'Ampliar';position:absolute;right:.5rem;bottom:.5rem;background:rgba(0,0,0,.64);color:#fff;border-radius:999px;padding:.25rem .55rem;font-size:.72rem;opacity:0;transition:opacity .15s ease}
.photo-admin-card .photo-open-btn:hover:after{opacity:1}
.upload-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.75rem}
.upload-preview-item{position:relative;height:92px;border:1px solid #dce3ec;border-radius:.85rem;padding:0;overflow:hidden;background:#f4f7fb;cursor:zoom-in}
.upload-preview-item img{width:100%;height:100%;object-fit:cover;display:block}
.upload-preview-item span{position:absolute;left:.4rem;right:.4rem;bottom:.4rem;text-align:center;background:rgba(0,0,0,.64);color:#fff;border-radius:999px;font-size:.72rem;padding:.2rem .4rem}
@media(max-width:991.98px){.gallery-main{min-height:260px;aspect-ratio:4/3}.gallery-zoom-hint{font-size:.76rem}.thumb-gallery{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}.gallery-thumb{height:72px}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(125px,1fr))}}
