*{box-sizing:border-box;margin:0}body{background:#f7f7f5;font-family:system-ui,PingFang TC,sans-serif}.chat{max-width:720px;height:100dvh;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));flex-direction:column;margin:0 auto;display:flex}.chat h1{font-size:18px}.topbar{justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.new-chat{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:6px 12px;font-size:13px}.new-chat:hover{background:#f3f4f6}.vote-row{vertical-align:middle;gap:2px;margin-left:8px;display:inline-flex}.vote{cursor:pointer;opacity:.35;background:0 0;border:0;padding:0 2px;font-size:13px}.msg:hover .vote{opacity:.7}.vote.on{opacity:1}.vote:disabled{cursor:default}.typing{align-items:center;gap:5px;padding:12px 14px;display:inline-flex}.typing .dot{background:#9ca3af;border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite typing-bounce}.typing .dot:nth-child(2){animation-delay:.15s}.typing .dot:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.messages{flex-direction:column;flex:1;gap:8px;display:flex;overflow-y:auto}.hint{color:#888}.msg{white-space:pre-wrap;border-radius:10px;max-width:85%;padding:8px 12px}.msg .md{white-space:normal}.md p{margin:0 0 8px}.md p:last-child{margin-bottom:0}.md ul,.md ol{margin:4px 0 8px;padding-left:22px}.md li{margin:2px 0}.md li p{margin:0}.md h1,.md h2,.md h3,.md h4{margin:8px 0 4px;font-size:14px}.md strong{font-weight:700}.md a{color:#2563eb}.md code{background:#f3f4f6;border-radius:4px;padding:0 4px;font-size:12px}.md table{border-collapse:collapse;font-size:12px}.md th,.md td{border:1px solid #e5e7eb;padding:3px 8px}.msg.user{color:#fff;background:#2563eb;align-self:flex-end}.msg.assistant{background:#fff;border:1px solid #e5e5e5;align-self:flex-start}.turn{flex-direction:column;gap:6px;display:flex}.turn.user{align-items:flex-end}.turn.assistant{align-items:flex-start}.listings{width:100%}.listings-count{color:#555;margin-bottom:6px;font-size:13px}.cards-wrap{position:relative}.cards-row{scroll-snap-type:x proximity;gap:10px;padding-bottom:6px;display:flex;overflow-x:auto}.cards-row .card{scroll-snap-align:start}.cards-nav{z-index:1;color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:20px;line-height:1;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 1px 6px #0000002e}.cards-nav:hover{background:#f3f4f6}.cards-nav.left{left:-8px}.cards-nav.right{right:-8px}.card{color:inherit;background:#fff;border:1px solid #e5e5e5;border-radius:10px;flex:0 0 200px;text-decoration:none;overflow:hidden}.card img{object-fit:cover;width:100%;height:120px;display:block}.card-body{flex-direction:column;gap:2px;padding:8px 10px;font-size:13px;display:flex}.card-price{color:#c2410c;font-weight:700}.over-budget{color:#b91c1c;vertical-align:1px;background:#fee2e2;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:11px;font-style:normal;font-weight:600}.card-meta{color:#6b7280;font-size:12px}.card-reason{color:#15803d;font-size:11px}.mortgage-card{background:#fff;border:1px solid #e5e5e5;border-radius:10px;max-width:360px;padding:12px 14px}.mortgage-monthly{font-size:15px}.mortgage-monthly strong{color:#2563eb;font-size:22px}.mortgage-grid{grid-template-columns:auto 1fr;gap:2px 12px;margin:8px 0;font-size:13px;display:grid}.mortgage-warn{color:#dc2626;font-size:13px}.disclaimer{color:#9ca3af;margin-top:6px;font-size:11px}.market-card{background:#fff;border:1px solid #e5e5e5;border-radius:10px;max-width:400px;padding:12px 14px}.market-title{font-size:14px;font-weight:600}.market-median{margin:6px 0;font-size:15px}.market-median strong{color:#16a34a;font-size:22px}.chips{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.chip{background:#f3f4f6;border-radius:999px;padding:2px 8px;font-size:12px}.chip.up{color:#b91c1c;background:#fee2e2}.chip.down{color:#15803d;background:#dcfce7}.chip.gray{color:#6b7280}.chips-row{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.chip-btn{color:#1d4ed8;cursor:pointer;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;padding:6px 12px;font-size:13px}.chip-btn:hover{background:#dbeafe}.topbar-left,.topbar-right{align-items:center;gap:8px;display:flex}.card{position:relative}.fav-btn{z-index:1;color:#dc2626;cursor:pointer;background:#ffffffe6;border:0;border-radius:50%;width:28px;height:28px;font-size:15px;position:absolute;top:6px;right:6px;box-shadow:0 1px 4px #0003}.fav-btn.on{color:#fff;background:#dc2626}.drawer{z-index:20;background:#fff;border:1px solid #e5e5e5;border-radius:10px;width:260px;max-height:60dvh;padding:6px;position:absolute;top:54px;left:0;overflow-y:auto;box-shadow:0 4px 16px #0000001f}.conv-row{border-radius:8px;align-items:center;display:flex}.conv-row.active{background:#eff6ff}.conv-title{text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;flex:1;padding:9px 10px;font-size:13px;overflow:hidden}.conv-del{color:#9ca3af;cursor:pointer;background:0 0;border:0;padding:4px 8px}.conv-del:hover{color:#dc2626}.fav-panel{z-index:20;background:#fff;border:1px solid #e5e5e5;border-radius:10px;width:320px;max-height:70dvh;padding:12px;position:absolute;top:54px;right:0;overflow-y:auto;box-shadow:0 4px 16px #0000001f}.fav-list{flex-direction:column;gap:8px;display:flex}.fav-row{align-items:center;gap:6px;display:flex}.fav-link{color:inherit;flex:1;align-items:center;gap:8px;text-decoration:none;display:flex}.fav-link img{object-fit:cover;border-radius:6px;width:56px;height:42px}.fav-body{flex-direction:column;font-size:13px;display:flex}.chat{position:relative}.privacy-note{color:#b6bbc2;text-align:center;padding-top:6px;font-size:10.5px}.privacy-note a{color:inherit}form{gap:8px;padding-top:12px;display:flex}form input{border:1px solid #d1d5db;border-radius:8px;flex:1;padding:10px 12px}form button{color:#fff;background:#2563eb;border:0;border-radius:8px;padding:10px 16px}.card-market{color:#6b7280;font-size:11px;display:block}.card-market em{font-style:normal}.card-market em.hi{color:#b45309}.card-market em.lo{color:#15803d}
