:root{--primary-color: #1890ff;--secondary-color: #52c41a;--text-color: #333;--bg-color: #fff;--border-color: #e8e8e8;--font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);color:var(--text-color);background-color:var(--bg-color);line-height:1.6}.container{max-width:1200px;margin:0 auto;padding:0 20px}.header{background:#fff;border-bottom:1px solid var(--border-color);padding:1rem 0;position:sticky;top:0;z-index:100}.header-content{display:flex;justify-content:space-between;align-items:center}.logo{font-size:1.5rem;font-weight:700;color:var(--primary-color);text-decoration:none}.nav{display:flex;gap:2rem}.nav a{color:var(--text-color);text-decoration:none;transition:color .3s}.nav a:hover{color:var(--primary-color)}.footer{background:#f5f5f5;padding:2rem 0;margin-top:4rem;text-align:center;color:#666}.btn{display:inline-block;padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;text-decoration:none;font-size:1rem;transition:all .3s}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:#40a9ff}.btn-secondary{background:var(--secondary-color);color:#fff}.btn-secondary:hover{background:#73d13d}.btn:disabled{opacity:.6;cursor:not-allowed}.loading,.error{text-align:center;padding:3rem;font-size:1.2rem}.error{color:#ff4d4f}.error-message{background:#fff2f0;border:1px solid #ffccc7;padding:1rem;border-radius:4px;margin:1rem 0;color:#cf1322}.hero{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;padding:4rem 0;text-align:center}.hero h1{font-size:3rem;margin-bottom:1rem}.hero p{font-size:1.25rem;margin-bottom:2rem}.featured-properties{padding:4rem 0}.featured-properties h2{margin-bottom:2rem;text-align:center}.text-center{text-align:center;margin-top:2rem}.properties-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;margin-bottom:2rem}.property-card{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;transition:transform .3s,box-shadow .3s;background:#fff}.property-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000001a}.property-card a{text-decoration:none;color:inherit}.property-image{width:100%;height:200px;overflow:hidden;background:#f0f0f0}.property-image img{width:100%;height:100%;object-fit:cover}.property-info{padding:1.5rem}.property-info h3{margin-bottom:.5rem;color:var(--text-color)}.property-address,.property-city{color:#666;font-size:.9rem;margin:.25rem 0}.property-description{margin-top:.5rem;color:#666;font-size:.9rem}.properties-page h1{margin:2rem 0}.properties-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2rem}.properties-list{min-height:400px}.map-container{border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.map-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;background:#f5f5f5;color:#666}.map-note{font-size:.85rem;margin-top:.5rem}.property-detail-page{padding:2rem 0}.back-link{display:inline-block;margin-bottom:1rem;color:var(--primary-color);text-decoration:none}.back-link:hover{text-decoration:underline}.property-hero-image{width:100%;height:400px;margin-bottom:2rem;border-radius:8px;overflow:hidden}.property-hero-image img{width:100%;height:100%;object-fit:cover}.property-detail-content{display:grid;grid-template-columns:2fr 1fr;gap:2rem}.property-main h1{margin-bottom:1rem}.property-location,.property-city{color:#666;margin:.5rem 0}.property-description{margin:2rem 0;line-height:1.8}.rental-units{margin-top:2rem}.rental-units ul{list-style:none;padding:0}.rental-units li{padding:.5rem 0;border-bottom:1px solid var(--border-color)}.rental-units-selection{margin:3rem 0;padding:2rem 0;border-top:2px solid var(--border-color)}.rental-units-selection h2{margin-bottom:.5rem}.rental-units-required-note{color:#666;margin-bottom:1.5rem;font-style:italic}.rental-units-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-top:1rem}.rental-unit-card{border:2px solid var(--border-color);border-radius:8px;overflow:hidden;transition:all .3s;background:#fff;cursor:pointer;position:relative}.rental-unit-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000001a;border-color:var(--primary-color)}.rental-unit-card.selected{border-color:var(--primary-color);box-shadow:0 4px 12px #1890ff33}.rental-unit-image{width:100%;height:200px;overflow:hidden;background:#f0f0f0}.rental-unit-image img{width:100%;height:100%;object-fit:cover}.rental-unit-info{padding:1rem}.rental-unit-info h3{margin:0 0 .5rem;font-size:1.1rem;color:var(--text-color)}.rental-unit-number{margin:.25rem 0;color:#666;font-size:.9rem}.rental-unit-floor{margin:.25rem 0;color:#666;font-size:.85rem}.rental-unit-selected-indicator{position:absolute;top:.5rem;right:.5rem;background:var(--primary-color);color:#fff;padding:.25rem .75rem;border-radius:4px;font-size:.85rem;font-weight:500}.booking-widget-message{padding:1.5rem;background:#f0f7ff;border:1px solid #91d5ff;border-radius:4px;color:#0050b3;text-align:center}.property-booking-widget{background:#f9f9f9;padding:2rem;border-radius:8px;border:1px solid var(--border-color);position:sticky;top:100px;height:fit-content}.property-booking-widget h2{margin-bottom:1.5rem}.booking-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:.5rem;font-weight:500}.form-group input,.form-group textarea{padding:.75rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;font-family:inherit}.availability-status{padding:1rem;border-radius:4px;margin:1rem 0}.availability-status .available{color:var(--secondary-color);font-weight:700}.availability-status .unavailable{color:#ff4d4f;font-weight:700}.pricing-info{margin:1rem 0}.total-price{font-size:1.5rem;font-weight:700;color:var(--primary-color)}.booking-page{padding:2rem 0}.booking-page h1{margin-bottom:.5rem}.booking-form{max-width:800px;margin:2rem auto;background:#fff;padding:2rem;border-radius:8px;border:1px solid var(--border-color)}.form-section{margin-bottom:2rem}.form-section h2{margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-color)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.guest-portal-page{padding:2rem 0}.booking-card{background:#fff;border:1px solid var(--border-color);border-radius:8px;padding:2rem;margin-bottom:2rem}.booking-card.past{opacity:.8}.booking-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.booking-status{padding:.5rem 1rem;border-radius:4px;font-size:.85rem;font-weight:700}.status-confirmed{background:#d4edda;color:#155724}.status-pending{background:#fff3cd;color:#856404}.status-cancelled{background:#f8d7da;color:#721c24}.booking-image{width:100%;height:200px;margin:1rem 0;border-radius:4px;overflow:hidden}.booking-image img{width:100%;height:100%;object-fit:cover}.booking-details{margin:1rem 0}.detail-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--border-color)}.guest-info{margin-top:1.5rem;padding-top:1.5rem;border-top:2px solid var(--border-color)}.guest-info h4{margin-bottom:1rem}.past-bookings h2{margin-top:3rem;margin-bottom:1.5rem}.bookings-list{display:grid;gap:1rem}.custom-page{padding:2rem 0}.custom-page h1{margin-bottom:2rem}.custom-page img{max-width:100%;height:auto;margin:1rem 0}@media (max-width: 768px){.properties-layout,.property-detail-content{grid-template-columns:1fr}.property-booking-widget{position:static}.form-row{grid-template-columns:1fr}.nav{flex-direction:column;gap:.5rem}.hero h1{font-size:2rem}}
