*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC',sans-serif;background:#f0f2f5;color:#333;line-height:1.6;}
.app{max-width:560px;margin:0 auto;min-height:100vh;background:#fff;}
.hidden{display:none !important;}

.top{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:22px 20px;}
.top h1{font-size:20px;font-weight:600;}
.top .sub{font-size:13px;opacity:.9;margin-top:4px;}

.panel{margin:14px 16px 0;padding:16px;background:#fff;border:1px solid #eef0f4;border-radius:12px;}
.panel-title{font-size:15px;font-weight:600;margin-bottom:12px;}
.panel-title .opt{font-size:12px;color:#999;font-weight:400;}

textarea,input[type=text],input[type=number]{width:100%;padding:10px 12px;border:1px solid #dcdfe6;border-radius:8px;font-size:14px;font-family:inherit;resize:vertical;}
textarea:focus,input:focus{outline:none;border-color:#667eea;}

.house-card-form{border:1px solid #eef0f4;border-radius:10px;padding:14px;margin-bottom:12px;background:#fafbfc;}
.house-card-form .card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.house-card-form h3{font-size:14px;color:#667eea;}
.house-card-form .del{background:none;border:none;color:#ff4d4f;font-size:13px;cursor:pointer;font-family:inherit;}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.field{margin-bottom:10px;}
.field.full{grid-column:1 / -1;}
.field label{display:block;font-size:12px;color:#666;margin-bottom:4px;}
.field label .req{color:#ff4d4f;}

.actions{padding:18px 16px 40px;}
.btn{border:none;border-radius:10px;cursor:pointer;font-size:15px;font-weight:600;font-family:inherit;}
.btn.primary{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:14px 20px;width:100%;box-shadow:0 4px 12px rgba(102,126,234,.35);}
.btn.primary.small{width:auto;padding:8px 16px;font-size:14px;}
.btn.secondary{background:#eef2ff;color:#667eea;padding:10px 16px;width:auto;font-size:14px;}
.btn.ghost{background:none;color:#667eea;padding:8px 12px;width:auto;font-size:13px;}
.btn.full{width:100%;border:1px dashed #c7cdf5;margin-top:4px;}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.bulk-actions{display:flex;gap:8px;margin-top:10px;}
.hint{font-size:12px;color:#999;text-align:center;margin-top:8px;}

.chat-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #eef0f4;position:sticky;top:0;background:#fff;z-index:5;}
.link-btn{background:none;border:none;color:#667eea;font-size:14px;cursor:pointer;font-family:inherit;}

.chat-log{padding:16px;display:flex;flex-direction:column;gap:12px;min-height:50vh;}
.msg{max-width:85%;padding:10px 14px;border-radius:14px;font-size:14px;white-space:pre-wrap;word-break:break-word;}
.msg.ai{background:#f0f2f7;align-self:flex-start;border-bottom-left-radius:4px;}
.msg.user{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;align-self:flex-end;border-bottom-right-radius:4px;}
.msg.ai .ready-tag{display:inline-block;margin-bottom:6px;font-size:12px;color:#52c41a;font-weight:600;}
.typing{color:#999;font-size:13px;align-self:flex-start;}

.chat-input{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #eef0f4;position:sticky;bottom:0;background:#fff;}
.chat-input textarea{flex:1;resize:none;max-height:120px;}
.chat-input .btn{width:auto;padding:0 20px;}

#reportBox{margin:0 16px 30px;padding:16px;background:#f6ffed;border:1px solid #d9f7be;border-radius:12px;}
#reportBox h3{font-size:15px;margin-bottom:8px;color:#52c41a;}
#reportBox a{color:#667eea;word-break:break-all;}
#reportBox .actions-row{display:flex;gap:8px;margin-top:12px;}
#reportBox .actions-row .btn{width:auto;padding:8px 16px;font-size:13px;}

.status{position:fixed;top:0;left:0;right:0;z-index:100;padding:12px 16px;text-align:center;font-size:14px;}
.status.error{background:#fff2f0;color:#ff4d4f;}
.status.info{background:#e6f7ff;color:#1677ff;}

/* 对话区：全屏双栏（左聊天 / 右预览） */
#chatView{position:fixed;inset:0;z-index:50;background:#f0f2f5;display:flex;flex-direction:column;}
.chat-head-actions{display:flex;gap:8px;align-items:center;}
.chat-wrap{flex:1;display:flex;overflow:hidden;min-height:0;}
.chat-left{flex:1;display:flex;flex-direction:column;min-width:0;background:#fff;}
.chat-right{width:480px;flex-shrink:0;border-left:1px solid #e0e0e0;background:#f8f9fa;display:flex;flex-direction:column;}
.preview-head{padding:12px 16px;font-size:14px;font-weight:600;background:#fff;border-bottom:1px solid #eef0f4;flex-shrink:0;}
.preview-head .opt{font-size:12px;color:#999;font-weight:400;}
#previewFrame{flex:1;border:none;width:100%;background:#fff;}
#chatView .chat-log{flex:1;overflow-y:auto;min-height:0;}
#chatView .chat-input{flex-shrink:0;}

/* 编辑报告弹窗 */
.modal{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:16px;}
.modal-box{background:#fff;border-radius:14px;width:100%;max-width:640px;max-height:86vh;display:flex;flex-direction:column;overflow:hidden;}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid #eef0f4;font-weight:600;flex-shrink:0;}
.modal-body{padding:16px 18px;overflow-y:auto;}
.modal-foot{padding:14px 18px;border-top:1px solid #eef0f4;flex-shrink:0;}
.modal-foot .btn{width:100%;}
.edit-field{margin-bottom:13px;}
.edit-field label{display:block;font-size:13px;font-weight:600;color:#333;margin-bottom:5px;}
.edit-field input,.edit-field textarea{width:100%;padding:9px 11px;border:1px solid #dcdfe6;border-radius:8px;font-size:14px;font-family:inherit;}
.edit-field textarea{resize:vertical;}
.edit-house{border:1px solid #eef0f4;border-radius:10px;padding:14px;margin-bottom:14px;background:#fafbfc;}
.edit-house h4{font-size:14px;color:#667eea;margin-bottom:10px;}
.edit-scores{display:flex;gap:10px;}
.edit-scores .edit-field{flex:1;}

@media (max-width: 900px){
  .chat-wrap{flex-direction:column;}
  .chat-right{width:100%;height:48vh;border-left:none;border-top:1px solid #e0e0e0;}
}
