*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0f0f13;--bg-secondary:#1a1a24;--bg-tertiary:#24243a;--bg-hover:#2a2a42;--text-primary:#e8e8f0;--text-secondary:#a0a0b8;--text-muted:#6b6b80;--accent:#6c5ce7;--accent-hover:#7c6ff0;--accent-glow:#6c5ce74d;--danger:#e74c3c;--success:#2ecc71;--border:#2a2a3e;--border-light:#3a3a50;--radius:10px;--radius-sm:6px;--shadow:0 2px 12px #0000004d;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}html,body{background:var(--bg-primary);height:100%;color:var(--text-primary);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}#root{height:100%}.app{flex-direction:column;max-width:900px;height:100%;margin:0 auto;padding:0 16px;display:flex;position:relative}.app-header{z-index:100;justify-content:flex-end;padding:12px 0;display:flex;position:sticky;top:0}.chat-container{flex-direction:column;flex:1;min-height:0;display:flex}.chat-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 0 16px;display:flex}.chat-header h1{background:linear-gradient(135deg, var(--accent), #a29bfe);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:20px;font-weight:600}.chat-header-left,.chat-header-right{align-items:center;gap:12px;display:flex}.model-selector{align-items:center;gap:8px;display:flex}.model-selector label{color:var(--text-secondary);white-space:nowrap;font-size:13px}.model-selector select{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;outline:none;padding:6px 10px;font-size:13px;transition:border-color .2s}.model-selector select:hover,.model-selector select:focus{border-color:var(--accent)}.clear-button{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;align-items:center;gap:4px;padding:6px 10px;font-size:12px;transition:all .2s;display:flex}.clear-button:hover{border-color:var(--danger);color:var(--danger);background:#e74c3c1a}.error-banner{color:#ff6b6b;border-radius:var(--radius);background:#e74c3c26;border:1px solid #e74c3c4d;flex-shrink:0;justify-content:space-between;align-items:center;margin:8px 0;padding:10px 16px;font-size:13px;display:flex}.error-banner button{color:#ff6b6b;border-radius:var(--radius-sm);cursor:pointer;background:#e74c3c33;border:1px solid #e74c3c4d;padding:4px 12px;font-size:12px;transition:background .2s}.error-banner button:hover{background:#e74c3c4d}.message-list{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;flex:1;gap:16px;padding:16px 0;display:flex;overflow-y:auto}.message-list.empty{justify-content:center;align-items:center;display:flex}.welcome-message{text-align:center;max-width:400px}.welcome-icon{color:var(--accent);opacity:.8;margin-bottom:16px}.welcome-message h2{margin-bottom:8px;font-size:24px;font-weight:600}.welcome-message p{color:var(--text-secondary);font-size:14px;line-height:1.6}.welcome-message .hint{color:var(--text-muted);margin-top:8px;font-size:13px}.message{gap:12px;animation:.3s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.message.user .message-avatar{background:var(--accent);color:#fff}.message.assistant .message-avatar{background:var(--bg-tertiary);color:var(--accent);border:1px solid var(--border)}.message-content{flex:1;min-width:0}.message-role{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:12px;font-weight:600}.message-text{color:var(--text-primary);white-space:pre-wrap;word-wrap:break-word;font-size:14px;line-height:1.7}.typing-indicator{align-items:center;gap:4px;padding:4px 0;display:inline-flex}.typing-indicator span{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite typing}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}.message-input-wrapper{border-top:1px solid var(--border);background:var(--bg-primary);flex-shrink:0;transition:background .2s;position:relative}.message-input-wrapper.drag-over{border-top-color:var(--accent);background:#6c5ce714}.message-input-wrapper.drag-over:before{content:"Drop images here";color:var(--accent);z-index:10;border-radius:var(--radius);pointer-events:none;background:#0f0f13d9;justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute;inset:0}.file-error-banner{color:#ff6b6b;border-radius:var(--radius-sm);background:#e74c3c1f;border:1px solid #e74c3c40;justify-content:space-between;align-items:center;margin:8px 12px 0;padding:8px 14px;font-size:13px;display:flex}.file-error-banner button{color:#ff6b6b;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.attachment-preview-strip{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-shrink:0;gap:8px;padding:8px 12px 0;display:flex;overflow-x:auto}.attachment-preview-item{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0;width:72px;height:72px;position:relative;overflow:hidden}.attachment-preview-item img{object-fit:cover;width:100%;height:100%}.attachment-remove-btn{color:#fff;cursor:pointer;background:#000000b3;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:14px;line-height:1;transition:background .2s;display:flex;position:absolute;top:2px;right:2px}.attachment-remove-btn:hover{background:#e74c3ce6}.attachment-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;background:#0009;padding:2px 4px;font-size:10px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.message-input-container{align-items:flex-end;gap:8px;padding:12px;display:flex}.message-input{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font);resize:none;outline:none;flex:1;min-height:48px;max-height:200px;padding:12px 16px;font-size:14px;line-height:1.5;transition:border-color .2s}.message-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.message-input::placeholder{color:var(--text-muted)}.message-input:disabled{opacity:.6;cursor:not-allowed}.attach-button{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-secondary);width:48px;height:48px;color:var(--text-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.attach-button:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--bg-hover)}.attach-button:disabled{opacity:.4;cursor:not-allowed}.send-button{border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;transition:all .2s;display:flex}.send-button:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 0 16px var(--accent-glow)}.send-button:disabled{opacity:.4;cursor:not-allowed}.content-parts{flex-direction:column;gap:8px;display:flex}.content-parts p{margin:0}.content-image-wrapper{border-radius:var(--radius-sm);border:1px solid var(--border);max-width:100%;display:inline-block;overflow:hidden}.content-image{object-fit:contain;border-radius:var(--radius-sm);max-width:100%;max-height:400px;display:block}.loading-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.settings{position:relative}.settings-button{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.settings-button:hover{border-color:var(--accent);color:var(--accent);background:var(--bg-hover)}.settings-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);width:340px;box-shadow:var(--shadow);z-index:200;padding:20px;animation:.2s slideDown;position:absolute;top:calc(100% + 8px);right:0}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.settings-panel h3{color:var(--text-primary);margin-bottom:16px;font-size:16px;font-weight:600}.settings-field{margin-bottom:16px}.settings-field label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.settings-field input{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);outline:none;padding:10px 12px;font-family:monospace;font-size:13px;transition:border-color .2s}.settings-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.settings-hint{color:var(--text-muted);margin-top:6px;font-size:12px}.settings-hint a{color:var(--accent);text-decoration:none}.settings-hint a:hover{text-decoration:underline}.settings-actions{justify-content:flex-end;gap:8px;display:flex}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:8px 20px;font-size:13px;font-weight:500;transition:background .2s}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:8px 20px;font-size:13px;transition:all .2s}.btn-secondary:hover{border-color:var(--border-light);color:var(--text-primary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}@media (width<=600px){.app{padding:0 12px}.chat-header{flex-direction:column;align-items:flex-start;gap:8px}.chat-header-right{justify-content:space-between;width:100%}.settings-panel{width:calc(100vw - 24px);right:-12px}.message-input{font-size:16px}}
