@portkey-ai/hoot 0.6.1 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/index-CZU4cB8m.css +1 -0
- package/dist/assets/index-Do_jqfC0.js +288 -0
- package/dist/index.html +2 -2
- package/index.html +4 -0
- package/mcp-backend-server.js +360 -1
- package/mcp-backend-tool-filter.js +131 -0
- package/package.json +6 -5
- package/dist/assets/faviconUtils-BuMtwVnm.js +0 -1
- package/dist/assets/index-DW9f0gXj.css +0 -1
- package/dist/assets/index-_axJ5FVe.js +0 -269
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-sans);font-weight:500;transition:all .2s ease;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-sm{padding:6px 12px;font-size:13px;height:32px}.btn-md{padding:10px 20px;font-size:14px;height:38px}.btn-lg{padding:12px 24px;font-size:15px;height:44px}.btn-primary{background:var(--theme-accent-primary);color:var(--theme-bg-primary);border:1px solid transparent;font-weight:600}.btn-secondary:active:not(:disabled){background:var(--bg-active)}.btn-danger{background:var(--theme-error);color:var(--text-white);border:1px solid transparent;font-weight:600}.btn-ghost{background:transparent;color:var(--text-primary);border:1px solid transparent}.btn-ghost:hover:not(:disabled){background:var(--bg-hover)}.btn-ghost:active:not(:disabled){background:var(--bg-active)}.btn-outline{background:transparent;color:var(--theme-accent-primary);border:1px solid var(--theme-accent-primary)}.btn-outline:hover:not(:disabled){background:color-mix(in srgb,var(--theme-accent-primary) 10%,transparent);border-color:var(--theme-accent-primary-hover)}.btn-outline:active:not(:disabled){background:color-mix(in srgb,var(--theme-accent-primary) 20%,transparent)}.btn.btn-loading{position:relative;color:transparent}.btn.btn-loading:after{content:"";position:absolute;width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.input-wrapper{display:flex;flex-direction:column;gap:6px;width:100%}.input-label{font-size:13px;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:4px}.input-required{color:var(--theme-error);font-weight:600}.input{width:100%;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;font-family:var(--font-sans);transition:border-color .1s ease,background .1s ease;outline:none}.input::placeholder{color:var(--text-placeholder)}.input:hover:not(:disabled){border-color:var(--border-bright)}.input:focus{border-color:var(--theme-accent-primary);background:var(--bg-secondary)}.input:disabled{opacity:.5;cursor:not-allowed;background:var(--bg-secondary)}.input-error{border-color:var(--theme-error)}.input-error:focus{border-color:var(--theme-error)}.input-helper-text{font-size:12px;color:var(--text-tertiary);line-height:1.4}.input-error-text{font-size:12px;color:var(--theme-error);line-height:1.4}.api-key-input-wrapper{display:flex;flex-direction:column;gap:6px;width:100%}.api-key-input-label{font-size:13px;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:4px}.api-key-input-required{color:var(--theme-error);font-weight:600}.api-key-input-container{position:relative;display:flex;align-items:center;width:100%}.api-key-input{width:100%;padding:10px 40px 10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;font-family:var(--font-mono);transition:border-color .1s ease,background .1s ease;outline:none}.api-key-input::placeholder{color:var(--text-placeholder);font-family:var(--font-mono)}.api-key-input:hover:not(:disabled){border-color:var(--border-bright)}.api-key-input:focus{border-color:var(--theme-accent-primary);background:var(--bg-secondary)}.api-key-input:disabled{opacity:.5;cursor:not-allowed;background:var(--bg-secondary)}.api-key-toggle-button{position:absolute;right:10px;display:flex;align-items:center;justify-content:center;padding:6px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all .2s ease}.api-key-toggle-button:hover{background:var(--bg-hover);color:var(--text-primary)}.api-key-toggle-button:active{transform:scale(.95)}.api-key-input-error{border-color:var(--theme-error)}.api-key-input-error:focus{border-color:var(--theme-error)}.api-key-input-helper-text{font-size:12px;color:var(--text-tertiary);line-height:1.4}.api-key-input-error-text{font-size:12px;color:var(--theme-error);line-height:1.4}.textarea-wrapper{display:flex;flex-direction:column;gap:6px;width:100%}.textarea-label{font-size:13px;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:4px}.textarea-required{color:var(--theme-error);font-weight:600}.textarea{width:100%;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;font-family:var(--font-mono);transition:border-color .1s ease,background .1s ease;outline:none;resize:vertical;min-height:80px;line-height:1.5}.textarea::placeholder{color:var(--text-placeholder)}.textarea:hover:not(:disabled){border-color:var(--border-bright)}.textarea:focus{border-color:var(--theme-accent-primary);background:var(--bg-secondary)}.textarea:disabled{opacity:.5;cursor:not-allowed;background:var(--bg-secondary);resize:none}.textarea-error{border-color:var(--theme-error)}.textarea-error:focus{border-color:var(--theme-error)}.textarea-helper-text{font-size:12px;color:var(--text-tertiary);line-height:1.4}.textarea-error-text{font-size:12px;color:var(--theme-error);line-height:1.4}.select-wrapper{display:flex;flex-direction:column;gap:6px;width:100%}.select-label{font-size:13px;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:4px}.select-required{color:var(--theme-error);font-weight:600}.select{width:100%;padding:10px 32px 10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;font-family:var(--font-sans);transition:all .2s ease;outline:none;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23d8dee9' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.select:hover:not(:disabled){border-color:var(--border-bright)}.select:focus{border-color:var(--theme-accent-primary);background-color:var(--bg-secondary)}.select:disabled{opacity:.5;cursor:not-allowed;background-color:var(--bg-secondary)}.select-error{border-color:var(--theme-error)}.select-error:focus{border-color:var(--theme-error)}.select-helper-text{font-size:12px;color:var(--text-tertiary);line-height:1.4}.select-error-text{font-size:12px;color:var(--theme-error);line-height:1.4}.checkbox-wrapper{display:flex;flex-direction:column;gap:4px}.checkbox-container{display:flex;align-items:center;gap:8px}.checkbox{width:18px;height:18px;border-radius:4px;cursor:pointer;appearance:none;border:1px solid var(--border-color);background:var(--bg-tertiary);transition:all .2s ease;position:relative;flex-shrink:0}.checkbox:hover:not(:disabled){border-color:var(--border-bright)}.checkbox:checked{background:var(--theme-accent-primary);border-color:var(--theme-accent-primary)}.checkbox:checked:after{content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;border:solid var(--theme-bg-primary);border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox:disabled{opacity:.5;cursor:not-allowed}.checkbox:focus-visible{outline:2px solid var(--theme-accent-primary);outline-offset:2px}.checkbox-label{font-size:14px;color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox:disabled+.checkbox-label{opacity:.5;cursor:not-allowed}.checkbox-helper-text{font-size:12px;color:var(--text-tertiary);line-height:1.4;margin-left:26px}.radio-group-wrapper{display:flex;flex-direction:column;gap:8px}.radio-group-label{font-size:13px;font-weight:500;color:var(--text-primary)}.radio-group-options{display:flex;flex-direction:column;gap:12px}.radio-group-horizontal{flex-direction:row;flex-wrap:wrap;gap:16px}.radio-option{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.radio-option-disabled{opacity:.5;cursor:not-allowed}.radio-input{width:18px;height:18px;border-radius:50%;cursor:pointer;appearance:none;border:1px solid var(--border-color);background:var(--bg-tertiary);transition:all .2s ease;position:relative;flex-shrink:0}.radio-input:hover:not(:disabled){border-color:var(--border-bright)}.radio-input:checked{border-color:var(--theme-accent-primary);border-width:2px}.radio-input:checked:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:8px;height:8px;border-radius:50%;background:var(--theme-accent-primary)}.radio-input:disabled{cursor:not-allowed}.radio-input:focus-visible{outline:2px solid var(--theme-accent-primary);outline-offset:2px}.radio-label{font-size:14px;color:var(--text-primary)}.radio-helper-text{font-size:12px;color:var(--text-tertiary);line-height:1.4}.radio-error-text{font-size:12px;color:var(--theme-error);line-height:1.4}.toggle-group-wrapper{display:flex;flex-direction:column;gap:8px}.toggle-group-label{display:block;font-size:13px;font-weight:500;color:var(--theme-text-primary);margin-bottom:2px}.toggle-group{display:inline-flex;align-items:center;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:4px;gap:4px;width:fit-content}.toggle-option{padding:8px 16px;font-size:13px;font-weight:500;font-family:var(--font-sans);color:var(--theme-text-secondary);background:transparent;border:none;border-radius:calc(var(--radius-sm) - 2px);cursor:pointer;transition:all .15s ease;white-space:nowrap;position:relative}.toggle-option:hover:not(:disabled):not(.toggle-option-selected){color:var(--theme-text-primary);background:color-mix(in srgb,var(--theme-accent-primary) 5%,transparent)}.toggle-option-selected{color:var(--theme-text-primary);background:var(--theme-bg-tertiary);box-shadow:0 1px 2px #0000000d}.toggle-option-selected:hover{background:var(--theme-bg-tertiary)}.toggle-option:disabled{opacity:.5;cursor:not-allowed}.toggle-option:focus-visible{outline:2px solid var(--theme-accent-primary);outline-offset:2px;z-index:1}.toggle-group-helper{font-size:12px;color:var(--theme-text-tertiary);margin-top:-2px}.toggle-group-error{font-size:12px;color:var(--theme-error);margin-top:-2px}.switch-wrapper{display:flex;flex-direction:column;gap:4px}.switch-container{display:flex;align-items:center;gap:12px;position:relative}.switch{position:absolute;opacity:0;width:0;height:0}.switch-slider{position:relative;width:44px;height:24px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.switch-slider:before{content:"";position:absolute;left:2px;top:2px;width:18px;height:18px;background:var(--text-secondary);border-radius:50%;transition:all .2s ease}.switch:not(:disabled)+.switch-slider:hover{border-color:var(--border-bright)}.switch:checked+.switch-slider{background:var(--theme-accent-primary);border-color:var(--theme-accent-primary)}.switch:checked+.switch-slider:before{left:22px;background:var(--theme-bg-primary)}.switch:disabled+.switch-slider{opacity:.5;cursor:not-allowed}.switch:focus-visible+.switch-slider{outline:2px solid var(--theme-accent-primary);outline-offset:2px}.switch-label{font-size:14px;color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.switch:disabled~.switch-label{opacity:.5;cursor:not-allowed}.switch-helper-text{font-size:12px;color:var(--text-tertiary);line-height:1.4;margin-left:56px}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:10px;font-family:var(--font-mono);font-weight:600;white-space:nowrap;border:1px solid transparent}.badge-sm{padding:2px 6px;font-size:10px;line-height:1}.badge-md{padding:2px 8px;font-size:11px;line-height:1.2}.badge-default{background:var(--bg-hover);color:var(--text-secondary);border-color:var(--border-color)}.badge-primary{background:color-mix(in srgb,var(--theme-accent-primary) 15%,transparent);color:var(--theme-accent-primary);border-color:color-mix(in srgb,var(--theme-accent-primary) 30%,transparent)}.badge-secondary{background:color-mix(in srgb,var(--theme-accent-tertiary) 15%,transparent);color:var(--theme-accent-tertiary);border-color:color-mix(in srgb,var(--theme-accent-tertiary) 20%,transparent)}.badge-success{background:color-mix(in srgb,var(--theme-success) 15%,transparent);color:var(--theme-success);border-color:color-mix(in srgb,var(--theme-success) 30%,transparent)}.badge-warning{background:color-mix(in srgb,var(--theme-warning) 15%,transparent);color:var(--theme-warning);border-color:color-mix(in srgb,var(--theme-warning) 30%,transparent)}.badge-danger{background:color-mix(in srgb,var(--theme-error) 15%,transparent);color:var(--theme-error);border-color:color-mix(in srgb,var(--theme-error) 30%,transparent)}.badge-outline{background:transparent;color:var(--text-primary);border-color:var(--border-color)}.card{border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-color);transition:all .2s ease}.card-default{background:var(--bg-secondary);border:1px solid var(--border-color)}.card-outlined{background:transparent;border:1px solid var(--border-color)}.card-elevated{background:var(--bg-secondary);border:1px solid var(--border-color);box-shadow:var(--shadow-md)}.card-elevated:hover{box-shadow:var(--shadow-lg)}.card-padding-none{padding:0}.card-padding-sm{padding:var(--spacing-md)}.card-padding-md{padding:var(--spacing-lg)}.card-padding-lg{padding:var(--spacing-2xl)}.card-header{display:flex;flex-direction:column;gap:var(--spacing-xs)}.card-header:not(:last-child){margin-bottom:var(--spacing-lg)}.card-title{font-size:18px;font-weight:600;color:var(--text-white);margin:0;letter-spacing:-.02em}.card-description{font-size:14px;color:var(--text-secondary);margin:0;line-height:1.5}.card-content{flex:1}.card-content:not(:last-child){margin-bottom:var(--spacing-lg)}.card-footer{display:flex;align-items:center;gap:var(--spacing-sm)}.card-footer:not(:first-child){margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.spinner{border-radius:50%;border:2px solid rgba(0,0,0,.1);border-top-color:currentColor;display:inline-block;will-change:transform;animation:spinner-rotate .6s linear infinite}.spinner-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.spinner-sm{width:16px;height:16px;border-width:2px}.spinner-md{width:24px;height:24px;border-width:2px}.spinner-lg{width:32px;height:32px;border-width:3px}.spinner-primary{color:var(--theme-accent-primary)}.spinner-secondary{color:var(--text-secondary)}.spinner-white{color:var(--text-white)}@keyframes spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tabs-wrapper{display:flex;flex-direction:column;gap:0}.tabs-list{display:flex;gap:.5rem;padding:0;margin:0;border-bottom:1px solid var(--border-color)}.tab{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;border:none;color:var(--theme-accent-tertiary);opacity:.6;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;border-radius:var(--radius-sm);position:relative;white-space:nowrap}.tab:hover:not(:disabled){background:var(--bg-hover);opacity:.8}.tab:disabled{opacity:.3;cursor:not-allowed}.tab-active{background:transparent;color:var(--theme-accent-primary);opacity:1}.tab-active:after{content:"";position:absolute;bottom:-1px;left:.5rem;right:.5rem;height:2px;background:var(--theme-accent-primary);border-radius:1px}.tab-icon{display:flex;align-items:center;font-size:1rem}.tab-label{display:flex;align-items:center;font-weight:500}.tabs-content{padding:1.5rem 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl) var(--spacing-2xl);text-align:center;min-height:300px;position:relative;overflow:hidden}.empty-state:after{content:"";position:absolute;bottom:0;left:0;right:0;height:150px;background-image:var(--hills-empty-state);background-size:cover;background-position:bottom;background-repeat:no-repeat;pointer-events:none;opacity:.7;z-index:0}.tools-sidebar .empty-state:after,.server-sidebar .empty-state:after{display:none}.empty-state-icon{display:inline-flex;align-items:center;justify-content:center;width:96px;height:96px;border-radius:50%;background:var(--bg-tertiary);color:var(--text-tertiary);margin-bottom:var(--spacing-xl);animation:fadeIn .4s ease-out}.empty-state-title{font-size:20px;font-weight:700;color:var(--text-white);font-family:var(--font-mono);margin-bottom:var(--spacing-sm);letter-spacing:-.3px}.empty-state-description{font-size:14px;color:var(--text-secondary);font-family:var(--font-sans);line-height:1.6;max-width:400px;margin-bottom:var(--spacing-xl)}.empty-state .btn{margin-top:var(--spacing-md)}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-start;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .15s ease-out;padding:80px 20px 20px;overflow-y:hidden}.modal{background:var(--theme-bg-secondary);border-radius:var(--radius-lg);width:90%;max-width:600px;max-height:calc(100vh - 100px);display:flex;flex-direction:column;border:1px solid var(--border-color);box-shadow:var(--shadow-lg);animation:slideUpFade .2s cubic-bezier(.16,1,.3,1);font-family:var(--font-sans);overflow:hidden}.modal-header{flex-shrink:0;padding:24px 24px 16px}.modal-body{flex:1;overflow-y:auto;padding:0 24px 24px;margin-bottom:0;scrollbar-gutter:stable}.modal-body>*{margin-bottom:16px}.modal-body>*:last-child{margin-bottom:0}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track{background:#2e34404d;border-radius:4px}.modal-body::-webkit-scrollbar-thumb{background:#88c0d04d;border-radius:4px}.modal-body::-webkit-scrollbar-thumb:hover{background:#88c0d080}.modal-footer{flex-shrink:0;padding:16px 24px 24px}@keyframes slideUpFade{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-small{max-width:420px;padding:24px}.modal-header h2{font-size:20px;font-weight:600;margin-bottom:8px;color:var(--text-white);letter-spacing:-.02em;text-align:center}.modal-body .form-field{margin-bottom:16px}.modal-body .form-field:last-child{margin-bottom:0}.modal-body .form-label{display:block;font-size:13px;font-weight:600;color:var(--theme-accent-primary);margin-bottom:10px;letter-spacing:.3px;text-transform:uppercase}.modal-body .form-input{width:100%;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-white);font-size:14px;font-family:var(--font-sans);transition:all .2s ease}.modal-body .form-input:hover{border-color:var(--border-bright)}.modal-body .form-input:focus{border-color:var(--theme-accent-primary);background:var(--bg-secondary);outline:none}.modal-body .form-input::placeholder{color:var(--text-placeholder)}.error-message{background:color-mix(in srgb,var(--theme-error) 15%,transparent);border:1px solid color-mix(in srgb,var(--theme-error) 30%,transparent);color:var(--theme-error);padding:12px 14px;border-radius:var(--radius-md);font-size:13px;font-family:var(--font-sans);margin-bottom:20px;line-height:1.5;white-space:pre-line;max-height:300px;overflow-y:auto}.info-message{background:color-mix(in srgb,var(--theme-accent-primary) 15%,transparent);border:1px solid color-mix(in srgb,var(--theme-accent-primary) 30%,transparent);color:var(--theme-accent-primary);padding:10px 12px;border-radius:var(--radius-md);font-size:12px;font-family:var(--font-sans);line-height:1.5}.modal-footer{display:flex;gap:12px;justify-content:flex-end}.btn{padding:10px 20px;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:500;font-family:var(--font-sans);transition:all .2s ease}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-bright)}.btn-primary{background:var(--theme-accent-primary);color:var(--theme-bg-primary);font-weight:600;border:1px solid transparent}.btn-primary:hover:not(:disabled){background:var(--theme-accent-primary-hover)}.btn-primary:active:not(:disabled){background:var(--theme-accent-tertiary)}.btn-danger{background:var(--theme-error);color:var(--text-white);font-weight:600;border:1px solid transparent}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--theme-error) 90%,black 10%)}.btn-danger:active:not(:disabled){background:color-mix(in srgb,var(--theme-error) 80%,black 20%)}.radio-group{display:flex;gap:20px;margin-bottom:4px}.radio-option{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 0}.radio-option input[type=radio]{accent-color:var(--theme-accent-primary);cursor:pointer;width:16px;height:16px}.radio-option span{font-size:14px;color:var(--text-primary);font-weight:500}.spinner-small{width:16px;height:16px;border:2px solid var(--border-color);border-top-color:var(--theme-accent-primary);border-radius:50%;animation:spin .6s linear infinite}.server-sidebar{width:260px;background:transparent;border-right:1px solid var(--border-color);display:flex;flex-direction:column;transform:translateZ(0);position:relative}.server-sidebar:after{content:"";position:absolute;bottom:0;left:0;right:0;height:150px;background-image:var(--hills-server-sidebar);background-size:cover;background-position:bottom;background-repeat:no-repeat;pointer-events:none;opacity:.6;z-index:0}.sidebar-actions{padding:var(--spacing-lg);background:var(--bg-primary);position:relative;z-index:1}.add-server-btn{width:100%;padding:10px 12px;background:transparent;color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-weight:500;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.add-server-btn:hover{background:var(--bg-hover);border-color:var(--border-bright);color:var(--text-white)}.add-server-btn:active{background:var(--bg-active)}.add-server-btn .btn-icon{font-size:16px;font-weight:600;line-height:1}.servers-list{flex:1;overflow-y:auto;padding:var(--spacing-sm);-webkit-overflow-scrolling:touch;position:relative;z-index:1}.server-item{padding:var(--spacing-md);margin-bottom:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent}.server-item:hover{background:var(--bg-hover);border-color:var(--border-bright)}.server-item.active{background:var(--bg-active);border-color:var(--blue-500)}.server-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.server-footer{display:flex;align-items:center;justify-content:space-between}.server-actions{display:flex;gap:4px;opacity:0;transition:opacity var(--transition-fast)}.server-item:hover .server-actions{opacity:1}.action-btn{background:var(--bg-hover);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);padding:0;color:var(--text-secondary)}.action-btn:hover{background:var(--bg-active)}.edit-btn:hover{background:var(--blue-500);border-color:var(--blue-500);color:var(--bg-primary)}.delete-btn:hover{background:var(--red-500);border-color:var(--red-500);color:var(--bg-primary)}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;position:relative}.status-dot.connected{background:var(--green-500);box-shadow:0 0 0 2px color-mix(in srgb,var(--green-500) 20%,transparent)}.status-dot.connected:after{content:"";position:absolute;inset:-2px;border-radius:50%;border:1px solid var(--green-500);opacity:.3}.status-dot.disconnected{background:var(--red-500);opacity:.6}.server-favicon-container{position:relative;width:20px;height:20px;flex-shrink:0}.server-favicon{width:20px;height:20px;object-fit:contain;display:block}.favicon-status-dot{position:absolute;bottom:-3px;right:-3px;width:10px;height:10px;border-radius:50%;border:2px solid var(--bg-tertiary);flex-shrink:0}.favicon-status-dot.connected{background:var(--green-500);box-shadow:0 0 0 1px color-mix(in srgb,var(--green-500) 30%,transparent)}.favicon-status-dot.disconnected{background:var(--red-500);opacity:.9}.server-name{font-weight:500;font-size:14px;color:var(--text-white);flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-count{background:var(--bg-hover);padding:2px 8px;border-radius:10px;font-size:11px;color:var(--orange-500);font-weight:600;font-family:var(--font-mono)}.server-meta{display:flex;align-items:center;gap:var(--spacing-sm)}.transport-badge{font-size:10px;padding:2px 7px;border-radius:10px;font-family:var(--font-mono);font-weight:600;letter-spacing:.3px;display:inline-flex;align-items:center;gap:4px;line-height:1}.transport-badge[data-transport=http]{background:color-mix(in srgb,var(--theme-accent-primary) 15%,transparent);color:var(--theme-accent-primary);border:1px solid color-mix(in srgb,var(--theme-accent-primary) 30%,transparent)}.transport-badge[data-transport=sse]{background:color-mix(in srgb,var(--theme-accent-tertiary) 15%,transparent);color:var(--theme-accent-tertiary);border:1px solid color-mix(in srgb,var(--theme-accent-tertiary) 30%,transparent)}.transport-badge[data-transport=stdio]{background:color-mix(in srgb,var(--theme-success) 15%,transparent);color:var(--theme-success);border:1px solid color-mix(in srgb,var(--theme-success) 30%,transparent)}.auth-badge{font-size:10px;padding:2px 7px;border-radius:10px;font-family:var(--font-mono);font-weight:600;letter-spacing:.3px;display:inline-flex;align-items:center;gap:4px;line-height:1}.auth-badge[data-auth-type=headers]{background:color-mix(in srgb,var(--theme-warning) 15%,transparent);color:var(--theme-warning);border:1px solid color-mix(in srgb,var(--theme-warning) 30%,transparent)}.auth-badge[data-auth-type=oauth]{background:color-mix(in srgb,var(--theme-special) 15%,transparent);color:var(--theme-special);border:1px solid color-mix(in srgb,var(--theme-special) 30%,transparent)}.server-actions{position:relative}.action-btn{background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.menu-btn:hover{background:var(--bg-active);color:var(--blue-500)}.dropdown-menu{position:absolute;top:calc(100% + 4px);right:0;background:var(--bg-tertiary);border:1px solid var(--border-bright);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:180px;z-index:1000;animation:fadeIn .15s ease-out;overflow:hidden}.dropdown-item{width:100%;padding:10px 14px;background:transparent;border:none;color:var(--text-primary);font-size:13px;font-weight:500;text-align:left;cursor:pointer;display:flex;align-items:center;gap:10px;transition:all var(--transition-fast);border-bottom:1px solid transparent}.dropdown-item:hover:not(:disabled){background:var(--bg-hover);color:var(--text-white)}.dropdown-item:disabled{opacity:.5;cursor:not-allowed}.dropdown-item.danger{color:var(--red-500)}.dropdown-item.danger:hover:not(:disabled){background:color-mix(in srgb,var(--theme-error) 10%,transparent);color:var(--red-500)}.dropdown-item svg{flex-shrink:0;opacity:.7}.dropdown-item:hover svg{opacity:1}.dropdown-divider{height:1px;background:var(--border-color);margin:4px 0}.spinning{animation:spin 1s linear infinite}.sidebar-footer{border-top:1px solid var(--border-color);padding:var(--spacing-lg);background:var(--bg-primary);display:flex;flex-direction:column;gap:var(--spacing-sm);position:relative;z-index:1}.footer-links{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.footer-link{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;text-decoration:none}.footer-link:hover{background:var(--bg-hover);border-color:var(--blue-500);color:var(--blue-500)}.footer-link:active{background:var(--bg-active)}.footer-version{font-size:10px;color:var(--text-tertiary);text-align:center;font-family:var(--font-mono);letter-spacing:.5px;text-transform:uppercase}.tools-sidebar{width:300px;background:transparent;border-right:1px solid var(--border-color);display:flex;flex-direction:column;transform:translateZ(0);position:relative}.tools-sidebar:after{content:"";position:absolute;bottom:0;left:0;right:0;height:150px;background-image:var(--hills-tools-sidebar);background-size:cover;background-position:bottom;background-repeat:no-repeat;pointer-events:none;opacity:.6;z-index:0}.tools-sidebar .empty-state-description{max-width:200px}.tools-search{padding:var(--spacing-lg);background:var(--bg-primary);position:relative;z-index:1}.search-box{width:100%;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;transition:all var(--transition-fast);font-family:var(--font-sans)}.search-box:focus{border-color:var(--blue-500);background:var(--bg-hover);outline:none}.search-box::placeholder{color:var(--text-tertiary)}.tools-list{flex:1;overflow-y:auto;padding:var(--spacing-sm);-webkit-overflow-scrolling:touch;position:relative;z-index:1}.tool-item{padding:12px var(--spacing-md);margin-bottom:6px;background:var(--bg-tertiary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent;position:relative}.tool-item.executing{border-color:var(--blue-500);background:var(--bg-hover)}.tool-item:hover{background:var(--bg-hover);border-color:var(--border-bright)}.tool-item.active{background:var(--bg-active);border-color:var(--blue-500)}.tool-name{font-size:13px;font-weight:600;color:var(--text-white);margin-bottom:4px;font-family:var(--font-mono);word-break:break-word;display:flex;align-items:center;gap:6px}.tool-pulse{width:8px;height:8px;border-radius:50%;background-color:var(--blue-500);flex-shrink:0;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.tool-has-params-dot{width:6px;height:6px;border-radius:50%;background-color:var(--blue-500);flex-shrink:0;opacity:.5}.tool-description{font-size:12px;color:var(--text-secondary);font-family:var(--font-sans);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tools-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:var(--spacing-2xl);text-align:center;color:var(--text-tertiary)}.empty-icon{font-size:48px;margin-bottom:var(--spacing-lg);opacity:.6}.tools-empty p{font-size:13px;color:var(--text-secondary);line-height:1.5}.no-results{padding:var(--spacing-2xl) var(--spacing-lg);text-align:center}.no-results p{font-size:13px;color:var(--text-tertiary);line-height:1.5}.copy-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.copy-btn:hover{background:var(--bg-hover);border-color:var(--border-bright);color:var(--text-primary)}.copy-btn:active{transform:scale(.98)}.copy-btn svg{flex-shrink:0}.copy-btn-sm{padding:4px 8px;font-size:12px}.copy-btn:has(svg.lucide-check){color:var(--green-500);border-color:var(--green-500);background:#bae67e1a}.json-viewer{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-lg);font-family:var(--font-mono);font-size:12px;white-space:pre-wrap;word-break:break-word;max-height:400px;overflow-y:auto;line-height:1.6;color:var(--text-primary);-webkit-user-select:text;user-select:text}.json-key{color:var(--theme-accent-primary);font-weight:500}.json-string{color:var(--theme-success)}.json-number{color:var(--theme-special)}.json-boolean{color:var(--theme-accent-tertiary);font-weight:600}.json-null{color:var(--theme-accent-tertiary);font-weight:600;font-style:italic}.json-bracket{color:var(--theme-text-tertiary);font-weight:600}.json-punctuation{color:var(--theme-bg-active)}.json-collapse-toggle{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:2px;cursor:pointer;color:var(--text-tertiary);transition:color var(--transition-fast);vertical-align:middle;-webkit-user-select:none;user-select:none}.json-collapse-toggle:hover{color:var(--theme-accent-primary)}.json-collapse-toggle svg{flex-shrink:0}.json-ellipsis{color:var(--text-tertiary);font-style:italic;margin:0 4px}.json-viewer::selection,.json-viewer *::selection{background:var(--theme-accent-primary);color:var(--theme-bg-primary)}.json-editor-wrapper{position:relative;width:100%;min-height:200px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden;transition:border-color var(--transition-fast)}.json-editor-wrapper:focus-within{border-color:var(--theme-accent-primary)}.json-editor-highlight{position:absolute;inset:0;padding:var(--spacing-lg);pointer-events:none;overflow:hidden;white-space:pre-wrap;word-wrap:break-word;font-family:var(--font-mono);font-size:13px;line-height:1.5;color:transparent}.json-editor-highlight pre{margin:0;padding:0;font-family:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-wrap:break-word}.json-editor-input{position:relative;width:100%;min-height:200px;padding:var(--spacing-lg);background:transparent;border:none;color:var(--text-primary);font-family:var(--font-mono);font-size:13px;line-height:1.5;resize:vertical;outline:none;white-space:pre-wrap;word-wrap:break-word;caret-color:var(--text-primary)}.json-editor-input::placeholder{color:var(--text-placeholder)}.json-editor-highlight .json-key{color:var(--theme-accent-primary);font-weight:500}.json-editor-highlight .json-string{color:var(--theme-success)}.json-editor-highlight .json-number{color:var(--theme-special)}.json-editor-highlight .json-boolean{color:var(--theme-accent-tertiary);font-weight:600}.json-editor-highlight .json-null{color:var(--theme-accent-tertiary);font-weight:600;font-style:italic}.json-editor-highlight .json-bracket{color:var(--theme-text-tertiary);font-weight:600}.json-editor-highlight .json-punctuation{color:var(--theme-bg-active)}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;transform:translateZ(0)}.main-header{padding:var(--spacing-2xl);border-bottom:1px solid var(--border-color);background:var(--bg-secondary);min-height:120px;display:flex;flex-direction:column;justify-content:center}.main-header h2{font-size:18px;font-weight:700;color:var(--text-white);margin-bottom:var(--spacing-sm);font-family:var(--font-mono);letter-spacing:-.5px}.description-container{position:relative;width:100%}.main-tool-description{font-size:13px;color:var(--text-tertiary);font-family:var(--font-sans);line-height:1.5;margin:0;word-break:break-word;width:100%}.main-header .main-tool-description.collapsed{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal}.description-toggle{position:absolute;bottom:calc(var(--spacing-2xl) * -1);left:50%;transform:translate(-50%,50%);margin:0;padding:2px 12px;background:var(--bg-secondary);border:none;color:var(--text-tertiary);cursor:pointer;font-size:11px;font-weight:400;transition:all var(--transition-fast);opacity:.7;z-index:1}.description-toggle:hover{color:var(--theme-accent-primary);opacity:1}.content-area{flex:1;overflow-y:auto;padding:var(--spacing-2xl);-webkit-overflow-scrolling:touch;position:relative}.content-area:after{content:"";position:fixed;bottom:0;left:0;right:0;height:150px;background-image:var(--hills-main-area);background-size:cover;background-position:bottom;background-repeat:no-repeat;pointer-events:none;opacity:.5;z-index:0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary);position:relative;overflow:hidden}.empty-state>*{position:relative;z-index:1}.empty-state-icon{font-size:48px;margin-bottom:var(--spacing-lg)}.empty-state h3{margin-bottom:var(--spacing-sm)}.section{margin-bottom:32px}.section-title{font-size:12px;font-weight:600;color:var(--theme-accent-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-md)}.schema-viewer{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:var(--spacing-lg);font-family:var(--font-mono);font-size:12px;color:var(--text-primary);overflow-x:auto;line-height:1.6}.schema-viewer::selection{background:var(--blue-600);color:var(--bg-primary)}.input-section{margin-top:var(--spacing-2xl)}.input-form-container{display:flex;flex-direction:column;gap:20px}.mode-toggle{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.mode-btn{padding:8px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;font-size:12px;transition:all var(--transition-fast)}.mode-btn.active{background:var(--theme-accent-primary);border-color:var(--theme-accent-primary);color:var(--theme-bg-primary)}.mode-btn:hover:not(.active){background:var(--bg-hover)}.json-error{margin-top:var(--spacing-md);padding:10px 12px;background:color-mix(in srgb,var(--theme-error) 10%,transparent);border:1px solid color-mix(in srgb,var(--theme-error) 30%,transparent);border-radius:var(--radius-sm);color:var(--theme-error);font-size:12px;font-family:var(--font-sans);line-height:1.5}.form-fields{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-field{display:flex;flex-direction:column}.form-label{font-size:13px;font-weight:500;color:var(--theme-accent-secondary);margin-bottom:6px;display:flex;align-items:center;gap:var(--spacing-xs)}.form-label.checkbox-label{flex-direction:row;cursor:pointer;margin-bottom:0}.form-label.checkbox-label span{display:flex;align-items:center;gap:var(--spacing-xs)}.param-name{border-bottom:1px dashed var(--text-tertiary);cursor:help}.field-type{font-size:11px;color:var(--theme-accent-deep);font-weight:400;font-family:var(--font-mono)}.form-label .required{color:var(--red-500)}.form-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--blue-500)}.form-input{padding:10px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-family:var(--font-sans);transition:border-color var(--transition-fast)}.form-input:focus{border-color:var(--theme-accent-primary);outline:none}.form-textarea{padding:10px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-family:var(--font-mono);resize:vertical;min-height:80px;transition:border-color var(--transition-fast);line-height:1.5}.form-textarea:focus{border-color:var(--theme-accent-primary);outline:none}.execute-btn{padding:10px 20px;background:var(--theme-success);color:var(--theme-bg-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:600;font-family:var(--font-sans);margin-top:var(--spacing-lg);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--spacing-md)}.execute-btn:hover:not(:disabled){background:var(--theme-success-bright)}.execute-btn:active:not(:disabled){background:color-mix(in srgb,var(--theme-success) 90%,black 10%)}.execute-btn:disabled{cursor:not-allowed}.execute-btn:disabled:not(.executing){background:var(--bg-hover);opacity:.5}.execute-btn.executing{background:var(--theme-accent-primary);cursor:pointer}.execute-btn.executing:hover{background:var(--theme-error)}.result-section{margin-top:32px}.result-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md);background:color-mix(in srgb,var(--theme-success) 10%,transparent);border-radius:var(--radius-sm);border-left:2px solid var(--theme-success);margin-bottom:var(--spacing-md)}.result-header.error{background:color-mix(in srgb,var(--theme-error) 10%,transparent);border-left-color:var(--theme-error)}.result-status{font-size:14px;font-weight:700;color:var(--theme-success);font-family:var(--font-mono)}.result-status.error{color:var(--theme-error)}.result-time{font-size:12px;color:var(--text-tertiary);font-family:var(--font-mono)}.result-tabs{display:flex;gap:4px;margin-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.result-tab{padding:8px 16px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;font-size:13px;border-bottom:2px solid transparent;transition:all var(--transition-fast)}.result-tab.active{color:var(--theme-accent-primary);border-bottom-color:var(--theme-accent-primary)}.result-tab:hover:not(.active){color:var(--text-primary)}.llm-settings-modal{max-width:600px}.tab-content-wrapper{display:flex;flex-direction:column;gap:1.5rem}.form-section{display:flex;flex-direction:column;gap:1.25rem}.info-section{display:flex;flex-direction:column;gap:1rem}.settings-section{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.info-box{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem}.info-box.security-note{background:color-mix(in srgb,var(--green-500) 8%,transparent);border-color:color-mix(in srgb,var(--green-500) 30%,transparent)}.info-box-header{font-size:.875rem;font-weight:600;color:var(--theme-accent-primary);margin-bottom:.5rem}.info-box p{margin:.5rem 0;font-size:.8125rem;color:var(--text-secondary);line-height:1.5}.info-box p:first-of-type{margin-top:0}.info-box p:last-of-type{margin-bottom:0}.info-link{color:var(--theme-accent-primary);text-decoration:none;font-weight:500}.info-link:hover{text-decoration:underline}.settings-info{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.info-item{font-size:.8125rem;color:var(--text-secondary);display:flex;gap:.5rem}.info-item strong{color:var(--text-primary);min-width:80px}.warning-box{background:color-mix(in srgb,var(--theme-warning) 8%,transparent);border-color:color-mix(in srgb,var(--theme-warning) 30%,transparent)}.hybrid-interface{display:flex;flex-direction:column;height:100%;background:var(--bg-primary);overflow:hidden}.chat-info-bar{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);font-size:.8125rem;color:var(--text-secondary)}.chat-info-left{display:flex;align-items:center;gap:.75rem;flex:1}.info-item{display:flex;align-items:center;gap:.375rem}.info-divider{opacity:.3}.info-settings-button{display:flex;align-items:center;gap:.5rem;padding:.375rem .625rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:5px;color:var(--text-secondary);font-size:.8125rem;cursor:pointer;transition:all .2s ease}.info-settings-button:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--theme-accent-primary)}.info-settings-button.needs-setup{border-color:var(--theme-info);background:color-mix(in srgb,var(--theme-info) 10%,transparent)}.info-settings-button.needs-setup:hover{border-color:var(--theme-info);background:color-mix(in srgb,var(--theme-info) 15%,transparent)}.setup-indicator{font-size:.75rem;font-weight:500;color:var(--orange-500)}.hybrid-content{flex:1;display:flex;overflow:hidden}.chat-pane{flex:1;display:flex;flex-direction:column;border-right:1px solid var(--border-color);transition:all .3s ease}.chat-pane.full-width{flex:1;border-right:none}.chat-messages-hybrid{flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.chat-message-hybrid{display:flex;gap:.75rem;padding:.625rem;border-radius:8px;transition:all .2s ease;animation:fadeInHybrid .3s ease}@keyframes fadeInHybrid{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-message-hybrid.has-api-data{cursor:pointer}.chat-message-hybrid.has-api-data:hover{background:var(--bg-tertiary)}.chat-message-hybrid.selected{background:var(--bg-active);border:1px solid var(--theme-accent-primary);padding:calc(.625rem - 1px)}.message-avatar-hybrid{width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.6875rem;flex-shrink:0}.message-avatar-hybrid.user{background:var(--theme-accent-primary);color:var(--theme-bg-primary)}.message-avatar-hybrid.assistant{background:var(--theme-special);color:var(--text-white)}.message-avatar-hybrid.tool{background:var(--theme-info);color:var(--theme-bg-primary)}.message-content-hybrid{flex:1;display:flex;flex-direction:column;gap:.375rem}.message-text-hybrid{color:var(--text-primary);line-height:1.5;font-size:.9375rem}.api-indicator{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--theme-accent-primary);margin-top:.25rem}.typing-indicator-hybrid{display:flex;gap:.25rem;padding:.5rem 0}.typing-indicator-hybrid span{width:6px;height:6px;border-radius:50%;background:var(--text-tertiary);animation:bounceHybrid 1.4s infinite ease-in-out}.typing-indicator-hybrid span:nth-child(1){animation-delay:-.32s}.typing-indicator-hybrid span:nth-child(2){animation-delay:-.16s}@keyframes bounceHybrid{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}.chat-input-container-hybrid{padding:1rem;border-top:1px solid var(--border-color);background:var(--bg-secondary)}.chat-input-wrapper-hybrid{display:flex;gap:.625rem;align-items:flex-end}.chat-input-hybrid{flex:1;background:var(--bg-primary);border:1px solid var(--border-bright);border-radius:8px;padding:.75rem;color:var(--text-primary);font-family:var(--font-sans);font-size:.875rem;resize:none;max-height:120px;line-height:1.4}.chat-input-hybrid:focus{outline:none;border-color:var(--theme-accent-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-accent-primary) 15%,transparent)}.chat-input-hybrid::placeholder{color:var(--text-placeholder)}.chat-send-button-hybrid{background:var(--theme-accent-primary);border:none;border-radius:6px;padding:.625rem;color:var(--theme-bg-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.chat-send-button-hybrid:hover:not(:disabled){background:var(--theme-accent-tertiary);transform:translateY(-1px)}.chat-send-button-hybrid:disabled{opacity:.5;cursor:not-allowed}.api-pane{width:45%;display:flex;flex-direction:column;background:var(--bg-secondary)}.api-pane-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.875rem;color:var(--text-primary);background:var(--bg-tertiary)}.api-close-button{margin-left:auto;background:none;border:none;color:var(--text-secondary);font-size:1.25rem;line-height:1;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:all .2s ease}.api-close-button:hover{background:var(--bg-hover);color:var(--text-primary)}.api-pane-content{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem;position:relative}.api-pane-content:after{content:"";position:absolute;bottom:0;left:0;right:0;height:120px;background-image:var(--hills-api-pane);background-size:cover;background-position:bottom;background-repeat:no-repeat;pointer-events:none;opacity:.4;z-index:0}.api-block{background:var(--bg-primary);border:1px solid var(--border-bright);border-radius:8px;overflow:hidden;margin-bottom:.5rem;display:flex;flex-direction:column;max-height:none;position:relative;z-index:1}.api-block-header{padding:.625rem .875rem;display:flex;align-items:center;justify-content:space-between;font-size:.8125rem;font-weight:600;border-bottom:1px solid var(--border-color)}.api-copy-button{display:flex;align-items:center;justify-content:center;padding:.375rem;background:var(--bg-tertiary);border:1px solid var(--border-bright);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.api-copy-button:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--theme-accent-primary)}.api-block-header.request{background:var(--bg-tertiary);color:var(--theme-accent-primary)}.api-block-header.response{background:var(--bg-tertiary);color:var(--theme-success)}.api-block-header.tool-call{background:var(--bg-tertiary);color:var(--theme-info)}.api-block-header.tool-result{background:var(--bg-tertiary);color:var(--theme-success)}.api-method,.api-status{font-size:.75rem;font-weight:500;color:var(--text-tertiary)}.tool-name{font-family:var(--font-mono);font-size:.75rem;color:var(--text-secondary)}.api-json-viewer{margin:0;border:none;border-radius:0;background:var(--bg-primary);max-height:none}.api-block .json-viewer{max-height:600px!important;overflow-y:auto!important;padding-bottom:2rem!important;flex:1}.api-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:var(--text-tertiary);text-align:center;padding:2rem;position:relative;overflow:hidden}.api-empty>*{position:relative;z-index:1}.api-empty p{margin:0;font-size:.9375rem}.api-hint{font-size:.8125rem;color:var(--text-tertiary);opacity:.7}.chat-messages-hybrid::-webkit-scrollbar,.api-pane-content::-webkit-scrollbar{width:8px;height:8px}.chat-messages-hybrid::-webkit-scrollbar-track,.api-pane-content::-webkit-scrollbar-track{background:var(--bg-primary);border-radius:4px}.chat-messages-hybrid::-webkit-scrollbar-thumb,.api-pane-content::-webkit-scrollbar-thumb{background:var(--border-bright);border-radius:4px}.chat-messages-hybrid::-webkit-scrollbar-thumb:hover,.api-pane-content::-webkit-scrollbar-thumb:hover{background:var(--bg-active)}.chat-messages-hybrid,.api-pane-content{scrollbar-width:thin;scrollbar-color:var(--border-bright) var(--bg-primary)}.filter-metrics-detailed{display:flex;flex-direction:column;gap:12px;padding:12px 14px;margin:8px 0;max-width:100%;background:var(--bg-tertiary);border-left:3px solid var(--theme-accent-primary);border-radius:6px;font-size:12px;color:var(--text-secondary);opacity:.9;transition:opacity .2s}.filter-metrics-detailed:hover{opacity:1}.filter-metrics-header{display:flex;align-items:center;gap:8px;font-size:11px}.filter-metrics-header svg{color:var(--theme-accent-primary);flex-shrink:0}.filter-metrics-header .filter-time{opacity:.7;font-size:10px}.filter-servers-list{display:flex;flex-direction:column;gap:4px;margin-top:4px}.filter-server-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.filter-server-favicon,.filter-server-favicon-placeholder{width:12px;height:12px;flex-shrink:0;border-radius:2px;object-fit:contain}.filter-server-favicon-placeholder{display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);color:var(--theme-accent-primary)}.filter-server-name{font-size:10px;font-weight:600;color:var(--text-primary)}.filter-server-count{font-size:9px;opacity:.7;font-weight:400}.filter-server-tools{display:flex;flex-wrap:wrap;gap:3px}.filter-server-tool{padding:2px 6px;background:var(--bg-secondary);border-radius:3px;font-size:10px;font-family:Courier New,monospace;color:var(--text-primary);transition:background .2s}.filter-server-tool:hover{background:var(--bg-hover)}.filter-metrics-indicator{display:flex;align-items:center;gap:6px;padding:6px 12px;margin:4px auto;max-width:fit-content;background:#10b98114;border-radius:12px;font-size:11px;color:var(--text-secondary);opacity:.8;transition:opacity .2s}.filter-metrics-indicator:hover{opacity:1}.filter-metrics-indicator svg{color:#10b981;flex-shrink:0}.filter-metrics-indicator .filter-time{opacity:.7;font-size:10px}.chat-message-hybrid.chat-message-system{display:flex;justify-content:flex-start;padding:0;margin:4px 0;border:none;background:transparent;cursor:default}.chat-message-hybrid.chat-message-system:hover{background:transparent}.oauth-callback{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary);padding:var(--spacing-2xl)}.oauth-callback-content{max-width:480px;width:100%;background:linear-gradient(135deg,var(--theme-bg-secondary) 0%,var(--theme-bg-primary) 100%);border:1px solid color-mix(in srgb,var(--theme-accent-primary) 15%,transparent);border-radius:16px;padding:48px 40px;text-align:center;box-shadow:var(--shadow-lg),0 0 0 1px color-mix(in srgb,var(--theme-text-white) 5%,transparent);animation:fadeIn .3s ease-out}.oauth-callback-content.error{border-color:color-mix(in srgb,var(--theme-error) 30%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--theme-error) 15%,var(--theme-bg-secondary)),color-mix(in srgb,var(--theme-error) 10%,var(--theme-bg-primary)))}.oauth-icon{font-size:72px;margin-bottom:32px;line-height:1;filter:drop-shadow(0 4px 12px color-mix(in srgb,var(--theme-accent-primary) 30%,transparent))}.oauth-processing{animation:pulse 1.5s ease-in-out infinite}.success-icon{color:var(--green-500);font-size:72px;animation:scaleIn .4s cubic-bezier(.175,.885,.32,1.275)}.error-icon{color:var(--red-500);font-size:72px;animation:shake .5s ease-in-out}.oauth-title{font-size:26px;font-weight:700;color:var(--text-white);margin-bottom:16px;letter-spacing:-.5px;line-height:1.3}.oauth-message{font-size:15px;color:var(--text-secondary);margin-bottom:32px;line-height:1.6;max-width:450px;margin-left:auto;margin-right:auto;white-space:pre-line;word-wrap:break-word}.oauth-redirect{font-size:13px;color:var(--text-tertiary);font-style:italic;margin-top:24px;opacity:.8}@keyframes scaleIn{0%{transform:scale(0);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.toast-container{position:fixed;top:var(--spacing-2xl);right:var(--spacing-2xl);z-index:9999;display:flex;flex-direction:column;gap:var(--spacing-md);pointer-events:none}.toast{min-width:320px;max-width:480px;background:var(--bg-secondary);border:1px solid var(--border-bright);border-radius:var(--radius-md);padding:var(--spacing-lg);display:flex;align-items:flex-start;gap:var(--spacing-md);box-shadow:var(--shadow-lg);pointer-events:all;animation:slideIn .3s cubic-bezier(.16,1,.3,1)}.toast-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm)}.toast-success .toast-icon{color:var(--theme-success);background:color-mix(in srgb,var(--theme-success) 15%,transparent)}.toast-error .toast-icon{color:var(--theme-error);background:color-mix(in srgb,var(--theme-error) 15%,transparent)}.toast-warning .toast-icon{color:var(--theme-info);background:color-mix(in srgb,var(--theme-info) 15%,transparent)}.toast-info .toast-icon{color:var(--theme-accent-primary);background:color-mix(in srgb,var(--theme-accent-primary) 15%,transparent)}.toast-content{flex:1;min-width:0}.toast-message{font-size:14px;font-weight:600;color:var(--text-white);margin-bottom:4px;line-height:1.4}.toast-description{font-size:13px;color:var(--text-secondary);line-height:1.5}.toast-close{flex-shrink:0;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.toast-close:hover{background:var(--bg-hover);color:var(--text-primary)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media(max-width:768px){.toast-container{top:var(--spacing-lg);right:var(--spacing-lg);left:var(--spacing-lg)}.toast{min-width:unset;width:100%}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:400px;padding:var(--spacing-2xl);background:var(--bg-primary)}.error-boundary-content{max-width:520px;text-align:center}.error-icon{display:inline-flex;align-items:center;justify-content:center;width:96px;height:96px;border-radius:50%;background:#f2877926;color:var(--red-500);margin-bottom:var(--spacing-xl);animation:shake .5s ease-in-out}.error-title{font-size:24px;font-weight:700;color:var(--text-white);margin-bottom:var(--spacing-md);letter-spacing:-.5px}.error-message{font-size:15px;color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-xl)}.error-details{margin:var(--spacing-xl) 0;text-align:left;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-md)}.error-details summary{font-size:13px;font-weight:600;color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--spacing-sm)}.error-details summary:hover{color:var(--text-white)}.error-stack{margin-top:var(--spacing-md);font-family:var(--font-mono);font-size:12px;color:var(--text-tertiary);overflow-x:auto;padding:var(--spacing-md);background:var(--bg-primary);border-radius:var(--radius-sm);line-height:1.6}.error-boundary .btn{display:inline-flex;align-items:center;gap:var(--spacing-sm)}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.theme-switcher-header{position:relative}.theme-trigger{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--theme-accent-secondary);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease}.theme-trigger:hover{background:var(--bg-hover);color:var(--theme-accent-primary);transform:scale(1.05)}.theme-dropdown{position:absolute;top:calc(100% + 12px);right:0;background:var(--bg-secondary);border:1px solid var(--border-bright);border-radius:8px;padding:4px;display:flex;gap:4px;box-shadow:0 4px 16px #00000080;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s,transform .2s,visibility 0s .2s;z-index:10000}.theme-switcher-header:hover .theme-dropdown,.theme-dropdown:hover{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .2s,transform .2s,visibility 0s 0s}.theme-switcher-header:before{content:"";position:absolute;top:100%;left:0;right:0;height:12px;opacity:0}.theme-option{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .15s;position:relative;font-size:18px}.theme-option:hover{background:var(--bg-hover);border-color:var(--border-bright);transform:scale(1.1)}.theme-option.active{background:var(--theme-accent-primary);border-color:var(--theme-accent-primary);box-shadow:0 0 12px color-mix(in srgb,var(--theme-accent-primary) 50%,transparent)}.theme-emoji{font-size:18px;line-height:1}.theme-name{display:none}.theme-option:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--bg-primary);border:1px solid var(--border-bright);color:var(--text-primary);padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;box-shadow:0 4px 12px #0006;z-index:10001}.theme-option:hover:after{opacity:1;transform:translate(-50%) translateY(-4px)}.theme-option:before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--border-bright);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:10001}.theme-option:hover:before{opacity:1;transform:translate(-50%) translateY(-4px)}.app{display:flex;height:100vh;overflow:hidden;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);gap:2rem;flex-shrink:0}.app-header-left{display:flex;align-items:center;gap:1.5rem;flex:1;min-width:0}.app-branding{display:flex;align-items:center;gap:.625rem;min-width:0;flex-shrink:0}.logo-icon{font-size:1.75rem;line-height:1;flex-shrink:0}.app-title{margin:0;font-size:1.5rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;flex-shrink:0;text-shadow:0 0 30px rgba(136,192,208,.2)}.app-tagline{font-size:.8125rem;color:var(--theme-accent-tertiary);font-weight:500;margin-left:.5rem;padding-left:.75rem;border-left:1px solid var(--theme-accent-deep);flex-shrink:0}.app-nav{display:flex;gap:.5rem;padding-left:1rem;border-left:1px solid var(--border-color)}.nav-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;border:none;color:var(--theme-accent-tertiary);opacity:.6;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;border-radius:var(--radius-sm);position:relative}.nav-button:hover{background:var(--bg-hover);opacity:.8}.nav-button.active{background:transparent;color:var(--theme-accent-primary);opacity:1}.nav-button.active:after{content:"";position:absolute;bottom:-.75rem;left:.5rem;right:.5rem;height:2px;background:var(--theme-accent-primary);border-radius:1px}.nav-button span{font-weight:500}.demo-badge{margin-left:.375rem;padding:.125rem .375rem;background:var(--orange-500);color:var(--bg-primary);font-size:.625rem;font-weight:700;border-radius:3px;text-transform:uppercase;letter-spacing:.025em}.app-actions{display:flex;align-items:center;gap:.75rem;min-width:0}.header-link{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--theme-accent-tertiary);border-radius:var(--radius-sm);transition:all .2s ease;text-decoration:none}.header-link:hover{background:var(--bg-hover);color:var(--theme-accent-secondary)}.version-badge{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:color-mix(in srgb,var(--theme-accent-tertiary) 10%,transparent);border:1px solid color-mix(in srgb,var(--theme-accent-tertiary) 20%,transparent);border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;color:var(--theme-accent-tertiary);font-family:var(--font-mono);text-decoration:none;transition:all .2s ease;cursor:pointer}.version-badge:hover{background:color-mix(in srgb,var(--theme-accent-tertiary) 15%,transparent);color:var(--theme-accent-secondary);border-color:var(--theme-accent-primary)}.app-content{flex:1;overflow:hidden;display:flex}.test-layout{display:flex;flex:1;overflow:hidden}.app-content>.hybrid-interface{flex:1;width:100%}:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Monaco", "Menlo", "Courier New", monospace;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-2xl: 24px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--transition-fast: .15s cubic-bezier(0, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--hills-main-area: url("data:image/svg+xml,%3Csvg viewBox='0 0 1920 150' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'%3E%3C/svg%3E");--hills-tools-sidebar: url("data:image/svg+xml,%3Csvg viewBox='0 0 1920 150' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'%3E%3C/svg%3E");--hills-server-sidebar: url("data:image/svg+xml,%3Csvg viewBox='0 0 1920 150' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'%3E%3C/svg%3E");--hills-empty-state: url("data:image/svg+xml,%3Csvg viewBox='0 0 1920 150' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'%3E%3C/svg%3E");--hills-api-pane: url("data:image/svg+xml,%3Csvg viewBox='0 0 1920 150' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'%3E%3C/svg%3E")}*{margin:0;padding:0;box-sizing:border-box}html{overscroll-behavior:none;overscroll-behavior-y:none}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga" 1,"calt" 1;overscroll-behavior:none;overscroll-behavior-y:none}#root{height:100vh;overflow:hidden;transform:translateZ(0);will-change:auto}button,.clickable{-webkit-user-select:none;user-select:none}code,pre{font-family:var(--font-mono);font-variant-ligatures:common-ligatures}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--theme-bg-primary)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--theme-accent-primary) 0%,var(--theme-accent-tertiary) 100%);border-radius:4px;border:2px solid var(--theme-bg-primary)}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--theme-accent-secondary) 0%,var(--theme-accent-primary) 100%)}*:focus-visible:not(input):not(textarea):not(select){outline:2px solid var(--theme-accent-primary);outline-offset:2px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none}::selection{background:var(--theme-accent-primary);color:var(--theme-bg-primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes frost-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:0;transform:scale(1.5)}}@keyframes aurora-glow{0%,to{box-shadow:0 0 20px color-mix(in srgb,var(--theme-accent-primary) 30%,transparent)}33%{box-shadow:0 0 20px color-mix(in srgb,var(--theme-success) 30%,transparent)}66%{box-shadow:0 0 20px color-mix(in srgb,var(--theme-special) 30%,transparent)}}.animate-fade-in{animation:fadeIn .2s ease-out}.animate-slide-in{animation:slideIn .3s ease-out}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.gpu-accelerated{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}.font-mono{font-family:var(--font-mono)}
|