:root{--bg-primary: #0f0f0f;--bg-secondary: #1a1a1a;--bg-tertiary: #262626;--bg-chat-user: #2563eb;--bg-chat-bot: #1f2937;--bg-hover: #374151;--bg-input: #111827;--text-primary: #f9fafb;--text-secondary: #d1d5db;--text-muted: #9ca3af;--text-user: #ffffff;--text-bot: #e5e7eb;--border-primary: #374151;--border-secondary: #4b5563;--border-focus: #2563eb;--accent-primary: #2563eb;--accent-secondary: #3b82f6;--accent-success: #10b981;--accent-warning: #f59e0b;--accent-error: #ef4444;--primary-color: #3b82f6;--primary-color-light: rgba(59, 130, 246, .1);--success-color: #10b981;--warning-color: #f59e0b;--error-color: #ef4444;--scrollbar-track: rgba(55, 65, 81, .3);--scrollbar-thumb: #4b5563;--scrollbar-thumb-hover: #6b7280;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .25);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;--font-mono: "Fira Code", "Consolas", "Monaco", monospace;--transition-fast: .15s ease-in-out;--transition-normal: .25s ease-in-out;--transition-slow: .35s ease-in-out}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%;display:flex;flex-direction:column}.scrollbar{scrollbar-width:thin;scrollbar-color:var(--border-secondary) transparent}.scrollbar::-webkit-scrollbar{width:6px}.scrollbar::-webkit-scrollbar-track{background:transparent}.scrollbar::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:var(--radius-sm)}.scrollbar::-webkit-scrollbar-thumb:hover{background:var(--border-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);border:1px solid transparent;border-radius:var(--radius-md);font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;transition:all var(--transition-fast);outline:none;-webkit-user-select:none;user-select:none}.btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.btn-primary{background-color:var(--accent-primary);color:var(--text-primary);border-color:var(--accent-primary)}.btn-primary:hover:not(:disabled){background-color:var(--accent-secondary);border-color:var(--accent-secondary)}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-secondary);border-color:var(--border-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--border-secondary)}.btn:disabled{opacity:.5;cursor:not-allowed}.input{width:100%;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;transition:all var(--transition-fast);outline:none}.input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #2563eb1a}.input::placeholder{color:var(--text-muted)}.card{background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-connected{background-color:var(--accent-success)}.status-connecting{background-color:var(--accent-warning);animation:pulse 1.5s infinite}.status-disconnected{background-color:var(--accent-error)}.fade-in{animation:fadeIn var(--transition-normal) ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.slide-up{animation:slideUp var(--transition-normal) ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.loading-dots{display:inline-flex;gap:2px}.loading-dots:after{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background-color:var(--text-muted);animation:loadingDots 1.4s infinite ease-in-out}.loading-dots:before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background-color:var(--text-muted);animation:loadingDots 1.4s infinite ease-in-out .16s;margin-right:2px}.loading-dots{animation:loadingDots 1.4s infinite ease-in-out .32s}@keyframes loadingDots{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.ui-elements-container{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-sm);padding:var(--spacing-sm);background-color:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-primary)}.ui-elements-container:empty{display:none}.ui-button{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;line-height:1.4;cursor:pointer;transition:all var(--transition-fast) ease-in-out;min-height:40px;white-space:nowrap}.ui-button:hover{background-color:var(--accent-secondary);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.ui-button:active{transform:translateY(0);box-shadow:0 1px 2px #0000001a}.ui-button:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.ui-button:disabled{background-color:var(--bg-muted);color:var(--text-muted);cursor:not-allowed;transform:none;box-shadow:none}.ui-select-container{display:flex;flex-direction:column;gap:var(--spacing-xs)}.ui-select-label{font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.ui-select{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:14px;line-height:1.4;cursor:pointer;transition:all var(--transition-fast) ease-in-out;min-height:40px}.ui-select:hover{border-color:var(--border-secondary)}.ui-select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px rgba(var(--accent-primary-rgb),.2)}.ui-select option{background-color:var(--bg-primary);color:var(--text-primary);padding:var(--spacing-sm)}.ui-select:disabled{background-color:var(--bg-muted);color:var(--text-muted);cursor:not-allowed;border-color:var(--border-muted)}.ui-elements-container>*+*{margin-top:var(--spacing-sm)}.ui-elements-container .ui-button+.ui-button{margin-left:var(--spacing-sm);margin-top:0}@media(max-width:768px){.ui-button,.ui-select{padding:var(--spacing-xs) var(--spacing-sm);font-size:13px;min-height:36px}.ui-select-label{font-size:13px}}@media(prefers-color-scheme:dark){.ui-button{box-shadow:0 1px 3px #0000004d}.ui-button:hover{box-shadow:0 2px 6px #0006}.ui-select{background-color:var(--bg-secondary)}}.file-content-modern{width:100%;margin:4px 0;animation:fadeIn .2s ease-in}.file-card-modern{display:flex;align-items:center;gap:16px;padding:16px;background-color:#fff;border:1px solid #e5e7eb;border-radius:12px;transition:all .2s ease;cursor:default}.file-card-modern:hover{border-color:#d1d5db;box-shadow:0 2px 8px #0000000a}.file-icon-section{position:relative;flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center}.file-extension-badge{position:absolute;bottom:-4px;right:-4px;padding:2px 6px;background-color:#3b82f6;color:#fff;font-size:10px;font-weight:600;letter-spacing:.5px;border-radius:4px;text-transform:uppercase;box-shadow:0 2px 4px #0000001a}.file-info-section{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.file-name-modern{font-size:14px;font-weight:500;color:#111827;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:#6b7280}.file-type-name{font-weight:500}.file-meta-separator{color:#d1d5db}.file-size-modern{color:#9ca3af}.file-download-button-modern{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;color:#6b7280;cursor:pointer;transition:all .2s ease;padding:0}.file-download-button-modern:hover{background-color:#3b82f6;border-color:#3b82f6;color:#fff;transform:translateY(-1px);box-shadow:0 4px 8px #3b82f633}.file-download-button-modern:active{transform:translateY(0);box-shadow:0 2px 4px #3b82f633}.file-download-button-modern:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-color-scheme:dark){.file-card-modern{background-color:#1f2937;border-color:#374151}.file-card-modern:hover{border-color:#4b5563;box-shadow:0 2px 8px #0000004d}.file-name-modern{color:#f3f4f6}.file-meta{color:#9ca3af}.file-type-name{color:#d1d5db}.file-meta-separator{color:#4b5563}.file-size-modern{color:#6b7280}.file-download-button-modern{background-color:#374151;border-color:#4b5563;color:#9ca3af}.file-download-button-modern:hover{background-color:#3b82f6;border-color:#3b82f6;color:#fff}}@media(max-width:640px){.file-card-modern{padding:12px;gap:12px}.file-icon-section{width:40px;height:40px}.file-icon-section svg{width:28px;height:28px}.file-name-modern{font-size:13px}.file-meta{font-size:11px}.file-download-button-modern{width:32px;height:32px}.file-download-button-modern svg{width:16px;height:16px}}.tool-call-indicator{margin:var(--spacing-md) 0;padding:var(--spacing-md);border-radius:var(--radius-lg);background-color:var(--bg-secondary);border:1px solid var(--border-primary);font-family:var(--font-sans);max-width:70%;animation:slideUp var(--transition-normal) ease-out;box-shadow:var(--shadow-sm)}.tool-call-indicator.executing{border-left:3px solid var(--accent-warning);background-color:#f59e0b0d}.tool-call-indicator.completed{border-left:3px solid var(--accent-success);background-color:#10b9810d}.tool-call-indicator.failed{border-left:3px solid var(--accent-error);background-color:#ef44440d}.tool-call-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm)}.tool-call-title{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:600;font-size:14px;color:var(--text-primary)}.tool-icon{font-size:16px;flex-shrink:0}.tool-name{color:var(--text-primary)}.tool-call-status{display:flex;align-items:center;gap:var(--spacing-xs);font-size:12px;color:var(--text-muted)}.status-text{font-weight:500}.spinner{width:12px;height:12px;border:2px solid var(--border-primary);border-top:2px solid var(--accent-warning);border-radius:50%;animation:spin 1s linear infinite;flex-shrink:0}.success-icon{color:var(--accent-success);font-weight:700;font-size:14px}.error-icon{color:var(--accent-error);font-weight:700;font-size:14px}.tool-call-summary{font-size:13px;color:var(--text-secondary);margin-bottom:var(--spacing-sm);line-height:1.4}.result-preview{color:var(--text-primary);font-family:var(--font-mono);font-size:12px;background-color:var(--bg-tertiary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);display:inline-block;max-width:100%;word-break:break-word}.error-preview{color:var(--accent-error);font-weight:500}.tool-call-meta{display:flex;align-items:center;justify-content:space-between;margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-primary)}.duration{font-size:11px;color:var(--text-muted);font-family:var(--font-mono)}.expand-button{background:none;border:none;color:var(--accent-primary);font-size:11px;cursor:pointer;padding:var(--spacing-xs) 0;font-weight:500;transition:color var(--transition-fast)}.expand-button:hover{color:var(--accent-secondary)}.expand-button:focus{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm)}.tool-call-expanded{margin-top:var(--spacing-sm);padding:var(--spacing-sm);background-color:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-secondary);animation:fadeIn var(--transition-fast) ease-out}.tool-call-section{margin-bottom:var(--spacing-sm)}.tool-call-section:last-child{margin-bottom:0}.tool-call-section-title{font-weight:600;font-size:12px;color:var(--text-primary);margin-bottom:var(--spacing-xs);text-transform:uppercase;letter-spacing:.5px}.tool-call-section-content{font-size:13px;color:var(--text-secondary);word-break:break-word;max-height:300px;overflow-y:auto;background-color:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);scrollbar-width:thin;scrollbar-color:var(--border-secondary) transparent}.tool-call-section-content pre{margin:0;padding:var(--spacing-sm);font-family:var(--font-mono);font-size:13px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.tool-call-section-content::-webkit-scrollbar{width:4px}.tool-call-section-content::-webkit-scrollbar-track{background:transparent}.tool-call-section-content::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:var(--radius-sm)}.tool-call-error{color:var(--accent-error)!important;font-weight:500}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.tool-call-indicator{max-width:90%;padding:var(--spacing-sm)}.tool-call-title{font-size:13px}.tool-call-meta{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.expand-button{align-self:flex-end}.tool-call-section-content{max-height:200px}}.chat-message{display:flex;margin-bottom:var(--spacing-md);animation:slideUp var(--transition-normal) ease-out}.chat-message.user{justify-content:flex-end}.chat-message.bot{justify-content:flex-start}.chat-message.multi-part{flex-direction:column;gap:var(--spacing-sm)}.chat-message.multi-part.user{align-items:flex-end}.chat-message.multi-part.bot{align-items:flex-start}.message-part-container{width:100%;display:flex}.chat-message.user .message-part-container{justify-content:flex-end}.chat-message.bot .message-part-container{justify-content:flex-start}.message-custom-ui-container{width:100%}.message-file-container{width:100%;max-width:600px}.message-tool-container{width:100%}.message-tool-container .tool-call-indicator{margin:0}.message-ui-element{max-width:85%}.message-bubble{max-width:85%;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-xl);position:relative;word-wrap:break-word;line-height:1.5}.message-bubble.user{background-color:var(--bg-chat-user);color:var(--text-user);border-bottom-right-radius:var(--radius-sm)}.message-bubble.bot{background-color:var(--bg-chat-bot);color:var(--text-bot);border-bottom-left-radius:var(--radius-sm);border:1px solid var(--border-primary)}.message-content{margin:0;font-size:14px;line-height:1.6}.markdown-paragraph{margin:0;margin-bottom:var(--spacing-sm)}.markdown-paragraph:last-child{margin-bottom:0}.markdown-inline-code{background-color:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:13px;color:var(--text-primary)}.markdown-pre{background-color:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-md);margin:var(--spacing-sm) 0;overflow-x:auto}.markdown-code-block{font-family:var(--font-mono);font-size:13px;background:transparent;color:inherit}.markdown-list{margin:var(--spacing-sm) 0;padding-left:var(--spacing-lg)}.markdown-list-item{margin-bottom:var(--spacing-xs)}.markdown-heading{margin:var(--spacing-md) 0 var(--spacing-sm) 0;font-weight:600;line-height:1.3}.markdown-h1{font-size:18px;border-bottom:1px solid var(--border-primary);padding-bottom:var(--spacing-xs)}.markdown-h2{font-size:16px}.markdown-h3{font-size:15px}.markdown-bold{font-weight:600}.markdown-italic{font-style:italic}.markdown-link{color:var(--accent-primary);text-decoration:none;border-bottom:1px solid transparent;transition:all var(--transition-fast) ease-in-out}.markdown-link:hover{color:var(--accent-secondary);border-bottom-color:var(--accent-secondary);text-decoration:none}.markdown-link:focus{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:var(--radius-xs)}.markdown-link:visited{color:var(--accent-primary)}.message-bubble.user .markdown-link{color:var(--text-user);opacity:.9}.message-bubble.user .markdown-link:hover{opacity:1;border-bottom-color:var(--text-user)}.message-bubble.bot .markdown-link{color:var(--accent-primary)}.markdown-blockquote{border-left:3px solid var(--border-secondary);padding-left:var(--spacing-md);margin:var(--spacing-sm) 0;font-style:italic;color:var(--text-muted)}.markdown-table{width:100%;border-collapse:collapse;margin:var(--spacing-md) 0;font-size:13px;background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);overflow:hidden}.markdown-thead{background-color:var(--bg-tertiary)}.markdown-th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--border-secondary);white-space:nowrap}.markdown-tbody .markdown-tr{border-bottom:1px solid var(--border-primary)}.markdown-tbody .markdown-tr:last-child{border-bottom:none}.markdown-tbody .markdown-tr:nth-child(2n){background-color:var(--bg-primary)}.markdown-tbody .markdown-tr:hover{background-color:var(--bg-hover)}.markdown-td{padding:var(--spacing-sm) var(--spacing-md);color:var(--text-secondary);border-right:1px solid var(--border-primary)}.markdown-td:last-child,.markdown-th:last-child{border-right:none}.message-bubble.user .markdown-table{background-color:#ffffff1a;border-color:#fff3}.message-bubble.user .markdown-thead{background-color:#ffffff26}.message-bubble.user .markdown-th,.message-bubble.user .markdown-td{color:var(--text-user);border-color:#fff3}.message-bubble.user .markdown-tbody .markdown-tr:nth-child(2n){background-color:#ffffff0d}.message-bubble.user .markdown-tbody .markdown-tr:hover{background-color:#ffffff1a}.message-content p{margin:0}.message-content p+p{margin-top:var(--spacing-sm)}.message-timestamp{font-size:11px;color:var(--text-muted);margin-top:var(--spacing-xs);text-align:right}.message-bubble.user .message-timestamp{text-align:right}.message-bubble.bot .message-timestamp{text-align:left}.message-streaming{position:relative}.message-streaming:after{content:"";display:inline-block;width:4px;height:16px;background-color:var(--text-bot);margin-left:2px;animation:blink 1s infinite;vertical-align:text-bottom}.message-bubble.user .message-streaming:after{background-color:var(--text-user)}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.generation-source{font-size:10px;color:var(--text-muted);margin-top:var(--spacing-xs);font-style:italic}.message-bubble.user .generation-source{text-align:right}.message-bubble.bot .generation-source{text-align:left}.message-bubble.audio{border-left:3px solid var(--accent-primary)}.message-bubble.user.audio{border-left:none;border-right:3px solid var(--accent-primary)}.audio-message-content{display:flex;flex-direction:column;gap:var(--spacing-sm)}.audio-message-header{display:flex;align-items:center;gap:var(--spacing-xs);color:var(--accent-primary);font-weight:500;font-size:12px;opacity:.8}.audio-icon{flex-shrink:0}.audio-label{font-size:11px;font-style:italic}.audio-transcription{padding-top:var(--spacing-xs);border-top:1px solid var(--border-primary);opacity:.9}.audio-transcription-loading{display:flex;align-items:center;gap:var(--spacing-xs);color:var(--text-muted);font-size:12px;font-style:italic;padding-top:var(--spacing-xs)}.transcription-spinner{width:12px;height:12px;border:1.5px solid var(--border-primary);border-top:1.5px solid var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite;flex-shrink:0}@media(max-width:768px){.message-bubble{max-width:85%;padding:var(--spacing-sm) var(--spacing-md)}.message-content{font-size:13px}.audio-message-header{font-size:11px}.markdown-table{display:block;overflow-x:auto;white-space:nowrap;font-size:12px;-webkit-overflow-scrolling:touch}.markdown-th,.markdown-td{padding:var(--spacing-xs) var(--spacing-sm)}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.message-group{position:relative;display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.message-group-line{position:absolute;left:-24px;top:16px;bottom:16px;width:3px;background-color:var(--group-color, #f59e0b);border-radius:2px}.message-group-item{position:relative}.message-group-item:before{content:"";position:absolute;left:-24px;top:20px;width:16px;height:2px;background-color:var(--group-color, #f59e0b)}.message-group-item:after{content:"";position:absolute;left:-28px;top:16px;width:10px;height:10px;border-radius:50%;background-color:var(--group-color, #f59e0b)}.message-group-item .chat-message{margin-bottom:0}.tool-status-update{display:flex;align-items:center;gap:8px;padding:8px 16px;margin:8px 0;font-size:.875rem;color:#6b7280;font-style:italic;opacity:.9;animation:fadeIn .3s ease-in}.tool-status-spinner{width:12px;height:12px;border:2px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;flex-shrink:0}.tool-status-icon{font-size:.875rem;flex-shrink:0}.tool-status-name{font-weight:500;color:#4b5563}.tool-status-separator{color:#d1d5db;margin:0 4px}.tool-status-message{color:#6b7280;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:.9;transform:translateY(0)}}@media(prefers-color-scheme:dark){.tool-status-update{color:#9ca3af}.tool-status-spinner{border-color:#374151;border-top-color:#60a5fa}.tool-status-name{color:#d1d5db}.tool-status-separator{color:#4b5563}.tool-status-message{color:#9ca3af}}.copyable-text{display:inline-flex;align-items:center;gap:var(--spacing-xs);cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);transition:all .2s ease;position:relative;background-color:var(--bg-tertiary);border:1px solid var(--border-primary)}.copyable-text:hover{background-color:var(--bg-secondary);border-color:var(--border-secondary)}.copyable-text-content{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);-webkit-user-select:none;user-select:none}.copy-icon{display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:all .2s ease;opacity:.7}.copyable-text:hover .copy-icon{opacity:1;color:var(--text-secondary)}.copy-icon.copied{color:var(--success-color, #10b981);transform:scale(1.1)}.copy-feedback{position:absolute;top:-30px;left:50%;transform:translate(-50%);background-color:var(--bg-primary);color:var(--success-color, #10b981);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:11px;font-weight:500;white-space:nowrap;border:1px solid var(--border-primary);box-shadow:0 2px 8px #0000001a;animation:copyFeedback 2s ease-in-out;z-index:1000}@keyframes copyFeedback{0%{opacity:0;transform:translate(-50%) translateY(5px)}10%{opacity:1;transform:translate(-50%) translateY(0)}90%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-5px)}}.copyable-text-small{padding:2px var(--spacing-xs)}.copyable-text-small .copyable-text-content{font-size:11px}.copyable-text-small .copy-icon{width:10px;height:10px}.copyable-text-large{padding:var(--spacing-sm) var(--spacing-md)}.copyable-text-large .copyable-text-content{font-size:14px}.toggle-container{display:flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-user-select:none;user-select:none;gap:12px}.toggle-container.toggle-disabled{opacity:.5;cursor:not-allowed}.toggle-label{font-size:14px;color:var(--text-primary, #333);flex:1}.toggle-switch{position:relative;width:44px;height:24px;flex-shrink:0}.toggle-input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{position:absolute;inset:0;background-color:#ccc;border-radius:24px;transition:background-color .3s ease}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:transform .3s ease}.toggle-input:checked+.toggle-slider{background-color:#4caf50}.toggle-input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-input:focus+.toggle-slider{box-shadow:0 0 0 2px #4caf5033}.toggle-input:disabled+.toggle-slider{background-color:#e0e0e0}.chat-sidebar{width:300px;background-color:var(--bg-secondary);border-right:1px solid var(--border-primary);flex-shrink:0;overflow-y:auto;height:100%}.chat-sidebar-content{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-xl)}.chat-sidebar-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.chat-sidebar-section-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0;padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--border-primary)}.chat-sidebar-header-slot{padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-primary)}.chat-sidebar-footer-slot{margin-top:auto;padding-top:var(--spacing-md);border-top:1px solid var(--border-primary)}.connection-status{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background-color:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-primary)}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.status-connected{background-color:var(--success-color, #10b981);box-shadow:0 0 0 2px #10b98133}.status-dot.status-connecting{background-color:var(--warning-color, #f59e0b);animation:pulse 2s infinite}.status-dot.status-disconnected{background-color:var(--error-color, #ef4444)}.status-text{font-size:12px;color:var(--text-secondary);font-weight:500}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.language-selector{display:flex;flex-direction:column;gap:var(--spacing-xs)}.language-select{width:100%;padding:var(--spacing-sm);background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.language-select:hover{border-color:var(--border-secondary);background-color:var(--bg-primary)}.language-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.language-select option{background-color:var(--bg-secondary);color:var(--text-primary);padding:var(--spacing-sm)}.channel-selector{display:flex;flex-direction:column;gap:var(--spacing-xs)}.channel-label{font-size:11px;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.channel-select{width:100%;padding:var(--spacing-sm);background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.channel-select:hover{border-color:var(--border-secondary);background-color:var(--bg-primary)}.channel-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.channel-select option{background-color:var(--bg-secondary);color:var(--text-primary);padding:var(--spacing-sm)}.session-loading{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background-color:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-primary)}.session-loading p{margin:0;font-size:12px;color:var(--text-secondary)}.loading-spinner{width:16px;height:16px;border:2px solid var(--border-primary);border-top:2px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}.session-label{font-size:11px;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.no-session{padding:var(--spacing-sm);text-align:center;color:var(--text-muted);font-size:12px;background-color:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-primary)}.no-session p{margin:0}.new-session-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:13px;font-weight:500;margin-top:var(--spacing-sm)}.debug-settings{display:flex;flex-direction:column;gap:var(--spacing-sm)}.chat-sidebar-toggle{display:none;position:fixed;top:70px;left:var(--spacing-md);z-index:95;width:40px;height:40px;padding:0;background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000001a;transition:all .2s ease}.chat-sidebar-toggle:hover{background-color:var(--bg-tertiary);border-color:var(--border-secondary)}.chat-sidebar-overlay{display:none;position:fixed;inset:60px 0 0;background-color:#00000080;z-index:89}.chat-sidebar-mobile-header{display:none;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--border-primary);background-color:var(--bg-secondary)}.chat-sidebar-mobile-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.chat-sidebar-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.chat-sidebar-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}@media(max-width:1024px){.chat-sidebar{width:240px}.chat-sidebar-content{padding:var(--spacing-md)}}@media(max-width:768px){.chat-sidebar-toggle{display:flex}.chat-sidebar{position:fixed;left:-280px;top:60px;width:280px;height:calc(100vh - 60px);z-index:90;transition:left .3s ease;box-shadow:2px 0 8px #0000001a}.chat-sidebar.mobile-open{left:0}.chat-sidebar.mobile-open~.chat-sidebar-overlay,.chat-sidebar-overlay{display:block}.chat-sidebar-mobile-header{display:flex}}.send-error-banner{position:absolute!important;bottom:100%!important;left:50%!important;transform:translate(-50%)!important;display:flex!important;align-items:center!important;gap:10px!important;padding:10px 16px!important;margin-bottom:16px!important;width:fit-content!important;max-width:calc(100% - 32px)!important;background-color:#7f1d1d!important;border-radius:24px!important;font-size:.875rem!important;animation:sendErrorSlideIn .2s ease-out!important;overflow:hidden!important;box-shadow:0 4px 12px #0000004d!important;z-index:10!important}.send-error-banner.exiting{animation:sendErrorSlideOut .15s ease-in forwards}@keyframes sendErrorSlideIn{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes sendErrorSlideOut{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(8px)}}.send-error-progress{position:absolute;bottom:0;left:0;height:3px;background-color:#fca5a5;opacity:.8;transition:width .05s linear}.send-error-content{display:flex!important;align-items:center!important;gap:8px!important;color:#fecaca!important;white-space:nowrap!important}.send-error-icon{flex-shrink:0!important;width:16px!important;height:16px!important;color:#fca5a5!important}.send-error-message{white-space:nowrap}.send-error-close{flex-shrink:0!important;width:20px!important;height:20px!important;padding:0!important;border:none!important;background:transparent!important;color:#fca5a5!important;cursor:pointer!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;transition:all .15s ease!important}.send-error-close svg{width:14px!important;height:14px!important}.send-error-close:hover{color:#fff!important;background-color:#ffffff1a!important}.chat-page{display:flex;height:100%;background-color:var(--bg-primary);flex:1}.chat-content{flex:1;display:flex;flex-direction:column;min-width:0;height:100%;position:relative}.chat-messages-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;background-color:var(--bg-primary);align-items:center;padding:var(--spacing-lg);padding-bottom:70px}.chat-input-wrapper-container{position:absolute;bottom:0;left:0;right:0;pointer-events:none;overflow:visible}.chat-input-wrapper-container>*{pointer-events:auto}.chat-messages-container{mask-image:linear-gradient(to bottom,black 0%,black calc(100% - 40px),transparent calc(100% - 10px),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 0%,black calc(100% - 40px),transparent calc(100% - 10px),transparent 100%)}.chat-messages{display:flex;flex-direction:column;gap:0;width:100%;max-width:1200px}.chat-messages.empty{justify-content:center;align-items:center;text-align:center}.empty-chat-state{max-width:400px;padding:var(--spacing-xl)}.empty-chat-icon{width:64px;height:64px;margin:0 auto var(--spacing-lg);background-color:var(--bg-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.empty-chat-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.empty-chat-description{font-size:14px;color:var(--text-muted);line-height:1.5;margin:0}.typing-indicator{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-xl);margin:0 var(--spacing-lg) var(--spacing-md);max-width:200px;color:var(--text-muted);font-size:13px;animation:fadeIn var(--transition-normal) ease-out}.typing-dots{display:flex;gap:3px}.typing-dot{width:4px;height:4px;background-color:var(--text-muted);border-radius:50%;animation:typingAnimation 1.4s infinite ease-in-out}.typing-dot:nth-child(1){animation-delay:0ms}.typing-dot:nth-child(2){animation-delay:.16s}.typing-dot:nth-child(3){animation-delay:.32s}@keyframes typingAnimation{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-10px);opacity:1}}.error-message{background-color:var(--accent-error);color:#fff;padding:var(--spacing-md);border-radius:var(--radius-md);margin:var(--spacing-md) var(--spacing-lg);font-size:14px;display:flex;align-items:center;gap:var(--spacing-sm);animation:slideUp var(--transition-normal) ease-out}.error-icon{width:16px;height:16px;flex-shrink:0}.scroll-to-bottom{position:absolute;bottom:80px;right:var(--spacing-lg);background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-md);transition:all var(--transition-fast);color:var(--text-secondary)}.scroll-to-bottom:hover{background-color:var(--bg-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.scroll-to-bottom.hidden{opacity:0;pointer-events:none;transform:translateY(10px)}.messages-end-spacer{height:12px;flex-shrink:0}.chat-before-slot{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.chat-after-input-slot{padding:var(--spacing-sm) var(--spacing-lg);border-top:1px solid var(--border-primary)}@media(max-width:768px){.chat-content{width:100%;padding-left:0}.chat-messages-container{padding-bottom:60px}.chat-messages{padding:var(--spacing-md)}.empty-chat-state{padding:var(--spacing-lg)}.empty-chat-icon{width:48px;height:48px}.empty-chat-title{font-size:16px}.empty-chat-description{font-size:13px}.scroll-to-bottom{bottom:70px;right:var(--spacing-md);width:36px;height:36px}}.sessions-filter-sidebar{width:280px;background-color:var(--bg-secondary);border-right:1px solid var(--border-primary);display:flex;flex-direction:column;height:100%;overflow-y:auto}.filter-sidebar-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-primary);background-color:var(--bg-secondary)}.filter-sidebar-title{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.filter-sidebar-content{flex:1;padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-lg)}.filter-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.filter-section-title{font-size:13px;font-weight:600;color:var(--text-secondary);margin:0;text-transform:uppercase;letter-spacing:.5px}.filter-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.filter-label{font-size:13px;color:var(--text-secondary);font-weight:500}.filter-input{width:100%;padding:var(--spacing-sm);border:1px solid var(--border-primary);border-radius:var(--radius-md);background-color:var(--bg-primary);color:var(--text-primary);font-size:14px;font-family:inherit;transition:border-color var(--transition-fast)}.filter-input:hover{border-color:var(--border-secondary)}.filter-input:focus{outline:none;border-color:var(--accent-primary)}.filter-input::placeholder{color:var(--text-muted)}.filter-select{width:100%;padding:var(--spacing-sm);border:1px solid var(--border-primary);border-radius:var(--radius-md);background-color:var(--bg-primary);color:var(--text-primary);font-size:14px;font-family:inherit;transition:border-color var(--transition-fast);cursor:pointer}.filter-select:hover{border-color:var(--border-secondary)}.filter-select:focus{outline:none;border-color:var(--accent-primary)}.sort-toggle-button{width:100%;background-color:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-sm);font-size:14px;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:var(--spacing-xs);justify-content:center}.sort-toggle-button:hover{background-color:var(--bg-hover);border-color:var(--border-secondary)}.sort-toggle-button svg{width:16px;height:16px;flex-shrink:0}.clear-filters-button{width:100%;background-color:transparent;color:var(--accent-error);border:1px solid var(--accent-error);border-radius:var(--radius-md);padding:var(--spacing-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:var(--spacing-xs);justify-content:center}.clear-filters-button:hover{background-color:var(--accent-error);color:#fff}.clear-filters-button svg{width:16px;height:16px;flex-shrink:0}@media(max-width:768px){.sessions-filter-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border-primary);height:auto;max-height:400px}.filter-sidebar-header{padding:var(--spacing-md)}.filter-sidebar-content{padding:var(--spacing-sm);gap:var(--spacing-md)}}.sessions-page{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary);flex:1}.sessions-body{display:flex;flex:1;overflow:hidden}.sessions-content{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:var(--spacing-lg)}.sessions-container{width:100%;max-width:1000px;margin:0 auto}.sessions-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.sessions-count{margin:0;color:var(--text-muted);font-size:14px}.sessions-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--text-muted)}.sessions-loading .loading-spinner{width:32px;height:32px;border:3px solid var(--border-primary);border-top:3px solid var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--spacing-md)}.sessions-error{text-align:center;padding:var(--spacing-xl);color:var(--accent-error);background-color:var(--bg-secondary);border:1px solid var(--accent-error);border-radius:var(--radius-md);margin:var(--spacing-md) 0}.sessions-unauthorized{text-align:center;padding:var(--spacing-xl);color:var(--text-muted)}.sessions-unauthorized-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);background-color:var(--bg-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--accent-primary)}.sessions-unauthorized-title{font-size:20px;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.sessions-unauthorized-description{font-size:14px;color:var(--text-muted);line-height:1.5;margin:0 0 var(--spacing-lg) 0;max-width:400px;margin-left:auto;margin-right:auto}.sessions-empty{text-align:center;padding:var(--spacing-xl);color:var(--text-muted)}.sessions-empty-icon{width:64px;height:64px;margin:0 auto var(--spacing-lg);background-color:var(--bg-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.sessions-empty-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.sessions-empty-description{font-size:14px;color:var(--text-muted);line-height:1.5;margin:0 0 var(--spacing-lg) 0}.sessions-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.session-item{background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.session-item:hover{background-color:var(--bg-hover);border-color:var(--border-secondary);transform:translateY(-1px);box-shadow:var(--shadow-md)}.session-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-sm)}.session-meta{display:flex;align-items:center;gap:var(--spacing-sm)}.session-id{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);background-color:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.session-message-count{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-muted)}.session-message-count svg{width:14px;height:14px}.session-date{font-size:12px;color:var(--text-muted)}.session-preview{margin-top:var(--spacing-sm)}.session-first-message{font-size:14px;color:var(--text-secondary);line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-overflow:ellipsis}.session-no-messages{font-size:14px;color:var(--text-muted);font-style:italic}.new-session-button{background-color:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-lg);font-size:14px;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast);display:flex;align-items:center;gap:var(--spacing-xs);text-decoration:none}.new-session-button:hover{background-color:var(--accent-primary-hover)}.new-session-button svg{width:16px;height:16px}.pagination-controls{display:flex;justify-content:center;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border-primary)}.pagination-button{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:var(--spacing-xs)}.pagination-button:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--border-secondary)}.pagination-button svg{width:16px;height:16px}.pagination-info{font-size:14px;color:var(--text-muted);font-weight:500}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:768px){.sessions-body{flex-direction:column}.sessions-content,.session-item{padding:var(--spacing-md)}.session-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.sessions-list-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}}.settings-page{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary);flex:1}.settings-content{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:var(--spacing-lg);align-items:center}.settings-container{width:100%;max-width:800px}.settings-section{background-color:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);border:1px solid var(--border-primary)}.settings-section-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.settings-section-description{color:var(--text-muted);font-size:14px;margin:0 0 var(--spacing-md) 0;line-height:1.5}.settings-option{display:flex;align-items:center}.settings-input{width:100%;max-width:500px;padding:var(--spacing-sm) var(--spacing-md);font-size:14px;color:var(--text-primary);background-color:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.settings-input:focus{outline:none;border-color:var(--accent-primary)}.settings-input::placeholder{color:var(--text-muted)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary);padding:var(--spacing-lg)}.login-container{width:100%;max-width:400px;background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-lg)}.login-header{text-align:center;margin-bottom:var(--spacing-xl)}.login-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--primary-color);color:#fff;border-radius:var(--radius-lg);margin-bottom:var(--spacing-md)}.login-title{font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs)}.login-subtitle{color:var(--text-secondary);margin:0;font-size:var(--font-size-md)}.login-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.login-error{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--error-bg, rgba(239, 68, 68, .1));color:var(--error-color, #ef4444);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-label{font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary)}.form-input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-md);background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s,box-shadow .2s}.form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-color-alpha, rgba(59, 130, 246, .2))}.form-input::placeholder{color:var(--text-tertiary)}.checkbox-group{display:flex;flex-direction:row!important;align-items:center}.checkbox-group .checkbox-label{display:inline-flex;flex-direction:row;align-items:center;gap:var(--spacing-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-group .checkbox-input{width:16px;height:16px;min-width:16px;margin:0;padding:0;cursor:pointer;accent-color:var(--primary-color);flex-shrink:0}.checkbox-group .checkbox-text{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap}.login-button{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:500;cursor:pointer;transition:background-color .2s,opacity .2s;margin-top:var(--spacing-sm)}.login-button:hover:not(:disabled){background:var(--primary-color-dark, #2563eb)}.login-button:disabled{opacity:.6;cursor:not-allowed}.button-spinner{width:16px;height:16px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}.api-keys-page{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary);flex:1}.api-keys-content{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:var(--spacing-lg);align-items:center}.api-keys-container{width:100%;max-width:1200px}.api-keys-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-lg)}.api-keys-title{font-size:24px;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.api-keys-description{color:var(--text-muted);font-size:14px;margin:0}.create-key-button{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.create-key-button:hover{background-color:var(--accent-hover)}.api-keys-loading,.api-keys-empty,.api-keys-unauthorized{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);text-align:center;color:var(--text-muted);background-color:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-primary)}.api-keys-loading .loading-spinner,.api-keys-empty svg,.api-keys-unauthorized svg,.api-keys-unauthorized-icon svg{margin-bottom:var(--spacing-md);opacity:.5}.api-keys-empty h2,.api-keys-unauthorized h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.api-keys-empty p,.api-keys-unauthorized p{margin:0;font-size:14px}.api-keys-error{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);color:#ef4444}.api-keys-error p{margin:0;font-size:14px}.api-keys-error button{background:none;border:none;color:#ef4444;cursor:pointer;font-size:14px;text-decoration:underline}.api-keys-table-container{background-color:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-primary);overflow:hidden}.api-keys-table{width:100%;border-collapse:collapse;font-size:14px}.api-keys-table th,.api-keys-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-primary)}.api-keys-table th{background-color:var(--bg-primary);color:var(--text-muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.05em}.api-keys-table tbody tr:hover{background-color:var(--bg-hover)}.api-keys-table tbody tr:last-child td{border-bottom:none}.api-keys-table .revoked-row{opacity:.6}.key-name{font-weight:500;color:var(--text-primary)}.key-prefix code{font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:13px;background-color:var(--bg-primary);padding:2px 6px;border-radius:var(--radius-sm);color:var(--text-secondary)}.role-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:12px;font-weight:500}.role-superadmin{background-color:#8b5cf626;color:#8b5cf6}.role-admin{background-color:#3b82f626;color:#3b82f6}.role-agent,.status-active{background-color:#22c55e26;color:#22c55e}.status-expired{background-color:#eab30826;color:#eab308}.status-revoked{background-color:#ef444426;color:#ef4444}.revoke-button{padding:4px 12px;background-color:transparent;color:#ef4444;border:1px solid rgba(239,68,68,.5);border-radius:var(--radius-sm);font-size:12px;cursor:pointer;transition:all var(--transition-fast)}.revoke-button:hover{background-color:#ef44441a;border-color:#ef4444}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background-color:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-lg);width:100%;max-width:480px;box-shadow:var(--shadow-lg)}.modal h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-md) 0;text-align:center}.modal-icon{display:flex;justify-content:center;margin-bottom:var(--spacing-md)}.modal-icon.success{color:#22c55e}.modal-icon.danger{color:#ef4444}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.form-group input,.form-group select{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:14px;color:var(--text-primary);background-color:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent-primary)}.form-group input::placeholder{color:var(--text-muted)}.warning-box{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:#eab3081a;border:1px solid rgba(234,179,8,.3);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);color:#eab308;font-size:13px}.warning-text{color:var(--text-muted);font-size:13px;margin-top:var(--spacing-sm)}.key-display{background-color:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.key-details{background-color:var(--bg-primary);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.key-details p{margin:0 0 var(--spacing-xs) 0;font-size:13px;color:var(--text-secondary)}.key-details p:last-child{margin-bottom:0}.key-details strong{color:var(--text-primary)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-lg)}.cancel-button{padding:var(--spacing-sm) var(--spacing-md);background-color:transparent;color:var(--text-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:14px;cursor:pointer;transition:all var(--transition-fast)}.cancel-button:hover{background-color:var(--bg-hover)}.submit-button{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.submit-button:hover:not(:disabled){background-color:var(--accent-hover)}.submit-button:disabled{opacity:.6;cursor:not-allowed}.danger-button{padding:var(--spacing-sm) var(--spacing-md);background-color:#ef4444;color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.danger-button:hover:not(:disabled){background-color:#dc2626}.danger-button:disabled{opacity:.6;cursor:not-allowed}.evaluations-filter-sidebar{width:280px;background-color:var(--bg-secondary);border-right:1px solid var(--border-primary);display:flex;flex-direction:column;height:100%;overflow-y:auto;flex-shrink:0}.evaluations-filter-sidebar .filter-sidebar-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-primary);background-color:var(--bg-secondary)}.evaluations-filter-sidebar .filter-sidebar-title{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.evaluations-filter-sidebar .filter-sidebar-content{flex:1;padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-lg)}.evaluations-filter-sidebar .filter-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.evaluations-filter-sidebar .filter-section-title{font-size:13px;font-weight:600;color:var(--text-secondary);margin:0;text-transform:uppercase;letter-spacing:.5px}.evaluations-filter-sidebar .filter-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.evaluations-filter-sidebar .filter-label{font-size:13px;color:var(--text-secondary);font-weight:500}.evaluations-filter-sidebar .filter-input{width:100%;padding:var(--spacing-sm);border:1px solid var(--border-primary);border-radius:var(--radius-md);background-color:var(--bg-primary);color:var(--text-primary);font-size:14px;font-family:inherit;transition:border-color var(--transition-fast)}.evaluations-filter-sidebar .filter-input:hover{border-color:var(--border-secondary)}.evaluations-filter-sidebar .filter-input:focus{outline:none;border-color:var(--accent-primary)}.evaluations-filter-sidebar .filter-input::placeholder{color:var(--text-muted)}.evaluations-filter-sidebar .filter-select{width:100%;padding:var(--spacing-sm);border:1px solid var(--border-primary);border-radius:var(--radius-md);background-color:var(--bg-primary);color:var(--text-primary);font-size:14px;font-family:inherit;transition:border-color var(--transition-fast);cursor:pointer}.evaluations-filter-sidebar .filter-select:hover{border-color:var(--border-secondary)}.evaluations-filter-sidebar .filter-select:focus{outline:none;border-color:var(--accent-primary)}.evaluations-filter-sidebar .sort-toggle-button{width:100%;background-color:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-sm);font-size:14px;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:var(--spacing-xs);justify-content:center}.evaluations-filter-sidebar .sort-toggle-button:hover{background-color:var(--bg-hover);border-color:var(--border-secondary)}.evaluations-filter-sidebar .sort-toggle-button svg{width:16px;height:16px;flex-shrink:0}.evaluations-filter-sidebar .clear-filters-button{width:100%;background-color:transparent;color:var(--accent-error);border:1px solid var(--accent-error);border-radius:var(--radius-md);padding:var(--spacing-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:var(--spacing-xs);justify-content:center}.evaluations-filter-sidebar .clear-filters-button:hover{background-color:var(--accent-error);color:#fff}.evaluations-filter-sidebar .clear-filters-button svg{width:16px;height:16px;flex-shrink:0}@media(max-width:768px){.evaluations-filter-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border-primary);height:auto;max-height:400px}.evaluations-filter-sidebar .filter-sidebar-header{padding:var(--spacing-md)}.evaluations-filter-sidebar .filter-sidebar-content{padding:var(--spacing-sm);gap:var(--spacing-md)}}.evaluations-page{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary);flex:1}.evaluations-body{display:flex;flex:1;overflow:hidden}.evaluations-content{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:var(--spacing-lg);align-items:center}.evaluations-container{width:100%;max-width:1200px}.evaluations-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-lg)}.evaluations-title{font-size:24px;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.evaluations-description{color:var(--text-muted);font-size:14px;margin:0}.evaluations-tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-primary);padding-bottom:var(--spacing-xs)}.tab-button{padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;color:var(--text-muted);font-size:14px;font-weight:500;cursor:pointer;border-radius:var(--radius-md) var(--radius-md) 0 0;transition:all var(--transition-fast);position:relative}.tab-button:hover{color:var(--text-primary);background-color:var(--bg-hover)}.tab-button.active{color:var(--accent-primary)}.tab-button.active:after{content:"";position:absolute;bottom:calc(-1 * var(--spacing-xs) - 1px);left:0;right:0;height:2px;background-color:var(--accent-primary)}.run-all-button{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.run-all-button:hover:not(:disabled){background-color:var(--accent-hover)}.run-all-button:disabled{opacity:.6;cursor:not-allowed}.evaluations-loading,.evaluations-empty,.evaluations-unauthorized{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);text-align:center;color:var(--text-muted);background-color:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-primary)}.evaluations-loading .loading-spinner,.evaluations-empty svg,.evaluations-unauthorized svg,.evaluations-unauthorized-icon svg{margin-bottom:var(--spacing-md);opacity:.5}.evaluations-empty h2,.evaluations-unauthorized h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.evaluations-empty p,.evaluations-unauthorized p{margin:0;font-size:14px}.evaluations-error{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);color:#ef4444}.evaluations-error p{margin:0;font-size:14px}.evaluations-error button{background:none;border:none;color:#ef4444;cursor:pointer;font-size:14px;text-decoration:underline}.scenarios-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-md)}.scenario-card{display:flex;flex-direction:column;background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-md);transition:border-color var(--transition-fast)}.scenario-card:hover{border-color:var(--accent-primary)}.scenario-info{flex:1;margin-bottom:var(--spacing-md);cursor:pointer}.scenario-name{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.scenario-description{font-size:14px;color:var(--text-secondary);margin:0 0 var(--spacing-sm) 0;line-height:1.5}.scenario-meta{display:flex;align-items:center;gap:var(--spacing-sm)}.goal-count{font-size:12px;color:var(--text-muted);background-color:var(--bg-primary);padding:2px 8px;border-radius:var(--radius-sm)}.run-scenario-button{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background-color:transparent;color:var(--accent-primary);border:1px solid var(--accent-primary);border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.run-scenario-button:hover:not(:disabled){background-color:var(--accent-primary);color:#fff}.run-scenario-button:disabled{opacity:.6;cursor:not-allowed}.button-spinner{width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite}.loading-spinner{width:32px;height:32px;border:3px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.last-result{background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.last-result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.last-result-header h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.close-result{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.close-result:hover{color:var(--text-primary);background-color:var(--bg-hover)}.result-summary{display:flex;gap:var(--spacing-lg);align-items:center;margin-bottom:var(--spacing-md)}.result-score{font-size:48px;font-weight:700;padding:var(--spacing-md);border-radius:var(--radius-md);min-width:120px;text-align:center}.result-details{flex:1;display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center}.result-stat{display:flex;flex-direction:column;gap:2px}.stat-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:14px;font-weight:500;color:var(--text-primary)}.view-session-link{padding:var(--spacing-xs) var(--spacing-sm);background-color:transparent;color:var(--accent-primary);border:1px solid var(--accent-primary);border-radius:var(--radius-sm);font-size:13px;text-decoration:none;transition:all var(--transition-fast)}.view-session-link:hover{background-color:var(--accent-primary);color:#fff}.result-summary-text{font-size:14px;color:var(--text-secondary);margin:0 0 var(--spacing-md) 0;line-height:1.5}.result-summary-text p{margin:0 0 var(--spacing-sm) 0}.result-summary-text p:last-child{margin-bottom:0}.markdown-content{font-size:14px;color:var(--text-secondary);line-height:1.6}.markdown-content p{margin:0 0 var(--spacing-sm) 0}.markdown-content p:last-child{margin-bottom:0}.markdown-content ul,.markdown-content ol{margin:var(--spacing-xs) 0 var(--spacing-sm) var(--spacing-md);padding:0}.markdown-content li{margin-bottom:4px}.markdown-content strong{color:var(--text-primary)}.markdown-content code{font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:13px;background-color:var(--bg-primary);padding:2px 6px;border-radius:var(--radius-sm)}.markdown-content pre{background-color:var(--bg-primary);padding:var(--spacing-sm);border-radius:var(--radius-md);overflow-x:auto;margin:var(--spacing-sm) 0}.markdown-content pre code{padding:0;background:none}.goal-results{margin-top:var(--spacing-md);border-top:1px solid var(--border-primary);padding-top:var(--spacing-md)}.goal-results h4{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.goal-item{background-color:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);margin-bottom:var(--spacing-xs);overflow:hidden}.goal-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;transition:background-color var(--transition-fast)}.goal-header:hover{background-color:var(--bg-hover)}.goal-status{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.goal-status.passed{background-color:#22c55e26;color:#22c55e}.goal-status.failed{background-color:#ef444426;color:#ef4444}.goal-description{flex:1;font-size:14px;color:var(--text-primary)}.goal-score{font-size:14px;font-weight:600;padding:2px 8px;border-radius:var(--radius-sm)}.expand-icon{color:var(--text-muted);transition:transform var(--transition-fast);flex-shrink:0}.expand-icon.expanded{transform:rotate(180deg)}.goal-details{padding:var(--spacing-sm) var(--spacing-md) var(--spacing-md);border-top:1px solid var(--border-primary);background-color:var(--bg-secondary)}.goal-reasoning{font-size:14px;color:var(--text-secondary);margin:0 0 var(--spacing-sm) 0;line-height:1.5}.goal-observations,.goal-suggestions{font-size:13px;color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.goal-observations strong,.goal-suggestions strong{color:var(--text-primary)}.goal-observations ul,.goal-suggestions ul{margin:var(--spacing-xs) 0 0 var(--spacing-md);padding:0}.goal-observations li,.goal-suggestions li{margin-bottom:4px}.result-error{padding:var(--spacing-sm) var(--spacing-md);background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:#ef4444;font-size:14px;margin-top:var(--spacing-md)}.score-excellent{background-color:#22c55e26;color:#22c55e}.score-good{background-color:#3b82f626;color:#3b82f6}.score-fair{background-color:#eab30826;color:#eab308}.score-poor{background-color:#ef444426;color:#ef4444}.score-na{background-color:var(--bg-primary);color:var(--text-muted)}.status-success{color:#22c55e}.status-failed{color:#ef4444}.status-warning{color:#eab308}.status-error{color:#ef4444}.runs-table-container{background-color:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-primary);overflow:hidden}.runs-table{width:100%;border-collapse:collapse;font-size:14px}.runs-table th,.runs-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-primary)}.runs-table th{background-color:var(--bg-primary);color:var(--text-muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.05em}.runs-table tbody tr:hover{background-color:var(--bg-hover)}.runs-table tbody tr:last-child td{border-bottom:none}.runs-table .error-row{background-color:#ef44440d}.scenario-cell{display:flex;flex-direction:column;gap:2px}.scenario-cell .scenario-name{font-weight:500;color:var(--text-primary);font-size:14px;margin:0}.scenario-cell .scenario-id{font-size:12px;color:var(--text-muted);font-family:SF Mono,Monaco,Cascadia Code,monospace}.score-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:12px;font-weight:600}.status-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:12px;font-weight:500}.status-badge.status-success{background-color:#22c55e26}.status-badge.status-failed{background-color:#ef444426}.status-badge.status-warning{background-color:#eab30826}.status-badge.status-error{background-color:#ef444426}.view-link{color:var(--accent-primary);text-decoration:none;font-size:13px}.view-link:hover{text-decoration:underline}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-top:1px solid var(--border-primary);background-color:var(--bg-secondary)}.pagination-button{padding:var(--spacing-xs) var(--spacing-md);background-color:transparent;color:var(--text-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:14px;cursor:pointer;transition:all var(--transition-fast)}.pagination-button:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--accent-primary);color:var(--accent-primary)}.pagination-button:disabled{opacity:.5;cursor:not-allowed}.pagination-info{font-size:14px;color:var(--text-muted)}.header-actions{display:flex;gap:var(--spacing-sm)}.run-selected-button{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background-color:transparent;color:var(--accent-primary);border:1px solid var(--accent-primary);border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.run-selected-button:hover:not(:disabled){background-color:var(--accent-primary);color:#fff}.run-selected-button:disabled{opacity:.6;cursor:not-allowed}.scenarios-selection-bar{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md)}.select-all-checkbox{display:flex;align-items:center;gap:var(--spacing-xs);cursor:pointer;font-size:14px;color:var(--text-secondary)}.select-all-checkbox input{width:16px;height:16px;cursor:pointer}.selection-count{font-size:13px;color:var(--text-muted)}.scenario-card{position:relative;display:flex;flex-direction:column;background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-md);padding-left:calc(40px + var(--spacing-md));transition:border-color var(--transition-fast),background-color var(--transition-fast);overflow:hidden}.scenario-card.selected{border-color:var(--accent-primary);background-color:rgba(var(--accent-primary-rgb, 59, 130, 246),.05)}.scenario-checkbox{position:absolute;left:0;top:0;bottom:0;width:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-right:1px solid var(--border-primary);background-color:var(--bg-primary);border-radius:var(--radius-md) 0 0 var(--radius-md);transition:background-color var(--transition-fast)}.scenario-checkbox:hover{background-color:var(--bg-hover)}.scenario-checkbox input{width:16px;height:16px;cursor:pointer}.clickable-row{cursor:pointer}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-lg)}.modal{background-color:var(--bg-secondary);border-radius:var(--radius-lg);width:100%;max-width:640px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.modal-header h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.modal-close:hover{color:var(--text-primary);background-color:var(--bg-hover)}.modal-body{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.modal-footer{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-primary);display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.scenario-modal-description{font-size:14px;color:var(--text-secondary);line-height:1.6;margin:0 0 var(--spacing-lg) 0}.scenario-modal-goals h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-md) 0}.scenario-goal-item{background-color:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-sm)}.scenario-goal-item h4{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.scenario-goal-item p{font-size:14px;color:var(--text-secondary);margin:0 0 var(--spacing-sm) 0;line-height:1.5}.success-criteria{font-size:13px;color:var(--text-secondary)}.success-criteria strong{color:var(--text-primary)}.success-criteria ul{margin:var(--spacing-xs) 0 0 var(--spacing-md);padding:0}.success-criteria li{margin-bottom:4px}.no-goals-message{font-size:14px;color:var(--text-muted);font-style:italic;margin:0}.history-modal{max-width:720px}.history-modal-summary{display:flex;gap:var(--spacing-lg);align-items:flex-start;margin-bottom:var(--spacing-lg)}.history-modal-stats{flex:1;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.history-modal-reason{font-size:14px;color:var(--text-secondary);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-primary);border-radius:var(--radius-md)}.history-modal-summary-text{margin-bottom:var(--spacing-lg)}.history-modal-summary-text>strong{font-size:14px;color:var(--text-primary);display:block;margin-bottom:var(--spacing-xs)}.history-modal-goals{margin-bottom:var(--spacing-lg)}.history-modal-goals h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-md) 0}.history-modal-error{margin-top:var(--spacing-md)}.history-modal-error h3{font-size:16px;font-weight:600;color:#ef4444;margin:0 0 var(--spacing-sm) 0}.error-details{background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);padding:var(--spacing-md)}.error-details p{font-size:14px;margin:0 0 var(--spacing-xs) 0;color:var(--text-secondary)}.error-details strong{color:var(--text-primary)}.error-stacktrace{margin-top:var(--spacing-sm)}.error-stacktrace summary{cursor:pointer;font-size:13px;color:var(--text-muted)}.error-stacktrace pre{font-size:12px;font-family:SF Mono,Monaco,Cascadia Code,monospace;background-color:var(--bg-primary);padding:var(--spacing-sm);border-radius:var(--radius-sm);overflow-x:auto;margin:var(--spacing-xs) 0 0 0;white-space:pre-wrap;word-break:break-all}.view-session-button{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;transition:background-color var(--transition-fast)}.view-session-button:hover{background-color:var(--accent-hover)}@media(max-width:768px){.evaluations-body{flex-direction:column}.evaluations-header{flex-direction:column;gap:var(--spacing-md)}.result-summary{flex-direction:column;align-items:flex-start}.result-score{font-size:36px;min-width:unset;padding:var(--spacing-sm) var(--spacing-md)}.scenarios-grid{grid-template-columns:1fr}.runs-table-container{overflow-x:auto}.runs-table{min-width:600px}.header-actions{flex-direction:column;width:100%}.header-actions button{width:100%;justify-content:center}.modal{max-height:80vh}.history-modal-summary{flex-direction:column}.history-modal-stats{grid-template-columns:1fr}}.navbar{background-color:var(--bg-primary);border-bottom:1px solid var(--border-primary);height:48px;flex-shrink:0;position:sticky;top:0;z-index:100}.navbar-content{display:flex;align-items:center;justify-content:space-between;height:100%;max-width:1400px;margin:0 auto;padding:0 var(--spacing-lg)}.navbar-brand{display:flex;align-items:center}.brand-link{display:flex;align-items:center;gap:var(--spacing-xs);text-decoration:none;color:var(--text-primary);font-weight:600;font-size:15px;transition:color .2s ease}.brand-link:hover{color:var(--primary-color, #3b82f6)}.brand-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background-color:var(--primary-color, #3b82f6);color:#fff;border-radius:var(--radius-md)}.brand-text{color:var(--text-primary)}.navbar-nav{display:flex;align-items:center;gap:var(--spacing-md)}.nav-link{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);text-decoration:none;color:var(--text-muted);font-size:13px;font-weight:500;border-radius:var(--radius-md);transition:all .2s ease;position:relative}.nav-link:hover{color:var(--text-primary);background-color:var(--bg-secondary)}.nav-link.active{color:var(--primary-color, #3b82f6);background-color:var(--primary-color-light, rgba(59, 130, 246, .1))}.nav-link.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background-color:var(--primary-color, #3b82f6)}.navbar-actions{display:flex;align-items:center;gap:var(--spacing-md)}.user-menu{display:flex;align-items:center;gap:var(--spacing-sm);margin-left:var(--spacing-sm);padding-left:var(--spacing-sm);border-left:1px solid var(--border-primary)}.user-info{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.user-name{font-size:13px;font-weight:500;color:var(--text-primary)}.user-role{font-size:11px;color:var(--text-muted);text-transform:capitalize}.logout-button{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xs);background:transparent;border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;transition:all .2s ease}.logout-button:hover{background:var(--bg-secondary);color:var(--error-color, #ef4444);border-color:var(--error-color, #ef4444)}@media(max-width:768px){.navbar-content{padding:0 var(--spacing-md)}.brand-text{display:none}.navbar-nav{gap:var(--spacing-sm)}.nav-link{padding:var(--spacing-xs) var(--spacing-sm);font-size:13px}.nav-link span{display:none}}@media(max-width:480px){.navbar-content{padding:0 var(--spacing-sm)}.navbar-nav{gap:var(--spacing-xs)}.nav-link{padding:var(--spacing-xs);min-width:40px;justify-content:center}}.app-layout{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.app-main{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}.app-main::-webkit-scrollbar{width:6px}.app-main::-webkit-scrollbar-track{background:var(--scrollbar-track)}.app-main::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}.app-main::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.protected-route-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary)}.protected-route-loading-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.protected-route-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:protected-route-spin .8s linear infinite}.protected-route-text{color:var(--text-secondary);font-size:var(--font-size-md);margin:0}@keyframes protected-route-spin{to{transform:rotate(360deg)}}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;height:100vh}
