:root{--davis-primary:#1e40af;--davis-primary-hover:#1e3a8a;--davis-primary-light:#3b82f6;--davis-surface:#fff;--davis-bg:#f5f5f5;--davis-border:#e5e5e5;--davis-agent-bg:#fff;--davis-user-bubble:#1e40af;--davis-text:#171717;--davis-text-light:#525252;--davis-text-muted:#737373;--davis-success:#22c55e;--davis-error-bg:#fef2f2;--davis-error-border:#fecaca;--davis-error-text:#dc2626;--davis-radius:12px;--davis-radius-lg:20px;--davis-radius-xl:26px;--davis-shadow-sm:0 1px 2px rgba(0,0,0,.04);--davis-shadow:0 2px 8px rgba(0,0,0,.06);--davis-safe-bottom:env(safe-area-inset-bottom,0px)}@keyframes stream-spin{to{transform:rotate(1turn)}}@keyframes stream-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes chat-message-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.chat-panel{flex-direction:column;height:100%;margin:0;width:100%;overflow:hidden;-webkit-font-smoothing:antialiased;position:relative}.chat-messages,.chat-panel{display:flex;min-height:0;background:var(--davis-bg)}.chat-messages{flex:1 1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:24px 16px;flex-direction:column;gap:20px;scroll-behavior:smooth;overscroll-behavior:contain}.chat-message-wrap{display:flex;width:100%;justify-content:flex-end;animation:chat-message-in .25s ease-out}.chat-message-wrap.agent{justify-content:flex-start}.chat-bubble-user{max-width:72%;padding:14px 18px;border-radius:var(--davis-radius-lg);border-bottom-right-radius:6px;background:var(--davis-user-bubble);color:#fff;font-size:15px;line-height:1.55;word-wrap:break-word}.chat-bubble-agent,.chat-bubble-user{min-width:0;overflow-wrap:break-word;box-shadow:var(--davis-shadow)}.chat-bubble-agent{max-width:80%;border-radius:var(--davis-radius-lg);border-bottom-left-radius:6px;background:var(--davis-agent-bg);overflow:hidden}.chat-bubble-agent.streaming{box-shadow:0 2px 12px rgba(30,64,175,.12)}.chat-bubble-agent.error{background:var(--davis-error-bg)}.agent-label{padding:14px 18px 6px;font-size:12px;font-weight:600;letter-spacing:.01em;color:var(--davis-text-muted)}.stream-events-section{margin:0 14px 8px;background:var(--davis-bg);border-radius:var(--davis-radius);overflow:hidden}.stream-events-header{display:flex;align-items:flex-start;justify-content:space-between;padding:10px 14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s ease;gap:12px}.stream-events-header:hover{background:rgba(0,0,0,.03)}.stream-events-label{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--davis-text-light);flex:1 1;min-width:0}.stream-events-label-icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.stream-events-label-text{font-weight:500;line-height:1.4;word-break:break-word}.stream-events-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.stream-events-count{font-size:12px;color:var(--davis-text-muted);font-weight:400;white-space:nowrap}.stream-events-chevron{width:16px;height:16px;color:var(--davis-text-muted);transition:transform .2s ease;flex-shrink:0}.stream-events-chevron.expanded{transform:rotate(180deg)}.stream-events-content{overflow:hidden;transition:max-height .25s ease,opacity .2s ease}.stream-events-content.collapsed{max-height:0;opacity:0}.stream-events-content.expanded{max-height:500px;opacity:1}.stream-steps{padding:4px 14px 12px}.stream-step{display:flex;align-items:flex-start;gap:10px;padding:5px 0;font-size:13px;color:var(--davis-text)}.stream-step-active{color:var(--davis-primary);font-weight:500}.stream-step-icon{flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;margin-top:2px}.stream-step-error .stream-step-icon{color:var(--davis-error-text)}.stream-step-complete .stream-step-icon{color:var(--davis-success)}.stream-spinner{width:14px;height:14px;border:2px solid rgba(30,64,175,.2);border-top:2px solid var(--davis-primary);border-radius:50%;animation:stream-spin .7s linear infinite}.stream-spinner-small{width:12px;height:12px;border-width:1.5px}.stream-content{padding:12px 18px 14px;font-size:15px;line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--davis-text)}.stream-content strong{font-weight:600;color:var(--davis-text)}.stream-cursor{display:inline-block;width:2px;height:1.1em;background:var(--davis-primary);margin-left:2px;vertical-align:text-bottom;animation:stream-blink 1s step-end infinite}.thinking-row{color:var(--davis-text-light)}.stopped-row,.thinking-row{display:flex;align-items:center;gap:10px;padding:16px 18px;font-size:14px}.stopped-banner,.stopped-row,.stopped-row svg{color:var(--davis-text-muted)}.stopped-banner{display:flex;align-items:center;gap:8px;margin:0 14px 8px;padding:10px 14px;background:#fafafa;border-radius:var(--davis-radius);font-size:13px}.stopped-banner svg{flex-shrink:0}.stream-events-label-icon.stopped,.stream-events-label-text.stopped,.stream-step-stopped,.stream-step-stopped .stream-step-icon{color:var(--davis-text-muted)}.stream-events-section.stopped{background:#fafafa}.stream-error-box{margin:12px 14px;padding:12px 14px;border-radius:var(--davis-radius);background:var(--davis-error-bg);font-size:14px;color:var(--davis-error-text);line-height:1.5}.chat-time{padding:4px 18px 14px;font-size:11px;color:var(--davis-text-muted)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;flex:1 1;min-height:100%;padding:32px 24px}.empty-state-title{font-size:1.375rem;font-weight:500;color:var(--davis-text);margin:0;letter-spacing:-.02em}.empty-state-desc{font-size:14px;color:var(--davis-text-muted);line-height:1.5;margin:10px 0 0;max-width:300px}.chat-input-area{flex-shrink:0;padding:12px 16px;padding-bottom:calc(16px + var(--davis-safe-bottom));background:var(--davis-bg)}.chat-input-container{position:relative;display:flex;align-items:flex-end;background:var(--davis-surface);border-radius:var(--davis-radius-xl);box-shadow:0 2px 12px rgba(0,0,0,.08);transition:box-shadow .2s;overflow:hidden}.chat-input-container:focus-within{box-shadow:0 2px 16px rgba(0,0,0,.12)}.chat-input-container.disabled{opacity:.7}.chat-input{flex:1 1;min-width:0;min-height:52px;max-height:160px;padding:15px 56px 15px 20px;border:none;font-size:15px;line-height:1.5;font-family:inherit;resize:none;background:transparent;color:var(--davis-text);outline:none}.chat-input::placeholder{color:var(--davis-text-muted)}.chat-input:disabled{cursor:not-allowed}.chat-send-wrapper{position:absolute;right:8px;bottom:8px}.chat-send,.chat-send-wrapper{display:flex;align-items:center;justify-content:center}.chat-send{width:36px;height:36px;border:none;border-radius:50%;background:var(--davis-primary);color:#fff;cursor:pointer;transition:all .15s ease}.chat-send:hover:not(:disabled){background:var(--davis-primary);transform:scale(1.05)}.chat-send:active:not(:disabled){transform:scale(.96)}.chat-send:disabled{background:var(--davis-border);color:var(--davis-text-muted);cursor:not-allowed}.chat-send svg{width:18px;height:18px}.chat-stop{height:36px;padding:0 16px;border:none;border-radius:18px;background:var(--davis-text);color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.chat-stop:hover{background:#404040}.chat-stop:active{transform:scale(.96)}@media (max-width:480px){.chat-messages{padding:16px 12px;gap:16px}.chat-bubble-user{max-width:85%}.chat-bubble-agent{max-width:90%}.chat-input-area{padding:10px 12px;padding-bottom:calc(12px + var(--davis-safe-bottom))}.chat-input{min-height:48px;padding:13px 52px 13px 16px;font-size:16px}.chat-send-wrapper{right:6px;bottom:6px}.chat-send{width:34px;height:34px}.empty-state-title{font-size:1.25rem}.empty-state-desc{font-size:13px}}@media (min-width:900px){.chat-input-area,.chat-messages{padding-left:calc(50% - 380px);padding-right:calc(50% - 380px)}}