.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border)}.model-label{display:block;font-size:.75rem;color:var(--text-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.model-selector{width:100%;padding:10px 12px;background:var(--surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.82rem;font-family:var(--font-sans);cursor:pointer;transition:var(--transition);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236a6a8e'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.model-selector:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.settings-group{margin-top:12px}.settings-group label{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:var(--text-muted);margin-bottom:6px}.settings-group label .val{color:var(--accent-light);font-weight:600;font-family:var(--font-mono);font-size:.75rem}.settings-group input[type=range]{width:100%;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border);border-radius:2px;outline:none}.settings-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--accent);border-radius:50%;cursor:pointer;box-shadow:0 0 8px var(--accent-glow)}.sidebar{width:280px;min-width:280px;background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:var(--transition);z-index:100}.sidebar.collapsed{width:0;min-width:0;overflow:hidden;border-right:none}.sidebar-header{padding:20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.logo{display:flex;align-items:center;gap:10px}.logo-icon{width:36px;height:36px;background:var(--accent-gradient);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:var(--shadow-glow)}.logo-text{font-weight:700;font-size:1.1rem;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.new-chat-btn{width:calc(100% - 40px);padding:12px 16px;margin:16px 20px;background:var(--accent-gradient);color:#fff;border:none;border-radius:var(--radius-md);font-size:.9rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:var(--transition);box-shadow:var(--shadow-glow)}.new-chat-btn:hover{transform:translateY(-1px);box-shadow:0 0 40px var(--accent-glow)}.new-chat-btn:active{transform:translateY(0)}.tools-status{padding:10px 16px;margin:0 20px 16px;background:#d4ff000d;border:1px solid rgba(212,255,0,.2);border-radius:var(--radius-md);display:flex;align-items:center;gap:10px;color:var(--accent);font-size:.82rem;font-weight:500}.tools-icon{font-size:1rem}.chat-list{flex:1;overflow-y:auto;padding:8px 12px}.chat-item{padding:10px 14px;border-radius:var(--radius-sm);cursor:pointer;margin-bottom:2px;display:flex;align-items:center;gap:10px;color:var(--text-secondary);font-size:.88rem;transition:var(--transition);position:relative}.chat-item:hover{background:var(--bg-hover);color:var(--text-primary)}.chat-item.active{background:var(--bg-tertiary);color:var(--text-primary)}.chat-item .chat-icon{font-size:1rem;opacity:.6}.chat-item .chat-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-item .delete-btn{opacity:0;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px;transition:var(--transition);font-size:.85rem}.chat-item:hover .delete-btn{opacity:1}.chat-item .delete-btn:hover{color:var(--error);background:#ff52521a}@media(max-width:768px){.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:1000;box-shadow:var(--shadow-lg)}.sidebar.collapsed{transform:translate(-100%);width:280px;min-width:280px}}.topbar{display:flex;align-items:center;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--bg-secondary);opacity:.95;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:10;gap:12px}.toggle-sidebar-btn{background:none;border:none;color:var(--text-secondary);font-size:1.3rem;cursor:pointer;padding:6px;border-radius:var(--radius-sm);transition:var(--transition);display:flex;align-items:center}.toggle-sidebar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.topbar-title{flex:1;font-weight:600;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-model{font-size:.78rem;color:var(--text-muted);background:var(--surface);padding:4px 10px;border-radius:20px;border:1px solid var(--border);font-family:var(--font-mono)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 8px #00e67680;animation:pulse 2s infinite}.status-dot.generating{background:var(--warning);box-shadow:0 0 8px #ffc10780}.message{display:flex;gap:14px;margin-bottom:24px;animation:messageIn .35s ease}.message.user{flex-direction:row-reverse}.message-avatar{width:36px;height:36px;min-width:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:16px;margin-top:2px}.message.user .message-avatar{background:var(--accent-gradient);box-shadow:var(--shadow-glow)}.message.assistant .message-avatar{background:var(--surface);border:1px solid var(--border)}.message-content{max-width:75%;min-width:60px}.message.user .message-content{text-align:right}.message-bubble{padding:12px 18px;border-radius:var(--radius-lg);font-size:.92rem;line-height:1.7;word-wrap:break-word;overflow-wrap:break-word}.message.user .message-bubble{background:var(--user-bubble);color:#fff;border-bottom-right-radius:4px;box-shadow:var(--shadow-sm)}.message.assistant .message-bubble{background:var(--ai-bubble);border:1px solid var(--border);border-bottom-left-radius:4px;color:var(--text-primary)}.message-bubble p{margin-bottom:8px}.message-bubble p:last-child{margin-bottom:0}.message-bubble h1,.message-bubble h2,.message-bubble h3,.message-bubble h4,.message-bubble h5,.message-bubble h6{color:var(--accent-light);margin:14px 0 8px}.message-bubble h1{font-size:1.3rem}.message-bubble h2{font-size:1.15rem}.message-bubble h3{font-size:1.05rem}.message-bubble ul,.message-bubble ol{margin:8px 0;padding-left:20px}.message-bubble li{margin-bottom:4px}.message-bubble a{color:var(--accent-light);text-decoration:underline}.message-bubble blockquote{border-left:3px solid var(--accent);padding-left:12px;margin:10px 0;color:var(--text-secondary)}.message-bubble hr{border:none;border-top:1px solid var(--border);margin:16px 0}.message-bubble strong{font-weight:600}.message-bubble em{font-style:italic}.message-time{font-size:.7rem;color:var(--text-muted);margin-top:4px;padding:0 4px}.message-bubble code{background:#6c5ce726;padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:.85em;color:var(--accent-light)}.code-block-wrapper{position:relative;margin:10px 0;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.code-block-header{display:flex;justify-content:space-between;align-items:center;padding:6px 14px;background:#0000004d;border-bottom:1px solid var(--border)}.code-block-lang{font-size:.72rem;color:var(--text-muted);font-family:var(--font-mono);text-transform:lowercase}.copy-code-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);padding:3px 8px;border-radius:4px;font-size:.72rem;cursor:pointer;transition:var(--transition);font-family:var(--font-sans)}.copy-code-btn:hover{color:var(--text-primary);border-color:var(--accent)}.code-block-wrapper pre{margin:0!important;padding:14px!important;background:var(--bg-primary)!important;border:none!important;border-radius:0!important}.code-block-wrapper pre code{background:none!important;padding:0!important;color:var(--text-primary)!important;font-size:.83rem!important}.typing-indicator{display:flex;gap:5px;padding:8px 4px}.typing-indicator span{width:8px;height:8px;background:var(--accent);border-radius:50%;animation:typingBounce 1.4s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}.streaming-cursor{display:inline-block;width:2px;height:1em;background:var(--accent);margin-left:2px;animation:pulse .8s infinite;vertical-align:text-bottom}@media(max-width:768px){.message-content{max-width:85%}}.input-area{position:absolute;bottom:0;left:0;right:0;padding:16px 20px 20px;background:linear-gradient(to top,var(--bg-primary) 70%,transparent)}.input-wrapper{max-width:820px;margin:0 auto;display:flex;gap:10px;align-items:flex-end;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:8px 8px 8px 18px;transition:var(--transition);box-shadow:var(--shadow-md)}.input-wrapper.focused{border-color:var(--accent);box-shadow:var(--shadow-md),0 0 0 3px var(--accent-glow)}.input-wrapper textarea{flex:1;background:none;border:none;color:var(--text-primary);font-family:var(--font-sans);font-size:.95rem;line-height:1.5;resize:none;max-height:150px;min-height:24px;padding:6px 0;outline:none}.input-wrapper textarea::placeholder{color:var(--text-muted)}.input-wrapper textarea:disabled{opacity:.5}.send-btn{width:42px;height:42px;min-width:42px;background:var(--accent-gradient);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.1rem;transition:var(--transition);box-shadow:0 0 15px var(--accent-glow)}.send-btn:hover{transform:scale(1.05);box-shadow:0 0 25px var(--accent-glow)}.send-btn:active{transform:scale(.95)}.send-btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.send-btn.stop{background:linear-gradient(135deg,var(--error),#d32f2f);box-shadow:0 0 15px #ff52524d}.send-btn.stop:hover{box-shadow:0 0 25px #ff525266}.input-hint{text-align:center;font-size:.72rem;color:var(--text-muted);margin-top:8px;max-width:820px;margin-left:auto;margin-right:auto}.input-hint strong{color:var(--text-secondary)}.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;animation:fadeIn .6s ease}.welcome-icon{width:80px;height:80px;background:var(--accent-gradient);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;font-size:36px;margin-bottom:24px;box-shadow:var(--shadow-glow);animation:float 3s ease-in-out infinite}.welcome h1{font-size:1.8rem;font-weight:700;margin-bottom:8px;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.welcome p{color:var(--text-muted);font-size:1rem;max-width:500px;margin-bottom:32px}.suggestions{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:600px;width:100%}.suggestion-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;text-align:left;cursor:pointer;transition:var(--transition);font-size:.88rem;color:var(--text-secondary);line-height:1.5}.suggestion-card:hover{border-color:var(--accent);background:var(--surface-light);color:var(--text-primary);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.suggestion-emoji{font-size:1.3rem;margin-bottom:8px;display:block}@media(max-width:768px){.suggestions{grid-template-columns:1fr}}.main{flex:1;display:flex;flex-direction:column;min-width:0;position:relative}.messages-container{flex:1;overflow-y:auto;padding:0}.messages-inner{max-width:820px;margin:0 auto;padding:24px 20px 140px}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{padding:12px 20px;border-radius:var(--radius-sm);font-size:.85rem;color:#fff;box-shadow:var(--shadow-md);animation:toastIn .3s ease;max-width:400px;pointer-events:auto;cursor:pointer;display:flex;align-items:center;gap:8px}.toast.error{background:var(--error)}.toast.success{background:#2e7d32;color:#fff}.toast.fading{animation:toastOut .3s ease forwards}.toast-icon{font-size:1rem}.toast-message{flex:1}.toast-close{background:none;border:none;color:#ffffffb3;cursor:pointer;font-size:1rem;padding:0 4px;transition:var(--transition)}.toast-close:hover{color:#fff}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #121212;--bg-secondary: #0a0a0a;--bg-tertiary: #1e1e1e;--bg-hover: #262626;--surface: #1a1a1a;--surface-light: #242424;--border: #333333;--border-light: #444444;--text-primary: #e0e0e0;--text-secondary: #a0a0a0;--text-muted: #707070;--accent: #d4ff00;--accent-light: #e6ff80;--accent-glow: rgba(212, 255, 0, .2);--accent-gradient: linear-gradient(135deg, #d4ff00, #9acd32);--success: #32cd32;--error: #ff5252;--warning: #ffc107;--user-bubble: linear-gradient(135deg, #2a2a2a, #1a1a1a);--ai-bubble: #1e1e1e;--scrollbar-thumb: #333333;--scrollbar-track: transparent;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .5);--shadow-md: 0 4px 20px rgba(0, 0, 0, .6);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .7);--shadow-glow: 0 0 30px rgba(212, 255, 0, .1);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--transition: all .25s cubic-bezier(.4, 0, .2, 1);--font-mono: "SF Mono", "Fira Code", "Cascadia Code", monospace;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);height:100vh;overflow:hidden;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100vh}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}button{font-family:var(--font-sans)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes messageIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-8px);opacity:1}}@keyframes toastIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toastOut{0%{opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
