*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0b0d14;--surface:#12151f;--surface-2:#1a1e2e;--surface-3:#222640;--border:#252a3d;--border-hover:#353b58;--blue:#3b82f6;--blue-hover:#2563eb;--blue-muted:#3b82f61f;--blue-border:#3b82f64d;--green:#10b981;--green-muted:#10b9811f;--green-border:#10b9814d;--amber:#f59e0b;--amber-muted:#f59e0b1f;--red:#ef4444;--red-hover:#dc2626;--red-muted:#ef44441f;--red-border:#ef44444d;--text:#e2e8f0;--text-muted:#64748b;--text-faint:#374151;--radius-sm:6px;--radius:10px;--radius-lg:14px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.5}body{min-height:100vh}#root{flex-direction:column;min-height:100vh;display:flex}button{cursor:pointer;font-family:inherit;font-size:inherit;border:none;outline:none}input,textarea,select{font-family:inherit;font-size:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;padding:8px 12px;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-muted);outline:none}input[type=password]{letter-spacing:.1em}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.layout{height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:220px;padding:0;display:flex}.sidebar-logo{border-bottom:1px solid var(--border);padding:20px 16px 16px}.sidebar-logo h1{color:var(--text);font-size:15px;font-weight:600;line-height:1.2}.sidebar-logo span{color:var(--text-muted);font-size:11px;font-weight:400}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:12px 8px;display:flex}.nav-item{border-radius:var(--radius-sm);color:var(--text-muted);text-align:left;background:0 0;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:13px;font-weight:500;transition:background .12s,color .12s;display:flex}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:var(--blue-muted);color:var(--blue)}.nav-item svg{flex-shrink:0;width:16px;height:16px}.sidebar-footer{border-top:1px solid var(--border)}.sidebar-user{padding:10px 16px 6px}.sidebar-email{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;display:block;overflow:hidden}.sidebar-status{padding:4px 16px 8px}.btn-signout{width:100%;color:var(--text-muted);border-top:1px solid var(--border);text-align:left;background:0 0;align-items:center;gap:7px;padding:9px 16px;font-size:12px;font-weight:500;transition:background .12s,color .12s;display:flex}.btn-signout:hover{background:var(--red-muted);color:var(--red)}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:400px;padding:40px 36px}.login-header{text-align:center;margin-bottom:32px}.login-icon{background:var(--blue-muted);border:1px solid var(--blue-border);width:48px;height:48px;color:var(--blue);border-radius:12px;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.login-header h1{color:var(--text);margin-bottom:6px;font-size:18px;font-weight:700}.login-header p{color:var(--text-muted);font-size:13px}.login-form .field{margin-bottom:14px}.login-error{background:var(--red-muted);border:1px solid var(--red-border);color:var(--red);border-radius:var(--radius-sm);margin-bottom:4px;padding:9px 13px;font-size:13px}.login-submit{justify-content:center;width:100%;margin-top:4px;padding:10px;font-size:14px}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-right:6px;display:inline-block}.status-dot.running{background:var(--green);box-shadow:0 0 6px var(--green);animation:2s infinite pulse}.status-dot.stopped{background:var(--text-muted)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.main{flex-direction:column;flex:1;display:flex;overflow-y:auto}.page-header{border-bottom:1px solid var(--border);margin-bottom:28px;padding:24px 32px 20px}.page-header h2{color:var(--text);font-size:20px;font-weight:600}.page-header p{color:var(--text-muted);margin-top:4px;font-size:13px}.page-content{flex:1;padding:0 32px 32px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:20px}.card-title{color:var(--text);align-items:center;gap:8px;margin-bottom:16px;font-size:13px;font-weight:600;display:flex}.card-title svg{color:var(--text-muted)}.btn{border-radius:var(--radius-sm);align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;transition:background .12s,opacity .12s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover:not(:disabled){background:var(--blue-hover)}.btn-success{background:var(--green);color:#fff}.btn-success:hover:not(:disabled){background:#059669}.btn-danger{background:var(--red-muted);color:var(--red);border:1px solid var(--red-border)}.btn-danger:hover:not(:disabled){background:var(--red);color:#fff}.btn-ghost{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.field{margin-bottom:16px}.field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.field-hint{color:var(--text-muted);margin-top:5px;font-size:12px}.input-wrap{position:relative}.input-wrap input{padding-right:40px}.input-toggle{color:var(--text-muted);background:0 0;padding:2px;line-height:1;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.input-toggle:hover{color:var(--text)}.server-control{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.server-info{flex:1}.server-info h3{color:var(--text);align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.server-info p{color:var(--text-muted);margin-top:3px;font-size:12px}.server-meta{flex-wrap:wrap;gap:20px;margin-top:12px;display:flex}.server-meta-item{color:var(--text-muted);font-size:12px}.server-meta-item strong{text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);margin-bottom:2px;font-size:11px;display:block}.config-snippet{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:#a5b4fc;white-space:pre;margin-top:12px;padding:14px 16px;font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-size:12px;line-height:1.6;overflow-x:auto}.snippet-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:8px;font-size:11px;font-weight:600}.logs-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.logs-toolbar input{width:220px;padding:7px 11px}.log-table{border-collapse:collapse;width:100%}.log-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);text-align:left;border-bottom:1px solid var(--border);padding:8px 12px;font-size:11px;font-weight:600}.log-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px;font-size:13px}.log-table tr:last-child td{border-bottom:none}.log-table tr:hover td{background:var(--surface-2)}.tool-badge{background:var(--blue-muted);color:var(--blue);border:1px solid var(--blue-border);white-space:nowrap;border-radius:4px;padding:2px 8px;font-family:ui-monospace,monospace;font-size:12px;font-weight:500;display:inline-block}.status-badge{border-radius:4px;align-items:center;gap:5px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.status-badge.ok{background:var(--green-muted);color:var(--green);border:1px solid var(--green-border)}.status-badge.error{background:var(--red-muted);color:var(--red);border:1px solid var(--red-border)}.duration{color:var(--text-muted);font-family:ui-monospace,monospace;font-size:12px}.response-preview{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:300px;font-size:12px;overflow:hidden}.empty-state{text-align:center;color:var(--text-muted);padding:48px 24px}.empty-state svg{opacity:.3;margin-bottom:12px}.stats-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.stat-card .stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px;font-size:11px;font-weight:600}.stat-card .stat-value{color:var(--text);font-size:24px;font-weight:700;line-height:1}.stat-card .stat-sub{color:var(--text-muted);margin-top:4px;font-size:12px}.toast-container{z-index:1000;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{border-radius:var(--radius-sm);align-items:center;gap:8px;max-width:320px;padding:10px 16px;font-size:13px;font-weight:500;animation:.2s slide-in;display:flex}.toast.success{background:var(--green-muted);border:1px solid var(--green-border);color:var(--green)}.toast.error{background:var(--red-muted);border:1px solid var(--red-border);color:var(--red)}@keyframes slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.modal-overlay{z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:90vw;max-width:520px;max-height:70vh;padding:24px;overflow-y:auto}.modal h3{margin-bottom:14px;font-size:15px;font-weight:600}.modal pre{color:#a5b4fc;background:var(--surface-2);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-all;padding:14px;font-size:12px;overflow-x:auto}.modal-footer{justify-content:flex-end;margin-top:16px;display:flex}.divider{background:var(--border);height:1px;margin:20px 0}@media (width<=700px){.layout{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;height:auto}.sidebar-nav{flex-direction:row;padding:8px}.page-header,.page-content{padding-left:16px;padding-right:16px}}
