:root{--primary-gradient-from: #667eea;--primary-gradient-to: #764ba2;--primary-light: #6ee7b7;--bg-dark: #1a1d24;--bg-medium: #23272f;--bg-card: #2a3040;--bg-card-dark: #1f232a;--border-primary: rgba(102, 126, 234, .2);--border-primary-hover: rgba(102, 126, 234, .5);--border-success: rgba(52, 211, 153, .3);--status-ready: #34d399;--status-error: #ff6b6b;--status-warning: #f093fb;--status-info: #667eea;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 12px rgba(0, 0, 0, .2);--shadow-lg: 0 8px 24px rgba(102, 126, 234, .15)}:root{--z-index-base: 1;--z-index-dropdown: 100;--z-index-sticky: 200;--z-index-modal-bg: 10000;--z-index-modal: 10001;--z-index-modal-header: 10002;--z-index-nested-modal-bg: 20000;--z-index-nested-modal: 20001;--z-index-nested-modal-header: 20002}.panel-base{background:linear-gradient(135deg,var(--bg-medium) 0%,var(--bg-dark) 100%);border:1px solid var(--border-primary);border-radius:clamp(8px,3vw,12px);box-shadow:var(--shadow-md);transition:all .3s ease}.panel-base:hover{border-color:var(--border-primary-hover);box-shadow:var(--shadow-lg)}.chat-panel,.control-panel,.graphs-panel,.git-panel{background:linear-gradient(135deg,var(--bg-medium) 0%,var(--bg-dark) 100%);border:1px solid var(--border-primary);border-radius:clamp(8px,3vw,12px);box-shadow:var(--shadow-md);transition:all .3s ease}.chat-panel:hover,.git-panel:hover{border-color:var(--border-primary-hover);box-shadow:var(--shadow-lg)}.panel-header,.chat-header,.graphs-header{background:linear-gradient(135deg,var(--primary-gradient-from) 0%,var(--primary-gradient-to) 100%);padding:clamp(.3rem,.5vw,.4rem);border-radius:clamp(8px,3vw,12px) clamp(8px,3vw,12px) 0 0;box-shadow:0 4px 12px #0000004d;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:clamp(1rem,2vw,1.5rem)}.graphs-header>div{flex:1}.graphs-header>h2{flex:0 0 auto;text-align:center}.panel-header h2,.chat-header h2,.graphs-header h2{color:#fff;margin:0;font-size:clamp(.95rem,2.5vw,1.3rem);font-weight:600;line-height:1;flex:1;text-align:center}.graphs-header h2{background:linear-gradient(45deg,#ff6b6b,#f093fb,#667eea,#34d399);background-size:300% 300%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 0 20px rgba(255,255,255,.3);font-weight:700;letter-spacing:2px;text-transform:uppercase;white-space:nowrap;display:inline-block}.card-item,.stat-item,.node-stat-item,.pipeline-step{background:linear-gradient(135deg,var(--bg-card) 0%,var(--bg-card-dark) 100%);border:2px solid var(--border-primary);border-radius:8px;padding:.5rem .8rem;box-shadow:var(--shadow-md);transition:all .3s ease}.card-item:hover,.stat-item:hover,.node-stat-item:hover,.pipeline-step:hover{border-color:var(--border-primary-hover);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.stat-item.clickable-stat{cursor:pointer;background:linear-gradient(135deg,var(--bg-card) 0%,var(--bg-card-dark) 100%);border:1px solid var(--border-primary);border-radius:6px;padding:1.1rem 1.4rem;box-shadow:var(--shadow-sm);transition:all .2s ease;display:flex;flex-direction:column;gap:.7rem;justify-content:center;align-items:center;text-align:center;font-size:1.12em;min-width:auto;max-width:none;white-space:normal}.stat-item.clickable-stat:hover{border-color:var(--border-primary-hover);box-shadow:var(--shadow-md);opacity:.95}.stat-item.clickable-stat:active{opacity:.9}.stat-item.clickable-stat .stat-label{font-size:.98rem;margin:0;white-space:normal}.stat-item.clickable-stat .stat-value{font-size:1.68rem;margin:0;line-height:1;white-space:normal}.pipeline-step.active{box-shadow:0 4px 16px #34d39966;border:2px solid var(--status-ready);background:linear-gradient(135deg,#34d3991a,#34d3990d)}.card-title,.stat-label{color:#8b92a8;font-size:clamp(.8rem,1.5vw,.9rem);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:clamp(1rem,2.5vw,1.5rem);font-weight:700;line-height:1}.stat-value.ready{color:var(--status-ready);text-shadow:0 0 10px rgba(52,211,153,.3)}.stat-value.not-ready{color:var(--status-error);text-shadow:0 0 10px rgba(255,107,107,.3)}.stat-value.total{color:var(--status-info);text-shadow:0 0 10px rgba(102,126,234,.3)}.stat-value.health{color:var(--status-ready);text-shadow:0 0 10px rgba(52,211,153,.3)}.btn-base{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)}.btn-base:hover{background:#ffffff40;transform:translateY(-1px)}.btn-base:active{transform:scale(.98)}.btn-primary{background:linear-gradient(135deg,var(--primary-gradient-from) 0%,var(--primary-gradient-to) 100%);border:1px solid rgba(255,255,255,.2)}.btn-primary:hover{box-shadow:0 4px 12px #667eea4d}.btn-danger{background:linear-gradient(135deg,#ff6b6b,#f55);border:1px solid rgba(255,255,255,.2);padding:.5em 1em;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-danger:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ff6b6b4d}.select-base,.input-base{padding:clamp(.25rem,.4vw,.35rem) clamp(.4rem,.8vw,.6rem);border:2px solid var(--border-primary);border-radius:6px;background:var(--bg-medium);color:#fff;font-size:clamp(.8rem,1.8vw,.9rem);cursor:pointer;transition:all .2s ease;min-height:clamp(24px,4vw,28px)}.select-base:hover,.input-base:hover{border-color:var(--border-primary-hover);background:var(--bg-card)}.select-base:focus,.input-base:focus{outline:none;border-color:var(--status-ready);box-shadow:0 0 8px #34d3994d}.scale-input{width:80px;text-align:center;margin:0 1rem}.scale-controls{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1rem}.scale-controls label{color:var(--text-primary);font-weight:500}.status-circle,.node-stat-circle{width:40px;height:40px;border-radius:50%;flex-shrink:0;box-shadow:0 2px 4px #0000001a;transition:all .3s ease}.node-stat-circle{width:50px;height:50px;box-shadow:0 4px 12px #0000004d}.login-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:linear-gradient(120deg,var(--bg-medium) 0%,var(--bg-dark) 100%)}.login-box{background:var(--bg-dark);padding:clamp(1.5rem,3vw,2rem);border-radius:12px;box-shadow:0 0 24px #00000080;min-width:320px;border:1px solid var(--border-primary)}.login-box h2{text-align:center;color:#fff;margin:0 0 1.5rem;font-size:clamp(1.2rem,2vw,1.4rem)}.login-form{display:flex;flex-direction:column;gap:1em}.form-group{display:flex;flex-direction:column;gap:.5em}.form-group label{color:#fff;font-weight:600;font-size:clamp(.85rem,1.5vw,.95rem)}.form-group input,.form-group select{width:100%;padding:.5em;border-radius:8px;border:2px solid var(--border-primary);background:var(--bg-medium);color:#fff;font-size:1.1em;transition:all .2s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--status-ready);box-shadow:0 0 8px #34d3994d}.login-button{width:100%;background:linear-gradient(135deg,var(--primary-gradient-from) 0%,var(--primary-gradient-to) 100%);color:#fff;border:none;border-radius:8px;padding:.7em;font-weight:600;font-size:1.1em;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-md)}.login-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.modal-bg{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#181a20f2;z-index:var(--z-index-modal-bg, 10000);display:flex;align-items:center;justify-content:center}.modal{background:var(--bg-medium);color:#fff;border-radius:clamp(8px,3vw,12px);border:1px solid var(--border-primary);box-shadow:0 8px 32px #0000004d;max-height:90vh;overflow-y:auto;max-width:95vw;margin:2em auto;padding:2em;position:relative;z-index:var(--z-index-modal, 10001)}.modal::-webkit-scrollbar{display:none}.modal{scrollbar-width:none}.modal-header{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:var(--z-index-modal-header, 10002);background:linear-gradient(135deg,var(--bg-medium) 0%,var(--bg-dark) 100%);padding-bottom:1em;margin-bottom:1em;border-bottom:1px solid var(--border-primary)}.modal-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}.modal-close-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.modal-code-block{background:var(--bg-dark);color:#fff;padding:1em;border-radius:8px;border:1px solid var(--border-primary);height:100%;max-height:100%;overflow:auto;font-size:.95em;white-space:pre-wrap;font-family:Monaco,Courier New,monospace}@media(max-width:768px){.panel-header{gap:clamp(.5rem,1vw,.75rem)}.card-item,.stat-item,.node-stat-item{min-height:auto;padding:clamp(.75rem,1.5vw,1rem)}.modal{margin:1em auto;padding:1.5em}}@media(max-width:480px){.stat-value{font-size:clamp(1.2rem,3vw,1.8rem)}.card-title,.stat-label{font-size:clamp(.7rem,1.2vw,.8rem)}.login-box{min-width:90vw;padding:1.5rem 1rem}.modal{max-width:100vw;margin:0;border-radius:0;max-height:100vh}}.workload-section{margin-bottom:1.5rem}.workload-section:last-child{margin-bottom:0}.workload-section h4{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 .75rem;display:flex;align-items:center;gap:.5rem}.workload-section h4:before{content:"";width:3px;height:1rem;background:linear-gradient(135deg,var(--primary-gradient-from),var(--primary-gradient-to));border-radius:2px}.clickable-pod{cursor:pointer;transition:all .2s ease}.clickable-pod:hover{background:#667eea1a!important;border-color:var(--border-primary-hover)!important;transform:translateY(-1px);box-shadow:0 2px 8px #667eea33}.action-buttons-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1rem}.action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1rem;min-height:80px;text-align:center;border-radius:8px;font-size:.9rem;font-weight:600;transition:all .2s ease;white-space:normal;word-wrap:break-word;line-height:1.3}.action-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.action-btn small{font-size:.75rem;font-weight:400;opacity:.8;line-height:1.2;margin-top:.25rem}.action-btn-both{grid-column:span 2;background:linear-gradient(135deg,#34d399,#6ee7b7)!important}.action-btn-both:hover{background:linear-gradient(135deg,#2d9d6a,#5bb98a)!important}.menu-tabs{display:flex;align-items:center;gap:clamp(.5rem,2vw,1rem);margin:0;padding:clamp(.5rem,1.5vw,.75rem) clamp(.5rem,2vw,1rem) clamp(.5rem,1.5vw,.75rem) 0;flex-wrap:wrap;background:#1a1d24;border-bottom:1px solid rgba(102,126,234,.2);flex-shrink:0;width:100%;box-sizing:border-box;overflow-x:auto;-webkit-overflow-scrolling:touch}.menu-tabs-left{display:flex;gap:clamp(.5rem,2vw,1rem);flex-wrap:wrap;align-items:center}.menu-tabs-right{display:flex;align-items:center;margin-left:auto}.tab{padding:clamp(.4rem,1vw,.6rem) clamp(.8rem,2vw,1.2rem);border:none;background:transparent;color:#ccc;font-size:clamp(.85rem,2vw,1rem);font-weight:500;cursor:pointer;border-radius:6px;transition:all .2s ease;white-space:nowrap;min-height:44px;min-width:44px}.tab:hover{background:#667eea1a;color:#fff}.tab.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 8px #667eea4d}.logout-btn{padding:clamp(.4rem,1vw,.6rem) clamp(.8rem,2vw,1.2rem);border:none;background:#ef4444;color:#fff;font-size:clamp(.85rem,2vw,1rem);font-weight:500;cursor:pointer;border-radius:6px;transition:all .2s ease;min-height:44px;margin-right:0}.logout-btn:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 2px 8px #ef44444d}.btn-secondary{background:var(--bg-dark-3);color:var(--color-primary-teal);border:2px solid var(--color-primary-teal);transform:translateY(-1px);box-shadow:0 2px 8px #6ee7b74d;border-radius:6px;padding:clamp(.4rem,1vw,.6rem) clamp(.8rem,2vw,1.2rem);font-size:clamp(.85rem,2vw,1rem);font-weight:500;cursor:pointer;transition:all .2s ease;min-height:44px;min-width:44px}.btn-secondary:hover:not(:disabled){background:var(--bg-dark-3);color:var(--color-primary-teal);border:2px solid var(--color-primary-teal);transform:translateY(-1px);box-shadow:0 2px 8px #6ee7b74d}.btn-secondary:disabled{opacity:.5;cursor:not-allowed;transform:none}.command-input{width:100%;padding:.75rem;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:6px;color:#e4e7ea;font-family:JetBrains Mono,Fira Code,monospace;font-size:.9rem;transition:all .2s ease}.command-input:focus{outline:none;border-color:var(--color-primary-teal);box-shadow:0 0 0 2px #6ee7b733}.command-input::placeholder{color:#9aa0a6}.control-panel-wrapper::-webkit-scrollbar,.graphs-panel-wrapper::-webkit-scrollbar,.git-panel-wrapper::-webkit-scrollbar{display:none}.control-panel-wrapper,.graphs-panel-wrapper,.git-panel-wrapper{scrollbar-width:none}@media(min-width:769px){.control-panel-wrapper,.graphs-panel-wrapper,.git-panel-wrapper{scrollbar-width:none}}@media(max-width:768px){.control-panel-wrapper,.graphs-panel-wrapper,.git-panel-wrapper,.graphs-grid{overflow-y:auto;-webkit-overflow-scrolling:touch}}.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}}
