: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}}.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}}.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}.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:disabled{opacity:.5;cursor:not-allowed}.pagination-button svg{width:16px;height:16px}.pagination-info{font-size:14px;color:var(--text-muted);font-weight:500}@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{background-color:#22c55e26;color:#22c55e}.status-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:12px;font-weight:500}.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}.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}.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:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}.modal-content{background:#1f2937;border-radius:16px;box-shadow:0 20px 25px -5px #00000080,0 10px 10px -5px #0000004d;max-width:900px;width:100%;max-height:90vh;display:flex;flex-direction:column;animation:scaleIn .2s ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid #374151;flex-shrink:0}.modal-title{font-size:1.5rem;font-weight:700;color:#f9fafb;margin:0}.modal-close{background:none;border:none;padding:.5rem;cursor:pointer;color:#9ca3af;transition:color .2s ease,background .2s ease;border-radius:8px;display:flex;align-items:center;justify-content:center}.modal-close:hover{color:#f9fafb;background:#374151}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-body .details-section{padding-bottom:1.5rem;margin-bottom:1.5rem;border-bottom:1px solid #374151}.modal-body .details-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.modal-body .details-section h3{margin:0 0 1rem;font-size:1.125rem;font-weight:600;color:#f9fafb}.modal-body .details-section h4{margin:.75rem 0 .5rem;font-size:1rem;font-weight:600;color:#e5e7eb}.modal-body .details-grid{display:flex;flex-direction:column;gap:.75rem}.modal-body .detail-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#111827;border-radius:8px}.modal-body .detail-row.full-width{flex-direction:column;align-items:flex-start;gap:.5rem}.modal-body .detail-row.highlight{background:#1e3a5f;border:1px solid #3b82f6}.modal-body .detail-label{font-size:.875rem;color:#9ca3af;font-weight:500}.modal-body .detail-value{font-size:.875rem;color:#f9fafb;font-weight:600;text-align:right}.modal-body .detail-row.full-width .detail-value{text-align:left}.modal-body .detail-row.highlight .detail-label,.modal-body .detail-row.highlight .detail-value{color:#93c5fd}@media(max-width:768px){.modal-content{max-width:100%;max-height:95vh;border-radius:16px 16px 0 0;align-self:flex-end}.modal-header{padding:1rem}.modal-title{font-size:1.25rem}.modal-body{padding:1rem}.modal-overlay{padding:0;align-items:flex-end}}.flight-cards-wrapper{width:100%;margin:.75rem 0}.flight-cards-container{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;padding:.5rem 0;width:100%}.flight-card-wrapper{display:flex;flex-direction:column;height:100%}.flight-card{background:#1f2937;border:1px solid #374151;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0000004d;transition:all .2s ease;display:flex;flex-direction:column;gap:1rem;cursor:pointer;-webkit-user-select:none;user-select:none;height:100%}.flight-card:hover{box-shadow:0 4px 12px #00000080;transform:translateY(-2px);border-color:#4b5563}.flight-card-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:.75rem;border-bottom:1px solid #374151}.flight-price{display:flex;align-items:baseline;gap:.25rem}.price-amount{font-size:1.75rem;font-weight:700;color:var(--primary-color, #2563eb)}.flight-cabin{font-size:.75rem;font-weight:600;text-transform:uppercase;padding:.25rem .75rem;border-radius:9999px;background:#374151;color:#d1d5db;letter-spacing:.5px}.flight-route{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0}.airport-code{font-size:1.5rem;font-weight:700;color:#f9fafb;font-family:Courier New,monospace}.route-arrow{flex-shrink:0;color:#6b7280;display:flex;align-items:center}.flight-times{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;background:#111827;border-radius:8px;padding:.75rem}.time-item{display:flex;flex-direction:column;gap:.25rem;flex:1}.time-label{font-size:.75rem;font-weight:500;color:#9ca3af;text-transform:uppercase;letter-spacing:.5px}.time-value{font-size:.875rem;font-weight:600;color:#f9fafb}.flight-details{display:flex;gap:1.5rem;padding-top:.5rem;flex:1}.detail-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#d1d5db}.detail-item svg{flex-shrink:0;color:#9ca3af}@media(max-width:768px){.flight-cards-container{grid-template-columns:1fr}.airport-code{font-size:1.25rem}.price-amount{font-size:1.5rem}}.segment-card{background:#111827;border:1px solid #374151;border-radius:8px;padding:1rem;margin-bottom:1rem}.segment-card:last-child{margin-bottom:0}.segment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #374151}.segment-airline{display:flex;align-items:center;gap:.5rem;font-size:1rem;color:#f9fafb;font-weight:600}.aircraft-code{font-size:.875rem;color:#9ca3af;font-weight:400}.segment-stops{font-size:.75rem;color:#d1d5db;background:#374151;padding:.25rem .75rem;border-radius:9999px}.segment-route{display:flex;align-items:center;justify-content:space-between;gap:1rem}.segment-endpoint{flex:1;display:flex;flex-direction:column;gap:.25rem}.endpoint-code{font-size:1.5rem;font-weight:700;color:#f9fafb;font-family:Courier New,monospace}.endpoint-terminal{font-size:.75rem;color:#9ca3af}.endpoint-time{font-size:.875rem;color:#e5e7eb;font-weight:600}.segment-arrow{display:flex;flex-direction:column;align-items:center;gap:.25rem;color:#9ca3af}.segment-duration{font-size:.75rem;color:#9ca3af;font-weight:600}.layover-indicator{margin-top:.75rem;padding:.5rem;background:#422006;border-left:3px solid #f59e0b;border-radius:4px;font-size:.875rem;color:#fbbf24;text-align:center}.traveler-pricing{padding:1rem;background:#111827;border:1px solid #374151;border-radius:8px;margin-bottom:1rem}.traveler-pricing:last-child{margin-bottom:0}.fare-details{display:flex;flex-direction:column;gap:.5rem}@media(max-width:768px){.segment-route{flex-direction:column;gap:.75rem}.segment-arrow{transform:rotate(90deg)}.endpoint-code{font-size:1.25rem}}.hotel-cards-wrapper{width:100%;margin:.75rem 0}.hotel-cards-container{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;padding:.5rem 0;width:100%}.hotel-card-wrapper{display:flex;flex-direction:column;height:100%}.hotel-card{background:#1f2937;border:1px solid #374151;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0000004d;transition:all .2s ease;display:flex;flex-direction:column;gap:1rem;cursor:pointer;-webkit-user-select:none;user-select:none;height:100%}.hotel-card:hover{box-shadow:0 4px 12px #00000080;transform:translateY(-2px);border-color:#4b5563}.hotel-card-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:.75rem;border-bottom:1px solid #374151}.hotel-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.hotel-name{font-size:1.25rem;font-weight:700;color:#f9fafb;margin:0}.hotel-location{font-size:.75rem;font-weight:600;text-transform:uppercase;color:#9ca3af;letter-spacing:.5px}.hotel-price{display:flex;align-items:baseline;gap:.25rem}.price-amount{font-size:1.75rem;font-weight:700;color:#2563eb}.price-currency{font-size:1rem;font-weight:600;color:#9ca3af}.hotel-per-night{display:flex;align-items:baseline;gap:.5rem;padding:.5rem .75rem;background:#111827;border-radius:6px}.per-night-amount{font-size:.875rem;font-weight:600;color:#f9fafb}.per-night-label{font-size:.75rem;color:#9ca3af}.hotel-room-info{display:flex;gap:1.5rem;padding:.5rem 0}.room-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#d1d5db}.room-item svg{flex-shrink:0;color:#9ca3af}.hotel-details{display:flex;gap:.5rem;flex-wrap:wrap;padding-top:.5rem;flex:1;align-items:center}.detail-badge{padding:.375rem .875rem;border-radius:6px;font-size:.75rem;font-weight:600;letter-spacing:.5px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;min-height:28px}.detail-badge:not(.refundable):not(.non-refundable){background:#374151;color:#d1d5db;border:1px solid #4b5563}.detail-badge.refundable{background:#064e3b;color:#6ee7b7;border:1px solid #065f46}.detail-badge.non-refundable{background:#7f1d1d;color:#fca5a5;border:1px solid #991b1b}.offer-title{margin:0 0 1rem;font-size:1.125rem;font-weight:600;color:#f9fafb}.cancellation-policies{margin-top:1rem;padding-top:1rem;border-top:1px solid #374151}.cancellation-item{background:#111827;border:1px solid #374151;border-radius:6px;padding:.75rem;margin-bottom:.5rem}.cancellation-item:last-child{margin-bottom:0}.cancellation-item p{margin:.25rem 0;font-size:.875rem;color:#e5e7eb}.cancellation-item strong{color:#f9fafb}@media(max-width:768px){.hotel-cards-container{grid-template-columns:1fr}.hotel-card-header{flex-direction:column;gap:.75rem}.hotel-price{align-self:flex-start}.price-amount{font-size:1.5rem}}.tour-activity-cards-wrapper{width:100%;margin:.75rem 0}.cards-section-header{margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:2px solid #374151}.cards-section-title{margin:0;font-size:1.125rem;font-weight:600;color:#f9fafb;display:flex;align-items:center;gap:.5rem}.tour-activity-cards-container{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;padding:.5rem 0;width:100%}.tour-activity-card-wrapper{display:flex;flex-direction:column;height:100%}.tour-activity-card{background:#1f2937;border:1px solid #374151;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000004d;transition:all .2s ease;display:flex;flex-direction:column;cursor:pointer;-webkit-user-select:none;user-select:none;color:#f9fafb;height:100%}.tour-activity-card:hover{box-shadow:0 4px 12px #00000080;transform:translateY(-2px);border-color:#4b5563}.tour-activity-image{width:100%;height:180px;overflow:hidden;background:#111827}.tour-activity-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.tour-activity-card:hover .tour-activity-image img{transform:scale(1.05)}.tour-activity-card-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.25rem 1.25rem .75rem;border-bottom:1px solid #374151}.tour-activity-info{flex:1;display:flex;flex-direction:column;gap:.5rem}.tour-activity-name{font-size:1.125rem;font-weight:700;color:#f9fafb;margin:0;line-height:1.3}.tour-activity-rating{display:flex;align-items:center;gap:.25rem;color:#f59e0b}.tour-activity-rating svg{fill:#f59e0b}.tour-activity-rating span{font-size:.875rem;font-weight:600;color:#f9fafb}.tour-activity-price{display:flex;align-items:baseline;gap:.25rem;flex-shrink:0}.tour-activity-price .price-amount{font-size:1.5rem;font-weight:700;color:#2563eb}.tour-activity-price .price-currency{font-size:.875rem;font-weight:600;color:#9ca3af}.tour-activity-short-desc{padding:0 1.25rem;color:#d1d5db;font-size:.875rem;line-height:1.5;flex:1}.tour-activity-short-desc p{margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tour-activity-duration{display:flex;align-items:center;gap:.5rem;padding:0 1.25rem 1.25rem;color:#d1d5db;font-size:.875rem}.tour-activity-duration svg{stroke:#9ca3af}.tour-activity-booking-modal{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.booking-button-modal{display:inline-block;width:100%;padding:.875rem 1.5rem;background:#2563eb;color:#fff;text-decoration:none;border-radius:8px;font-weight:600;font-size:1rem;text-align:center;transition:background .2s ease}.booking-button-modal:hover{background:#1d4ed8}.full-description{color:#d1d5db;font-size:.875rem;line-height:1.6;margin:0}.pictures-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.pictures-gallery img{width:100%;height:150px;object-fit:cover;border-radius:8px;border:1px solid #374151;transition:transform .2s ease}.pictures-gallery img:hover{transform:scale(1.02);border-color:#4b5563}@media(max-width:768px){.tour-activity-cards-container{grid-template-columns:1fr}.tour-activity-card-header{flex-direction:column;gap:.75rem}.tour-activity-price{align-self:flex-start}.tour-activity-image{height:200px}}.lead-form-container{width:100%;padding:1rem;box-sizing:border-box;display:flex;justify-content:flex-end}.lead-form-card{background:#1f2937;border:1px solid #374151;border-radius:12px;padding:2rem;box-shadow:0 4px 12px #0000004d;max-width:500px;width:100%}.lead-form-title{font-size:1.5rem;font-weight:600;color:#f9fafb;margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem}.lead-form-title:before{content:"📋";font-size:1.75rem}.lead-form-description{font-size:.95rem;color:#9ca3af;margin:0 0 1.5rem;line-height:1.6}.lead-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-label{font-size:.9rem;font-weight:500;color:#e5e7eb}.required{color:#ef4444}.form-input{padding:.875rem;background:#111827;border:1px solid #374151;border-radius:8px;font-size:1rem;color:#f9fafb;transition:all .2s;box-sizing:border-box}.form-input::placeholder{color:#6b7280}.form-input:focus{outline:none;border-color:#2563eb;background:#1a1f2e;box-shadow:0 0 0 3px #2563eb1a}.form-input.error{border-color:#dc2626;background:#1a0f0f}.form-input.error:focus{box-shadow:0 0 0 3px #dc26261a}.form-hint{font-size:.85rem;color:#6b7280;margin-top:-.25rem}.error-message{font-size:.85rem;color:#fca5a5;margin-top:-.25rem}.submit-error{padding:.875rem;background-color:#7f1d1d;border:1px solid #991b1b;border-radius:8px;color:#fca5a5;font-size:.9rem;text-align:center}.submit-button{padding:1rem 1.5rem;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;margin-top:.5rem;box-shadow:0 4px 12px #2563eb33}.submit-button:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-2px);box-shadow:0 6px 16px #2563eb66}.submit-button:active{transform:translateY(0)}.submit-button:disabled{background:#374151;color:#6b7280;cursor:not-allowed;transform:none;box-shadow:none}.radio-group{display:flex;flex-direction:column;gap:.75rem}.radio-label{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;padding:.875rem;background:#111827;border:2px solid #374151;border-radius:8px;cursor:pointer;transition:all .2s;font-size:1rem;color:#e5e7eb;line-height:1}.radio-label:hover{background:#1a1f2e;border-color:#4b5563}.radio-label:has(.radio-input:checked){background:#1e293b;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.radio-label .radio-input{-webkit-appearance:auto!important;appearance:auto!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;accent-color:#2563eb;cursor:pointer;margin:0!important;padding:0!important;flex-shrink:0;vertical-align:middle}.radio-label span{margin-left:12px!important;line-height:1;vertical-align:middle}@media(max-width:640px){.lead-form-container{justify-content:center}.lead-form-card{padding:1.25rem}.lead-form-title{font-size:1.25rem}.lead-form-description{font-size:.9rem}}.crm-lead-panel{display:flex;flex-direction:column;gap:.5rem;position:relative;padding:.75rem;border-top:1px solid var(--color-border, #374151);margin-top:auto}.crm-lead-loading{display:flex;justify-content:center;padding:.5rem}.crm-create-button,.crm-view-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.625rem 1rem;font-size:.875rem;font-weight:500;border:none;border-radius:.375rem;cursor:pointer;transition:background-color .15s ease,opacity .15s ease;white-space:nowrap}.crm-create-button{color:#fff;background-color:var(--color-primary, #3b82f6)}.crm-create-button:hover:not(:disabled){background-color:var(--color-primary-hover, #2563eb)}.crm-create-button:disabled{opacity:.7;cursor:not-allowed}.crm-view-button{color:#fff;background-color:#3b82f6}.crm-view-button:hover{background-color:#2563eb}.crm-create-button svg,.crm-view-button svg{flex-shrink:0}.button-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.crm-toast{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;font-size:.8125rem;border-radius:.375rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;animation:slideIn .2s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.crm-toast.success{background-color:#10b981;color:#fff}.crm-toast.error{background-color:#ef4444;color:#fff}.toast-close{display:inline-flex;align-items:center;justify-content:center;padding:.125rem;background:transparent;border:none;color:inherit;cursor:pointer;opacity:.8;transition:opacity .15s ease}.toast-close:hover{opacity:1}.crm-modal-overlay{position:fixed;inset:0;background-color:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.crm-modal{background:#1f2937;border:1px solid #374151;border-radius:1rem;box-shadow:0 25px 50px -12px #00000080;width:100%;max-width:640px;max-height:85vh;display:flex;flex-direction:column;animation:modalSlideIn .25s ease;overflow:hidden}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.crm-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.crm-modal-header h2{margin:0;font-size:1.25rem;font-weight:600}.crm-modal-close{display:inline-flex;align-items:center;justify-content:center;padding:.375rem;background:#ffffff26;border:none;border-radius:.375rem;color:#fff;cursor:pointer;transition:background-color .15s ease}.crm-modal-close:hover{background-color:#ffffff40}.crm-modal-content{padding:1.5rem;overflow-y:auto;flex:1}.crm-section{margin-bottom:1.75rem}.crm-section:last-child{margin-bottom:0}.crm-section h3{display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;padding-bottom:.5rem;font-size:.75rem;font-weight:700;color:#60a5fa;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #1e3a8a}.crm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}@media(max-width:480px){.crm-grid{grid-template-columns:1fr}}.crm-field{display:flex;flex-direction:column;gap:.375rem}.crm-field label{font-size:.6875rem;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.crm-field span{font-size:.9375rem;font-weight:500;color:#f3f4f6}.crm-field a{font-size:.9375rem;font-weight:500;color:#60a5fa;text-decoration:none;transition:color .15s ease}.crm-field a:hover{color:#93c5fd;text-decoration:underline}.crm-summary,.crm-notes{margin:0;padding:1rem;font-size:.875rem;line-height:1.7;color:#e5e7eb;background-color:#111827;border-radius:.5rem;border-left:3px solid #3b82f6;white-space:pre-wrap}.crm-quotes{display:flex;flex-direction:column;gap:.75rem}.crm-quote-card{padding:1rem;background:linear-gradient(135deg,#1e3a8a,#1e40af);border:1px solid #2563eb;border-radius:.5rem;transition:box-shadow .15s ease,transform .15s ease}.crm-quote-card:hover{box-shadow:0 4px 12px #3b82f633;transform:translateY(-1px)}.crm-quote-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.625rem}.crm-quote-id{font-size:.875rem;font-weight:600;color:#f3f4f6;font-family:ui-monospace,monospace}.crm-quote-value{font-size:1rem;font-weight:700;color:#60a5fa}.crm-quote-details{display:flex;gap:1.25rem;font-size:.8125rem;color:#9ca3af;margin-bottom:.75rem}.crm-quote-details span{display:flex;align-items:center;gap:.25rem}.crm-quote-link{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.8125rem;font-weight:500;color:#fff;background-color:#3b82f6;border-radius:.375rem;text-decoration:none;transition:background-color .15s ease}.crm-quote-link:hover{background-color:#2563eb;text-decoration:none}.crm-metadata{display:flex;gap:2rem;padding-top:1.25rem;border-top:1px solid #374151;margin-top:.5rem}.crm-metadata .crm-field{flex-direction:row;align-items:center;gap:.5rem}.crm-metadata .crm-field label{text-transform:none;font-weight:500;color:#6b7280}.crm-metadata .crm-field span{font-size:.8125rem;font-weight:400;color:#9ca3af}.crm-contact-preference-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500;background-color:#1e3a5f;color:#60a5fa;border-radius:9999px}.crm-destinations{display:flex;flex-wrap:wrap;gap:.5rem}.crm-destination-tag{display:inline-flex;align-items:center;padding:.375rem .75rem;font-size:.8125rem;font-weight:500;background-color:#78350f;color:#fcd34d;border-radius:9999px}.crm-travelers{display:flex;flex-wrap:wrap;gap:.5rem}.crm-traveler-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;font-size:.8125rem;font-weight:500;background-color:#312e81;color:#a5b4fc;border-radius:.375rem}.leads-split-page{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary);flex:1;overflow:hidden}.leads-split-error{text-align:center;padding:var(--spacing-xl);color:var(--text-muted)}.leads-split-error h2{margin:0 0 var(--spacing-sm);color:var(--accent-error);font-size:18px}.leads-split-error p{margin:0 0 var(--spacing-lg)}.leads-split-error-banner{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background-color:#ef44441a;border-bottom:1px solid var(--accent-error);color:var(--accent-error)}.leads-split-error-banner button{padding:var(--spacing-xs) var(--spacing-sm);background:var(--accent-error);border:none;border-radius:var(--radius-sm);color:#fff;font-size:13px;cursor:pointer}.leads-split-container{display:flex;flex:1;overflow:hidden}.leads-split-list-panel{width:340px;min-width:280px;max-width:400px;display:flex;flex-direction:column;background-color:var(--bg-secondary);border-right:1px solid var(--border-primary)}.leads-split-list-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.leads-split-count{font-size:13px;color:var(--text-muted);font-weight:500}.leads-split-loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl)}.leads-split-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--border-primary);border-top:2px solid var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.leads-split-empty{padding:var(--spacing-xl);text-align:center;color:var(--text-muted)}.leads-split-list{flex:1;overflow-y:auto}.leads-split-list-item{display:flex;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);cursor:pointer;transition:background-color var(--transition-fast);position:relative}.leads-split-list-item:hover,.leads-split-list-item.selected{background-color:var(--bg-hover)}.leads-split-list-item.selected .list-item-indicator{opacity:1}.list-item-indicator{position:absolute;left:0;top:0;bottom:0;width:3px;background-color:var(--accent-primary);opacity:0;transition:opacity var(--transition-fast)}.list-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.list-item-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm)}.list-item-title{font-weight:600;font-size:14px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.list-item-time{font-size:11px;color:var(--text-muted);white-space:nowrap}.list-item-summary{font-size:12px;color:var(--text-muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-style:italic}.list-item-subtitle{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item-meta{display:flex;gap:var(--spacing-sm);font-size:12px;color:var(--text-muted);margin-top:2px}.list-item-budget{color:var(--accent-success);font-weight:500}.list-item-quotes{color:var(--text-muted)}.leads-split-pagination{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-sm);border-top:1px solid var(--border-primary);background-color:var(--bg-tertiary)}.leads-split-pagination button{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}.leads-split-pagination button:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-secondary)}.leads-split-pagination button:disabled{opacity:.4;cursor:not-allowed}.leads-split-pagination span{font-size:12px;color:var(--text-muted)}.leads-split-detail-panel{flex:1;overflow-y:auto;background-color:var(--bg-primary)}.leads-split-no-selection{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);color:var(--text-muted)}.leads-split-no-selection svg{opacity:.5}.leads-split-no-selection p{font-size:14px}.leads-split-detail{max-width:800px;margin:0 auto;padding:var(--spacing-xl)}.detail-header{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.detail-header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md)}.detail-title{font-size:24px;font-weight:700;color:var(--text-primary);margin:0;line-height:1.3}.detail-time{font-size:13px;color:var(--text-muted);white-space:nowrap}.detail-name{font-size:15px;color:var(--text-secondary);margin:6px 0 0}.detail-section{margin-bottom:var(--spacing-xl)}.detail-section-title{font-size:12px;font-weight:600;color:var(--accent-primary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--spacing-md) 0}.quotes-total-header{color:var(--text-muted);font-weight:500;text-transform:none;letter-spacing:normal}.detail-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md)}.detail-contact-item{display:flex;align-items:center;gap:var(--spacing-sm);font-size:14px;color:var(--text-secondary)}.detail-contact-item svg{color:var(--text-muted);flex-shrink:0}.detail-contact-item a{color:var(--accent-primary);text-decoration:none}.detail-contact-item a:hover{text-decoration:underline}.detail-travel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--spacing-md)}.detail-travel-item{display:flex;flex-direction:column;gap:4px;padding:var(--spacing-md);background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md)}.travel-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.travel-value{font-size:15px;color:var(--text-primary);font-weight:500}.travel-value.budget{color:var(--accent-success);font-size:18px;font-weight:600}.detail-summary{font-size:14px;line-height:1.7;color:var(--text-secondary);margin:0;padding:var(--spacing-md);background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md)}.detail-quotes-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.detail-quote-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md)}.quote-info{display:flex;align-items:center;gap:var(--spacing-md)}.quote-id{font-family:var(--font-mono);font-size:13px;color:var(--accent-primary)}.quote-packages{font-size:12px;color:var(--text-muted)}.quote-right{display:flex;align-items:center;gap:var(--spacing-md)}.quote-value{font-size:14px;font-weight:600;color:var(--text-primary)}.quote-pdf-btn{padding:4px 10px;background-color:var(--accent-primary);border-radius:var(--radius-sm);color:#fff;text-decoration:none;font-size:12px;font-weight:500}.quote-pdf-btn:hover{opacity:.9}.detail-notes{font-size:14px;line-height:1.6;color:var(--text-secondary);margin:0;padding:var(--spacing-md);background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md)}.detail-notes-input{width:100%;min-height:80px;padding:var(--spacing-md);font-size:14px;line-height:1.6;font-family:inherit;color:var(--text-primary);background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);resize:vertical;transition:border-color var(--transition-fast)}.detail-notes-input:focus{outline:none;border-color:var(--accent-primary)}.detail-notes-input::placeholder{color:var(--text-muted)}.save-notes-btn{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:13px;font-weight:500;color:#fff;background-color:var(--accent-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:opacity var(--transition-fast)}.save-notes-btn:hover:not(:disabled){opacity:.9}.save-notes-btn:disabled{opacity:.6;cursor:not-allowed}.detail-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border-primary)}.detail-action-btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.detail-action-btn.primary{background-color:var(--accent-primary);border:none;color:#fff}.detail-action-btn.primary:hover{opacity:.9}.detail-action-btn.secondary{background-color:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-primary)}.detail-action-btn.secondary:hover{background-color:var(--bg-hover);border-color:var(--border-secondary)}@media(max-width:900px){.leads-split-container{flex-direction:column}.leads-split-list-panel{width:100%;max-width:none;height:40%;min-height:200px;border-right:none;border-bottom:1px solid var(--border-primary)}.leads-split-detail-panel{height:60%}.leads-split-detail{padding:var(--spacing-lg)}.detail-title{font-size:20px}}@media(max-width:600px){.leads-split-list-panel{height:35%}.leads-split-detail{padding:var(--spacing-md)}.detail-contact-grid,.detail-travel-grid{grid-template-columns:1fr}.detail-actions{flex-direction:column}.detail-action-btn{justify-content:center}}
