*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:#f5f5f5;color:#333;height:100vh;display:flex;flex-direction:column;overflow:hidden}
#header{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:12px 20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 10px rgba(0,0,0,0.1);transition:all 0.3s ease;z-index:10;position:relative;flex-shrink:0;max-height:15vh;min-height:60px}
#title{font-size:1.5rem;font-weight:600;color:#fff;text-shadow:1px 1px 3px rgba(0,0,0,0.2);transition:all 0.3s ease}
#topic{font-size:1.1rem;color:#fff;margin:0 15px;overflow:hidden;text-overflow:ellipsis;max-width:45%;flex-grow:1;text-align:center;font-weight:500;text-shadow:1px 1px 2px rgba(0,0,0,0.3);cursor:default;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;max-height:2.6em;text-wrap:balance}
#controls{display:flex;justify-content:space-between;align-items:center;gap:15px;min-width:130px}
.font-controls{display:flex;gap:5px;align-items:center}
.btn{background:rgba(255,255,255,0.2);color:white;border:2px solid rgba(255,255,255,0.5);padding:8px 16px;cursor:pointer;border-radius:8px;font-size:14px;font-weight:500;transition:all 0.3s;backdrop-filter:blur(10px)}
.btn:hover{background:rgba(255,255,255,0.3);transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,0.2)}
.btn:active{transform:scale(0.98)}
.font-btn{padding:5px 10px;font-size:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-weight:bold}
#artifactBtn{padding:8px;font-size:20px;width:40px;height:40px;display:none;align-items:center;justify-content:center}
#chat{flex:1;overflow-y:auto;padding:20px;scroll-behavior:smooth;background:#fafafa;margin-bottom:0;padding-bottom:0;min-height:0}
#inputArea{background:#fff;padding:6px 20px;border-top:1px solid #e0e0e0;box-shadow:0 -2px 10px rgba(0,0,0,0.05);position:relative;display:flex;flex-direction:column;flex-shrink:0;max-height:25vh;min-height:70px}
#messageInput{width:100%;padding:12px;border:2px solid #e0e0e0;background:#fafafa;color:#333;border-radius:8px;resize:none;min-height:44px;max-height:200px;font-size:16px;transition:all 0.3s;font-family:inherit}
#messageInput:focus{outline:none;border-color:#667eea;background:#fff;box-shadow:0 0 0 3px rgba(102,126,234,0.1)}
#messageInput::placeholder{color:#999}
#sendBtn{width:100%;margin-top:10px;padding:12px;font-size:16px;font-weight:600;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:all 0.2s;box-shadow:0 2px 5px rgba(102,126,234,0.3)}
#sendBtn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 10px rgba(102,126,234,0.4)}
#sendBtn:active{transform:scale(0.98)}
#sendBtn:disabled{opacity:0.5;cursor:not-allowed}
.loading{position:relative}
.loading::after{content:'';display:inline-block;width:16px;height:16px;margin-left:8px;border:2px solid rgba(102,126,234,0.3);border-radius:50%;border-top-color:#667eea;animation:spin 1s linear infinite}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInOut{0%{opacity:0}20%{opacity:1}80%{opacity:1}100%{opacity:0}}
@keyframes spin{to{transform:rotate(360deg)}}