.local-services-panel{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:12px 14px}:root[data-theme=dark] .local-services-panel,.dark .local-services-panel{background:var(--bg-secondary);border-color:var(--border-color)}.local-services-header{justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-bottom:10px;display:flex}.local-services-title{color:#111827;align-items:center;gap:6px;min-width:0;font-size:14px;font-weight:600;display:flex}:root[data-theme=dark] .local-services-title,.dark .local-services-title{color:var(--text-primary)}.local-services-count{color:#606060;background:#f3f4f6;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:500}:root[data-theme=dark] .local-services-count,.dark .local-services-count{color:var(--text-secondary);background:var(--border-color)}.local-services-actions{gap:8px;display:flex}.local-services-btn{cursor:pointer;border:none;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.local-services-btn-primary{color:#fff;background:#3b82f6}.local-services-btn-primary:hover:not(:disabled){background:#2563eb}.local-services-btn-secondary{color:#1c1c1c;background:#f3f4f6;border:1px solid #d1d5db}.local-services-btn-secondary:hover:not(:disabled){background:#e5e7eb}:root[data-theme=dark] .local-services-btn-secondary,.dark .local-services-btn-secondary{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-color)}:root[data-theme=dark] .local-services-btn-secondary:hover:not(:disabled),.dark .local-services-btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.local-services-btn:disabled{opacity:.5;cursor:not-allowed}.local-services-loading{color:var(--text-secondary);justify-content:center;align-items:center;gap:12px;padding:40px;display:flex}.local-services-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 24px;display:flex}.local-services-empty-icon{color:#3b82f6;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-radius:16px;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:20px;display:flex}:root[data-theme=dark] .local-services-empty-icon,.dark .local-services-empty-icon{background:linear-gradient(135deg,#3b82f626,#3b82f61a)}.local-services-empty-state h3{color:#111827;margin:0 0 8px;font-size:18px;font-weight:600}:root[data-theme=dark] .local-services-empty-state h3,.dark .local-services-empty-state h3{color:var(--text-primary)}.local-services-empty-state p{color:#606060;max-width:380px;margin:0 0 24px;font-size:14px;line-height:1.5}:root[data-theme=dark] .local-services-empty-state p,.dark .local-services-empty-state p{color:var(--text-secondary)}.local-services-empty-actions{flex-direction:column;align-items:center;gap:10px;display:flex}.local-services-btn-large{padding:12px 24px;font-size:14px}.local-services-ai-button.ai-orchestrator-btn{width:34px;min-width:34px;height:34px;min-height:34px}.local-services-ai-button-large.ai-orchestrator-btn{width:auto;min-width:0;height:36px;min-height:36px;color:var(--text-primary);gap:8px;padding:0 14px;font-size:13px;font-weight:500}.local-services-empty{text-align:center;color:#606060;flex-direction:column;justify-content:center;align-items:center;padding:48px 20px;display:flex}:root[data-theme=dark] .local-services-empty,.dark .local-services-empty{color:var(--text-secondary)}.local-services-empty svg{color:gray;margin-bottom:16px}:root[data-theme=dark] .local-services-empty svg,.dark .local-services-empty svg{color:var(--text-muted)}.local-services-empty h3{color:#111827;margin:0 0 8px;font-size:16px;font-weight:600}:root[data-theme=dark] .local-services-empty h3,.dark .local-services-empty h3{color:var(--text-primary)}.local-services-hint{color:gray;margin-top:16px;font-size:12px}:root[data-theme=dark] .local-services-hint,.dark .local-services-hint{color:var(--text-muted)}.ai-config-container{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:24px}:root[data-theme=dark] .ai-config-container,.dark .ai-config-container{background:var(--bg-primary);border-color:var(--border-color)}.ai-config-header{align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.ai-config-header h3{color:#0f172a;margin:0 0 4px;font-size:16px;font-weight:600}:root[data-theme=dark] .ai-config-header h3,.dark .ai-config-header h3{color:var(--text-primary)}.ai-config-header p{color:#64748b;margin:0;font-size:13px}.ai-working{color:#3b82f6;flex-shrink:0;animation:2s ease-in-out infinite pulse-scale}@keyframes pulse-scale{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.ai-status-log{background:#0f172a;border-radius:8px;max-height:200px;padding:16px;font-family:SF Mono,Menlo,Monaco,monospace;font-size:12px;line-height:1.6;overflow-y:auto}:root[data-theme=dark] .ai-status-log,.dark .ai-status-log{background:#0f172a}.ai-status-entry{color:#94a3b8;align-items:center;gap:8px;padding:4px 0;display:flex}.ai-status-entry svg{flex-shrink:0}.ai-status-tool,.ai-status-tool svg{color:#38bdf8}.ai-status-info{color:#94a3b8}.ai-status-info svg{color:#64748b}.ai-status-success,.ai-status-success svg{color:#4ade80}.ai-status-error,.ai-status-error svg{color:#f87171}.ai-config-actions{justify-content:flex-end;margin-top:16px;display:flex}.local-service-add-btn{color:#606060;cursor:pointer;background:0 0;border:1px dashed #d1d5db;border-radius:999px;justify-content:center;align-items:center;gap:6px;width:100%;padding:8px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.local-service-add-btn:hover{color:#3b82f6;background:#3b82f60d;border-color:#3b82f6}:root[data-theme=dark] .local-service-add-btn,.dark .local-service-add-btn{border-color:var(--border-color);color:var(--text-secondary)}:root[data-theme=dark] .local-service-add-btn:hover,.dark .local-service-add-btn:hover{color:#3b82f6;background:#3b82f61a;border-color:#3b82f6}.local-services-list{flex-direction:column;gap:6px;display:flex}.local-service-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:8px;min-width:0;padding:8px 10px;transition:all .15s;display:flex}.local-service-card:hover{border-color:var(--border-active)}.local-service-grip{color:var(--text-tertiary);cursor:grab}.local-service-grip:active{cursor:grabbing}.local-service-status{flex-shrink:0;align-items:center;display:flex}.status-indicator{transition:color .2s}.status-indicator.status-running{color:#22c55e;animation:2s infinite pulse}.status-indicator.status-stopped{color:var(--text-tertiary)}.status-indicator.status-error{color:#ef4444}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.local-service-info{flex:1;min-width:0;overflow:hidden}.local-service-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;min-width:0;margin-bottom:2px;font-size:13px;font-weight:600;line-height:1.25;display:flex;overflow:hidden}.local-service-name-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.local-service-command{color:var(--text-secondary);align-items:center;gap:6px;min-width:0;max-width:100%;font-size:11px;display:flex}.local-service-command code{background:var(--bg-tertiary);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;flex:auto;min-width:0;padding:1px 6px;font-family:SF Mono,Menlo,monospace;line-height:1.35;display:block;overflow:hidden}.local-service-port{color:var(--accent-blue);white-space:nowrap;flex-shrink:0;font-weight:500}.local-service-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.local-service-auto-start,.local-service-edit,.local-service-delete{width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.local-service-auto-start:hover,.local-service-edit:hover{background:var(--bg-tertiary);color:var(--text-primary)}.local-service-auto-start.active{color:var(--accent-blue)}.local-service-delete:hover{color:#ef4444;background:#ef44441a}.local-service-start,.local-service-stop{cursor:pointer;white-space:nowrap;border:none;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;min-height:28px;margin-left:4px;padding:4px 10px;font-size:12px;font-weight:500;transition:all .15s;display:flex}.local-service-start{color:#fff;background:#22c55e}.local-service-start:hover:not(:disabled){background:#16a34a}.local-service-stop{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.local-service-stop:hover:not(:disabled){color:#ef4444;background:#ef44441a;border-color:#ef4444}.local-service-start:disabled,.local-service-stop:disabled{opacity:.5;cursor:not-allowed}.local-service-restart{border:1px solid var(--border-color);background:var(--bg-tertiary);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.local-service-restart:hover:not(:disabled){border-color:var(--accent-blue);color:var(--accent-blue);background:#3b82f61a}.local-service-restart:disabled{opacity:.5;cursor:not-allowed}.service-dialog-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.service-dialog{background:var(--bg-secondary);border-radius:16px;flex-direction:column;width:100%;max-width:560px;max-height:80vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}.service-dialog-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.service-dialog-header h3{margin:0;font-size:18px;font-weight:600}.service-dialog-close{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:flex}.service-dialog-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.detected-services-section{border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);padding:16px 24px}.detected-services-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.detected-services-header h4{color:var(--text-secondary);margin:0;font-size:14px;font-weight:600}.detected-services-list{flex-direction:column;gap:8px;display:flex}.detected-service-item{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.detected-service-info{flex-direction:column;gap:2px;display:flex}.detected-service-name{font-size:13px;font-weight:500}.detected-service-command{color:var(--text-secondary);font-family:SF Mono,Menlo,monospace;font-size:11px}.detected-services-divider{color:var(--text-tertiary);justify-content:center;align-items:center;margin-top:16px;font-size:12px;display:flex}.detected-services-divider:before,.detected-services-divider:after{content:"";background:var(--border-color);flex:1;height:1px}.detected-services-divider span{padding:0 12px}.service-dialog-form{padding:24px;overflow-y:auto}.form-row{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.form-row label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.form-row input[type=text],.form-row input[type=number]{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);border-radius:8px;padding:10px 12px;font-size:14px;transition:all .15s}.form-row input[type=text]:focus,.form-row input[type=number]:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px rgba(var(--accent-rgb), .1);outline:none}.form-row input::placeholder{color:var(--text-tertiary)}.form-checkbox{grid-template-columns:1fr}.form-checkbox label{cursor:pointer;flex-direction:row;align-items:center;gap:10px}.form-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-blue)}.service-dialog-actions{border-top:1px solid var(--border-color);justify-content:flex-end;gap:12px;margin-top:8px;padding-top:16px;display:flex}.spinning{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.panel-selector-dialog{max-width:400px}.panel-selector-list{flex-direction:column;gap:8px;padding:16px;display:flex}.panel-selector-item{cursor:pointer;color:#111827;background:#c8c8c8;border:1px solid #e5e7eb;border-radius:10px;align-items:center;gap:12px;padding:14px 16px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.panel-selector-item:hover{background:#f3f4f6;border-color:#3b82f6}.panel-selector-item svg{color:#3b82f6}:root[data-theme=dark] .panel-selector-item,.dark .panel-selector-item{background:var(--bg-hover);border-color:var(--border-color);color:var(--text-primary)}:root[data-theme=dark] .panel-selector-item:hover,.dark .panel-selector-item:hover{background:var(--bg-hover);border-color:#3b82f6}.ai-config-waiting{color:#6366f1;background:linear-gradient(135deg,#8b5cf61a,#3b82f61a);border:1px solid #8b5cf64d;border-radius:8px;align-items:center;gap:12px;padding:16px 20px;font-size:14px;font-weight:500;display:flex}:root[data-theme=dark] .ai-config-waiting,.dark .ai-config-waiting{color:#a5b4fc;background:linear-gradient(135deg,#8b5cf626,#3b82f626);border-color:#8b5cf666}.ai-config-waiting svg.spinning{color:#8b5cf6}.ai-config-cancel{color:#606060;cursor:pointer;background:#0000000d;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;margin-left:auto;transition:all .15s;display:flex}.ai-config-cancel:hover{color:#ef4444;background:#ef44441a}:root[data-theme=dark] .ai-config-cancel,.dark .ai-config-cancel{color:var(--text-secondary);background:#ffffff0d}:root[data-theme=dark] .ai-config-cancel:hover,.dark .ai-config-cancel:hover{color:#f87171;background:#ef444426}.local-service-card.tunnel-service{border-left:3px solid #8b5cf6}.local-service-card.tunnel-service .status-indicator.status-running{color:#8b5cf6}.service-type-badge{text-transform:uppercase;letter-spacing:.5px;color:#8b5cf6;background:#8b5cf61a;border-radius:4px;flex-shrink:0;align-items:center;margin-left:0;padding:1px 5px;font-size:9px;font-weight:600;display:inline-flex}:root[data-theme=dark] .service-type-badge,.dark .service-type-badge{color:#a78bfa;background:#8b5cf633}.local-service-card.tunnel-service .local-service-start{background:#8b5cf6}.local-service-card.tunnel-service .local-service-start:hover:not(:disabled){background:#7c3aed}
