/* PropertyEntity */
.root { display: flex; flex-direction: column; height: 100%; overflow-y: auto; }
.backBtn { align-self: flex-start; background: none; border: none; color: var(--color-text-tertiary); font-size: var(--text-sm); cursor: pointer; padding: var(--space-4) var(--space-6) 0; font-family: var(--font-sans); transition: color var(--duration-fast) var(--ease-standard); }
.backBtn:hover { color: var(--color-text-primary); }
/* 3D hero */
.hero3d { position: relative; height: 360px; margin: var(--space-3) var(--space-6) 0; border-radius: var(--radius-2xl); overflow: hidden; background: var(--color-base-raised); }
.canvas { width: 100% !important; height: 100% !important; }
/* Overlay */
.heroOverlay { position: absolute; bottom: 0; left: 0; right: 0; padding: var(--space-5) var(--space-6); border-radius: 0 0 var(--radius-2xl) var(--radius-2xl); }
.propName { font-size: var(--text-2xl); font-weight: var(--font-bold); color: var(--color-text-primary); letter-spacing: var(--tracking-tight); margin: 0 0 var(--space-1); }
.propMeta { font-size: var(--text-sm); color: var(--color-text-secondary); margin: 0; }
/* Action bar */
.actionBar { display: flex; gap: var(--space-3); padding: var(--space-4) var(--space-6); }
.reimagineActive { background: color-mix(in srgb, var(--color-violet) 80%, white) !important; }
/* Reimagine slot */
.reimagineSlot { padding: 0 var(--space-6); }
.reimaginePad { padding: var(--space-5); }
/* Tabs */
.tabs { display: flex; gap: 0; border-bottom: var(--glass-border); margin: 0 var(--space-6); }
.tab { position: relative; background: none; border: none; padding: var(--space-3) var(--space-5); font-family: var(--font-sans); font-size: var(--text-sm); font-weight: var(--font-medium); color: var(--color-text-tertiary); cursor: pointer; transition: color var(--duration-fast) var(--ease-standard); }
.tabActive { color: var(--color-text-primary); }
.tabUnderline { position: absolute; bottom: -1px; left: 0; right: 0; height: 2px; background: var(--color-violet); border-radius: 1px; }
/* Content */
.overview { padding: var(--space-5) var(--space-6); display: flex; flex-direction: column; gap: var(--space-4); }
.description { font-size: var(--text-base); color: var(--color-text-secondary); line-height: var(--leading-relaxed); margin: 0; }
.amenities { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.amenityChip { font-size: var(--text-xs); padding: var(--space-2) var(--space-3); border-radius: var(--radius-full); color: var(--color-text-secondary); }
/* Media */
.mediaGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: var(--space-3); padding: var(--space-5) var(--space-6); }
.mediaImg { width: 100%; height: 140px; object-fit: cover; border-radius: var(--radius-lg); }
