.property-assistant { --assistant-paper: #fff; --assistant-ink: #203d54; --assistant-muted: #7a8b98; --assistant-line: #e3e9ed; --assistant-soft: #f4f7f9; position: fixed; right: 20px; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); z-index: 10000; font-family: 'Poppins', sans-serif; }
html[data-theme="dark"] .property-assistant { --assistant-paper: #132432; --assistant-ink: #e6edf2; --assistant-muted: #a2b2be; --assistant-line: #2c414f; --assistant-soft: #1b303f; }
.property-assistant *, .property-assistant *::before, .property-assistant *::after { box-sizing: border-box; }
.property-assistant .home-help-toggle { display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 1px solid #315674; border-radius: 50%; background: #123b5a; color: #fff; font-size: 20px; box-shadow: 0 4px 16px #0c254126; }
.property-assistant .home-help-toggle:hover { background: #1d4e70; }
.property-assistant .home-help-panel { position: absolute; right: 0; bottom: 66px; display: flex; flex-direction: column; width: 380px; max-width: calc(100vw - 40px); height: min(620px, calc(100dvh - 112px - env(safe-area-inset-bottom, 0px))); max-height: none; padding: 0; overflow: hidden; border: 1px solid var(--assistant-line); border-radius: 13px; background: var(--assistant-paper); color: var(--assistant-ink); box-shadow: 0 8px 30px #0c25411f; }
.property-assistant [hidden] { display: none !important; }
.property-assistant .home-help-heading { display: flex; align-items: center; flex-shrink: 0; gap: 10px; margin: 0; padding: 15px 13px 15px 17px; border-bottom: 1px solid var(--assistant-line); }
.assistant-brand-icon { display: grid; flex: 0 0 34px; place-items: center; width: 34px; height: 34px; border: 1px solid #d8e3eb; border-radius: 8px; background: #edf3f7; color: #3b617c; font-size: 15px; }
.property-assistant .home-help-heading > div { flex: 1; min-width: 0; }
.property-assistant .home-help-heading h2 { margin: 0 0 3px; color: var(--assistant-ink); font-size: 14px; font-weight: 600; line-height: 1.5; letter-spacing: -.2px; }
.home-help-heading > div > p { margin: 0; color: var(--assistant-muted); font-size: 10px; line-height: 1.6; }
.property-assistant .home-help-close, .assistant-reset { display: grid; flex: 0 0 32px; place-items: center; width: 32px; height: 36px; margin: 0; padding: 0; border: 0; border-radius: 5px; background: transparent; color: var(--assistant-muted); font-size: 14px; }
.property-assistant .home-help-close:hover, .assistant-reset:hover { background: var(--assistant-soft); color: var(--assistant-ink); }
.assistant-thread { flex: 1; min-height: 0; padding: 18px 16px 6px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.assistant-message { margin-bottom: 17px; color: var(--assistant-ink); font-size: 12px; line-height: 1.85; overflow-wrap: anywhere; }
.assistant-message-label { display: block; margin-bottom: 5px; color: #9d8553; font-size: 10px; font-weight: 500; letter-spacing: .3px; }
.assistant-message p { margin: 0; white-space: pre-wrap; }
.assistant-message.is-user { max-width: 88%; margin-left: auto; padding: 10px 13px; border: 1px solid var(--assistant-line); border-radius: 9px 9px 2px 9px; background: var(--assistant-soft); }
.assistant-message.is-user .assistant-message-label { color: var(--assistant-muted); }
.assistant-message.is-error { padding: 11px 13px; border-left: 2px solid #b08b5c; background: var(--assistant-soft); }
.assistant-result { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 11px; margin-top: 11px; padding: 11px; border: 1px solid var(--assistant-line); border-radius: 7px; background: var(--assistant-paper); }
.assistant-result img { width: 62px; height: 68px; border-radius: 4px; background: var(--assistant-soft); object-fit: cover; }
.assistant-result > div { min-width: 0; }
.assistant-result-title { display: block; margin-bottom: 3px; color: var(--assistant-ink); font-size: 12px; font-weight: 550; line-height: 1.6; text-decoration: none; }
.assistant-result-title:hover { color: #a38448; }
.assistant-result strong { display: block; color: var(--assistant-ink); font-size: 12px; font-weight: 600; }
.assistant-result small { display: block; margin-top: 3px; color: var(--assistant-muted); font-size: 10px; line-height: 1.8; }
.assistant-result-details { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding-top: 7px; border-top: 1px solid var(--assistant-line); color: var(--assistant-muted); font-size: 10px; }
.assistant-result-details a { display: inline-flex; align-items: center; gap: 7px; min-height: 30px; color: #3f6b8b; font-size: 11px; text-decoration: none; }
.assistant-response-links { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 11px; }
.assistant-response-links a { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 6px 9px; border: 1px solid var(--assistant-line); border-radius: 5px; color: var(--assistant-ink); font-size: 11px; line-height: 1.6; text-decoration: none; }
.assistant-response-links a:hover { border-color: #9aafbf; background: var(--assistant-soft); }
.assistant-typing { display: flex; flex-shrink: 0; align-items: center; gap: 9px; padding: 9px 17px; color: var(--assistant-muted); font-size: 11px; }
.assistant-typing > span { display: inline-flex; gap: 3px; }
.assistant-typing i { width: 4px; height: 4px; border-radius: 50%; background: #a68a54; animation: assistant-dot 1s ease-in-out infinite; }
.assistant-typing i:nth-child(2) { animation-delay: .15s; }
.assistant-typing i:nth-child(3) { animation-delay: .3s; }
.assistant-suggestions { display: flex; flex-shrink: 0; flex-wrap: wrap; gap: 6px; padding: 9px 16px 12px; }
.assistant-suggestions button { min-height: 30px; padding: 5px 8px; border: 1px solid var(--assistant-line); border-radius: 5px; background: var(--assistant-paper); color: var(--assistant-muted); font-family: inherit; font-size: 10px; text-align: left; }
.assistant-suggestions button:hover { border-color: #9aafbf; color: var(--assistant-ink); }
.assistant-composer { display: flex; align-items: flex-end; flex-shrink: 0; gap: 9px; margin: 0 14px; padding: 6px 7px 6px 11px; border: 1px solid #cbd7e1; border-radius: 7px; background: var(--assistant-paper); }
.assistant-composer:focus-within { border-color: #7b9bb3; }
.assistant-composer textarea { flex: 1; min-width: 0; max-height: 84px; padding: 6px 0; border: 0; outline: 0; background: transparent; color: var(--assistant-ink); font-family: inherit; font-size: 12px; line-height: 1.7; resize: none; }
.assistant-composer textarea::placeholder { color: #9ba7b1; }
.assistant-composer button { display: grid; flex: 0 0 32px; place-items: center; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 5px; background: #173d58; color: #fff; font-size: 12px; }
.assistant-composer button:disabled { opacity: .45; }
.assistant-privacy { flex-shrink: 0; margin: 7px 17px 10px; color: var(--assistant-muted); font-size: 9px; line-height: 1.7; }
.assistant-team-links { display: flex; flex-shrink: 0; align-items: center; gap: 3px; padding: 6px 13px 6px 17px; border-top: 1px solid var(--assistant-line); background: var(--assistant-soft); }
.assistant-team-links > span { flex: 1; color: var(--assistant-muted); font-size: 11px; }
.assistant-team-links a { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 5px; color: #54758e; font-size: 15px; text-decoration: none; }
.assistant-team-links a:hover { background: var(--assistant-paper); }
@keyframes assistant-dot { 0%, 70%, 100% { opacity: .35; } 35% { opacity: 1; } }
@media (max-width: 767px) {
    body[data-page="property"] .property-assistant { bottom: calc(90px + env(safe-area-inset-bottom, 0px)); }
    body[data-page="property"] .property-assistant .home-help-panel { height: min(600px, calc(100dvh - 184px - env(safe-area-inset-bottom, 0px))); }
    .assistant-composer textarea { font-size: 16px; }
    .property-assistant .home-help-close, .assistant-reset { flex-basis: 36px; width: 36px; height: 40px; }
}
@media (max-width: 359px) {
    .property-assistant { right: 12px; }
    .property-assistant .home-help-panel { max-width: calc(100vw - 24px); }
    .assistant-brand-icon { display: none; }
    .assistant-suggestions button { min-height: 34px; }
}
@media (prefers-reduced-motion: reduce) { .assistant-typing i { animation: none; opacity: .7; } }

.assistant-result > .property-feature-tags { grid-column:1 / -1; margin-top:0; }
.assistant-result .property-feature-tag { min-height:20px; padding:2px 5px; font-size:9px; }
