.file-upload-container{margin-bottom:1rem}.upload-zone{border:2px dashed #cbd5e1;border-radius:8px;padding:.75rem 1rem;text-align:center;cursor:pointer;transition:all .2s;background:#f8fafc}.upload-zone:hover:not(.uploading){border-color:#667eea;background:#667eea0d}.upload-zone.drag-active{border-color:#667eea;background:#667eea1a;border-style:solid}.upload-zone.uploading{cursor:not-allowed;opacity:.7}.upload-content{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.625rem;color:#64748b}.upload-content svg{color:#94a3b8}.upload-zone:hover:not(.uploading) .upload-content svg{color:#667eea}.upload-content span{font-size:.875rem;font-weight:500;color:#475569}.spinner{width:20px;height:20px;border:2px solid #e2e8f0;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite}.uploaded-files{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.uploaded-file-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#f1f5f9;border-radius:6px;border:1px solid #e2e8f0}.uploaded-file-item svg{color:#667eea;flex-shrink:0}.uploaded-file-item .file-name{font-size:.875rem;color:#475569;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.remove-file-btn{background:none;border:none;color:#94a3b8;font-size:1.25rem;line-height:1;cursor:pointer;padding:0;margin-left:.5rem;transition:color .2s;flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.remove-file-btn:hover:not(:disabled){color:#ef4444}.remove-file-btn:disabled{cursor:not-allowed;opacity:.5}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.upload-zone{padding:.625rem .875rem}.upload-content span{font-size:.8125rem}.uploaded-file-item{padding:.4375rem .625rem}.uploaded-file-item .file-name{font-size:.8125rem}}@media (max-width: 480px){.file-upload-container{margin-bottom:.75rem}.upload-zone{padding:.5rem .75rem}.upload-content svg{width:20px;height:20px}.upload-content span{font-size:.75rem}.spinner{width:18px;height:18px}.uploaded-files{margin-top:.5rem;gap:.375rem}.uploaded-file-item{padding:.375rem .5rem}.uploaded-file-item svg{width:14px;height:14px}.uploaded-file-item .file-name{font-size:.75rem}.remove-file-btn{font-size:1.125rem;width:18px;height:18px}}@media (max-width: 360px){.upload-zone{padding:.4375rem .625rem}.upload-content span,.uploaded-file-item .file-name{font-size:.6875rem}.remove-file-btn{font-size:1rem;width:16px;height:16px}}.chat-container{width:100%;max-width:800px;height:90vh;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;overflow:hidden}.chat-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem;text-align:center}.chat-header h1{font-size:1.5rem;font-weight:600;margin-bottom:.25rem}.chat-header p{font-size:.875rem;opacity:.9}.notification{padding:.875rem 1.5rem;margin:1rem 1.5rem 0;border-radius:8px;font-size:.9375rem;animation:slideDown .3s ease-out;display:flex;justify-content:space-between;align-items:center;gap:1rem;word-wrap:break-word;overflow-wrap:break-word}.notification-close{background:none;border:none;font-size:1.5rem;line-height:1;cursor:pointer;opacity:.6;transition:opacity .2s;padding:0;margin:0;color:inherit}.notification-close:hover{opacity:1}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.notification.success{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.notification.error{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.notification.info{background:#dbeafe;color:#1e40af;border:1px solid #93c5fd}.upload-section{padding:.75rem 1.5rem .5rem}.usage-indicator{display:flex;align-items:center;gap:.375rem;margin-top:.5rem;padding:.375rem .5rem;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;color:#0c4a6e;font-size:.75rem}.usage-indicator svg{color:#0ea5e9;flex-shrink:0}.usage-indicator span{font-weight:500}.messages{flex:1;overflow-y:auto;padding:2rem;display:flex;flex-direction:column;gap:1rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#94a3b8;gap:1rem;padding:1rem;text-align:center}.empty-state svg{opacity:.5}.empty-state p{font-size:1rem}.message{max-width:80%;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{align-self:flex-end}.message.assistant,.message.error{align-self:flex-start}.message-content{padding:1rem 1.25rem;border-radius:12px;line-height:1.5;font-size:1rem;word-wrap:break-word;overflow-wrap:break-word}.message.user .message-content{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.message.assistant .message-content{background:#f1f5f9;color:#1e293b}.message.error .message-content{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.message.loading .message-content{background:#f1f5f9;padding:1.5rem 1.25rem}.typing-indicator{display:flex;gap:.5rem}.typing-indicator span{width:8px;height:8px;border-radius:50%;background:#94a3b8;animation:typing 1.4s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.7}30%{transform:translateY(-10px);opacity:1}}.sources{margin-top:.75rem;font-size:.875rem}.sources details{cursor:pointer}.sources summary{color:#667eea;font-weight:500;-webkit-user-select:none;user-select:none}.sources summary:hover{text-decoration:underline}.source-item{margin-top:.5rem;padding:.5rem;background:#667eea1a;border-radius:6px;border-left:3px solid #667eea}.source-item small{color:#64748b;line-height:1.4}.input-form{display:flex;gap:.75rem;padding:.5rem;background:#fff;border-top:1px solid #e2e8f0}.input-wrapper{flex:1;display:flex;flex-direction:column;gap:.25rem}.input-form input{flex:1;padding:.875rem 1.25rem;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;outline:none;transition:all .2s}.usage-indicator-inline{display:flex;align-items:center;gap:.25rem;padding:0 .25rem;color:#64748b;font-size:.6875rem}.usage-indicator-inline svg{color:#94a3b8;flex-shrink:0}.usage-indicator-inline span{font-weight:500}.input-form input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.input-form input:disabled{background:#f8fafc;cursor:not-allowed}.input-form button{padding:.875rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.input-form button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.input-form button:active:not(:disabled){transform:translateY(0)}.input-form button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.chat-container{height:90vh;height:-webkit-fill-available;height:90dvh;border-radius:12px}.chat-header{padding:.875rem}.chat-header h1{font-size:1.25rem}.chat-header p{font-size:.8rem}.notification{margin:.75rem 1rem 0;padding:.75rem 1rem;font-size:.875rem}.upload-section{padding:.5rem 1rem .25rem}.usage-indicator{font-size:.6875rem;padding:.3125rem .4375rem}.usage-indicator svg{width:12px;height:12px}.usage-indicator-inline{font-size:.625rem}.usage-indicator-inline svg{width:10px;height:10px}.messages{padding:1.25rem;gap:.875rem}.message{max-width:85%}.message-content,.empty-state p{font-size:.9375rem}.sources{font-size:.8125rem}.input-form{padding:.5rem .75rem;gap:.5rem}.input-form input{padding:.625rem .875rem;font-size:.9375rem;border-radius:10px}.input-form button{padding:.625rem 1rem;border-radius:10px}}@media (max-width: 480px){.chat-container{height:85vh;border-radius:10px;max-width:100%}.chat-header{padding:.75rem}.chat-header h1{font-size:1.125rem}.chat-header p{font-size:.75rem}.notification{margin:.625rem .75rem 0;padding:.625rem .875rem;font-size:.8125rem;gap:.5rem}.notification span{flex:1;min-width:0}.upload-section{padding:.5rem .75rem .25rem}.usage-indicator{font-size:.625rem;padding:.25rem .375rem;margin-top:.375rem}.usage-indicator svg{width:11px;height:11px}.usage-indicator-inline{font-size:.5625rem}.usage-indicator-inline svg{width:9px;height:9px}.messages{padding:.75rem;gap:.625rem}.message{max-width:92%}.message-content{padding:.75rem .875rem;font-size:.875rem;border-radius:10px}.empty-state{gap:.75rem}.empty-state svg{width:40px;height:40px}.empty-state p{font-size:.875rem}.input-form{padding:.5rem;gap:.375rem}.input-form input{padding:.625rem .75rem;font-size:.875rem;border-radius:8px}.input-form button{padding:.625rem .875rem;min-width:40px;border-radius:8px;flex-shrink:0}.input-form button svg{width:18px;height:18px}.sources{font-size:.8125rem}}@media (max-width: 360px){.chat-header{padding:.625rem}.chat-header h1{font-size:1rem}.chat-header p{font-size:.6875rem}.notification{margin:.5rem .5rem 0;padding:.5rem .75rem;font-size:.75rem}.upload-section{padding:.375rem .5rem .25rem}.usage-indicator{font-size:.5625rem;padding:.1875rem .3125rem;margin-top:.3125rem}.usage-indicator svg{width:10px;height:10px}.usage-indicator-inline{font-size:.5rem}.usage-indicator-inline svg{width:8px;height:8px}.messages{padding:.5rem}.message-content{padding:.625rem .75rem;font-size:.8125rem}.empty-state svg{width:36px;height:36px}.empty-state p{font-size:.8125rem}.input-form{padding:.375rem;gap:.25rem}.input-form input{padding:.5rem .625rem;font-size:.8125rem;min-width:0}.input-form button{padding:.5rem;min-width:36px}.input-form button svg{width:16px;height:16px}.sources{font-size:.75rem}.source-item{padding:.375rem .5rem}.source-item small{font-size:.75rem}}.app{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:1rem;margin:0}@media (max-width: 768px){.app{padding:.5rem}}@media (max-width: 480px){.app{padding:0}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@media (max-width: 768px){body{min-height:calc(100vh + 1px)}}
