:root{--bg: #0a0a0a;--bg-secondary: #141414;--bg-tertiary: #1e1e1e;--text: #e0e0e0;--text-dim: #888;--accent: #f97316;--accent-hover: #fb923c;--border: #2a2a2a;--user-bg: #1a1a2e;--assistant-bg: #141414;--radius: 8px}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:44px;min-height:44px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.topbar-left{display:flex;align-items:center;gap:12px}.logo{font-weight:700;font-size:1rem;color:var(--accent);cursor:pointer}.topbar-right{display:flex;align-items:center;gap:8px}.status{font-size:.75rem;color:var(--text-dim)}.main{flex:1;overflow:hidden}.chat-layout{display:flex;height:100%}.sidebar{width:240px;min-width:240px;background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-header{padding:12px}.new-chat-btn{width:100%;padding:8px 12px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-size:.85rem;font-weight:600}.new-chat-btn:hover{background:var(--accent-hover)}.sidebar-sessions{flex:1;overflow-y:auto;padding:4px 8px}.session-item{padding:8px 12px;border-radius:6px;cursor:pointer;margin-bottom:2px;font-size:.85rem;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-item:hover{background:var(--bg-tertiary);color:var(--text)}.session-title{display:block;overflow:hidden;text-overflow:ellipsis}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0}.messages{flex:1;overflow-y:auto;padding:20px 24px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;gap:8px}.empty-logo{font-size:3rem;color:var(--accent)}.empty-state h2{font-size:1.5rem;color:var(--text);margin:0}.empty-state p{color:var(--text-dim);margin:0 0 20px}.empty-hints{display:flex;flex-direction:column;gap:8px;max-width:400px;width:100%}.hint{padding:12px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:.85rem;color:var(--text-dim);text-align:left}.hint:hover{border-color:var(--accent);color:var(--text)}.message{display:flex;gap:12px;margin-bottom:20px;max-width:800px}.message-user,.message-assistant{flex-direction:row}.message-avatar{width:32px;height:32px;min-width:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;background:var(--bg-tertiary)}.message-content{flex:1;min-width:0}.message-user .message-content{background:var(--user-bg);padding:10px 14px;border-radius:12px 12px 12px 4px}.message-assistant .message-content{background:var(--assistant-bg);padding:10px 14px;border-radius:12px 12px 4px}.message-text{white-space:pre-wrap;word-break:break-word;line-height:1.6;font-size:.9rem}.message-time{font-size:.7rem;color:var(--text-dim);margin-top:4px;text-align:right}.typing-indicator{display:flex;gap:4px;padding:4px 0}.typing-indicator span{width:8px;height:8px;background:var(--text-dim);border-radius:50%;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%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.input-area{padding:12px 24px 16px;background:var(--bg)}.input-wrapper{display:flex;align-items:flex-end;gap:8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:8px 12px}.input-wrapper textarea{flex:1;background:none;border:none;color:var(--text);font-size:.9rem;resize:none;outline:none;min-height:24px;max-height:120px;line-height:1.5;font-family:inherit}.input-wrapper textarea::placeholder{color:var(--text-dim)}.input-wrapper textarea:disabled{opacity:.5}.send-btn{padding:6px 16px;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;white-space:nowrap}.send-btn:hover:not(:disabled){background:var(--accent-hover)}.send-btn:disabled{opacity:.4;cursor:not-allowed}.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;padding:20px}.error-screen pre{background:var(--bg-tertiary);padding:16px;border-radius:var(--radius);max-width:600px;overflow:auto;color:#f87171;font-size:.85rem}.error-screen button{padding:8px 24px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-size:.9rem}
