*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;color:#333;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;margin:0}#root,body{min-height:100vh}#root{display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:.5rem}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-bottom:1rem}.monospace,code,pre{font-family:JetBrains Mono,Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace}code{background-color:#1b1f230d;border-radius:3px;padding:.2em .4em}code,pre{font-size:85%}pre{background-color:#f6f8fa;border-radius:6px;line-height:1.45;overflow:auto;padding:16px}pre code{word-wrap:normal;background-color:initial;border:0;display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0}a{color:#667eea;text-decoration:none;transition:color .2s ease}a:focus,a:hover{color:#5a6fd8;text-decoration:underline}a:focus{outline:2px solid #667eea;outline-offset:2px}button{background:none;border:none;cursor:pointer;font-family:inherit;font-size:inherit;padding:0}button:disabled{cursor:not-allowed;opacity:.6}input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}input:focus,select:focus,textarea:focus{outline:2px solid #667eea;outline-offset:2px}.sr-only{clip:rect(0,0,0,0);border:0;margin:-1px;padding:0}.sr-only,.visually-hidden{height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.visually-hidden{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%)}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px;-webkit-transition:background .2s ease;transition:background .2s ease}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}::-webkit-scrollbar-corner{background:#f1f1f1}*{scrollbar-color:#c1c1c1 #f1f1f1;scrollbar-width:thin}::selection{background-color:#667eea33;color:inherit}::-moz-selection{background-color:#667eea33;color:inherit}.focus-visible:focus{outline:2px solid #667eea;outline-offset:2px}.fade-in{animation:fadeIn .3s ease-out}.slide-in{animation:slideIn .3s ease-out}.spin{animation:spin 1s linear infinite}.pulse{animation:pulse 2s ease-in-out infinite}:root{--primary-color:#667eea;--primary-hover:#5a6fd8;--secondary-color:#764ba2;--success-color:#4caf50;--warning-color:#ff9800;--error-color:#f44336;--info-color:#2196f3;--text-primary:#333;--text-secondary:#666;--text-muted:#999;--text-inverse:#fff;--bg-primary:#fff;--bg-secondary:#f8f9fa;--bg-muted:#f5f5f5;--bg-overlay:#00000080;--border-color:#e0e0e0;--border-radius:6px;--border-radius-sm:4px;--border-radius-lg:8px;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 2px 8px #0000001a;--shadow-lg:0 4px 16px #0000001a;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-xxl:3rem;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-xxl:1.5rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--transition-fast:0.15s ease;--transition-normal:0.2s ease;--transition-slow:0.3s ease;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal:1040;--z-index-popover:1050;--z-index-tooltip:1060;--z-index-toast:1070}@media (prefers-color-scheme:dark){:root{--text-primary:#e0e0e0;--text-secondary:#b0b0b0;--text-muted:#888;--text-inverse:#333;--bg-primary:#1e1e1e;--bg-secondary:#2d2d2d;--bg-muted:#333;--bg-overlay:#ffffff1a;--border-color:#444}body{background-color:#f5f5f5;background-color:var(--bg-muted);color:#333;color:var(--text-primary)}}@media (prefers-contrast:high){:root{--border-color:#000;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 2px 8px #0000004d;--shadow-lg:0 4px 16px #0000004d}button,input,select,textarea{border:2px solid #e0e0e0;border:2px solid var(--border-color)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.spin{animation:none}}@media print{body{background:#fff!important;color:#000!important;font-size:12pt;line-height:1.4}.no-print{display:none!important}a[href^=http]:after{color:#666;content:" (" attr(href) ")";font-size:.8em}h1,h2,h3{page-break-after:avoid}blockquote,pre{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5in}}.skeleton{animation:loading 1.5s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}[data-connection=offline]{filter:grayscale(50%)}[data-connection=offline]:before{background:#f44336;background:var(--error-color);color:#fff;content:"⚠️ Offline";font-size:.875rem;font-weight:500;left:0;padding:.5rem;position:fixed;right:0;text-align:center;top:0;z-index:1070;z-index:var(--z-index-toast)}.focus-trap{outline:none}.skip-link{background:#667eea;background:var(--primary-color);border-radius:4px;color:#fff;left:6px;padding:8px;position:absolute;text-decoration:none;top:-40px;z-index:1060;z-index:var(--z-index-tooltip)}.skip-link:focus{top:6px}.error-boundary{background:#f8f9fa;background:var(--bg-secondary);border:1px solid #f44336;border:1px solid var(--error-color);border-radius:8px;border-radius:var(--border-radius-lg);padding:2rem;padding:var(--spacing-xl);text-align:center}.error-boundary h2{color:#f44336;color:var(--error-color);margin-bottom:1rem;margin-bottom:var(--spacing-md)}.error-boundary pre{background:#f5f5f5;background:var(--bg-muted);font-size:.875rem;font-size:var(--font-size-sm);max-height:200px;overflow-y:auto;text-align:left}.gpu-accelerated{transform:translateZ(0);will-change:transform}.contain-layout{contain:layout}.contain-paint{contain:paint}.contain-size{contain:size}@supports ((-webkit-backdrop-filter:blur(10px)) or (backdrop-filter:blur(10px))){.backdrop-blur{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}}@supports (display:grid){.grid-support{display:grid}}@supports (gap:1rem){.gap-support{gap:1rem}}.app{background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh}.app-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 4px #0000001a;color:#fff;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding:1rem 2rem}.app-header h1{font-size:2rem;font-weight:300;margin:0}.connection-status{align-items:center;background:#ffffff1a;border-radius:20px;display:flex;font-size:.9rem;gap:.5rem;padding:.5rem 1rem}.status-indicator{border-radius:50%;display:inline-block;height:8px;width:8px}.status-indicator.connected{background-color:#4caf50;box-shadow:0 0 6px #4caf50}.status-indicator.connecting{animation:pulse 1.5s infinite;background-color:#ff9800}.status-indicator.disconnected,.status-indicator.error{background-color:#f44336}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.server-selector{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.server-selector label{font-weight:500;white-space:nowrap}.server-selector select{background:#fff;border:none;border-radius:4px;max-width:100%;min-width:300px;padding:.5rem}.server-selector button{background:#fff3;border:1px solid #ffffff4d;border-radius:4px;color:#fff;cursor:pointer;padding:.5rem 1rem;transition:background-color .2s;white-space:nowrap}.server-selector button:hover:not(:disabled){background:#ffffff4d}.server-selector button:disabled{cursor:not-allowed;opacity:.6}.main-content{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr;margin:0 auto;max-width:1400px;padding:2rem}.services-section{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:1.5rem}.tab-selector{border-bottom:1px solid #e0e0e0;display:flex;margin-bottom:1.5rem}.tab{background:none;border:none;border-bottom:2px solid #0000;color:#666;cursor:pointer;font-size:1rem;padding:1rem 1.5rem;transition:all .2s}.tab:hover{background:#f8f9fa;color:#333}.tab.active{border-bottom-color:#667eea;color:#667eea;font-weight:600}.service-group h2{color:#333;font-size:1.5rem;font-weight:500;margin:0 0 1rem}.loading{align-items:center;color:#666;display:flex;gap:1rem;justify-content:center;padding:3rem}.spinner{animation:spin 1s linear infinite;border:2px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:20px;width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.service-list{display:flex;flex-direction:column;gap:1rem}.service-item{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:6px;display:flex;justify-content:space-between;padding:1rem;transition:all .2s}.service-item:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea1a}.service-info{display:flex;flex:1 1;flex-direction:column;gap:.75rem}.service-info strong{color:#333;display:block;font-size:1.1rem}.service-info-details{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}.service-info span{align-items:center;color:#666;display:inline-flex;font-size:.9rem}.service-info span strong{font-weight:500;margin-right:.5rem}.service-info span:last-child{margin-right:0}.status{border-radius:12px;display:inline-block;font-size:.8rem;font-weight:500;margin:.25rem 0;max-width:-webkit-fit-content;max-width:fit-content;padding:.25rem .5rem;text-transform:uppercase}.status.active,.status.online,.status.running{background:#e8f5e8;color:#2e7d32}.status.inactive,.status.offline,.status.stopped{background:#ffebee;color:#c62828}.service-actions{display:flex;flex-wrap:wrap;gap:.5rem}.service-actions button{background:#fff;border:1px solid #667eea;border-radius:4px;color:#667eea;cursor:pointer;font-size:.9rem;min-width:80px;padding:.25rem .5rem;transition:all .2s;white-space:nowrap}.service-actions button:hover:not(:disabled){background:#667eea;color:#fff}.service-actions button:disabled{cursor:not-allowed;opacity:.6}.service-actions button.loading{cursor:not-allowed;opacity:.7}.service-actions button.log-button{border-color:#ff9800;color:#ff9800}.service-actions button.log-button:hover:not(:disabled){background:#ff9800;color:#fff}.empty-state{background:#f8f9fa;border:2px dashed #ddd;border-radius:8px;color:#666;font-size:1.1rem;padding:3rem;text-align:center}.command-section{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:1.5rem}.command-section h2,.command-section h3{color:#333;font-weight:500;margin:0 0 1rem}.command-section h3{font-size:1.2rem;margin-top:2rem}.command-help{background:#f8f9fa;border-radius:6px;margin-bottom:1.5rem;padding:1rem}.command-help p{color:#333;font-weight:500;margin:0 0 .75rem}.command-help ul{list-style-type:none;margin:0;padding:0 0 0 1.25rem}.command-help li{color:#666;margin-bottom:.5rem}.command-help code{background:#fff;border:1px solid #e0e0e0;border-radius:4px;color:#333;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;padding:.25rem .5rem}.command-input{display:flex;gap:.5rem;margin-bottom:1rem}.command-input input{border:1px solid #ddd;border-radius:4px;flex:1 1;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;padding:.75rem}.command-input input:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea33;outline:none}.command-input button{background:#667eea;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:background-color .2s}.command-input button:hover:not(:disabled){background:#5a6fd8}.command-input button:disabled{background:#ccc;cursor:not-allowed}.command-results{border-top:1px solid #e0e0e0;padding-top:1rem}.command-result{border:1px solid #e0e0e0;border-radius:4px;margin-bottom:1rem;overflow:hidden}.result-header{background:#f8f9fa;border-bottom:1px solid #e0e0e0;color:#333;font-size:.9rem;font-weight:500;padding:.75rem 1rem}.result-output{background:#1e1e1e;color:#e0e0e0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.8rem;line-height:1.4;margin:0;max-height:200px;overflow-y:auto;padding:1rem;white-space:pre-wrap}.logs-section{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;height:100%;min-height:400px;padding:1.5rem}.logs-section h2{color:#333;font-size:1.5rem;font-weight:500;margin-bottom:1rem}.log-container{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex:1 1;flex-direction:column;gap:1rem;max-height:700px;overflow-y:auto;overflow:hidden;position:relative;transition:all .3s ease}.log-container.expanded{bottom:1rem;left:1rem;max-height:calc(100vh - 2rem);position:fixed;right:1rem;top:1rem;z-index:1000}.log-viewer{background:#1e1e1e;border-radius:6px;display:flex;flex-direction:column;margin-bottom:1rem;min-height:200px;overflow:hidden}.log-viewer.expanded{flex:1 1;height:calc(100vh - 6rem)}.log-header{background:#f5f5f5;border-bottom:1px solid #ddd;justify-content:space-between;padding:.5rem}.log-header,.log-title{align-items:center;display:flex}.log-title{gap:.5rem}.stream-status{border-radius:3px;font-size:.8rem;font-weight:500;padding:.2rem .5rem}.stream-status.active{background:#4caf50;color:#fff}.stream-status.error{background:#f44336;color:#fff}.stream-status.closed,.stream-status.timeout{background:#ff9800;color:#fff}.stream-status.unknown{background:#9e9e9e;color:#fff}.stream-ended-message{border-top:1px solid #eee;color:#666;font-style:italic;padding:10px}.reconnect-button{background:#2196f3;border:none;border-radius:3px;color:#fff;cursor:pointer;padding:.25rem .5rem}.reconnect-button:hover{background:#1976d2}.log-actions{display:flex;gap:.5rem}.log-actions button{border:1px solid #0000;border-radius:4px;cursor:pointer;font-size:.9rem;padding:.25rem .75rem;transition:all .2s ease}.log-actions button.expand-button{background:#444;border-color:#555;color:#fff}.log-actions button.expand-button:hover{background:#555;border-color:#666}.log-content{background:#1e1e1e;color:#e0e0e0;flex:1 1;font-family:monospace;font-size:.9rem;height:100%;line-height:1.4;margin:0;min-height:150px;overflow-y:auto;padding:1rem;white-space:pre-wrap}.log-viewer.expanded .log-content{height:calc(100% - 48px)}.auto-scroll-button{background:#444;border:1px solid #555;border-radius:4px;color:#fff;cursor:pointer;padding:.25rem .75rem}.auto-scroll-button.active{background:#06c;border-color:#05a}.stop-button{background:#c33;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.25rem .75rem}.stop-button:hover{background:#a22}.rate-limit-warning{background:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;color:#856404;font-size:.9rem;margin-bottom:1rem;padding:.75rem}.operation-indicator{align-items:center;color:#666;display:inline-flex;font-size:.8rem;gap:.5rem;margin-top:.5rem}.operation-indicator .spinner{height:12px;width:12px}.status-panel{background:#f5f5f5;border-radius:4px;box-shadow:0 1px 3px #0000001a;margin:1rem 0;padding:1rem}.status-panel h2{color:#333;font-size:1.2rem;margin-top:0}.status-info{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.status-info p{background:#fff;border:1px solid #ddd;border-radius:3px;margin:.5rem 0;padding:.5rem}.log-viewer.error .log-content{background:#ff00000d}.log-viewer.closed .log-content{background:#0000000d}.log-viewer.connecting .log-content{background:#ffff000d}.error-message{color:#f44;font-size:.9em;margin-left:8px}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:1rem}.login-box{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:400px;padding:2rem;width:100%}.login-box h1{color:#333;font-size:1.5rem;font-weight:500;margin:0 0 1rem;text-align:center}.login-box h2{color:#666;font-size:1.2rem;margin:0 0 1.5rem;text-align:center}.login-error{background:#ffebee;border-radius:4px;color:#c62828;font-size:.9rem;padding:.75rem;text-align:center}.form-group,.login-error{margin-bottom:1rem}.form-group label{color:#333;display:block;font-weight:500;margin-bottom:.5rem}.form-group input{border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.75rem;width:100%}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea33;outline:none}.login-box button{background:#667eea;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem;transition:background-color .2s;width:100%}.login-box button:hover:not(:disabled){background:#5a6fd8}.login-box button:disabled{cursor:not-allowed;opacity:.7}.app-loading{align-items:center;background:#f5f5f5;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:100vh}.app-loading .spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:40px;width:40px}.app-loading span{color:#333;font-size:1.1rem}@media (max-width:1200px){.main-content{padding:1rem}}@media (max-width:768px){.app-header{align-items:stretch;flex-direction:column;text-align:center}.server-selector{flex-direction:column;gap:1rem;width:100%}.connection-status{justify-content:center;width:100%}.server-selector button,.server-selector select{width:100%}.service-item{align-items:stretch;flex-direction:column;gap:1rem}.service-info,.service-info-details{gap:.5rem}.service-actions{justify-content:stretch}.service-actions button{flex:1 1}.command-input{flex-direction:column}.tab-selector{flex-wrap:wrap}.tab{flex:1 1;min-width:120px}}@media (max-width:480px){.app-header{padding:1rem}.app-header h1{font-size:1.5rem}.main-content{padding:.5rem}.command-section,.logs-section,.services-section{padding:1rem}.log-container{max-height:300px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.service-item{animation:fadeIn .3s ease-out}button:focus,input:focus,select:focus{outline:2px solid #667eea;outline-offset:2px}@media (prefers-contrast:high){.service-item{border-width:2px}.status{border:1px solid}}.notification-container{display:flex;flex-direction:column;gap:10px;position:fixed;right:20px;top:20px;z-index:1000}.notification{align-items:flex-start;animation:slideIn .3s ease-out;background:#fff;border-radius:6px;box-shadow:0 3px 6px #00000029;display:flex;justify-content:space-between;min-width:300px;padding:15px 20px}.notification.success{background:#e3f7e9;border-left:4px solid #4caf50;color:#2e7d32}.notification.error{background:#fee8e7;border-left:4px solid #f44336;color:#c62828}.notification.warning{background:#fff3e0;border-left:4px solid #ff9800;color:#ef6c00}.notification-message{font-size:.9rem;line-height:1.4;margin-right:15px}.notification-close{background:none;border:none;color:inherit;cursor:pointer;font-size:1.2rem;opacity:.7;padding:0;transition:opacity .2s}.notification-close:hover{opacity:1}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes slideOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}
/*# sourceMappingURL=main.32147d42.css.map*/