body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@keyframes estateSlideInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.estate-chat-header{animation:estateSlideInUp .3s cubic-bezier(.4,0,.2,1) forwards}.estate-chat-validator{background:#eef2f7;border:1px solid #d0d7de;border-radius:8px;display:flex;flex-direction:column;gap:6px;margin-bottom:15px;padding:12px 15px}.estate-chat-validator__label{color:#333;display:flex;font-size:13px;font-weight:700;justify-content:space-between}.estate-chat-validator__status--checking{color:#0070f3;font-size:12px}.estate-chat-validator__status--verified{color:#2e7d32;font-size:12px}.estate-chat-validator__input{border-radius:5px;box-sizing:border-box;font-size:14px;padding:10px;width:100%}.estate-chat-validator__input--default{background-color:#fff;border:1px solid #ccc}.estate-chat-validator__input--verified{background-color:#fff;border:1px solid #a5d6a7}.estate-chat-validator__input--error{background-color:#fff;border:1px solid #ef9a9a}.estate-chat-validator__input--disabled{background-color:#f0f0f0;border:1px solid #ccc}.estate-chat-validator__error-msg{color:#d32f2f;font-size:12px;font-weight:700;margin-top:2px}.estate-chat-commute{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.estate-chat-commute__label{color:#333;font-size:13px;font-weight:700}.estate-chat-commute__options-group{display:flex;gap:20px;margin-top:2px}.estate-chat-commute__option{align-items:center;cursor:pointer;display:flex;font-size:14px;gap:8px}.estate-chat-commute__radio{cursor:pointer;transform:scale(1.1)}.estate-chat-commute__warning-box{margin-top:10px}.estate-chat-commute__warning-text{color:#d32f2f;font-size:12px;font-weight:700;margin-top:2px}.estate-chat-feed{background:#f9f9f9;border:1px solid #ccc;border-radius:8px;height:400px;margin-bottom:20px;margin-top:20px;overflow-anchor:auto;overflow-y:auto;padding:15px;scroll-behavior:smooth}.estate-chat-feed__empty-state{color:#888;font-size:14px;line-height:1.5;margin-top:140px;text-align:center}.estate-chat-row{animation:estateSlideInUp .25s cubic-bezier(.4,0,.2,1) forwards;margin-bottom:15px}.estate-chat-row--user{text-align:right}.estate-chat-row--agent{text-align:left}.estate-chat-bubble{border-radius:15px;display:inline-block;line-height:1.6;max-width:75%;padding:12px 18px;text-align:left}.estate-chat-bubble--user{background:#0070f3;color:#fff}.estate-chat-bubble--agent{background:#e4e6eb;color:#000}.estate-chat-bubble--error{border:1px solid #ef9a9a}.estate-chat-bubble__content{margin-top:5px}.estate-chat-bubble__content p{margin:0 0 10px}.estate-chat-bubble__content h3{font-size:16px;font-weight:700;margin:15px 0 5px}.estate-chat-bubble__content ul{margin:5px 0 10px;padding-left:20px}.estate-chat-bubble__content li{margin:4px 0}.estate-chat-error{align-items:center;color:#c62828;display:flex;font-size:13px;gap:10px;justify-content:flex-start;margin-top:6px}.estate-chat-error__retry-btn{background:#ffebee;border:1px solid #ef9a9a;border-radius:4px;color:#c62828;cursor:pointer;font-size:12px;font-weight:700;padding:3px 10px;transition:all .2s ease}.estate-chat-error__retry-btn:hover{background:#c62828;color:#fff}.estate-typing{align-items:center;display:inline-flex;gap:4px;height:16px;padding-top:4px}.estate-typing__dot{animation:estateWave 1.3s ease-in-out infinite;background-color:#888;border-radius:50%;height:6px;width:6px}.estate-typing__dot:nth-child(2){animation-delay:.15s}.estate-typing__dot:nth-child(3){animation-delay:.3s}@keyframes estateWave{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.estate-search-form{flex-direction:column;margin-bottom:20px}.estate-search-form,.estate-search-form__bar{display:flex;gap:10px}.estate-search-form__input{border:1px solid #ccc;border-radius:6px;flex:1 1;font-size:15px;padding:12px}.estate-search-form__submit-btn{border:none;border-radius:6px;color:#fff;font-size:15px;font-weight:700;padding:12px 24px;transition:all .2s ease}.estate-search-form__submit-btn--active{background:#0070f3;cursor:pointer}.estate-search-form__submit-btn--disabled{background:#0070f3;cursor:not-allowed;opacity:.4;pointer-events:none}.estate-search-form__warning-hint{color:#d32f2f;font-size:12px}.estate-recommendations{margin-top:10px}.estate-recommendations__title{color:#333;font-size:16px;font-weight:700;margin:0 0 10px}.estate-recommendations__deck{display:flex;flex-direction:column;gap:15px;margin-top:15px}.estate-card{background:#fff;border:1px solid #e1e4e8;border-radius:8px;box-shadow:0 2px 4px #00000005;padding:15px}.estate-card__header{align-items:flex-start;display:flex;justify-content:space-between}.estate-card__name{color:#0070f3;font-size:16px;margin:0 0 5px}.estate-card__address{color:#666;font-size:13px;margin:0 0 10px}.estate-card__price{color:#28a745;font-size:16px;font-weight:700}.estate-card__badge{align-items:center;background:#e6f4ea;border-radius:4px;color:#137333;display:flex;font-size:12px;font-weight:700;inline-size:-webkit-max-content;inline-size:max-content;margin-bottom:12px;padding:4px 8px}.estate-card__directions{border-top:1px dashed #e1e4e8;margin-top:12px;padding-top:12px}.estate-card__directions-heading{color:#999;font-size:11px;font-weight:700;letter-spacing:.5px;margin:0 0 8px;text-transform:uppercase}.estate-card__directions-header-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.estate-card__directions-heading--inline{color:#888;font-size:11px;font-weight:700;letter-spacing:.5px;margin:0;text-transform:uppercase}.estate-card__toggle-steps-btn{background:#f1f3f4;border:1px solid #e1e4e8;border-radius:4px;color:#0070f3;cursor:pointer;font-size:11px;font-weight:600;outline:none;padding:4px 8px;transition:all .2s ease;white-space:nowrap}.estate-card__toggle-steps-btn:hover{background:#e4e6eb}.estate-card__steps-stack{display:flex;flex-direction:column;gap:8px}.estate-card__steps-stack--expanded{display:flex;flex-direction:column;gap:12px;margin-top:12px}.estate-card__step-node{display:flex;flex-direction:column;gap:4px}.estate-card__step-item{align-items:flex-start;display:flex;font-size:13px;gap:10px}.estate-card__step-inner-flex{display:flex;flex-direction:column;gap:2px;width:100%}.estate-card__step-badge{border-radius:4px;font-size:11px;font-weight:700;margin-top:1px;padding:2px 6px;white-space:nowrap}.estate-card__step-badge--walk{background:#f1f3f4;color:#5f6368}.estate-card__step-badge--transit{color:#fff}.estate-card__step-instruction{color:#2d3748;font-weight:500}.estate-card__step-meta{color:#718096;font-size:11px;font-weight:400;margin-left:6px}.estate-card__step-meta--old-drive{color:#999;font-size:11px;margin-left:5px}.estate-card__transit-details{borderRadius:4px;marginTop:4px;background:#f7fafc;color:#4a5568;font-size:11px;padding:6px 10px}.estate-card__substeps-box{border-left:2px solid #edf2f7;display:flex;flex-direction:column;gap:4px;margin-left:24px;margin-top:2px;padding-left:12px}.estate-card__substep-item{color:#718096;font-size:12px}.estate-card__substep-duration{color:#a0aec0;font-size:11px}.estate-card__actions{display:flex;gap:8px;margin-top:15px}.estate-card__btn{border-radius:4px;cursor:pointer;font-size:13px;font-weight:700;padding:6px 12px}.estate-card__btn--detail{background:#fff;border:1px solid #ccc;color:#333}.estate-card__btn--appointment{background:#28a745;border:none;color:#fff}.real-estate-list{background:#fff;border:1px solid #ddd;border-radius:8px;padding:20px}.real-estate-list__title{margin:0 0 15px}.real-estate-list__loading{color:#888;font-style:italic}.real-estate-list__empty{color:#666}.real-estate-list-table-wrapper{overflow-x:auto}.real-estate-table{border-collapse:collapse;font-size:14px;min-width:600px;width:100%}.real-estate-table__header-row{background-color:#f5f5f5;border-bottom:2px solid #ddd;text-align:left}.real-estate-table__th{padding:12px}.real-estate-table__row{border-bottom:1px solid #eee}.real-estate-table__td{padding:12px;vertical-align:top}.real-estate-table__td--bold-name{color:#333;font-weight:700}.real-estate-table__td--bold-price{color:#0070f3;font-weight:700}.real-estate-table__td--text-summary{color:#555;line-height:1.4}.real-estate-badge{background:#e1f5fe;border-radius:12px;color:#0288d1;font-size:12px;font-weight:700;padding:3px 8px}.real-estate-actions{align-items:center;display:flex;flex-direction:column;gap:6px;justify-content:center}.real-estate-btn{border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:700;padding:6px 0;width:100px}.real-estate-btn--book{background:#0070f3;color:#fff}.real-estate-btn--more{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.real-estate-btn--delete{background:#ffebee;border:1px solid #ef9a9a;color:#c62828;transition:background-color .2s,color .2s}.real-estate-btn--delete:hover{background:#c62828;color:#fff}.create-estate-container{background:#fff;border:1px solid #ddd;border-radius:8px;margin:0 auto;padding:25px}.create-estate-container__title{color:#333;font-weight:700;margin:0 0 20px}.create-estate-alert{border-radius:6px;font-weight:700;margin-bottom:20px;padding:12px}.create-estate-alert--success{background-color:#e8f5e9;border:1px solid #a5d6a7;color:#2e7d32}.create-estate-alert--error{background-color:#ffebee;border:1px solid #ef9a9a;color:#c62828}.create-estate-feedback{font-size:12px;font-weight:700;margin-top:6px}.create-estate-feedback--success{color:#2e7d32}.create-estate-feedback--error{color:#c62828}.create-estate-form{gap:15px}.create-estate-form,.create-estate-form__group{display:flex;flex-direction:column}.create-estate-form__row{display:flex;gap:15px}.create-estate-form__col-1{flex:1 1}.create-estate-form__label{color:#555;display:block;font-size:14px;font-weight:700;margin-bottom:5px}.create-estate-form__input{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;font-size:14px;padding:10px;width:100%}.create-estate-form__input--select{background-color:#fff;height:38px}.create-estate-form__input--textarea{font-family:inherit;resize:vertical}.create-estate-form__submit-btn{background-color:#0070f3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;margin-top:10px;padding:12px;transition:background-color .2s ease}.create-estate-form__submit-btn:hover:not(:disabled){background-color:#0056b3}.create-estate-form__submit-btn:disabled{background-color:#bdc3c7;cursor:not-allowed;opacity:.7}.estate-detail-container{background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 6px #0000000d;margin:0 auto;max-width:750px;padding:30px}.estate-detail-container__header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:25px;padding-bottom:15px}.estate-detail-container__title{color:#333;font-size:22px;margin:0}.estate-detail-container__back-btn{background:#f4f4f5;border:1px solid #e4e4e7;border-radius:6px;cursor:pointer;font-size:14px;font-weight:700;padding:8px 16px}.estate-detail-container__body{display:flex;flex-wrap:wrap;gap:30px}.estate-detail-container__media-col{align-items:flex-start;display:flex;flex:1 1;justify-content:center;min-width:250px}.estate-detail-container__img{border:1px solid #eaeaea;border-radius:8px;height:auto;max-width:300px;object-fit:contain;width:100%}.estate-detail-container__info-col{display:flex;flex:1.5 1;flex-direction:column;gap:15px;min-width:300px}.estate-detail-container__book-btn{background:#0070f3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:700;padding:5px 10px}.estate-detail-container__name{color:#111;font-size:24px;margin:0 0 10px}.estate-detail-container__badge{background:#e1f5fe;border-radius:16px;color:#0288d1;font-size:13px;font-weight:700;padding:4px 12px}.estate-detail-container__price{color:#0070f3;font-size:24px;font-weight:700;margin:10px 0}.estate-detail-container__description-section{border-top:1px solid #eee;padding-top:15px}.estate-detail-container__section-heading{color:#555;font-size:14px;letter-spacing:.5px;margin:0 0 8px;text-transform:uppercase}.estate-detail-container__text-block{color:#3f3f46;font-size:15px;line-height:1.6;margin:0;max-width:100%;overflow-wrap:break-word;white-space:pre-wrap;white-space:normal}.estate-detail-container__footer{color:#a1a1aa;font-size:12px;margin-top:auto;padding-top:20px}.estate-detail-container__meta-id{display:block}.appointment-box{background:#f4f9f9;border:1px solid #e2ecec;border-radius:12px;font-family:sans-serif;margin:0 auto;padding:30px}.appointment-box__title{margin-bottom:20px;margin-top:0}.appointment-form__label{color:#00a896;display:block;font-size:14px;font-weight:700;margin-bottom:6px}.appointment-form__field{background-color:#fff;border:1px solid #ccc;border-radius:6px;box-sizing:border-box;color:#333;font-size:14px;padding:12px;width:100%}.appointment-form__field-subtext{color:#666;display:block;font-size:11px;margin-top:3px}.appointment-form__grid-layout{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:15px}.appointment-form__grid-layout--large-gap{margin-bottom:25px}.appointment-form__grid-layout--medium-gap{margin-bottom:20px}.appointment-form__row-flex{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:15px}.appointment-form__col-grow-2{flex:2 1;min-width:280px}.appointment-form__col-grow-1{flex:1 1;min-width:140px}.appointment-form__summary-block{margin-bottom:20px}.appointment-form__textarea{background-color:#f0f4f4;color:#555;font-family:monospace;resize:none}.appointment-form__cost-counter{color:#0070f3;font-size:15px;font-weight:700;margin-top:6px;text-align:right}.appointment-form__pdpa-row{align-items:flex-start;display:flex;gap:10px;margin-bottom:25px}.appointment-form__checkbox{cursor:pointer;height:16px;margin-top:4px;width:16px}.appointment-form__checkbox-label{color:#444;cursor:pointer;font-size:13px;line-height:1.4}.appointment-form__actions-panel{display:flex;justify-content:flex-end}.appointment-form__submit-btn{align-items:center;border:1px solid;border-radius:25px;box-shadow:0 2px 5px #0000001a;color:#fff;display:inline-flex;font-size:15px;font-weight:700;gap:10px;padding:12px 30px;transition:all .2s ease}.appointment-form__submit-btn--active{background-color:#00a896;border-color:#00a896;cursor:pointer}.appointment-form__submit-btn--active:hover{background-color:#008f80;border-color:#008f80}.appointment-form__submit-btn--disabled{background-color:#bdc3c7;border-color:#bdc3c7;cursor:not-allowed}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.property-agent{font-family:sans-serif;margin:0 auto;max-width:950px;padding:20px}.property-agent__header{align-items:center;border-bottom:2px solid #eaeaea;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.property-agent__title{color:#0070f3;margin:0}.property-agent__nav{display:flex;gap:8px;margin-top:20px}.property-agent__tab-btn{background-color:#e4e6eb;border:none;border-radius:4px;color:#000;cursor:pointer;font-weight:700;padding:8px 16px;transition:background-color .2s,color .2s}.property-agent__tab-btn--active{background-color:#0070f3;color:#fff}.property-agent__content-view{animation:propertyViewFadeIn .3s cubic-bezier(.4,0,.2,1) forwards}@keyframes propertyViewFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
/*# sourceMappingURL=main.fa97b56f.css.map*/