:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a2e;--bg-card: rgba(26, 26, 46, .6);--bg-glass: rgba(255, 255, 255, .03);--bg-glass-hover: rgba(255, 255, 255, .06);--bg-input: rgba(255, 255, 255, .05);--text-primary: #e8e8f0;--text-secondary: #9898b0;--text-muted: #5a5a78;--text-accent: #a78bfa;--accent-violet: #8b5cf6;--accent-pink: #ec4899;--accent-amber: #f59e0b;--accent-emerald: #10b981;--accent-red: #ef4444;--gradient-main: linear-gradient(135deg, #8b5cf6, #ec4899, #f59e0b);--gradient-subtle: linear-gradient(135deg, rgba(139, 92, 246, .15), rgba(236, 72, 153, .15));--gradient-card: linear-gradient(145deg, rgba(255,255,255,.04), rgba(255,255,255,.01));--border-color: rgba(255, 255, 255, .06);--border-active: rgba(139, 92, 246, .4);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 20px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .5);--shadow-glow: 0 0 30px rgba(139, 92, 246, .15);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--sidebar-width: 280px;--header-height: 60px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--transition: all .2s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}.app{display:flex;height:100vh;width:100vw;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;transition:var(--transition);z-index:20}.sidebar-header{padding:20px 16px 12px;border-bottom:1px solid var(--border-color)}.sidebar-logo{display:flex;align-items:center;gap:10px;margin-bottom:16px}.sidebar-logo-icon{width:32px;height:32px;border-radius:10px;background:var(--gradient-main);display:flex;align-items:center;justify-content:center;font-size:16px}.sidebar-logo h1{font-size:16px;font-weight:600;background:var(--gradient-main);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.new-chat-btn{width:100%;padding:10px 16px;border:1px dashed var(--border-active);border-radius:var(--radius-md);background:var(--gradient-subtle);color:var(--accent-violet);font-size:14px;font-weight:500;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-family)}.new-chat-btn:hover{background:#8b5cf626;border-color:var(--accent-violet);box-shadow:var(--shadow-glow)}.sidebar-list{flex:1;overflow-y:auto;padding:8px}.sidebar-item{padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);margin-bottom:2px;display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--text-secondary);position:relative}.sidebar-item:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.sidebar-item.active{background:var(--gradient-subtle);color:var(--text-primary);border:1px solid var(--border-active)}.sidebar-item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.sidebar-item-delete{opacity:0;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px;transition:var(--transition);font-size:14px;display:flex;align-items:center}.sidebar-item:hover .sidebar-item-delete{opacity:1}.sidebar-item-delete:hover{color:var(--accent-red);background:#ef44441a}.main{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;background:var(--bg-primary)}.main-header{height:var(--header-height);padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color);background:#0a0a0fcc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:10}.main-header h2{font-size:15px;font-weight:500;color:var(--text-secondary)}.mobile-menu-btn{display:none;background:none;border:none;color:var(--text-primary);font-size:20px;cursor:pointer;padding:8px}.chat-area{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:24px}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;opacity:.7}.empty-state-icon{font-size:64px;line-height:1;margin-bottom:8px}.empty-state h3{font-size:22px;font-weight:600;background:var(--gradient-main);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.empty-state p{color:var(--text-muted);font-size:14px;max-width:360px;line-height:1.6}.message-pair{display:flex;flex-direction:column;gap:16px;animation:fadeInUp .4s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.user-message{align-self:flex-end;max-width:70%;padding:12px 18px;background:var(--gradient-subtle);border:1px solid var(--border-active);border-radius:var(--radius-lg) var(--radius-lg) 4px var(--radius-lg);color:var(--text-primary);font-size:14px;line-height:1.6;word-break:break-word}.ai-response{display:flex;flex-direction:column;gap:16px;max-width:100%}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.image-card{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--gradient-card);border:1px solid var(--border-color);transition:var(--transition)}.image-card:hover{border-color:var(--border-active);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.image-card img{width:100%;display:block;aspect-ratio:auto;object-fit:contain;background:#000}.image-card-overlay{position:absolute;bottom:0;left:0;right:0;padding:12px;background:linear-gradient(transparent,#000c);display:flex;align-items:center;justify-content:flex-end;gap:8px;opacity:0;transition:var(--transition)}.image-card:hover .image-card-overlay{opacity:1}.image-card-btn{padding:6px 12px;border-radius:var(--radius-sm);border:none;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-size:12px;cursor:pointer;transition:var(--transition);display:flex;align-items:center;gap:4px;font-family:var(--font-family)}.image-card-btn:hover{background:#ffffff40}.image-card-btn.download{background:#8b5cf699}.image-card-btn.download:hover{background:#8b5cf6cc}.image-card-info{position:absolute;top:8px;left:8px;display:flex;gap:4px}.image-card-badge{padding:3px 8px;border-radius:6px;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-secondary);font-size:11px;font-weight:500}.error-message{padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:#fca5a5;font-size:13px;line-height:1.5;display:flex;align-items:flex-start;gap:10px}.error-message-icon{font-size:16px;flex-shrink:0;margin-top:1px}.prompt-area{padding:16px 24px 20px;border-top:1px solid var(--border-color);background:#0a0a0fe6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.prompt-params{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.param-chip{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-sm);background:var(--bg-glass);border:1px solid var(--border-color);font-size:12px;color:var(--text-secondary);transition:var(--transition);cursor:pointer;font-family:var(--font-family);position:relative}.param-chip:hover{background:var(--bg-glass-hover);border-color:var(--border-active)}.param-chip.active{border-color:var(--accent-violet);color:var(--accent-violet);background:#8b5cf61a}.param-chip select{background:transparent;border:none;color:inherit;font-size:12px;font-family:var(--font-family);cursor:pointer;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:14px}.param-chip select option{background:var(--bg-tertiary);color:var(--text-primary)}.param-chip-hint{font-size:10px;padding:1px 5px;border-radius:4px;background:#10b98133;color:var(--accent-emerald);font-weight:500}.prompt-input-wrapper{display:flex;gap:12px;align-items:flex-end}.prompt-textarea{flex:1;min-height:48px;max-height:160px;padding:12px 16px;border-radius:var(--radius-lg);border:1px solid var(--border-color);background:var(--bg-input);color:var(--text-primary);font-size:14px;font-family:var(--font-family);resize:none;transition:var(--transition);line-height:1.5;outline:none}.prompt-textarea:focus{border-color:var(--accent-violet);box-shadow:0 0 0 3px #8b5cf61a}.prompt-textarea::placeholder{color:var(--text-muted)}.send-btn{width:48px;height:48px;border-radius:var(--radius-md);border:none;background:var(--gradient-main);color:#fff;font-size:20px;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;flex-shrink:0}.send-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:var(--shadow-glow)}.send-btn:disabled{opacity:.5;cursor:not-allowed}.loading-indicator{display:flex;align-items:center;gap:12px;padding:16px 20px;border-radius:var(--radius-lg);background:var(--gradient-card);border:1px solid var(--border-color)}.loading-dots{display:flex;gap:4px}.loading-dots span{width:8px;height:8px;border-radius:50%;background:var(--accent-violet);animation:bounce 1.4s infinite both}.loading-dots span:nth-child(2){animation-delay:.16s}.loading-dots span:nth-child(3){animation-delay:.32s}@keyframes bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.loading-text{font-size:13px;color:var(--text-secondary)}.params-toggle-btn{padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:var(--transition);font-family:var(--font-family);display:flex;align-items:center;gap:4px}.params-toggle-btn:hover,.params-toggle-btn.active{background:#8b5cf61a;border-color:var(--accent-violet);color:var(--accent-violet)}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:24px;max-width:360px;width:90%;box-shadow:var(--shadow-lg)}.confirm-dialog h3{font-size:16px;font-weight:600;margin-bottom:8px}.confirm-dialog p{color:var(--text-secondary);font-size:14px;margin-bottom:20px;line-height:1.5}.confirm-actions{display:flex;gap:10px;justify-content:flex-end}.confirm-actions button{padding:8px 20px;border-radius:var(--radius-sm);border:none;font-size:13px;font-weight:500;cursor:pointer;transition:var(--transition);font-family:var(--font-family)}.confirm-cancel{background:var(--bg-glass);color:var(--text-secondary);border:1px solid var(--border-color)!important}.confirm-cancel:hover{background:var(--bg-glass-hover)}.confirm-delete{background:#ef4444cc;color:#fff}.confirm-delete:hover{background:#ef4444}.upload-btn{width:48px;height:48px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-secondary);font-size:18px;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;flex-shrink:0}.upload-btn:hover{background:var(--bg-glass-hover);border-color:var(--border-active);color:var(--accent-violet)}.upload-btn.has-image{border-color:var(--accent-emerald);color:var(--accent-emerald);background:#10b9811a}.upload-previews-container{display:flex;flex-wrap:wrap;gap:8px;padding:8px 12px;background:#ffffff0d;border-bottom:1px solid var(--border-color);align-items:center;max-height:120px;overflow-y:auto}.upload-preview-item{position:relative;width:50px;height:50px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-color);flex-shrink:0}.upload-preview-item img{width:100%;height:100%;object-fit:cover}.upload-preview-remove-small{position:absolute;top:2px;right:2px;width:16px;height:16px;background:#ef4444cc;color:#fff;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;cursor:pointer;transition:var(--transition);z-index:2}.upload-preview-remove-small:hover{background:#ef4444}.upload-previews-info{font-size:12px;color:var(--text-secondary);margin-left:4px}.user-message-image{margin-bottom:8px;position:relative;display:inline-block}.user-message-image img{max-width:120px;max-height:120px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.1)}.user-message-image-label{display:block;font-size:11px;color:var(--text-secondary);margin-bottom:4px}.user-message-images-grid{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px;max-width:300px}.user-message-image-small{width:60px;height:60px;border-radius:4px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.user-message-image-small img{width:100%;height:100%;object-fit:cover}@media (max-width: 768px){.sidebar{position:fixed;left:-100%;top:0;bottom:0;z-index:50;transition:left .3s ease}.sidebar.open{left:0}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:40;display:none}.sidebar-backdrop.open,.mobile-menu-btn{display:block}.chat-area{padding:16px}.prompt-area{padding:12px 16px 16px}.user-message{max-width:90%}.image-grid{grid-template-columns:1fr}}@media (max-width: 480px){.prompt-params{gap:6px}.param-chip{padding:5px 8px;font-size:11px}}.login-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at top left,#1a1a1a,#000);display:flex;align-items:center;justify-content:center;z-index:9000;padding:20px}.login-card{background:#282828b3;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);padding:40px;border-radius:24px;width:100%;max-width:400px;text-align:center;box-shadow:0 20px 50px #00000080;animation:loginSlideUp .5s ease-out}@keyframes loginSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-icon{font-size:48px;margin-bottom:20px}.login-card h2{margin-bottom:12px;font-weight:600}.login-card p{color:#aaa;font-size:14px;margin-bottom:30px;line-height:1.6}.login-card input{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);padding:14px 20px;border-radius:12px;color:#fff;font-size:16px;outline:none;transition:all .3s;margin-bottom:20px;text-align:center;letter-spacing:4px}.login-card input:focus{border-color:var(--accent-violet);background:#ffffff14;box-shadow:0 0 0 4px #8b5cf633}.login-card input.error{border-color:#f44;animation:loginShake .4s}@keyframes loginShake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.login-card button{width:100%;background:var(--accent-violet);color:#fff;border:none;padding:14px;border-radius:12px;font-weight:600;cursor:pointer;transition:all .3s}.login-card button:hover{filter:brightness(1.1);transform:translateY(-1px)}.login-error-text{color:#f44;font-size:12px;margin-top:12px}
