:root{--bg-primary: #1a1a2e;--bg-secondary: #16162a;--bg-sidebar: #0f0f1a;--bg-input: #252540;--bg-hover: #2a2a4a;--bg-code: #0d0d1a;--text-primary: #e8e8f0;--text-secondary: #a0a0b8;--accent: #4285f4;--accent-light: #8ab4f8;--border: #2a2a45;--user-bubble: #4285f4;--ai-bubble: #252540;--radius: 12px;--radius-sm: 8px;--shadow: 0 4px 12px rgba(0,0,0,.3)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden;font-family:Google Sans,Segoe UI,system-ui,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5}.app{display:flex;height:100vh;width:100vw}.sidebar{width:280px;min-width:280px;background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:width .3s ease}.sidebar.collapsed{width:0;min-width:0;overflow:hidden}.sidebar-header{padding:16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.logo{font-size:18px;font-weight:700;color:var(--accent-light);display:flex;align-items:center;gap:8px}.new-chat-btn{width:100%;margin:12px 16px;padding:10px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:500;transition:background .2s}.new-chat-btn:hover{background:var(--bg-hover)}.session-list{flex:1;overflow-y:auto;padding:0 8px 12px}.session-item{padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px;font-size:13px;color:var(--text-secondary);transition:background .15s}.session-item:hover,.session-item.active{background:var(--bg-hover);color:var(--text-primary)}.session-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-delete{opacity:0;background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px}.session-item:hover .session-delete{opacity:1}.session-delete:hover{color:#f44;background:#ff44441a}.main-area{flex:1;display:flex;flex-direction:column;min-width:0;position:relative}.top-bar{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.top-bar-left{display:flex;align-items:center;gap:12px}.toggle-sidebar{background:none;border:none;color:var(--text-secondary);font-size:20px;cursor:pointer;padding:4px;border-radius:4px}.toggle-sidebar:hover{background:var(--bg-hover)}.model-badge{font-size:12px;color:var(--text-secondary);background:var(--bg-input);padding:4px 10px;border-radius:20px}.chat-thread{flex:1;overflow-y:auto;padding:24px 20px;display:flex;flex-direction:column;gap:16px;scroll-behavior:smooth}.welcome{text-align:center;padding:60px 20px;color:var(--text-secondary)}.welcome h1{font-size:36px;font-weight:700;background:linear-gradient(90deg,#4285f4,#8ab4f8,#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:12px}.message-row{display:flex;gap:12px;max-width:900px;width:100%;margin:0 auto}.message-row.user{flex-direction:row-reverse}.avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}.avatar.user{background:linear-gradient(135deg,#4285f4,#34a853);color:#fff}.avatar.ai{background:linear-gradient(135deg,#8ab4f8,#a855f7);color:#fff}.message-content{flex:1;min-width:0;padding:14px 18px;border-radius:var(--radius);font-size:14.5px;line-height:1.65}.message-row.user .message-content{background:var(--user-bubble);color:#fff;border-bottom-right-radius:4px}.message-row.ai .message-content{background:var(--ai-bubble);color:var(--text-primary);border-bottom-left-radius:4px}.message-content p{margin-bottom:.8em}.message-content p:last-child{margin-bottom:0}.message-content pre{background:var(--bg-code);border-radius:var(--radius-sm);padding:14px;overflow-x:auto;margin:10px 0;border:1px solid var(--border)}.message-content code{font-family:Roboto Mono,monospace;font-size:13px}.message-content p code{background:var(--bg-code);padding:2px 6px;border-radius:4px;border:1px solid var(--border)}.message-content table{border-collapse:collapse;width:100%;margin:10px 0}.message-content th,.message-content td{border:1px solid var(--border);padding:8px 12px;text-align:left}.message-content th{background:var(--bg-hover)}.message-content ul,.message-content ol{margin:8px 0;padding-left:22px}.attachments{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.attachment-thumb{width:60px;height:60px;border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--border);cursor:pointer}.attachment-file{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-input);border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary)}.typing-indicator{display:flex;gap:4px;padding:14px 18px}.typing-indicator span{width:8px;height:8px;background:var(--text-secondary);border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.input-bar{padding:16px 20px 24px;flex-shrink:0}.input-container{max-width:900px;margin:0 auto;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;display:flex;flex-direction:column;gap:8px}.input-row{display:flex;align-items:flex-end;gap:8px}.textarea{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:15px;resize:none;max-height:200px;min-height:24px;font-family:inherit;line-height:1.5}.textarea::placeholder{color:var(--text-secondary)}.input-actions{display:flex;align-items:center;gap:8px}.icon-btn{background:none;border:none;color:var(--text-secondary);font-size:20px;cursor:pointer;padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.icon-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.send-btn{background:var(--accent)!important;color:#fff!important;padding:8px 12px!important}.send-btn:hover{background:var(--accent-light)!important}.upload-preview{display:flex;gap:8px;flex-wrap:wrap}.preview-item{position:relative;width:60px;height:60px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.preview-item img{width:100%;height:100%;object-fit:cover}.preview-remove{position:absolute;top:2px;right:2px;background:#0009;color:#fff;border:none;border-radius:50%;width:18px;height:18px;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center}.asset-panel{width:320px;min-width:320px;background:var(--bg-secondary);border-left:1px solid var(--border);display:flex;flex-direction:column;transition:width .3s ease}.asset-panel.collapsed{width:0;min-width:0;overflow:hidden}.asset-header{padding:16px;border-bottom:1px solid var(--border);font-weight:600;font-size:14px;display:flex;align-items:center;justify-content:space-between}.asset-list{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}.asset-item{padding:10px;background:var(--bg-input);border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;transition:border-color .15s}.asset-item:hover{border-color:var(--accent)}.asset-item img{width:100%;height:120px;object-fit:cover;border-radius:6px;margin-bottom:8px}.asset-meta{font-size:12px;color:var(--text-secondary);word-break:break-all}.empty-assets{text-align:center;padding:40px 20px;color:var(--text-secondary);font-size:13px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@media (max-width: 1024px){.asset-panel{display:none}}@media (max-width: 768px){.sidebar{position:absolute;z-index:100;height:100%}}
