/* Module Rao vặt & Bản đồ nhà trọ */
.rv-page-title { font-size: 22px; margin: 0 0 12px; line-height: 1.35; }
.rv-page-title small { font-size: 60%; }
.rv-heading { font-size: 18px; margin: 22px 0 12px; padding-bottom: 6px; border-bottom: 2px solid #e5e9ef; }
.rv-heading a { font-weight: normal; }

/* Tìm kiếm nhanh */
.rv-hero { background: linear-gradient(135deg, #e8f4fd, #f4fbf4); border: 0; }
.rv-search-box .btn { white-space: nowrap; }

/* Ô giới thiệu bản đồ nhà trọ */
.rv-map-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 14px 16px; margin-bottom: 18px; border-radius: 6px; background: #2e7d32; color: #fff; }
.rv-map-banner h2 { font-size: 18px; margin: 0 0 4px; color: #fff; }
.rv-map-banner p { margin: 0; opacity: .92; }
.rv-map-banner-icon { font-size: 34px; line-height: 1; }
.rv-map-banner-text { flex: 1 1 260px; }
.rv-map-banner-btns .btn { margin: 2px 0; }
.rv-map-banner .btn-success { background: #fff; color: #2e7d32; border-color: #fff; font-weight: bold; }
.rv-map-banner .btn-default, .rv-map-banner .btn-default:hover, .rv-map-banner .btn-default:focus { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .8); }

/* Danh mục */
.rv-cats > div { margin-bottom: 12px; }
.rv-cat { display: block; height: 100%; min-height: 104px; padding: 12px 8px; text-align: center; border: 1px solid #e3e7ec; border-radius: 6px; background: #fff; color: #263238; transition: box-shadow .15s, border-color .15s; }
.rv-cat:hover, .rv-cat:focus { text-decoration: none; border-color: #90caf9; box-shadow: 0 2px 8px rgba(0, 0, 0, .08); }
.rv-cat .fa { display: block; font-size: 28px; color: #1976d2; margin-bottom: 6px; }
.rv-cat-house { border-color: #a5d6a7; background: #f1f8e9; }
.rv-cat-house .fa { color: #2e7d32; }
.rv-cat-title { display: block; font-weight: bold; line-height: 1.3; }
.rv-cat-count { display: block; font-size: 12px; color: #78909c; }
.rv-subcats { margin-bottom: 10px; }
.rv-subcats .btn { margin: 0 4px 6px 0; }
.rv-subcats .btn.active { background: #1976d2; color: #fff; border-color: #1976d2; }
.rv-sort { margin-bottom: 10px; color: #78909c; }
.rv-sort a { margin-left: 8px; }
.rv-sort a.active { font-weight: bold; color: #263238; }

/* Danh sách tin */
.rv-item { display: flex; gap: 12px; padding: 10px 0; border-bottom: 1px solid #eef1f4; }
.rv-item-thumb { flex: 0 0 140px; height: 105px; border-radius: 4px; overflow: hidden; background: #f3f5f7; display: block; }
.rv-item-thumb img { width: 100%; height: 100%; object-fit: cover; }
.rv-noimg { display: flex; align-items: center; justify-content: center; height: 100%; color: #b0bec5; font-size: 30px; }
.rv-item-body { flex: 1 1 auto; min-width: 0; }
.rv-item-title { font-size: 16px; margin: 0 0 4px; line-height: 1.35; }
.rv-item-title a { color: #1a237e; }
.rv-item-price { color: #d84315; font-weight: bold; font-size: 15px; }
.rv-item-meta { margin: 4px 0 0; color: #78909c; font-size: 13px; }
.rv-item-meta > li { padding-left: 0; padding-right: 10px; }
.rv-item-extra { font-size: 13px; color: #2e7d32; }
.rv-mylist-actions { margin-top: 6px; }
.rv-mylist-actions .btn { margin: 0 4px 4px 0; }
@media (max-width: 480px) {
    .rv-item-thumb { flex-basis: 96px; height: 80px; }
    .rv-item-title { font-size: 15px; }
}

/* Chi tiết */
.rv-detail-meta > li { padding-right: 10px; }
.rv-price-big { font-size: 24px; font-weight: bold; color: #d84315; margin: 10px 0; }
.rv-location { font-size: 15px; }
.rv-description { white-space: normal; line-height: 1.7; word-wrap: break-word; }
.rv-gallery-main { position: relative; background: #111; border-radius: 6px; overflow: hidden; text-align: center; }
.rv-gallery-slide { display: none; }
.rv-gallery-slide.active { display: block; }
.rv-gallery-slide img { max-width: 100%; max-height: 460px; margin: 0 auto; }
.rv-gallery-thumbs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.rv-gallery-thumb { padding: 0; border: 2px solid transparent; background: none; width: 72px; height: 54px; overflow: hidden; border-radius: 3px; }
.rv-gallery-thumb.active { border-color: #1976d2; }
.rv-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.rv-house-table th { width: 38%; color: #546e7a; font-weight: normal; }
.rv-amenities .label { display: inline-block; margin: 3px 2px; font-size: 12px; font-weight: normal; padding: 4px 7px; }
.rv-detail-map { height: 300px; border-radius: 6px; border: 1px solid #dfe3e8; }
.rv-qr-svg svg { width: 160px; height: 160px; max-width: 100%; }
.rv-actions .btn { margin-bottom: 8px; }
.rv-disclaimer { line-height: 1.5; }

/* Biểu mẫu */
.rv-picker-map { height: 300px; border-radius: 6px; border: 1px solid #dfe3e8; cursor: crosshair; }
.rv-post-images { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.rv-post-image { width: 120px; font-weight: normal; font-size: 12px; }
.rv-post-image img { width: 120px; height: 90px; object-fit: cover; border-radius: 3px; display: block; }
.rv-survey-form legend { font-size: 15px; font-weight: bold; border: 0; margin-bottom: 4px; }

/* Bản đồ số nhà trọ */
.rv-bigmap { height: 72vh; min-height: 420px; border-radius: 6px; border: 1px solid #dfe3e8; }
.rv-map-list { max-height: 380px; overflow-y: auto; }
.rv-mf-amenities { max-height: 180px; overflow-y: auto; }
.rv-mf-amenities .checkbox { margin: 2px 0; }
.rv-school-icon { background: #c62828; color: #fff; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, .4); text-align: center; line-height: 26px; font-size: 15px; }
.rv-popup img { width: 100%; max-height: 130px; object-fit: cover; border-radius: 3px; margin-bottom: 6px; }
.rv-popup-price { color: #d84315; font-weight: bold; }
.rv-locate { display: block; width: 34px; height: 34px; line-height: 34px; text-align: center; background: #fff; color: #333; font-size: 17px; }
@media (max-width: 991px) {
    .rv-bigmap { height: 60vh; min-height: 360px; }
}
