:root{--background:#0a0a0a;--foreground:#ededed;--primary:#6366f1;--primary-hover:#818cf8;--card-bg:#141414;--card-border:#262626;--success:#22c55e;--error:#ef4444;--warning:#f59e0b;--muted:#737373}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--background);color:var(--foreground);line-height:1.6}.container{max-width:900px;margin:0 auto;padding:2rem}.header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 0;border-bottom:1px solid var(--card-border);margin-bottom:2rem}.logo{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,var(--primary) 0,#a855f7 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.status-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:500}.status-badge.connected{background:rgba(34,197,94,.1);color:var(--success);border:1px solid rgba(34,197,94,.3)}.status-badge.disconnected{background:rgba(239,68,68,.1);color:var(--error);border:1px solid rgba(239,68,68,.3)}.status-dot{width:8px;height:8px;border-radius:50%;animation:pulse 2s infinite}.status-badge.connected .status-dot{background:var(--success)}.status-badge.disconnected .status-dot{background:var(--error)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.card-title{font-size:1.125rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.card-title,.form-group{margin-bottom:1rem}.form-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem;color:var(--muted)}.form-input{width:100%;padding:.75rem 1rem;background:var(--background);border:1px solid var(--card-border);border-radius:8px;color:var(--foreground);font-size:.9375rem;transition:border-color .2s,box-shadow .2s}.form-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(99,102,241,.1)}.form-input::placeholder{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}.btn-secondary{background:transparent;color:var(--foreground);border:1px solid var(--card-border)}.btn-secondary:hover:not(:disabled){background:hsla(0,0%,100%,.05)}.btn-small{padding:.5rem 1rem;font-size:.8125rem}.tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}.tab{padding:.5rem 1rem;background:transparent;border:none;border-radius:8px;color:var(--muted);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s}.tab:hover{background:hsla(0,0%,100%,.05)}.tab.active,.tab:hover{color:var(--foreground)}.tab.active{background:var(--card-bg)}.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:1rem;gap:1rem}.service-card{background:var(--background);border:1px solid var(--card-border);border-radius:8px;padding:1rem;transition:border-color .2s}.service-card:hover{border-color:var(--primary)}.service-name{font-weight:600;margin-bottom:.25rem}.service-endpoint{font-size:.75rem;color:var(--muted);font-family:monospace;margin-bottom:.75rem}.service-actions{display:flex;gap:.5rem}.result-box{background:var(--background);border:1px solid var(--card-border);border-radius:8px;padding:1rem;font-family:monospace;font-size:.8125rem;max-height:300px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.result-box.success{border-color:rgba(34,197,94,.5)}.result-box.error{border-color:rgba(239,68,68,.5)}.spinner{width:16px;height:16px;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}@media (max-width:640px){.grid-2{grid-template-columns:1fr}}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.text-muted{color:var(--muted)}.text-success{color:var(--success)}.text-error{color:var(--error)}.text-center{text-align:center}.text-sm{font-size:.875rem}