*{box-sizing:border-box;margin:0;padding:0}html{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;height:100%}body{background:#0a0a0a;color:#fff;height:100vh;overflow:hidden}#root{height:100vh;display:flex;flex-direction:column}.app-container{height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#0a0a0a,#1a1a1a)}.app-header{background:#1a1a1acc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #333;padding:1rem;flex-shrink:0}.header-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:2rem}.header-left{display:flex;align-items:center}.logo-container{display:flex;align-items:center;gap:.75rem}.logo-icon{padding:.5rem;background:linear-gradient(135deg,#c70039,#900c3f);border-radius:.75rem;display:flex;align-items:center;justify-content:center}.logo-icon .icon{width:1.5rem;height:1.5rem;color:#fff}.app-title{font-size:1.25rem;font-weight:700;color:#fff;margin:0}.app-subtitle{font-size:.875rem;color:#888;margin:0}.header-center{flex:1;display:flex;justify-content:center}.header-right{display:flex;align-items:center}.status-indicators,.header-actions{display:flex;align-items:center;gap:1rem}.test-btn{padding:.5rem 1rem;background:#0ea5e9;color:#fff;border:none;border-radius:.375rem;font-size:.875rem;cursor:pointer;transition:background-color .2s}.test-btn:hover{background:#0284c7}.chat-history-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#374151;color:#fff;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}.chat-history-btn:hover{background:#4b5563}.chat-history-btn .icon{width:1rem;height:1rem}.settings-dropdown{position:relative;display:inline-block}.settings-btn{padding:.5rem;background:#374151;color:#fff;border:none;border-radius:.375rem;font-size:.875rem;cursor:pointer;transition:background-color .2s;display:flex;align-items:center;justify-content:center}.settings-btn:hover{background:#4b5563}.settings-btn .icon{width:1rem;height:1rem}.settings-dropdown-menu{position:absolute;top:100%;right:0;margin-top:.5rem;background:#1f2937;border:1px solid #374151;border-radius:.5rem;box-shadow:0 10px 25px #0000004d;z-index:1000;min-width:250px;animation:fadeInScale .2s ease-out}.settings-section{padding:1rem}.settings-title{font-size:.875rem;font-weight:600;color:#d1d5db;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #374151}.settings-toggle-group{margin-bottom:.75rem}.settings-toggle-group:last-child{margin-bottom:0}.settings-toggle-switch{display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.5rem;border-radius:.375rem;transition:background-color .2s}.settings-toggle-switch:hover{background:#37415180}.settings-toggle-switch input[type=checkbox]{display:none}.settings-toggle-slider{position:relative;width:2.5rem;height:1.25rem;background:#374151;border-radius:.625rem;transition:background-color .3s;flex-shrink:0}.settings-toggle-slider:before{content:"";position:absolute;top:.125rem;left:.125rem;width:1rem;height:1rem;background:#fff;border-radius:50%;transition:transform .3s}.settings-toggle-switch input[type=checkbox]:checked+.settings-toggle-slider{background:#10b981}.settings-toggle-switch input[type=checkbox]:disabled+.settings-toggle-slider{background:#4b5563;cursor:not-allowed}.settings-toggle-container{position:relative;display:flex;align-items:center}.settings-toggle-switch input[type=checkbox]:checked+.settings-toggle-slider:before{transform:translate(1.25rem)}.settings-toggle-label{display:flex;align-items:center;gap:.5rem;color:#d1d5db;font-size:.875rem;font-weight:500}.settings-toggle-icon{width:1rem;height:1rem;color:#9ca3af}.settings-status-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.settings-server-status{display:flex;align-items:center;gap:.5rem;font-size:.875rem;padding:.5rem;border-radius:.375rem;background:#3741514d;border:1px solid rgba(75,85,99,.5);transition:background-color .2s}.settings-server-status:hover{background:#37415180}.settings-server-status .status-dot{width:.5rem;height:.5rem;border-radius:50%;animation:pulse 2s infinite}.settings-server-status.checking .status-dot{background:#fbbf24}.settings-server-status.connected .status-dot{background:#10b981}.settings-server-status.disconnected .status-dot{background:#ef4444;animation:none}.settings-server-status .status-text{font-weight:500;color:#d1d5db}.settings-server-status.checking .status-text{color:#fbbf24}.settings-server-status.connected .status-text{color:#10b981}.settings-server-status.disconnected .status-text{color:#ef4444}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.server-status{display:flex;align-items:center;gap:.5rem;font-size:.875rem;padding:.25rem .75rem;border-radius:1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.status-dot{width:.5rem;height:.5rem;border-radius:50%;animation:pulse 2s infinite}.server-status.checking .status-dot{background:#fbbf24}.server-status.connected .status-dot{background:#10b981}.server-status.disconnected .status-dot{background:#ef4444;animation:none}.status-text{font-weight:500}.server-status.checking .status-text{color:#fbbf24}.server-status.connected .status-text{color:#10b981}.server-status.disconnected .status-text{color:#ef4444}.chat-counter{font-size:.875rem;color:#888;display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.reset-timer{font-size:.75rem;color:#10b981;font-weight:500;background:#10b9811a;padding:.25rem .5rem;border-radius:.375rem;border:1px solid rgba(16,185,129,.2)}.unlimited-badge{color:#10b981;font-weight:500}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.research-paper-download{display:flex;align-items:center;justify-content:center}.download-link{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;background:linear-gradient(135deg,#c70039,#900c3f);border-radius:.75rem;text-decoration:none;color:#fff;transition:all .3s ease;box-shadow:0 4px 12px #c700394d;border:1px solid rgba(255,255,255,.1);position:relative;overflow:hidden}.download-link:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.download-link:hover:before{left:100%}.download-link:hover{transform:translateY(-2px);box-shadow:0 8px 20px #c7003966;background:linear-gradient(135deg,#e91e63,#c70039)}.download-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background:#ffffff26;border-radius:.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.download-icon .icon{width:1.25rem;height:1.25rem;color:#fff}.download-content{display:flex;flex-direction:column;gap:.125rem}.download-title{font-size:.875rem;font-weight:600;color:#fff;line-height:1.2}.download-subtitle{font-size:.75rem;color:#fffc;line-height:1.2}.download-action{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:#ffffff1a;border-radius:.375rem;transition:all .3s ease}.download-action .icon{width:1rem;height:1rem;color:#fff;transition:transform .3s ease}.download-link:hover .download-action{background:#fff3}.download-link:hover .download-action .icon{transform:translateY(2px)}@media (max-width: 768px){.header-content{flex-direction:column;gap:1rem}.header-center{order:-1;width:100%}.download-link{padding:.625rem 1rem;gap:.5rem}.download-icon{width:2rem;height:2rem}.download-icon .icon{width:1rem;height:1rem}.download-title{font-size:.8125rem}.download-subtitle{font-size:.6875rem}}.web-search-panel{position:fixed;right:0;top:0;width:40%;height:100vh;background:#1a1a1a;border-left:1px solid #333;z-index:1000;display:flex;flex-direction:column;animation:slideInRight .3s ease-out}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.search-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:#2a2a2a;border-bottom:1px solid #333}.search-panel-title{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#fff}.search-server-status{display:flex;align-items:center;gap:.25rem;font-size:.75rem;padding:.25rem .5rem;border-radius:.375rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);margin-left:.5rem}.search-server-status .status-dot{width:.375rem;height:.375rem;border-radius:50%;animation:pulse 2s infinite}.search-server-status.checking .status-dot{background:#fbbf24}.search-server-status.connected .status-dot{background:#10b981}.search-server-status.disconnected .status-dot{background:#ef4444;animation:none}.search-close-btn{padding:.5rem;background:transparent;border:none;color:#888;cursor:pointer;border-radius:.375rem;transition:all .2s;display:flex;align-items:center;justify-content:center}.search-close-btn:hover{background:#333;color:#fff}.search-panel-content{flex:1;overflow-y:auto;padding:1rem}.search-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;color:#888}.search-spinner{width:2rem;height:2rem;border:2px solid #333;border-top:2px solid #0ea5e9;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.search-error{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:.5rem;color:#ef4444;margin-bottom:1rem}.search-error .icon{width:1.25rem;height:1.25rem;flex-shrink:0;margin-top:.125rem}.search-error h4{font-weight:600;margin-bottom:.25rem}.search-error p{font-size:.875rem;opacity:.9}.search-results{display:flex;flex-direction:column;gap:1rem}.search-query-info{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#2a2a2a;border-radius:.5rem;font-size:.875rem;color:#fff}.result-count{color:#888;font-size:.75rem}.search-answers{background:#10b9811a;border:1px solid rgba(16,185,129,.2);border-radius:.5rem;padding:1rem}.search-answers h4{color:#10b981;font-weight:600;margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.answer-item{background:#10b9810d;padding:.75rem;border-radius:.375rem;margin-bottom:.5rem}.answer-item:last-child{margin-bottom:0}.search-results-list{display:flex;flex-direction:column;gap:.75rem}.search-result-item{background:#2a2a2a;border:1px solid #333;border-radius:.5rem;padding:1rem;cursor:pointer;transition:all .2s}.search-result-item:hover{background:#333;border-color:#0ea5e9;transform:translateY(-1px)}.result-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.result-title{font-weight:600;color:#0ea5e9;font-size:.875rem;line-height:1.4;flex:1}.external-icon{width:1rem;height:1rem;color:#888;flex-shrink:0;margin-top:.125rem}.result-url{font-size:.75rem;color:#10b981;margin-bottom:.5rem;word-break:break-all}.result-content{font-size:.875rem;color:#ccc;line-height:1.5;margin-bottom:.75rem}.result-meta{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:#888}.meta-icon{width:.875rem;height:.875rem}.search-suggestions{background:#2a2a2a;border-radius:.5rem;padding:1rem}.search-suggestions h4{color:#fff;font-weight:600;margin-bottom:.75rem}.suggestions-list{display:flex;flex-wrap:wrap;gap:.5rem}.suggestion-item{background:#333;border:1px solid #444;color:#ccc;padding:.5rem .75rem;border-radius:.375rem;font-size:.875rem;cursor:pointer;transition:all .2s}.suggestion-item:hover{background:#0ea5e9;color:#fff;border-color:#0ea5e9}.app-container.search-panel-open{margin-right:40%;width:60%}@media (max-width: 768px){.web-search-panel{width:100%}.app-container.search-panel-open{margin-right:0;width:100%;display:none}}.code-preview-panel{position:fixed;left:0;top:0;width:50%;height:100vh;background:#1a1a1a;border-right:1px solid #333;z-index:1000;display:flex;flex-direction:column;animation:slideInLeft .3s ease-out}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:#2a2a2a;border-bottom:1px solid #333}.panel-title{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#fff}.panel-controls{display:flex;align-items:center;gap:.5rem}.view-toggle{display:flex;background:#333;border-radius:.375rem;overflow:hidden}.toggle-btn{padding:.5rem;background:transparent;border:none;color:#888;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.toggle-btn:hover{background:#444;color:#fff}.toggle-btn.active{background:#0ea5e9;color:#fff}.close-btn{padding:.5rem;background:transparent;border:none;color:#888;cursor:pointer;border-radius:.375rem;transition:all .2s;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:#333;color:#fff}.code-tabs{display:flex;background:#2a2a2a;border-bottom:1px solid #333;overflow-x:auto}.tab-btn{padding:.75rem 1rem;background:transparent;border:none;color:#888;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap;font-size:.875rem}.tab-btn:hover{color:#fff;background:#333}.tab-btn.active{color:#0ea5e9;border-bottom-color:#0ea5e9}.panel-content{flex:1;overflow:hidden;display:flex;flex-direction:column}.preview-container{flex:1;background:#fff}.preview-iframe{width:100%;height:100%;border:none;background:#fff}.code-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.code-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#2a2a2a;border-bottom:1px solid #333}.code-info{display:flex;align-items:center;gap:.75rem}.language-tag{background:#0ea5e9;color:#fff;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500;text-transform:uppercase}.filename{color:#888;font-size:.875rem;font-family:Courier New,monospace}.code-actions{display:flex;gap:.5rem}.action-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:#333;border:none;color:#fff;border-radius:.375rem;cursor:pointer;font-size:.875rem;transition:all .2s}.action-btn:hover{background:#444}.action-btn .icon{width:1rem;height:1rem}.code-block{flex:1;margin:0;padding:1rem;background:#1a1a1a;color:#e5e5e5;font-family:Courier New,Monaco,monospace;font-size:.875rem;line-height:1.5;overflow:auto;white-space:pre-wrap;word-wrap:break-word}.code-block code{background:none;padding:0;color:inherit;font-family:inherit}.copy-notification{position:absolute;bottom:1rem;right:1rem;background:#10b981;color:#fff;padding:.5rem 1rem;border-radius:.375rem;font-size:.875rem;animation:fadeInOut 2s ease-in-out}@keyframes fadeInOut{0%,to{opacity:0;transform:translateY(10px)}10%,90%{opacity:1;transform:translateY(0)}}.app-container.panel-open{margin-left:50%;width:50%}@media (max-width: 768px){.code-preview-panel{width:100%}.app-container.panel-open{margin-left:0;width:100%;display:none}}.chat-main{flex:1;overflow-y:auto;padding:1rem;background:#0a0a0a}.messages-container{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:1rem}.chat-message{display:flex;animation:slideUp .3s ease-out}.chat-message.user{justify-content:flex-end}.chat-message.assistant{justify-content:flex-start}.message-content{display:flex;align-items:flex-start;gap:.75rem;max-width:70%}.chat-message.user .message-content{flex-direction:row-reverse}.message-avatar{width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-avatar{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.assistant-avatar{background:linear-gradient(135deg,#374151,#1f2937);border:1px solid #4b5563}.message-avatar .icon{width:1.25rem;height:1.25rem;color:#fff}.dominus-avatar-image{width:100%;height:100%;object-fit:contain;border-radius:50%;background:linear-gradient(135deg,#374151,#1f2937);padding:.25rem}.feature-notification{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2000;background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:1rem;padding:2rem;max-width:400px;width:90%;animation:fadeInScale .3s ease-out}@keyframes fadeInScale{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.notification-content{display:flex;align-items:flex-start;gap:1rem;position:relative}.notification-icon{width:3rem;height:3rem;background:linear-gradient(135deg,#0ea5e9,#0284c7);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.notification-icon .icon{width:1.5rem;height:1.5rem;color:#fff}.notification-icon.voice-icon{background:linear-gradient(135deg,#ef4444,#dc2626)}.notification-text{flex:1}.notification-text h4{color:#fff;font-size:1.125rem;font-weight:600;margin:0 0 .5rem}.notification-text p{color:#d1d5db;font-size:.875rem;margin:0;line-height:1.5}.notification-close{position:absolute;top:-.5rem;right:-.5rem;width:2rem;height:2rem;background:#374151;border:1px solid #4b5563;border-radius:50%;color:#d1d5db;font-size:1.25rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.notification-close:hover{background:#4b5563;color:#fff;transform:scale(1.1)}.message-body{flex:1;min-width:0}.message-header{font-size:.875rem;font-weight:500;color:#888;margin-bottom:.25rem}.message-text{background:#1a1a1a;border:1px solid #333;border-radius:1rem;padding:.75rem 1rem;color:#fff;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.chat-message.user .message-text{background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:none}.message-text strong{font-weight:700;color:#fff}.message-text em{font-style:italic;color:#e5e5e5}.message-text .inline-code{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:.25rem;padding:.125rem .375rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875em;color:#fbbf24}.message-text .code-block{background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:.5rem;padding:1rem;margin:.5rem 0;overflow-x:auto}.message-text .code-block code{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;color:#e5e5e5;white-space:pre}.message-time{font-size:.75rem;color:#666;margin-top:.25rem;text-align:right}.chat-message.assistant .message-time{text-align:left}.message-actions{display:flex;align-items:center;margin-top:.5rem;margin-bottom:.25rem}.copy-button{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:#37415180;border:1px solid rgba(75,85,99,.3);border-radius:.375rem;color:#d1d5db;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease;outline:none}.copy-button:hover{background:#374151cc;border-color:#4b556380;color:#fff}.copy-button:active{transform:scale(.98)}.copy-icon{width:.875rem;height:.875rem;flex-shrink:0}.copy-text{font-size:.75rem;line-height:1}.copy-button[data-copied=true]{background:#10b98133;border-color:#10b9814d;color:#10b981}.copy-button[data-copied=true]:hover{background:#10b9814d;border-color:#10b98166}.chat-history-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.chat-history-sidebar{position:fixed;top:0;left:0;width:320px;height:100vh;background:#1a1a1a;border-right:1px solid #333;z-index:1001;display:flex;flex-direction:column;animation:slideInLeft .3s ease-out}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}.chat-history-header{padding:1rem;border-bottom:1px solid #333;background:#2a2a2a}.chat-history-title{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;color:#fff;margin-bottom:1rem}.chat-history-icon{width:1.25rem;height:1.25rem;color:#0ea5e9}.new-chat-btn{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.new-chat-btn:hover{background:linear-gradient(135deg,#0284c7,#0369a1);transform:translateY(-1px)}.new-chat-btn .icon{width:1rem;height:1rem}.chat-history-actions{display:flex;gap:.5rem;align-items:center}.refresh-btn{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background:#374151;color:#9ca3af;border:none;border-radius:.375rem;cursor:pointer;transition:all .2s ease}.refresh-btn:hover{background:#4b5563;color:#fff}.refresh-btn:disabled{opacity:.5;cursor:not-allowed}.refresh-btn .icon{width:1rem;height:1rem}.refresh-btn .icon.spinning{animation:spin 1s linear infinite}.chat-history-content{flex:1;overflow-y:auto;padding:1rem}.chat-history-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:#888;gap:1rem}.loading-spinner{width:2rem;height:2rem;border:2px solid #333;border-top:2px solid #0ea5e9;border-radius:50%;animation:spin 1s linear infinite}.chat-history-error{padding:1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:.5rem;color:#ef4444;font-size:.875rem}.chat-history-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:#888}.empty-icon{width:3rem;height:3rem;color:#555;margin-bottom:1rem}.empty-subtitle{font-size:.875rem;color:#666;margin-top:.5rem}.chat-history-actions{margin-bottom:1rem}.clear-all-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:.375rem;color:#ef4444;font-size:.875rem;cursor:pointer;transition:all .2s ease}.clear-all-btn:hover{background:#ef444433;border-color:#ef44444d}.clear-all-btn .icon{width:.875rem;height:.875rem}.chat-list{display:flex;flex-direction:column;gap:.5rem}.chat-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:.5rem;cursor:pointer;transition:all .2s ease;position:relative}.chat-item:hover{background:#ffffff0d;border-color:#ffffff1a}.chat-item.active{background:#0ea5e91a;border-color:#0ea5e94d}.chat-item-content{flex:1;min-width:0}.chat-title{font-size:.875rem;font-weight:500;color:#fff;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-title-input{width:100%;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:.25rem;padding:.25rem .5rem;color:#fff;font-size:.875rem;font-weight:500;outline:none}.chat-title-input:focus{border-color:#0ea5e9;background:#ffffff26}.chat-meta{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#888}.chat-date{color:#666}.chat-messages-count{color:#888}.chat-item-actions{position:relative;margin-left:.5rem}.chat-menu-btn{padding:.25rem;background:transparent;border:none;color:#888;cursor:pointer;border-radius:.25rem;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.chat-menu-btn:hover{background:#ffffff1a;color:#fff}.chat-menu-btn .icon{width:1rem;height:1rem}.chat-dropdown{position:absolute;top:100%;right:0;margin-top:.25rem;background:#2a2a2a;border:1px solid #444;border-radius:.375rem;box-shadow:0 4px 12px #0000004d;z-index:1002;min-width:120px;overflow:hidden}.dropdown-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;background:transparent;border:none;color:#d1d5db;font-size:.875rem;cursor:pointer;transition:background-color .2s ease;text-align:left}.dropdown-item:hover{background:#ffffff1a}.dropdown-item.delete{color:#ef4444}.dropdown-item.delete:hover{background:#ef44441a}.dropdown-icon{width:.875rem;height:.875rem}@media (max-width: 768px){.chat-history-sidebar{width:280px}}@media (max-width: 480px){.chat-history-sidebar{width:100vw}}.thinking-section{margin-bottom:1rem;border:1px solid rgba(255,255,255,.1);border-radius:.5rem;background:#ffffff05}.thinking-header{cursor:pointer;padding:.75rem;display:flex;align-items:center;justify-content:space-between;transition:background-color .2s ease;border-radius:.5rem}.thinking-header:hover{background:#ffffff0d}.thinking-indicator{display:flex;align-items:center;gap:.5rem}.thinking-text{font-size:.875rem;font-weight:500;color:#10b981;animation:flash 1.5s infinite}.thinking-arrow{width:1rem;height:1rem;color:#888;transition:transform .2s ease}.thinking-content{padding:0 .75rem .75rem;border-top:1px solid rgba(255,255,255,.05);margin-top:.5rem;color:#ccc;font-size:.875rem;line-height:1.5}.main-content{margin-top:.5rem}@keyframes flash{0%,50%{opacity:1}51%,to{opacity:.3}}.chat-footer{background:#1a1a1acc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid #333;padding:1rem;flex-shrink:0}.input-container{max-width:1200px;margin:0 auto}.input-wrapper{display:flex;align-items:flex-end;gap:.75rem;background:#1a1a1a;border:1px solid #333;border-radius:1.5rem;padding:.5rem}.textarea-container{flex:1}.chat-input{width:100%;background:transparent;border:none;color:#fff;font-size:1rem;line-height:1.5;padding:.75rem 1rem;resize:none;outline:none;min-height:2.5rem;max-height:7.5rem}.chat-input::placeholder{color:#666}.send-button{width:2.5rem;height:2.5rem;background:linear-gradient(135deg,#c70039,#900c3f);border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.send-button:hover:not(:disabled){transform:scale(1.05);box-shadow:0 4px 12px #c7003966}.send-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.send-button .icon{width:1.25rem;height:1.25rem;color:#fff}.warning-message{text-align:center;color:#f59e0b;font-size:.875rem;margin-top:.5rem}.typing-indicator{display:flex;align-items:center;gap:.25rem;padding:.75rem 1rem}.typing-dot{width:.5rem;height:.5rem;border-radius:50%;background-color:#666;animation:typing 1.4s infinite ease-in-out}.typing-dot:nth-child(1){animation-delay:-.32s}.typing-dot:nth-child(2){animation-delay:-.16s}@keyframes typing{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}@keyframes slideUp{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.modal-container{background:#1a1a1a;border:1px solid #333;border-radius:1rem;width:100%;max-width:28rem;animation:slideUp .3s ease-out}.modal-content{padding:1.5rem}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.modal-title{font-size:1.5rem;font-weight:700;color:#fff;margin:0}.close-button{padding:.5rem;background:transparent;border:none;border-radius:.5rem;cursor:pointer;transition:background-color .2s ease}.close-button:hover{background:#333}.close-button .icon{width:1.25rem;height:1.25rem;color:#888}.modal-description{margin-bottom:1.5rem}.modal-description p{color:#ccc;font-size:.875rem;line-height:1.5}.google-btn{width:100%;background:#fff;color:#1f2937;border:none;padding:.75rem 1rem;border-radius:.5rem;font-weight:500;cursor:pointer;transition:background-color .2s ease;display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1rem}.google-btn:hover:not(:disabled){background:#f3f4f6}.google-btn:disabled{opacity:.5;cursor:not-allowed}.google-icon{width:1.25rem;height:1.25rem}.divider{display:flex;align-items:center;margin:1rem 0}.divider-line{flex:1;height:1px;background:#333}.divider-text{padding:0 .5rem;color:#888;font-size:.875rem}.auth-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-label{font-size:.875rem;font-weight:500;color:#ccc}.input-container{position:relative}.input-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:1.25rem;height:1.25rem;color:#888}.form-input{width:100%;padding:.75rem .75rem .75rem 2.5rem;background:#333;border:1px solid #555;border-radius:.5rem;color:#fff;font-size:1rem}.form-input::placeholder{color:#888}.form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.error-message{color:#ef4444;font-size:.875rem;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:.5rem;padding:.75rem}.submit-button{width:100%;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;padding:.75rem;border-radius:.5rem;font-weight:500;cursor:pointer;transition:all .2s ease}.submit-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.submit-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.toggle-auth{margin-top:1.5rem;text-align:center}.toggle-button{background:transparent;border:none;color:#3b82f6;font-size:.875rem;cursor:pointer;transition:color .2s ease}.toggle-button:hover{color:#60a5fa}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#1a1a1a}::-webkit-scrollbar-thumb{background:#333;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}@media (max-width: 768px){.app-header{padding:.75rem}.header-content{flex-direction:column;gap:.5rem;align-items:flex-start}.chat-main{padding:.75rem}.message-content{max-width:85%}.chat-footer{padding:.75rem}.modal-content{padding:1rem}}.icon{width:1.25rem;height:1.25rem}.logo-image{width:1.5rem;height:1.5rem;object-fit:contain}.mode-toggles{display:flex;gap:1rem;margin-bottom:.75rem;justify-content:center}.toggle-group{display:flex;align-items:center}.toggle-switch{position:relative;display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-switch input{position:absolute;opacity:0;width:0;height:0}.toggle-slider{position:relative;width:2.5rem;height:1.25rem;background:#333;border-radius:1.25rem;transition:background-color .3s ease}.toggle-slider:before{content:"";position:absolute;top:2px;left:2px;width:1rem;height:1rem;background:#fff;border-radius:50%;transition:transform .3s ease}.toggle-switch input:checked+.toggle-slider{background:#3b82f6}.toggle-switch input:checked+.toggle-slider:before{transform:translate(1.25rem)}.toggle-label{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:#ccc}.toggle-icon{width:1rem;height:1rem}.attachment-preview{background:#1a1a1a;border:1px solid #333;border-radius:.5rem;padding:.75rem;margin-bottom:1rem;max-height:200px;overflow-y:auto}.attachment-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem;background:#2a2a2a;border-radius:.375rem;margin-bottom:.5rem;transition:background-color .2s}.attachment-item:last-child{margin-bottom:0}.attachment-item:hover{background:#333}.attachment-info{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.attachment-icon{font-size:1.25rem;flex-shrink:0}.attachment-name{color:#fff;font-weight:500;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.attachment-type{color:#888;font-size:.75rem;flex-shrink:0}.attachment-remove{width:1.5rem;height:1.5rem;background:#ef4444;border:none;border-radius:50%;color:#fff;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.attachment-remove:hover{background:#dc2626;transform:scale(1.1)}.input-actions-left,.input-actions-right{display:flex;align-items:center;gap:.5rem}.action-button{width:2.25rem;height:2.25rem;background:transparent;border:1px solid #333;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:#888}.action-button:hover{background:#333;color:#fff;border-color:#555}.action-button.recording{background:#ef4444;border-color:#ef4444;color:#fff;animation:pulse-recording 2s infinite}@keyframes pulse-recording{0%,to{opacity:1}50%{opacity:.7}}.input-wrapper{display:flex;align-items:flex-end;gap:.5rem;background:#1a1a1a;border:1px solid #333;border-radius:1.5rem;padding:.5rem}@media (max-width: 768px){.mode-toggles{flex-direction:column;gap:.5rem;align-items:center}.toggle-group{width:100%;justify-content:center}.input-actions-left,.input-actions-right{gap:.25rem}.action-button{width:2rem;height:2rem}}.user-info{display:flex;align-items:center;gap:12px;padding:8px 16px;background:#ffffff0d;border-radius:12px;border:1px solid rgba(255,255,255,.1)}.user-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#ffffff1a}.avatar-image{width:100%;height:100%;object-fit:cover}.avatar-icon{width:18px;height:18px;color:#ffffffb3}.user-details{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.user-name{font-size:14px;font-weight:500;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.user-email{font-size:12px;color:#fff9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.logout-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:#ffffff1a;border-radius:8px;cursor:pointer;transition:all .2s ease}.logout-button:hover{background:#fff3;transform:translateY(-1px)}.logout-button .icon{width:16px;height:16px;color:#ffffffb3}.status-indicators{display:flex;flex-direction:column;gap:8px}.status-indicators .server-status{margin-bottom:0}.status-indicators .server-status .status-text{font-size:12px}@media (min-width: 768px){.status-indicators{flex-direction:row;gap:16px;align-items:center}.status-indicators .server-status .status-text{font-size:14px}}.backend-status-content{display:flex;flex-direction:column;gap:24px;margin:20px 0}.backend-item{padding:20px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#ffffff05}.backend-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.backend-header h3{margin:0;font-size:18px;font-weight:600;color:#ffffffe6;flex:1}.status-icon{width:20px;height:20px}.status-icon.checking{color:#fbbf24;animation:spin 1s linear infinite}.status-icon.connected{color:#10b981}.status-icon.disconnected{color:#ef4444}.status-badge{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500;text-transform:uppercase}.status-badge.checking{background:#fbbf2433;color:#fbbf24}.status-badge.connected{background:#10b98133;color:#10b981}.status-badge.disconnected{background:#ef444433;color:#ef4444}.backend-details{margin:12px 0;color:#ffffffb3;font-size:14px;line-height:1.5}.backend-config{margin-top:16px}.backend-config strong{color:#ffffffe6;font-size:14px}.backend-config ul{margin:8px 0 0;padding-left:20px;list-style-type:disc}.backend-config li{color:#fff9;font-size:13px;margin:4px 0;font-family:Courier New,monospace}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1)}.test-button{padding:10px 20px;background:#3b82f6cc;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s ease}.test-button:hover:not(:disabled){background:#3b82f6;transform:translateY(-1px)}.test-button:disabled{opacity:.5;cursor:not-allowed}.close-modal-button{padding:10px 20px;background:#ffffff1a;color:#fffc;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s ease}.close-modal-button:hover{background:#fff3;color:#fff}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sign-in-button{display:flex;align-items:center;gap:8px;padding:8px 16px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;border-radius:12px;cursor:pointer;font-weight:500;font-size:14px;transition:all .2s ease;box-shadow:0 2px 8px #3b82f64d}.sign-in-button:hover{background:linear-gradient(135deg,#2563eb,#1e40af);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.sign-in-button .icon{width:16px;height:16px}@media (max-width: 768px){.sign-in-button{padding:6px 12px;font-size:13px}.sign-in-button .icon{width:14px;height:14px}}
