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