.chat-panel{display:flex;flex-direction:column;height:100%;background:linear-gradient(135deg,#1a1d24,#23272f);border:1px solid rgba(102,126,234,.2);border-radius:clamp(8px,3vw,12px);overflow:hidden;box-shadow:0 4px 12px #0003;width:100%;transition:all .3s ease}.chat-panel:hover{border-color:#667eea80;box-shadow:0 8px 24px #667eea26}.chat-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:clamp(.6rem,2vw,1rem) clamp(.8rem,3vw,1.5rem);display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0003;flex-wrap:wrap;gap:clamp(.5rem,2vw,1rem)}.chat-header h2{margin:0;color:#fff;font-size:clamp(1.1rem,4vw,1.5rem);font-weight:600;flex:1;min-width:150px}.chat-controls{display:flex;gap:clamp(.3rem,2vw,.5rem);align-items:center;flex-wrap:wrap;justify-content:flex-end}.model-select{padding:clamp(.3rem,1.5vw,.5rem) clamp(.6rem,2vw,1rem);border:2px solid rgba(255,255,255,.3);border-radius:clamp(6px,2vw,8px);background:#ffffff26;color:#fff;font-size:clamp(.75rem,2vw,.9rem);cursor:pointer;transition:all .2s ease;min-width:clamp(100px,20vw,140px);max-width:100%}.model-select:hover{background:#ffffff40;border-color:#fff}.model-select:focus{outline:none;border-color:#34d399;box-shadow:0 0 8px #34d3994d}.model-select option{background:#2a2d35;color:#fff}.chat-session-select{padding:clamp(.3rem,1.5vw,.5rem) clamp(.6rem,2vw,1rem);border:2px solid rgba(255,255,255,.3);border-radius:clamp(6px,2vw,8px);background:#ffffff26;color:#fff;font-size:clamp(.75rem,2vw,.9rem);cursor:pointer;transition:all .2s ease;min-width:clamp(100px,20vw,140px);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;appearance:none}.chat-session-select option{background:#2a2d35;color:#fff}.new-chat-btn{padding:.25rem .4rem;border:1px solid rgba(255,255,255,.3);border-radius:6px;background:#ffffff1a;color:#fff;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:50px;text-align:center}.new-chat-btn:hover{background:#fff3;border-color:#ffffff80}.clear-btn{padding:clamp(.3rem,1.5vw,.5rem) clamp(.6rem,2vw,1rem);border:none;border-radius:clamp(6px,2vw,8px);background:#ffffff26;color:#fff;font-size:clamp(.75rem,2vw,.9rem);cursor:pointer;transition:all .2s ease;min-height:clamp(32px,6vw,40px);min-width:clamp(60px,15vw,90px)}.clear-btn:hover{background:#ffffff40;transform:translateY(-1px)}.clear-btn:active{transform:scale(.98)}.settings-btn{padding:clamp(.3rem,1.5vw,.5rem) clamp(.6rem,2vw,1rem);border:none;border-radius:clamp(6px,2vw,8px);background:#ffffff26;color:#fff;font-size:clamp(.95rem,3vw,1.2rem);cursor:pointer;transition:all .2s ease;min-height:clamp(32px,6vw,40px);min-width:clamp(32px,8vw,40px)}.settings-btn:hover{background:#ffffff40;transform:translateY(-1px)}.settings-btn:hover{background:#ffffff4d}.settings-btn:active{transform:scale(.98)}.messages-container{flex:1;overflow-y:auto;padding:clamp(.8rem,3vw,1.5rem);background:#23272f;display:flex;flex-direction:column;gap:clamp(.6rem,2vw,1rem)}.messages-container::-webkit-scrollbar{width:clamp(6px,1.5vw,8px)}.messages-container::-webkit-scrollbar-track{background:#1a1d24}.messages-container::-webkit-scrollbar-thumb{background:#667eea;border-radius:4px}.messages-container::-webkit-scrollbar-thumb:hover{background:#764ba2}.empty-state{text-align:center;color:#8b92a8;margin:auto;padding:clamp(1rem,4vw,2rem)}.empty-state p{margin:clamp(.25rem,1vw,.5rem) 0;font-size:clamp(.9rem,2vw,1.1rem)}.connection-info{font-size:clamp(.75rem,1.5vw,.85rem)!important;color:#667eea;margin-top:clamp(.6rem,2vw,1rem)!important}.message{display:flex;flex-direction:column;gap:clamp(.3rem,1vw,.5rem);padding:clamp(.7rem,2vw,1rem);border-radius:clamp(8px,3vw,12px);max-width:95%;animation:slideIn .3s ease;word-wrap:break-word;overflow-wrap:break-word}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{align-self:flex-end;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.message.assistant{align-self:flex-start;background:#2a2d35;color:#e4e7eb;border:1px solid #3a3f4a}.message-header{display:flex;justify-content:space-between;align-items:center;font-size:clamp(.7rem,1.5vw,.85rem);opacity:.9;flex-wrap:wrap;gap:.5rem}.message-role{font-weight:600}.message-time{font-size:clamp(.65rem,1.3vw,.75rem);opacity:.7}.message-content{font-size:clamp(.85rem,2vw,1rem);line-height:1.5;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word}.message-content code{background:#0000004d;padding:.2em .4em;border-radius:4px;font-family:Courier New,monospace;font-size:.9em}.message-content pre{background:#00000080;border:1px solid rgba(102,126,234,.3);border-radius:8px;padding:clamp(.6rem,2vw,1rem);margin:clamp(.3rem,1vw,.5rem) 0;overflow-x:auto;font-size:clamp(.75rem,1.5vw,.85rem);line-height:1.4;position:relative;-webkit-user-select:text;user-select:text}.message-content .code-block{background:#00000080;border:1px solid rgba(102,126,234,.3);border-radius:8px;padding:1rem;margin:.5rem 0;overflow-x:auto;position:relative;user-select:text;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text}.message-content .code-block code{background:none;padding:0;border-radius:0;display:block;color:#50fa7b;font-family:Courier New,monospace;font-size:.9em;white-space:pre;word-break:break-all;user-select:text;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;cursor:text}.message-content .code-block:before{content:attr(class);display:block;font-size:.75rem;color:#667eea;margin-bottom:.5rem;opacity:.8;text-transform:uppercase;letter-spacing:1px}.message-content .code-block.language-bash:before{content:"$ bash"}.message-content .code-block.language-bash code{color:#50fa7b}.message-content :not(pre)>code{background:#667eea33;color:#50fa7b;padding:.2em .4em;border-radius:4px;-webkit-user-select:text;user-select:text}.message-actions{display:flex;gap:.5rem;margin-top:.5rem;opacity:0;transition:opacity .2s}.message:hover .message-actions{opacity:1}.message-actions button{padding:.3rem .6rem;background:#ffffff1a;color:inherit;border:1px solid rgba(255,255,255,.2);border-radius:6px;cursor:pointer;font-size:.85rem;transition:all .2s}.message-actions button:hover{background:#fff3;transform:translateY(-1px)}.message-actions button:active{transform:translateY(0)}.typing-indicator{display:flex;gap:.3rem;align-items:center}.typing-indicator span{width:8px;height:8px;border-radius:50%;background:#667eea;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%,60%,to{transform:translateY(0);opacity:.7}30%{transform:translateY(-10px);opacity:1}}.input-container{padding:1rem 1.5rem;background:#1a1d24;border-top:1px solid #3a3f4a;display:flex;gap:.75rem;align-items:flex-end}.input-container textarea{flex:1;padding:.75rem 1rem;border:2px solid #3a3f4a;border-radius:8px;background:#23272f;color:#fff;font-size:1rem;font-family:inherit;resize:none;transition:border-color .2s}.input-container textarea:focus{outline:none;border-color:#667eea}.input-container textarea::placeholder{color:#8b92a8}.send-btn{padding:.75rem 1.5rem;border:none;border-radius:8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;white-space:nowrap}.send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.send-btn:active:not(:disabled){transform:translateY(0)}.send-btn:disabled{opacity:.5;cursor:not-allowed}.voice-btn{padding:.75rem;border:2px solid #3a3f4a;border-radius:8px;background:#23272f;color:#fff;font-size:1rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;min-width:48px;min-height:48px}.voice-btn:hover:not(:disabled){border-color:#667eea;background:#667eea1a}.voice-btn:active:not(:disabled){border-color:#ff6b6b;background:#ff6b6b33;transform:scale(.95)}.voice-btn.recording{border-color:#ff6b6b;background:#ff6b6b1a;animation:pulse 1.5s infinite}.voice-btn.speaking{border-color:#34d399;background:#34d3991a;animation:pulse 1s infinite}.voice-btn:disabled{opacity:.5;cursor:not-allowed}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:#2a2d35;border-radius:12px;padding:1.5rem;max-width:600px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #00000080}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.1)}.modal-header h3{margin:0;color:#fff;font-size:1.3rem}.close-btn{margin:0;background:linear-gradient(135deg,var(--primary-gradient-from) 0%,var(--primary-gradient-to) 100%);color:#fff;border:none;border-radius:6px;padding:.5em 1em;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.close-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.modal-body{color:#fff}.modal-body label{display:block;margin-bottom:.5rem}.modal-body small{color:#ffffffb3}@media(max-width:480px){.chat-panel{border-radius:0}.chat-header{padding:.5rem .75rem;flex-direction:column;align-items:flex-start}.chat-header h2{font-size:1rem;margin-bottom:.5rem}.chat-controls{width:100%;gap:.25rem}.model-select,.clear-btn,.settings-btn{padding:.25rem .5rem;font-size:.7rem;min-width:50px;min-height:28px}.messages-container{padding:.5rem;gap:.5rem}.message{max-width:100%;padding:.5rem;font-size:.9rem}.message-actions{flex-direction:row;gap:.25rem}.message-actions button{padding:.25rem .5rem;font-size:.7rem;min-height:24px}}@media(min-width:481px)and (max-width:768px){.chat-header{padding:.7rem 1rem;flex-wrap:wrap}.chat-header h2{font-size:1.2rem}.chat-controls{width:100%;justify-content:space-between;gap:.3rem}.model-select,.clear-btn,.settings-btn{padding:.35rem .75rem;font-size:.8rem;min-height:32px}.messages-container{padding:1rem;gap:.7rem}.message{max-width:90%;padding:.8rem}.message-content{font-size:.95rem}.message-actions button{padding:.3rem .6rem;font-size:.75rem}}@media(min-width:769px)and (max-width:1024px){.chat-panel{border-radius:12px}.chat-header{padding:.9rem 1.2rem}.chat-header h2{font-size:1.3rem}.messages-container{padding:1.2rem}.message{max-width:88%}.message-actions button{padding:.35rem .7rem;font-size:.8rem}}@media(min-width:1025px){.chat-panel{border-radius:12px}.chat-header{padding:1rem 1.5rem;flex-wrap:nowrap}.chat-header h2{font-size:1.5rem}.chat-controls{width:auto;justify-content:flex-end;gap:.5rem}.model-select,.clear-btn,.settings-btn{padding:.5rem 1rem;font-size:.9rem;min-height:40px}.messages-container{padding:1.5rem;gap:1rem}.message{max-width:85%}.message-actions button{padding:.5rem 1rem;font-size:.9rem}}@media(min-width:1440px){.chat-header{padding:1.2rem 1.8rem}.chat-header h2{font-size:1.8rem}.messages-container{padding:2rem}.message{max-width:80%}}.chat-session-select:hover{background:#ffffff40;border-color:#fff}.chat-session-select:focus{outline:none;border-color:#34d399;box-shadow:0 0 8px #34d3994d}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}.code-block-wrapper{width:100%;margin:.5rem 0;margin:clamp(.5rem,2vw,.75rem) 0}.code-block-container{position:relative;display:flex;flex-direction:column;border-radius:clamp(12px,4vw,16px);border:1px solid rgba(102,126,234,.3);background:#00000080;overflow:hidden;transition:all .2s ease}.code-block-container:hover{border-color:#667eea99;box-shadow:0 4px 12px #667eea1a}.code-block-label{position:absolute;top:0;left:0;padding:clamp(.4rem,2vw,.65rem) clamp(.6rem,3vw,1rem);font-size:clamp(.65rem,2vw,.75rem);font-weight:600;color:#667eea;text-transform:uppercase;letter-spacing:.05em;opacity:.9;z-index:5}.code-block-controls{position:sticky;top:0;right:0;left:0;display:flex;align-items:center;justify-content:flex-end;gap:clamp(.3rem,2vw,.5rem);padding:clamp(.4rem,2vw,.65rem) clamp(.6rem,3vw,1rem);background:#0000004d;border-bottom:1px solid rgba(102,126,234,.2);z-index:10;flex-wrap:wrap;justify-content:space-between}.control-btn{display:flex;align-items:center;justify-content:center;gap:clamp(.2rem,1.5vw,.4rem);padding:clamp(.3rem,1.5vw,.4rem) clamp(.5rem,2vw,.8rem);background:#ffffff14;border:1px solid rgba(102,126,234,.3);border-radius:clamp(6px,2vw,8px);color:#e4e7eb;font-size:clamp(.75rem,2vw,.85rem);font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;-webkit-user-select:none;user-select:none;min-height:clamp(32px,8vw,40px);min-width:clamp(32px,12vw,90px)}.control-btn:hover{background:#ffffff1f;border-color:#667eea99;color:#50fa7b;transform:translateY(-1px)}.control-btn:active{transform:translateY(0)}.control-btn:focus{outline:2px solid rgba(102,126,234,.5);outline-offset:2px}.collapse-btn:before{content:"";display:inline-block;width:clamp(10px,2vw,12px);height:clamp(10px,2vw,12px);margin-right:.2rem}.copy-btn{min-width:clamp(60px,20vw,90px)}.code-block-content{padding:clamp(.75rem,3vw,1rem);padding-top:clamp(2rem,5vw,2.5rem);overflow-x:auto;overflow-y:auto;max-height:clamp(200px,50vh,500px);scrollbar-width:thin;scrollbar-color:rgba(102,126,234,.3) transparent}.code-block-content::-webkit-scrollbar{display:none}.code-block-content{scrollbar-width:none}.code-block-content::-webkit-scrollbar{width:clamp(6px,1.5vw,8px);height:clamp(6px,1.5vw,8px)}.code-block-content::-webkit-scrollbar-track{background:transparent}.code-block-content::-webkit-scrollbar-thumb{background:#667eea4d;border-radius:4px}.code-block-content::-webkit-scrollbar-thumb:hover{background:#667eea99}.code-block-content pre{margin:0;padding:0;background:none;border:none}.code-block-content pre code{font-family:Courier New,Monaco,monospace;font-size:clamp(.75rem,2vw,.9rem);line-height:clamp(1.4,2vw,1.6);color:#e4e7eb;white-space:pre;word-break:break-word;overflow-wrap:break-word;user-select:text;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;cursor:text}.code-block-content .hljs{background:transparent;color:#e4e7eb}.code-block-content .hljs-string{color:#50fa7b}.code-block-content .hljs-number{color:#bd93f9}.code-block-content .hljs-literal,.code-block-content .hljs-attr{color:#8be9fd}.code-block-content .hljs-function .hljs-title{color:#50f0a0}.code-block-content .hljs-keyword{color:#ff79c6;font-weight:600}.code-block-content .hljs-built_in,.code-block-content .hljs-name{color:#8be9fd}.code-block-content .hljs-class{color:#50f0a0}.code-block-content .hljs-comment{color:#6272a4;font-style:italic}.code-block-content .hljs-symbol{color:#f1fa8c}.code-block-content .hljs-emphasis{font-style:italic}.code-block-content .hljs-strong{font-weight:700}.code-block-collapsed{display:flex;align-items:center;justify-content:center;padding:clamp(1.5rem,4vw,2rem) clamp(.75rem,2vw,1rem);color:#8b92a8;font-size:clamp(.8rem,2vw,.9rem);font-style:italic;text-align:center;border-top:1px solid rgba(102,126,234,.2)}@media(max-width:480px){.code-block-wrapper{margin:clamp(.3rem,1.5vw,.5rem) 0}.code-block-container{border-radius:8px}.code-block-label{font-size:.6rem;padding:.3rem .5rem;opacity:.8}.code-block-controls{padding:.3rem .5rem;gap:.2rem}.control-btn{padding:.25rem .4rem;font-size:.7rem;min-height:28px;min-width:28px}.copy-btn{min-width:50px}.code-block-content{padding:1.5rem .5rem .5rem;max-height:150px;font-size:.75rem}.code-block-content pre code{font-size:.7rem;line-height:1.3}}@media(max-width:768px){.code-block-wrapper{margin:clamp(.4rem,1.5vw,.6rem) 0}.code-block-label{font-size:.65rem;padding:.35rem .6rem}.code-block-controls{padding:.4rem .6rem;gap:.3rem}.control-btn{padding:.3rem .5rem;font-size:.75rem;min-height:32px;min-width:32px}.code-block-content{padding:2rem .65rem .65rem;max-height:250px}.code-block-content pre code{font-size:.8rem;line-height:1.4}}@media(min-width:769px)and (max-width:1024px){.code-block-container{border-radius:12px}.code-block-content{max-height:350px}.code-block-content pre code{font-size:.85rem;line-height:1.5}}@media(min-width:1025px){.code-block-container{border-radius:16px}.code-block-controls{gap:.5rem}.control-btn{padding:.4rem .8rem;font-size:.85rem;min-height:40px;min-width:90px}.code-block-content{padding:2.5rem 1rem 1rem;max-height:500px}.code-block-content pre code{font-size:.9rem;line-height:1.6}}@media(min-width:1440px){.code-block-wrapper{margin:1rem 0}.code-block-content{max-height:600px}.code-block-content pre code{font-size:.95rem;line-height:1.7}}
