*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0f0f0f;--bg-secondary:#1a1a1a;--bg-tertiary:#252525;--text-primary:#fff;--text-secondary:#a0a0a0;--accent:#6366f1;--accent-hover:#818cf8;--success:#22c55e;--warning:#f59e0b;--error:#ef4444;--border:#333;--user-bubble:#6366f1;--assistant-bubble:#2a2a2a}body{background:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.container{flex-direction:column;max-width:900px;height:100vh;margin:0 auto;padding:20px;display:flex}header{text-align:center;margin-bottom:20px}header h1{margin-bottom:4px;font-size:1.8rem;font-weight:600}.subtitle{color:var(--text-secondary);font-size:.9rem}.subtitle a{color:var(--accent);text-decoration:none}.subtitle a:hover{color:var(--accent-hover);text-decoration:underline}.install-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:16px;margin-left:8px;padding:4px 12px;font-size:.8rem;transition:all .2s}.install-btn:hover{background:var(--accent-hover);transform:scale(1.05)}.install-btn.hidden{display:none}.model-controls{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:16px;display:flex}.model-selector{flex:1;align-items:center;gap:8px;display:flex}.model-selector label{color:var(--text-secondary);white-space:nowrap;font-size:.9rem}.model-selector select{background:var(--bg-tertiary);border:1px solid var(--border);min-width:200px;color:var(--text-primary);cursor:pointer;border-radius:8px;flex:1;padding:10px 14px;font-size:.9rem}.model-selector select:focus{border-color:var(--accent);outline:none}.btn{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:.9rem;font-weight:500;transition:all .2s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.progress-container{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:16px}.progress-container.hidden{display:none}.progress-info{justify-content:space-between;margin-bottom:8px;font-size:.85rem;display:flex}#progress-text{color:var(--text-secondary)}#progress-percent{color:var(--accent);font-weight:600}.progress-bar{background:var(--bg-tertiary);border-radius:4px;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent), var(--accent-hover));width:0%;height:100%;transition:width .3s}.gpu-info{color:var(--text-secondary);text-align:center;margin-bottom:12px;font-size:.8rem}.gpu-info:empty{display:none}.chat-container{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.chat-messages{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.welcome-message{text-align:center;color:var(--text-secondary);padding:40px 20px}.welcome-message p{margin-bottom:8px}.welcome-message .note{opacity:.7;font-size:.85rem}.message{word-wrap:break-word;border-radius:16px;max-width:80%;padding:12px 16px;line-height:1.5}.message.user{background:var(--user-bubble);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.message.assistant{background:var(--assistant-bubble);border-bottom-left-radius:4px;align-self:flex-start}.message.assistant pre{background:var(--bg-primary);border-radius:8px;margin:8px 0;padding:12px;overflow-x:auto}.message.assistant code{font-family:Fira Code,Consolas,monospace;font-size:.85rem}.message.error{border:1px solid var(--error);color:var(--error);background:#ef444433}.message .typing-indicator{gap:4px;display:inline-flex}.message .typing-indicator span{background:var(--text-secondary);border-radius:50%;width:6px;height:6px;animation:1.4s infinite typing}.message .typing-indicator span:nth-child(2){animation-delay:.2s}.message .typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.chat-input-container{border-top:1px solid var(--border);background:var(--bg-tertiary);gap:12px;padding:16px;display:flex}#user-input{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);resize:none;border-radius:12px;flex:1;min-height:48px;max-height:150px;padding:12px 16px;font-family:inherit;font-size:.95rem}#user-input:focus{border-color:var(--accent);outline:none}#user-input:disabled{opacity:.5}#user-input::placeholder{color:var(--text-secondary)}.stats-bar{background:var(--bg-secondary);color:var(--text-secondary);text-align:center;border-radius:8px;margin-top:12px;padding:8px 16px;font-size:.8rem}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-track{background:0 0}.chat-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.chat-messages::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@media (width<=600px){.container{padding:12px}header h1{font-size:1.4rem}.model-controls,.model-selector{flex-direction:column;align-items:stretch}.model-selector select{min-width:100%}.message{max-width:90%}}
